summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2009-03-26 16:13:01 +0100
committercon <qtc-committer@nokia.com>2009-03-26 16:22:46 +0100
commit393a03747b081b9cdd49e723bec95ff4d3f1d53a (patch)
tree2c95e9b8d5dd9053b3033aa9bfd2142edd85662b /src/plugins
parentbd3bf8a348957200e10460ca85fdfa6ce0d83604 (diff)
downloadqt-creator-393a03747b081b9cdd49e723bec95ff4d3f1d53a.tar.gz
Shortcut for just opening search dialog with last filter.
Task-number: 237733
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/find/findplugin.cpp27
-rw-r--r--src/plugins/find/findplugin.h1
-rw-r--r--src/plugins/find/findtoolbar.cpp2
-rw-r--r--src/plugins/find/textfindconstants.h1
-rw-r--r--src/plugins/projectexplorer/allprojectsfind.cpp2
-rw-r--r--src/plugins/projectexplorer/currentprojectfind.cpp2
6 files changed, 28 insertions, 7 deletions
diff --git a/src/plugins/find/findplugin.cpp b/src/plugins/find/findplugin.cpp
index ee62bea84b..2a5d104707 100644
--- a/src/plugins/find/findplugin.cpp
+++ b/src/plugins/find/findplugin.cpp
@@ -105,6 +105,14 @@ void FindPlugin::filterChanged()
QTC_ASSERT(changedFilter, return);
QTC_ASSERT(action, return);
action->setEnabled(changedFilter->isEnabled());
+ bool haveEnabledFilters = false;
+ foreach (IFindFilter *filter, m_filterActions.keys()) {
+ if (filter->isEnabled()) {
+ haveEnabledFilters = true;
+ break;
+ }
+ }
+ m_openFindDialog->setEnabled(haveEnabledFilters);
}
void FindPlugin::openFindFilter()
@@ -112,8 +120,6 @@ void FindPlugin::openFindFilter()
QAction *action = qobject_cast<QAction*>(sender());
QTC_ASSERT(action, return);
IFindFilter *filter = action->data().value<IFindFilter *>();
- QTC_ASSERT(filter, return);
- QTC_ASSERT(filter->isEnabled(), return);
QString currentFindString = (m_currentDocumentFind->isEnabled() ? m_currentDocumentFind->currentFindString() : "");
if (!currentFindString.isEmpty())
m_findDialog->setFindText(currentFindString);
@@ -127,6 +133,7 @@ void FindPlugin::setupMenu()
Core::ActionContainer *mfind = am->createMenu(Constants::M_FIND);
medit->addMenu(mfind, Core::Constants::G_EDIT_FIND);
mfind->menu()->setTitle(tr("&Find/Replace"));
+ mfind->appendGroup(Constants::G_FIND_CURRENTDOCUMENT);
mfind->appendGroup(Constants::G_FIND_FILTERS);
mfind->appendGroup(Constants::G_FIND_FLAGS);
mfind->appendGroup(Constants::G_FIND_ACTIONS);
@@ -141,6 +148,12 @@ void FindPlugin::setupMenu()
separator->setSeparator(true);
cmd = am->registerAction(separator, QLatin1String("Find.Sep.Actions"), globalcontext);
mfind->addAction(cmd, Constants::G_FIND_ACTIONS);
+
+ m_openFindDialog = new QAction(tr("Find Dialog"), this);
+ cmd = am->registerAction(m_openFindDialog, QLatin1String("Find.Dialog"), globalcontext);
+ cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+F")));
+ mfind->addAction(cmd, Constants::G_FIND_FILTERS);
+ connect(m_openFindDialog, SIGNAL(triggered()), this, SLOT(openFindFilter()));
}
void FindPlugin::setupFilterMenuItems()
@@ -153,9 +166,13 @@ void FindPlugin::setupFilterMenuItems()
Core::ActionContainer *mfind = am->actionContainer(Constants::M_FIND);
m_filterActions.clear();
+ bool haveEnabledFilters = false;
foreach (IFindFilter *filter, findInterfaces) {
- QAction *action = new QAction(filter->name(), this);
- action->setEnabled(filter->isEnabled());
+ QAction *action = new QAction(QString(" %1").arg(filter->name()), this);
+ bool isEnabled = filter->isEnabled();
+ if (isEnabled)
+ haveEnabledFilters = true;
+ action->setEnabled(isEnabled);
action->setData(qVariantFromValue(filter));
cmd = am->registerAction(action, QLatin1String("FindFilter.")+filter->name(), globalcontext);
cmd->setDefaultKeySequence(filter->defaultShortcut());
@@ -165,6 +182,8 @@ void FindPlugin::setupFilterMenuItems()
connect(filter, SIGNAL(changed()), this, SLOT(filterChanged()));
}
m_findDialog->setFindFilters(findInterfaces);
+ m_openFindDialog->setEnabled(haveEnabledFilters);
+
}
QTextDocument::FindFlags FindPlugin::findFlags() const
diff --git a/src/plugins/find/findplugin.h b/src/plugins/find/findplugin.h
index 53bd805aaa..a4c2ce2838 100644
--- a/src/plugins/find/findplugin.h
+++ b/src/plugins/find/findplugin.h
@@ -97,6 +97,7 @@ private:
QStringListModel *m_replaceCompletionModel;
QStringList m_findCompletions;
QStringList m_replaceCompletions;
+ QAction *m_openFindDialog;
};
} // namespace Internal
diff --git a/src/plugins/find/findtoolbar.cpp b/src/plugins/find/findtoolbar.cpp
index 2c2295740d..97f66d5d27 100644
--- a/src/plugins/find/findtoolbar.cpp
+++ b/src/plugins/find/findtoolbar.cpp
@@ -149,7 +149,7 @@ FindToolBar::FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumen
m_findInDocumentAction = new QAction(tr("Current Document"), this);
cmd = am->registerAction(m_findInDocumentAction, Constants::FIND_IN_DOCUMENT, globalcontext);
cmd->setDefaultKeySequence(QKeySequence::Find);
- mfind->addAction(cmd, Constants::G_FIND_FILTERS);
+ mfind->addAction(cmd, Constants::G_FIND_CURRENTDOCUMENT);
connect(m_findInDocumentAction, SIGNAL(triggered()), this, SLOT(openFind()));
if (QApplication::clipboard()->supportsFindBuffer()) {
diff --git a/src/plugins/find/textfindconstants.h b/src/plugins/find/textfindconstants.h
index 40394dfb85..a430c99897 100644
--- a/src/plugins/find/textfindconstants.h
+++ b/src/plugins/find/textfindconstants.h
@@ -34,6 +34,7 @@ namespace Find {
namespace Constants {
const char * const M_FIND = "Find.FindMenu";
+const char * const G_FIND_CURRENTDOCUMENT = "Find.FindMenu.CurrentDocument";
const char * const G_FIND_FILTERS = "Find.FindMenu.Filters";
const char * const G_FIND_FLAGS = "Find.FindMenu.Flags";
const char * const G_FIND_ACTIONS = "Find.FindMenu.Actions";
diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp
index af0a962ec3..c6448c2f80 100644
--- a/src/plugins/projectexplorer/allprojectsfind.cpp
+++ b/src/plugins/projectexplorer/allprojectsfind.cpp
@@ -65,7 +65,7 @@ bool AllProjectsFind::isEnabled() const
QKeySequence AllProjectsFind::defaultShortcut() const
{
- return QKeySequence("Ctrl+Shift+F");
+ return QKeySequence();
}
QStringList AllProjectsFind::files()
diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp
index 123efdbb82..4fcfc68642 100644
--- a/src/plugins/projectexplorer/currentprojectfind.cpp
+++ b/src/plugins/projectexplorer/currentprojectfind.cpp
@@ -64,7 +64,7 @@ bool CurrentProjectFind::isEnabled() const
QKeySequence CurrentProjectFind::defaultShortcut() const
{
- return QKeySequence("Ctrl+Alt+F");
+ return QKeySequence();
}
QStringList CurrentProjectFind::files()