// (c) 2006 Giovanni Venturi // See COPYING file for licensing information. #ifndef AMAROK_EDITFILTERDIALOG_H #define AMAROK_EDITFILTERDIALOG_H #include #include #include class TQWidget; class TQVBoxLayout; class TQComboBox; class TQCheckBox; class TQLineEdit; class TQRadioButton; class TQGroupBox; class TQSpinBox; class TQStringList; class KComboBox; class EditFilterDialog : public KDialogBase { Q_OBJECT TQ_OBJECT public: EditFilterDialog( TQWidget* parent, bool metaBundleKeywords, const TQString &text = "" ); ~EditFilterDialog(); TQString filter() const; signals: void filterChanged( const TQString &filter ); private: TQVBoxLayout *m_mainLay; TQCheckBox *m_prefixNOT; TQComboBox *m_comboKeyword; KLineEdit *m_editKeyword; TQGroupBox *m_groupBox; TQComboBox *m_comboCondition; TQLabel *m_filesizeLabel; TQComboBox *m_comboUnitSize; TQRadioButton *m_minMaxRadio; TQSpinBox *m_spinMin1, *m_spinMin2; TQLabel *m_andLabel; TQSpinBox *m_spinMax1, *m_spinMax2; TQGroupBox *m_groupBox2; TQRadioButton *m_checkALL; TQRadioButton *m_checkAtLeastOne; TQRadioButton *m_checkExactly; TQRadioButton *m_checkExclude; TQValueList m_actionCheck; TQGroupBox *m_groupBox3; TQRadioButton *m_checkAND; TQRadioButton *m_checkOR; bool m_appended; // true if a filter appended int m_selectedIndex; // the position of the selected keyword in the combobox TQValueVector m_vector; // the vector of the amarok filter keyword TQString m_filterText; // the resulting filter string TQString m_previousFilterText; // the previous resulting filter string TQString m_strPrefixNOT; // is empty if no NOT prefix is needed else it's "-" private: void exclusiveSelectOf( int which ); TQString keywordConditionString(const TQString& keyword) const; void setMinMaxValueSpins(); private slots: void selectedKeyword(int index); void minSpinChanged(int value); void maxSpinChanged(int value); void textWanted(); void textWanted( const TQStringList &completions ); void valueWanted(); void chooseCondition(int index); void chooseOneValue(); void chooseMinMaxValue(); void slotCheckAll(); void slotCheckAtLeastOne(); void slotCheckExactly(); void slotCheckExclude(); void slotCheckAND(); void slotCheckOR(); void assignPrefixNOT(); protected slots: virtual void slotDefault(); virtual void slotUser1(); virtual void slotUser2(); virtual void slotOk(); }; #endif /* AMAROK_EDITFILTERDIALOG_H */