Sayonara Player
src
Gui
Player
GUI_Player.h
1
/* GUI_Simpleplayer.h */
2
3
/* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4
*
5
* This file is part of sayonara player
6
*
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU General Public License for more details.
16
17
* You should have received a copy of the GNU General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
#ifndef GUI_SIMPLEPLAYER_H
22
#define GUI_SIMPLEPLAYER_H
23
24
#include "Gui/Utils/GuiClass.h"
25
#include "Gui/Utils/Widgets/Widget.h"
26
#include "Utils/Message/MessageReceiverInterface.h"
27
#include "Utils/Pimpl.h"
28
29
#include <QSystemTrayIcon>
30
31
class
GUI_TrayIcon
;
32
class
GUI_Logger
;
33
class
QAction;
34
class
QMessageBox;
35
class
QTranslator;
36
37
UI_FWD(
GUI_Player
)
38
39
class
CoverDataProvider
;
40
class
DynamicPlaybackChecker
;
41
42
namespace
PlayerPlugin
43
{
44
class
Handler
;
45
class
Base
;
46
}
47
48
namespace
Playlist
49
{
50
class
Handler;
51
}
52
53
class
PlayManager
;
54
55
class
GUI_Player
:
56
public
Gui::MainWindow
,
57
public
MessageReceiverInterface
58
{
59
Q_OBJECT
60
PIMPL(
GUI_Player
)
61
UI_CLASS(
GUI_Player
)
62
63
signals:
64
void
sigClosed();
65
66
public
:
67
GUI_Player
(
PlayManager
* playManager,
Playlist::Handler
* playlistHandler,
CoverDataProvider
* coverProvider,
68
DynamicPlaybackChecker
* dynamicPlaybackChecker, QWidget* parent =
nullptr
);
69
~
GUI_Player
()
override
;
70
71
void
registerPreferenceDialog(QAction* dialog_action);
72
void
requestShutdown();
73
74
private
:
75
void
initTrayActions();
76
void
initConnections();
77
void
initLibrary();
78
void
initControlSplitter();
79
void
initMainSplitter();
80
void
initFontChangeFix();
81
void
initGeometry();
82
83
void
checkControlSplitter();
84
85
void
fullscreenChanged();
86
void
initControls();
87
void
controlstyleChanged();
88
89
void
showLibraryChanged();
90
void
addCurrentLibrary();
91
void
removeCurrentLibrary();
92
93
private
slots:
94
void
playstateChanged(PlayState state);
95
void
playError(
const
QString& message);
96
97
void
splitterMainMoved(
int
pos,
int
idx);
98
void
splitterControlsMoved(
int
pos,
int
idx);
99
100
void
currentLibraryChanged();
101
102
void
minimize();
103
void
reallyClose();
104
105
void
trayIconActivated(QSystemTrayIcon::ActivationReason reason);
106
void
currentTrackChanged(
const
MetaData
& md);
107
108
/* Plugins */
109
void
pluginAdded(
PlayerPlugin::Base
* plugin);
110
void
pluginActionTriggered(
bool
b);
111
112
protected
:
113
void
closeEvent(QCloseEvent* e)
override
;
114
void
resizeEvent(QResizeEvent* e)
override
;
115
bool
event(QEvent* e)
override
;
116
117
// Methods for other mudules to display info/warning/error
118
Message::Answer
errorReceived(
const
QString& error,
const
QString& senderName = QString())
override
;
119
Message::Answer
warningReceived(
const
QString& error,
const
QString& senderName = QString())
override
;
120
Message::Answer
infoReceived(
const
QString& error,
const
QString& senderName = QString())
override
;
121
Message::Answer
questionReceived(
const
QString& info,
const
QString& senderName = QString(),
122
Message::QuestionType
type = Message::QuestionType::YesNo)
override
;
123
124
void
languageChanged()
override
;
125
};
126
127
#endif // GUI_SIMPLEPLAYER_H
GUI_Player
Definition:
GUI_Player.h:58
Message::Answer
Answer
The GlobalMessage class.
Definition:
Message.h:35
PlayerPlugin::Base
Definition:
PlayerPluginBase.h:40
PlayManager
Global handler for current playback state (Singleton)
Definition:
PlayManager.h:36
PlayerPlugin::Handler
Definition:
PlayerPluginHandler.h:35
GUI_Logger
Definition:
GUI_Logger.h:54
Playlist::Handler
Global handler for playlists.
Definition:
PlaylistHandler.h:56
Gui::MainWindow
The SayonaraMainWindow class.
Definition:
Widget.h:65
PlayerPlugin
Interface for PlayerPlugin classes. get_name() and language_changed() must be overwritten.
Definition:
GUI_Player.h:43
CoverDataProvider
Definition:
CoverDataProvider.h:28
MetaData
The MetaData class.
Definition:
MetaData.h:47
MessageReceiverInterface
The GlobalMessageReceiverInterface class implement this class in order to have the possibility to sho...
Definition:
MessageReceiverInterface.h:34
DynamicPlaybackChecker
Definition:
DynamicPlayback.h:24
GUI_TrayIcon
Definition:
GUI_TrayIcon.h:74
Message::QuestionType
QuestionType
The GlobalMessage class.
Definition:
Message.h:48
Generated on Fri Jul 16 2021 00:00:00 for Sayonara Player by
1.8.20