summaryrefslogtreecommitdiff
path: root/src/plugins/coreplugin/find/findtoolbar.h
diff options
context:
space:
mode:
authorhjk <hjk121@nokiamail.com>2014-01-13 16:17:34 +0100
committerEike Ziller <eike.ziller@digia.com>2014-01-14 07:43:00 +0100
commit4d96fa7aba7be35800d61d8bed89d3f6c3ef9329 (patch)
treec9b102981cf81023e1488224a24758af18aa064e /src/plugins/coreplugin/find/findtoolbar.h
parent8b854270a6c214479b2cdf302072a3e74fa854da (diff)
downloadqt-creator-4d96fa7aba7be35800d61d8bed89d3f6c3ef9329.tar.gz
Core: Merge Find and Locator into Core plugin
Change-Id: I7053310272235d854c9f409670ff52a10a7add8b Reviewed-by: Christian Kandeler <christian.kandeler@digia.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Diffstat (limited to 'src/plugins/coreplugin/find/findtoolbar.h')
-rw-r--r--src/plugins/coreplugin/find/findtoolbar.h149
1 files changed, 149 insertions, 0 deletions
diff --git a/src/plugins/coreplugin/find/findtoolbar.h b/src/plugins/coreplugin/find/findtoolbar.h
new file mode 100644
index 0000000000..fb90dfbf1f
--- /dev/null
+++ b/src/plugins/coreplugin/find/findtoolbar.h
@@ -0,0 +1,149 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of Qt Creator.
+**
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+****************************************************************************/
+
+#ifndef FINDTOOLBAR_H
+#define FINDTOOLBAR_H
+
+#include "ui_findwidget.h"
+#include "currentdocumentfind.h"
+
+#include <utils/styledbar.h>
+
+#include <QTimer>
+
+namespace Core {
+
+class FindToolBarPlaceHolder;
+class FindPlugin;
+
+namespace Internal {
+
+class FindToolBar : public Utils::StyledBar
+{
+ Q_OBJECT
+
+public:
+ explicit FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumentFind);
+ ~FindToolBar();
+
+ void readSettings();
+ void writeSettings();
+
+ void openFindToolBar(bool focus = true);
+ void setUseFakeVim(bool on);
+
+public slots:
+ void setBackward(bool backward);
+
+private slots:
+ void invokeFindNext();
+ void invokeFindPrevious();
+ void invokeFindStep();
+ void invokeReplace();
+ void invokeReplaceNext();
+ void invokeReplacePrevious();
+ void invokeReplaceStep();
+ void invokeReplaceAll();
+ void invokeResetIncrementalSearch();
+
+ void invokeFindIncremental();
+ void invokeFindEnter();
+ void invokeReplaceEnter();
+ void putSelectionToFindClipboard();
+ void updateFromFindClipboard();
+
+ void hideAndResetFocus();
+ void openFind(bool focus = true);
+ void findNextSelected();
+ void findPreviousSelected();
+ void updateFindAction();
+ void updateToolBar();
+ void findFlagsChanged();
+
+ void setCaseSensitive(bool sensitive);
+ void setWholeWord(bool wholeOnly);
+ void setRegularExpressions(bool regexp);
+ void setPreserveCase(bool preserveCase);
+
+ void adaptToCandidate();
+
+protected:
+ bool focusNextPrevChild(bool next);
+ void keyPressEvent(QKeyEvent *event);
+
+private:
+ void installEventFilters();
+ void invokeClearResults();
+ bool setFocusToCurrentFindSupport();
+ void setFindFlag(FindFlag flag, bool enabled);
+ bool hasFindFlag(FindFlag flag);
+ FindFlags effectiveFindFlags();
+ Core::FindToolBarPlaceHolder *findToolBarPlaceHolder() const;
+
+ bool eventFilter(QObject *obj, QEvent *event);
+ void setFindText(const QString &text);
+ QString getFindText();
+ QString getReplaceText();
+ void selectFindText();
+ void updateIcons();
+ void updateFlagMenus();
+
+ bool shouldSetFocusOnKeyEvent(QKeyEvent *event);
+
+ FindPlugin *m_plugin;
+ CurrentDocumentFind *m_currentDocumentFind;
+ Ui::FindWidget m_ui;
+ QCompleter *m_findCompleter;
+ QCompleter *m_replaceCompleter;
+ QAction *m_findInDocumentAction;
+ QAction *m_findNextSelectedAction;
+ QAction *m_findPreviousSelectedAction;
+ QAction *m_enterFindStringAction;
+ QAction *m_findNextAction;
+ QAction *m_findPreviousAction;
+ QAction *m_replaceAction;
+ QAction *m_replaceNextAction;
+ QAction *m_replacePreviousAction;
+ QAction *m_replaceAllAction;
+ QAction *m_caseSensitiveAction;
+ QAction *m_wholeWordAction;
+ QAction *m_regularExpressionAction;
+ QAction *m_preserveCaseAction;
+ FindFlags m_findFlags;
+
+ QTimer m_findIncrementalTimer;
+ QTimer m_findStepTimer;
+ bool m_useFakeVim;
+ bool m_eventFiltersInstalled;
+};
+
+} // namespace Internal
+} // namespace Core
+
+#endif // FINDTOOLBAR_H