From 195a8e88ec60068c27c035c27d99c3acb6e60249 Mon Sep 17 00:00:00 2001
From: sametbrr <92684948+sametbrr@users.noreply.github.com>
Date: Sun, 16 Nov 2025 12:59:58 +0300
Subject: [PATCH] sorting by name added (#1774)
---
MonitorControl/Info.plist | 2 +-
MonitorControl/Support/DisplayManager.swift | 34 +++++++++++++++++++--
MonitorControl/Support/MenuHandler.swift | 1 +
MonitorControlHelper/Info.plist | 2 +-
4 files changed, 35 insertions(+), 4 deletions(-)
diff --git a/MonitorControl/Info.plist b/MonitorControl/Info.plist
index 6648c50..69810af 100644
--- a/MonitorControl/Info.plist
+++ b/MonitorControl/Info.plist
@@ -19,7 +19,7 @@
CFBundleShortVersionString
$(MARKETING_VERSION)
CFBundleVersion
- 7122
+ 7141
LSApplicationCategoryType
public.app-category.utilities
LSMinimumSystemVersion
diff --git a/MonitorControl/Support/DisplayManager.swift b/MonitorControl/Support/DisplayManager.swift
index 7ace448..f53d5bb 100644
--- a/MonitorControl/Support/DisplayManager.swift
+++ b/MonitorControl/Support/DisplayManager.swift
@@ -240,8 +240,38 @@ class DisplayManager {
self.displays.compactMap { $0 as? OtherDisplay }
}
+ func sortDisplays() {
+ // Opsiyonel: sıralamadan önce log al
+ let before = displays.map { $0.name }
+ os_log("Displays before sorting: %{public}@", before)
+
+ // In‑place sıralama
+ displays.sort { lhs, rhs in
+ lhs.name.localizedStandardCompare(rhs.name) == .orderedAscending
+ }
+
+ // Opsiyonel: sıralamadan sonra log al
+ let after = displays.map { $0.name }
+ os_log("Displays after sorting: %{public}@", after)
+ }
+
+ func sortDisplaysByFriendlyName() -> [Display] {
+ return displays.sorted { lhs, rhs in
+ let lhsTitle = lhs.readPrefAsString(key: .friendlyName).isEmpty
+ ? lhs.name
+ : lhs.readPrefAsString(key: .friendlyName)
+ let rhsTitle = rhs.readPrefAsString(key: .friendlyName).isEmpty
+ ? rhs.name
+ : rhs.readPrefAsString(key: .friendlyName)
+ return lhsTitle.localizedStandardCompare(rhsTitle) == .orderedDescending
+ }
+ }
+
+
+
+ /// displays dizisini sıralar ve döner
func getAllDisplays() -> [Display] {
- self.displays
+ return displays
}
func getDdcCapableDisplays() -> [OtherDisplay] {
@@ -283,7 +313,7 @@ class DisplayManager {
func clearDisplays() {
self.displays = []
}
-
+
func addDisplayCounterSuffixes() {
var nameDisplays: [String: [Display]] = [:]
for display in self.displays {
diff --git a/MonitorControl/Support/MenuHandler.swift b/MonitorControl/Support/MenuHandler.swift
index 65c3ad9..6fcd486 100644
--- a/MonitorControl/Support/MenuHandler.swift
+++ b/MonitorControl/Support/MenuHandler.swift
@@ -53,6 +53,7 @@ class MenuHandler: NSMenu, NSMenuDelegate {
displays.append(contentsOf: DisplayManager.shared.getAppleDisplays())
}
displays.append(contentsOf: DisplayManager.shared.getOtherDisplays())
+ displays = DisplayManager.shared.sortDisplaysByFriendlyName()
let relevant = prefs.integer(forKey: PrefKey.multiSliders.rawValue) == MultiSliders.relevant.rawValue
let combine = prefs.integer(forKey: PrefKey.multiSliders.rawValue) == MultiSliders.combine.rawValue
let numOfDisplays = displays.filter { !$0.isDummy }.count
diff --git a/MonitorControlHelper/Info.plist b/MonitorControlHelper/Info.plist
index 3d3b539..e6cc0a2 100644
--- a/MonitorControlHelper/Info.plist
+++ b/MonitorControlHelper/Info.plist
@@ -19,7 +19,7 @@
CFBundleShortVersionString
$(MARKETING_VERSION)
CFBundleVersion
- 7122
+ 7141
LSApplicationCategoryType
public.app-category.utilities
LSBackgroundOnly