diff --git a/Clocker/Panel/Data Layer/TimezoneData.swift b/Clocker/Panel/Data Layer/TimezoneData.swift
index 31eef2d..fbf8ab7 100644
--- a/Clocker/Panel/Data Layer/TimezoneData.swift
+++ b/Clocker/Panel/Data Layer/TimezoneData.swift
@@ -27,12 +27,18 @@ class TimezoneData: NSObject, NSCoding {
}
enum TimezoneOverride: Int {
+ case globalFormat = 0
case twelveHourFormat
case twentyFourFormat
- case globalFormat
+ case twelveHourWithSeconds
+ case twentyHourWithSeconds
+ case twelveHourPrecedingZero
+ case twelveHourPrecedingZeroSeconds
+ case twelveHourWithoutSuffix
+ case twelveHourWithoutSuffixAndSeconds
}
- let values = [
+ static let values = [
NSNumber(integerLiteral: 0): DateFormat.twelveHour,
NSNumber(integerLiteral: 1): DateFormat.twelveHourWithSeconds,
NSNumber(integerLiteral: 2): DateFormat.twentyFourHour,
@@ -237,12 +243,16 @@ class TimezoneData: NSObject, NSCoding {
let newTimezone = TimezoneData(with: oldModel)
newModels.append(newTimezone)
} else if let newModel = old as? TimezoneData {
+ if UserDefaults.standard.object(forKey: "migrateOverrideFormat") == nil {
+ print("Resetting Global Format")
+ newModel.setShouldOverrideGlobalTimeFormat(0)
+ }
newModels.append(newModel)
}
}
- if UserDefaults.standard.object(forKey: "shouldOverrideSecondsFormatBug") == nil {
- UserDefaults.standard.set("YES", forKey: "shouldOverrideSecondsFormatBug")
+ if UserDefaults.standard.object(forKey: "migrateOverrideFormat") == nil {
+ UserDefaults.standard.set("YES", forKey: "migrateOverrideFormat")
}
// Do the serialization
@@ -317,7 +327,7 @@ class TimezoneData: NSObject, NSCoding {
func setShouldOverrideGlobalTimeFormat(_ shouldOverride: Int) {
if shouldOverride == 0 {
- overrideFormat = .twelveHourFormat
+ overrideFormat = .globalFormat
} else if shouldOverride == 1 {
overrideFormat = .twentyFourFormat
} else {
@@ -351,8 +361,7 @@ class TimezoneData: NSObject, NSCoding {
func timezoneFormat() -> String {
let chosenDefault = DataStore.shared().timezoneFormat()
-
- return values[chosenDefault] ?? DateFormat.twelveHour
+ return TimezoneData.values[chosenDefault] ?? DateFormat.twelveHour
// var timeFormat = DateFormat.twentyFourHour
//
@@ -380,11 +389,11 @@ class TimezoneData: NSObject, NSCoding {
func shouldShowSeconds() -> Bool {
if overrideFormat == .globalFormat {
let currentFormat = DataStore.shared().timezoneFormat()
- let formatInString = values[currentFormat] ?? DateFormat.twelveHour
+ let formatInString = TimezoneData.values[currentFormat] ?? DateFormat.twelveHour
return formatInString.contains("ss")
}
- let formatInString = values[NSNumber(integerLiteral: overrideFormat.rawValue)] ?? DateFormat.twelveHour
+ let formatInString = TimezoneData.values[NSNumber(integerLiteral: overrideFormat.rawValue)] ?? DateFormat.twelveHour
return formatInString.contains("ss")
}
diff --git a/Clocker/Panel/Notes Popover/NotesPopover.swift b/Clocker/Panel/Notes Popover/NotesPopover.swift
index e706a5f..ce10a05 100644
--- a/Clocker/Panel/Notes Popover/NotesPopover.swift
+++ b/Clocker/Panel/Notes Popover/NotesPopover.swift
@@ -34,7 +34,7 @@ class NotesPopover: NSViewController {
@IBOutlet var remindersButton: NSButton!
- @IBOutlet var timeFormatControl: NSSegmentedControl!
+ @IBOutlet var timeFormatControl: NSPopUpButton!
@IBOutlet var notesTextView: TextViewWithPlaceholder!
@@ -66,6 +66,29 @@ class NotesPopover: NSViewController {
alertPopupButton.addItems(withTitles: titles)
alertPopupButton.selectItem(at: 1)
+ // Set up time control
+ let chosenFormat: Int = dataObject?.overrideFormat.rawValue ?? 0
+ let supportedTimeFormats = ["Respect Global Preference",
+ "h:mm a (7:08 PM)",
+ "HH:mm (19:08)",
+ "-- With Seconds --",
+ "h:mm:ss a (7:08:09 PM)",
+ "HH:mm:ss (19:08:09)",
+ "-- 12 Hour with Preceding 0 --",
+ "hh:mm a (07:08 PM)",
+ "hh:mm:ss a (07:08:09 PM)",
+ "-- 12 Hour w/o AM/PM --",
+ "hh:mm (07:08)",
+ "hh:mm:ss (07:08:09)"]
+ timeFormatControl.removeAllItems()
+ timeFormatControl.addItems(withTitles: supportedTimeFormats)
+
+ timeFormatControl.item(at: 3)?.isEnabled = false
+ timeFormatControl.item(at: 6)?.isEnabled = false
+ timeFormatControl.item(at: 9)?.isEnabled = false
+ timeFormatControl.autoenablesItems = false
+ timeFormatControl.selectItem(at: chosenFormat)
+
// Set Accessibility Identifiers for UI tests
customLabel.setAccessibilityIdentifier("CustomLabel")
saveButton.setAccessibilityIdentifier("SaveButton")
@@ -212,7 +235,7 @@ class NotesPopover: NSViewController {
updateLabel()
dataObject?.note = notesTextView.string
- dataObject?.setShouldOverrideGlobalTimeFormat(timeFormatControl.selectedSegment)
+ dataObject?.setShouldOverrideGlobalTimeFormat(timeFormatControl.indexOfSelectedItem)
insertTimezoneInDefaultPreferences()
if setReminderCheckbox.state == .on {
@@ -452,7 +475,7 @@ extension NotesPopover {
private func updateTimeFormat() {
if let overrideFormat = dataObject?.overrideFormat.rawValue {
- timeFormatControl.setSelected(true, forSegment: overrideFormat)
+ timeFormatControl.selectItem(at: overrideFormat)
}
}
diff --git a/Clocker/Panel/Notes Popover/NotesPopover.xib b/Clocker/Panel/Notes Popover/NotesPopover.xib
index 48278f6..0e727c3 100644
--- a/Clocker/Panel/Notes Popover/NotesPopover.xib
+++ b/Clocker/Panel/Notes Popover/NotesPopover.xib
@@ -17,14 +17,14 @@
-
+
-
+
@@ -185,22 +185,22 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -209,13 +209,12 @@
-
+
+
-
-
-
-
+
+