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 else: |
193 self.helpViewerItem = self.__generateCategoryItem( |
196 self.helpViewerItem = self.__generateCategoryItem( |
194 self.tr("eric6 Web Browser")) |
197 self.tr("eric6 Web Browser")) |
195 for act in dummyHelpViewer.getActions(): |
198 for act in helpViewer.getActions(): |
196 self.__generateShortcutItem(self.helpViewerItem, act, True) |
199 self.__generateShortcutItem(self.helpViewerItem, act, True) |
197 except KeyError: |
|
198 # no QtWebKit available |
|
199 pass |
|
200 |
200 |
201 self.__resort() |
201 self.__resort() |
202 self.__resizeColumns() |
202 self.__resizeColumns() |
203 |
203 |
204 self.__editTopItem = None |
204 self.__editTopItem = None |
390 |
390 |
391 def on_buttonBox_accepted(self): |
391 def on_buttonBox_accepted(self): |
392 """ |
392 """ |
393 Private slot to handle the OK button press. |
393 Private slot to handle the OK button press. |
394 """ |
394 """ |
395 self.__saveCategoryActions( |
395 if self.__helpViewer is None: |
396 self.projectItem, |
396 self.__saveCategoryActions( |
397 e5App().getObject("Project").getActions()) |
397 self.projectItem, |
398 self.__saveCategoryActions( |
398 e5App().getObject("Project").getActions()) |
399 self.uiItem, |
399 self.__saveCategoryActions( |
400 e5App().getObject("UserInterface").getActions('ui')) |
400 self.uiItem, |
401 self.__saveCategoryActions( |
401 e5App().getObject("UserInterface").getActions('ui')) |
402 self.wizardsItem, |
402 self.__saveCategoryActions( |
403 e5App().getObject("UserInterface").getActions('wizards')) |
403 self.wizardsItem, |
404 self.__saveCategoryActions( |
404 e5App().getObject("UserInterface").getActions('wizards')) |
405 self.debugItem, |
405 self.__saveCategoryActions( |
406 e5App().getObject("DebugUI").getActions()) |
406 self.debugItem, |
407 self.__saveCategoryActions( |
407 e5App().getObject("DebugUI").getActions()) |
408 self.editItem, |
408 self.__saveCategoryActions( |
409 e5App().getObject("ViewManager").getActions('edit')) |
409 self.editItem, |
410 self.__saveCategoryActions( |
410 e5App().getObject("ViewManager").getActions('edit')) |
411 self.fileItem, |
411 self.__saveCategoryActions( |
412 e5App().getObject("ViewManager").getActions('file')) |
412 self.fileItem, |
413 self.__saveCategoryActions( |
413 e5App().getObject("ViewManager").getActions('file')) |
414 self.searchItem, |
414 self.__saveCategoryActions( |
415 e5App().getObject("ViewManager").getActions('search')) |
415 self.searchItem, |
416 self.__saveCategoryActions( |
416 e5App().getObject("ViewManager").getActions('search')) |
417 self.viewItem, |
417 self.__saveCategoryActions( |
418 e5App().getObject("ViewManager").getActions('view')) |
418 self.viewItem, |
419 self.__saveCategoryActions( |
419 e5App().getObject("ViewManager").getActions('view')) |
420 self.macroItem, |
420 self.__saveCategoryActions( |
421 e5App().getObject("ViewManager").getActions('macro')) |
421 self.macroItem, |
422 self.__saveCategoryActions( |
422 e5App().getObject("ViewManager").getActions('macro')) |
423 self.bookmarkItem, |
423 self.__saveCategoryActions( |
424 e5App().getObject("ViewManager").getActions('bookmark')) |
424 self.bookmarkItem, |
425 self.__saveCategoryActions( |
425 e5App().getObject("ViewManager").getActions('bookmark')) |
426 self.spellingItem, |
426 self.__saveCategoryActions( |
427 e5App().getObject("ViewManager").getActions('spelling')) |
427 self.spellingItem, |
428 |
428 e5App().getObject("ViewManager").getActions('spelling')) |
429 actions = e5App().getObject("ViewManager").getActions('window') |
429 |
430 if actions: |
430 actions = e5App().getObject("ViewManager").getActions('window') |
431 self.__saveCategoryActions(self.windowItem, actions) |
431 if actions: |
432 |
432 self.__saveCategoryActions(self.windowItem, actions) |
433 for categoryItem in self.pluginCategoryItems: |
433 |
434 category = categoryItem.text(0) |
434 for categoryItem in self.pluginCategoryItems: |
435 ref = e5App().getPluginObject(category) |
435 category = categoryItem.text(0) |
436 if ref is not None and hasattr(ref, "getActions"): |
436 ref = e5App().getPluginObject(category) |
437 self.__saveCategoryActions(categoryItem, ref.getActions()) |
437 if ref is not None and hasattr(ref, "getActions"): |
438 |
438 self.__saveCategoryActions(categoryItem, ref.getActions()) |
439 try: |
439 |
440 dummyHelpViewer = e5App().getObject("DummyHelpViewer") |
440 Shortcuts.saveShortcuts() |
441 self.__saveCategoryActions( |
441 |
442 self.helpViewerItem, dummyHelpViewer.getActions()) |
442 else: |
443 except KeyError: |
443 self.__saveCategoryActions( |
444 # no QtWebKit available |
444 self.helpViewerItem, self.__helpViewer.getActions()) |
445 pass |
445 Shortcuts.saveShortcuts(helpViewer=self.__helpViewer) |
446 |
446 |
447 Shortcuts.saveShortcuts() |
|
448 Preferences.syncPreferences() |
447 Preferences.syncPreferences() |
449 |
448 |
450 self.updateShortcuts.emit() |
449 self.updateShortcuts.emit() |
451 self.hide() |
450 self.hide() |
452 |
451 |