summaryrefslogtreecommitdiffstats
path: root/src/library/dlgtagfetcher.h
diff options
context:
space:
mode:
authorRJ Ryan <rryan@mixxx.org>2016-01-24 15:47:40 -0800
committerRJ Ryan <rryan@mixxx.org>2016-01-24 15:47:40 -0800
commita4d9993d4c6466b5c7566676c12a96412343d75e (patch)
tree98c87cba70142d8f69a3e1804302f17f25fbf218 /src/library/dlgtagfetcher.h
parent385ff8079b3ba5dfdfc491cd976780c87d42c08e (diff)
Tidy up the dialog mess in src/.
Diffstat (limited to 'src/library/dlgtagfetcher.h')
-rw-r--r--src/library/dlgtagfetcher.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/library/dlgtagfetcher.h b/src/library/dlgtagfetcher.h
new file mode 100644
index 0000000000..a90c578166
--- /dev/null
+++ b/src/library/dlgtagfetcher.h
@@ -0,0 +1,62 @@
+#ifndef DLGTAGFETCHER_H
+#define DLGTAGFETCHER_H
+
+#include <QDialog>
+#include <QTreeWidget>
+
+#include "library/ui_dlgtagfetcher.h"
+#include "trackinfoobject.h"
+#include "musicbrainz/tagfetcher.h"
+
+class DlgTagFetcher : public QDialog, public Ui::DlgTagFetcher {
+ Q_OBJECT
+
+ public:
+ DlgTagFetcher(QWidget *parent);
+ virtual ~DlgTagFetcher();
+
+ void init();
+
+ enum networkError {
+ NOERROR,
+ HTTPERROR,
+ FTWERROR
+ };
+
+ public slots:
+ void loadTrack(const TrackPointer track);
+ void updateTrackMetadata(TrackInfoObject* pTIO);
+
+ signals:
+ void next();
+ void previous();
+
+ private slots:
+ void fetchTagFinished(const TrackPointer,const QList<TrackPointer>& tracks);
+ void resultSelected();
+ void fetchTagProgress(QString);
+ void slotNetworkError(int, QString);
+ void apply();
+ void quit();
+
+ private:
+ void updateStack();
+ void addDivider(const QString& text, QTreeWidget* parent) const;
+ void addTrack(const TrackPointer track, int resultIndex,
+ QTreeWidget* parent) const;
+ struct Data {
+ Data() : m_pending(true), m_selectedResult(-1) {}
+
+ bool m_pending;
+ int m_selectedResult;
+ QList<TrackPointer> m_results;
+ };
+
+ TrackPointer m_track;
+ Data m_data;
+ QString m_progress;
+ TagFetcher m_TagFetcher;
+ networkError m_networkError;
+};
+
+#endif // DLGTAGFETCHER_H