Miam-Player  0.8.0
A nice music player
abstractview.h
Go to the documentation of this file.
1 #ifndef ABSTRACTVIEW_H
2 #define ABSTRACTVIEW_H
3 
4 #include "miamcore_global.h"
5 #include "mediaplayer.h"
7 #include "settings.h"
8 
9 #include <QDir>
10 #include <QModelIndex>
11 
12 class MusicSearchEngine;
13 
22 class MIAMCORE_LIBRARY AbstractView : public QWidget
23 {
24  Q_OBJECT
25 private:
26  Q_ENUMS(ViewType)
27 
28  AbstractView *_origin;
29 
30 protected:
32 
33 public:
34  AbstractView(AbstractMediaPlayerControl *mediaPlayerControl, QWidget *parent = nullptr)
35  : QWidget(parent)
36  , _origin(nullptr)
37  , _mediaPlayerControl(mediaPlayerControl) {}
38 
39  enum ViewType {
40  VT_BuiltIn = 0,
41  VT_Plugin = 1
42  };
43 
44  virtual ~AbstractView() {}
45 
46  virtual void bindShortcut(const QString & /*objectName*/, const QKeySequence & /*keySequence*/) {}
47 
48  virtual QPair<QString, QObjectList> extensionPoints() const { return qMakePair(QString(), QObjectList()); }
49 
50  inline AbstractMediaPlayerControl* mediaPlayerControl() const { return _mediaPlayerControl; }
51 
53 
54  inline virtual void setMediaPlayerControl(AbstractMediaPlayerControl *mpc) { _mediaPlayerControl = mpc; }
55 
56  inline void setOrigin(AbstractView *origin) { _origin = origin; }
57  inline AbstractView* origin() const { return _origin; }
58 
59  virtual ViewType type() const = 0;
60 
61  virtual bool viewProperty(Settings::ViewProperty) const { return false; }
62 
63 public slots:
64  virtual void initFileExplorer(const QDir &) {}
65 
66  virtual void setViewProperty(Settings::ViewProperty vp, QVariant value) = 0;
67 
68  virtual void volumeSliderIncrease() {}
69 
70  virtual void volumeSliderDecrease() {}
71 
72 signals:
73  void modelReloadRequested();
74 
75  void aboutToSendToTagEditor(const QList<QUrl> &tracks);
76 };
77 
78 #endif // ABSTRACTVIEW_H
ViewProperty
Definition: settings.h:32
AbstractView(AbstractMediaPlayerControl *mediaPlayerControl, QWidget *parent=nullptr)
Definition: abstractview.h:34
virtual void setMusicSearchEngine(MusicSearchEngine *)
Definition: abstractview.h:52
virtual void initFileExplorer(const QDir &)
Definition: abstractview.h:64
ViewType
Definition: abstractview.h:39
virtual QPair< QString, QObjectList > extensionPoints() const
Definition: abstractview.h:48
AbstractMediaPlayerControl * _mediaPlayerControl
Definition: abstractview.h:31
virtual bool viewProperty(Settings::ViewProperty) const
Definition: abstractview.h:61
virtual ~AbstractView()
Definition: abstractview.h:44
void setOrigin(AbstractView *origin)
Definition: abstractview.h:56
The AbstractMediaPlayerControl class is a class that can control a MediaPlayer instance.
Definition: abstractmediaplayercontrol.h:14
virtual void bindShortcut(const QString &, const QKeySequence &)
Definition: abstractview.h:46
virtual void volumeSliderIncrease()
Definition: abstractview.h:68
virtual void volumeSliderDecrease()
Definition: abstractview.h:70
AbstractMediaPlayerControl * mediaPlayerControl() const
Definition: abstractview.h:50
The AbstractView class is the base class for all views in Miam-Player.
Definition: abstractview.h:22
AbstractView * origin() const
Definition: abstractview.h:57
The MusicSearchEngine class.
Definition: musicsearchengine.h:15
virtual void setMediaPlayerControl(AbstractMediaPlayerControl *mpc)
Definition: abstractview.h:54
#define MIAMCORE_LIBRARY
Definition: miamcore_global.h:10