123 |
123 |
124 self.__helpViewer = helpViewer |
124 self.__helpViewer = helpViewer |
125 |
125 |
126 if helpViewer is None: |
126 if helpViewer is None: |
127 # let the plugin manager create on demand plugin objects |
127 # let the plugin manager create on demand plugin objects |
128 pm = e5App().getObject("PluginManager") |
128 pm = ericApp().getObject("PluginManager") |
129 pm.initOnDemandPlugins() |
129 pm.initOnDemandPlugins() |
130 |
130 |
131 # populate the various lists |
131 # populate the various lists |
132 self.projectItem = self.__generateCategoryItem(self.tr("Project")) |
132 self.projectItem = self.__generateCategoryItem(self.tr("Project")) |
133 for act in e5App().getObject("Project").getActions(): |
133 for act in ericApp().getObject("Project").getActions(): |
134 self.__generateShortcutItem(self.projectItem, act) |
134 self.__generateShortcutItem(self.projectItem, act) |
135 |
135 |
136 self.uiItem = self.__generateCategoryItem(self.tr("General")) |
136 self.uiItem = self.__generateCategoryItem(self.tr("General")) |
137 for act in e5App().getObject("UserInterface").getActions('ui'): |
137 for act in ericApp().getObject("UserInterface").getActions('ui'): |
138 self.__generateShortcutItem(self.uiItem, act) |
138 self.__generateShortcutItem(self.uiItem, act) |
139 |
139 |
140 self.wizardsItem = self.__generateCategoryItem(self.tr("Wizards")) |
140 self.wizardsItem = self.__generateCategoryItem(self.tr("Wizards")) |
141 for act in ( |
141 for act in ( |
142 e5App().getObject("UserInterface").getActions('wizards') |
142 ericApp().getObject("UserInterface").getActions('wizards') |
143 ): |
143 ): |
144 self.__generateShortcutItem(self.wizardsItem, act) |
144 self.__generateShortcutItem(self.wizardsItem, act) |
145 |
145 |
146 self.debugItem = self.__generateCategoryItem(self.tr("Debug")) |
146 self.debugItem = self.__generateCategoryItem(self.tr("Debug")) |
147 for act in e5App().getObject("DebugUI").getActions(): |
147 for act in ericApp().getObject("DebugUI").getActions(): |
148 self.__generateShortcutItem(self.debugItem, act) |
148 self.__generateShortcutItem(self.debugItem, act) |
149 |
149 |
150 self.editItem = self.__generateCategoryItem(self.tr("Edit")) |
150 self.editItem = self.__generateCategoryItem(self.tr("Edit")) |
151 for act in e5App().getObject("ViewManager").getActions('edit'): |
151 for act in ericApp().getObject("ViewManager").getActions('edit'): |
152 self.__generateShortcutItem(self.editItem, act) |
152 self.__generateShortcutItem(self.editItem, act) |
153 |
153 |
154 self.fileItem = self.__generateCategoryItem(self.tr("File")) |
154 self.fileItem = self.__generateCategoryItem(self.tr("File")) |
155 for act in e5App().getObject("ViewManager").getActions('file'): |
155 for act in ericApp().getObject("ViewManager").getActions('file'): |
156 self.__generateShortcutItem(self.fileItem, act) |
156 self.__generateShortcutItem(self.fileItem, act) |
157 |
157 |
158 self.searchItem = self.__generateCategoryItem(self.tr("Search")) |
158 self.searchItem = self.__generateCategoryItem(self.tr("Search")) |
159 for act in e5App().getObject("ViewManager").getActions('search'): |
159 for act in ericApp().getObject("ViewManager").getActions('search'): |
160 self.__generateShortcutItem(self.searchItem, act) |
160 self.__generateShortcutItem(self.searchItem, act) |
161 |
161 |
162 self.viewItem = self.__generateCategoryItem(self.tr("View")) |
162 self.viewItem = self.__generateCategoryItem(self.tr("View")) |
163 for act in e5App().getObject("ViewManager").getActions('view'): |
163 for act in ericApp().getObject("ViewManager").getActions('view'): |
164 self.__generateShortcutItem(self.viewItem, act) |
164 self.__generateShortcutItem(self.viewItem, act) |
165 |
165 |
166 self.macroItem = self.__generateCategoryItem(self.tr("Macro")) |
166 self.macroItem = self.__generateCategoryItem(self.tr("Macro")) |
167 for act in e5App().getObject("ViewManager").getActions('macro'): |
167 for act in ericApp().getObject("ViewManager").getActions('macro'): |
168 self.__generateShortcutItem(self.macroItem, act) |
168 self.__generateShortcutItem(self.macroItem, act) |
169 |
169 |
170 self.bookmarkItem = self.__generateCategoryItem( |
170 self.bookmarkItem = self.__generateCategoryItem( |
171 self.tr("Bookmarks")) |
171 self.tr("Bookmarks")) |
172 for act in e5App().getObject("ViewManager").getActions('bookmark'): |
172 for act in ericApp().getObject("ViewManager").getActions('bookmark'): |
173 self.__generateShortcutItem(self.bookmarkItem, act) |
173 self.__generateShortcutItem(self.bookmarkItem, act) |
174 |
174 |
175 self.spellingItem = self.__generateCategoryItem( |
175 self.spellingItem = self.__generateCategoryItem( |
176 self.tr("Spelling")) |
176 self.tr("Spelling")) |
177 for act in e5App().getObject("ViewManager").getActions('spelling'): |
177 for act in ericApp().getObject("ViewManager").getActions('spelling'): |
178 self.__generateShortcutItem(self.spellingItem, act) |
178 self.__generateShortcutItem(self.spellingItem, act) |
179 |
179 |
180 actions = e5App().getObject("ViewManager").getActions('window') |
180 actions = ericApp().getObject("ViewManager").getActions('window') |
181 if actions: |
181 if actions: |
182 self.windowItem = self.__generateCategoryItem( |
182 self.windowItem = self.__generateCategoryItem( |
183 self.tr("Window")) |
183 self.tr("Window")) |
184 for act in actions: |
184 for act in actions: |
185 self.__generateShortcutItem(self.windowItem, act) |
185 self.__generateShortcutItem(self.windowItem, act) |
186 |
186 |
187 self.pluginCategoryItems = [] |
187 self.pluginCategoryItems = [] |
188 for category, ref in e5App().getPluginObjects(): |
188 for category, ref in ericApp().getPluginObjects(): |
189 if hasattr(ref, "getActions"): |
189 if hasattr(ref, "getActions"): |
190 categoryItem = self.__generateCategoryItem(category) |
190 categoryItem = self.__generateCategoryItem(category) |
191 objectType = e5App().getPluginObjectType(category) |
191 objectType = ericApp().getPluginObjectType(category) |
192 for act in ref.getActions(): |
192 for act in ref.getActions(): |
193 self.__generateShortcutItem(categoryItem, act, |
193 self.__generateShortcutItem(categoryItem, act, |
194 objectType=objectType) |
194 objectType=objectType) |
195 self.pluginCategoryItems.append(categoryItem) |
195 self.pluginCategoryItems.append(categoryItem) |
196 |
196 |
343 if not itmseq: |
343 if not itmseq: |
344 continue |
344 continue |
345 |
345 |
346 # step 2: check if shortcut hides an already allocated |
346 # step 2: check if shortcut hides an already allocated |
347 if itmseq.startswith("{0}+".format(keystr)): |
347 if itmseq.startswith("{0}+".format(keystr)): |
348 res = E5MessageBox.yesNo( |
348 res = EricMessageBox.yesNo( |
349 self, |
349 self, |
350 self.tr("Edit shortcuts"), |
350 self.tr("Edit shortcuts"), |
351 self.tr( |
351 self.tr( |
352 """<p><b>{0}</b> hides the <b>{1}</b>""" |
352 """<p><b>{0}</b> hides the <b>{1}</b>""" |
353 """ action. Remove this binding?</p>""") |
353 """ action. Remove this binding?</p>""") |
354 .format(keystr, itm.text(0)), |
354 .format(keystr, itm.text(0)), |
355 icon=E5MessageBox.Warning) |
355 icon=EricMessageBox.Warning) |
356 if res: |
356 if res: |
357 itm.setText(col, "") |
357 itm.setText(col, "") |
358 return True |
358 return True |
359 else: |
359 else: |
360 return False |
360 return False |
361 |
361 |
362 # step 3: check if shortcut is hidden by an |
362 # step 3: check if shortcut is hidden by an |
363 # already allocated |
363 # already allocated |
364 if keystr.startswith("{0}+".format(itmseq)): |
364 if keystr.startswith("{0}+".format(itmseq)): |
365 res = E5MessageBox.yesNo( |
365 res = EricMessageBox.yesNo( |
366 self, |
366 self, |
367 self.tr("Edit shortcuts"), |
367 self.tr("Edit shortcuts"), |
368 self.tr( |
368 self.tr( |
369 """<p><b>{0}</b> is hidden by the """ |
369 """<p><b>{0}</b> is hidden by the """ |
370 """<b>{1}</b> action. """ |
370 """<b>{1}</b> action. """ |
371 """Remove this binding?</p>""") |
371 """Remove this binding?</p>""") |
372 .format(keystr, itm.text(0)), |
372 .format(keystr, itm.text(0)), |
373 icon=E5MessageBox.Warning) |
373 icon=EricMessageBox.Warning) |
374 if res: |
374 if res: |
375 itm.setText(col, "") |
375 itm.setText(col, "") |
376 return True |
376 return True |
377 else: |
377 else: |
378 return False |
378 return False |
401 Private slot to handle the OK button press. |
401 Private slot to handle the OK button press. |
402 """ |
402 """ |
403 if self.__helpViewer is None: |
403 if self.__helpViewer is None: |
404 self.__saveCategoryActions( |
404 self.__saveCategoryActions( |
405 self.projectItem, |
405 self.projectItem, |
406 e5App().getObject("Project").getActions()) |
406 ericApp().getObject("Project").getActions()) |
407 self.__saveCategoryActions( |
407 self.__saveCategoryActions( |
408 self.uiItem, |
408 self.uiItem, |
409 e5App().getObject("UserInterface").getActions('ui')) |
409 ericApp().getObject("UserInterface").getActions('ui')) |
410 self.__saveCategoryActions( |
410 self.__saveCategoryActions( |
411 self.wizardsItem, |
411 self.wizardsItem, |
412 e5App().getObject("UserInterface").getActions('wizards')) |
412 ericApp().getObject("UserInterface").getActions('wizards')) |
413 self.__saveCategoryActions( |
413 self.__saveCategoryActions( |
414 self.debugItem, |
414 self.debugItem, |
415 e5App().getObject("DebugUI").getActions()) |
415 ericApp().getObject("DebugUI").getActions()) |
416 self.__saveCategoryActions( |
416 self.__saveCategoryActions( |
417 self.editItem, |
417 self.editItem, |
418 e5App().getObject("ViewManager").getActions('edit')) |
418 ericApp().getObject("ViewManager").getActions('edit')) |
419 self.__saveCategoryActions( |
419 self.__saveCategoryActions( |
420 self.fileItem, |
420 self.fileItem, |
421 e5App().getObject("ViewManager").getActions('file')) |
421 ericApp().getObject("ViewManager").getActions('file')) |
422 self.__saveCategoryActions( |
422 self.__saveCategoryActions( |
423 self.searchItem, |
423 self.searchItem, |
424 e5App().getObject("ViewManager").getActions('search')) |
424 ericApp().getObject("ViewManager").getActions('search')) |
425 self.__saveCategoryActions( |
425 self.__saveCategoryActions( |
426 self.viewItem, |
426 self.viewItem, |
427 e5App().getObject("ViewManager").getActions('view')) |
427 ericApp().getObject("ViewManager").getActions('view')) |
428 self.__saveCategoryActions( |
428 self.__saveCategoryActions( |
429 self.macroItem, |
429 self.macroItem, |
430 e5App().getObject("ViewManager").getActions('macro')) |
430 ericApp().getObject("ViewManager").getActions('macro')) |
431 self.__saveCategoryActions( |
431 self.__saveCategoryActions( |
432 self.bookmarkItem, |
432 self.bookmarkItem, |
433 e5App().getObject("ViewManager").getActions('bookmark')) |
433 ericApp().getObject("ViewManager").getActions('bookmark')) |
434 self.__saveCategoryActions( |
434 self.__saveCategoryActions( |
435 self.spellingItem, |
435 self.spellingItem, |
436 e5App().getObject("ViewManager").getActions('spelling')) |
436 ericApp().getObject("ViewManager").getActions('spelling')) |
437 |
437 |
438 actions = e5App().getObject("ViewManager").getActions('window') |
438 actions = ericApp().getObject("ViewManager").getActions('window') |
439 if actions: |
439 if actions: |
440 self.__saveCategoryActions(self.windowItem, actions) |
440 self.__saveCategoryActions(self.windowItem, actions) |
441 |
441 |
442 for categoryItem in self.pluginCategoryItems: |
442 for categoryItem in self.pluginCategoryItems: |
443 category = categoryItem.text(0) |
443 category = categoryItem.text(0) |
444 ref = e5App().getPluginObject(category) |
444 ref = ericApp().getPluginObject(category) |
445 if ref is not None and hasattr(ref, "getActions"): |
445 if ref is not None and hasattr(ref, "getActions"): |
446 self.__saveCategoryActions(categoryItem, ref.getActions()) |
446 self.__saveCategoryActions(categoryItem, ref.getActions()) |
447 |
447 |
448 Shortcuts.saveShortcuts() |
448 Shortcuts.saveShortcuts() |
449 |
449 |