本文整理汇总了C++中QDBusPendingCallWatcher::isError方法的典型用法代码示例。如果您正苦于以下问题:C++ QDBusPendingCallWatcher::isError方法的具体用法?C++ QDBusPendingCallWatcher::isError怎么用?C++ QDBusPendingCallWatcher::isError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类QDBusPendingCallWatcher
的用法示例。
在下文中一共展示了QDBusPendingCallWatcher::isError方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dumpPlasmaLayout
void LnfLogic::dumpPlasmaLayout(const QString &pluginName)
{
QDBusMessage message = QDBusMessage::createMethodCall("org.kde.plasmashell", "/PlasmaShell",
"org.kde.PlasmaShell", "dumpCurrentLayoutJS");
QDBusPendingCall pcall = QDBusConnection::sessionBus().asyncCall(message);
QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(pcall, this);
QObject::connect(watcher, &QDBusPendingCallWatcher::finished,
this, [=](QDBusPendingCallWatcher *watcher) {
const QDBusMessage &msg = watcher->reply();
watcher->deleteLater();
if (watcher->isError()) {
emit messageRequested(ErrorLevel::Error, i18n("Cannot retrieve the current Plasma layout."));
return;
}
const QString layout = msg.arguments().first().toString();
QDir themeDir(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) % QLatin1Literal("/plasma/look-and-feel/") % pluginName);
if (!themeDir.mkpath("contents/layouts")) {
qWarning() << "Impossible to create the layouts directory in the look and feel package";
emit messageRequested(ErrorLevel::Error, i18n("Impossible to create the layouts directory in the look and feel package"));
return;
}
QFile layoutFile(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) % QLatin1Literal("/plasma/look-and-feel/") % pluginName % QLatin1Literal("/contents/layouts/org.kde.plasma.desktop-layout.js"));
if (layoutFile.open(QIODevice::WriteOnly)) {
layoutFile.write(layout.toUtf8());
layoutFile.close();
} else {
qWarning() << "Impossible to write to org.kde.plasma.desktop-layout.js";
emit messageRequested(ErrorLevel::Error, i18n("Impossible to write to org.kde.plasma.desktop-layout.js"));
return;
}
emit messageRequested(ErrorLevel::Info, i18n("Plasma Layout successfully duplicated"));
});
}