29 #ifndef MYTABLEVIEW_H_ 30 #define MYTABLEVIEW_H_ 32 #include "Helper/Settings/SayonaraClass.h" 33 #include "GUI/Helper/SearchableWidget/SearchableTableView.h" 34 #include "GUI/Library/Helper/ColumnHeader.h" 35 #include "GUI/Library/Models/LibraryItemModel.h" 36 #include "GUI/InfoDialog/InfoDialogContainer.h" 38 #include "Helper/MetaData/MetaDataList.h" 39 #include "Components/Library/Sorting.h" 42 #include <QApplication> 51 #include <QMouseEvent> 53 #include <QStringList> 71 void sig_columns_changed(
const BoolList&);
73 void sig_middle_button_clicked(
const QPoint&);
74 void sig_all_selected();
75 void sig_delete_clicked();
76 void sig_play_next_clicked();
77 void sig_append_clicked();
78 void sig_refresh_clicked();
79 void sig_sortorder_changed(SortOrder);
81 void sig_no_disc_menu();
82 void sig_import_files(
const QStringList&);
85 void sig_merge(
int target_id);
89 virtual void header_actions_triggered(
const BoolList& shown_cols);
90 virtual void rc_menu_show(
const QPoint&);
91 virtual void sort_by_column(
int);
93 void merge_action_triggered();
95 void language_changed();
96 MetaDataList::Interpretation get_metadata_interpretation()
const override;
106 virtual void save_selections();
108 using QTableView::setModel;
112 virtual void set_rc_menu(
int entries);
116 MetaDataList::Interpretation get_type()
const;
117 void set_type(MetaDataList::Interpretation type);
121 virtual bool event(QEvent* event)
override;
122 virtual void mousePressEvent(QMouseEvent* event)
override;
123 virtual void mouseReleaseEvent(QMouseEvent* event)
override;
124 virtual void mouseMoveEvent(QMouseEvent* event)
override;
125 virtual void mouseDoubleClickEvent(QMouseEvent *event)
override;
126 virtual void keyPressEvent(QKeyEvent* event)
override;
127 virtual void dropEvent(QDropEvent* event)
override;
128 virtual void dragEnterEvent(QDragEnterEvent *event)
override;
129 virtual void dragMoveEvent(QDragMoveEvent *event)
override;
130 virtual void resizeEvent(QResizeEvent *event)
override;
132 virtual void selectionChanged (
const QItemSelection & selected,
const QItemSelection & deselected )
override;
133 virtual void rc_menu_init();
135 virtual void do_drag();
145 QDrag* _drag=
nullptr;
148 QAction* _merge_action=
nullptr;
149 QMenu* _merge_menu=
nullptr;
153 SortOrder _sort_order;
156 MetaDataList::Interpretation _type;
160 template <
typename T,
typename ModelType >
161 void fill(
const T& input_data){
164 int old_size, new_size;
170 old_size = _model->rowCount();
171 new_size = input_data.size();
173 if(old_size > new_size){
174 _model->removeRows(new_size, old_size - new_size);
176 else if(old_size < new_size){
177 _model->insertRows(old_size, new_size - old_size);
180 for(
int row=0; row < new_size; row++) {
182 if(_model->is_selected(input_data[row].id)){
187 QModelIndex idx = _model->index(0, 0);
189 ModelType* model =
static_cast<ModelType*
>(_model);
190 model->setData(idx, input_data, Qt::DisplayRole);
192 _model->clear_selections();
194 select_rows(indexes, 0, _model->columnCount() - 1);
196 _cur_filling =
false;
An interface used to abstract the usage of the info dialog. An implementing class has to return the i...
Definition: InfoDialogContainer.h:38
Definition: MiniSearcher.h:67
The SayonaraClass class provides access to Settings and notifications.
Definition: SayonaraClass.h:31
Definition: ColumnHeader.h:191
Mimedata class for drag and dropping metadata.
Definition: CustomMimeData.h:34
Definition: LibraryItemModel.h:57
Definition: LibraryView.h:61
Definition: SearchableTableView.h:35