From 0e9d6095427cd38259455f0f83ab651303401de5 Mon Sep 17 00:00:00 2001 From: Viranch Mehta Date: Fri, 3 Jun 2011 00:50:18 +0530 Subject: [PATCH 1/4] Fix: WRITE method for Q_PROPERTY maximum was setMinimum, which should be setMaximum --- widgets/slider.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widgets/slider.h b/widgets/slider.h index 4c1b8d219..a9834fd20 100644 --- a/widgets/slider.h +++ b/widgets/slider.h @@ -41,7 +41,7 @@ class PLASMA_EXPORT Slider : public QGraphicsProxyWidget Q_OBJECT Q_PROPERTY(QGraphicsWidget *parentWidget READ parentWidget) - Q_PROPERTY(int maximum READ maximum WRITE setMinimum) + Q_PROPERTY(int maximum READ maximum WRITE setMaximum) Q_PROPERTY(int minimum READ minimum WRITE setMinimum) Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged) Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation) From 592a6a63b3dcd63235873903091bde82f6d1d05f Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 3 Jun 2011 12:53:32 +0200 Subject: [PATCH 2/4] be a bit safer with the widget pointer; too easy to trigger with sloppy scripting --- service.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/service.cpp b/service.cpp index 77d351d5b..9c4d35f8c 100644 --- a/service.cpp +++ b/service.cpp @@ -251,6 +251,10 @@ ServiceJob *Service::startOperationCall(const KConfigGroup &description, QObject void Service::associateWidget(QWidget *widget, const QString &operation) { + if (!widget) { + return; + } + disassociateWidget(widget); d->associatedWidgets.insert(widget, operation); connect(widget, SIGNAL(destroyed(QObject*)), this, SLOT(associatedWidgetDestroyed(QObject*))); @@ -260,6 +264,10 @@ void Service::associateWidget(QWidget *widget, const QString &operation) void Service::disassociateWidget(QWidget *widget) { + if (!widget) { + return; + } + disconnect(widget, SIGNAL(destroyed(QObject*)), this, SLOT(associatedWidgetDestroyed(QObject*))); d->associatedWidgets.remove(widget); From c109e2369bdd71b38464a191bfa469856209f20e Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 3 Jun 2011 12:56:11 +0200 Subject: [PATCH 3/4] protect the pointer here as well --- service.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/service.cpp b/service.cpp index 9c4d35f8c..4f98b0b99 100644 --- a/service.cpp +++ b/service.cpp @@ -275,6 +275,10 @@ void Service::disassociateWidget(QWidget *widget) void Service::associateWidget(QGraphicsWidget *widget, const QString &operation) { + if (!widget) { + return; + } + disassociateWidget(widget); d->associatedGraphicsWidgets.insert(widget, operation); connect(widget, SIGNAL(destroyed(QObject*)), @@ -285,6 +289,10 @@ void Service::associateWidget(QGraphicsWidget *widget, const QString &operation) void Service::disassociateWidget(QGraphicsWidget *widget) { + if (!widget) { + return; + } + disconnect(widget, SIGNAL(destroyed(QObject*)), this, SLOT(associatedGraphicsWidgetDestroyed(QObject*))); d->associatedGraphicsWidgets.remove(widget); From 66142028c08ce038e463858ab8db8d3a66d2f1e6 Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 3 Jun 2011 13:13:19 +0200 Subject: [PATCH 4/4] move these around nicely --- private/dataenginebindings_p.h | 2 -- service.cpp | 1 + service.h | 2 ++ servicejob.h | 2 ++ 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/private/dataenginebindings_p.h b/private/dataenginebindings_p.h index 671d7896d..a49239702 100644 --- a/private/dataenginebindings_p.h +++ b/private/dataenginebindings_p.h @@ -30,8 +30,6 @@ using namespace Plasma; -Q_DECLARE_METATYPE(Service*) -Q_DECLARE_METATYPE(ServiceJob*) Q_DECLARE_METATYPE(DataEngine::Dict) Q_DECLARE_METATYPE(DataEngine::Data) diff --git a/service.cpp b/service.cpp index 4f98b0b99..3846e817d 100644 --- a/service.cpp +++ b/service.cpp @@ -18,6 +18,7 @@ */ #include "service.h" +#include "servicejob.h" #include "private/authorizationmanager_p.h" #include "private/service_p.h" #include "private/serviceprovider_p.h" diff --git a/service.h b/service.h index 879579408..126ea6f89 100644 --- a/service.h +++ b/service.h @@ -318,6 +318,8 @@ private: } // namespace Plasma +Q_DECLARE_METATYPE(Plasma::Service *) + /** * Register a service when it is contained in a loadable module */ diff --git a/servicejob.h b/servicejob.h index 9690e43d1..30660c58d 100644 --- a/servicejob.h +++ b/servicejob.h @@ -133,5 +133,7 @@ private: } // namespace Plasma +Q_DECLARE_METATYPE(Plasma::ServiceJob *) + #endif // multiple inclusion guard