From: Dominik Schmidt Date: Wed, 5 Jun 2019 19:04:40 +0000 (+0200) Subject: Add ASYNC_ASSERT_ICON_IS_EQUAL command to SocketApi X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~198 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=25cd52dd9fd3cda2069a6d8b74693d6f6ec28af9;p=nextcloud-desktop.git Add ASYNC_ASSERT_ICON_IS_EQUAL command to SocketApi --- diff --git a/src/gui/socketapi.cpp b/src/gui/socketapi.cpp index b72688fa3..f33727f46 100644 --- a/src/gui/socketapi.cpp +++ b/src/gui/socketapi.cpp @@ -1305,6 +1305,51 @@ void SocketApi::command_ASYNC_TRIGGER_MENU_ACTION(const QSharedPointerreject("Action not found"); } + +void SocketApi::command_ASYNC_ASSERT_ICON_IS_EQUAL(const QSharedPointer &job) +{ + auto widget = findWidget(job->arguments()[QLatin1String("queryString")].toString()); + if (!widget) { + QString message("Widget not found: 37: "); + message.append(job->arguments()["objectName"].toString()); + job->reject(message); + return; + } + + auto propertyName = job->arguments()[QLatin1String("propertyPath")].toString(); + + auto segments = propertyName.split('.'); + + QObject* currentObject = widget; + QIcon value; + for(int i = 0;iproperty(segment.toUtf8().constData()); + + if(var.canConvert()) { + var.convert(QMetaType::QIcon); + value = var.value(); + + DEBUG << "VALUE: " << value; + break; + } + + auto tmpObject = var.value(); + if(tmpObject) { + currentObject = tmpObject; + } else { + DEBUG << "HUH not found .. what do"; + } + } + + auto iconName = job->arguments()[QLatin1String("iconName")].toString(); + if (value.name() == iconName) { + job->resolve(); + } else { + job->reject("iconName " + iconName + " does not match: " + value.name()); + } + +} #endif QString SocketApi::buildRegisterPathMessage(const QString &path) diff --git a/src/gui/socketapi.h b/src/gui/socketapi.h index d24999019..47aaef550 100644 --- a/src/gui/socketapi.h +++ b/src/gui/socketapi.h @@ -150,6 +150,7 @@ private: DirectEditor* getDirectEditorForLocalFile(const QString &localFile); #if GUI_TESTING + Q_INVOKABLE void command_ASYNC_ASSERT_ICON_IS_EQUAL(const QSharedPointer &job); Q_INVOKABLE void command_ASYNC_LIST_WIDGETS(const QSharedPointer &job); Q_INVOKABLE void command_ASYNC_INVOKE_WIDGET_METHOD(const QSharedPointer &job); Q_INVOKABLE void command_ASYNC_GET_WIDGET_PROPERTY(const QSharedPointer &job);