From 58a2581af2a76d5a86f346df0435e561f3f45b1e Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Mon, 1 Jul 2019 18:57:19 +0200 Subject: [PATCH] fixed Chart with value; added few widgets to Disk --- README.md | 4 +++ Stats/Modules/Disk/Disk.swift | 59 ++++++++++++++++++++++++++++--- Stats/Supporting Files/Info.plist | 4 +-- Stats/libs/Module.swift | 3 ++ build.sh | 6 ++-- 5 files changed, 66 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 4987368f..37bd4df5 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,10 @@ You can download latest version [here](https://github.com/exelban/stats/releases ## What's new +### v1.2.1 + - added charts and charts with value to Disk module + - fixed bug when Chart with value does not shows + ### v1.2.0 - added network module - added Check for updates window diff --git a/Stats/Modules/Disk/Disk.swift b/Stats/Modules/Disk/Disk.swift index 9cbea944..986b9906 100644 --- a/Stats/Modules/Disk/Disk.swift +++ b/Stats/Modules/Disk/Disk.swift @@ -13,6 +13,7 @@ class Disk: Module { let shortName: String = "SSD" var view: NSView = NSView() var menu: NSMenuItem = NSMenuItem() + var submenu: NSMenu = NSMenu() let defaults = UserDefaults.standard var widgetType: WidgetType @@ -28,21 +29,37 @@ class Disk: Module { self.widgetType = defaults.object(forKey: "\(name)_widget") != nil ? defaults.float(forKey: "\(name)_widget") : Widgets.Mini self.initMenu() - - let widget = Mini(frame: NSMakeRect(0, 0, MODULE_WIDTH, MODULE_HEIGHT)) - widget.label = self.shortName - self.view = widget + initWidget() } func initMenu() { menu = NSMenuItem(title: name, action: #selector(toggle), keyEquivalent: "") + submenu = NSMenu() + if defaults.object(forKey: name) != nil { menu.state = defaults.bool(forKey: name) ? NSControl.StateValue.on : NSControl.StateValue.off } else { menu.state = NSControl.StateValue.on } menu.target = self - menu.isEnabled = true + + let mini = NSMenuItem(title: "Mini", action: #selector(toggleWidget), keyEquivalent: "") + mini.state = self.widgetType == Widgets.Mini ? NSControl.StateValue.on : NSControl.StateValue.off + mini.target = self + + let chart = NSMenuItem(title: "Chart", action: #selector(toggleWidget), keyEquivalent: "") + chart.state = self.widgetType == Widgets.Chart ? NSControl.StateValue.on : NSControl.StateValue.off + chart.target = self + + let chartWithValue = NSMenuItem(title: "Chart with value", action: #selector(toggleWidget), keyEquivalent: "") + chartWithValue.state = self.widgetType == Widgets.ChartWithValue ? NSControl.StateValue.on : NSControl.StateValue.off + chartWithValue.target = self + + submenu.addItem(mini) + submenu.addItem(chart) + submenu.addItem(chartWithValue) + + menu.submenu = submenu } @objc func toggle(_ sender: NSMenuItem) { @@ -58,4 +75,36 @@ class Disk: Module { self.start() } } + + @objc func toggleWidget(_ sender: NSMenuItem) { + var widgetCode: Float = 0.0 + + switch sender.title { + case "Mini": + widgetCode = Widgets.Mini + case "Chart": + widgetCode = Widgets.Chart + case "Chart with value": + widgetCode = Widgets.ChartWithValue + default: + break + } + + if self.widgetType == widgetCode { + return + } + + for item in self.submenu.items { + if item.title == "Mini" || item.title == "Chart" || item.title == "Chart with value" { + item.state = NSControl.StateValue.off + } + } + + sender.state = sender.state == NSControl.StateValue.on ? NSControl.StateValue.off : NSControl.StateValue.on + self.defaults.set(widgetCode, forKey: "\(name)_widget") + self.widgetType = widgetCode + self.active << false + initWidget() + self.active << true + } } diff --git a/Stats/Supporting Files/Info.plist b/Stats/Supporting Files/Info.plist index 212372ee..49ba35eb 100755 --- a/Stats/Supporting Files/Info.plist +++ b/Stats/Supporting Files/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.2.0 + 1.2.1 CFBundleVersion - 3 + 1 LSApplicationCategoryType public.app-category.utilities LSMinimumSystemVersion diff --git a/Stats/libs/Module.swift b/Stats/libs/Module.swift index 013378d1..60d23e2c 100644 --- a/Stats/libs/Module.swift +++ b/Stats/libs/Module.swift @@ -33,6 +33,9 @@ extension Module { case Widgets.Chart: self.view = Chart(frame: NSMakeRect(0, 0, MODULE_WIDTH + 7, MODULE_HEIGHT)) break + case Widgets.ChartWithValue: + self.view = ChartWithValue(frame: NSMakeRect(0, 0, MODULE_WIDTH + 7, MODULE_HEIGHT)) + break case Widgets.Dots: self.view = NetworkDotsView(frame: NSMakeRect(0, 0, MODULE_WIDTH, MODULE_HEIGHT)) break diff --git a/build.sh b/build.sh index ee540dc2..79b4eab2 100644 --- a/build.sh +++ b/build.sh @@ -4,10 +4,10 @@ if [ ! -d "./create-dmg" ]; then git clone https://github.com/andreyvit/create-dmg fi -xcodebuild -configuration Distribution clean build +# xcodebuild -configuration Distribution clean build -cp -rf $PWD/build/Release/Stats.app ./ -rm -rf echo $PWD/build +# cp -rf $PWD/build/Release/Stats.app ./ +# rm -rf echo $PWD/build ./create-dmg/create-dmg \ --volname "Stats" \