fixed wrong CPU usage

This commit is contained in:
Serhiy Mytrovtsiy
2019-07-12 14:53:52 +02:00
parent c062df2508
commit ae1ca38b12
10 changed files with 32 additions and 5 deletions

View File

@@ -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
}

View File

@@ -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))]

View File

@@ -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
}

View File

@@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.2.5</string>
<string>1.2.6</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSApplicationCategoryType</key>

View File

@@ -9,6 +9,7 @@
import Cocoa
class BarChart: NSView, Widget {
var active: Observable<Bool> = 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

View File

@@ -9,6 +9,7 @@
import Cocoa
class BatteryView: NSView, Widget {
var active: Observable<Bool> = Observable(false)
var size: CGFloat = MODULE_WIDTH
var label: String = ""

View File

@@ -9,6 +9,7 @@
import Cocoa
class Chart: NSView, Widget {
var active: Observable<Bool> = Observable(false)
var size: CGFloat = MODULE_WIDTH + 7
var labelPadding: CGFloat = 10.0
var labelEnabled: Bool = false

View File

@@ -9,6 +9,8 @@
import Cocoa
class Mini: NSView, Widget {
var active: Observable<Bool> = Observable(false)
var size: CGFloat = MODULE_WIDTH
var valueView: NSTextField = NSTextField()
var labelView: NSTextField = NSTextField()

View File

@@ -9,6 +9,7 @@
import Cocoa
class NetworkDotsView: NSView, Widget {
var active: Observable<Bool> = Observable(false)
var size: CGFloat = 12
var label: String = ""
@@ -89,6 +90,7 @@ class NetworkDotsView: NSView, Widget {
}
class NetworkTextView: NSView, Widget {
var active: Observable<Bool> = 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<Bool> = Observable(false)
var size: CGFloat = 8
var label: String = ""
@@ -255,6 +258,7 @@ class NetworkArrowsView: NSView, Widget {
}
class NetworkDotsTextView: NSView, Widget {
var active: Observable<Bool> = 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<Bool> = Observable(false)
var size: CGFloat = MODULE_WIDTH + 24
var label: String = ""

View File

@@ -11,6 +11,7 @@ import Foundation
protocol Widget {
var size: CGFloat { get }
var label: String { get set }
var active: Observable<Bool> { get set }
func setValue(data: [Double])
func toggleColor(state: Bool)