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 <minimodewidget.h>
12 #include <uniquelibrary.h>
13 
14 #include <tageditor.h>
16 #include "dialogs/playlistdialog.h"
17 #include "pluginmanager.h"
18 #include "remotecontrol.h"
19 
20 #include "ui_mainwindow.h"
21 
27 class MainWindow : public QMainWindow, public Ui::MainWindow
28 {
29  Q_OBJECT
30 private:
31  MediaPlayer *_mediaPlayer;
32  PluginManager *_pluginManager;
33  RemoteControl *_remoteControl;
34  AbstractView *_currentView;
35  TagEditor *_tagEditor;
36  MiniModeWidget *_mini;
37  QxtGlobalShortcut *_shortcutSkipBackward;
38  QxtGlobalShortcut *_shortcutStop;
39  QxtGlobalShortcut *_shortcutPlayPause;
40  QxtGlobalShortcut *_shortcutSkipForward;
41  QTranslator _translator;
42 
43 public:
44  explicit MainWindow(QWidget *parent = nullptr);
45 
46  void activateLastView();
47 
48  void dispatchDrop(QDropEvent *event);
49 
50  virtual bool eventFilter(QObject *watched, QEvent *event) override;
51 
52  void init();
53 
54  void loadPlugins();
55 
56  inline MediaPlayer *mediaPlayer() const { return _mediaPlayer; }
57 
59  void setupActions();
60 
62  void updateFonts(const QFont &font);
63 
64  inline AbstractView* currentView() const { return _currentView; }
65 
66 protected:
68  virtual void changeEvent(QEvent *event) override;
69 
70  virtual void closeEvent(QCloseEvent *) override;
71 
72  virtual void dragEnterEvent(QDragEnterEvent *event) override;
73 
74  virtual void dragMoveEvent(QDragMoveEvent *event) override;
75 
76  virtual void dropEvent(QDropEvent *event) override;
77 
78  virtual bool event(QEvent *event) override;
79 
80 private:
81  void initQuickStart();
82 
83  void toggleShortcutsOnMenuBar(bool enabled);
84 
85 public slots:
87 
88  void processArgs(const QStringList &args);
89 
90 private slots:
91  void activateView(QAction *menuAction);
92 
93  void bindShortcut(const QString&, const QKeySequence &keySequence);
94 
95  void showTagEditor();
96 
97  void switchToMiniPlayer();
98 
99  void syncLibrary(const QStringList &oldLocations, const QStringList &newLocations);
100 
101  void toggleMenuBar(bool checked);
102 };
103 
104 #endif // MAINWINDOW_H
Definition: minimodewidget.h:11
virtual void dragEnterEvent(QDragEnterEvent *event) override
Definition: mainwindow.cpp:336
void activateLastView()
Definition: mainwindow.cpp:71
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:56
QxtWidgets
Definition: qxtglobalshortcut.h:40
AbstractView * currentView() const
Definition: mainwindow.h:64
void createCustomizeOptionsDialog()
Definition: mainwindow.cpp:436
void dispatchDrop(QDropEvent *event)
Definition: mainwindow.cpp:96
virtual void closeEvent(QCloseEvent *) override
Definition: mainwindow.cpp:326
void setupActions()
Definition: mainwindow.cpp:181
virtual void dropEvent(QDropEvent *event) override
Definition: mainwindow.cpp:352
virtual void dragMoveEvent(QDragMoveEvent *event) override
Definition: mainwindow.cpp:341
void processArgs(const QStringList &args)
Definition: mainwindow.cpp:449
void loadPlugins()
Definition: mainwindow.cpp:175
The TagEditor class is the main class for editing metadata inside this soft.
Definition: tageditor.h:25
virtual void changeEvent(QEvent *event) override
Definition: mainwindow.cpp:312
virtual bool event(QEvent *event) override
Definition: mainwindow.cpp:361
MainWindow(QWidget *parent=nullptr)
Definition: mainwindow.cpp:23
virtual bool eventFilter(QObject *watched, QEvent *event) override
Definition: mainwindow.cpp:397
The PluginManager class can dynamically load or unload plugins without restarting the application...
Definition: pluginmanager.h:22
void updateFonts(const QFont &font)
Definition: mainwindow.cpp:299
void init()
Definition: mainwindow.cpp:154
Definition: ui_mainwindow.h:328
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:27
The MediaPlayer class is a central class which controls local and remote sources. ...
Definition: mediaplayer.h:22