File indexing completed on 2024-04-28 17:06:02
0001 /* 0002 SPDX-FileCopyrightText: 2003 Shie Erlich <krusader@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2003 Rafi Yanai <krusader@users.sourceforge.net> 0004 SPDX-FileCopyrightText: 2003 Csaba Karai <krusader@users.sourceforge.net> 0005 SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org> 0006 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef ADVANCEDFILTER_H 0011 #define ADVANCEDFILTER_H 0012 0013 #include "filterbase.h" 0014 0015 // QtWidgets 0016 #include <QCheckBox> 0017 #include <QRadioButton> 0018 #include <QToolButton> 0019 #include <QWidget> 0020 0021 #include <KCompletion/KComboBox> 0022 #include <KCompletion/KLineEdit> 0023 0024 class QSpinBox; 0025 0026 class AdvancedFilter : public QWidget, public FilterBase 0027 { 0028 Q_OBJECT 0029 0030 public: 0031 explicit AdvancedFilter(FilterTabs *tabs, QWidget *parent = nullptr); 0032 0033 void queryAccepted() override 0034 { 0035 } 0036 QString name() override 0037 { 0038 return "AdvancedFilter"; 0039 } 0040 FilterTabs *filterTabs() override 0041 { 0042 return fltTabs; 0043 } 0044 bool getSettings(FilterSettings &) override; 0045 void applySettings(const FilterSettings &) override; 0046 0047 public slots: 0048 void modifiedBetweenSetDate1(); 0049 void modifiedBetweenSetDate2(); 0050 void notModifiedAfterSetDate(); 0051 0052 public: 0053 QCheckBox *minSizeEnabled; 0054 QSpinBox *minSizeAmount; 0055 KComboBox *minSizeType; 0056 0057 QCheckBox *maxSizeEnabled; 0058 QSpinBox *maxSizeAmount; 0059 KComboBox *maxSizeType; 0060 0061 QRadioButton *anyDateEnabled; 0062 QRadioButton *modifiedBetweenEnabled; 0063 QRadioButton *notModifiedAfterEnabled; 0064 QRadioButton *modifiedInTheLastEnabled; 0065 0066 KLineEdit *modifiedBetweenData1; 0067 KLineEdit *modifiedBetweenData2; 0068 0069 QToolButton *modifiedBetweenBtn1; 0070 QToolButton *modifiedBetweenBtn2; 0071 QToolButton *notModifiedAfterBtn; 0072 0073 KLineEdit *notModifiedAfterData; 0074 QSpinBox *modifiedInTheLastData; 0075 QSpinBox *notModifiedInTheLastData; 0076 KComboBox *modifiedInTheLastType; 0077 KComboBox *notModifiedInTheLastType; 0078 0079 QCheckBox *belongsToUserEnabled; 0080 KComboBox *belongsToUserData; 0081 QCheckBox *belongsToGroupEnabled; 0082 KComboBox *belongsToGroupData; 0083 0084 QCheckBox *permissionsEnabled; 0085 0086 KComboBox *ownerW; 0087 KComboBox *ownerR; 0088 KComboBox *ownerX; 0089 KComboBox *groupW; 0090 KComboBox *groupR; 0091 KComboBox *groupX; 0092 KComboBox *allW; 0093 KComboBox *allX; 0094 KComboBox *allR; 0095 0096 FilterTabs *fltTabs; 0097 0098 private: 0099 void changeDate(KLineEdit *p); 0100 void fillList(KComboBox *list, const QString &filename); 0101 void invalidDateMessage(KLineEdit *p); 0102 static QDate stringToDate(const QString &text) 0103 { 0104 // 30.12.16 is interpreted as 1916-12-30 0105 return QLocale().toDate(text, QLocale::ShortFormat).addYears(100); 0106 } 0107 static QString dateToString(const QDate &date) 0108 { 0109 return QLocale().toString(date, QLocale::ShortFormat); 0110 } 0111 }; 0112 0113 #endif /* ADVANCEDFILTER_H */