21 #ifndef LIBRARYGENREVIEW_H
22 #define LIBRARYGENREVIEW_H
24 #include "Gui/Utils/Widgets/WidgetTemplate.h"
25 #include "Gui/Utils/SearchableWidget/SearchableView.h"
26 #include "Utils/Pimpl.h"
28 #include <QTreeWidget>
58 void sigProgress(
const QString& name,
int progress);
59 void sigSelectedChanged(
const QStringList& genres);
60 void sigInvalidGenreSelected();
63 using Parent::activated;
64 using Parent::clicked;
65 using Parent::pressed;
68 explicit GenreView(QWidget* parent=
nullptr);
74 static QString invalidGenreName();
77 void initContextMenu();
81 void populateWidget(QTreeWidgetItem* parent_item,
GenreNode* node);
83 [[maybe_unused]] QTreeWidgetItem* findGenre(
const QString& genre);
86 void itemExpanded(QTreeWidgetItem* item);
87 void itemCollapsed(QTreeWidgetItem* item);
88 void expandCurrentItem();
90 void progressChanged(
int progress);
91 void updateFinished();
97 void switchTreeList();
99 void selectionChanged(
const QItemSelection& selected,
const QItemSelection& deselected)
override;
102 void skinChanged()
override;
103 void languageChanged()
override;
104 void dragEnterEvent(QDragEnterEvent* e)
override;
105 void dragMoveEvent(QDragMoveEvent* e)
override;
106 void dragLeaveEvent(QDragLeaveEvent* e)
override;
107 void dropEvent(QDropEvent* e)
override;
108 void contextMenuEvent(QContextMenuEvent* e)
override;
116 InvalidGenreRole=Qt::UserRole
119 GenreTreeItem(QTreeWidgetItem* parent,
const QStringList& text,
bool isInvalidGenre);
120 GenreTreeItem(QTreeWidget* parent,
const QStringList& text,
bool isInvalidGenre);
122 void setInvalidGenre(
bool b);
123 [[maybe_unused]]
bool isInvalidGenre()
const;
125 static bool isInvalidGenre(
const QModelIndex& index);
129 #endif // LIBRARYGENREVIEW_H