6 """ |
6 """ |
7 Module implementing a dialog to manage the Favicons. |
7 Module implementing a dialog to manage the Favicons. |
8 """ |
8 """ |
9 |
9 |
10 from PyQt5.QtCore import pyqtSlot, Qt, QPoint |
10 from PyQt5.QtCore import pyqtSlot, Qt, QPoint |
11 from PyQt5.QtWidgets import QDialog, QTreeWidgetItem, QMenu |
11 from PyQt5.QtWidgets import QDialog, QListWidgetItem, QMenu |
12 |
12 |
13 from .Ui_WebIconDialog import Ui_WebIconDialog |
13 from .Ui_WebIconDialog import Ui_WebIconDialog |
14 |
14 |
15 |
15 |
16 class WebIconDialog(QDialog, Ui_WebIconDialog): |
16 class WebIconDialog(QDialog, Ui_WebIconDialog): |
28 """ |
28 """ |
29 super(WebIconDialog, self).__init__(parent) |
29 super(WebIconDialog, self).__init__(parent) |
30 self.setupUi(self) |
30 self.setupUi(self) |
31 |
31 |
32 for url, icon in iconsDB.items(): |
32 for url, icon in iconsDB.items(): |
33 itm = QTreeWidgetItem(self.iconsList, [url]) |
33 QListWidgetItem(icon, url, self.iconsList) |
34 itm.setIcon(0, icon) |
34 self.iconsList.sortItems(Qt.AscendingOrder) |
35 self.iconsList.sortItems(0, Qt.AscendingOrder) |
|
36 |
35 |
37 self.__setRemoveButtons() |
36 self.__setRemoveButtons() |
38 |
37 |
39 def __setRemoveButtons(self): |
38 def __setRemoveButtons(self): |
40 """ |
39 """ |
41 Private method to set the state of the 'remove' buttons. |
40 Private method to set the state of the 'remove' buttons. |
42 """ |
41 """ |
43 self.removeAllButton.setEnabled(self.iconsList.topLevelItemCount() > 0) |
42 self.removeAllButton.setEnabled(self.iconsList.count() > 0) |
44 self.removeButton.setEnabled(len(self.iconsList.selectedItems()) > 0) |
43 self.removeButton.setEnabled(len(self.iconsList.selectedItems()) > 0) |
45 |
44 |
46 @pyqtSlot(QPoint) |
45 @pyqtSlot(QPoint) |
47 def on_iconsList_customContextMenuRequested(self, pos): |
46 def on_iconsList_customContextMenuRequested(self, pos): |
48 """ |
47 """ |
57 self.on_removeButton_clicked).setEnabled( |
56 self.on_removeButton_clicked).setEnabled( |
58 len(self.iconsList.selectedItems()) > 0) |
57 len(self.iconsList.selectedItems()) > 0) |
59 menu.addAction( |
58 menu.addAction( |
60 self.tr("Remove All"), |
59 self.tr("Remove All"), |
61 self.on_removeAllButton_clicked).setEnabled( |
60 self.on_removeAllButton_clicked).setEnabled( |
62 self.iconsList.topLevelItemCount() > 0) |
61 self.iconsList.count() > 0) |
63 |
62 |
64 menu.exec_(self.iconsList.mapToGlobal(pos)) |
63 menu.exec_(self.iconsList.mapToGlobal(pos)) |
65 |
64 |
66 @pyqtSlot() |
65 @pyqtSlot() |
67 def on_iconsList_itemSelectionChanged(self): |
66 def on_iconsList_itemSelectionChanged(self): |
74 def on_removeButton_clicked(self): |
73 def on_removeButton_clicked(self): |
75 """ |
74 """ |
76 Private slot to remove the selected items. |
75 Private slot to remove the selected items. |
77 """ |
76 """ |
78 for itm in self.iconsList.selectedItems(): |
77 for itm in self.iconsList.selectedItems(): |
79 index = self.iconsList.indexOfTopLevelItem(itm) |
78 row = self.iconsList.row(itm) |
80 self.iconsList.takeTopLevelItem(index) |
79 self.iconsList.takeItem(row) |
81 del itm |
80 del itm |
82 |
81 |
83 @pyqtSlot() |
82 @pyqtSlot() |
84 def on_removeAllButton_clicked(self): |
83 def on_removeAllButton_clicked(self): |
85 """ |
84 """ |