Skip to content

Commit b7577d5

Browse files
committed
feat: Adapt to V23 dde dbus interface
As title. Log: Adapt to V23 dde dbus interface
1 parent d0ae36b commit b7577d5

1 file changed

Lines changed: 13 additions & 7 deletions

File tree

libimageviewer/viewpanel/viewpanel.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -839,11 +839,15 @@ static void setWallpaperWithDBus(const QString &path)
839839
{
840840
//202011/12 bug54279 设置壁纸代码改变,采用DBus
841841
qDebug() << "SettingWallpaper: " << "flatpak" << path;
842-
QDBusInterface interface("com.deepin.daemon.Appearance",
842+
QDBusInterface interfaceV20("com.deepin.daemon.Appearance",
843843
"/com/deepin/daemon/Appearance",
844844
"com.deepin.daemon.Appearance");
845+
QDBusInterface interfaceV23("org.deepin.dde.Appearance1",
846+
"/org/deepin/dde/Appearance1",
847+
"org.deepin.dde.Appearance1");
848+
QDBusInterface *interface = interfaceV23.isValid() ? &interfaceV23 : &interfaceV20;
845849

846-
if (interface.isValid()) {
850+
if (interface->isValid()) {
847851
QString screenname;
848852

849853
//判断环境是否是wayland
@@ -860,19 +864,21 @@ static void setWallpaperWithDBus(const QString &path)
860864

861865
// wayland下设置壁纸使用,2020/09/21
862866
if (isWayland) {
863-
QDBusInterface interfaceWayland("com.deepin.daemon.Display", "/com/deepin/daemon/Display", "com.deepin.daemon.Display");
864-
screenname = qvariant_cast< QString >(interfaceWayland.property("Primary"));
867+
QDBusInterface interfaceWaylandV20("com.deepin.daemon.Display", "/com/deepin/daemon/Display", "com.deepin.daemon.Display");
868+
QDBusInterface interfaceWaylandV23("org.deepin.dde.Display1", "/org/deepin/dde/Display1", "org.deepin.dde.Display1");
869+
QDBusInterface *interfaceWayland = interfaceWaylandV23.isValid() ? &interfaceWaylandV23 : &interfaceWaylandV20;
870+
screenname = qvariant_cast< QString >(interfaceWayland->property("Primary"));
865871
} else {
866872
screenname = QGuiApplication::primaryScreen()->name();
867873
}
868-
QDBusMessage reply = interface.call(QStringLiteral("SetMonitorBackground"), screenname, path);
874+
QDBusMessage reply = interface->call(QStringLiteral("SetMonitorBackground"), screenname, path);
869875
QString error = reply.errorMessage();
870876
if (!error.isEmpty()) {
871877
qWarning() << "SettingWallpaper: replay" << reply.errorMessage();
872878
}
873879

874880
// 新增需求32367:同时设置锁屏壁纸
875-
reply = interface.call(QStringLiteral("Set"), QStringLiteral("greeterbackground"), path);
881+
reply = interface->call(QStringLiteral("Set"), QStringLiteral("greeterbackground"), path);
876882
error = reply.errorMessage();
877883
if (!error.isEmpty()) {
878884
qWarning() << "Set greeterbackground: replay" << reply.errorMessage();
@@ -881,7 +887,7 @@ static void setWallpaperWithDBus(const QString &path)
881887
// 通知触发设置壁纸动作(属于拷贝动作)
882888
PermissionConfig::instance()->triggerAction(PermissionConfig::TidCopy, path);
883889
} else {
884-
qWarning() << "SettingWallpaper failed" << interface.lastError();
890+
qWarning() << "SettingWallpaper failed" << interface->lastError();
885891
}
886892
}
887893

0 commit comments

Comments
 (0)