Miam-Player  0.8.0
A nice music player
tageditor.h
Go to the documentation of this file.
1 #ifndef TAGEDITOR_H
2 #define TAGEDITOR_H
3 
5 #include <model/sqldatabase.h>
6 #include <cover.h>
7 #include "abstractview.h"
8 #include "tagconverter.h"
9 
10 #include "ui_tageditor.h"
11 
12 #include <QUrl>
13 #include <QWidget>
14 
24 {
25  Q_OBJECT
26 
27 private:
28  QMap<int, QComboBox*> _combos;
29 
30  static QStringList genres;
31 
32  QMap<int, Cover*> _covers;
33  QMap<int, Cover*> _unsavedCovers;
34 
35  QMap<int, QSet<QString>> _cacheData;
36 
37 public:
40 
41  explicit TagEditor(QWidget *parent = nullptr);
42 
43  void addDirectory(const QDir &dir);
44 
45  virtual QPair<QString, QObjectList> extensionPoints() const override;
46 
47  virtual QList<QUrl> selectedTracks() override;
48 
49  inline virtual ViewType type() const override { return VT_BuiltIn; }
50 
51  virtual void updateSelectedTracks() override;
52 
53  virtual bool viewProperty(Settings::ViewProperty vp) const override;
54 
55 protected:
56  virtual void changeEvent(QEvent *event) override;
57 
58  virtual void closeEvent(QCloseEvent *event) override;
59 
60  virtual void dragEnterEvent(QDragEnterEvent *event) override;
61 
62  virtual void dragMoveEvent(QDragMoveEvent *event) override;
63 
64  virtual void dropEvent(QDropEvent *event) override;
65 
67  virtual bool eventFilter(QObject *obj, QEvent *event) override;
68 
69 private:
70  void buildCache();
71 
72  void clearCovers(QMap<int, Cover *> &coversToRemove);
73 
75  void addTracks(const QStringList &tracks);
76 
77 public slots:
79  void addItemsToEditor(const QList<QUrl> &tracks);
80 
82  void clear();
83 
84  virtual void setViewProperty(Settings::ViewProperty vp, QVariant value) override;
85 
86 private slots:
87  void applyCoverToAll(bool isForAll, Cover *cover);
88 
90  void commitChanges();
91 
93  void displayTags();
94 
96  void displayCover();
97 
98  void recordSingleItemChange(QTableWidgetItem *item);
99 
100  void replaceCover(Cover *newCover);
101 
103  void rollbackChanges();
104 
105  void updateCells(QString text);
106 
107 signals:
108  void aboutToCloseTagEditor();
109 };
110 
111 #endif // TAGEDITOR_H
ViewProperty
Definition: settings.h:32
virtual void changeEvent(QEvent *event) override
Definition: tageditor.cpp:129
virtual void setViewProperty(Settings::ViewProperty vp, QVariant value) override
Definition: tageditor.cpp:287
virtual bool viewProperty(Settings::ViewProperty vp) const override
Definition: tageditor.cpp:117
virtual void closeEvent(QCloseEvent *event) override
Definition: tageditor.cpp:139
void addItemsToEditor(const QList< QUrl > &tracks)
Definition: tageditor.cpp:261
The TagConverter class displays a small popup to help one to extract Tag into files and vice-versa...
Definition: tagconverter.h:16
ViewType
Definition: abstractview.h:39
The SelectedTracksModel class.
Definition: selectedtracksmodel.h:14
The Cover class.
Definition: cover.h:14
virtual QList< QUrl > selectedTracks() override
Definition: tageditor.cpp:102
virtual bool eventFilter(QObject *obj, QEvent *event) override
Definition: tageditor.cpp:164
virtual QPair< QString, QObjectList > extensionPoints() const override
Definition: tageditor.cpp:95
void aboutToCloseTagEditor()
void addDirectory(const QDir &dir)
Definition: tageditor.cpp:81
virtual void updateSelectedTracks() override
Definition: tageditor.cpp:111
virtual void dragMoveEvent(QDragMoveEvent *event) override
Definition: tageditor.cpp:150
The TagEditor class is the main class for editing metadata inside this soft.
Definition: tageditor.h:23
void clear()
Definition: tageditor.cpp:273
virtual void dropEvent(QDropEvent *event) override
Definition: tageditor.cpp:155
virtual ViewType type() const override
Definition: tageditor.h:49
Definition: ui_tageditor.h:414
TagEditor(QWidget *parent=nullptr)
Definition: tageditor.cpp:33
The AbstractView class is the base class for all views in Miam-Player.
Definition: abstractview.h:22
TagConverter * tagConverter
Definition: tageditor.h:39
virtual void dragEnterEvent(QDragEnterEvent *event) override
Definition: tageditor.cpp:145
Definition: abstractview.h:40