From 391dd0fab09ee14fdccabf407bd6c4abda240abb Mon Sep 17 00:00:00 2001 From: Ye ShanShan Date: Wed, 14 May 2025 17:20:54 +0800 Subject: [PATCH] refactor: update display mode icons and logic MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Changed icon names from 'osd_display_*' to 'osd_multi_screen_*' for better consistency 2. Modified display mode logic to support more than 2 screens by: - Always sorting output names (not just for 2 screens) - Using 'osd_multi_screen_only_more' icon when more than 2 screens exist 3. Removed old icon files and added new ones with updated naming scheme refactor: 更新显示模式图标和逻辑 1. 将图标名称从'osd_display_*'改为'osd_multi_screen_*'以提高一致性 2. 修改显示模式逻辑以支持超过2个屏幕: - 始终排序输出名称(不仅限于2个屏幕时) - 当存在超过2个屏幕时使用'osd_multi_screen_only_more'图标 3. 删除旧图标文件并添加具有更新命名方案的新图标 pms: BUG-315934 --- .../osd/displaymode/displaymodeapplet.cpp | 9 +++++---- .../package/icons/osd_display_copy.dci | Bin 729 -> 0 bytes .../package/icons/osd_display_custom1.dci | Bin 749 -> 0 bytes .../package/icons/osd_display_custom2.dci | Bin 755 -> 0 bytes .../package/icons/osd_display_expansion.dci | Bin 859 -> 0 bytes .../package/icons/osd_multi_screen_copy.dci | Bin 0 -> 731 bytes .../package/icons/osd_multi_screen_extension.dci | Bin 0 -> 861 bytes .../package/icons/osd_multi_screen_only1.dci | Bin 0 -> 751 bytes .../package/icons/osd_multi_screen_only2.dci | Bin 0 -> 757 bytes .../package/icons/osd_multi_screen_only_more.dci | Bin 0 -> 845 bytes 10 files changed, 5 insertions(+), 4 deletions(-) delete mode 100644 panels/notification/osd/displaymode/package/icons/osd_display_copy.dci delete mode 100644 panels/notification/osd/displaymode/package/icons/osd_display_custom1.dci delete mode 100644 panels/notification/osd/displaymode/package/icons/osd_display_custom2.dci delete mode 100644 panels/notification/osd/displaymode/package/icons/osd_display_expansion.dci create mode 100644 panels/notification/osd/displaymode/package/icons/osd_multi_screen_copy.dci create mode 100644 panels/notification/osd/displaymode/package/icons/osd_multi_screen_extension.dci create mode 100644 panels/notification/osd/displaymode/package/icons/osd_multi_screen_only1.dci create mode 100644 panels/notification/osd/displaymode/package/icons/osd_multi_screen_only2.dci create mode 100644 panels/notification/osd/displaymode/package/icons/osd_multi_screen_only_more.dci diff --git a/panels/notification/osd/displaymode/displaymodeapplet.cpp b/panels/notification/osd/displaymode/displaymodeapplet.cpp index cec316cb1..f303f7f63 100644 --- a/panels/notification/osd/displaymode/displaymodeapplet.cpp +++ b/panels/notification/osd/displaymode/displaymodeapplet.cpp @@ -165,13 +165,14 @@ void DisPlayModeApplet::fetchPlanItems() m_planItems.clear(); m_currentPlanItem = nullptr; - m_planItems << new DPItem(tr("Duplicate"), "osd_display_copy", DPItem::Merge, this); - m_planItems << new DPItem(tr("Extend"), "osd_display_expansion", DPItem::Extend, this); - if (outputNames.size() == 2) { + m_planItems << new DPItem(tr("Duplicate"), "osd_multi_screen_copy", DPItem::Merge, this); + m_planItems << new DPItem(tr("Extend"), "osd_multi_screen_extension", DPItem::Extend, this); + if (outputNames.size() >= 2) { std::sort(outputNames.begin(), outputNames.end(), std::greater()); for (int i = 0; i < outputNames.size(); i++) { const auto item = outputNames[i]; - m_planItems << new DPItem(tr("Only on %1").arg(item), item, QString("osd_display_custom%1").arg(i + 1), DPItem::Single, this); + const QString iconName = i < 2 ? QString("osd_multi_screen_only%1").arg(i + 1) : "osd_multi_screen_only_more"; + m_planItems << new DPItem(tr("Only on %1").arg(item), item, iconName, DPItem::Single, this); } } } diff --git a/panels/notification/osd/displaymode/package/icons/osd_display_copy.dci b/panels/notification/osd/displaymode/package/icons/osd_display_copy.dci deleted file mode 100644 index 937c40f0345dba36dadef2d9d12e121adfcb0217..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 729 zcmZ>9_GDmWWME)2He#RzbTUD7Gv(zM=D;Af zV#Ue=1}+Y!ZLjTrzW(_p)aAeA&RprvV{@*nAq*GBMH9e(e0Dc^ac%|@ouA2(gX tqAwlsyrHY266h`3gUTx$2o7`A4w&73>e-0RRN#Xb}Ja diff --git a/panels/notification/osd/displaymode/package/icons/osd_display_custom1.dci b/panels/notification/osd/displaymode/package/icons/osd_display_custom1.dci deleted file mode 100644 index 84acda435d912983707aa7104d03ff67f36e6d7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 749 zcmZ>9_GDmWWME)2He#Rz%w>Y;X3EPi%1zACOGzxsCda(hP)$t6h<*Wfe7lkoXqr$5`ANRh}keNgGEU+9;7@882lhWsh6do<}gy|=9-}o51_}knEI=pBjQJ*$+%x!qBI}TcGrk zA=LC+=vQec{ePb~tXfrMxBT>rq+JcVg(rjV8_ayY{<^27^#hMf4AGOAG(6cHN*1iJ OIq*c+QFc~-AOiqh^>kGL diff --git a/panels/notification/osd/displaymode/package/icons/osd_display_custom2.dci b/panels/notification/osd/displaymode/package/icons/osd_display_custom2.dci deleted file mode 100644 index c5108895d1835f2c4940624ac6400030ca24e793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 755 zcmZ>9_GDmWWME)2He#RzEM|h}X3EPi%1zACOGzxsCda(hP)$t6h<*Wfe7lkoXqr$5`ANRh}keNgGEU+9;7@282lhWsh1U?<}gy|}B^9_GDmWWME)2He#Rza5F=6Gv(zM&#D^w{*@#^tqjgY@lf zub-SKd!X!eNc`UfF^vPQ`&ix^xvpwpy27}sLGeq$s*8KW|I66~y8M^i*}LQfbE!dwci?_pa^|mXTht1xa`l`k^)yrnP{M3Kk a@&DNu{&&9kpYi4Y4PWXD{yVcWFaQ8eovKOz diff --git a/panels/notification/osd/displaymode/package/icons/osd_multi_screen_copy.dci b/panels/notification/osd/displaymode/package/icons/osd_multi_screen_copy.dci new file mode 100644 index 0000000000000000000000000000000000000000..c783102853a2462431d7bfbf2b15cf1a356d045c GIT binary patch literal 731 zcmZ>9_GDmWWME)2He#RzbTdJ8Gv(zMF^;}M7dPa%9u|CXfn5V(wBpDA;><5eh5TMl4Y*2F;VGe^B zOES3+sw2qL&21Zy9q#HB5EfwJvkJ)8k3S$TU@su(!Zab$h`FZVC<9|!IImf6uJ_NM zVh#*qD^{#5VBq3l+V0 zGp;adFX6tS7<_;+l1XLeACIcIgrij_x=JUCzE;w{<{Gw!du;@N)#3L}m-3xA+H7Ph x{c+PJEc((B&l|cbDuKSzIyq~2PFA9_GDmWWME)2He#Rz@G?VmGv(zMF^;}M7dPa%9u|CXfn5V(wBpDA;d;u5%AV8_7JD}z;!W;%M zmSoZaYEF=+o0|oY9q#HB5EfwJqYY&1#~% zZQUS!d)wtW_sl5RAgSot9KiJgPcPp41nYI~Ao zABw)_SRdhDan$ON_O*+#8>bZ=i0AnADVs52Rao4WWg^=8oSinSv?oq=Fh1w0z5dM) zP8)rpO7S+;NZi6o8)1zzIZkI86CNlM# z6*p}ORMho*uxqNg`i7=Gs+=4*LN;lJIp$mnTD>6E+xOz_uw1?EisoUnx2C?T@lExz f*)BizA9wtJ_J#kQFaBqI`G3Qg`hx$?tPBhQx-+Y6 literal 0 HcmV?d00001 diff --git a/panels/notification/osd/displaymode/package/icons/osd_multi_screen_only1.dci b/panels/notification/osd/displaymode/package/icons/osd_multi_screen_only1.dci new file mode 100644 index 0000000000000000000000000000000000000000..a68f1e7bc37bb91a90dcab2a3988d6c52cc559b9 GIT binary patch literal 751 zcmZ>9_GDmWWME)2He#Rz%x8k=X3EPi%1zACOGzxsCda(BP)$t6bacE^o$aHV||#}Fi(TUNirUyI0+a5AV8_7rJ&|8!W;%M zmSpl0R7a4fo7*WMJKWVNAS}SbXD^VgAAdkxAYVYROUW~9@^s-y7X3Q{4Li?WZT@xp zbwTv)ZBuHNNd+i-FJK8a3btyPz~mwO>0_&i1A72t_l=LCi|=jyS1Q-k@z1~Er;@Di zk-AsPhnE_t=^2QfV~Ch=Uz9cFRw{NZQq)TX-_)zQN4b>#uuST0ii(#1K7+NyC%P Tp=7}dn*&dD9c5?b2QmNvPZ4!@ literal 0 HcmV?d00001 diff --git a/panels/notification/osd/displaymode/package/icons/osd_multi_screen_only2.dci b/panels/notification/osd/displaymode/package/icons/osd_multi_screen_only2.dci new file mode 100644 index 0000000000000000000000000000000000000000..ea29031af25641612cf621489d0f9ae6fc215328 GIT binary patch literal 757 zcmZ>9_GDmWWME)2He#RzEMbacE^o$aHV||#}Fi(TUNirUyI0F~~AV8_76`;w$el{X465&9pDUL{~!XL5TSqk6&%VC+`%fMM^SQ{AbvccDAv@fOX@9)M$e){%?f6`b9!U0;3B=%I<3ib|}r a%O#^06;)?};B|Aaf8kS)S^i?5izNUOZG71P literal 0 HcmV?d00001 diff --git a/panels/notification/osd/displaymode/package/icons/osd_multi_screen_only_more.dci b/panels/notification/osd/displaymode/package/icons/osd_multi_screen_only_more.dci new file mode 100644 index 0000000000000000000000000000000000000000..489b5b49b99c14ef8e296cc8fa0e973b170b934e GIT binary patch literal 845 zcmZ>9_GDmWWME)2He#Rz{AGgZX3EPi%1zACOGzxsCda(BP)$t6bacE^o$aHV||#}Fi(TUNirUy_y8~hK!8$DS3u2SggFdi zEXkw+)SMtsH#ZF+JKWVNAS}SbM+V5&k3S$Tuw6iqOUg5=`Tp-_fja^XnVlt% z|8&iFdJOsIk2M7PITtqY6iI)M($(Dhy8Gr6y)@OM+QlbRk7aH0nWn9?GVRoK<#{_- zoJ*gR{GF*_yYV-s!ubN+Cp5|zSv)oB(g}|UIy+^)+2knsRn^{UUF(?>z6$%u3ap;! z&73kRTVqy?`^Beh-m7MQ%s*1`=k{?U$s4C)HoW2ou5n&TR(Iyv2MJryQRjhN}o^Y|Ib%E2lTE7nCxs(Iytjzp_Jt(QOB<) PmzP{C{W^{3??YAq8?~y! literal 0 HcmV?d00001