/******************************************************************* * kftabdlg.h * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * ******************************************************************/ #ifndef KFTABDLG_H #define KFTABDLG_H #include // for KDigitValidator #include #include #include #include "kdatecombo.h" class QButtonGroup; class QPushButton; class QRadioButton; class QCheckBox; class KLineEdit; class QString; class QDate; class QRegExp; class KDialog; class KComboBox; class KIntSpinBox; class QLabel; class KfDirDialog; class KfindTabWidget: public KTabWidget { Q_OBJECT public: KfindTabWidget(QWidget * parent = 0); virtual ~KfindTabWidget(); void initMimeTypes(); void initSpecialMimeTypes(); void setQuery(class KQuery * query); void setDefaults(); void beginSearch(); void endSearch(); void loadHistory(); void saveHistory(); bool isSearchRecursive(); void setURL( const KUrl & url ); virtual QSize sizeHint() const; public Q_SLOTS: void setFocus(); void slotUpdateDateLabelsForNumber(int value); void slotUpdateDateLabelsForType(int index); void slotUpdateByteComboBox(int value); private Q_SLOTS: void getDirectory(); void fixLayout(); void slotSizeBoxChanged(int); void slotEditRegExp(); Q_SIGNALS: void startSearch(); protected: public: KComboBox *nameBox; KComboBox *dirBox; // for first page QCheckBox *subdirsCb; QCheckBox *useLocateCb; QCheckBox *hiddenFilesCb; // for third page KComboBox *typeBox; KLineEdit * textEdit; QCheckBox *caseSensCb; KComboBox *m_usernameBox; KComboBox *m_groupBox; //for fourth page KLineEdit *metainfoEdit; KLineEdit *metainfokeyEdit; private: bool isDateValid(); QString date2String(const QDate &); QDate &string2Date(const QString &, QDate * ); void updateDateLabels(int type, int value); QWidget *pages[3]; //1st page QPushButton *browseB; KfDirDialog *dirselector; //2nd page QCheckBox *findCreated; KComboBox *betweenType; QLabel *andL; QButtonGroup *bg; QRadioButton *rb[2]; KDateCombo * fromDate; KDateCombo * toDate; KIntSpinBox *timeBox; //3rd page KComboBox *sizeBox; KComboBox *sizeUnitBox; KIntSpinBox *sizeEdit; QCheckBox *caseContextCb; QCheckBox *binaryContextCb; QCheckBox *regexpContentCb; KDialog *regExpDialog; KUrl m_url; KMimeType::List m_types; QStringList m_ImageTypes; QStringList m_VideoTypes; QStringList m_AudioTypes; }; class KDigitValidator : public QValidator { Q_OBJECT public: KDigitValidator(QWidget * parent); ~KDigitValidator(); QValidator::State validate(QString & input, int &) const; private: QRegExp *r; }; #endif