findinfiles.h 2.75 KB
Newer Older
hjk's avatar
hjk committed
1
/****************************************************************************
con's avatar
con committed
2
**
3
4
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
con's avatar
con committed
5
**
hjk's avatar
hjk committed
6
** This file is part of Qt Creator.
con's avatar
con committed
7
**
hjk's avatar
hjk committed
8
9
10
11
** 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
12
13
14
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
15
**
16
17
18
19
20
21
22
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 as published by the Free Software
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
con's avatar
con committed
23
**
hjk's avatar
hjk committed
24
****************************************************************************/
hjk's avatar
hjk committed
25

hjk's avatar
hjk committed
26
#pragma once
con's avatar
con committed
27
28
29

#include "basefilefind.h"

30
31
#include <utils/fileutils.h>

32
33
#include <QPointer>
#include <QStringListModel>
con's avatar
con committed
34

35
36
37
38
QT_BEGIN_NAMESPACE
class QLabel;
class QStackedWidget;
QT_END_NAMESPACE
39
40

namespace Utils { class PathChooser; }
con's avatar
con committed
41
42
43

namespace TextEditor {

44
class TEXTEDITOR_EXPORT FindInFiles : public BaseFileFind
con's avatar
con committed
45
46
47
48
{
    Q_OBJECT

public:
Eike Ziller's avatar
Eike Ziller committed
49
    FindInFiles();
50
    ~FindInFiles() override;
con's avatar
con committed
51

52
53
54
55
56
57
    QString id() const override;
    QString displayName() const override;
    QWidget *createConfigWidget() override;
    void writeSettings(QSettings *settings) override;
    void readSettings(QSettings *settings) override;
    bool isValid() const override;
con's avatar
con committed
58

59
    void setDirectory(const Utils::FileName &directory);
60
    Utils::FileName directory() const;
61
    static void findOnFileSystem(const QString &path);
62
63
64
65
    static FindInFiles *instance();

signals:
    void pathChanged(const QString &directory);
66

con's avatar
con committed
67
protected:
68
    Utils::FileIterator *files(const QStringList &nameFilters,
69
70
71
72
                               const QVariant &additionalParameters) const override;
    QVariant additionalParameters() const override;
    QString label() const override;
    QString toolTip() const override;
73
    void syncSearchEngineCombo(int selectedSearchEngineIndex) override;
con's avatar
con committed
74

75
private:
76
    void setValid(bool valid);
77
    void searchEnginesSelectionChanged(int index);
78
    Utils::FileName path() const;
79

con's avatar
con committed
80
    QPointer<QWidget> m_configWidget;
81
    QPointer<Utils::PathChooser> m_directory;
82
83
    QStackedWidget *m_searchEngineWidget = nullptr;
    QComboBox *m_searchEngineCombo = nullptr;
84
    bool m_isValid = false;
con's avatar
con committed
85
86
87
};

} // namespace TextEditor