/* * SPDX-FileCopyrightText: 2021 Alexander Lohnau * * SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once #include #include #include #include enum Type { NoMatch = 0, CompletionMatch = 10, PossibleMatch = 30, InformationalMatch = 50, HelperMatch = 70, ExactMatch = 100, }; struct RemoteMatch { // sssuda{sv} QString id; QString text; QString iconName; Type type = NoMatch; qreal relevance = 0; QVariantMap properties; }; typedef QList RemoteMatches; struct RemoteAction { QString id; QString text; QString iconName; }; typedef QList RemoteActions; inline QDBusArgument &operator<<(QDBusArgument &argument, const RemoteMatch &match) { argument.beginStructure(); argument << match.id; argument << match.text; argument << match.iconName; argument << match.type; argument << match.relevance; argument << match.properties; argument.endStructure(); return argument; } inline const QDBusArgument &operator>>(const QDBusArgument &argument, RemoteMatch &match) { argument.beginStructure(); argument >> match.id; argument >> match.text; argument >> match.iconName; uint type; argument >> type; match.type = (Type)type; argument >> match.relevance; argument >> match.properties; argument.endStructure(); return argument; } inline QDBusArgument &operator<<(QDBusArgument &argument, const RemoteAction &action) { argument.beginStructure(); argument << action.id; argument << action.text; argument << action.iconName; argument.endStructure(); return argument; } inline const QDBusArgument &operator>>(const QDBusArgument &argument, RemoteAction &action) { argument.beginStructure(); argument >> action.id; argument >> action.text; argument >> action.iconName; argument.endStructure(); return argument; } Q_DECLARE_METATYPE(RemoteMatch) Q_DECLARE_METATYPE(RemoteMatches) Q_DECLARE_METATYPE(RemoteAction) Q_DECLARE_METATYPE(RemoteActions)