Sayonara Player
Loading...
Searching...
No Matches
GUI_PlayerMenubar.h
1/* GUI_PlayerMenubar.h */
2
3/* Copyright (C) 2011-2024 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_PLAYERMENUBAR_H
22#define GUI_PLAYERMENUBAR_H
23
24#include "Gui/Utils/Shortcuts/ShortcutIdentifier.h"
25#include "Gui/Utils/Widgets/WidgetTemplate.h"
26#include "Utils/Pimpl.h"
27
28#include <QMenuBar>
29
30namespace Library
31{
32 class LibraryContainer;
33 class PluginHandler;
34}
35
36namespace PlayerPlugin
37{
38 class Base;
39}
40
41namespace Playlist
42{
43 class Creator;
44}
45
46class Shutdown;
47class Menubar :
48 public Gui::WidgetTemplate<QMenuBar>
49{
50 Q_OBJECT
51 PIMPL(Menubar)
52
53 signals:
54 void sigCloseClicked();
55 void sigMinimizeClicked();
56 void sigLoggerClicked();
57
58 public:
59 Menubar(Shutdown* shutdown, Playlist::Creator* playlistCreator,
60 Library::PluginHandler* pluginHandler, QWidget* parent = nullptr);
61 ~Menubar() override;
62
63 void insertPreferenceAction(QAction* action);
64
65 void showLibraryAction(bool visible);
66 void setShowLibraryActionEnabled(bool b);
67 void showLibraryMenu(bool b);
68
69 private:
70 void initDonateLink();
71 void initConnections();
72 void styleChanged();
73 void initLanguages();
74 void initSkin();
75
76 QAction* changeCurrentLibrary(Library::LibraryContainer* library);
77
78 private slots: // NOLINT(readability-redundant-access-specifiers)
79 void openDirClicked();
80 void openFilesClicked();
81 void shutdownClicked();
82 void closeClicked();
83 void minimizeClicked();
84 void skinToggled(bool b);
85 void bigCoverToggled(bool b);
86 void showLibraryToggled(bool b);
87 void showFullscreenToggled(bool b);
88 void helpClicked();
89 void aboutClicked();
90 void shortcutChanged(ShortcutIdentifier identifier);
91 void pluginAdded(PlayerPlugin::Base* plugin);
92
93 protected:
94 void languageChanged() override;
95 void skinChanged() override;
96};
97
98#endif // GUI_PLAYERMENUBAR_H
Template for Sayonara Widgets. This template is responsible for holding a reference to the settings.
Definition WidgetTemplate.h:86
Definition LibraryContainer.h:35
Definition LibraryPluginHandler.h:40
Definition GUI_PlayerMenubar.h:49
Definition PlayerPluginBase.h:40
Definition PlaylistInterface.h:60
Definition Shutdown.h:33
Interface for PlayerPlugin classes. get_name() and language_changed() must be overwritten.
Definition GUI_Player.h:47