[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdepim/mobile/lib
From: Marc Mutz <mutz () kde ! org>
Date: 2010-11-02 16:05:27
Message-ID: 20101102160527.4AD26AC8A4 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1192326 by mutz:
DeclarativeWidgetBaseHelper: factor itemChanged(), too, into \
DeclarativeWidgetBaseHelper
M +13 -2 declarativewidgetbase.cpp
M +18 -16 declarativewidgetbase.h
--- trunk/KDE/kdepim/mobile/lib/declarativewidgetbase.cpp #1192325:1192326
@@ -22,10 +22,11 @@
#include "stylesheetloader.h"
#include <QtGui/QGraphicsScene>
-//#include <QtDeclarative/QDeclarativeItem>
+#include <QtGui/QWidget>
-DeclarativeWidgetBaseHelper::DeclarativeWidgetBaseHelper( QWidget * widget, \
QGraphicsItem * parent ) +DeclarativeWidgetBaseHelper::DeclarativeWidgetBaseHelper( \
QWidget * widget, QGraphicsItem * parent, const RegisterFunction & registerFunc ) : \
QGraphicsProxyWidget( parent ), + m_registerFunc( registerFunc ),
m_widget( widget )
{
Q_ASSERT( m_widget );
@@ -39,3 +40,13 @@
}
DeclarativeWidgetBaseHelper::~DeclarativeWidgetBaseHelper() {}
+
+QVariant DeclarativeWidgetBaseHelper::itemChange( GraphicsItemChange change, const \
QVariant & value ) +{
+ if ( !m_registerFunc.empty() )
+ if ( change == ItemSceneHasChanged )
+ if ( QGraphicsScene* scene = value.value<QGraphicsScene*>() )
+ Q_FOREACH( QGraphicsView * v, scene->views() )
+ m_registerFunc( v, m_widget );
+ return QGraphicsProxyWidget::itemChange ( change, value );
+}
--- trunk/KDE/kdepim/mobile/lib/declarativewidgetbase.h #1192325:1192326
@@ -23,21 +23,29 @@
#include "mobileui_export.h"
#include <QtGui/QGraphicsProxyWidget>
-#include <QtGui/QGraphicsScene>
-#include <QtDeclarative/QDeclarativeItem>
+#include <boost/function.hpp>
+
+class QGraphicsView;
+class QWidget;
+
/**
\internal
*/
class MOBILEUI_EXPORT DeclarativeWidgetBaseHelper : public QGraphicsProxyWidget
{
protected:
- DeclarativeWidgetBaseHelper( QWidget * widget, QGraphicsItem *parent );
+ typedef boost::function<void(QGraphicsView*,QWidget*)> RegisterFunction;
+ DeclarativeWidgetBaseHelper( QWidget * widget, QGraphicsItem *parent, const \
RegisterFunction & registerFunc ); ~DeclarativeWidgetBaseHelper();
QWidget * widget() const { return m_widget; }
+protected:
+ /* reimp */ QVariant itemChange( GraphicsItemChange change, const QVariant & \
value ); +
private:
+ const RegisterFunction m_registerFunc;
QWidget * m_widget;
};
@@ -46,26 +54,20 @@
{
public:
explicit DeclarativeWidgetBase( QGraphicsItem *parent = 0 )
- : DeclarativeWidgetBaseHelper( new WidgetT, parent ) {}
+ : DeclarativeWidgetBaseHelper( new WidgetT, parent, ¬ify ) {}
/** use this constructor if you inherit from this template to customize widget \
construction. */ DeclarativeWidgetBase( WidgetT *widget, QGraphicsItem *parent )
- : DeclarativeWidgetBaseHelper( widget, parent ) {}
+ : DeclarativeWidgetBaseHelper( widget, parent, ¬ify ) {}
protected:
- QVariant itemChange ( GraphicsItemChange change, const QVariant& value )
- {
- if ( change == ItemSceneHasChanged ) {
- if ( QGraphicsScene* scene = value.value<QGraphicsScene*>() )
- Q_FOREACH( QGraphicsView * v, scene->views() )
+ WidgetT * widget() const { return static_cast<WidgetT*>( \
DeclarativeWidgetBaseHelper::widget() ); } +
+ private:
+ static void notify( QGraphicsView * v, QWidget * w ) {
if ( ViewT * view = qobject_cast<ViewT*>( v ) )
- (view->*registerFunc)( widget() );
+ (view->*registerFunc)( static_cast<WidgetT*>( w ) );
}
- return QGraphicsProxyWidget::itemChange ( change, value );
- }
-
- protected:
- WidgetT * widget() const { return static_cast<WidgetT*>( \
DeclarativeWidgetBaseHelper::widget() ); } };
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic