diff options
author | Martin Aumüller <aumuell@reserv.at> | 2010-01-21 17:23:31 +0100 |
---|---|---|
committer | hjk <qtc-committer@nokia.com> | 2010-01-21 17:23:31 +0100 |
commit | f6482a3871be5ed657e693d8fb535f6a15ce3901 (patch) | |
tree | 691e12a9b8efc6427953bb79da126f8a5ee2979b /src/plugins/find | |
parent | 474d883eac6576b9be74d3a06051e12bdb769d37 (diff) | |
download | qt-creator-f6482a3871be5ed657e693d8fb535f6a15ce3901.tar.gz |
fakevim: implement incremental backward search '?' using Find plugin
Merge-request: 97
Reviewed-by: hjk <qtc-committer@nokia.com>
Diffstat (limited to 'src/plugins/find')
-rw-r--r-- | src/plugins/find/basetextfind.cpp | 1 | ||||
-rw-r--r-- | src/plugins/find/findplugin.cpp | 8 | ||||
-rw-r--r-- | src/plugins/find/findplugin.h | 6 | ||||
-rw-r--r-- | src/plugins/find/findtoolbar.cpp | 11 | ||||
-rw-r--r-- | src/plugins/find/findtoolbar.h | 3 |
5 files changed, 28 insertions, 1 deletions
diff --git a/src/plugins/find/basetextfind.cpp b/src/plugins/find/basetextfind.cpp index 5c7d9be20c..dcafd81693 100644 --- a/src/plugins/find/basetextfind.cpp +++ b/src/plugins/find/basetextfind.cpp @@ -132,7 +132,6 @@ IFindSupport::Result BaseTextFind::findIncremental(const QString &txt, IFindSupp if (m_incrementalStartPos < 0) m_incrementalStartPos = cursor.selectionStart(); cursor.setPosition(m_incrementalStartPos); - findFlags &= ~IFindSupport::FindBackward; bool found = find(txt, findFlags, cursor); if (found) emit highlightAll(txt, findFlags); diff --git a/src/plugins/find/findplugin.cpp b/src/plugins/find/findplugin.cpp index 20f318fdaa..0da0b0934e 100644 --- a/src/plugins/find/findplugin.cpp +++ b/src/plugins/find/findplugin.cpp @@ -314,4 +314,12 @@ void FindPlugin::setUseFakeVim(bool on) m_findToolBar->setUseFakeVim(on); } +void FindPlugin::openFindToolBar(FindDirection direction) +{ + if (m_findToolBar) { + m_findToolBar->setBackward(direction == FindBackward); + m_findToolBar->openFindToolBar(); + } +} + Q_EXPORT_PLUGIN(FindPlugin) diff --git a/src/plugins/find/findplugin.h b/src/plugins/find/findplugin.h index 2183745bab..d029281041 100644 --- a/src/plugins/find/findplugin.h +++ b/src/plugins/find/findplugin.h @@ -56,6 +56,11 @@ public: virtual ~FindPlugin(); static FindPlugin *instance(); + enum FindDirection { + FindForward, + FindBackward + }; + // IPlugin bool initialize(const QStringList &arguments, QString *error_message); void extensionsInitialized(); @@ -67,6 +72,7 @@ public: QStringListModel *findCompletionModel() { return m_findCompletionModel; } QStringListModel *replaceCompletionModel() { return m_replaceCompletionModel; } void setUseFakeVim(bool on); + void openFindToolBar(FindDirection direction); public slots: void setCaseSensitive(bool sensitive); diff --git a/src/plugins/find/findtoolbar.cpp b/src/plugins/find/findtoolbar.cpp index 0ca3b43e68..015b864a81 100644 --- a/src/plugins/find/findtoolbar.cpp +++ b/src/plugins/find/findtoolbar.cpp @@ -572,6 +572,12 @@ Core::FindToolBarPlaceHolder *FindToolBar::findToolBarPlaceHolder() const void FindToolBar::openFind() { + setBackward(false); + openFindToolBar(); +} + +void FindToolBar::openFindToolBar() +{ if (!m_currentDocumentFind->candidateIsEnabled()) return; Core::FindToolBarPlaceHolder *holder = findToolBarPlaceHolder(); @@ -676,3 +682,8 @@ void FindToolBar::setRegularExpressions(bool regexp) { setFindFlag(IFindSupport::FindRegularExpression, regexp); } + +void FindToolBar::setBackward(bool backward) +{ + setFindFlag(IFindSupport::FindBackward, backward); +} diff --git a/src/plugins/find/findtoolbar.h b/src/plugins/find/findtoolbar.h index f8afe82106..9788369bf2 100644 --- a/src/plugins/find/findtoolbar.h +++ b/src/plugins/find/findtoolbar.h @@ -50,6 +50,7 @@ class FindPlugin; class FindToolBar : public Utils::StyledBar { + friend class FindPlugin; Q_OBJECT public: @@ -86,6 +87,7 @@ private slots: void setCaseSensitive(bool sensitive); void setWholeWord(bool wholeOnly); void setRegularExpressions(bool regexp); + void setBackward(bool backward); void adaptToCandidate(); @@ -93,6 +95,7 @@ protected: bool focusNextPrevChild(bool next); private: + void openFindToolBar(); void invokeClearResults(); bool setFocusToCurrentFindSupport(); void setFindFlag(IFindSupport::FindFlag flag, bool enabled); |