[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kexi/core
From: Jarosław Staniek <staniek () kde ! org>
Date: 2010-10-22 22:01:56
Message-ID: 20101022220156.BB6C9AC897 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1188669 by staniek:
Core
*remove dependency on Q3Signal
M +20 -16 kexiactionproxy.cpp
M +4 -2 kexiactionproxy.h
M +11 -1 kexiactionproxy_p.h
--- trunk/koffice/kexi/core/kexiactionproxy.cpp #1188668:1188669
@@ -28,7 +28,6 @@
#include <kactioncollection.h>
#include <qwidget.h>
-#include <q3signal.h>
#include <qicon.h>
#include <kexi_global.h>
@@ -76,9 +75,16 @@
m_proxy->plugSharedActionsToExternalGUI(action_names, client);
}
-
//=======================
+class KexiActionProxy::Private {
+public:
+ Private() {}
+
+ QMap<QString, QPair<KexiActionProxySignal*, bool>* > signalsMap;
+};
+
+
KexiActionProxy::KexiActionProxy(QObject *receiver, KexiSharedActionHost *host)
: m_host(host ? host : KexiSharedActionHost::defaultHost())
, m_receiver(receiver)
@@ -86,9 +92,8 @@
, m_signal_parent(0)
, m_KAction_setEnabled_helper(new KAction_setEnabled_Helper(this))
, m_focusedChild(0)
+ , d(new Private)
{
-kDebug() << this;
-kBacktrace();
m_signal_parent.setObjectName("signal_parent");
//m_sharedActionChildren.setAutoDelete(false); //TODO port logic to KDE4
//m_alternativeActions.setAutoDelete(true); //TODO port logic to KDE4
@@ -97,9 +102,8 @@
KexiActionProxy::~KexiActionProxy()
{
-kDebug() << this;
- qDeleteAll(m_signals);
- m_signals.clear();
+ qDeleteAll(d->signalsMap);
+ d->signalsMap.clear();
//detach myself from every child
foreach(KexiActionProxy *proxy, m_sharedActionChildren) {
proxy->setActionProxyParent_internal(0);
@@ -117,18 +121,18 @@
{
if (action_name.isEmpty())// || !receiver || !slot)
return;
- QPair<Q3Signal*, bool> *p = m_signals.value(action_name);
+ QPair<KexiActionProxySignal*, bool> *p = d->signalsMap.value(action_name);
if (! p) {
- p = new QPair<Q3Signal*, bool>(new Q3Signal(&m_signal_parent), true);
- m_signals.insert(action_name, p);
+ p = new QPair<KexiActionProxySignal*, bool>(new KexiActionProxySignal(&m_signal_parent), true);
+ d->signalsMap.insert(action_name, p);
}
if (receiver && slot)
- p->first->connect(receiver, slot);
+ QObject::connect(p->first, SIGNAL(invoke()), receiver, slot);
}
void KexiActionProxy::unplugSharedAction(const QString& action_name)
{
- QPair<Q3Signal*, bool> *p = m_signals.take(action_name);
+ QPair<KexiActionProxySignal*, bool> *p = d->signalsMap.take(action_name);
if (! p)
return;
delete p->first;
@@ -204,7 +208,7 @@
bool KexiActionProxy::activateSharedAction(const QString& action_name, bool alsoCheckInChildren)
{
- QPair<Q3Signal*, bool> *p = m_signals.value(action_name);
+ QPair<KexiActionProxySignal*, bool> *p = d->signalsMap.value(action_name);
if (!p || !p->second) {
//try in children...
if (alsoCheckInChildren) {
@@ -227,7 +231,7 @@
bool KexiActionProxy::isSupported(const QString& action_name) const
{
- QPair<Q3Signal*, bool> *p = m_signals.value(action_name);
+ QPair<KexiActionProxySignal*, bool> *p = d->signalsMap.value(action_name);
if (!p) {
//not supported explicitly - try in children...
if (m_focusedChild)
@@ -243,7 +247,7 @@
bool KexiActionProxy::isAvailable(const QString& action_name, bool alsoCheckInChildren) const
{
- QPair<Q3Signal*, bool> *p = m_signals.value(action_name);
+ QPair<KexiActionProxySignal*, bool> *p = d->signalsMap.value(action_name);
if (!p) {
//not supported explicitly - try in children...
if (alsoCheckInChildren) {
@@ -262,7 +266,7 @@
void KexiActionProxy::setAvailable(const QString& action_name, bool set)
{
- QPair<Q3Signal*, bool> *p = m_signals.value(action_name);
+ QPair<KexiActionProxySignal*, bool> *p = d->signalsMap.value(action_name);
if (!p)
return;
p->second = set;
--- trunk/koffice/kexi/core/kexiactionproxy.h #1188668:1188669
@@ -27,7 +27,6 @@
#include "kexiproject.h"
#include "kexisharedactionhost.h"
-class Q3Signal;
class QAction;
class KAction;
class KXMLGUIClient;
@@ -160,7 +159,6 @@
KexiSharedActionHost *m_host;
QPointer<QObject> m_receiver;
- QHash<QString, QPair<Q3Signal*, bool>* > m_signals;
QList<KexiActionProxy*> m_sharedActionChildren;
@@ -183,6 +181,10 @@
friend class KexiSharedActionHost;
friend class KAction_setEnabled_Helper;
friend class KexiSharedActionConnector;
+
+private:
+ class Private;
+ Private * const d;
};
#endif
--- trunk/koffice/kexi/core/kexiactionproxy_p.h #1188668:1188669
@@ -38,5 +38,15 @@
KexiActionProxy *m_proxy;
};
+//! @internal a tool for emitting signal
+class KexiActionProxySignal : public QObject
+{
+ Q_OBJECT
+public:
+ KexiActionProxySignal(QObject *parent) : QObject(parent) {}
+ void activate() { emit invoke(); }
+signals:
+ void invoke();
+};
+
#endif
-
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic