File indexing completed on 2024-04-28 17:06:03

0001 /*
0002     SPDX-FileCopyrightText: 2005 Csaba Karai <krusader@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2005-2022 Krusader Krew <https://krusader.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef FILTERTABS_H
0009 #define FILTERTABS_H
0010 
0011 // QtCore
0012 #include <QList>
0013 
0014 #include "filterbase.h"
0015 
0016 class QTabWidget;
0017 
0018 class FilterTabs : public QObject
0019 {
0020     Q_OBJECT
0021 
0022 public:
0023     enum {
0024         HasProfileHandler = 0x1000,
0025         HasRecurseOptions = 0x2000,
0026         HasSearchIn = 0x4000,
0027         HasDontSearchIn = 0x8000,
0028 
0029         Default = 0xe000
0030     };
0031 
0032     static FilterTabs *addTo(QTabWidget *tabWidget, int props = FilterTabs::Default, QStringList extraOptions = QStringList());
0033     static KrQuery getQuery(QWidget *parent = nullptr);
0034 
0035     FilterBase *get(const QString &name);
0036     bool isExtraOptionChecked(QString name);
0037     void checkExtraOption(QString name, bool check);
0038     FilterSettings getSettings();
0039     void applySettings(const FilterSettings &s);
0040     void reset();
0041 
0042 public slots:
0043     void loadFromProfile(const QString &);
0044     void saveToProfile(const QString &);
0045     bool fillQuery(KrQuery *query);
0046     void close(bool accept = true)
0047     {
0048         emit closeRequest(accept);
0049     }
0050 
0051 signals:
0052     void closeRequest(bool accept = true);
0053 
0054 private:
0055     FilterTabs(int properties, QTabWidget *tabWidget, QObject *parent, QStringList extraOptions);
0056     void acceptQuery();
0057 
0058     QList<FilterBase *> filterList;
0059     QList<int> pageNumbers;
0060 
0061     QTabWidget *tabWidget;
0062 };
0063 
0064 #endif /* FILTERTABS_H */