21 #ifndef DIRECTORYTREEVIEW_H
22 #define DIRECTORYTREEVIEW_H
24 #include "DirectoryModel.h"
25 #include "Gui/InfoDialog/InfoDialogContainer.h"
27 #include "Gui/Utils/SearchableWidget/SearchableView.h"
28 #include "Gui/Utils/Widgets/WidgetTemplate.h"
29 #include "Gui/Utils/Widgets/Dragable.h"
30 #include "Utils/Pimpl.h"
33 #include <QModelIndexList>
41 class LibraryContextMenu;
68 void sigDeleteClicked();
69 void sigPlayClicked();
70 void sigPlayNewTabClicked();
71 void sigPlayNextClicked();
72 void sigAppendClicked();
73 void sigDirectoryLoaded(
const QModelIndex& index);
74 void sigCurrentIndexChanged(
const QModelIndex& index);
76 void sigEnterPressed();
77 void sigImportRequested(LibraryId lib_id,
const QStringList& v_md,
const QString& targetDirectory);
79 void sigCopyRequested(
const QStringList& paths,
const QString& target);
80 void sigMoveRequested(
const QStringList& paths,
const QString& target);
81 void sigRenameRequested(
const QString& path,
const QString& target);
83 void sigCopyToLibraryRequested(LibraryId libraryId);
84 void sigMoveToLibraryRequested(LibraryId libraryId);
87 explicit TreeView(QWidget* parent=
nullptr);
90 QString directoryName(
const QModelIndex& index);
92 QModelIndexList selctedRows()
const;
93 QStringList selectedPaths()
const;
96 void setFilterTerm(
const QString& filter);
102 enum class DropAction
109 void initContextMenu();
110 DropAction showDropMenu(
const QPoint& pos);
111 void handleSayonaraDrop(
const Gui::CustomMimeData* mimedata,
const QString& targetDirectory);
114 void createDirectoryClicked();
115 void renameDirectoryClicked();
116 void viewInFileManagerClicked();
117 void dragTimerTimeout();
121 QMimeData* dragableMimedata()
const override;
123 void skinChanged()
override;
125 void keyPressEvent(QKeyEvent* event)
override;
126 void contextMenuEvent(QContextMenuEvent* event)
override;
128 void dragEnterEvent(QDragEnterEvent* event)
override;
129 void dragLeaveEvent(QDragLeaveEvent* event)
override;
130 void dragMoveEvent(QDragMoveEvent* event)
override;
131 void dropEvent(QDropEvent* event)
override;
133 void selectionChanged(
const QItemSelection& selected,
const QItemSelection& deselected)
override;
143 #endif // DIRECTORYTREEVIEW_H