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:
Tomaz Canabrava 2014-04-24 15:17:30 -03:00 committed by Dirk Hohndel
parent 6fe692bde6
commit 0785a7f0ca
2 changed files with 10 additions and 0 deletions

View file

@ -95,8 +95,12 @@ QWidget *ComboBoxDelegate::createEditor(QWidget *parent, const QStyleOptionViewI
comboDelegate->view()->setEditTriggers(QAbstractItemView::AllEditTriggers);
comboDelegate->lineEdit()->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(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()));
currCombo.comboEditor = comboDelegate;
currCombo.currRow = index.row();
@ -126,6 +130,11 @@ void ComboBoxDelegate::testActivation(const QString &currText)
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.
void ComboBoxDelegate::fakeActivation()
{

View file

@ -36,6 +36,7 @@ public:
public
slots:
void testActivation(const QString &currString = QString());
void testActivation(const QModelIndex &currIndex);
//HACK: try to get rid of this in the future.
void fakeActivation();
void fixTabBehavior();