Sayonara Player
Loading...
Searching...
No Matches
GUI_Playlist.h
1/* GUI_Playlist.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
22/*
23 * GUI_Playlist.h
24 *
25 * Created on: Apr 6, 2011
26 * Author: Michael Lugmair (Lucio Carreras)
27 */
28
29#ifndef GUI_PLAYLIST_H_
30#define GUI_PLAYLIST_H_
31
32#include "Gui/Utils/Widgets/Widget.h"
33
34#include "Components/Playlist/PlaylistDBInterface.h"
35
36#include "Utils/Message/Message.h"
37#include "Utils/Library/LibraryNamespaces.h"
38#include "Utils/Playlist/PlaylistFwd.h"
39#include "Utils/Pimpl.h"
40
41namespace Playlist
42{
43 class Handler;
44 class View;
45}
46
47class PlayManager;
49class Shutdown;
50namespace Library
51{
52 class InfoAccessor;
53}
54
55UI_FWD(PlaylistWindow)
56
58 public Gui::Widget
59{
60 Q_OBJECT
61 PIMPL(GUI_Playlist)
62
63 public:
64 explicit GUI_Playlist(QWidget* parent = nullptr);
65 ~GUI_Playlist() override;
66
67 void init(Playlist::Handler* playlistHandler, PlayManager* playManager,
68 DynamicPlaybackChecker* dynamicPlaybackChecker, Shutdown* shutdown,
69 Library::InfoAccessor* libraryAccessor);
70
71 private:
72 void initToolButton();
73
74 private slots:
75 // triggered from playlist
76 void playlistAdded(int playlistIndex);
77 void playlistNameChanged(int playlistIndex);
78 void playlistChanged(int playlistIndex);
79 void playlistIdxChanged(int playlistIndex);
80 void playlistCloseRequested(int playlistIndex);
81 void playlistClosed(int playlistIndex);
82
83 // triggered by GUI
84 void tabSavePlaylistClicked(int playlistIndex); // GUI_PlaylistTabs.cpp
85 void tabSavePlaylistAsClicked(int playlistIndex, const QString& newName); // GUI_PlaylistTabs.cpp
86 void tabSavePlaylistToFileClicked(int playlistIndex, const QString& filename, bool relativePaths);
87 void tabRenameClicked(int playlistIndex, const QString& newName);
88 void tabResetClicked(int playlistIndex);
89 void tabDeletePlaylistClicked(int playlistIndex); // GUI_PlaylistTabs.cpp
90 void tabMetadataDropped(int playlistIndex, const MetaDataList& tracks);
91 void tabFilesDropped(int playlistIndex, const QStringList& paths);
92 void openFileClicked(int playlistIndex, const QStringList& files);
93 void openDirClicked(int playlistIndex, const QString& dir);
94 void lockTriggered(int playlistIndex, bool b);
95 void contextMenuRequested(int playlistIndex, const QPoint& position);
96
97 void checkTabTextAndIcons();
98
99 void clearButtonPressed(int playlistIndex);
100
101 void showClearButtonChanged();
102 void showBottomBarChanged();
103
104 protected:
105 void languageChanged() override;
106 void skinChanged() override;
107
108 void dragEnterEvent(QDragEnterEvent* event) override;
109 void dragLeaveEvent(QDragLeaveEvent* event) override;
110 void dropEvent(QDropEvent* event) override;
111 void dragMoveEvent(QDragMoveEvent* event) override;
112
113 private:
114 std::shared_ptr<Ui::PlaylistWindow> ui;
115};
116
117#endif /* GUI_PLAYLIST_H_ */
Definition DynamicPlaybackChecker.h:29
Definition GUI_Playlist.h:59
Definition LibraryManager.h:36
Definition MetaDataList.h:34
Definition PlayManager.h:34
Definition PlaylistHandler.h:53
Definition Shutdown.h:33