From 23214c815ec267e999015a971768dbf8f6ea0957 Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Wed, 7 Aug 2013 20:19:09 +0200 Subject: [PATCH] Revert c3f485c5250a503832e767e1fe5e40595126f6c5 It has been discovered it changes the behavior of qdbuscpp2xml resulting in builds of some apps breaking. Even if the behavior is more correct, such behavior change in a stable branch is not acceptable Change-Id: I1d79104ebf11c3f48c84f109be2926af96cddae7 Reviewed-by: Thiago Macieira --- src/dbus/qdbusxmlgenerator.cpp | 5 +- tests/auto/dbus/dbus.pro | 1 - .../qdbusxmlgenerator/qdbusxmlgenerator.pro | 5 - .../tst_qdbusxmlgenerator.cpp | 125 ------------------ 4 files changed, 2 insertions(+), 134 deletions(-) delete mode 100644 tests/auto/dbus/qdbusxmlgenerator/qdbusxmlgenerator.pro delete mode 100644 tests/auto/dbus/qdbusxmlgenerator/tst_qdbusxmlgenerator.cpp diff --git a/src/dbus/qdbusxmlgenerator.cpp b/src/dbus/qdbusxmlgenerator.cpp index bf5e24cd5f..8c822162e4 100644 --- a/src/dbus/qdbusxmlgenerator.cpp +++ b/src/dbus/qdbusxmlgenerator.cpp @@ -209,13 +209,12 @@ static QString generateInterfaceXml(const QMetaObject *mo, int flags, int method } int wantedMask; - const bool isSlot = mm.methodType() == QMetaMethod::Slot; if (isScriptable) wantedMask = isSignal ? QDBusConnection::ExportScriptableSignals - : isSlot ? QDBusConnection::ExportScriptableSlots : QDBusConnection::ExportScriptableInvokables; + : QDBusConnection::ExportScriptableSlots; else wantedMask = isSignal ? QDBusConnection::ExportNonScriptableSignals - : isSlot ? QDBusConnection::ExportNonScriptableSlots : QDBusConnection::ExportNonScriptableInvokables; + : QDBusConnection::ExportNonScriptableSlots; if ((flags & wantedMask) != wantedMask) continue; diff --git a/tests/auto/dbus/dbus.pro b/tests/auto/dbus/dbus.pro index 52ee154008..cd845d7043 100644 --- a/tests/auto/dbus/dbus.pro +++ b/tests/auto/dbus/dbus.pro @@ -17,7 +17,6 @@ SUBDIRS=\ qdbustype \ qdbusthreading \ qdbusxmlparser \ - qdbusxmlgenerator \ !contains(QT_CONFIG,private_tests): SUBDIRS -= \ qdbusmarshall \ diff --git a/tests/auto/dbus/qdbusxmlgenerator/qdbusxmlgenerator.pro b/tests/auto/dbus/qdbusxmlgenerator/qdbusxmlgenerator.pro deleted file mode 100644 index 5bf8523c42..0000000000 --- a/tests/auto/dbus/qdbusxmlgenerator/qdbusxmlgenerator.pro +++ /dev/null @@ -1,5 +0,0 @@ -CONFIG += testcase -TARGET = tst_qdbusxmlgenerator -QT = core dbus testlib xml -SOURCES += tst_qdbusxmlgenerator.cpp -DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/dbus/qdbusxmlgenerator/tst_qdbusxmlgenerator.cpp b/tests/auto/dbus/qdbusxmlgenerator/tst_qdbusxmlgenerator.cpp deleted file mode 100644 index 1ff613b5ca..0000000000 --- a/tests/auto/dbus/qdbusxmlgenerator/tst_qdbusxmlgenerator.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Canonical Limited -** Contact: http://www.qt-project.org/legal -** -** This file is part of the test suite of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include - -#include -#include -#include - -static const QString serviceName = "org.example.qdbus"; -static const QString interfaceName = serviceName; - -Q_DECLARE_METATYPE(QDBusConnection::RegisterOption); - -class DBusXmlGenetarorObject : public QObject -{ - Q_OBJECT - Q_CLASSINFO("D-Bus Interface", "org.example.qdbus") -public: - Q_INVOKABLE void nonScriptableInvokable() {} - Q_SCRIPTABLE Q_INVOKABLE void scriptableInvokable() {} -}; - -class tst_QDBusXmlGenerator : public QObject -{ - Q_OBJECT - -private slots: - void initTestCase(); - void introspect_data(); - void introspect(); -}; - -void tst_QDBusXmlGenerator::initTestCase() -{ - QDBusConnection::sessionBus().registerService(serviceName); -} - -void tst_QDBusXmlGenerator::introspect_data() -{ - QTest::addColumn("methodName"); - QTest::addColumn("flags"); - - QTest::newRow("scriptableInvokable") << "scriptableInvokable" << QDBusConnection::ExportScriptableInvokables; - QTest::newRow("nonScriptableInvokable") << "nonScriptableInvokable" << QDBusConnection::ExportNonScriptableInvokables; -} - -void tst_QDBusXmlGenerator::introspect() -{ - QFETCH(QString, methodName); - QFETCH(QDBusConnection::RegisterOption, flags); - DBusXmlGenetarorObject obj; - - QDBusConnection::sessionBus().registerObject("/" + methodName, &obj, flags ); - - QDBusInterface dif(serviceName, "/" + methodName, "", QDBusConnection::sessionBus()); - QDBusReply reply = dif.call("Introspect"); - - bool found = false; - QDomDocument d; - d.setContent(reply.value(), false); - QDomNode n = d.documentElement().firstChild(); - while (!found && !n.isNull()) { - QDomElement e = n.toElement(); // try to convert the node to an element. - if (!e.isNull()) { - if (e.tagName() == "interface" && e.attribute("name") == interfaceName ) { - QDomNode n2 = e.firstChild(); - while (!n2.isNull()) { - QDomElement e2 = n2.toElement(); // try to convert the node to an element. - if (!e2.isNull()) { - if (e2.tagName() == "method") { - found = e2.attribute("name") == methodName; - } - } - n2 = n2.nextSibling(); - } - } - } - n = n.nextSibling(); - } - - QVERIFY(found); -} - -QTEST_MAIN(tst_QDBusXmlGenerator) - -#include "tst_qdbusxmlgenerator.moc" -