109 if objectType: |
107 if objectType: |
110 itm.setData(0, self.objectTypeRole, objectType) |
108 itm.setData(0, self.objectTypeRole, objectType) |
111 else: |
109 else: |
112 itm.setData(0, self.objectTypeRole, None) |
110 itm.setData(0, self.objectTypeRole, None) |
113 |
111 |
114 def populate(self): |
112 def populate(self, helpViewer=None): |
115 """ |
113 """ |
116 Public method to populate the dialog. |
114 Public method to populate the dialog. |
|
115 |
|
116 @param helpViewer reference to the help window object |
117 """ |
117 """ |
118 self.searchEdit.clear() |
118 self.searchEdit.clear() |
119 self.searchEdit.setFocus() |
119 self.searchEdit.setFocus() |
120 self.shortcutsList.clear() |
120 self.shortcutsList.clear() |
121 self.actionButton.setChecked(True) |
121 self.actionButton.setChecked(True) |
122 |
122 |
123 # let the plugin manager create on demand plugin objects |
123 self.__helpViewer = helpViewer |
124 pm = e5App().getObject("PluginManager") |
124 |
125 pm.initOnDemandPlugins() |
125 if helpViewer is None: |
126 |
126 # let the plugin manager create on demand plugin objects |
127 # populate the various lists |
127 pm = e5App().getObject("PluginManager") |
128 self.projectItem = self.__generateCategoryItem(self.tr("Project")) |
128 pm.initOnDemandPlugins() |
129 for act in e5App().getObject("Project").getActions(): |
129 |
130 self.__generateShortcutItem(self.projectItem, act) |
130 # populate the various lists |
131 |
131 self.projectItem = self.__generateCategoryItem(self.tr("Project")) |
132 self.uiItem = self.__generateCategoryItem(self.tr("General")) |
132 for act in e5App().getObject("Project").getActions(): |
133 for act in e5App().getObject("UserInterface").getActions('ui'): |
133 self.__generateShortcutItem(self.projectItem, act) |
134 self.__generateShortcutItem(self.uiItem, act) |
134 |
135 |
135 self.uiItem = self.__generateCategoryItem(self.tr("General")) |
136 self.wizardsItem = self.__generateCategoryItem(self.tr("Wizards")) |
136 for act in e5App().getObject("UserInterface").getActions('ui'): |
137 for act in e5App().getObject("UserInterface").getActions('wizards'): |
137 self.__generateShortcutItem(self.uiItem, act) |
138 self.__generateShortcutItem(self.wizardsItem, act) |
138 |
139 |
139 self.wizardsItem = self.__generateCategoryItem(self.tr("Wizards")) |
140 self.debugItem = self.__generateCategoryItem(self.tr("Debug")) |
140 for act in e5App().getObject("UserInterface")\ |
141 for act in e5App().getObject("DebugUI").getActions(): |
141 .getActions('wizards'): |
142 self.__generateShortcutItem(self.debugItem, act) |
142 self.__generateShortcutItem(self.wizardsItem, act) |
143 |
143 |
144 self.editItem = self.__generateCategoryItem(self.tr("Edit")) |
144 self.debugItem = self.__generateCategoryItem(self.tr("Debug")) |
145 for act in e5App().getObject("ViewManager").getActions('edit'): |
145 for act in e5App().getObject("DebugUI").getActions(): |
146 self.__generateShortcutItem(self.editItem, act) |
146 self.__generateShortcutItem(self.debugItem, act) |
147 |
147 |
148 self.fileItem = self.__generateCategoryItem(self.tr("File")) |
148 self.editItem = self.__generateCategoryItem(self.tr("Edit")) |
149 for act in e5App().getObject("ViewManager").getActions('file'): |
149 for act in e5App().getObject("ViewManager").getActions('edit'): |
150 self.__generateShortcutItem(self.fileItem, act) |
150 self.__generateShortcutItem(self.editItem, act) |
151 |
151 |
152 self.searchItem = self.__generateCategoryItem(self.tr("Search")) |
152 self.fileItem = self.__generateCategoryItem(self.tr("File")) |
153 for act in e5App().getObject("ViewManager").getActions('search'): |
153 for act in e5App().getObject("ViewManager").getActions('file'): |
154 self.__generateShortcutItem(self.searchItem, act) |
154 self.__generateShortcutItem(self.fileItem, act) |
155 |
155 |
156 self.viewItem = self.__generateCategoryItem(self.tr("View")) |
156 self.searchItem = self.__generateCategoryItem(self.tr("Search")) |
157 for act in e5App().getObject("ViewManager").getActions('view'): |
157 for act in e5App().getObject("ViewManager").getActions('search'): |
158 self.__generateShortcutItem(self.viewItem, act) |
158 self.__generateShortcutItem(self.searchItem, act) |
159 |
159 |
160 self.macroItem = self.__generateCategoryItem(self.tr("Macro")) |
160 self.viewItem = self.__generateCategoryItem(self.tr("View")) |
161 for act in e5App().getObject("ViewManager").getActions('macro'): |
161 for act in e5App().getObject("ViewManager").getActions('view'): |
162 self.__generateShortcutItem(self.macroItem, act) |
162 self.__generateShortcutItem(self.viewItem, act) |
163 |
163 |
164 self.bookmarkItem = self.__generateCategoryItem( |
164 self.macroItem = self.__generateCategoryItem(self.tr("Macro")) |
165 self.tr("Bookmarks")) |
165 for act in e5App().getObject("ViewManager").getActions('macro'): |
166 for act in e5App().getObject("ViewManager").getActions('bookmark'): |
166 self.__generateShortcutItem(self.macroItem, act) |
167 self.__generateShortcutItem(self.bookmarkItem, act) |
167 |
168 |
168 self.bookmarkItem = self.__generateCategoryItem( |
169 self.spellingItem = self.__generateCategoryItem( |
169 self.tr("Bookmarks")) |
170 self.tr("Spelling")) |
170 for act in e5App().getObject("ViewManager").getActions('bookmark'): |
171 for act in e5App().getObject("ViewManager").getActions('spelling'): |
171 self.__generateShortcutItem(self.bookmarkItem, act) |
172 self.__generateShortcutItem(self.spellingItem, act) |
172 |
173 |
173 self.spellingItem = self.__generateCategoryItem( |
174 actions = e5App().getObject("ViewManager").getActions('window') |
174 self.tr("Spelling")) |
175 if actions: |
175 for act in e5App().getObject("ViewManager").getActions('spelling'): |
176 self.windowItem = self.__generateCategoryItem( |
176 self.__generateShortcutItem(self.spellingItem, act) |
177 self.tr("Window")) |
177 |
178 for act in actions: |
178 actions = e5App().getObject("ViewManager").getActions('window') |
179 self.__generateShortcutItem(self.windowItem, act) |
179 if actions: |
180 |
180 self.windowItem = self.__generateCategoryItem( |
181 self.pluginCategoryItems = [] |
181 self.tr("Window")) |
182 for category, ref in e5App().getPluginObjects(): |
182 for act in actions: |
183 if hasattr(ref, "getActions"): |
183 self.__generateShortcutItem(self.windowItem, act) |
184 categoryItem = self.__generateCategoryItem(category) |
184 |
185 objectType = e5App().getPluginObjectType(category) |
185 self.pluginCategoryItems = [] |
186 for act in ref.getActions(): |
186 for category, ref in e5App().getPluginObjects(): |
187 self.__generateShortcutItem(categoryItem, act, |
187 if hasattr(ref, "getActions"): |
188 objectType=objectType) |
188 categoryItem = self.__generateCategoryItem(category) |
189 self.pluginCategoryItems.append(categoryItem) |
189 objectType = e5App().getPluginObjectType(category) |
190 |
190 for act in ref.getActions(): |
191 try: |
191 self.__generateShortcutItem(categoryItem, act, |
192 dummyHelpViewer = e5App().getObject("DummyHelpViewer") |
192 objectType=objectType) |
|
193 self.pluginCategoryItems.append(categoryItem) |
|
194 |
|
195 try: |
|
196 dummyHelpViewer = e5App().getObject("DummyHelpViewer") |
|
197 self.helpViewerItem = self.__generateCategoryItem( |
|
198 self.tr("eric6 Web Browser")) |
|
199 for act in dummyHelpViewer.getActions(): |
|
200 self.__generateShortcutItem(self.helpViewerItem, act, True) |
|
201 except KeyError: |
|
202 # no QtWebKit available |
|
203 pass |
|
204 |
|
205 else: |
193 self.helpViewerItem = self.__generateCategoryItem( |
206 self.helpViewerItem = self.__generateCategoryItem( |
194 self.tr("eric6 Web Browser")) |
207 self.tr("eric6 Web Browser")) |
195 for act in dummyHelpViewer.getActions(): |
208 for act in helpViewer.getActions(): |
196 self.__generateShortcutItem(self.helpViewerItem, act, True) |
209 self.__generateShortcutItem(self.helpViewerItem, act, True) |
197 except KeyError: |
|
198 # no QtWebKit available |
|
199 pass |
|
200 |
210 |
201 self.__resort() |
211 self.__resort() |
202 self.__resizeColumns() |
212 self.__resizeColumns() |
203 |
213 |
204 self.__editTopItem = None |
214 self.__editTopItem = None |
390 |
400 |
391 def on_buttonBox_accepted(self): |
401 def on_buttonBox_accepted(self): |
392 """ |
402 """ |
393 Private slot to handle the OK button press. |
403 Private slot to handle the OK button press. |
394 """ |
404 """ |
395 self.__saveCategoryActions( |
405 if self.__helpViewer is None: |
396 self.projectItem, |
406 self.__saveCategoryActions( |
397 e5App().getObject("Project").getActions()) |
407 self.projectItem, |
398 self.__saveCategoryActions( |
408 e5App().getObject("Project").getActions()) |
399 self.uiItem, |
409 self.__saveCategoryActions( |
400 e5App().getObject("UserInterface").getActions('ui')) |
410 self.uiItem, |
401 self.__saveCategoryActions( |
411 e5App().getObject("UserInterface").getActions('ui')) |
402 self.wizardsItem, |
412 self.__saveCategoryActions( |
403 e5App().getObject("UserInterface").getActions('wizards')) |
413 self.wizardsItem, |
404 self.__saveCategoryActions( |
414 e5App().getObject("UserInterface").getActions('wizards')) |
405 self.debugItem, |
415 self.__saveCategoryActions( |
406 e5App().getObject("DebugUI").getActions()) |
416 self.debugItem, |
407 self.__saveCategoryActions( |
417 e5App().getObject("DebugUI").getActions()) |
408 self.editItem, |
418 self.__saveCategoryActions( |
409 e5App().getObject("ViewManager").getActions('edit')) |
419 self.editItem, |
410 self.__saveCategoryActions( |
420 e5App().getObject("ViewManager").getActions('edit')) |
411 self.fileItem, |
421 self.__saveCategoryActions( |
412 e5App().getObject("ViewManager").getActions('file')) |
422 self.fileItem, |
413 self.__saveCategoryActions( |
423 e5App().getObject("ViewManager").getActions('file')) |
414 self.searchItem, |
424 self.__saveCategoryActions( |
415 e5App().getObject("ViewManager").getActions('search')) |
425 self.searchItem, |
416 self.__saveCategoryActions( |
426 e5App().getObject("ViewManager").getActions('search')) |
417 self.viewItem, |
427 self.__saveCategoryActions( |
418 e5App().getObject("ViewManager").getActions('view')) |
428 self.viewItem, |
419 self.__saveCategoryActions( |
429 e5App().getObject("ViewManager").getActions('view')) |
420 self.macroItem, |
430 self.__saveCategoryActions( |
421 e5App().getObject("ViewManager").getActions('macro')) |
431 self.macroItem, |
422 self.__saveCategoryActions( |
432 e5App().getObject("ViewManager").getActions('macro')) |
423 self.bookmarkItem, |
433 self.__saveCategoryActions( |
424 e5App().getObject("ViewManager").getActions('bookmark')) |
434 self.bookmarkItem, |
425 self.__saveCategoryActions( |
435 e5App().getObject("ViewManager").getActions('bookmark')) |
426 self.spellingItem, |
436 self.__saveCategoryActions( |
427 e5App().getObject("ViewManager").getActions('spelling')) |
437 self.spellingItem, |
428 |
438 e5App().getObject("ViewManager").getActions('spelling')) |
429 actions = e5App().getObject("ViewManager").getActions('window') |
439 |
430 if actions: |
440 actions = e5App().getObject("ViewManager").getActions('window') |
431 self.__saveCategoryActions(self.windowItem, actions) |
441 if actions: |
432 |
442 self.__saveCategoryActions(self.windowItem, actions) |
433 for categoryItem in self.pluginCategoryItems: |
443 |
434 category = categoryItem.text(0) |
444 for categoryItem in self.pluginCategoryItems: |
435 ref = e5App().getPluginObject(category) |
445 category = categoryItem.text(0) |
436 if ref is not None and hasattr(ref, "getActions"): |
446 ref = e5App().getPluginObject(category) |
437 self.__saveCategoryActions(categoryItem, ref.getActions()) |
447 if ref is not None and hasattr(ref, "getActions"): |
438 |
448 self.__saveCategoryActions(categoryItem, ref.getActions()) |
439 try: |
449 |
440 dummyHelpViewer = e5App().getObject("DummyHelpViewer") |
450 try: |
441 self.__saveCategoryActions( |
451 dummyHelpViewer = e5App().getObject("DummyHelpViewer") |
442 self.helpViewerItem, dummyHelpViewer.getActions()) |
452 self.__saveCategoryActions( |
443 except KeyError: |
453 self.helpViewerItem, dummyHelpViewer.getActions()) |
444 # no QtWebKit available |
454 except KeyError: |
445 pass |
455 # no QtWebKit available |
446 |
456 pass |
447 Shortcuts.saveShortcuts() |
457 |
|
458 Shortcuts.saveShortcuts() |
|
459 |
|
460 else: |
|
461 self.__saveCategoryActions( |
|
462 self.helpViewerItem, self.__helpViewer.getActions()) |
|
463 Shortcuts.saveShortcuts(helpViewer=self.__helpViewer) |
|
464 |
448 Preferences.syncPreferences() |
465 Preferences.syncPreferences() |
449 |
466 |
450 self.updateShortcuts.emit() |
467 self.updateShortcuts.emit() |
451 self.hide() |
468 self.hide() |
452 |
469 |