diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2019-05-15 13:56:03 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2019-06-05 12:28:57 +0000 |
commit | e34b41934d68430c58107a700e3730595e88075d (patch) | |
tree | 1be42250bf0b9bde8ecc65986ca254d65fc10032 /src/plugins/coreplugin | |
parent | 8e2e9662112cb09a7d6b3524c472d0978a4c4eb3 (diff) |
Output panes: Respect filter options
The UI elements for case sensitivity and regexp behavior had not been
doing anything until now.
Change-Id: Ie210103984fda64d4249c56f9a5b21200132108f
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Diffstat (limited to 'src/plugins/coreplugin')
-rw-r--r-- | src/plugins/coreplugin/ioutputpane.h | 4 | ||||
-rw-r--r-- | src/plugins/coreplugin/messageoutputwindow.cpp | 2 | ||||
-rw-r--r-- | src/plugins/coreplugin/outputpanemanager.cpp | 4 | ||||
-rw-r--r-- | src/plugins/coreplugin/outputwindow.cpp | 33 | ||||
-rw-r--r-- | src/plugins/coreplugin/outputwindow.h | 6 |
5 files changed, 18 insertions, 31 deletions
diff --git a/src/plugins/coreplugin/ioutputpane.h b/src/plugins/coreplugin/ioutputpane.h index 40c6401b379..d219e2aefff 100644 --- a/src/plugins/coreplugin/ioutputpane.h +++ b/src/plugins/coreplugin/ioutputpane.h @@ -99,6 +99,8 @@ signals: protected: void setupFilterUi(const QString &historyKey); QString filterText() const; + bool filterUsesRegexp() const { return m_filterRegexp; } + Qt::CaseSensitivity filterCaseSensitivity() const { return m_filterCaseSensitivity; } void setFilteringEnabled(bool enable); QWidget *filterWidget() const { return m_filterOutputLineEdit; } @@ -119,7 +121,7 @@ private: QAction *m_filterActionCaseSensitive = nullptr; Utils::FancyLineEdit *m_filterOutputLineEdit = nullptr; bool m_filterRegexp = false; - bool m_filterCaseSensitive = false; + Qt::CaseSensitivity m_filterCaseSensitivity = Qt::CaseInsensitive; }; } // namespace Core diff --git a/src/plugins/coreplugin/messageoutputwindow.cpp b/src/plugins/coreplugin/messageoutputwindow.cpp index 70bef5dc114..60092829537 100644 --- a/src/plugins/coreplugin/messageoutputwindow.cpp +++ b/src/plugins/coreplugin/messageoutputwindow.cpp @@ -146,7 +146,7 @@ bool MessageOutputWindow::canNavigate() const void MessageOutputWindow::updateFilter() { - m_widget->setFilterText(filterText()); + m_widget->updateFilterProperties(filterText(), filterCaseSensitivity(), filterUsesRegexp()); } } // namespace Internal diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp index 5bee2fb5f75..951fed419b0 100644 --- a/src/plugins/coreplugin/outputpanemanager.cpp +++ b/src/plugins/coreplugin/outputpanemanager.cpp @@ -195,6 +195,7 @@ void IOutputPane::filterOutputButtonClicked() void IOutputPane::setRegularExpressions(bool regularExpressions) { m_filterRegexp = regularExpressions; + updateFilter(); } Id IOutputPane::filterRegexpActionId() const @@ -209,7 +210,8 @@ Id IOutputPane::filterCaseSensitivityActionId() const void IOutputPane::setCaseSensitive(bool caseSensitive) { - m_filterCaseSensitive = caseSensitive; + m_filterCaseSensitivity = caseSensitive ? Qt::CaseSensitive : Qt::CaseInsensitive; + updateFilter(); } namespace Internal { diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index 2759777863f..2b5de1b2b6f 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -284,15 +284,16 @@ void OutputWindow::setHighlightTextColor(const QColor &textColor) d->highlightTextColor = textColor; } -QString OutputWindow::filterText() const -{ - return d->filterText; -} - -void OutputWindow::setFilterText(const QString &filterText) +void OutputWindow::updateFilterProperties(const QString &filterText, + Qt::CaseSensitivity caseSensitivity, bool isRegexp) { + FilterModeFlags flags; + flags.setFlag(FilterModeFlag::CaseSensitive, caseSensitivity == Qt::CaseSensitive) + .setFlag(FilterModeFlag::RegExp, isRegexp); + if (d->filterMode == flags && d->filterText == filterText) + return; + d->lastFilteredBlock = {}; if (d->filterText != filterText) { - d->lastFilteredBlock = {}; const bool filterTextWasEmpty = d->filterText.isEmpty(); d->filterText = filterText; @@ -313,23 +314,9 @@ void OutputWindow::setFilterText(const QString &filterText) setPalette(pal); setReadOnly(true); } - - filterNewContent(); - } -} - -OutputWindow::FilterModeFlags OutputWindow::filterMode() const -{ - return d->filterMode; -} - -void OutputWindow::setFilterMode(OutputWindow::FilterModeFlag filterMode, bool enabled) -{ - if (d->filterMode.testFlag(filterMode) != enabled) { - d->filterMode.setFlag(filterMode, enabled); - d->lastFilteredBlock = {}; - filterNewContent(); } + d->filterMode = flags; + filterNewContent(); } void OutputWindow::filterNewContent() diff --git a/src/plugins/coreplugin/outputwindow.h b/src/plugins/coreplugin/outputwindow.h index 99c49a4cc18..03760cbce3e 100644 --- a/src/plugins/coreplugin/outputwindow.h +++ b/src/plugins/coreplugin/outputwindow.h @@ -79,11 +79,7 @@ public: void setHighlightBgColor(const QColor &bgColor); void setHighlightTextColor(const QColor &textColor); - QString filterText() const; - void setFilterText(const QString &filterText); - - FilterModeFlags filterMode() const; - void setFilterMode(FilterModeFlag filterMode, bool enabled); + void updateFilterProperties(const QString &filterText, Qt::CaseSensitivity caseSensitivity, bool regexp); signals: void wheelZoom(); |