From 7a7dc328ddf5c5a9a10dfea631e524ce2feb328a Mon Sep 17 00:00:00 2001 From: Serhiy Mytrovtsiy Date: Wed, 11 Sep 2019 15:24:40 +0200 Subject: [PATCH] fixed view update --- Stats/MenuBar.swift | 4 +++- Stats/Modules/Battery/Battery.swift | 3 ++- Stats/Modules/Battery/BatteryView.swift | 2 ++ Stats/Modules/CPU/CPU.swift | 4 ++-- Stats/Modules/CPU/CPUView.swift | 2 ++ Stats/Modules/Disk/Disk.swift | 4 +++- Stats/Modules/Memory/Memory.swift | 3 ++- Stats/Modules/Memory/MemoryView.swift | 2 ++ Stats/Modules/Module.swift | 3 ++- Stats/Modules/Network/Network.swift | 5 ++++- Stats/Views/PopupViewController.swift | 2 +- 11 files changed, 25 insertions(+), 9 deletions(-) diff --git a/Stats/MenuBar.swift b/Stats/MenuBar.swift index 22983e72..ce366c55 100644 --- a/Stats/MenuBar.swift +++ b/Stats/MenuBar.swift @@ -28,7 +28,9 @@ class MenuBar { module.initWidget() } module.initMenu(active: value) - module.initTab() + if !module.tabInitialized { + module.initTab() + } self.updateWidget(name: module.name) } } diff --git a/Stats/Modules/Battery/Battery.swift b/Stats/Modules/Battery/Battery.swift index 0a91006a..c82d45ec 100644 --- a/Stats/Modules/Battery/Battery.swift +++ b/Stats/Modules/Battery/Battery.swift @@ -16,7 +16,8 @@ class Battery: Module { public var active: Observable public var available: Observable public var reader: Reader = BatteryReader() - public var viewAvailable: Bool = true + public var tabAvailable: Bool = true + public var tabInitialized: Bool = false public var tabView: NSTabViewItem = NSTabViewItem() public var widgetType: WidgetType = Widgets.Mini diff --git a/Stats/Modules/Battery/BatteryView.swift b/Stats/Modules/Battery/BatteryView.swift index 7b740ca3..3456ecdc 100644 --- a/Stats/Modules/Battery/BatteryView.swift +++ b/Stats/Modules/Battery/BatteryView.swift @@ -18,6 +18,8 @@ extension Battery { makeOverview() makeBattery() makePowerAdapter() + + self.tabInitialized = true } func makeMain() { diff --git a/Stats/Modules/CPU/CPU.swift b/Stats/Modules/CPU/CPU.swift index 33607247..6ba063d8 100644 --- a/Stats/Modules/CPU/CPU.swift +++ b/Stats/Modules/CPU/CPU.swift @@ -19,13 +19,13 @@ class CPU: Module { public var hyperthreading: Observable public var reader: Reader = CPUReader() public var tabView: NSTabViewItem = NSTabViewItem() - public var viewAvailable: Bool = true + public var tabAvailable: Bool = true + public var tabInitialized: Bool = false public var widgetType: WidgetType public var chart: LineChartView = LineChartView() private let defaults = UserDefaults.standard private var submenu: NSMenu = NSMenu() - private var initialized: Bool = false init() { self.available = Observable(true) diff --git a/Stats/Modules/CPU/CPUView.swift b/Stats/Modules/CPU/CPUView.swift index c41c36a3..f0a67f38 100644 --- a/Stats/Modules/CPU/CPUView.swift +++ b/Stats/Modules/CPU/CPUView.swift @@ -19,6 +19,8 @@ extension CPU { makeOverview() makeProcesses() + self.tabInitialized = true + (self.reader as! CPUReader).usage.subscribe(observer: self) { (value, _) in let v: Double = Double((value.value * 100).roundTo(decimalPlaces: 2))! self.updateChart(value: v) diff --git a/Stats/Modules/Disk/Disk.swift b/Stats/Modules/Disk/Disk.swift index 115b05d3..d12034ae 100644 --- a/Stats/Modules/Disk/Disk.swift +++ b/Stats/Modules/Disk/Disk.swift @@ -17,7 +17,8 @@ class Disk: Module { public var active: Observable public var available: Observable - public var viewAvailable: Bool = false + public var tabAvailable: Bool = false + public var tabInitialized: Bool = false public var tabView: NSTabViewItem = NSTabViewItem() public var reader: Reader = DiskReader() @@ -32,6 +33,7 @@ class Disk: Module { } func initTab() { + self.tabInitialized = true self.tabView.view?.frame = NSRect(x: 0, y: 0, width: TabWidth, height: TabHeight) } diff --git a/Stats/Modules/Memory/Memory.swift b/Stats/Modules/Memory/Memory.swift index c825db14..8aac9238 100644 --- a/Stats/Modules/Memory/Memory.swift +++ b/Stats/Modules/Memory/Memory.swift @@ -18,7 +18,8 @@ class Memory: Module { public var available: Observable public var reader: Reader = MemoryReader() public var widgetType: WidgetType - public var viewAvailable: Bool = true + public var tabAvailable: Bool = true + public var tabInitialized: Bool = false public var tabView: NSTabViewItem = NSTabViewItem() public var chart: LineChartView = LineChartView() diff --git a/Stats/Modules/Memory/MemoryView.swift b/Stats/Modules/Memory/MemoryView.swift index 0fe705bf..94f0bbd5 100644 --- a/Stats/Modules/Memory/MemoryView.swift +++ b/Stats/Modules/Memory/MemoryView.swift @@ -19,6 +19,8 @@ extension Memory { makeOverview() makeProcesses() + self.tabInitialized = true + (self.reader as! MemoryReader).usage.subscribe(observer: self) { (value, _) in self.updateChart(value: Units(bytes: Int64(value.used)).getReadableTuple().0) } diff --git a/Stats/Modules/Module.swift b/Stats/Modules/Module.swift index 1443f237..dcb1dc53 100644 --- a/Stats/Modules/Module.swift +++ b/Stats/Modules/Module.swift @@ -19,8 +19,9 @@ protocol Module: class { var active: Observable { get } var available: Observable { get } - var viewAvailable: Bool { get } var tabView: NSTabViewItem { get } + var tabAvailable: Bool { get } + var tabInitialized: Bool { get } var reader: Reader { get } diff --git a/Stats/Modules/Network/Network.swift b/Stats/Modules/Network/Network.swift index cce66623..35f7c10a 100644 --- a/Stats/Modules/Network/Network.swift +++ b/Stats/Modules/Network/Network.swift @@ -17,7 +17,8 @@ class Network: Module { public var available: Observable public var reader: Reader = NetworkReader() public var widgetType: WidgetType = 2.0 - public var viewAvailable: Bool = false + public var tabAvailable: Bool = false + public var tabInitialized: Bool = false public var tabView: NSTabViewItem = NSTabViewItem() private let defaults = UserDefaults.standard @@ -45,6 +46,8 @@ class Network: Module { text.frame.origin.y = ((self.tabView.view?.frame.size.height)! - 22) / 2 self.tabView.view?.addSubview(text) + + self.tabInitialized = true } func start() { diff --git a/Stats/Views/PopupViewController.swift b/Stats/Views/PopupViewController.swift index d3c3240c..86f7b594 100644 --- a/Stats/Views/PopupViewController.swift +++ b/Stats/Views/PopupViewController.swift @@ -55,7 +55,7 @@ class MainViewController: NSViewController { func makeHeader() { var list: [String] = [] for module in modules.value { - if module.viewAvailable && module.available.value && module.active.value { + if module.tabAvailable && module.available.value && module.active.value { list.append(module.name) let tab = module.tabView