mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Better handling of mouse on the delegates ( Equipment Edition )
This adds more handling of missing actions for the mouse on the equipment edition. It complements the stuff talked about on bug 359, but it's a different issue. 359 seems already fixed. See #359 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
6fe692bde6
commit
0785a7f0ca
2 changed files with 10 additions and 0 deletions
|
@ -95,8 +95,12 @@ QWidget *ComboBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewI
|
||||||
comboDelegate->view()->setEditTriggers(QAbstractItemView::AllEditTriggers);
|
comboDelegate->view()->setEditTriggers(QAbstractItemView::AllEditTriggers);
|
||||||
comboDelegate->lineEdit()->installEventFilter(const_cast<QObject *>(qobject_cast<const QObject *>(this)));
|
comboDelegate->lineEdit()->installEventFilter(const_cast<QObject *>(qobject_cast<const QObject *>(this)));
|
||||||
comboDelegate->view()->installEventFilter(const_cast<QObject *>(qobject_cast<const QObject *>(this)));
|
comboDelegate->view()->installEventFilter(const_cast<QObject *>(qobject_cast<const QObject *>(this)));
|
||||||
|
QAbstractItemView *comboPopup = comboDelegate->lineEdit()->completer()->popup();
|
||||||
|
comboPopup->setMouseTracking(true);
|
||||||
connect(comboDelegate, SIGNAL(highlighted(QString)), this, SLOT(testActivation(QString)));
|
connect(comboDelegate, SIGNAL(highlighted(QString)), this, SLOT(testActivation(QString)));
|
||||||
connect(comboDelegate, SIGNAL(activated(QString)), this, SLOT(fakeActivation()));
|
connect(comboDelegate, SIGNAL(activated(QString)), this, SLOT(fakeActivation()));
|
||||||
|
connect(comboPopup, SIGNAL(entered(QModelIndex)), this, SLOT(testActivation(QModelIndex)));
|
||||||
|
connect(comboPopup, SIGNAL(activated(QModelIndex)), this, SLOT(fakeActivation()));
|
||||||
connect(this, SIGNAL(closeEditor(QWidget *, QAbstractItemDelegate::EndEditHint)), this, SLOT(fixTabBehavior()));
|
connect(this, SIGNAL(closeEditor(QWidget *, QAbstractItemDelegate::EndEditHint)), this, SLOT(fixTabBehavior()));
|
||||||
currCombo.comboEditor = comboDelegate;
|
currCombo.comboEditor = comboDelegate;
|
||||||
currCombo.currRow = index.row();
|
currCombo.currRow = index.row();
|
||||||
|
@ -126,6 +130,11 @@ void ComboBoxDelegate::testActivation(const QString &currText)
|
||||||
setModelData(currCombo.comboEditor, currCombo.model, QModelIndex());
|
setModelData(currCombo.comboEditor, currCombo.model, QModelIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ComboBoxDelegate::testActivation(const QModelIndex &currIndex)
|
||||||
|
{
|
||||||
|
testActivation(currIndex.data().toString());
|
||||||
|
}
|
||||||
|
|
||||||
// HACK, send a fake event so Qt thinks we hit 'enter' on the line edit.
|
// HACK, send a fake event so Qt thinks we hit 'enter' on the line edit.
|
||||||
void ComboBoxDelegate::fakeActivation()
|
void ComboBoxDelegate::fakeActivation()
|
||||||
{
|
{
|
||||||
|
|
|
@ -36,6 +36,7 @@ public:
|
||||||
public
|
public
|
||||||
slots:
|
slots:
|
||||||
void testActivation(const QString &currString = QString());
|
void testActivation(const QString &currString = QString());
|
||||||
|
void testActivation(const QModelIndex &currIndex);
|
||||||
//HACK: try to get rid of this in the future.
|
//HACK: try to get rid of this in the future.
|
||||||
void fakeActivation();
|
void fakeActivation();
|
||||||
void fixTabBehavior();
|
void fixTabBehavior();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue