00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef KEDIT_TAGS_DIALOG_H
00020 #define KEDIT_TAGS_DIALOG_H
00021
00022 #include <kdialog.h>
00023 #include <nepomuk/tag.h>
00024
00025 class KLineEdit;
00026 class QListWidget;
00027 class QListWidgetItem;
00028 class QPushButton;
00029 class QTimer;
00030
00039 class KEditTagsDialog : public KDialog
00040 {
00041 Q_OBJECT
00042
00043 public:
00044 explicit KEditTagsDialog(const QList<Nepomuk::Tag>& tags,
00045 QWidget* parent = 0,
00046 Qt::WFlags flags = 0);
00047
00048 virtual ~KEditTagsDialog();
00049
00050 QList<Nepomuk::Tag> tags() const;
00051
00052 virtual bool eventFilter(QObject* watched, QEvent* event);
00053
00054 protected slots:
00055 virtual void slotButtonClicked(int button);
00056
00057 private slots:
00058 void slotTextEdited(const QString& text);
00059 void slotItemEntered(QListWidgetItem* item);
00060 void showDeleteButton();
00061 void deleteTag();
00062
00063 private:
00064 void loadTags();
00065 void removeNewTagItem();
00066
00067 private:
00068 QList<Nepomuk::Tag> m_tags;
00069 QListWidget* m_tagsList;
00070 QListWidgetItem* m_newTagItem;
00071 QListWidgetItem* m_deleteCandidate;
00072 KLineEdit* m_newTagEdit;
00073
00074 QPushButton* m_deleteButton;
00075 QTimer* m_deleteButtonTimer;
00076 };
00077
00078 #endif