25 template <
typename TargetClass>
26 void onSelected(TargetClass* instance,
void (TargetClass::*memberFunction)(QStandardItem*));
28 template <
typename TargetClass>
29 void onDoubleClicked(TargetClass* instance,
bool (TargetClass::*memberFunction)(QStandardItem*));
31 template <
typename TargetClass>
32 void onContextMenu(TargetClass* instance, QMenu* (TargetClass::*memberFunction)(QStandardItem*));
34 void setModel(QAbstractItemModel* model)
override;
39 using SelectFunction = std::function<void(QStandardItem*)>;
40 using DoubleClickFunction = std::function<bool(QStandardItem*)>;
41 using MenuFunction = std::function<QMenu*(QStandardItem*)>;
44 void selected(
const QModelIndex& index);
45 void mouseDoubleClickEvent(QMouseEvent* event)
override;
46 void contextMenuRequested(
const QPoint& point);
47 QStandardItem* getItemFromIndex(
const QModelIndex& index)
const;
48 QStandardItem* getItemAtPoint(
const QPoint& point)
const;
51 QMetaObject::Connection selectConnetion;
52 SelectFunction selectedFunction;
53 DoubleClickFunction doubleClickFunction;
54 MenuFunction contextMenuFunction;