1 /* PlaylistTabWidget.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 PLAYLISTTABWIDGET_H 22 #define PLAYLISTTABWIDGET_H 23 24 #include "PlaylistMenuEntry.h" 25 #include "Utils/Pimpl.h" 26 27 #include <QTabWidget> 28 29 namespace Playlist 30 { 31 /** 32 * @brief The PlaylistTabWidget class 33 * @ingroup GuiPlaylists 34 */ 35 class TabWidget : 36 public QTabWidget 37 { 38 Q_OBJECT 39 PIMPL(TabWidget) 40 41 signals: 42 void sigOpenFile(int tabIndex, const QStringList& files); 43 void sigOpenDir(int tabIndex, const QString& dir); 44 void sigTabReset(int tabIndex); 45 void sigTabSave(int tabIndex); 46 void sigTabSaveAs(int tabIndex, const QString& name); 47 void sigTabSaveToFile(int tabIndex, const QString& filename); 48 void sigTabRename(int tabIndex, const QString& name); 49 void sigTabDelete(int tabIndex); 50 void sigTabClear(int tabIndex); 51 void sigAddTabClicked(); 52 void sigMetadataDropped(int tabIndex, const MetaDataList& tracks); 53 void sigFilesDropped(int tabIndex, const QStringList& files); 54 55 public: 56 explicit TabWidget(QWidget* parent=nullptr); 57 ~TabWidget() override; 58 59 void showMenuItems(MenuEntries actions); 60 61 void removeTab(int index); 62 void addTab(QWidget* widget, const QIcon& icon, const QString& label); 63 void addTab(QWidget* widget, const QString& label); 64 void insertTab(int index, QWidget* widget, const QString& label); 65 void insertTab(int index, QWidget* widget, const QIcon& icon, const QString& label); 66 67 bool wasDragFromPlaylist() const; 68 int getDragOriginTab() const; 69 70 private: 71 void checkLastTab(); 72 }; 73 } 74 75 #endif // PLAYLISTTABWIDGET_H 76