From ff582cbf24c9727716ca9a1af6a9866a5e0840f6 Mon Sep 17 00:00:00 2001 From: tangjie02 Date: Thu, 1 Sep 2022 17:41:40 +0800 Subject: [PATCH 2/3] feature(error): Add error message when Failed to apply display setting. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 当应用显示设置失败时添加错误提示。 Signed-off-by: tangjie02 --- lib/base/error.cpp | 4 +- plugins/display/display-manager.cpp | 14 +- po/zh_CN.po | 217 ++++++++++++++-------------- 3 files changed, 127 insertions(+), 108 deletions(-) diff --git a/lib/base/error.cpp b/lib/base/error.cpp index 0dcbcee..656e732 100644 --- a/lib/base/error.cpp +++ b/lib/base/error.cpp @@ -219,6 +219,9 @@ std::string CCError::get_error_desc(CCErrorCode error_code, bool attach_error_co case CCErrorCode::ERROR_DISPLAY_UNKNOWN_REFLECT_TYPE: error_desc = _("Unknown reflect type."); break; + case CCErrorCode::ERROR_DISPLAY_EXEC_XRANDR_FAILED: + error_desc = _("The current settings cannot be applied."); + break; case CCErrorCode::ERROR_APPEARANCE_THEME_NOT_EXIST: error_desc = _("Theme not exist."); break; @@ -387,7 +390,6 @@ std::string CCError::get_error_desc(CCErrorCode error_code, bool attach_error_co case CCErrorCode::ERROR_ACCOUNTS_USER_GROUP_NOT_FOUND: case CCErrorCode::ERROR_ACCOUNTS_USER_AUTH_SAVE_DATA_FAILED: case CCErrorCode::ERROR_ACCOUNTS_USER_AUTH_DEL_DATA_FAILED: - case CCErrorCode::ERROR_DISPLAY_EXEC_XRANDR_FAILED: case CCErrorCode::ERROR_DISPLAY_SAVE_CREATE_FILE_FAILED: case CCErrorCode::ERROR_DISPLAY_WRITE_CONF_FILE_FAILED: case CCErrorCode::ERROR_APPEARANCE_SET_BACKGROUND_FAILED: diff --git a/plugins/display/display-manager.cpp b/plugins/display/display-manager.cpp index bc18eb9..9b7190e 100644 --- a/plugins/display/display-manager.cpp +++ b/plugins/display/display-manager.cpp @@ -580,13 +580,23 @@ bool DisplayManager::apply(CCErrorCode &error_code) try { + std::string standard_error; + int32_t exit_status = 0; + KLOG_DEBUG("cmdline: %s.", cmdline.c_str()); - Glib::spawn_command_line_sync(cmdline); + Glib::spawn_command_line_sync(cmdline, nullptr, &standard_error, &exit_status); + + if (!standard_error.empty() || exit_status != 0) + { + error_code = CCErrorCode::ERROR_DISPLAY_EXEC_XRANDR_FAILED; + KLOG_WARNING("Failed to run xrandr: %s.", standard_error.c_str()); + return false; + } } catch (const Glib::Error &e) { error_code = CCErrorCode::ERROR_DISPLAY_EXEC_XRANDR_FAILED; - KLOG_WARNING("%s.", e.what().c_str()); + KLOG_WARNING("Failed to run xrandr: %s.", e.what().c_str()); return false; } return true; diff --git a/po/zh_CN.po b/po/zh_CN.po index 0f3f202..e1c431e 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: kiran-cc-daemon 2.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-08-16 17:47+0800\n" +"POT-Creation-Date: 2022-09-01 17:39+0800\n" "PO-Revision-Date: 2020-07-01 17:54+0800\n" "Last-Translator: tangjie02 \n" "Language-Team: Chinese (simplified)\n" @@ -406,424 +406,428 @@ msgstr "输出版本信息并退出" msgid "Control center" msgstr "控制中心" -#: ../lib/base/error.cpp:32 +#: ../lib/base/error.cpp:34 msgid "The argument is invalid." msgstr "参数不合法。" -#: ../lib/base/error.cpp:35 +#: ../lib/base/error.cpp:37 msgid "Operation failed." msgstr "操作失败。" -#: ../lib/base/error.cpp:39 +#: ../lib/base/error.cpp:41 msgid "The plugin doesn't exist." msgstr "插件不存在。" -#: ../lib/base/error.cpp:46 +#: ../lib/base/error.cpp:48 msgid "No user found." msgstr "没有发现用户。" -#: ../lib/base/error.cpp:49 +#: ../lib/base/error.cpp:51 msgid "Multiple users have the same authentication data." msgstr "多个用户存在相同的认证数据" -#: ../lib/base/error.cpp:52 +#: ../lib/base/error.cpp:54 msgid "" "The user is already logined in, Please log off the user before deleting it." msgstr "用户已经登录,请注销该用户后再删除" -#: ../lib/base/error.cpp:55 +#: ../lib/base/error.cpp:57 msgid "The user already exists." msgstr "用户已存在。" -#: ../lib/base/error.cpp:58 +#: ../lib/base/error.cpp:60 msgid "Unknown account type." msgstr "未知的用户类型。" -#: ../lib/base/error.cpp:61 +#: ../lib/base/error.cpp:63 msgid "Can't update password file." msgstr "不能更新password文件。" -#: ../lib/base/error.cpp:64 +#: ../lib/base/error.cpp:66 msgid "Invalid command syntax." msgstr "命令语法无效。" -#: ../lib/base/error.cpp:67 +#: ../lib/base/error.cpp:69 msgid "Invalid argument to option." msgstr "命令参数无效。" -#: ../lib/base/error.cpp:70 +#: ../lib/base/error.cpp:72 msgid "UID already in use." msgstr "UID已在使用中。" -#: ../lib/base/error.cpp:73 +#: ../lib/base/error.cpp:75 msgid "Passwd file contains errors." msgstr "Passwd文件存在错误。" -#: ../lib/base/error.cpp:76 +#: ../lib/base/error.cpp:78 msgid "Specified user/group doesn't exist." msgstr "指定的用户/组不存在。" -#: ../lib/base/error.cpp:79 +#: ../lib/base/error.cpp:81 msgid "User to modify is logged in." msgstr "要修改的用户已登陆。" -#: ../lib/base/error.cpp:82 +#: ../lib/base/error.cpp:84 msgid "Username already in use." msgstr "用户名已经在使用中。" -#: ../lib/base/error.cpp:85 +#: ../lib/base/error.cpp:87 msgid "Can't update group file." msgstr "不能更新group文件。" -#: ../lib/base/error.cpp:88 +#: ../lib/base/error.cpp:90 msgid "Insufficient space to move home dir." msgstr "空间不足,无法移动主目录。" -#: ../lib/base/error.cpp:91 +#: ../lib/base/error.cpp:93 msgid "Can't create/remove/move home directory." msgstr "不能创建/删除/移动主目录。" -#: ../lib/base/error.cpp:95 +#: ../lib/base/error.cpp:97 msgid "Can't update SELinux user mapping." msgstr "无法更新SELinux用户映射。" -#: ../lib/base/error.cpp:98 +#: ../lib/base/error.cpp:100 msgid "Can't update the subordinate uid file." msgstr "无法更新下级uid文件。" -#: ../lib/base/error.cpp:101 +#: ../lib/base/error.cpp:103 msgid "Can't update the subordinate gid file." msgstr "无法更新下级gid文件。" -#: ../lib/base/error.cpp:104 +#: ../lib/base/error.cpp:106 msgid "Refuse to delete root user." msgstr "禁止删除root用户。" -#: ../lib/base/error.cpp:107 +#: ../lib/base/error.cpp:109 msgid "Refuse to delete three authority user." msgstr "禁止删除三权用户。" -#: ../lib/base/error.cpp:113 +#: ../lib/base/error.cpp:115 msgid "The authentication mode isn't supported." msgstr "认证模式不支持。" -#: ../lib/base/error.cpp:116 +#: ../lib/base/error.cpp:118 msgid "User is locked." msgstr "用户被锁定。" -#: ../lib/base/error.cpp:119 +#: ../lib/base/error.cpp:121 msgid "The name already exists." msgstr "名字已存在" -#: ../lib/base/error.cpp:123 +#: ../lib/base/error.cpp:125 msgid "The range of volume is between 0 and 1.0." msgstr "音量范围必须在[0, 1.0]之间" -#: ../lib/base/error.cpp:127 +#: ../lib/base/error.cpp:129 msgid "The range of balance is between -1 and 1." msgstr "平衡范围必须在[-1, 1]之间" -#: ../lib/base/error.cpp:131 +#: ../lib/base/error.cpp:133 msgid "The sink device isn't found." msgstr "未找到输出设备。" -#: ../lib/base/error.cpp:135 +#: ../lib/base/error.cpp:137 msgid "The source device isn't found." msgstr "未找到输入设备。" -#: ../lib/base/error.cpp:139 +#: ../lib/base/error.cpp:141 msgid "The sink stream isn't found." msgstr "未找到输出流。" -#: ../lib/base/error.cpp:142 +#: ../lib/base/error.cpp:144 msgid "NTP unit is active." msgstr "NTP服务已开启。" -#: ../lib/base/error.cpp:145 +#: ../lib/base/error.cpp:147 msgid "Invalid timezone." msgstr "不合法的时区。" -#: ../lib/base/error.cpp:148 +#: ../lib/base/error.cpp:150 msgid "No NTP unit available." msgstr "没有NTP服务可用。" -#: ../lib/base/error.cpp:152 +#: ../lib/base/error.cpp:154 msgid "Unknown date format type." msgstr "未知的日期格式化类型。" -#: ../lib/base/error.cpp:155 +#: ../lib/base/error.cpp:157 msgid "Failed to set date format." msgstr "设置日期显示格式失败。" -#: ../lib/base/error.cpp:158 +#: ../lib/base/error.cpp:160 msgid "Failed to set hour format." msgstr "设置时间显示格式失败。" -#: ../lib/base/error.cpp:161 +#: ../lib/base/error.cpp:163 msgid "Failed to set seconds showing." msgstr "设置秒数是否显示失败。" -#: ../lib/base/error.cpp:164 +#: ../lib/base/error.cpp:166 msgid "Failed to start NTP unit." msgstr "开启NTP服务失败。" -#: ../lib/base/error.cpp:167 +#: ../lib/base/error.cpp:169 msgid "Failed to stop NTP unit." msgstr "停止NTP服务失败。" -#: ../lib/base/error.cpp:171 +#: ../lib/base/error.cpp:173 msgid "Unknown display style." msgstr "未知的显示类型。" -#: ../lib/base/error.cpp:174 +#: ../lib/base/error.cpp:176 msgid "" "The mode of monitors which contain resolution and refresh rate is no " "intersection." msgstr "所有显示器没有相同的分辨率和刷新率。" -#: ../lib/base/error.cpp:177 +#: ../lib/base/error.cpp:179 msgid "Auto mode is set failed." msgstr "自动模式设置失败。" -#: ../lib/base/error.cpp:181 +#: ../lib/base/error.cpp:183 msgid "Failed to set the window scaling factor." msgstr "设置窗口缩放因子失败。" -#: ../lib/base/error.cpp:184 +#: ../lib/base/error.cpp:186 msgid "The custom configuration file isn't found." msgstr "未找到自定义配置文件。" -#: ../lib/base/error.cpp:187 +#: ../lib/base/error.cpp:189 msgid "Not found matched item in custom configuration file." msgstr "不能找到匹配的配置项。" -#: ../lib/base/error.cpp:190 +#: ../lib/base/error.cpp:192 msgid "The primary monitor must not be empty." msgstr "主显示器不能为空。" -#: ../lib/base/error.cpp:193 +#: ../lib/base/error.cpp:195 msgid "Not found the primary monitor." msgstr "未找到主显示器。" -#: ../lib/base/error.cpp:196 +#: ../lib/base/error.cpp:198 msgid "" "Cannot disable the monitor, because the number of the enabled monitor is " "less than 1." msgstr "不能禁用显示器,因为启用的显示器数量已经少于2个。" -#: ../lib/base/error.cpp:199 +#: ../lib/base/error.cpp:201 msgid "Exist null mode in mode list." msgstr "模式列表中存在空的模式。" -#: ../lib/base/error.cpp:202 +#: ../lib/base/error.cpp:204 msgid "Exist null mode in preferred mode list." msgstr "在推荐模式中存在空的模式。" -#: ../lib/base/error.cpp:205 +#: ../lib/base/error.cpp:207 msgid "The current mode is not exist." msgstr "当前模式不存在。" -#: ../lib/base/error.cpp:209 +#: ../lib/base/error.cpp:211 msgid "Not found match mode." msgstr "未发现匹配的模式。" -#: ../lib/base/error.cpp:212 +#: ../lib/base/error.cpp:214 msgid "The mode is not exist." msgstr "当前模式不存在。" -#: ../lib/base/error.cpp:215 +#: ../lib/base/error.cpp:217 msgid "Unknown rotation type." msgstr "未知的旋转类型。" -#: ../lib/base/error.cpp:218 +#: ../lib/base/error.cpp:220 msgid "Unknown reflect type." msgstr "未知的映射类型。" -#: ../lib/base/error.cpp:221 +#: ../lib/base/error.cpp:223 +msgid "The current settings cannot be applied." +msgstr "无法应用当前设置。" + +#: ../lib/base/error.cpp:226 msgid "Theme not exist." msgstr "主题不存在。" -#: ../lib/base/error.cpp:224 +#: ../lib/base/error.cpp:229 msgid "Unsupported theme type." msgstr "主题类型不支持。" -#: ../lib/base/error.cpp:227 +#: ../lib/base/error.cpp:232 msgid "Invalid theme type." msgstr "主题类型不合法。" -#: ../lib/base/error.cpp:231 +#: ../lib/base/error.cpp:236 msgid "Invalid font type." msgstr "字体类型不合法。" -#: ../lib/base/error.cpp:234 +#: ../lib/base/error.cpp:239 msgid "Unsupported font type." msgstr "字体类型不支持。" -#: ../lib/base/error.cpp:237 +#: ../lib/base/error.cpp:242 msgid "An incomplete request already exists." msgstr "存在未完成的请求。" -#: ../lib/base/error.cpp:240 +#: ../lib/base/error.cpp:245 msgid "The request is canceled." msgstr "请求被取消。" -#: ../lib/base/error.cpp:246 +#: ../lib/base/error.cpp:251 msgid "The request is rejected." msgstr "请求被拒绝。" -#: ../lib/base/error.cpp:249 +#: ../lib/base/error.cpp:254 msgid "Not found adapter." msgstr "未发现适配器。" -#: ../lib/base/error.cpp:257 +#: ../lib/base/error.cpp:262 msgid "Sync to file failed." msgstr "同步到文件失败。" -#: ../lib/base/error.cpp:263 +#: ../lib/base/error.cpp:268 msgid "Invalid scale mode." msgstr "缩放模式不合法。" -#: ../lib/base/error.cpp:266 +#: ../lib/base/error.cpp:271 msgid "The number of the layout can't exceeds {0}." msgstr "布局数量不能超过{0}个。" -#: ../lib/base/error.cpp:269 +#: ../lib/base/error.cpp:274 msgid "The layout is invalid." msgstr "该布局不合法。" -#: ../lib/base/error.cpp:272 +#: ../lib/base/error.cpp:277 msgid "The layout already exist." msgstr "该布局已存在。" -#: ../lib/base/error.cpp:275 +#: ../lib/base/error.cpp:280 msgid "Failed to set the layout." msgstr "设置布局失败。" -#: ../lib/base/error.cpp:278 +#: ../lib/base/error.cpp:283 msgid "The layout is no exist." msgstr "该布局不存在。" -#: ../lib/base/error.cpp:281 +#: ../lib/base/error.cpp:286 msgid "Failed to update the layout." msgstr "更新布局失败。" -#: ../lib/base/error.cpp:284 +#: ../lib/base/error.cpp:289 msgid "The layout option already exist." msgstr "布局选项已存在。" -#: ../lib/base/error.cpp:287 +#: ../lib/base/error.cpp:292 msgid "Failed to set the layout option." msgstr "设置布局选项失败。" -#: ../lib/base/error.cpp:290 +#: ../lib/base/error.cpp:295 msgid "The layout option is no exist." msgstr "布局选项不存在。" -#: ../lib/base/error.cpp:293 +#: ../lib/base/error.cpp:298 msgid "Failed to update the layout option." msgstr "更新布局选项失败。" -#: ../lib/base/error.cpp:296 +#: ../lib/base/error.cpp:301 msgid "Failed to clear the layout option." msgstr "清理布局选项失败。" -#: ../lib/base/error.cpp:299 +#: ../lib/base/error.cpp:304 msgid "The custom shortcut isn't exist." msgstr "自定义快捷键不存在。" -#: ../lib/base/error.cpp:303 +#: ../lib/base/error.cpp:308 msgid "The key combination already exist." msgstr "按键组合已经存在。" -#: ../lib/base/error.cpp:307 +#: ../lib/base/error.cpp:312 msgid "The key combination is invalid." msgstr "按键组合不合法。" -#: ../lib/base/error.cpp:310 +#: ../lib/base/error.cpp:315 msgid "The system shortcut isn't exist." msgstr "该系统快捷键不存在。" -#: ../lib/base/error.cpp:316 +#: ../lib/base/error.cpp:321 msgid "Unsupported power supply mode." msgstr "不支持该供电模式。" -#: ../lib/base/error.cpp:322 +#: ../lib/base/error.cpp:327 msgid "Unsupported power device." msgstr "不支持该设备。" -#: ../lib/base/error.cpp:325 +#: ../lib/base/error.cpp:330 msgid "The value must be between 0 and 100." msgstr "值必须在0到100之间" -#: ../lib/base/error.cpp:329 +#: ../lib/base/error.cpp:334 msgid "Unknown power action." msgstr "未知电源动作。" -#: ../lib/base/error.cpp:333 +#: ../lib/base/error.cpp:338 msgid "Unsupported power event." msgstr "事件不支持。" -#: ../lib/base/error.cpp:336 +#: ../lib/base/error.cpp:341 msgid "Failed to set the action." msgstr "设置触发行为失败。" -#: ../lib/base/error.cpp:339 +#: ../lib/base/error.cpp:344 msgid "Failed to set brightness." msgstr "设置亮度失败。" -#: ../lib/base/error.cpp:342 +#: ../lib/base/error.cpp:347 msgid "The systeminfo type is invalid." msgstr "系统信息类型不合法。" -#: ../lib/base/error.cpp:345 +#: ../lib/base/error.cpp:350 msgid "Failed to set host name." msgstr "设置主机名失败。" -#: ../lib/base/error.cpp:348 +#: ../lib/base/error.cpp:353 msgid "Not found the property." msgstr "未找到该属性。" -#: ../lib/base/error.cpp:351 +#: ../lib/base/error.cpp:356 msgid "The type is mismatch." msgstr "类型不匹配。" -#: ../lib/base/error.cpp:354 +#: ../lib/base/error.cpp:359 msgid "The property is invalid." msgstr "属性不合法" -#: ../lib/base/error.cpp:357 +#: ../lib/base/error.cpp:362 msgid "The property must not be modified manually." msgstr "属性不能手动修改。" -#: ../lib/base/error.cpp:360 +#: ../lib/base/error.cpp:365 msgid "The property is unsupported." msgstr "属性不支持。" -#: ../lib/base/error.cpp:364 +#: ../lib/base/error.cpp:369 msgid "Arguments invalid." msgstr "参数不合法" -#: ../lib/base/error.cpp:367 +#: ../lib/base/error.cpp:372 msgid "The network proxy mode is invalid." msgstr "代理模式不合法" -#: ../lib/base/error.cpp:370 +#: ../lib/base/error.cpp:375 msgid "The current network proxy mode is not manual." msgstr "当前代理模式不是手动模式。" -#: ../lib/base/error.cpp:373 +#: ../lib/base/error.cpp:378 msgid "The current network proxy mode is not auto." msgstr "当前代理模式不是自动模式。" -#: ../lib/base/error.cpp:414 +#: ../lib/base/error.cpp:418 msgid "Internel error." msgstr "内部错误。" -#: ../lib/base/error.cpp:417 ../lib/base/error.cpp:420 +#: ../lib/base/error.cpp:421 ../lib/base/error.cpp:424 msgid "Unknown error." msgstr "未知错误。" -#: ../lib/base/error.cpp:426 ../plugins/accounts/accounts-util.cpp:209 +#: ../lib/base/error.cpp:430 ../plugins/accounts/accounts-util.cpp:209 msgid " (error code: 0x{:x})" msgstr "(错误码:0x{:x})" @@ -1194,6 +1198,9 @@ msgstr "电源管理" msgid "Power management daemon" msgstr "电源管理后端" +#~ msgid "Display setting failed." +#~ msgstr "显示设置失败。" + #~ msgid "The custom shortcut is invalid." #~ msgstr "自定义快捷键不合法。" -- 2.33.0