[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepimlibs/akonadi
From: Tobias Koenig <tokoe () kde ! org>
Date: 2011-01-26 16:00:27
Message-ID: 20110126160027.63AACAC8BA () svn ! kde ! org
[Download RAW message or body]
SVN commit 1217304 by tokoe:
Fix the input after opening CollectionDialog from
CollectionComboBox in MOBILE_UI mode.
M +21 -18 collectioncombobox.cpp
A collectioncombobox_p.h [License: LGPL (v2+)]
--- trunk/KDE/kdepimlibs/akonadi/collectioncombobox.cpp #1217303:1217304
@@ -20,6 +20,7 @@
*/
#include "collectioncombobox.h"
+#include "collectioncombobox_p.h"
#include "asyncselectionhandler_p.h"
#include "collectiondialog.h"
@@ -36,6 +37,7 @@
#include <QtCore/QAbstractItemModel>
#include <QtCore/QEvent>
+#include <QtGui/QMouseEvent>
using namespace Akonadi;
@@ -107,10 +109,7 @@
mParent->setCurrentIndex( index.row() );
}
-class MobileEventHandler : public QObject
-{
- public:
- MobileEventHandler( CollectionComboBox *comboBox, CollectionFilterProxyModel \
*mimeTypeFilter, +MobileEventHandler::MobileEventHandler( CollectionComboBox \
*comboBox, CollectionFilterProxyModel *mimeTypeFilter,
EntityRightsFilterModel *accessRightsFilter, \
QAbstractItemModel *customModel ) : QObject( comboBox ),
mComboBox( comboBox ),
@@ -120,10 +119,25 @@
{
}
- protected:
- virtual bool eventFilter( QObject *object, QEvent *event )
+bool MobileEventHandler::eventFilter( QObject *object, QEvent *event )
{
if ( object == mComboBox && mComboBox->isEnabled() && event->type() == \
QEvent::MouseButtonPress ) { +
+ const QMouseEvent *mouseEvent = static_cast<QMouseEvent*>( event );
+
+ // we receive mouse events from other widgets as well, so check for ours
+ if ( mComboBox->rect().contains( mouseEvent->pos() ) ) {
+ QMetaObject::invokeMethod( this, "openDialog", Qt::QueuedConnection );
+ }
+
+ return true;
+ }
+
+ return QObject::eventFilter( object, event );
+}
+
+void MobileEventHandler::openDialog()
+{
Akonadi::CollectionDialog dialog( mCustomModel );
dialog.setMimeTypeFilter( mMimeTypeFilter->mimeTypeFilters() );
dialog.setAccessRightsFilter( mAccessRightsFilter->accessRights() );
@@ -133,21 +147,9 @@
const QModelIndex index = \
Akonadi::EntityTreeModel::modelIndexForCollection( mComboBox->model(), collection ); \
mComboBox->setCurrentIndex( index.row() ); }
-
- return true;
}
- return QObject::eventFilter( object, event );
- }
- private:
- CollectionComboBox *mComboBox;
- CollectionFilterProxyModel *mMimeTypeFilter;
- EntityRightsFilterModel *mAccessRightsFilter;
- QAbstractItemModel *mCustomModel;
-};
-
-
CollectionComboBox::CollectionComboBox( QWidget *parent )
: KComboBox( parent ), d( new Private( 0, this ) )
{
@@ -211,3 +213,4 @@
}
#include "collectioncombobox.moc"
+#include "collectioncombobox_p.moc"
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic