8 """ |
8 """ |
9 |
9 |
10 |
10 |
11 from PyQt5.QtCore import pyqtSlot, Qt |
11 from PyQt5.QtCore import pyqtSlot, Qt |
12 from PyQt5.QtGui import QColor |
12 from PyQt5.QtGui import QColor |
13 from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QTreeWidgetItem, \ |
13 from PyQt5.QtWidgets import ( |
14 QInputDialog, QLineEdit, QListWidgetItem, QAbstractButton |
14 QDialog, QDialogButtonBox, QTreeWidgetItem, QInputDialog, QLineEdit, |
|
15 QListWidgetItem, QAbstractButton |
|
16 ) |
15 |
17 |
16 from E5Gui import E5MessageBox |
18 from E5Gui import E5MessageBox |
17 |
19 |
18 from .Ui_E5ToolBarDialog import Ui_E5ToolBarDialog |
20 from .Ui_E5ToolBarDialog import Ui_E5ToolBarDialog |
19 |
21 |
73 self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow.png")) |
75 self.upButton.setIcon(UI.PixmapCache.getIcon("1uparrow.png")) |
74 self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow.png")) |
76 self.downButton.setIcon(UI.PixmapCache.getIcon("1downarrow.png")) |
75 self.leftButton.setIcon(UI.PixmapCache.getIcon("1leftarrow.png")) |
77 self.leftButton.setIcon(UI.PixmapCache.getIcon("1leftarrow.png")) |
76 self.rightButton.setIcon(UI.PixmapCache.getIcon("1rightarrow.png")) |
78 self.rightButton.setIcon(UI.PixmapCache.getIcon("1rightarrow.png")) |
77 |
79 |
78 self.__restoreDefaultsButton = \ |
80 self.__restoreDefaultsButton = self.buttonBox.button( |
79 self.buttonBox.button(QDialogButtonBox.RestoreDefaults) |
81 QDialogButtonBox.RestoreDefaults) |
80 self.__resetButton = self.buttonBox.button(QDialogButtonBox.Reset) |
82 self.__resetButton = self.buttonBox.button(QDialogButtonBox.Reset) |
81 |
83 |
82 self.actionsTree.header().hide() |
84 self.actionsTree.header().hide() |
83 self.__separatorText = self.tr("--Separator--") |
85 self.__separatorText = self.tr("--Separator--") |
84 itm = QTreeWidgetItem(self.actionsTree, [self.__separatorText]) |
86 itm = QTreeWidgetItem(self.actionsTree, [self.__separatorText]) |
112 else: |
114 else: |
113 aID = id(action) |
115 aID = id(action) |
114 actionIDs.append(aID) |
116 actionIDs.append(aID) |
115 if aID in self.__widgetActionToToolBarItemID: |
117 if aID in self.__widgetActionToToolBarItemID: |
116 self.__widgetActionToToolBarItemID[aID] = id(tbItem) |
118 self.__widgetActionToToolBarItemID[aID] = id(tbItem) |
117 self.__toolBarItemToWidgetActionID[id(tbItem)]\ |
119 self.__toolBarItemToWidgetActionID[id(tbItem)].append( |
118 .append(aID) |
120 aID) |
119 tbItem.actionIDs = actionIDs |
121 tbItem.actionIDs = actionIDs |
120 self.toolbarComboBox.addItem(tb.windowTitle(), int(id(tbItem))) |
122 self.toolbarComboBox.addItem(tb.windowTitle(), int(id(tbItem))) |
121 if default: |
123 if default: |
122 self.toolbarComboBox.setItemData( |
124 self.toolbarComboBox.setItemData( |
123 self.toolbarComboBox.count() - 1, |
125 self.toolbarComboBox.count() - 1, |
174 .format(name)) |
176 .format(name)) |
175 if res: |
177 if res: |
176 index = self.toolbarComboBox.currentIndex() |
178 index = self.toolbarComboBox.currentIndex() |
177 tbItemID = self.toolbarComboBox.itemData(index) |
179 tbItemID = self.toolbarComboBox.itemData(index) |
178 tbItem = self.__toolbarItems[tbItemID] |
180 tbItem = self.__toolbarItems[tbItemID] |
179 if tbItem.toolBarId is not None and \ |
181 if ( |
180 tbItem.toolBarId not in self.__removedToolBarIDs: |
182 tbItem.toolBarId is not None and |
|
183 tbItem.toolBarId not in self.__removedToolBarIDs |
|
184 ): |
181 self.__removedToolBarIDs.append(tbItem.toolBarId) |
185 self.__removedToolBarIDs.append(tbItem.toolBarId) |
182 del self.__toolbarItems[tbItemID] |
186 del self.__toolbarItems[tbItemID] |
183 for widgetActionID in self.__toolBarItemToWidgetActionID[tbItemID]: |
187 for widgetActionID in self.__toolBarItemToWidgetActionID[tbItemID]: |
184 self.__widgetActionToToolBarItemID[widgetActionID] = None |
188 self.__widgetActionToToolBarItemID[widgetActionID] = None |
185 del self.__toolBarItemToWidgetActionID[tbItemID] |
189 del self.__toolBarItemToWidgetActionID[tbItemID] |
210 """ exists.""") |
214 """ exists.""") |
211 .format(newName)) |
215 .format(newName)) |
212 return |
216 return |
213 index = self.toolbarComboBox.currentIndex() |
217 index = self.toolbarComboBox.currentIndex() |
214 self.toolbarComboBox.setItemText(index, newName) |
218 self.toolbarComboBox.setItemText(index, newName) |
215 tbItem = \ |
219 tbItem = self.__toolbarItems[self.toolbarComboBox.itemData(index)] |
216 self.__toolbarItems[self.toolbarComboBox.itemData(index)] |
|
217 tbItem.title = newName |
220 tbItem.title = newName |
218 tbItem.isChanged = True |
221 tbItem.isChanged = True |
219 |
222 |
220 def __setupButtons(self): |
223 def __setupButtons(self): |
221 """ |
224 """ |
236 |
239 |
237 row = self.toolbarActionsList.currentRow() |
240 row = self.toolbarActionsList.currentRow() |
238 self.upButton.setEnabled(row > 0) |
241 self.upButton.setEnabled(row > 0) |
239 self.downButton.setEnabled(row < self.toolbarActionsList.count() - 1) |
242 self.downButton.setEnabled(row < self.toolbarActionsList.count() - 1) |
240 self.leftButton.setEnabled(self.toolbarActionsList.count() > 0) |
243 self.leftButton.setEnabled(self.toolbarActionsList.count() > 0) |
241 rightEnable = self.actionsTree.currentItem().parent() is not None or \ |
244 rightEnable = ( |
|
245 self.actionsTree.currentItem().parent() is not None or |
242 self.actionsTree.currentItem().text(0) == self.__separatorText |
246 self.actionsTree.currentItem().text(0) == self.__separatorText |
|
247 ) |
243 self.rightButton.setEnabled(rightEnable) |
248 self.rightButton.setEnabled(rightEnable) |
244 |
249 |
245 @pyqtSlot(int) |
250 @pyqtSlot(int) |
246 def __toolbarComboBox_currentIndexChanged(self, index): |
251 def __toolbarComboBox_currentIndexChanged(self, index): |
247 """ |
252 """ |
336 row = self.toolbarActionsList.currentRow() |
341 row = self.toolbarActionsList.currentRow() |
337 actionID = self.__currentToolBarItem.actionIDs.pop(row) |
342 actionID = self.__currentToolBarItem.actionIDs.pop(row) |
338 self.__currentToolBarItem.isChanged = True |
343 self.__currentToolBarItem.isChanged = True |
339 if actionID in self.__widgetActionToToolBarItemID: |
344 if actionID in self.__widgetActionToToolBarItemID: |
340 self.__widgetActionToToolBarItemID[actionID] = None |
345 self.__widgetActionToToolBarItemID[actionID] = None |
341 self.__toolBarItemToWidgetActionID[id(self.__currentToolBarItem)]\ |
346 self.__toolBarItemToWidgetActionID[ |
342 .remove(actionID) |
347 id(self.__currentToolBarItem)].remove(actionID) |
343 itm = self.toolbarActionsList.takeItem(row) |
348 itm = self.toolbarActionsList.takeItem(row) |
344 del itm |
349 del itm |
345 self.toolbarActionsList.setCurrentRow(row) |
350 self.toolbarActionsList.setCurrentRow(row) |
346 self.__setupButtons() |
351 self.__setupButtons() |
347 |
352 |
355 item = QListWidgetItem() |
360 item = QListWidgetItem() |
356 if self.actionsTree.currentItem().text(0) == self.__separatorText: |
361 if self.actionsTree.currentItem().text(0) == self.__separatorText: |
357 item.setText(self.__separatorText) |
362 item.setText(self.__separatorText) |
358 actionID = None |
363 actionID = None |
359 else: |
364 else: |
360 actionID = self.actionsTree.currentItem()\ |
365 actionID = self.actionsTree.currentItem().data( |
361 .data(0, E5ToolBarDialog.ActionIdRole) |
366 0, E5ToolBarDialog.ActionIdRole) |
362 action = self.__manager.actionById(actionID) |
367 action = self.__manager.actionById(actionID) |
363 item.setText(action.text()) |
368 item.setText(action.text()) |
364 item.setIcon(action.icon()) |
369 item.setIcon(action.icon()) |
365 item.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) |
370 item.setTextAlignment(Qt.AlignLeft | Qt.AlignVCenter) |
366 item.setData(E5ToolBarDialog.ActionIdRole, int(id(action))) |
371 item.setData(E5ToolBarDialog.ActionIdRole, int(id(action))) |
370 item.setData(Qt.TextColorRole, QColor(Qt.blue)) |
375 item.setData(Qt.TextColorRole, QColor(Qt.blue)) |
371 oldTbItemID = self.__widgetActionToToolBarItemID[actionID] |
376 oldTbItemID = self.__widgetActionToToolBarItemID[actionID] |
372 if oldTbItemID is not None: |
377 if oldTbItemID is not None: |
373 self.__toolbarItems[oldTbItemID].actionIDs.remove(actionID) |
378 self.__toolbarItems[oldTbItemID].actionIDs.remove(actionID) |
374 self.__toolbarItems[oldTbItemID].isChanged = True |
379 self.__toolbarItems[oldTbItemID].isChanged = True |
375 self.__toolBarItemToWidgetActionID[oldTbItemID]\ |
380 self.__toolBarItemToWidgetActionID[oldTbItemID].remove( |
376 .remove(actionID) |
381 actionID) |
377 self.__widgetActionToToolBarItemID[actionID] = \ |
382 self.__widgetActionToToolBarItemID[actionID] = id( |
378 id(self.__currentToolBarItem) |
383 self.__currentToolBarItem) |
379 self.__toolBarItemToWidgetActionID[ |
384 self.__toolBarItemToWidgetActionID[ |
380 id(self.__currentToolBarItem)].append(actionID) |
385 id(self.__currentToolBarItem)].append(actionID) |
381 self.toolbarActionsList.insertItem(row, item) |
386 self.toolbarActionsList.insertItem(row, item) |
382 self.__currentToolBarItem.actionIDs.insert(row, actionID) |
387 self.__currentToolBarItem.actionIDs.insert(row, actionID) |
383 self.__currentToolBarItem.isChanged = True |
388 self.__currentToolBarItem.isChanged = True |