summaryrefslogtreecommitdiff
path: root/src/plugins/find
diff options
context:
space:
mode:
authorMartin Aumüller <aumuell@reserv.at>2010-01-21 17:23:31 +0100
committerhjk <qtc-committer@nokia.com>2010-01-21 17:23:31 +0100
commitf6482a3871be5ed657e693d8fb535f6a15ce3901 (patch)
tree691e12a9b8efc6427953bb79da126f8a5ee2979b /src/plugins/find
parent474d883eac6576b9be74d3a06051e12bdb769d37 (diff)
downloadqt-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.cpp1
-rw-r--r--src/plugins/find/findplugin.cpp8
-rw-r--r--src/plugins/find/findplugin.h6
-rw-r--r--src/plugins/find/findtoolbar.cpp11
-rw-r--r--src/plugins/find/findtoolbar.h3
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);