Miam-Player  0.8.0
A nice music player
albumcover.h
Go to the documentation of this file.
1 #ifndef ALBUMCOVER_H
2 #define ALBUMCOVER_H
3 
4 #include <QMenu>
5 
6 #include "cover.h"
7 
13 class AlbumCover : public QWidget
14 {
15  Q_OBJECT
16 private:
17  QMenu *_imageMenu;
18 
19  bool _isCoverForSingleAlbum;
20 
21  Cover *_cover;
22  QString _album;
23 
24  QMenu *_subMenuApplyTo;
25 
26  QAction *_extractCoverAction;
27  QAction *_removeCoverAction;
28  QAction *_applyCoverToCurrentAlbumAction;
29 
30 public:
31  explicit AlbumCover(QWidget *parent = nullptr);
32 
34  void resetCover();
35 
37  void setCover(Cover *cover);
38 
39  inline void setCoverForSingleAlbum(bool isCoverForSingleAlbum) { _isCoverForSingleAlbum = isCoverForSingleAlbum; }
40 
41  inline void setAlbum(const QString &album) { _album = album; }
42 
43  inline QString album() const { return _album; }
44 
45  inline QMenu * contextMenu() const { return _imageMenu; }
46 
47 private:
49  void createPixmapFromFile(const QString &fileName);
50 
51 protected:
53  void contextMenuEvent(QContextMenuEvent *event) override;
54 
56  void dragEnterEvent(QDragEnterEvent *event) override;
57 
59  void dragMoveEvent(QDragMoveEvent *event) override;
60 
62  void dropEvent(QDropEvent *event) override;
63 
65  void paintEvent(QPaintEvent *) override;
66 
67 private slots:
69  void loadCover();
70 
72  void removeCover();
73 
75  void extractCover();
76 
78  void applyCoverToAll();
79 
81  void applyCoverToAlbumOnly();
82 
83 signals:
85  void aboutToApplyCoverToAll(bool, Cover*);
86 
87  void coverHasChanged(Cover*);
88 };
89 
90 #endif // ALBUMCOVER_H
void setCover(Cover *cover)
Definition: albumcover.cpp:39
void dragMoveEvent(QDragMoveEvent *event) override
Definition: albumcover.cpp:107
void coverHasChanged(Cover *)
The Cover class.
Definition: cover.h:14
void contextMenuEvent(QContextMenuEvent *event) override
Definition: albumcover.cpp:60
void paintEvent(QPaintEvent *) override
Definition: albumcover.cpp:122
QString album() const
Definition: albumcover.h:43
void dragEnterEvent(QDragEnterEvent *event) override
Definition: albumcover.cpp:98
void resetCover()
Definition: albumcover.cpp:32
void aboutToApplyCoverToAll(bool, Cover *)
void dropEvent(QDropEvent *event) override
Definition: albumcover.cpp:113
void setCoverForSingleAlbum(bool isCoverForSingleAlbum)
Definition: albumcover.h:39
AlbumCover(QWidget *parent=nullptr)
Definition: albumcover.cpp:16
void setAlbum(const QString &album)
Definition: albumcover.h:41
The AlbumCover class is used to manipulate cover albums inside music files.
Definition: albumcover.h:13
QMenu * contextMenu() const
Definition: albumcover.h:45