diff --git a/ModuleKit/Widgets/Speed.swift b/ModuleKit/Widgets/Speed.swift index add8f0e3..5cfc325d 100644 --- a/ModuleKit/Widgets/Speed.swift +++ b/ModuleKit/Widgets/Speed.swift @@ -12,17 +12,8 @@ import Cocoa import StatsKit -public enum speed_icon_t: String { - case none = "None" - case separator = "separator" - case dot = "Dots" - case arrow = "Arrows" - case char = "Character" -} -extension speed_icon_t: CaseIterable {} - public class SpeedWidget: Widget { - private var icon: speed_icon_t = .dot + private var icon: String = "dots" private var state: Bool = false private var valueState: Bool = true private var baseValue: String = "byte" @@ -45,7 +36,7 @@ public class SpeedWidget: Widget { if let symbols = config!["Symbols"] as? [String] { self.symbols = symbols } - if let iconName = config!["Icon"] as? String, let icon = speed_icon_t(rawValue: iconName) { + if let icon = config!["Icon"] as? String { self.icon = icon } } @@ -57,11 +48,11 @@ public class SpeedWidget: Widget { if self.store != nil { self.valueState = store!.pointee.bool(key: "\(self.title)_\(self.type.rawValue)_value", defaultValue: self.valueState) - self.icon = speed_icon_t(rawValue: store!.pointee.string(key: "\(self.title)_\(self.type.rawValue)_icon", defaultValue: self.icon.rawValue)) ?? self.icon - self.baseValue = store!.pointee.string(key: "\(self.title)_base", defaultValue: self.baseValue) + self.icon = store!.pointee.string(key: "\(self.title)_\(self.type.rawValue)_icon", defaultValue: self.baseValue) + self.baseValue = store!.pointee.string(key: "\(self.title)_\(self.type.rawValue)_base", defaultValue: self.baseValue) } - if self.valueState && self.icon != .none { + if self.valueState && self.icon != "none" { self.state = true } @@ -82,11 +73,11 @@ public class SpeedWidget: Widget { var x: CGFloat = 10 switch self.icon { - case .dot: + case "dots": self.drawDots(dirtyRect) - case .arrow: + case "arrows": self.drawArrows(dirtyRect) - case .char: + case "chars": self.drawChars(dirtyRect) default: x = 0 @@ -220,12 +211,12 @@ public class SpeedWidget: Widget { height: superview.frame.height - (Constants.Settings.margin*2) )) - view.addSubview(SelectTitleRow( + view.addSubview(SelectRow( frame: NSRect(x: 0, y: (rowHeight+Constants.Settings.margin) * 2, width: view.frame.width, height: rowHeight), title: LocalizedString("Pictogram"), action: #selector(toggleIcon), - items: speed_icon_t.allCases.map{ return $0.rawValue }, - selected: self.icon.rawValue + items: SpeedPictogram, + selected: self.icon )) view.addSubview(SelectRow( @@ -254,7 +245,7 @@ public class SpeedWidget: Widget { state = sender is NSButton ? (sender as! NSButton).state: nil } self.valueState = state! == .on ? true : false - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_value", value: self.valueState) + self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_\(self.type.rawValue)_value", value: self.valueState) self.display() if !self.valueState && self.icon == .none { @@ -267,12 +258,14 @@ public class SpeedWidget: Widget { } @objc private func toggleIcon(_ sender: NSMenuItem) { - let newIcon: speed_icon_t = speed_icon_t(rawValue: sender.title) ?? .none - self.icon = newIcon - self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_icon", value: self.icon.rawValue) + guard let key = sender.representedObject as? String else { + return + } + self.icon = key + self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_icon", value: key) self.display() - if !self.valueState && self.icon == .none { + if !self.valueState && self.icon == "none" { NotificationCenter.default.post(name: .toggleModule, object: nil, userInfo: ["module": self.title, "state": false]) self.state = false } else if !self.state { @@ -286,7 +279,7 @@ public class SpeedWidget: Widget { return } self.baseValue = key - self.store?.pointee.set(key: "\(self.title)_base", value: self.baseValue) + self.store?.pointee.set(key: "\(self.title)_\(self.type.rawValue)_base", value: self.baseValue) } public func setValue(upload: Int64, download: Int64) { diff --git a/Modules/Disk/config.plist b/Modules/Disk/config.plist index 5b265f85..a8c648a1 100644 --- a/Modules/Disk/config.plist +++ b/Modules/Disk/config.plist @@ -75,7 +75,7 @@ Order 3 Icon - Character + characters Symbols W diff --git a/Stats/Supporting Files/de.lproj/Localizable.strings b/Stats/Supporting Files/de.lproj/Localizable.strings index 281cdd8d..ab820450 100644 --- a/Stats/Supporting Files/de.lproj/Localizable.strings +++ b/Stats/Supporting Files/de.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "Ja"; "No" = "Nein"; "Automatic" = "Automatisch"; +"None" = "Keiner"; +"Dots" = "Punkte"; +"Arrows" = "Pfeile"; +"Characters" = "Briefe"; // Alerts "New version available" = "Neue Version verfügbar"; diff --git a/Stats/Supporting Files/en.lproj/Localizable.strings b/Stats/Supporting Files/en.lproj/Localizable.strings index abc5260b..d504d841 100644 --- a/Stats/Supporting Files/en.lproj/Localizable.strings +++ b/Stats/Supporting Files/en.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "Yes"; "No" = "No"; "Automatic" = "Automatic"; +"None" = "None"; +"Dots" = "Dots"; +"Arrows" = "Arrows"; +"Characters" = "Character"; // Alerts "New version available" = "New version available"; diff --git a/Stats/Supporting Files/es.lproj/Localizable.strings b/Stats/Supporting Files/es.lproj/Localizable.strings index 52307fdb..e4f5b02e 100644 --- a/Stats/Supporting Files/es.lproj/Localizable.strings +++ b/Stats/Supporting Files/es.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "Si"; "No" = "No"; "Automatic" = "Automático"; +"None" = "Ninguna"; +"Dots" = "Puntos"; +"Arrows" = "Flechas"; +"Characters" = "Letras"; // Alerts "New version available" = "Nueva versión disponible"; diff --git a/Stats/Supporting Files/ko.lproj/Localizable.strings b/Stats/Supporting Files/ko.lproj/Localizable.strings index 0bcc8124..5fc7ee89 100644 --- a/Stats/Supporting Files/ko.lproj/Localizable.strings +++ b/Stats/Supporting Files/ko.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "예"; "No" = "아니요"; "Automatic" = "자동적 인"; +"None" = "없음"; +"Dots" = "도트"; +"Arrows" = "화살"; +"Characters" = "편지"; // Alerts "New version available" = "새로운 버전을 이용할 수 있습니다"; diff --git a/Stats/Supporting Files/pl.lproj/Localizable.strings b/Stats/Supporting Files/pl.lproj/Localizable.strings index fb94cf0f..c2a79e6e 100644 --- a/Stats/Supporting Files/pl.lproj/Localizable.strings +++ b/Stats/Supporting Files/pl.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "Tak"; "No" = "Nie"; "Automatic" = "Automatyczny"; +"None" = "Brak"; +"Dots" = "Punkty"; +"Arrows" = "Strzałki"; +"Characters" = "Litery"; // Alerts "New version available" = "Nowa wersja dostępna"; diff --git a/Stats/Supporting Files/ru.lproj/Localizable.strings b/Stats/Supporting Files/ru.lproj/Localizable.strings index 51e90d8d..71eab9c7 100644 --- a/Stats/Supporting Files/ru.lproj/Localizable.strings +++ b/Stats/Supporting Files/ru.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "Да"; "No" = "Нет"; "Automatic" = "Автоматический"; +"None" = "Никакой"; +"Dots" = "Точки"; +"Arrows" = "Стрелки"; +"Characters" = "Символы"; // Alerts "New version available" = "Доступна новая версия"; diff --git a/Stats/Supporting Files/tr.lproj/Localizable.strings b/Stats/Supporting Files/tr.lproj/Localizable.strings index 314f369c..074a8ef9 100644 --- a/Stats/Supporting Files/tr.lproj/Localizable.strings +++ b/Stats/Supporting Files/tr.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "Evet"; "No" = "Hayır"; "Automatic" = "Otomatik"; +"None" = "Yok"; +"Dots" = "Noktalar"; +"Arrows" = "Oklar"; +"Characters" = "Mektuplar"; // Alerts "New version available" = "Yeni versiyon indirilebilir"; diff --git a/Stats/Supporting Files/uk.lproj/Localizable.strings b/Stats/Supporting Files/uk.lproj/Localizable.strings index 65de4bc4..bb5427c8 100644 --- a/Stats/Supporting Files/uk.lproj/Localizable.strings +++ b/Stats/Supporting Files/uk.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "Так"; "No" = "Ні"; "Automatic" = "Автоматичний"; +"None" = "Ніяка"; +"Dots" = "Пункти"; +"Arrows" = "Стрілки"; +"Characters" = "Літери"; // Alerts "New version available" = "Доступна нова версія"; diff --git a/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings b/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings index 72ed9f0e..2f4a2f53 100644 --- a/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings +++ b/Stats/Supporting Files/zh-Hans.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "是"; "No" = "否"; "Automatic" = "自动"; +"None" = "没有"; +"Dots" = "点"; +"Arrows" = "箭"; +"Characters" = "字母"; // Alerts "New version available" = "新版本可用"; diff --git a/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings b/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings index 59aa9996..03e11654 100644 --- a/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings +++ b/Stats/Supporting Files/zh-Hant.lproj/Localizable.strings @@ -24,6 +24,10 @@ "Yes" = "是"; "No" = "否"; "Automatic" = "自動"; +"None" = "沒有"; +"Dots" = "點"; +"Arrows" = "箭"; +"Characters" = "字母"; // Alerts "New version available" = "新版本可用"; diff --git a/StatsKit/helpers.swift b/StatsKit/helpers.swift index dfb426d1..601ff1ff 100644 --- a/StatsKit/helpers.swift +++ b/StatsKit/helpers.swift @@ -58,6 +58,14 @@ public let SensorsWidgetMode: [KeyValue_t] = [ KeyValue_t(key: "twoRows", value: "Two rows"), ] +public let SpeedPictogram: [KeyValue_t] = [ + KeyValue_t(key: "none", value: "None"), + KeyValue_t(key: "separator", value: "separator"), + KeyValue_t(key: "dots", value: "Dots"), + KeyValue_t(key: "arrows", value: "Arrows"), + KeyValue_t(key: "chars", value: "Characters"), +] + public let ReaderUpdateIntervals: [Int] = [1, 2, 3, 5, 10, 15, 30] public let NumbersOfProcesses: [Int] = [3, 5, 8, 10, 15]