qt: set edit triggers in device tree view

This commit is contained in:
Jussi Kuokkanen 2020-06-03 23:25:28 +03:00
parent afaaa48e9d
commit f6c0428a84
2 changed files with 12 additions and 0 deletions

View File

@ -7,6 +7,9 @@ Q_DECLARE_METATYPE(AssignableItemData)
DeviceTreeView::DeviceTreeView(DeviceModel &model, QWidget *parent)
: QTreeView(parent), m_deviceModel(model) {
auto triggers = editTriggers() ^= DoubleClicked;
triggers |= SelectedClicked;
setEditTriggers(SelectedClicked | EditKeyPressed);
setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, &QTreeView::customContextMenuRequested, [this](QPoint point) {
auto index = indexAt(point);

View File

@ -13,6 +13,15 @@ public:
DeviceTreeView(DeviceModel &model, QWidget *parent = nullptr);
// Accessor method for connecting everything in the browser
const DeviceModel &deviceModel() {return m_deviceModel;}
protected:
/* Workaround for the retarded behavior of waiting for a double click,
you can't even disable it! */
bool edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger,
QEvent *event) {
return QTreeView::edit(index,
trigger == QAbstractItemView::SelectedClicked ?
QAbstractItemView::AllEditTriggers : trigger, event);
}
private:
DeviceModel &m_deviceModel;
DeviceModelDelegate *m_delegate;