smartplaylisteditor.h

来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 148 行

H
148
字号
// (c) Pierpaolo Di Panfilo 2004// (c) Alexandre Pereira de Oliveira 2005// (c) 2006 Peter C. Ndikuwera <pndiku@gmail.com>// See COPYING file for licensing information#ifndef SMARTPLAYLISTEDITOR_H#define SMARTPLAYLISTEDITOR_H#include <kdialogbase.h> //baseclass#include <qdom.h>#include <qhbox.h>       //baseclass#include <qptrlist.h>    //definition required#include <klineedit.h>   //inline functionclass KComboBox;class KIntSpinBox;class KLineEdit;class QCheckBox;class QDateEdit;class QLabel;class QToolButton;class QVGroupBox;class CriteriaEditor;class SmartPlaylistEditor : public KDialogBase{Q_OBJECT    friend class CriteriaEditor;    public:        SmartPlaylistEditor( QString playlist_name, QWidget *parent, const char *name=0 );        SmartPlaylistEditor( QWidget *parent, QDomElement xml, const char *name=0 );        QDomElement result();        QString name() const { return m_nameLineEdit->text().replace( "\n", " " ); }        enum CriteriaType { criteriaAll = 0, criteriaAny = 1 };    public slots:        void addCriteriaAny();        void addCriteriaAny( QDomElement &xml);        void removeCriteriaAny( CriteriaEditor *criteria);        void addCriteriaAll();        void addCriteriaAll( QDomElement &xml);        void removeCriteriaAll( CriteriaEditor *criteria);    private slots:        void updateOrderTypes( int index );    private:        void init(QString defaultName);        void updateMatchWidgets();        KLineEdit *m_nameLineEdit;        QCheckBox *m_matchAnyCheck;        QCheckBox *m_matchAllCheck;        // matching boxes        QVGroupBox *m_criteriaAnyGroupBox;        QVGroupBox *m_criteriaAllGroupBox;        //limit widgets        QCheckBox *m_limitCheck;        KIntSpinBox *m_limitSpin;        //order by widgets        QCheckBox *m_orderCheck;        KComboBox *m_orderCombo;        KComboBox *m_orderTypeCombo;        //expand by        QCheckBox *m_expandCheck;        KComboBox *m_expandCombo;        QPtrList<CriteriaEditor> m_criteriaEditorAnyList;        QPtrList<CriteriaEditor> m_criteriaEditorAllList;};class CriteriaEditor : public QHBox{Q_OBJECT    public:        CriteriaEditor( SmartPlaylistEditor *editor, QWidget *parent, int criteriaType, QDomElement criteria = QDomElement() );        ~CriteriaEditor();        QString getSearchCriteria();        void setSearchCriteria( const QString &str );        QDomElement getDomSearchCriteria( QDomDocument &doc );        void enableRemove( bool );    private slots:        void slotRemoveCriteriaAny();        void slotRemoveCriteriaAll();        void slotAddCriteriaAny();        void slotAddCriteriaAll();        void slotFieldSelected( int );        void loadEditWidgets();    private:        enum ValueType { String, AutoCompletionString, Number, Year, Date, Rating, Length };        void loadCriteriaList( int valueType, QString condition = QString::null );        int getValueType( int fieldIndex );        inline int indexToRating( int );        inline int ratingToIndex( int );        SmartPlaylistEditor *m_playlistEditor;        int m_currentValueType;        QString m_lastCriteria;        KComboBox *m_fieldCombo;        KComboBox *m_criteriaCombo;        QToolButton *m_addButton;        QToolButton *m_removeButton;        //editing widgets        QHBox *m_editBox;        KLineEdit *m_lineEdit;        KComboBox *m_comboBox;        KComboBox *m_comboBox2;        KIntSpinBox *m_intSpinBox1;        KIntSpinBox *m_intSpinBox2;        QDateEdit *m_dateEdit1;        QDateEdit *m_dateEdit2;        KComboBox *m_dateCombo;        QLabel *m_rangeLabel;	KComboBox *m_lengthCombo;};inline intCriteriaEditor::indexToRating( int index ){    if ( index <= 10 && index >= 0 ) return index;    return -1;}inline intCriteriaEditor::ratingToIndex( int rating ){    if ( rating <= 10 && rating >= 0 ) return rating;    return -1;}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?