Changeset View
Changeset View
Standalone View
Standalone View
dbusinterface.cpp
Show First 20 Lines • Show All 183 Lines • ▼ Show 20 Line(s) | |||||
184 | } | 184 | } | ||
185 | 185 | | |||
186 | void DBusInterface::showDebugConsole() | 186 | void DBusInterface::showDebugConsole() | ||
187 | { | 187 | { | ||
188 | DebugConsole *console = new DebugConsole; | 188 | DebugConsole *console = new DebugConsole; | ||
189 | console->show(); | 189 | console->show(); | ||
190 | } | 190 | } | ||
191 | 191 | | |||
192 | QVariantMap DBusInterface::queryWindowInfo() | 192 | namespace { | ||
193 | QVariantMap clientToVariantMap(const AbstractClient *c) | ||||
193 | { | 194 | { | ||
194 | m_replyQueryWindowInfo = message(); | 195 | return { | ||
195 | setDelayedReply(true); | | |||
196 | kwinApp()->platform()->startInteractiveWindowSelection( | | |||
197 | [this] (Toplevel *t) { | | |||
198 | if (auto c = qobject_cast<AbstractClient*>(t)) { | | |||
199 | const QVariantMap ret{ | | |||
200 | {QStringLiteral("resourceClass"), c->resourceClass()}, | 196 | {QStringLiteral("resourceClass"), c->resourceClass()}, | ||
201 | {QStringLiteral("resourceName"), c->resourceName()}, | 197 | {QStringLiteral("resourceName"), c->resourceName()}, | ||
202 | {QStringLiteral("desktopFile"), c->desktopFileName()}, | 198 | {QStringLiteral("desktopFile"), c->desktopFileName()}, | ||
203 | {QStringLiteral("role"), c->windowRole()}, | 199 | {QStringLiteral("role"), c->windowRole()}, | ||
204 | {QStringLiteral("caption"), c->captionNormal()}, | 200 | {QStringLiteral("caption"), c->captionNormal()}, | ||
205 | {QStringLiteral("clientMachine"), c->wmClientMachine(true)}, | 201 | {QStringLiteral("clientMachine"), c->wmClientMachine(true)}, | ||
206 | {QStringLiteral("type"), c->windowType()}, | 202 | {QStringLiteral("type"), c->windowType()}, | ||
207 | {QStringLiteral("x"), c->x()}, | 203 | {QStringLiteral("x"), c->x()}, | ||
208 | {QStringLiteral("y"), c->y()}, | 204 | {QStringLiteral("y"), c->y()}, | ||
209 | {QStringLiteral("width"), c->width()}, | 205 | {QStringLiteral("width"), c->width()}, | ||
210 | {QStringLiteral("height"), c->height()}, | 206 | {QStringLiteral("height"), c->height()}, | ||
211 | {QStringLiteral("x11DesktopNumber"), c->desktop()}, | 207 | {QStringLiteral("x11DesktopNumber"), c->desktop()}, | ||
212 | {QStringLiteral("minimized"), c->isMinimized()}, | 208 | {QStringLiteral("minimized"), c->isMinimized()}, | ||
213 | {QStringLiteral("shaded"), c->isShade()}, | 209 | {QStringLiteral("shaded"), c->isShade()}, | ||
214 | {QStringLiteral("fullscreen"), c->isFullScreen()}, | 210 | {QStringLiteral("fullscreen"), c->isFullScreen()}, | ||
215 | {QStringLiteral("keepAbove"), c->keepAbove()}, | 211 | {QStringLiteral("keepAbove"), c->keepAbove()}, | ||
216 | {QStringLiteral("keepBelow"), c->keepBelow()}, | 212 | {QStringLiteral("keepBelow"), c->keepBelow()}, | ||
217 | {QStringLiteral("noBorder"), c->noBorder()}, | 213 | {QStringLiteral("noBorder"), c->noBorder()}, | ||
218 | {QStringLiteral("skipTaskbar"), c->skipTaskbar()}, | 214 | {QStringLiteral("skipTaskbar"), c->skipTaskbar()}, | ||
219 | {QStringLiteral("skipPager"), c->skipPager()}, | 215 | {QStringLiteral("skipPager"), c->skipPager()}, | ||
220 | {QStringLiteral("skipSwitcher"), c->skipSwitcher()}, | 216 | {QStringLiteral("skipSwitcher"), c->skipSwitcher()}, | ||
221 | {QStringLiteral("maximizeHorizontal"), c->maximizeMode() & MaximizeHorizontal}, | 217 | {QStringLiteral("maximizeHorizontal"), c->maximizeMode() & MaximizeHorizontal}, | ||
222 | {QStringLiteral("maximizeVertical"), c->maximizeMode() & MaximizeVertical} | 218 | {QStringLiteral("maximizeVertical"), c->maximizeMode() & MaximizeVertical} | ||
223 | }; | 219 | }; | ||
224 | QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createReply(ret)); | 220 | } | ||
221 | } | ||||
222 | | ||||
223 | QVariantMap DBusInterface::queryWindowInfo() | ||||
224 | { | ||||
225 | m_replyQueryWindowInfo = message(); | ||||
226 | setDelayedReply(true); | ||||
227 | kwinApp()->platform()->startInteractiveWindowSelection( | ||||
228 | [this] (Toplevel *t) { | ||||
229 | if (auto c = qobject_cast<AbstractClient*>(t)) { | ||||
230 | QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createReply(clientToVariantMap(c))); | ||||
225 | } else { | 231 | } else { | ||
226 | QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createErrorReply(QString(), QString())); | 232 | QDBusConnection::sessionBus().send(m_replyQueryWindowInfo.createErrorReply(QString(), QString())); | ||
227 | } | 233 | } | ||
228 | } | 234 | } | ||
229 | ); | 235 | ); | ||
230 | return QVariantMap{}; | 236 | return QVariantMap{}; | ||
231 | } | 237 | } | ||
232 | 238 | | |||
239 | QVariantMap DBusInterface::getWindowInfo(const QString &uuid) | ||||
240 | { | ||||
241 | const auto id = QUuid::fromString(uuid); | ||||
242 | const auto client = workspace()->findAbstractClient([&id] (const AbstractClient *c) { return c->internalId() == id; }); | ||||
243 | if (client) { | ||||
244 | return clientToVariantMap(client); | ||||
245 | } else { | ||||
246 | return {}; | ||||
247 | } | ||||
248 | } | ||||
249 | | ||||
233 | CompositorDBusInterface::CompositorDBusInterface(Compositor *parent) | 250 | CompositorDBusInterface::CompositorDBusInterface(Compositor *parent) | ||
234 | : QObject(parent) | 251 | : QObject(parent) | ||
235 | , m_compositor(parent) | 252 | , m_compositor(parent) | ||
236 | { | 253 | { | ||
237 | connect(m_compositor, &Compositor::compositingToggled, this, &CompositorDBusInterface::compositingToggled); | 254 | connect(m_compositor, &Compositor::compositingToggled, this, &CompositorDBusInterface::compositingToggled); | ||
238 | new CompositingAdaptor(this); | 255 | new CompositingAdaptor(this); | ||
239 | QDBusConnection dbus = QDBusConnection::sessionBus(); | 256 | QDBusConnection dbus = QDBusConnection::sessionBus(); | ||
240 | dbus.registerObject(QStringLiteral("/Compositor"), this); | 257 | dbus.registerObject(QStringLiteral("/Compositor"), this); | ||
▲ Show 20 Lines • Show All 255 Lines • Show Last 20 Lines |