Hi,

I am cross building Qt and KDE with yocto environment. After Update to
Qt 5.8 the package baloo from KDE KF5 is broken. After investigation I
found that qdbuscpp2xml 5.8 build misses some public slots.

I get for Qt5.8 build by yocto:

qdbuscpp2xml -a filecontentindexer.h
Unregistered input type in parameter list: QDBusMessage
Unregistered input type in parameter list: QDBusMessage
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection
1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
<node>
  <interface name="org.kde.baloo.fileindexer">
    <property name="currentFile" type="s" access="read"/>
    <signal name="startedIndexingFile">
      <arg name="filePath" type="s" direction="out"/>
    </signal>
    <signal name="finishedIndexingFile">
      <arg name="filePath" type="s" direction="out"/>
    </signal>
  </interface>
</node>

On my local fedora Qt5.7.1
qdbuscpp2xml -a filecontentindexer.h
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection
1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd";>
<node>
  <interface name="org.kde.baloo.fileindexer">
    <property name="currentFile" type="s" access="read"/>
    <signal name="startedIndexingFile">
      <arg name="filePath" type="s" direction="out"/>
    </signal>
    <signal name="finishedIndexingFile">
      <arg name="filePath" type="s" direction="out"/>
    </signal>
    <method name="registerMonitor">
    </method>
    <method name="unregisterMonitor">
    </method>
  </interface>
</node>

You can see that qdbuscpp2xml complains for unregistered QDBusMessage
and the slots 'registerMonitor' and 'unregisterMonitor' having
QDBusMessage in parameter are missing.

Since yocto builds also native qdbuscpp2xml it might be possible that
there is something missing for qdbuscpp2xml.

Pointers how to get around or even confirmation of a bug are welcome -
baloo's filecontentindexer.h is attached

Andreas
/*
 * Copyright (C) 2015  Vishesh Handa <vha...@kde.org>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */

#ifndef BALOO_FILECONTENTINDEXER_H
#define BALOO_FILECONTENTINDEXER_H

#include <QRunnable>
#include <QObject>
#include <QAtomicInt>
#include <QStringList>

#include <QDBusServiceWatcher>
#include <QDBusMessage>
#include "fileindexerconfig.h"

namespace Baloo {

class FileContentIndexerProvider;

class FileContentIndexer : public QObject, public QRunnable
{
    Q_OBJECT
    Q_CLASSINFO("D-Bus Interface", "org.kde.baloo.fileindexer")

    Q_PROPERTY(QString currentFile READ currentFile NOTIFY startedIndexingFile)
public:
    FileContentIndexer(FileIndexerConfig* config, FileContentIndexerProvider* provider, QObject* parent = nullptr);

    QString currentFile() { return m_currentFile; }

    void run() Q_DECL_OVERRIDE;

    void quit() {
        m_stop.store(true);
    }

public Q_SLOTS:
    Q_SCRIPTABLE void registerMonitor(const QDBusMessage& message);
    Q_SCRIPTABLE void unregisterMonitor(const QDBusMessage& message);

Q_SIGNALS:
    Q_SCRIPTABLE void startedIndexingFile(const QString& filePath);
    Q_SCRIPTABLE void finishedIndexingFile(const QString& filePath);

    void done();
    void newBatchTime(uint time);

private Q_SLOTS:
    void monitorClosed(const QString& service);
    void slotStartedIndexingFile(const QString& filePath);
    void slotFinishedIndexingFile(const QString& filePath);

private:
    FileIndexerConfig *m_config;
    uint m_batchSize;
    FileContentIndexerProvider* m_provider;

    QAtomicInt m_stop;

    QString m_currentFile;

    QStringList m_registeredMonitors;
    QDBusServiceWatcher m_monitorWatcher;
};

}

#endif // BALOO_FILECONTENTINDEXER_H
-- 
_______________________________________________
Openembedded-devel mailing list
Openembedded-devel@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-devel

Reply via email to