|
17 | 17 | class outlineBasics(QAbstractItemView): |
18 | 18 | def __init__(self, parent=None): |
19 | 19 | self._indexesToOpen = None |
| 20 | + self.menuCustomIcons = None |
20 | 21 |
|
21 | 22 | def getSelection(self): |
22 | 23 | sel = [] |
@@ -112,8 +113,6 @@ def makePopupMenu(self): |
112 | 113 | self.actPaste.triggered.connect(self.paste) |
113 | 114 | menu.addAction(self.actPaste) |
114 | 115 |
|
115 | | - menu.addSeparator() |
116 | | - |
117 | 116 | # Rename / duplicate / remove items |
118 | 117 | self.actDelete = QAction(QIcon.fromTheme("edit-delete"), |
119 | 118 | qApp.translate("outlineBasics", "&Delete"), |
@@ -190,53 +189,50 @@ def makePopupMenu(self): |
190 | 189 | menu.addSeparator() |
191 | 190 |
|
192 | 191 | # Custom icons |
193 | | - self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu) |
194 | | - a = QAction(qApp.translate("outlineBasics", "Restore to default"), self.menuCustomIcons) |
195 | | - a.triggered.connect(lambda: self.setCustomIcon("")) |
196 | | - self.menuCustomIcons.addAction(a) |
197 | | - self.menuCustomIcons.addSeparator() |
198 | | - |
199 | | - txt = QLineEdit() |
200 | | - txt.textChanged.connect(self.filterLstIcons) |
201 | | - txt.setPlaceholderText("Filter icons") |
202 | | - txt.setStyleSheet("background: transparent; border: none;") |
203 | | - act = QWidgetAction(self.menuCustomIcons) |
204 | | - act.setDefaultWidget(txt) |
205 | | - self.menuCustomIcons.addAction(act) |
206 | | - |
207 | | - self.lstIcons = QListWidget() |
208 | | - for i in customIcons(): |
209 | | - item = QListWidgetItem() |
210 | | - item.setIcon(QIcon.fromTheme(i)) |
211 | | - item.setData(Qt.UserRole, i) |
212 | | - item.setToolTip(i) |
213 | | - self.lstIcons.addItem(item) |
214 | | - self.lstIcons.itemClicked.connect(self.setCustomIconFromItem) |
215 | | - self.lstIcons.setViewMode(self.lstIcons.IconMode) |
216 | | - self.lstIcons.setUniformItemSizes(True) |
217 | | - self.lstIcons.setResizeMode(self.lstIcons.Adjust) |
218 | | - self.lstIcons.setMovement(self.lstIcons.Static) |
219 | | - self.lstIcons.setStyleSheet("background: transparent; background: none;") |
220 | | - self.filterLstIcons("") |
221 | | - act = QWidgetAction(self.menuCustomIcons) |
222 | | - act.setDefaultWidget(self.lstIcons) |
223 | | - self.menuCustomIcons.addAction(act) |
224 | | - |
225 | | - menu.addMenu(self.menuCustomIcons) |
| 192 | + if self.menuCustomIcons: |
| 193 | + menu.addMenu(self.menuCustomIcons) |
| 194 | + else: |
| 195 | + self.menuCustomIcons = QMenu(qApp.translate("outlineBasics", "Set Custom Icon"), menu) |
| 196 | + a = QAction(qApp.translate("outlineBasics", "Restore to default"), self.menuCustomIcons) |
| 197 | + a.triggered.connect(lambda: self.setCustomIcon("")) |
| 198 | + self.menuCustomIcons.addAction(a) |
| 199 | + self.menuCustomIcons.addSeparator() |
| 200 | + |
| 201 | + txt = QLineEdit() |
| 202 | + txt.textChanged.connect(self.filterLstIcons) |
| 203 | + txt.setPlaceholderText("Filter icons") |
| 204 | + txt.setStyleSheet("background: transparent; border: none;") |
| 205 | + act = QWidgetAction(self.menuCustomIcons) |
| 206 | + act.setDefaultWidget(txt) |
| 207 | + self.menuCustomIcons.addAction(act) |
| 208 | + |
| 209 | + self.lstIcons = QListWidget() |
| 210 | + for i in customIcons(): |
| 211 | + item = QListWidgetItem() |
| 212 | + item.setIcon(QIcon.fromTheme(i)) |
| 213 | + item.setData(Qt.UserRole, i) |
| 214 | + item.setToolTip(i) |
| 215 | + self.lstIcons.addItem(item) |
| 216 | + self.lstIcons.itemClicked.connect(self.setCustomIconFromItem) |
| 217 | + self.lstIcons.setViewMode(self.lstIcons.IconMode) |
| 218 | + self.lstIcons.setUniformItemSizes(True) |
| 219 | + self.lstIcons.setResizeMode(self.lstIcons.Adjust) |
| 220 | + self.lstIcons.setMovement(self.lstIcons.Static) |
| 221 | + self.lstIcons.setStyleSheet("background: transparent; background: none;") |
| 222 | + self.filterLstIcons("") |
| 223 | + act = QWidgetAction(self.menuCustomIcons) |
| 224 | + act.setDefaultWidget(self.lstIcons) |
| 225 | + self.menuCustomIcons.addAction(act) |
| 226 | + |
| 227 | + menu.addMenu(self.menuCustomIcons) |
226 | 228 |
|
227 | 229 | # Disabling stuff |
228 | | - if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder() \ |
229 | | - or not clipboard.mimeData().hasFormat("application/xml"): |
| 230 | + if not clipboard.mimeData().hasFormat("application/xml"): |
230 | 231 | self.actPaste.setEnabled(False) |
231 | 232 |
|
232 | | - if len(sel) > 0 and index.isValid() and not index.internalPointer().isFolder(): |
233 | | - self.actAddFolder.setEnabled(False) |
234 | | - self.actAddText.setEnabled(False) |
235 | | - |
236 | 233 | if len(sel) == 0: |
237 | 234 | self.actCopy.setEnabled(False) |
238 | 235 | self.actCut.setEnabled(False) |
239 | | - self.actDuplicate.setEnabled(False) |
240 | 236 | self.actRename.setEnabled(False) |
241 | 237 | self.actDelete.setEnabled(False) |
242 | 238 | self.menuPOV.setEnabled(False) |
@@ -298,7 +294,7 @@ def paste(self, mimeData=None): |
298 | 294 | if len(self.getSelection()) == 0: |
299 | 295 | index = self.rootIndex() |
300 | 296 |
|
301 | | - if mimeData is None: |
| 297 | + if not mimeData: |
302 | 298 | mimeData = qApp.clipboard().mimeData() |
303 | 299 |
|
304 | 300 | self.model().dropMimeData(mimeData, Qt.CopyAction, -1, 0, index) |
|
0 commit comments