From f9b522aeb398bfe0eec0ac0e26a8e18dc70b94c9 Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Thu, 6 Feb 2025 16:33:42 +0100 Subject: [PATCH] feat: changed icons to text buttons for application settings import/export/reset --- Kit/extensions.swift | 9 ++++ Kit/helpers.swift | 8 ++- .../cancel.imageset/Contents.json | 27 ---------- .../baseline_cancel_black_24pt_1x.png | Bin 223 -> 0 bytes .../baseline_cancel_black_24pt_2x.png | Bin 390 -> 0 bytes .../baseline_cancel_black_24pt_3x.png | Bin 541 -> 0 bytes .../export.imageset/Contents.json | 27 ---------- .../baseline_ios_share_black_24pt_1x.png | Bin 167 -> 0 bytes .../baseline_ios_share_black_24pt_2x.png | Bin 266 -> 0 bytes .../baseline_ios_share_black_24pt_3x.png | Bin 362 -> 0 bytes .../import.imageset/Contents.json | 27 ---------- .../baseline_download_black_24pt_1x.png | Bin 116 -> 0 bytes .../baseline_download_black_24pt_2x.png | Bin 156 -> 0 bytes .../baseline_download_black_24pt_3x.png | Bin 185 -> 0 bytes .../trash.imageset/Contents.json | 27 ---------- .../baseline_delete_black_24pt_1x.png | Bin 113 -> 0 bytes .../baseline_delete_black_24pt_2x.png | Bin 149 -> 0 bytes .../baseline_delete_black_24pt_3x.png | Bin 193 -> 0 bytes .../en.lproj/Localizable.strings | 4 ++ Stats/Views/AppSettings.swift | 49 ++++++------------ 20 files changed, 35 insertions(+), 143 deletions(-) delete mode 100644 Stats/Supporting Files/Assets.xcassets/cancel.imageset/Contents.json delete mode 100644 Stats/Supporting Files/Assets.xcassets/cancel.imageset/baseline_cancel_black_24pt_1x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/cancel.imageset/baseline_cancel_black_24pt_2x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/cancel.imageset/baseline_cancel_black_24pt_3x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/export.imageset/Contents.json delete mode 100644 Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_1x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_2x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_3x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/import.imageset/Contents.json delete mode 100644 Stats/Supporting Files/Assets.xcassets/import.imageset/baseline_download_black_24pt_1x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/import.imageset/baseline_download_black_24pt_2x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/import.imageset/baseline_download_black_24pt_3x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/trash.imageset/Contents.json delete mode 100644 Stats/Supporting Files/Assets.xcassets/trash.imageset/baseline_delete_black_24pt_1x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/trash.imageset/baseline_delete_black_24pt_2x.png delete mode 100644 Stats/Supporting Files/Assets.xcassets/trash.imageset/baseline_delete_black_24pt_3x.png diff --git a/Kit/extensions.swift b/Kit/extensions.swift index 4e331a1c..9671be20 100644 --- a/Kit/extensions.swift +++ b/Kit/extensions.swift @@ -313,6 +313,15 @@ public extension NSView { return s } + func buttonView(_ action: Selector, text: String) -> NSButton { + let button = NSButton() + button.title = text + button.contentTintColor = .labelColor + button.action = action + button.target = self + return button + } + func buttonIconView(_ action: Selector, icon: NSImage, height: CGFloat = 22) -> NSButton { let button = NSButton() button.heightAnchor.constraint(equalToConstant: height).isActive = true diff --git a/Kit/helpers.swift b/Kit/helpers.swift index 9dfbf289..aba3359a 100644 --- a/Kit/helpers.swift +++ b/Kit/helpers.swift @@ -1040,7 +1040,9 @@ public class EmptyView: NSStackView { public init(height: CGFloat = 120, isHidden: Bool = false, msg: String) { super.init(frame: NSRect()) - self.heightAnchor.constraint(equalToConstant: height).isActive = true + if height != 0 { + self.heightAnchor.constraint(equalToConstant: height).isActive = true + } self.translatesAutoresizingMaskIntoConstraints = true self.orientation = .vertical @@ -1049,7 +1051,9 @@ public class EmptyView: NSStackView { self.identifier = NSUserInterfaceItemIdentifier(rawValue: "emptyView") let textView: NSTextView = NSTextView() - textView.heightAnchor.constraint(equalToConstant: (height/2)+6).isActive = true + if height != 0 { + textView.heightAnchor.constraint(equalToConstant: ((height)/2)+6).isActive = true + } textView.alignment = .center textView.isEditable = false textView.isSelectable = false diff --git a/Stats/Supporting Files/Assets.xcassets/cancel.imageset/Contents.json b/Stats/Supporting Files/Assets.xcassets/cancel.imageset/Contents.json deleted file mode 100644 index 14c95d8c..00000000 --- a/Stats/Supporting Files/Assets.xcassets/cancel.imageset/Contents.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "images": [ - { - "filename": "baseline_cancel_black_24pt_1x.png", - "idiom": "universal", - "scale": "1x", - "size": "24x24" - }, - { - "filename": "baseline_cancel_black_24pt_2x.png", - "idiom": "universal", - "scale": "2x", - "size": "24x24" - }, - { - "filename": "baseline_cancel_black_24pt_3x.png", - "idiom": "universal", - "scale": "3x", - "size": "24x24" - } - ], - "info": { - "author": "xcode", - "template-rendering-intent": "template", - "version": 1 - } -} \ No newline at end of file diff --git a/Stats/Supporting Files/Assets.xcassets/cancel.imageset/baseline_cancel_black_24pt_1x.png b/Stats/Supporting Files/Assets.xcassets/cancel.imageset/baseline_cancel_black_24pt_1x.png deleted file mode 100644 index f01769213798bb3af8f0e032e0fed0fa448851c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 223 zcmV<503iQ~P)KYA1ru$`HnbuyCfWd3Er2~Jps>4UFuTl!g!jlF9pK-qq@`zOV`HYL zrTm81EZC?P>i2L#m%y$%id6WF?@AKJ-qa;n<+G1yjE4-G(f3jXq49_Y)S(y@p#51B zgyD3jI+U<;XG0LCQ&tDYxMd2$dTDQ0V%)Mm5X6zhO^ZLP_{WJyBV+h7##{V=vYzNK Z)(bCO3czG41zrFE002ovPDHLkV1g&UT|)o> diff --git a/Stats/Supporting Files/Assets.xcassets/cancel.imageset/baseline_cancel_black_24pt_2x.png b/Stats/Supporting Files/Assets.xcassets/cancel.imageset/baseline_cancel_black_24pt_2x.png deleted file mode 100644 index 9f7ca9b3029bb2d5f3bd09b02c07646bc6743978..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(F#3ABIEGX(zBz9wbTB}qHF5HV z49(5_W{WDyCdsC-Z)iSqVH5wf13gT8dmjBL-Sygc-I59Q&t6Y5|Ndpyu3a%+2CjX& zd^;Qj^ehs(Wr9^Q_VTcv3s_>zm6EYXaN3Fmv$S*!os?PcD5jUQ{8?jn?LzrnH({EyoN`P*d(n(sh4q4Y$C;&P$SQ&v?lWQ`jPMz@3hjdXjx+b~m-vu%-Y$cI zp+SJ{S9z@LbP-Dr#j9~zyt0@Qrf?dZ3W>*qGKo^h!h-3!r5&{N;042QVfx!XZ-cDc5_wWM< zf9mV|@%el{pUKLn9>{P(j4i&hJYRF7#L|A+Qa)={20xYs4T8LvUj#x|^q>zP4v4PWeC?N|~V(0ScenJ-R>Ef4Q z=YAaZNV_?|IVEIe%DKKtDP*P6IgWB!xg-9i04-$YS_GK99P%Y{Oj-mP>4pRyWFj3B z+#n-Gn5^0`&gbMfpqpr%!{Q*N~I_RZxv&f0o_}qpKipMw($9pu(uO=phb9GLNIsV+(aLM9Dsq zVH|@P>aGw6Bk9MnyFy(CaWIm89J>ta?hpqf>Bq6VLtO)LK9XV_g9hr}5a%N)#xZz9 zT?cVKl42Z#&JSc9$iHIx{72d!^NM5M|0pW+R}K4R)n8VB+qpvn000n%VgG-P!6Pa# z$r)oq+_3~^2a#(aw0HLD91fkHJLLuSmrj971+P=$R0CEd?@SSlSvqqlgF2JUFGjs) f;T{WkO#uK5VgYVsJd5JG00000NkvXXu0mjfGWp># diff --git a/Stats/Supporting Files/Assets.xcassets/export.imageset/Contents.json b/Stats/Supporting Files/Assets.xcassets/export.imageset/Contents.json deleted file mode 100644 index c438d6ea..00000000 --- a/Stats/Supporting Files/Assets.xcassets/export.imageset/Contents.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "images": [ - { - "filename": "baseline_ios_share_black_24pt_1x.png", - "idiom": "universal", - "scale": "1x", - "size": "24x24" - }, - { - "filename": "baseline_ios_share_black_24pt_2x.png", - "idiom": "universal", - "scale": "2x", - "size": "24x24" - }, - { - "filename": "baseline_ios_share_black_24pt_3x.png", - "idiom": "universal", - "scale": "3x", - "size": "24x24" - } - ], - "info": { - "author": "xcode", - "template-rendering-intent": "template", - "version": 1 - } -} \ No newline at end of file diff --git a/Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_1x.png b/Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_1x.png deleted file mode 100644 index 7f7ed2df9802d3d79dca911b321ab4c31b324fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+iJWm(L5R22v2@8Z)uscnf@}K=s z)uk!IYgw24;XiDz@W*-1w5kP%G!)tFM}ur$o)$Bcu`ZyvEQG|9CV?f>2P Q3TQKfr>mdKI;Vst05@toe*gdg diff --git a/Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_2x.png b/Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_2x.png deleted file mode 100644 index 9531a62b80cfce790a1fa142cb74be072ebcc4fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0Di=HlyArXh)Uial|G7xZhSkC`Z zX|JTVpR=Xpj)}h0RZ?Oyeh5x5^zrS;-TtMv@e<2}`)-bc=K3Bsk7o9}_59R0Vw3Nu z^Lg2ks(U>WpBv>IUvN%yF?=E`+jQX}+o3mdOnht&;)&b1E&0+IEQ)?_Heg-UvzZ}W zD{u4nTJ9Nfmmi!g`B_%Dz@$N8i`1eh%Z*VEAAUR3a;*5?_ln7Rk( OIR;NxKbLh*2~7ZAnrmYK diff --git a/Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_3x.png b/Stats/Supporting Files/Assets.xcassets/export.imageset/baseline_ios_share_black_24pt_3x.png deleted file mode 100644 index b1043806ee1f486fbedcf42b611590595ad22e3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 362 zcmV-w0hRuVP)a66$<^axx53kwS@7*T#D%Vd+$w`syKB;RDRWF`wR{xo95 zesM~a{*Wq;H>5Ym3sRHgoYdtwCG~Thk%l==NaGxJ(szz3X&Oh3)aK-P)cpr?eNx=w zgt*sFcZ4mH@*3p`fd&W-lJYL9IBn3Iq?~6jP8U>>)c-`wy4MALzI70NAP__l03g5t z32r@y!W2;Vs~ZwT2&9}1u7jtP3{e7}glheFy73Hr?UM3UjZM(5^@jR2K0=i$Dbt4x$zsitU#lWDpqoC8`sjn;0 O7zR&QKbLh*2~7Yruq4+2 diff --git a/Stats/Supporting Files/Assets.xcassets/import.imageset/baseline_download_black_24pt_2x.png b/Stats/Supporting Files/Assets.xcassets/import.imageset/baseline_download_black_24pt_2x.png deleted file mode 100644 index 19d7fc63f2bbae1847ce549ea1d4ee6ad7451d15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUtWKS2zkP61P=Qr{;Fz_64F#G-@ z;4g!SLQhT5t3CZHKYKqv6Af@+WEBAt%Nm$&d=}>`W;uS?pkMyXWA@KK4%*aVVLr5e lJb8|OJR_@(>;#pQtdqJA*$Mke@Bpo2@O1TaS?83{1OQ1QH{t*Q diff --git a/Stats/Supporting Files/Assets.xcassets/import.imageset/baseline_download_black_24pt_3x.png b/Stats/Supporting Files/Assets.xcassets/import.imageset/baseline_download_black_24pt_3x.png deleted file mode 100644 index 3aefc3b24650130d94b8804b8be43e0413b8ad4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 185 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!4W2HJAr*{oFEp|qaA06LSh8=a zx~dGz|1$-wckJc><-bqA>#5MlBIJQdWXV`2cA7kzqfof*$W5Vi?>V}-7}>`c%C?uu mSgGFVdQ&MBb@08le1NdN!< diff --git a/Stats/Supporting Files/Assets.xcassets/trash.imageset/baseline_delete_black_24pt_2x.png b/Stats/Supporting Files/Assets.xcassets/trash.imageset/baseline_delete_black_24pt_2x.png deleted file mode 100644 index 9e5bc7a943d37cc5d6ab5c6b2624461a1b5963c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}b0D7*7|+kch)?FC64Opuod&@O5+2 z%416pcFQej^f<_;Ao%uIy>g_IRd87Sjy>i7gfBL;Z{Yjke)~Q%P%j7+a0bMDKFU9X t+rWOpm1WOoPZCk|`C7W?RMKac&AeYDWt-j~`LP|O(9_k=Wt~$(69A9nHMsx) diff --git a/Stats/Supporting Files/Assets.xcassets/trash.imageset/baseline_delete_black_24pt_3x.png b/Stats/Supporting Files/Assets.xcassets/trash.imageset/baseline_delete_black_24pt_3x.png deleted file mode 100644 index 377038618440cebafc29c5ee2730dd26ba9a83b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY0wn)GsXhawIy_w*Lo)8Yy>yVbK|#RfqGe!< z`mf1WUs-f7F!Ls`AA6Az@P9sAoSC+u;KZdXR_)uo%0lRQ;w8azxl8H}GcYo_$Y<<$ z&&a|dpy1E|?VkD&8-1 gJy|WQv?zWn;~pL6I>}fTkRus9UHx3vIVCg!0I#$`-T(jq diff --git a/Stats/Supporting Files/en.lproj/Localizable.strings b/Stats/Supporting Files/en.lproj/Localizable.strings index e64652e7..c65cd089 100644 --- a/Stats/Supporting Files/en.lproj/Localizable.strings +++ b/Stats/Supporting Files/en.lproj/Localizable.strings @@ -96,6 +96,10 @@ "15 sec" = "15 sec"; "30 sec" = "30 sec"; "60 sec" = "60 sec"; +"Save" = "Save"; +"Browse" = "Browse"; +"Run" = "Run"; +"Stop" = "Stop"; // Setup "Stats Setup" = "Stats Setup"; diff --git a/Stats/Views/AppSettings.swift b/Stats/Views/AppSettings.swift index 6462a79c..126189db 100644 --- a/Stats/Views/AppSettings.swift +++ b/Stats/Views/AppSettings.swift @@ -39,31 +39,6 @@ class ApplicationSettings: NSStackView { set { Store.shared.set(key: "CombinedModules_popup", value: newValue) } } - private var importIcon: NSImage { - if #available(macOS 12.0, *), let icon = iconFromSymbol(name: "square.and.arrow.down", scale: .large) { - return icon - } - return NSImage(named: NSImage.Name("import"))! - } - private var exportIcon: NSImage { - if #available(macOS 12.0, *), let icon = iconFromSymbol(name: "square.and.arrow.up", scale: .large) { - return icon - } - return NSImage(named: NSImage.Name("export"))! - } - private var resetIcon: NSImage { - if #available(macOS 12.0, *), let icon = iconFromSymbol(name: "trash", scale: .large) { - return icon - } - return NSImage(named: NSImage.Name("trash"))! - } - private var uninstallIcon: NSImage { - if #available(macOS 12.0, *), let icon = iconFromSymbol(name: "xmark.circle", scale: .large) { - return icon - } - return NSImage(named: NSImage.Name("cancel"))! - } - private var updateSelector: NSPopUpButton? private var startAtLoginBtn: NSSwitch? private var telemetryBtn: NSSwitch? @@ -74,6 +49,14 @@ class ApplicationSettings: NSStackView { private let updateWindow: UpdateWindow = UpdateWindow() private let moduleSelector: ModuleSelectorView = ModuleSelectorView() + private var CPUeButton: NSButton? + private var CPUpButton: NSButton? + private var GPUButton: NSButton? + + private var CPUeTest: CPUeStressTest = CPUeStressTest() + private var CPUpTest: CPUpStressTest = CPUpStressTest() + private var GPUTest: GPUStressTest? = GPUStressTest() + init() { super.init(frame: NSRect(x: 0, y: 0, width: Constants.Settings.width, height: Constants.Settings.height)) self.translatesAutoresizingMaskIntoConstraints = false @@ -144,25 +127,25 @@ class ApplicationSettings: NSStackView { self.combinedModulesView?.setRowVisibility(3, newState: self.combinedModulesState) self.combinedModulesView?.setRowVisibility(4, newState: self.combinedModulesState) - scrollView.stackView.addArrangedSubview(PreferencesSection([ - PreferencesRow( - localizedString("Import settings"), - component: buttonIconView(#selector(self.importSettings), icon: self.importIcon) - ), + scrollView.stackView.addArrangedSubview(PreferencesSection(label: localizedString("Settings"), [ PreferencesRow( localizedString("Export settings"), - component: buttonIconView(#selector(self.exportSettings), icon: self.exportIcon) + component: buttonView(#selector(self.exportSettings), text: localizedString("Save")) + ), + PreferencesRow( + localizedString("Import settings"), + component: buttonView(#selector(self.importSettings), text: localizedString("Browse")) ), PreferencesRow( localizedString("Reset settings"), - component: buttonIconView(#selector(self.resetSettings), icon: self.resetIcon) + component: buttonView(#selector(self.resetSettings), text: localizedString("Reset")) ) ])) self.fanHelperView = PreferencesSection([ PreferencesRow( localizedString("Uninstall fan helper"), - component: buttonIconView(#selector(self.uninstallHelper), icon: self.uninstallIcon) + component: buttonView(#selector(self.uninstallHelper), text: localizedString("Uninstall")) ) ]) scrollView.stackView.addArrangedSubview(self.fanHelperView!)