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 PLAYLISTTABMENU_H
21 #define PLAYLISTTABMENU_H
22 
23 #include "Gui/Utils/Widgets/WidgetTemplate.h"
24 #include "PlaylistMenuEntry.h"
25 #include "Utils/Pimpl.h"
26 
27 #include <QMenu>
28 
29 namespace Gui
30 {
31 	class PreferenceAction;
32 }
33 
34 namespace Playlist
35 {
36 	/**
37 	 * @brief The PlaylistTabMenu class
38 	 * @ingroup GuiPlaylists
39 	 */
40 	class TabMenu :
41 			public Gui::WidgetTemplate<QMenu>
42 	{
43 		Q_OBJECT
44 		PIMPL(TabMenu)
45 
46 		signals:
47 			void sigDeleteClicked();
48 			void sigSaveClicked();
49 			void sigSaveAsClicked();
50 			void sigCloseClicked();
51 			void sigCloseOthersClicked();
52 			void sigResetClicked();
53 			void sigRenameClicked();
54 			void sigClearClicked();
55 			void sigOpenFileClicked();
56 			void sigOpenDirClicked();
57 			void sigSaveToFileClicked();
58 
59 		public:
60 			explicit TabMenu(QWidget* parent=nullptr);
61 			~TabMenu() override;
62 
63 			void showMenuItems(MenuEntries entries);
64 			void showClose(bool b);
65 
66 			void addPreferenceAction(Gui::PreferenceAction* action);
67 
68 		protected:
69 			void languageChanged() override;
70 			void skinChanged() override;
71 	};
72 }
73 
74 #endif // PLAYLISTTABMENU_H
75