File indexing completed on 2024-12-08 13:22:04

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2018 Marco Martin <mart@kde.org>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 // own
0011 #include "virtualdesktopsdbustypes.h"
0012 
0013 // Marshall the DBusDesktopDataStruct data into a D-BUS argument
0014 const QDBusArgument &operator<<(QDBusArgument &argument, const KWin::DBusDesktopDataStruct &desk)
0015 {
0016     argument.beginStructure();
0017     argument << desk.position;
0018     argument << desk.id;
0019     argument << desk.name;
0020     argument.endStructure();
0021     return argument;
0022 }
0023 // Retrieve
0024 const QDBusArgument &operator>>(const QDBusArgument &argument, KWin::DBusDesktopDataStruct &desk)
0025 {
0026     argument.beginStructure();
0027     argument >> desk.position;
0028     argument >> desk.id;
0029     argument >> desk.name;
0030     argument.endStructure();
0031     return argument;
0032 }
0033 
0034 const QDBusArgument &operator<<(QDBusArgument &argument, const KWin::DBusDesktopDataVector &deskVector)
0035 {
0036     argument.beginArray(qMetaTypeId<KWin::DBusDesktopDataStruct>());
0037     for (int i = 0; i < deskVector.size(); ++i) {
0038         argument << deskVector[i];
0039     }
0040     argument.endArray();
0041     return argument;
0042 }
0043 
0044 const QDBusArgument &operator>>(const QDBusArgument &argument, KWin::DBusDesktopDataVector &deskVector)
0045 {
0046     argument.beginArray();
0047     deskVector.clear();
0048 
0049     while (!argument.atEnd()) {
0050         KWin::DBusDesktopDataStruct element;
0051         argument >> element;
0052         deskVector.append(element);
0053     }
0054 
0055     argument.endArray();
0056 
0057     return argument;
0058 }