16 |
16 |
17 class ZoomValuesDialog(QDialog, Ui_ZoomValuesDialog): |
17 class ZoomValuesDialog(QDialog, Ui_ZoomValuesDialog): |
18 """ |
18 """ |
19 Class implementing a dialog to show all saved zoom values. |
19 Class implementing a dialog to show all saved zoom values. |
20 """ |
20 """ |
|
21 |
21 def __init__(self, parent=None): |
22 def __init__(self, parent=None): |
22 """ |
23 """ |
23 Constructor |
24 Constructor |
24 |
25 |
25 @param parent reference to the parent widget (QWidget) |
26 @param parent reference to the parent widget (QWidget) |
26 """ |
27 """ |
27 super().__init__(parent) |
28 super().__init__(parent) |
28 self.setupUi(self) |
29 self.setupUi(self) |
29 |
30 |
30 self.removeButton.clicked.connect( |
31 self.removeButton.clicked.connect(self.zoomValuesTable.removeSelected) |
31 self.zoomValuesTable.removeSelected) |
|
32 self.removeAllButton.clicked.connect(self.zoomValuesTable.removeAll) |
32 self.removeAllButton.clicked.connect(self.zoomValuesTable.removeAll) |
33 |
33 |
34 from . import ZoomManager |
34 from . import ZoomManager |
35 from .ZoomValuesModel import ZoomValuesModel |
35 from .ZoomValuesModel import ZoomValuesModel |
36 |
36 |
37 self.zoomValuesTable.verticalHeader().hide() |
37 self.zoomValuesTable.verticalHeader().hide() |
38 self.__zoomValuesModel = ZoomValuesModel( |
38 self.__zoomValuesModel = ZoomValuesModel(ZoomManager.instance(), self) |
39 ZoomManager.instance(), self) |
|
40 self.__proxyModel = QSortFilterProxyModel(self) |
39 self.__proxyModel = QSortFilterProxyModel(self) |
41 self.__proxyModel.setSourceModel(self.__zoomValuesModel) |
40 self.__proxyModel.setSourceModel(self.__zoomValuesModel) |
42 self.searchEdit.textChanged.connect( |
41 self.searchEdit.textChanged.connect(self.__proxyModel.setFilterFixedString) |
43 self.__proxyModel.setFilterFixedString) |
|
44 self.zoomValuesTable.setModel(self.__proxyModel) |
42 self.zoomValuesTable.setModel(self.__proxyModel) |
45 |
43 |
46 fm = QFontMetrics(QFont()) |
44 fm = QFontMetrics(QFont()) |
47 height = fm.height() + fm.height() // 3 |
45 height = fm.height() + fm.height() // 3 |
48 self.zoomValuesTable.verticalHeader().setDefaultSectionSize(height) |
46 self.zoomValuesTable.verticalHeader().setDefaultSectionSize(height) |
49 self.zoomValuesTable.verticalHeader().setMinimumSectionSize(-1) |
47 self.zoomValuesTable.verticalHeader().setMinimumSectionSize(-1) |
50 |
48 |
51 self.__calculateHeaderSizes() |
49 self.__calculateHeaderSizes() |
52 |
50 |
53 def __calculateHeaderSizes(self): |
51 def __calculateHeaderSizes(self): |
54 """ |
52 """ |
55 Private method to calculate the section sizes of the horizontal header. |
53 Private method to calculate the section sizes of the horizontal header. |
56 """ |
54 """ |
57 fm = QFontMetrics(QFont()) |
55 fm = QFontMetrics(QFont()) |
58 for section in range(self.__zoomValuesModel.columnCount()): |
56 for section in range(self.__zoomValuesModel.columnCount()): |
59 header = self.zoomValuesTable.horizontalHeader().sectionSizeHint( |
57 header = self.zoomValuesTable.horizontalHeader().sectionSizeHint(section) |
60 section) |
|
61 if section == 0: |
58 if section == 0: |
62 try: |
59 try: |
63 header = fm.horizontalAdvance( |
60 header = fm.horizontalAdvance("extraveryveryverylongsitename") |
64 "extraveryveryverylongsitename") |
|
65 except AttributeError: |
61 except AttributeError: |
66 header = fm.width( |
62 header = fm.width("extraveryveryverylongsitename") |
67 "extraveryveryverylongsitename") |
|
68 elif section == 1: |
63 elif section == 1: |
69 try: |
64 try: |
70 header = fm.horizontalAdvance("averagelongzoomvalue") |
65 header = fm.horizontalAdvance("averagelongzoomvalue") |
71 except AttributeError: |
66 except AttributeError: |
72 header = fm.width("averagelongzoomvalue") |
67 header = fm.width("averagelongzoomvalue") |
73 try: |
68 try: |
74 buffer = fm.width("mm") |
69 buffer = fm.width("mm") |
75 except AttributeError: |
70 except AttributeError: |
76 buffer = fm.width("mm") |
71 buffer = fm.width("mm") |
77 header += buffer |
72 header += buffer |
78 self.zoomValuesTable.horizontalHeader().resizeSection( |
73 self.zoomValuesTable.horizontalHeader().resizeSection(section, header) |
79 section, header) |
|
80 self.zoomValuesTable.horizontalHeader().setStretchLastSection(True) |
74 self.zoomValuesTable.horizontalHeader().setStretchLastSection(True) |