@@ -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