diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d5ea47c76e..499d04643ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,9 @@ # Changelog All notable changes to this project will be documented in this file. +### [v1.2.6] + - fixed CPU usage + ### [v1.2.5] - added chart bar widget for CPU, Memory and Disk module - label in Charts are enabled by default @@ -48,6 +51,7 @@ All notable changes to this project will be documented in this file. ### [v1.0.0] - first release +[v1.2.6]: https://github.com/exelban/stats/releases/tag/v1.2.6 [v1.2.5]: https://github.com/exelban/stats/releases/tag/v1.2.5 [v1.2.4]: https://github.com/exelban/stats/releases/tag/v1.2.4 [v1.2.3]: https://github.com/exelban/stats/releases/tag/v1.2.3 @@ -55,4 +59,4 @@ All notable changes to this project will be documented in this file. [v1.2.1]: https://github.com/exelban/stats/releases/tag/v1.2.1 [v1.2.0]: https://github.com/exelban/stats/releases/tag/v1.2.0 [v1.1.0]: https://github.com/exelban/stats/releases/tag/v1.1.0 -[v1.0.0]: https://github.com/exelban/stats/releases/tag/v1.0.0 \ No newline at end of file +[v1.0.0]: https://github.com/exelban/stats/releases/tag/v1.0.0 diff --git a/Stats/Modules/CPU/CPU.swift b/Stats/Modules/CPU/CPU.swift index cfb5e1afea9..2fa48ed4815 100644 --- a/Stats/Modules/CPU/CPU.swift +++ b/Stats/Modules/CPU/CPU.swift @@ -31,6 +31,10 @@ class CPU: Module { self.label = Observable(defaults.object(forKey: "\(name)_label") != nil ? defaults.bool(forKey: "\(name)_label") : true) initMenu() initWidget() + + if self.widgetType == Widgets.BarChart { + (self.reader as! CPUReader).perCoreMode = true + } } func initMenu() { @@ -116,6 +120,12 @@ class CPU: Module { break } + if widgetCode == Widgets.BarChart { + (self.reader as! CPUReader).perCoreMode = true + } else { + (self.reader as! CPUReader).perCoreMode = false + } + if self.widgetType == widgetCode { return } diff --git a/Stats/Modules/CPU/CPUReader.swift b/Stats/Modules/CPU/CPUReader.swift index d8d3f3720b9..d227e095dea 100644 --- a/Stats/Modules/CPU/CPUReader.swift +++ b/Stats/Modules/CPU/CPUReader.swift @@ -19,7 +19,7 @@ class CPUReader: Reader { var updateTimer: Timer! let CPUUsageLock: NSLock = NSLock() - var perCoreMode: Bool = true + var perCoreMode: Bool = false init() { let mibKeys: [Int32] = [ CTL_HW, HW_NCPU ] @@ -83,7 +83,7 @@ class CPUReader: Reader { usagePerCore.insert((Double(inUse) / Double(total)), at: Int(i)) } - if perCoreMode { + if self.perCoreMode { self.value << usagePerCore } else { self.value << [(Double(inUseOnAllCores) / Double(totalOnAllCores))] diff --git a/Stats/Modules/Module.swift b/Stats/Modules/Module.swift index d7e5d248fbf..2fd9cdb1ad5 100644 --- a/Stats/Modules/Module.swift +++ b/Stats/Modules/Module.swift @@ -57,6 +57,7 @@ extension Module { widget.label = self.shortName widget.toggleColor(state: self.color.value) widget.toggleLabel(state: self.label.value) + widget.active = self.active self.view = widget as! NSView } diff --git a/Stats/Supporting Files/Info.plist b/Stats/Supporting Files/Info.plist index 90fa3e4c1fe..d0028172df4 100755 --- a/Stats/Supporting Files/Info.plist +++ b/Stats/Supporting Files/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.2.5 + 1.2.6 CFBundleVersion 1 LSApplicationCategoryType diff --git a/Stats/Widgets/BarChart.swift b/Stats/Widgets/BarChart.swift index 4daec4b4ba9..5944b2383a0 100644 --- a/Stats/Widgets/BarChart.swift +++ b/Stats/Widgets/BarChart.swift @@ -9,6 +9,7 @@ import Cocoa class BarChart: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = MODULE_WIDTH + 10 var labelPadding: CGFloat = 12.0 @@ -117,13 +118,18 @@ class BarChart: NSView, Widget { } func redraw() { - var width: CGFloat = 18 + var width: CGFloat = MODULE_WIDTH + 10 + if self.partitions.count == 1 { + width = 18 + } if self.labelEnabled { width += labelPadding } - if self.partitions.count == 1 && self.frame.size.width != width{ + if self.frame.size.width != width { + self.active << false self.frame = CGRect(x: self.frame.origin.x, y: self.frame.origin.y, width: width, height: self.frame.size.height) + self.active << true } self.needsDisplay = true diff --git a/Stats/Widgets/BatteryView.swift b/Stats/Widgets/BatteryView.swift index 0cd541a145e..96f98ac7d9c 100644 --- a/Stats/Widgets/BatteryView.swift +++ b/Stats/Widgets/BatteryView.swift @@ -9,6 +9,7 @@ import Cocoa class BatteryView: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = MODULE_WIDTH var label: String = "" diff --git a/Stats/Widgets/Chart.swift b/Stats/Widgets/Chart.swift index ae5f58674ce..5531887b2f2 100644 --- a/Stats/Widgets/Chart.swift +++ b/Stats/Widgets/Chart.swift @@ -9,6 +9,7 @@ import Cocoa class Chart: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = MODULE_WIDTH + 7 var labelPadding: CGFloat = 10.0 var labelEnabled: Bool = false diff --git a/Stats/Widgets/Mini.swift b/Stats/Widgets/Mini.swift index afae745f6b9..09edcca893a 100644 --- a/Stats/Widgets/Mini.swift +++ b/Stats/Widgets/Mini.swift @@ -9,6 +9,8 @@ import Cocoa class Mini: NSView, Widget { + var active: Observable = Observable(false) + var size: CGFloat = MODULE_WIDTH var valueView: NSTextField = NSTextField() var labelView: NSTextField = NSTextField() diff --git a/Stats/Widgets/NetworkView.swift b/Stats/Widgets/NetworkView.swift index 74eb51e8327..32f9488f609 100644 --- a/Stats/Widgets/NetworkView.swift +++ b/Stats/Widgets/NetworkView.swift @@ -9,6 +9,7 @@ import Cocoa class NetworkDotsView: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = 12 var label: String = "" @@ -89,6 +90,7 @@ class NetworkDotsView: NSView, Widget { } class NetworkTextView: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = MODULE_WIDTH + 20 var label: String = "" @@ -162,6 +164,7 @@ class NetworkTextView: NSView, Widget { } class NetworkArrowsView: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = 8 var label: String = "" @@ -255,6 +258,7 @@ class NetworkArrowsView: NSView, Widget { } class NetworkDotsTextView: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = MODULE_WIDTH + 26 var label: String = "" @@ -368,6 +372,7 @@ class NetworkDotsTextView: NSView, Widget { } class NetworkArrowsTextView: NSView, Widget { + var active: Observable = Observable(false) var size: CGFloat = MODULE_WIDTH + 24 var label: String = "" diff --git a/Stats/Widgets/Widget.swift b/Stats/Widgets/Widget.swift index 04793905fd9..f0cc71ef52d 100644 --- a/Stats/Widgets/Widget.swift +++ b/Stats/Widgets/Widget.swift @@ -11,6 +11,7 @@ import Foundation protocol Widget { var size: CGFloat { get } var label: String { get set } + var active: Observable { get set } func setValue(data: [Double]) func toggleColor(state: Bool)