-/***************************************************************************
+/**************************************************************************
**
** This file is part of Qt Creator
**
-** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
**
-** Contact: Qt Software Information (qt-info@nokia.com)
+** Contact: Nokia Corporation (qt-info@nokia.com)
**
+** Commercial Usage
**
-** Non-Open Source Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
**
-** Licensees may use this file in accordance with the Qt Beta Version
-** License Agreement, Agreement version 2.2 provided with the Software or,
-** alternatively, in accordance with the terms contained in a written
-** agreement between you and Nokia.
+** GNU Lesser General Public License Usage
**
-** GNU 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.
**
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License versions 2.0 or 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the packaging
-** of this file. Please review the following information to ensure GNU
-** General Public Licensing requirements will be met:
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
**
-** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt GPL Exception
-** version 1.3, included in the file GPL_EXCEPTION.txt in this package.
-**
-***************************************************************************/
+**************************************************************************/
#ifndef FINDPLUGIN_H
#define FINDPLUGIN_H
-#include "ui_findwidget.h"
-#include "ifindfilter.h"
-#include "findtoolbar.h"
+#include "find_global.h"
+#include "textfindconstants.h"
-#include <coreplugin/icore.h>
#include <extensionsystem/iplugin.h>
-#include <QtCore/QHash>
-#include <QtCore/QStringList>
-#include <QtGui/QAction>
#include <QtGui/QTextDocument>
+QT_BEGIN_NAMESPACE
+class QStringListModel;
+QT_END_NAMESPACE
+
namespace Find {
-namespace Internal {
+class IFindFilter;
+struct FindPluginPrivate;
+namespace Internal {
+class FindToolBar;
class FindToolWindow;
+class CurrentDocumentFind;
+} // namespace Internal
-class FindPlugin : public ExtensionSystem::IPlugin
+class FIND_EXPORT FindPlugin : public ExtensionSystem::IPlugin
{
Q_OBJECT
public:
FindPlugin();
virtual ~FindPlugin();
+ static FindPlugin *instance();
+
+ enum FindDirection {
+ FindForward,
+ FindBackward
+ };
// IPlugin
bool initialize(const QStringList &arguments, QString *error_message);
void extensionsInitialized();
- void shutdown();
+ ShutdownFlag aboutToShutdown();
- Core::ICore *core();
- QTextDocument::FindFlags findFlags() const;
+ Find::FindFlags findFlags() const;
+ bool hasFindFlag(Find::FindFlag flag);
void updateFindCompletion(const QString &text);
void updateReplaceCompletion(const QString &text);
- QStringListModel *findCompletionModel() { return m_findCompletionModel; }
- QStringListModel *replaceCompletionModel() { return m_replaceCompletionModel; }
+ QStringListModel *findCompletionModel() const;
+ QStringListModel *replaceCompletionModel() const;
+ void setUseFakeVim(bool on);
+ void openFindToolBar(FindDirection direction);
public slots:
void setCaseSensitive(bool sensitive);
void setWholeWord(bool wholeOnly);
void setBackward(bool backward);
+ void setRegularExpression(bool regExp);
signals:
void findFlagsChanged();
void openFindFilter();
private:
- void setFindFlag(QTextDocument::FindFlag flag, bool enabled);
- bool hasFindFlag(QTextDocument::FindFlag flag);
+ void setFindFlag(Find::FindFlag flag, bool enabled);
void updateCompletion(const QString &text, QStringList &completions, QStringListModel *model);
void setupMenu();
void setupFilterMenuItems();
void readSettings();
//variables
- Core::ICore *m_core;
- QHash<IFindFilter *, QAction *> m_filterActions;
-
- CurrentDocumentFind *m_currentDocumentFind;
- FindToolBar *m_findToolBar;
- FindToolWindow *m_findDialog;
- QTextDocument::FindFlags m_findFlags;
- QStringListModel *m_findCompletionModel;
- QStringListModel *m_replaceCompletionModel;
- QStringList m_findCompletions;
- QStringList m_replaceCompletions;
+ FindPluginPrivate *d;
};
-} // namespace Internal
} // namespace Find
#endif // FINDPLUGIN_H