29 #ifndef MYTABLEVIEW_H_ 30 #define MYTABLEVIEW_H_ 32 #include "Helper/Settings/SayonaraClass.h" 33 #include "Helper/SetFwd.h" 35 #include "GUI/Helper/SearchableWidget/SearchableView.h" 36 #include "GUI/Helper/Dragable/Dragable.h" 37 #include "GUI/InfoDialog/InfoDialogContainer.h" 38 #include "GUI/Library/Models/LibraryItemModel.h" 40 #include "Helper/MetaData/MetaDataFwd.h" 41 #include "Helper/typedefs.h" 42 #include "Helper/Set.h" 44 #include "Helper/Pimpl.h" 48 #include <QStringList> 64 void sig_middle_button_clicked(
const QPoint&);
65 void sig_all_selected();
66 void sig_delete_clicked();
67 void sig_play_next_clicked();
68 void sig_append_clicked();
69 void sig_refresh_clicked();
70 void sig_import_files(
const QStringList& files);
73 void sig_merge(
const SP::Set<ID>& ids,
int target_id);
83 virtual void save_selections();
85 using QTableView::setModel;
89 void show_rc_menu_actions(
int entries);
90 QMimeData* get_mimedata()
const override;
91 QPixmap get_pixmap()
const override;
93 void set_metadata_interpretation(MD::Interpretation type);
94 void set_selection_type(SayonaraSelectionView::SelectionType type)
override;
99 virtual void mousePressEvent(QMouseEvent* event)
override;
100 virtual void mouseReleaseEvent(QMouseEvent* event)
override;
101 virtual void mouseMoveEvent(QMouseEvent* event)
override;
102 virtual void mouseDoubleClickEvent(QMouseEvent *event)
override;
103 virtual void keyPressEvent(QKeyEvent* event)
override;
104 virtual void contextMenuEvent(QContextMenuEvent* event)
override;
106 virtual void dragEnterEvent(QDragEnterEvent *event)
override;
107 virtual void dragMoveEvent(QDragMoveEvent *event)
override;
108 virtual void dropEvent(QDropEvent* event)
override;
110 virtual void selectionChanged (
const QItemSelection& selected,
const QItemSelection& deselected )
override;
111 virtual void rc_menu_init();
122 virtual void rc_menu_show(
const QPoint&);
123 virtual void merge_action_triggered();
127 template <
typename T,
typename ModelType >
128 void fill(
const T& input_data)
131 int old_size, new_size;
137 old_size = _model->rowCount();
138 new_size = input_data.size();
140 if(old_size > new_size){
141 _model->removeRows(new_size, old_size - new_size);
144 else if(old_size < new_size){
145 _model->insertRows(old_size, new_size - old_size);
148 for(
int row=0; row < new_size; row++)
150 if(_model->is_selected(input_data[row].id)){
155 QModelIndex idx = _model->index(0, 0);
157 ModelType* model =
static_cast<ModelType*
>(_model);
158 model->setData(idx, input_data, Qt::DisplayRole);
160 _model->clear_selections();
162 select_rows(indexes, 0, _model->columnCount() - 1);
An interface used to abstract the usage of the info dialog. An implementing class has to return the i...
Definition: InfoDialogContainer.h:35
The SayonaraClass class provides access to Settings and notifications.
Definition: SayonaraClass.h:29
Definition: ColumnHeader.h:101
virtual MD::Interpretation get_metadata_interpretation() const override final
get the interpretation for the metadata. Maybe a list of metadata should be intrepeted as albums whil...
The Dragable class.
Definition: Dragable.h:37
Definition: LibraryItemModel.h:33
Definition: SearchableView.h:77
Definition: LibraryView.h:53
MetaDataList get_data_for_info_dialog() const override
get the metadata that should be used for the info dialog So for lists, the selected tracks are used h...
A set structure. Inherited from std::set with some useful methods. For integer and String this set is...
Definition: AbstractPlaylist.h:37