sorting by name added

This commit is contained in:
sametbrr 2025-07-18 04:09:57 +03:00
parent 81170cd7fc
commit 58df4c9e9f
5 changed files with 41 additions and 10 deletions

View file

@ -869,7 +869,7 @@
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 7100;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 299YSU96J7;
DEVELOPMENT_TEAM = 8M7T2GX863;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(PROJECT_DIR)/**",
@ -906,7 +906,7 @@
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 7100;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 299YSU96J7;
DEVELOPMENT_TEAM = 8M7T2GX863;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(PROJECT_DIR)/**",
@ -946,7 +946,7 @@
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 7100;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 299YSU96J7;
DEVELOPMENT_TEAM = 8M7T2GX863;
ENABLE_HARDENED_RUNTIME = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = MonitorControlHelper/Info.plist;
@ -954,7 +954,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 4.1.0;
PRODUCT_BUNDLE_IDENTIFIER = app.monitorcontrol.MonitorControlHelper;
PRODUCT_NAME = "$(TARGET_NAME)";
@ -977,7 +977,7 @@
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 7100;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = 299YSU96J7;
DEVELOPMENT_TEAM = 8M7T2GX863;
ENABLE_HARDENED_RUNTIME = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = MonitorControlHelper/Info.plist;
@ -985,7 +985,7 @@
"$(inherited)",
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 4.1.0;
PRODUCT_BUNDLE_IDENTIFIER = app.monitorcontrol.MonitorControlHelper;
PRODUCT_NAME = "$(TARGET_NAME)";

View file

@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>7122</string>
<string>7141</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>

View file

@ -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)
// Inplace 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 {

View file

@ -41,6 +41,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

View file

@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>7122</string>
<string>7141</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSBackgroundOnly</key>