summaryrefslogtreecommitdiffstats
path: root/src/compositor/global
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@theqtcompany.com>2015-10-05 12:22:55 +0200
committerPaul Olav Tvete <paul.tvete@theqtcompany.com>2015-10-23 12:21:27 +0000
commitc39f3b238acfb0eac8e6763c7d65b23f19fe68d7 (patch)
tree44c5c9d7baa9b3036e667ada8f42d2b4999f6bbf /src/compositor/global
parent907bdf61761331729fe58c6394ea97354a6a9a2f (diff)
Rename QWaylandExtensionContainer to QWaylandObject
Change the name, and make QWaylandExtension a subclass of QWaylandObject. This way, all extensions can have extensions of their own, without multiply inheriting. Change-Id: Ie06e764412d113f7a62399caa605a48b015c7d24 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/compositor/global')
-rw-r--r--src/compositor/global/qwaylandextension.cpp41
-rw-r--r--src/compositor/global/qwaylandextension.h22
-rw-r--r--src/compositor/global/qwaylandextension_p.h2
3 files changed, 39 insertions, 26 deletions
diff --git a/src/compositor/global/qwaylandextension.cpp b/src/compositor/global/qwaylandextension.cpp
index 124ebb35e..a0cb8d418 100644
--- a/src/compositor/global/qwaylandextension.cpp
+++ b/src/compositor/global/qwaylandextension.cpp
@@ -46,24 +46,24 @@
QT_BEGIN_NAMESPACE
QWaylandExtension::QWaylandExtension()
- : QObject(*new QWaylandExtensionPrivate())
+ : QWaylandObject(*new QWaylandExtensionPrivate())
{
}
-QWaylandExtension::QWaylandExtension(QWaylandExtensionContainer *container)
- : QObject(*new QWaylandExtensionPrivate())
+QWaylandExtension::QWaylandExtension(QWaylandObject *container)
+ : QWaylandObject(*new QWaylandExtensionPrivate())
{
d_func()->extension_container = container;
QCoreApplication::postEvent(this, new QEvent(QEvent::Polish));
}
QWaylandExtension::QWaylandExtension(QWaylandExtensionPrivate &dd)
- : QObject(dd)
+ : QWaylandObject(dd)
{
}
-QWaylandExtension::QWaylandExtension(QWaylandExtensionContainer *container, QWaylandExtensionPrivate &dd)
- : QObject(dd)
+QWaylandExtension::QWaylandExtension(QWaylandObject *container, QWaylandExtensionPrivate &dd)
+ : QWaylandObject(dd)
{
d_func()->extension_container = container;
QCoreApplication::postEvent(this, new QEvent(QEvent::Polish));
@@ -76,13 +76,13 @@ QWaylandExtension::~QWaylandExtension()
d->extension_container->removeExtension(this);
}
-QWaylandExtensionContainer *QWaylandExtension::extensionContainer() const
+QWaylandObject *QWaylandExtension::extensionContainer() const
{
Q_D(const QWaylandExtension);
return d->extension_container;
}
-void QWaylandExtension::setExtensionContainer(QWaylandExtensionContainer *container)
+void QWaylandExtension::setExtensionContainer(QWaylandObject *container)
{
Q_D(QWaylandExtension);
d->extension_container = container;
@@ -120,16 +120,27 @@ bool QWaylandExtension::event(QEvent *event)
default:
break;
}
- return QObject::event(event);
+ return QWaylandObject::event(event);
}
-QWaylandExtensionContainer::~QWaylandExtensionContainer()
+QWaylandObject::QWaylandObject(QObject *parent)
+ :QObject(parent)
+{
+}
+
+QWaylandObject::QWaylandObject(QObjectPrivate &d, QObject *parent)
+ :QObject(d, parent)
+{
+}
+
+
+QWaylandObject::~QWaylandObject()
{
foreach (QWaylandExtension *extension, extension_vector)
QWaylandExtensionPrivate::get(extension)->extension_container = Q_NULLPTR;
}
-QWaylandExtension *QWaylandExtensionContainer::extension(const QByteArray &name)
+QWaylandExtension *QWaylandObject::extension(const QByteArray &name)
{
for (int i = 0; i < extension_vector.size(); i++) {
if (extension_vector.at(i)->extensionInterface()->name == name)
@@ -138,7 +149,7 @@ QWaylandExtension *QWaylandExtensionContainer::extension(const QByteArray &name)
return Q_NULLPTR;
}
-QWaylandExtension *QWaylandExtensionContainer::extension(const wl_interface *interface)
+QWaylandExtension *QWaylandObject::extension(const wl_interface *interface)
{
for (int i = 0; i < extension_vector.size(); i++) {
if (extension_vector.at(i)->extensionInterface() == interface)
@@ -147,18 +158,18 @@ QWaylandExtension *QWaylandExtensionContainer::extension(const wl_interface *int
return Q_NULLPTR;
}
-QList<QWaylandExtension *> QWaylandExtensionContainer::extensions() const
+QList<QWaylandExtension *> QWaylandObject::extensions() const
{
return extension_vector;
}
-void QWaylandExtensionContainer::addExtension(QWaylandExtension *extension)
+void QWaylandObject::addExtension(QWaylandExtension *extension)
{
Q_ASSERT(!extension_vector.contains(extension));
extension_vector.append(extension);
}
-void QWaylandExtensionContainer::removeExtension(QWaylandExtension *extension)
+void QWaylandObject::removeExtension(QWaylandExtension *extension)
{
Q_ASSERT(extension_vector.contains(extension));
extension_vector.removeOne(extension);
diff --git a/src/compositor/global/qwaylandextension.h b/src/compositor/global/qwaylandextension.h
index 992e44cfd..f6860955c 100644
--- a/src/compositor/global/qwaylandextension.h
+++ b/src/compositor/global/qwaylandextension.h
@@ -50,10 +50,10 @@ class QWaylandExtension;
class QWaylandExtensionPrivate;
class QWaylandExtensionTemplatePrivate;
-class Q_COMPOSITOR_EXPORT QWaylandExtensionContainer
+class Q_COMPOSITOR_EXPORT QWaylandObject : public QObject
{
public:
- virtual ~QWaylandExtensionContainer();
+ virtual ~QWaylandObject();
QWaylandExtension *extension(const QByteArray &name);
QWaylandExtension *extension(const wl_interface *interface);
@@ -62,20 +62,22 @@ public:
void removeExtension(QWaylandExtension *extension);
protected:
+ QWaylandObject(QObject *parent = 0);
+ QWaylandObject(QObjectPrivate &d, QObject *parent = 0);
QList<QWaylandExtension *> extension_vector;
};
-class Q_COMPOSITOR_EXPORT QWaylandExtension : public QObject
+class Q_COMPOSITOR_EXPORT QWaylandExtension : public QWaylandObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(QWaylandExtension)
public:
QWaylandExtension();
- QWaylandExtension(QWaylandExtensionContainer *container);
+ QWaylandExtension(QWaylandObject *container);
virtual ~QWaylandExtension();
- QWaylandExtensionContainer *extensionContainer() const;
- void setExtensionContainer(QWaylandExtensionContainer *container);
+ QWaylandObject *extensionContainer() const;
+ void setExtensionContainer(QWaylandObject *container);
Q_INVOKABLE virtual void initialize();
bool isInitialized() const;
@@ -84,7 +86,7 @@ public:
protected:
QWaylandExtension(QWaylandExtensionPrivate &dd);
- QWaylandExtension(QWaylandExtensionContainer *container, QWaylandExtensionPrivate &dd);
+ QWaylandExtension(QWaylandObject *container, QWaylandExtensionPrivate &dd);
bool event(QEvent *event) Q_DECL_OVERRIDE;
};
@@ -98,7 +100,7 @@ public:
: QWaylandExtension()
{ }
- QWaylandExtensionTemplate(QWaylandExtensionContainer *container)
+ QWaylandExtensionTemplate(QWaylandObject *container)
: QWaylandExtension(container)
{ }
@@ -107,7 +109,7 @@ public:
return T::interface();
}
- static T *findIn(QWaylandExtensionContainer *container)
+ static T *findIn(QWaylandObject *container)
{
if (!container) return Q_NULLPTR;
return qobject_cast<T *>(container->extension(T::interfaceName()));
@@ -118,7 +120,7 @@ protected:
: QWaylandExtension(dd)
{ }
- QWaylandExtensionTemplate(QWaylandExtensionContainer *container, QWaylandExtensionTemplatePrivate &dd)
+ QWaylandExtensionTemplate(QWaylandObject *container, QWaylandExtensionTemplatePrivate &dd)
: QWaylandExtension(container,dd)
{ }
};
diff --git a/src/compositor/global/qwaylandextension_p.h b/src/compositor/global/qwaylandextension_p.h
index d1dddb674..f8ce4d2c9 100644
--- a/src/compositor/global/qwaylandextension_p.h
+++ b/src/compositor/global/qwaylandextension_p.h
@@ -54,7 +54,7 @@ public:
static QWaylandExtensionPrivate *get(QWaylandExtension *extension) { return extension->d_func(); }
- QWaylandExtensionContainer *extension_container;
+ QWaylandObject *extension_container;
bool initialized;
};