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