Miam-Player  0.8.0
A nice music player
mainwindow.h
Go to the documentation of this file.
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3 
4 #include <QCommandLineParser>
5 #include <QMainWindow>
6 #include <QStack>
7 
9 #include <abstractview.h>
10 #include <mediaplayer.h>
11 #include <uniquelibrary.h>
12 
14 #include "dialogs/playlistdialog.h"
15 #include "pluginmanager.h"
16 #include "remotecontrol.h"
18 
19 #include "ui_mainwindow.h"
20 
26 class MainWindow : public QMainWindow, public Ui::MainWindow
27 {
28  Q_OBJECT
29 private:
30  MediaPlayer *_mediaPlayer;
31  PluginManager *_pluginManager;
32  RemoteControl *_remoteControl;
33  AbstractView *_currentView;
34  TagEditor *_tagEditor;
35  QxtGlobalShortcut *_shortcutSkipBackward;
36  QxtGlobalShortcut *_shortcutStop;
37  QxtGlobalShortcut *_shortcutPlayPause;
38  QxtGlobalShortcut *_shortcutSkipForward;
39 
40  QTranslator _translator;
41 
42 public:
43  explicit MainWindow(QWidget *parent = nullptr);
44 
45  void activateLastView();
46 
47  void dispatchDrop(QDropEvent *event);
48 
49  virtual bool eventFilter(QObject *watched, QEvent *event) override;
50 
51  void init();
52 
53  void loadPlugins();
54 
55  inline MediaPlayer *mediaPlayer() const { return _mediaPlayer; }
56 
58  void setupActions();
59 
61  void updateFonts(const QFont &font);
62 
63 protected:
65  virtual void changeEvent(QEvent *event) override;
66 
67  virtual void closeEvent(QCloseEvent *) override;
68 
69  virtual void dragEnterEvent(QDragEnterEvent *event) override;
70 
71  virtual void dragMoveEvent(QDragMoveEvent *event) override;
72 
73  virtual void dropEvent(QDropEvent *event) override;
74 
75  virtual bool event(QEvent *event) override;
76 
77 private:
78  void initQuickStart();
79 
80  void toggleShortcutsOnMenuBar(bool enabled);
81 
82 public slots:
84 
85  void processArgs(const QStringList &args);
86 
87 private slots:
88  void activateView(QAction *menuAction);
89 
90  void bindShortcut(const QString&, const QKeySequence &keySequence);
91 
92  void rescanLibrary();
93 
94  void showTagEditor();
95 
96  void syncLibrary(const QStringList &oldLocations, const QStringList &newLocations);
97 
98  void toggleMenuBar(bool checked);
99 };
100 
101 #endif // MAINWINDOW_H
virtual void dragEnterEvent(QDragEnterEvent *event) override
Definition: mainwindow.cpp:327
void activateLastView()
Definition: mainwindow.cpp:69
The RemoteControl class is a class which allows client-side applications (like App on SmartPhones) to...
Definition: remotecontrol.h:14
MediaPlayer * mediaPlayer() const
Definition: mainwindow.h:55
QxtWidgets
Definition: qxtglobalshortcut.h:40
void createCustomizeOptionsDialog()
Definition: mainwindow.cpp:422
void dispatchDrop(QDropEvent *event)
Definition: mainwindow.cpp:94
virtual void closeEvent(QCloseEvent *) override
Definition: mainwindow.cpp:317
void setupActions()
Definition: mainwindow.cpp:176
virtual void dropEvent(QDropEvent *event) override
Definition: mainwindow.cpp:343
virtual void dragMoveEvent(QDragMoveEvent *event) override
Definition: mainwindow.cpp:332
void processArgs(const QStringList &args)
Definition: mainwindow.cpp:435
void loadPlugins()
Definition: mainwindow.cpp:170
The TagEditor class is the main class for editing metadata inside this soft.
Definition: tageditor.h:23
virtual void changeEvent(QEvent *event) override
Definition: mainwindow.cpp:303
virtual bool event(QEvent *event) override
Definition: mainwindow.cpp:352
MainWindow(QWidget *parent=nullptr)
Definition: mainwindow.cpp:22
virtual bool eventFilter(QObject *watched, QEvent *event) override
Definition: mainwindow.cpp:388
The PluginManager class can dynamically load or unload plugins without restarting the application...
Definition: pluginmanager.h:23
void updateFonts(const QFont &font)
Definition: mainwindow.cpp:290
void init()
Definition: mainwindow.cpp:149
Definition: ui_mainwindow.h:323
The AbstractView class is the base class for all views in Miam-Player.
Definition: abstractview.h:22
The MainWindow class is the entry point of this audio player.
Definition: mainwindow.h:26
The MediaPlayer class is a central class which controls local and remote sources. ...
Definition: mediaplayer.h:22