Commits

chu...@ataraxy-2.local  committed 193a6c3

Preferences: Show the icons of text editors so the apps are more recognizable and as to indicate to the user that they were found

  • Participants
  • Parent commits 6dbaffc

Comments (0)

Files changed (1)

File Source/MercurialApp.m

     // update popup
     [_textEditorPreferenceButton removeAllItems];
     [_textEditorPreferenceButton addItemsWithTitles:[[self supportedTextEditors] valueForKeyPath:@"@unionOfObjects.editorName"]];
-    NSString *selectedEditorID = [[NSUserDefaults standardUserDefaults] stringForKey:kPrefPreferredTextEditorID];
+
+    for (id item in [[self supportedTextEditors] valueForKeyPath:@"@unionOfObjects.editorID"]) {
+        NSString *path = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:(NSString *)item];
+
+        if (path != nil) { // app was found
+            NSMenuItem *menuItem = [_textEditorPreferenceButton itemAtIndex:[[[self supportedTextEditors] valueForKeyPath:@"@unionOfObjects.editorID"] indexOfObject:item]];
+            [menuItem setImage:[[NSWorkspace sharedWorkspace] iconForFile:path]];
+            [[menuItem image] setSize:NSMakeSize(16, 16)];
+        }
+    }
+
+   NSString *selectedEditorID = [[NSUserDefaults standardUserDefaults] stringForKey:kPrefPreferredTextEditorID];
     if (!selectedEditorID)
         selectedEditorID = @"com.apple.Xcode";
     int selectedItemIndex = [[[self supportedTextEditors] valueForKeyPath:@"@unionOfObjects.editorID"] indexOfObject:selectedEditorID];
 
 
 @end
+//