summaryrefslogtreecommitdiffstats
path: root/noatun/modules/metatag/edit.h
diff options
context:
space:
mode:
Diffstat (limited to 'noatun/modules/metatag/edit.h')
-rw-r--r--noatun/modules/metatag/edit.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/noatun/modules/metatag/edit.h b/noatun/modules/metatag/edit.h
new file mode 100644
index 00000000..d6b0ab9c
--- /dev/null
+++ b/noatun/modules/metatag/edit.h
@@ -0,0 +1,55 @@
+#ifndef EDITOR_H
+#define EDITOR_H
+
+#include <kdialogbase.h>
+#include <noatun/playlist.h>
+#include <qptrlist.h>
+#include <qvariant.h>
+
+class KFileMetaInfo;
+class KFileMetaInfoItem;
+class QGridLayout;
+
+struct MetaWidget {
+ QWidget *widget;
+ QString key;
+};
+
+class Editor:public KDialogBase {
+ Q_OBJECT
+ public:
+ Editor();
+
+ signals:
+ void saved(PlaylistItem &);
+
+ public slots:
+ void open(const PlaylistItem & i);
+
+ protected slots:
+ void save();
+ void modified();
+
+ protected:
+ bool keyAddable(const KFileMetaInfo &, QString);
+ QString keyGroup(const KFileMetaInfo &, QString);
+
+ void saveControl(KFileMetaInfo& meta_info, const MetaWidget&);
+ MetaWidget *createControl(KFileMetaInfo& meta_info, const QString &label, const QString &key, QVariant::Type default_type, bool optional, QWidget *parent);
+
+ QPtrList<MetaWidget> mControls;
+
+ QWidget *mMainWidget;
+ QGridLayout *mGrid;
+ int mNextRow;
+
+ bool mFileWritable;
+ bool mDirty;
+
+ QLabel *mFile;
+ QLabel *mFileIcon;
+ const char *filename;
+ PlaylistItem item;
+};
+
+#endif