31#include "Components/Library/PlayActionEventHandler.h"
33#include "Gui/Utils/Widgets/Dragable.h"
34#include "Gui/Utils/SearchableWidget/SearchableView.h"
35#include "Gui/Utils/SearchableWidget/SelectionView.h"
37#include "Gui/InfoDialog/InfoDialogContainer.h"
38#include "Gui/Utils/ContextMenu/LibraryContextMenu.h"
40#include "Utils/SetFwd.h"
41#include "Utils/Pimpl.h"
49 class PlayActionEventHandler;
60 void sigDeleteClicked();
61 void sigPlayClicked();
62 void sigPlayNextClicked();
63 void sigPlayNewTabClicked();
64 void sigAppendClicked();
65 void sigReloadClicked();
66 void sigImportFiles(
const QStringList& files);
67 void sigSelectionChanged(
const IndexSet& indexes);
70 explicit ItemView(QWidget* parent =
nullptr);
76 void showClearButton(
bool visible);
77 void useClearButton(
bool yesno);
79 [[nodiscard]]
virtual Library::ContextMenu::Entries contextMenuEntries()
const;
81 [[nodiscard]]
bool isValidDragPosition(
const QPoint& p)
const override;
84 void init(
const std::shared_ptr<PlayActionEventHandler>& playActionEventHandler);
85 void selectionChanged(
const QItemSelection& selected,
const QItemSelection& deselected)
override;
88 virtual void initContextMenu();
91 [[nodiscard]]
SearchModel* searchModel()
const override;
92 [[nodiscard]]
virtual ItemModel* itemModel()
const = 0;
95 [[nodiscard]]
virtual bool isMergeable()
const = 0;
97 [[nodiscard]]
MetaDataList infoDialogData()
const override;
98 QWidget* getParentWidget()
override;
100 virtual void importRequested(
const QStringList& files);
103 virtual void triggerSelectionChange(
const IndexSet& indexes) = 0;
104 [[nodiscard]]
virtual PlayActionEventHandler::TrackSet trackSet()
const = 0;
106 [[nodiscard]] QRect viewportGeometry()
const override;
107 virtual void refreshView() = 0;
109 void mousePressEvent(QMouseEvent* event)
override;
110 void contextMenuEvent(QContextMenuEvent* event)
override;
111 void dragEnterEvent(QDragEnterEvent* event)
override;
112 void dragMoveEvent(QDragMoveEvent* event)
override;
113 void dropEvent(QDropEvent* event)
override;
114 void resizeEvent(QResizeEvent* event)
override;
117 virtual void showContextMenu(
const QPoint&);
118 virtual void mergeActionTriggered();
119 virtual void playClicked();
120 virtual void playNewTabClicked();
121 virtual void playNextClicked();
122 virtual void deleteClicked();
123 virtual void appendClicked();
124 virtual void refreshClicked();
125 virtual void reloadClicked();
126 virtual void albumArtistsToggled();
127 virtual void filterExtensionsTriggered(
const QString& extension,
bool b);
131 void selectedItemsChanged(
const IndexSet& indexes);
134 void showContextMenuActions(Library::ContextMenu::Entries entries);
Definition AbstractLibrary.h:41
The Dragable class.
Definition Dragable.h:62
Definition InfoDialogContainer.h:61
Definition ItemModel.h:40
Definition MergeData.h:33
Definition SearchableModel.h:32
Definition SearchableView.h:70
A set structure. Inherited from std::set with some useful methods. For integer and String this set is...
Definition Set.h:37