File indexing completed on 2024-04-28 17:06:03
0001 /* 0002 SPDX-FileCopyrightText: 2003 Csaba Karai <krusader@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef GENERALFILTER_H 0009 #define GENERALFILTER_H 0010 0011 // QtWidgets 0012 #include <QCheckBox> 0013 #include <QGroupBox> 0014 #include <QHBoxLayout> 0015 #include <QLabel> 0016 #include <QLayout> 0017 #include <QWidget> 0018 0019 #include <KCompletion/KComboBox> 0020 #include <KShellCompletion> 0021 0022 #include "../Dialogs/kurllistrequester.h" 0023 #include "../GUI/krhistorycombobox.h" 0024 #include "../GUI/krlistwidget.h" 0025 #include "../GUI/profilemanager.h" 0026 #include "filterbase.h" 0027 0028 class GeneralFilter : public QWidget, public FilterBase 0029 { 0030 Q_OBJECT 0031 0032 public: 0033 GeneralFilter(FilterTabs *tabs, int properties, QWidget *parent = nullptr, QStringList extraOptions = QStringList()); 0034 ~GeneralFilter() override; 0035 0036 void queryAccepted() override; 0037 QString name() override 0038 { 0039 return "GeneralFilter"; 0040 } 0041 FilterTabs *filterTabs() override 0042 { 0043 return fltTabs; 0044 } 0045 bool getSettings(FilterSettings &) override; 0046 void applySettings(const FilterSettings &) override; 0047 0048 bool isExtraOptionChecked(const QString &name); 0049 void checkExtraOption(const QString &name, bool check); 0050 0051 public slots: 0052 void slotAddBtnClicked(); 0053 void slotLoadBtnClicked(); 0054 void slotOverwriteBtnClicked(); 0055 void slotRemoveBtnClicked(); 0056 void slotDisable(); 0057 void slotRegExpTriggered(QAction *act); 0058 void slotProfileDoubleClicked(QListWidgetItem *); 0059 void refreshProfileListBox(); 0060 0061 public: 0062 KComboBox *contentEncoding; 0063 QCheckBox *searchForCase; 0064 QCheckBox *containsTextCase; 0065 QCheckBox *containsWholeWord; 0066 QCheckBox *useExcludeFolderNames; 0067 QCheckBox *searchInDirs; 0068 QCheckBox *searchInArchives; 0069 QCheckBox *followLinks; 0070 QHash<QString, QCheckBox *> extraOptions; 0071 0072 KURLListRequester *searchIn; 0073 KURLListRequester *dontSearchIn; 0074 QLayout *middleLayout; 0075 0076 KrHistoryComboBox *searchFor; 0077 KrHistoryComboBox *containsText; 0078 KrHistoryComboBox *excludeFolderNames; 0079 QToolButton *containsRegExp; 0080 0081 KComboBox *ofType; 0082 0083 QLabel *encLabel; 0084 QLabel *containsLabel; 0085 0086 KShellCompletion completion; 0087 0088 KrListWidget *profileListBox; 0089 0090 QPushButton *profileAddBtn; 0091 QPushButton *profileLoadBtn; 0092 QPushButton *profileOverwriteBtn; 0093 QPushButton *profileRemoveBtn; 0094 0095 ProfileManager *profileManager; 0096 0097 int properties; 0098 0099 FilterTabs *fltTabs; 0100 0101 private: 0102 QCheckBox *createExcludeCheckBox(const KConfigGroup &group); 0103 KrHistoryComboBox *createExcludeComboBox(const KConfigGroup &group); 0104 }; 0105 0106 #endif /* GENERALFILTER_H */