Fixed the off-by-two error in the displays pop-ups on the Applications tab (#251376).
Among the changes:
1. We no longer use Bindings to populate the pop-up menus. Instead, we populate them ourselves.
2. Likewise, we no longer use Bindings to set the pop-up menus' selections, and the pop-up menus do not talk directly to the relevant array controllers. Instead, the pop-ups send action messages to the preference pane, and each action method changes the application's or notification's display setting.
3. The Configure button and table view double-click action now both go through the same method.
4. The action method for activating the Applications tab (see #3) repopulates the displays pop-ups and updates their selections.
5. We now identify the selected display by its bundle name (in the representedObject property of the menu item), instead of by its index.
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">
9 <string>NotificationsArrayController</string>
13 <string>NSArrayController</string>
17 <string>NSObject</string>
28 <string>TicketsArrayController</string>
32 <string>NSArrayController</string>
36 <string>GrowlPositionPicker</string>
41 <key>preferencePane</key>
42 <string>GrowlPreferencePane</string>
45 <string>NSView</string>
49 <string>RRTableView</string>
53 <string>NSTableView</string>
57 <string>NSWindow</string>
61 <string>NSResponder</string>
66 <key>changeNameOfDisplayForApplication</key>
68 <key>changeNameOfDisplayForNotification</key>
70 <key>checkVersion</key>
72 <key>deleteTicket</key>
74 <key>endDisabledDisplays</key>
76 <key>openGrowlBugSubmissionPage</key>
78 <key>openGrowlDonate</key>
80 <key>openGrowlForum</key>
82 <key>openGrowlTrac</key>
84 <key>openGrowlWebSite</key>
88 <key>resolveService</key>
90 <key>showApplicationConfigurationTab</key>
92 <key>showDisabledDisplays</key>
94 <key>showPreview</key>
96 <key>startStopGrowl</key>
100 <string>GrowlPreferencePane</string>
102 <string>ObjC</string>
105 <key>aboutBoxTextView</key>
106 <string>NSTextView</string>
107 <key>aboutVersionString</key>
108 <string>NSTextField</string>
109 <key>appPositionPicker</key>
110 <string>GrowlPositionPicker</string>
111 <key>applicationNameAndIconColumn</key>
112 <string>NSTableColumn</string>
113 <key>applicationsTab</key>
114 <string>NSTabView</string>
115 <key>configurationTab</key>
116 <string>NSTabView</string>
117 <key>customMenuButton</key>
118 <string>NSPopUpButton</string>
119 <key>disabledDisplaysList</key>
120 <string>NSTextView</string>
121 <key>disabledDisplaysSheet</key>
122 <string>NSWindow</string>
123 <key>displayAuthor</key>
124 <string>NSTextField</string>
125 <key>displayDefaultPrefView</key>
126 <string>NSView</string>
127 <key>displayMenuButton</key>
128 <string>NSPopUpButton</string>
129 <key>displayPluginsArrayController</key>
130 <string>NSArrayController</string>
131 <key>displayPluginsTable</key>
132 <string>NSTableView</string>
133 <key>displayPrefView</key>
134 <string>NSView</string>
135 <key>displayVersion</key>
136 <string>NSTextField</string>
137 <key>globalPositionPicker</key>
138 <string>GrowlPositionPicker</string>
139 <key>growlApplications</key>
140 <string>NSTableView</string>
141 <key>growlRunningProgress</key>
142 <string>NSProgressIndicator</string>
143 <key>growlRunningStatus</key>
144 <string>NSTextField</string>
145 <key>growlVersionProgress</key>
146 <string>NSProgressIndicator</string>
147 <key>logFileType</key>
148 <string>NSMatrix</string>
149 <key>networkTableView</key>
150 <string>NSTableView</string>
151 <key>notificationDisplayMenuButton</key>
152 <string>NSPopUpButton</string>
153 <key>notificationPriorityMenu</key>
154 <string>NSMenu</string>
155 <key>notificationsArrayController</key>
156 <string>NSArrayController</string>
157 <key>previewButton</key>
158 <string>NSButton</string>
159 <key>servicePasswordColumn</key>
160 <string>NSTableColumn</string>
161 <key>servicesArrayController</key>
162 <string>NSArrayController</string>
163 <key>soundMenuButton</key>
164 <string>NSPopUpButton</string>
165 <key>startStopGrowl</key>
166 <string>NSButton</string>
167 <key>ticketsArrayController</key>
168 <string>TicketsArrayController</string>
170 <key>SUPERCLASS</key>
171 <string>NSPreferencePane</string>
175 <string>NSView</string>
177 <string>ObjC</string>
178 <key>SUPERCLASS</key>
179 <string>NSResponder</string>
183 <string>FirstResponder</string>
185 <string>ObjC</string>
186 <key>SUPERCLASS</key>
187 <string>NSObject</string>
191 <string>NSPreferencePane</string>
193 <string>ObjC</string>
196 <key>_firstKeyView</key>
198 <key>_initialKeyView</key>
200 <key>_lastKeyView</key>
205 <key>SUPERCLASS</key>
206 <string>NSObject</string>