1 
2 /* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
3  *
4  * This file is part of sayonara player
5  *
6  * This program is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10 
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15 
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef PLAYLISTBOTTOMBAR_H
21 #define PLAYLISTBOTTOMBAR_H
22 
23 #include "Gui/Utils/Widgets/Widget.h"
24 
25 #include "Components/Shutdown/Shutdown.h"
26 #include "Utils/Pimpl.h"
27 #include "Utils/Macros.h"
28 
29 #ifdef SAYONARA_WITH_SHUTDOWN
30 	class GUI_Shutdown;
31 #endif
32 
33 class DynamicPlaybackChecker;
34 
35 namespace Playlist
36 {
37 	class Mode;
38 
39 	/**
40 	 * @brief The GUI_PlaylistBottomBar class
41 	 * @ingroup GuiPlaylists
42 	 */
43 	class BottomBar :
44 			public Gui::Widget
45 	{
46 		Q_OBJECT
47 		PIMPL(BottomBar)
48 
49 		signals:
50 			void sigShowNumbersChanged(bool active);
51 			void sigPlaylistModeChanged(const ::Playlist::Mode& mode);
52 
53 		public:
54 			BottomBar(QWidget* parent=nullptr);
55 			~BottomBar() override;
56 
57 			void init(DynamicPlaybackChecker* dynamicPlaybackChecker);
58 
59 			void checkDynamicPlayButton();
60 
61 		private slots:
62 			void rep1Checked(bool checked);
63 			void repAllChecked(bool checked);
64 			void shuffleChecked(bool checked);
65 			void gaplessClicked();
66 
67 			void changePlaylistMode();
68 			void playlistModeSettingChanged();
69 
70 		#ifdef SAYONARA_WITH_SHUTDOWN
71 			void shutdownClicked();
72 			void shutdownStarted(MilliSeconds time2go);
73 			void shutdownClosed();
74 		#endif
75 
76 		protected:
77 			void languageChanged() override;
78 			void skinChanged() override;
79 			void showEvent(QShowEvent* e) override;
80 			void resizeEvent(QResizeEvent* e) override;
81 	};
82 }
83 
84 #endif // PLAYLISTBOTTOMBAR_H
85