Adium

Changeset 21549

Show
Ignore:
Timestamp:
11/06/2007 02:24:56 AM (1 year ago)
Author:
zacw
Message:

Advanced Status Preferences now use bindings to update their values (or "How I spent my Monday night"). This also adds -- for want of a better place, perhaps a new advanced preference (boo) or renaming Status to be more generic -- a "Quit Confirmation" preference.

This new preference has the choice of: Never confirm, Always confirm or Sometimes confirm. Sometimes has (now) 3 sub-types: file transfers, unread messages and open chats. It's pretty easy to add new ones.

Since "open chats" was never a quit option before, this Fixes #4231.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Frameworks/Adium Framework/Source/AIAdiumProtocol.h

    r21266 r21549  
    1010 
    1111@class AICoreComponentLoader; 
     12 
     13typedef enum { 
     14        AIQuitConfirmNever = 0, 
     15        AIQuitConfirmAlways, 
     16        AIQuitConfirmSelective 
     17} AIQuitConfirmationType; 
    1218 
    1319@protocol AIAccountController, AIChatController, AIContactAlertsController, AIDebugController, 
  • trunk/Resources/ConfirmationDefaults.plist

    r20484 r21549  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
     2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
    33<plist version="1.0"> 
    44<dict> 
    5         <key>Confirm Quit</key> 
    6         <true/> 
     5        <key>Confirm Quit Type</key> 
     6        <integer>1</integer> 
     7        <key>Suppress Quit Confirmation for File Transfers</key> 
     8        <false/> 
     9        <key>Suppress Quit Confirmation for Open Chats</key> 
     10        <false/> 
     11        <key>Suppress Quit Confirmation for Unread Messages</key> 
     12        <false/> 
    713</dict> 
    814</plist> 
  • trunk/Resources/StatusPreferencesAdvanced.nib/classes.nib

    r21338 r21549  
    1 
    2     IBClasses = ( 
    3         { 
    4             CLASS = AILocalizationButton;  
    5             LANGUAGE = ObjC;  
    6             OUTLETS = { 
    7                 "view_anchorToLeftSide" = NSView;  
    8                 "view_anchorToRightSide" = NSView;  
    9                 "window_anchorOnLeftSide" = NSWindow;  
    10                 "window_anchorOnRightSide" = NSWindow;  
    11             };  
    12             SUPERCLASS = NSButton;  
    13         },  
    14         { 
    15             CLASS = AILocalizationTextField;  
    16             LANGUAGE = ObjC;  
    17             OUTLETS = { 
    18                 "view_anchorToLeftSide" = NSView;  
    19                 "view_anchorToRightSide" = NSView;  
    20                 "window_anchorOnLeftSide" = NSWindow;  
    21             };  
    22             SUPERCLASS = NSTextField;  
    23         },  
    24         { 
    25             ACTIONS = {changePreference = id; };  
    26             CLASS = AIPreferencePane;  
    27             LANGUAGE = ObjC;  
    28             OUTLETS = { 
    29                 delegate = id;  
    30                 "textField_title" = NSTextField;  
    31                 view = NSView;  
    32                 "view_containerSubView" = NSView;  
    33                 "view_containerView" = NSView;  
    34             };  
    35             SUPERCLASS = NSObject;  
    36         },  
    37         { 
    38             CLASS = ESStatusAdvancedPreferences;  
    39             LANGUAGE = ObjC;  
    40             OUTLETS = { 
    41                 "checkBox_statusMenuItemBadge" = NSButton;  
    42                 "checkBox_statusMenuItemFlash" = NSButton;  
    43                 "checkBox_statusWindowAlwaysOnTop" = NSButton;  
    44                 "checkBox_statusWindowHideInBackground" = NSButton;  
    45                 "label_statusMenuItem" = NSTextField;  
    46                 "label_statusWindow" = NSTextField;  
    47             };  
    48             SUPERCLASS = AIPreferencePane;  
    49         },  
    50         {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },  
    51         {CLASS = NSObject; LANGUAGE = ObjC; } 
    52     );  
    53     IBVersion = 1;  
    54 
     1<?xml version="1.0" encoding="UTF-8"?> 
     2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
     3<plist version="1.0"> 
     4<dict> 
     5        <key>IBClasses</key> 
     6        <array> 
     7                <dict> 
     8                        <key>CLASS</key> 
     9                        <string>NSApplication</string> 
     10                        <key>LANGUAGE</key> 
     11                        <string>ObjC</string> 
     12                        <key>SUPERCLASS</key> 
     13                        <string>NSResponder</string> 
     14                </dict> 
     15                <dict> 
     16                        <key>CLASS</key> 
     17                        <string>NSTextField</string> 
     18                        <key>LANGUAGE</key> 
     19                        <string>ObjC</string> 
     20                        <key>SUPERCLASS</key> 
     21                        <string>NSControl</string> 
     22                </dict> 
     23                <dict> 
     24                        <key>ACTIONS</key> 
     25                        <dict> 
     26                                <key>adiumPrint</key> 
     27                                <string>id</string> 
     28                                <key>prefsWindowWillClose</key> 
     29                                <string>SS_PrefsController</string> 
     30                        </dict> 
     31                        <key>CLASS</key> 
     32                        <string>NSObject</string> 
     33                        <key>LANGUAGE</key> 
     34                        <string>ObjC</string> 
     35                </dict> 
     36                <dict> 
     37                        <key>CLASS</key> 
     38                        <string>AILocalizationButton</string> 
     39                        <key>LANGUAGE</key> 
     40                        <string>ObjC</string> 
     41                        <key>OUTLETS</key> 
     42                        <dict> 
     43                                <key>view_anchorToLeftSide</key> 
     44                                <string>NSView</string> 
     45                                <key>view_anchorToRightSide</key> 
     46                                <string>NSView</string> 
     47                                <key>window_anchorOnLeftSide</key> 
     48                                <string>NSWindow</string> 
     49                                <key>window_anchorOnRightSide</key> 
     50                                <string>NSWindow</string> 
     51                        </dict> 
     52                        <key>SUPERCLASS</key> 
     53                        <string>NSButton</string> 
     54                </dict> 
     55                <dict> 
     56                        <key>CLASS</key> 
     57                        <string>NSWindow</string> 
     58                        <key>LANGUAGE</key> 
     59                        <string>ObjC</string> 
     60                        <key>SUPERCLASS</key> 
     61                        <string>NSResponder</string> 
     62                </dict> 
     63                <dict> 
     64                        <key>CLASS</key> 
     65                        <string>FirstResponder</string> 
     66                        <key>LANGUAGE</key> 
     67                        <string>ObjC</string> 
     68                        <key>SUPERCLASS</key> 
     69                        <string>NSObject</string> 
     70                </dict> 
     71                <dict> 
     72                        <key>ACTIONS</key> 
     73                        <dict> 
     74                                <key>changePreference</key> 
     75                                <string>id</string> 
     76                        </dict> 
     77                        <key>CLASS</key> 
     78                        <string>AIPreferencePane</string> 
     79                        <key>LANGUAGE</key> 
     80                        <string>ObjC</string> 
     81                        <key>OUTLETS</key> 
     82                        <dict> 
     83                                <key>delegate</key> 
     84                                <string>id</string> 
     85                                <key>textField_title</key> 
     86                                <string>NSTextField</string> 
     87                                <key>view</key> 
     88                                <string>NSView</string> 
     89                                <key>view_containerSubView</key> 
     90                                <string>NSView</string> 
     91                                <key>view_containerView</key> 
     92                                <string>NSView</string> 
     93                        </dict> 
     94                        <key>SUPERCLASS</key> 
     95                        <string>AIModularPane</string> 
     96                </dict> 
     97                <dict> 
     98                        <key>ACTIONS</key> 
     99                        <dict> 
     100                                <key>changePreference</key> 
     101                                <string>id</string> 
     102                        </dict> 
     103                        <key>CLASS</key> 
     104                        <string>AIModularPane</string> 
     105                        <key>LANGUAGE</key> 
     106                        <string>ObjC</string> 
     107                        <key>OUTLETS</key> 
     108                        <dict> 
     109                                <key>plugin</key> 
     110                                <string>id</string> 
     111                                <key>view</key> 
     112                                <string>NSView</string> 
     113                        </dict> 
     114                        <key>SUPERCLASS</key> 
     115                        <string>AIObject</string> 
     116                </dict> 
     117                <dict> 
     118                        <key>CLASS</key> 
     119                        <string>NSButton</string> 
     120                        <key>LANGUAGE</key> 
     121                        <string>ObjC</string> 
     122                        <key>SUPERCLASS</key> 
     123                        <string>NSControl</string> 
     124                </dict> 
     125                <dict> 
     126                        <key>CLASS</key> 
     127                        <string>ESStatusAdvancedPreferences</string> 
     128                        <key>LANGUAGE</key> 
     129                        <string>ObjC</string> 
     130                        <key>OUTLETS</key> 
     131                        <dict> 
     132                                <key>checkBox_quitConfirmFT</key> 
     133                                <string>NSButton</string> 
     134                                <key>checkBox_quitConfirmOpenChats</key> 
     135                                <string>NSButton</string> 
     136                                <key>checkBox_quitConfirmUnread</key> 
     137                                <string>NSButton</string> 
     138                                <key>checkBox_statusMenuItemBadge</key> 
     139                                <string>NSButton</string> 
     140                                <key>checkBox_statusMenuItemFlash</key> 
     141                                <string>NSButton</string> 
     142                                <key>checkBox_statusWindowAlwaysOnTop</key> 
     143                                <string>NSButton</string> 
     144                                <key>checkBox_statusWindowHideInBackground</key> 
     145                                <string>NSButton</string> 
     146                                <key>label_quitConfirmation</key> 
     147                                <string>NSTextField</string> 
     148                                <key>label_quitConfirmationSentence</key> 
     149                                <string>NSTextField</string> 
     150                                <key>label_statusMenuItem</key> 
     151                                <string>NSTextField</string> 
     152                                <key>label_statusWindow</key> 
     153                                <string>NSTextField</string> 
     154                                <key>matrix_quitConfirmation</key> 
     155                                <string>NSMatrix</string> 
     156                        </dict> 
     157                        <key>SUPERCLASS</key> 
     158                        <string>AIPreferencePane</string> 
     159                </dict> 
     160                <dict> 
     161                        <key>CLASS</key> 
     162                        <string>AIObject</string> 
     163                        <key>LANGUAGE</key> 
     164                        <string>ObjC</string> 
     165                        <key>SUPERCLASS</key> 
     166                        <string>NSObject</string> 
     167                </dict> 
     168                <dict> 
     169                        <key>CLASS</key> 
     170                        <string>AILocalizationTextField</string> 
     171                        <key>LANGUAGE</key> 
     172                        <string>ObjC</string> 
     173                        <key>OUTLETS</key> 
     174                        <dict> 
     175                                <key>view_anchorToLeftSide</key> 
     176                                <string>NSView</string> 
     177                                <key>view_anchorToRightSide</key> 
     178                                <string>NSView</string> 
     179                                <key>window_anchorOnLeftSide</key> 
     180                                <string>NSWindow</string> 
     181                                <key>window_anchorOnRightSide</key> 
     182                                <string>NSWindow</string> 
     183                        </dict> 
     184                        <key>SUPERCLASS</key> 
     185                        <string>NSTextField</string> 
     186                </dict> 
     187                <dict> 
     188                        <key>CLASS</key> 
     189                        <string>NSButtonCell</string> 
     190                        <key>LANGUAGE</key> 
     191                        <string>ObjC</string> 
     192                        <key>SUPERCLASS</key> 
     193                        <string>NSActionCell</string> 
     194                </dict> 
     195                <dict> 
     196                        <key>CLASS</key> 
     197                        <string>SS_PrefsController</string> 
     198                        <key>LANGUAGE</key> 
     199                        <string>ObjC</string> 
     200                        <key>OUTLETS</key> 
     201                        <dict> 
     202                                <key>delegate</key> 
     203                                <string>id</string> 
     204                        </dict> 
     205                        <key>SUPERCLASS</key> 
     206                        <string>NSObject</string> 
     207                </dict> 
     208        </array> 
     209        <key>IBVersion</key> 
     210        <string>1</string> 
     211</dict> 
     212</plist> 
  • trunk/Resources/StatusPreferencesAdvanced.nib/info.nib

    r21338 r21549  
    11<?xml version="1.0" encoding="UTF-8"?> 
    2 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
     2<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
    33<plist version="1.0"> 
    44<dict> 
    5         <key>IBDocumentLocation</key> 
    6         <string>117 90 356 240 0 0 1920 1178 </string> 
    7         <key>IBEditorPositions</key> 
    8         <dict> 
    9                 <key>6</key> 
    10                 <string>785 694 346 182 0 0 1920 1178 </string> 
    11         </dict> 
    125        <key>IBFramework Version</key> 
    13         <string>482.0</string> 
     6        <string>629</string> 
     7        <key>IBLastKnownRelativeProjectPath</key> 
     8        <string>../../Adium.xcodeproj</string> 
     9        <key>IBOldestOS</key> 
     10        <integer>5</integer> 
    1411        <key>IBOpenObjects</key> 
    1512        <array> 
     
    1714        </array> 
    1815        <key>IBSystem Version</key> 
    19         <string>8R2218</string> 
    20         <key>IBUsesTextArchiving</key> 
    21         <true/
     16        <string>9A581</string> 
     17        <key>targetFramework</key> 
     18        <string>IBCocoaFramework</string
    2219</dict> 
    2320</plist> 
  • trunk/Source/AIAdium.m

    r21355 r21549  
    335335- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender 
    336336{ 
     337        AIQuitConfirmationType          confirmationType = [[preferenceController preferenceForKey:@"Confirm Quit Type" 
     338                                                                                                                                                                                        group:@"Confirmations"] intValue]; 
     339        BOOL confirmUnreadMessages      = ![[preferenceController preferenceForKey:@"Suppress Quit Confirmation for Unread Messages" 
     340                                                                                                                                        group:@"Confirmations"] boolValue]; 
     341        BOOL confirmFileTransfers       = ![[preferenceController preferenceForKey:@"Suppress Quit Confirmation for File Transfers" 
     342                                                                                                                                        group:@"Confirmations"] boolValue]; 
     343        BOOL confirmOpenChats           = ![[preferenceController preferenceForKey:@"Suppress Quit Confirmation for Open Chats" 
     344                                                                                                                                        group:@"Confirmations"] boolValue]; 
     345         
     346        NSString        *questionToAsk = [NSString string]; 
     347        SEL                     questionSelector = nil; 
     348 
    337349        NSApplicationTerminateReply allowQuit = NSTerminateNow; 
    338         if (([chatController unviewedContentCount] > 0) && 
    339                 (![[preferenceController preferenceForKey:@"Suppress Quit Confirmation for Unread Messages" 
    340                                                                                         group:@"Confirmations"] boolValue])) { 
     350         
     351        switch (confirmationType) { 
     352                case AIQuitConfirmNever: 
     353                        allowQuit = NSTerminateNow;              
     354                        break; 
     355                         
     356                case AIQuitConfirmAlways: 
     357                        questionSelector = @selector(confirmQuitQuestion:userInfo:); 
     358                         
     359                        allowQuit = NSTerminateLater; 
     360                        break; 
     361                         
     362                case AIQuitConfirmSelective: 
     363                        if ([chatController unviewedContentCount] > 0 && confirmUnreadMessages) { 
     364                                questionToAsk = AILocalizedString(@"You have unread messages.",@"Quit Confirmation"); 
     365                                questionSelector = @selector(unreadQuitQuestion:userInfo:); 
     366                                allowQuit = NSTerminateLater; 
     367                        } else if ([fileTransferController activeTransferCount] > 0 && confirmFileTransfers) { 
     368                                questionToAsk = AILocalizedString(@"You have file transfers in progress.",@"Quit Confirmation"); 
     369                                questionSelector = @selector(fileTransferQuitQuestion:userInfo:); 
     370                                allowQuit = NSTerminateLater; 
     371                        } else if ([[chatController openChats] count] > 0 && confirmOpenChats) { 
     372                                questionToAsk = AILocalizedString(@"You have open chats.",@"Quit Confirmation"); 
     373                                questionSelector = @selector(openChatQuitQuestion:userInfo:); 
     374                                allowQuit = NSTerminateLater; 
     375                        } 
     376 
     377                        break; 
     378        } 
     379         
     380        if (allowQuit == NSTerminateLater) { 
    341381                [[self interfaceController] displayQuestion:AILocalizedString(@"Confirm Quit", nil) 
    342                                                                         withDescription:AILocalizedString(@"You have unread messages.\nAre you sure you want to quit?", nil) 
     382                                                                        withDescription:[questionToAsk stringByAppendingFormat:@"%@%@", 
     383                                                                                                                ([questionToAsk length] > 0 ? @"\n" : @""), 
     384                                                                                                                AILocalizedString(@"Are you sure you want to quit Adium?",@"Quit Confirmation")] 
    343385                                                                        withWindowTitle:nil 
    344386                                                                          defaultButton:AILocalizedString(@"Quit", nil) 
     
    346388                                                                                otherButton:AILocalizedString(@"Don't ask again", nil) 
    347389                                                                                         target:self 
    348                                                                                    selector:@selector(unreadQuitQuestion:userInfo:) 
     390                                                                                   selector:questionSelector 
    349391                                                                                   userInfo:nil]; 
    350                 allowQuit = NSTerminateLater; 
    351         }  
    352          
    353         if (allowQuit == NSTerminateNow && 
    354                 ([fileTransferController activeTransferCount] > 0) && 
    355                 (![[preferenceController preferenceForKey:@"Suppress Quit Confirmation for File Transfers" 
    356                                                                                         group:@"Confirmations"]  boolValue])) { 
    357                 [[self interfaceController] displayQuestion:AILocalizedString(@"Confirm Quit", nil) 
    358                                                                         withDescription:AILocalizedString(@"You have file transfers in progress.\nAre you sure you want to quit?", nil) 
    359                                                                         withWindowTitle:nil 
    360                                                                           defaultButton:AILocalizedString(@"Quit", nil) 
    361                                                                         alternateButton:AILocalizedString(@"Cancel", nil) 
    362                                                                                 otherButton:AILocalizedString(@"Don't ask again", nil) 
    363                                                                                          target:self 
    364                                                                                    selector:@selector(fileTransferQuitQuestion:userInfo:) 
    365                                                                                    userInfo:nil]; 
    366                 allowQuit = NSTerminateLater; 
    367         } 
    368          
    369         if (allowQuit == NSTerminateNow && 
    370                 [[preferenceController preferenceForKey:@"Confirm Quit" 
    371                                                                                   group:@"Confirmations"]  boolValue]) { 
    372                 [[self interfaceController] displayQuestion:AILocalizedString(@"Confirm Quit", nil) 
    373                                                                         withDescription:AILocalizedString(@"Are you sure you want to quit Adium?", nil) 
    374                                                                         withWindowTitle:nil 
    375                                                                           defaultButton:AILocalizedString(@"Quit", nil) 
    376                                                                         alternateButton:AILocalizedString(@"Cancel", nil) 
    377                                                                                 otherButton:AILocalizedString(@"Don't ask again", nil) 
    378                                                                                          target:self 
    379                                                                                    selector:@selector(confirmQuitQuestion:userInfo:) 
    380                                                                                    userInfo:nil]; 
    381                 allowQuit = NSTerminateLater; 
    382         } 
    383          
     392        } 
     393 
    384394        return allowQuit; 
    385395} 
     
    481491} 
    482492 
     493- (void)openChatQuitQuestion:(NSNumber *)number userInfo:(id)info 
     494{ 
     495        AITextAndButtonsReturnCode result = [number intValue]; 
     496        switch(result) 
     497        { 
     498                case AITextAndButtonsDefaultReturn: 
     499                        //Quit 
     500                        //Should we ask about File Transfers here????? 
     501                        [NSApp replyToApplicationShouldTerminate:NSTerminateNow]; 
     502                        break; 
     503                case AITextAndButtonsOtherReturn: 
     504                        //Don't Ask Again 
     505                        [[self preferenceController] setPreference:[NSNumber numberWithBool:YES] 
     506                                                                                                forKey:@"Suppress Quit Confirmation for Open Chats" 
     507                                                                                                 group:@"Confirmations"]; 
     508                        [NSApp replyToApplicationShouldTerminate:NSTerminateNow]; 
     509                        break; 
     510                default: 
     511                        //Cancel 
     512                        [NSApp replyToApplicationShouldTerminate:NSTerminateCancel]; 
     513                        break; 
     514        } 
     515} 
     516 
    483517- (void)fileTransferQuitQuestion:(NSNumber *)number userInfo:(id)info 
    484518{ 
     
    515549                case AITextAndButtonsOtherReturn: 
    516550                        //Don't Ask Again 
    517                         [[self preferenceController] setPreference:[NSNumber numberWithBool:NO
    518                                                                                                 forKey:@"Confirm Quit
     551                        [[self preferenceController] setPreference:[NSNumber numberWithInt:AIQuitConfirmSelective
     552                                                                                                forKey:@"Confirm Quit Type
    519553                                                                                                 group:@"Confirmations"]; 
    520554                        [NSApp replyToApplicationShouldTerminate:NSTerminateNow]; 
  • trunk/Source/ESStatusAdvancedPreferences.h

    r21338 r21549  
    1616        IBOutlet        NSButton        *checkBox_statusMenuItemBadge; 
    1717        IBOutlet        NSButton        *checkBox_statusMenuItemFlash; 
     18         
     19        IBOutlet        NSTextField     *label_quitConfirmation; 
     20        IBOutlet        NSTextField     *label_quitConfirmationSentence; 
     21 
     22        IBOutlet        NSMatrix        *matrix_quitConfirmation; 
     23        IBOutlet        NSButton        *checkBox_quitConfirmFT; 
     24        IBOutlet        NSButton        *checkBox_quitConfirmUnread; 
     25        IBOutlet        NSButton        *checkBox_quitConfirmOpenChats; 
    1826} 
    1927 
  • trunk/Source/ESStatusAdvancedPreferences.m

    r21338 r21549  
    3131- (IBAction)changePreference:(id)sender 
    3232{ 
    33         if (sender == checkBox_statusWindowHideInBackground) { 
    34                 [[adium preferenceController] setPreference:[NSNumber numberWithBool:[sender state]] 
    35                                                                                          forKey:KEY_STATUS_STATUS_WINDOW_HIDE_IN_BACKGROUND 
    36                                                                                           group:PREF_GROUP_STATUS_PREFERENCES];          
    37                  
    38         } else if (sender == checkBox_statusWindowAlwaysOnTop) { 
    39                 [[adium preferenceController] setPreference:[NSNumber numberWithBool:[sender state]] 
    40                                                                                          forKey:KEY_STATUS_STATUS_WINDOW_ON_TOP 
    41                                                                                           group:PREF_GROUP_STATUS_PREFERENCES]; 
    42         } else if (sender == checkBox_statusMenuItemBadge) { 
    43                 [[adium preferenceController] setPreference:[NSNumber numberWithBool:[sender state]] 
    44                                                                                          forKey:KEY_STATUS_MENU_ITEM_BADGE 
    45                                                                                           group:PREF_GROUP_STATUS_MENU_ITEM]; 
    46         } else if (sender == checkBox_statusMenuItemFlash) { 
    47                 [[adium preferenceController] setPreference:[NSNumber numberWithBool:[sender state]] 
    48                                                                                          forKey:KEY_STATUS_MENU_ITEM_FLASH 
    49                                                                                           group:PREF_GROUP_STATUS_MENU_ITEM];            
     33        if (sender == matrix_quitConfirmation) { 
     34                [self configureControlDimming]; 
    5035        } 
     36} 
     37 
     38- (void)configureControlDimming 
     39{ 
     40        BOOL            enableSpecificConfirmations = ([[matrix_quitConfirmation selectedCell] tag] == AIQuitConfirmSelective); 
     41         
     42        [checkBox_quitConfirmFT                 setEnabled:enableSpecificConfirmations]; 
     43        [checkBox_quitConfirmUnread             setEnabled:enableSpecificConfirmations]; 
     44        [checkBox_quitConfirmOpenChats  setEnabled:enableSpecificConfirmations]; 
    5145} 
    5246 
     
    5448- (void)viewDidLoad 
    5549{ 
    56     NSDictionary        *prefDict; 
    57          
    58         prefDict = [[adium preferenceController] preferencesForGroup:PREF_GROUP_STATUS_PREFERENCES]; 
    59         [checkBox_statusWindowHideInBackground setState:[[prefDict objectForKey:KEY_STATUS_STATUS_WINDOW_HIDE_IN_BACKGROUND] boolValue]]; 
    60         [checkBox_statusWindowAlwaysOnTop setState:[[prefDict objectForKey:KEY_STATUS_STATUS_WINDOW_ON_TOP] boolValue]]; 
    61          
    6250        [label_statusWindow setLocalizedString:AILocalizedString(@"Away Status Window", nil)]; 
    6351        [checkBox_statusWindowHideInBackground setLocalizedString:AILocalizedString(@"Hide the status window when Adium is not active", nil)]; 
    6452        [checkBox_statusWindowAlwaysOnTop setLocalizedString:AILocalizedString(@"Show the status window above other windows", nil)]; 
    6553         
    66         prefDict = [[adium preferenceController] preferencesForGroup:PREF_GROUP_STATUS_MENU_ITEM]; 
    67         [checkBox_statusMenuItemBadge setState:[[prefDict objectForKey:KEY_STATUS_MENU_ITEM_BADGE] boolValue]]; 
    68         [checkBox_statusMenuItemFlash setState:[[prefDict objectForKey:KEY_STATUS_MENU_ITEM_FLASH] boolValue]]; 
    69          
    7054        [label_statusMenuItem setLocalizedString:AILocalizedString(@"Status Menu Item", nil)]; 
    7155        [checkBox_statusMenuItemBadge setLocalizedString:AILocalizedString(@"Badge the menu item with current status", nil)]; 
    7256        [checkBox_statusMenuItemFlash setLocalizedString:AILocalizedString(@"Flash when there are unread messages", nil)]; 
     57         
     58        [label_quitConfirmation setLocalizedString:AILocalizedString(@"Quit Confirmation", @"Preference")]; 
     59        [checkBox_quitConfirmFT setLocalizedString:AILocalizedString(@"When file transfers are in progress", @"Quit Confirmation preference")]; 
     60        [checkBox_quitConfirmUnread setLocalizedString:AILocalizedString(@"When there are unread messages", @"Quit Confirmation preference")]; 
     61         
     62        [label_quitConfirmationSentence setLocalizedString:AILocalizedString(@"When quitting Adium:", nil)]; 
     63        [[matrix_quitConfirmation cellWithTag:AIQuitConfirmNever] setTitle:AILocalizedString(@"Never confirm",@"Quit Confirmation preference")]; 
     64        [[matrix_quitConfirmation cellWithTag:AIQuitConfirmAlways] setTitle:AILocalizedString(@"Always confirm",@"Quit Confirmation preference")]; 
     65        [[matrix_quitConfirmation cellWithTag:AIQuitConfirmSelective] setTitle:AILocalizedString(@"Sometimes confirm",@"Quit Confirmation preference")]; 
     66         
     67        [self configureControlDimming]; 
    7368         
    7469        [super viewDidLoad];