30 self.setupUi(self) |
32 self.setupUi(self) |
31 self.setObjectName("ProjectBrowserPage") |
33 self.setObjectName("ProjectBrowserPage") |
32 |
34 |
33 self.__currentProjectTypeIndex = 0 |
35 self.__currentProjectTypeIndex = 0 |
34 |
36 |
|
37 # populate the project browser type list |
|
38 self.__populateProjectBrowserList() |
|
39 |
35 # set initial values |
40 # set initial values |
36 self.projectTypeCombo.addItem("", "") |
41 self.projectTypeCombo.addItem("", "") |
37 self.__projectBrowserFlags = {"": 0} |
42 self.__projectBrowsersLists = {"": []} |
38 try: |
43 try: |
39 projectTypes = ericApp().getObject("Project").getProjectTypes() |
44 projectTypes = ericApp().getObject("Project").getProjectTypes() |
40 for projectType in sorted(projectTypes.keys()): |
45 for projectType in sorted(projectTypes.keys()): |
41 self.projectTypeCombo.addItem(projectTypes[projectType], projectType) |
46 self.projectTypeCombo.addItem(projectTypes[projectType], projectType) |
42 self.__projectBrowserFlags[ |
47 self.__projectBrowsersLists[ |
43 projectType |
48 projectType |
44 ] = Preferences.getProjectBrowserFlags(projectType) |
49 ] = Preferences.getProjectBrowsers(projectType) |
45 except KeyError: |
50 except KeyError: |
46 self.pbGroup.setEnabled(False) |
51 self.pbGroup.setEnabled(False) |
|
52 self.pbGroup.setVisible(False) |
47 |
53 |
48 self.initColour( |
54 self.initColour( |
49 "Highlighted", self.pbHighlightedButton, Preferences.getProjectBrowserColour |
55 "Highlighted", self.pbHighlightedButton, Preferences.getProjectBrowserColour |
50 ) |
56 ) |
51 |
57 |
82 Preferences.setProject( |
88 Preferences.setProject( |
83 "BrowsersListHiddenFiles", self.showHiddenCheckBox.isChecked() |
89 "BrowsersListHiddenFiles", self.showHiddenCheckBox.isChecked() |
84 ) |
90 ) |
85 |
91 |
86 if self.pbGroup.isEnabled(): |
92 if self.pbGroup.isEnabled(): |
87 self.__storeProjectBrowserFlags( |
93 self.__storeProjectBrowsersList( |
88 self.projectTypeCombo.itemData(self.__currentProjectTypeIndex) |
94 self.projectTypeCombo.itemData(self.__currentProjectTypeIndex) |
89 ) |
95 ) |
90 for projectType, flags in list(self.__projectBrowserFlags.items()): |
96 for projectType, browsersList in self.__projectBrowsersLists.items(): |
91 if projectType != "": |
97 if bool(projectType): |
92 Preferences.setProjectBrowserFlags(projectType, flags) |
98 Preferences.setProjectBrowsers(projectType, browsersList) |
93 |
99 |
94 def __storeProjectBrowserFlags(self, projectType): |
100 def __populateProjectBrowserList(self): |
95 """ |
101 """ |
96 Private method to store the flags for the selected project type. |
102 Private method to populate the project browsers list. |
97 |
103 """ |
98 @param projectType type of the selected project (string) |
104 with contextlib.suppress(KeyError): |
99 """ |
105 projectBrowser = ericApp().getObject("ProjectBrowser") |
100 from eric7.Project.ProjectBrowserFlags import ( |
106 for ( |
101 FormsBrowserFlag, |
107 browserType, |
102 InterfacesBrowserFlag, |
108 userString, |
103 OthersBrowserFlag, |
109 ) in projectBrowser.getProjectBrowserUserStrings().items(): |
104 ProtocolsBrowserFlag, |
110 itm = QListWidgetItem(userString, self.projectBrowserListWidget) |
105 ResourcesBrowserFlag, |
111 itm.setData(Qt.ItemDataRole.UserRole, browserType) |
106 SourcesBrowserFlag, |
112 itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable) |
107 TranslationsBrowserFlag, |
113 itm.setCheckState(Qt.CheckState.Unchecked) |
108 ) |
114 |
109 |
115 def __storeProjectBrowsersList(self, projectType): |
110 flags = 0 |
116 """ |
111 if self.sourcesBrowserCheckBox.isChecked(): |
117 Private method to store the list of enabled browsers for the selected project |
112 flags |= SourcesBrowserFlag |
|
113 if self.formsBrowserCheckBox.isChecked(): |
|
114 flags |= FormsBrowserFlag |
|
115 if self.resourcesBrowserCheckBox.isChecked() and projectType not in ( |
|
116 "PyQt6", |
|
117 "PyQt6C", |
|
118 ): |
|
119 flags |= ResourcesBrowserFlag |
|
120 if self.translationsBrowserCheckBox.isChecked(): |
|
121 flags |= TranslationsBrowserFlag |
|
122 if self.interfacesBrowserCheckBox.isChecked(): |
|
123 flags |= InterfacesBrowserFlag |
|
124 if self.othersBrowserCheckBox.isChecked(): |
|
125 flags |= OthersBrowserFlag |
|
126 if self.protocolsBrowserCheckBox.isChecked(): |
|
127 flags |= ProtocolsBrowserFlag |
|
128 |
|
129 self.__projectBrowserFlags[projectType] = flags |
|
130 |
|
131 def __setProjectBrowsersCheckBoxes(self, projectType): |
|
132 """ |
|
133 Private method to set the checkboxes according to the selected project |
|
134 type. |
118 type. |
135 |
119 |
136 @param projectType type of the selected project (string) |
120 @param projectType type of the selected project |
137 """ |
121 @type str |
138 from eric7.Project.ProjectBrowserFlags import ( |
122 """ |
139 FormsBrowserFlag, |
123 browsersList = [] |
140 InterfacesBrowserFlag, |
124 for row in range(self.projectBrowserListWidget.count()): |
141 OthersBrowserFlag, |
125 itm = self.projectBrowserListWidget.item(row) |
142 ProtocolsBrowserFlag, |
126 if itm.checkState() == Qt.CheckState.Checked: |
143 ResourcesBrowserFlag, |
127 browsersList.append(itm.data(Qt.ItemDataRole.UserRole)) |
144 SourcesBrowserFlag, |
128 self.__projectBrowsersLists[projectType] = browsersList |
145 TranslationsBrowserFlag, |
129 |
146 ) |
130 def __setProjectBrowsersList(self, projectType): |
147 |
131 """ |
148 flags = self.__projectBrowserFlags[projectType] |
132 Private method to check the project browser entries according to the selected |
149 |
133 project type. |
150 self.sourcesBrowserCheckBox.setChecked(flags & SourcesBrowserFlag) |
134 |
151 self.formsBrowserCheckBox.setChecked(flags & FormsBrowserFlag) |
135 @param projectType selected project type |
152 self.resourcesBrowserCheckBox.setEnabled( |
136 @type str |
153 projectType not in ("PyQt6", "PyQt6C", "E7Plugin") |
137 """ |
154 ) |
138 browsersList = self.__projectBrowsersLists[projectType] |
155 if projectType in ("PyQt6", "PyQt6C", "E7Plugin"): |
139 for row in range(self.projectBrowserListWidget.count()): |
156 self.resourcesBrowserCheckBox.setChecked(False) |
140 itm = self.projectBrowserListWidget.item(row) |
157 else: |
141 if ( |
158 self.resourcesBrowserCheckBox.setChecked(flags & ResourcesBrowserFlag) |
142 projectType in ("PyQt6", "PyQt6C", "E7Plugin") |
159 self.translationsBrowserCheckBox.setChecked(flags & TranslationsBrowserFlag) |
143 and itm.data(Qt.ItemDataRole.UserRole) == "resources" |
160 self.interfacesBrowserCheckBox.setChecked(flags & InterfacesBrowserFlag) |
144 ): |
161 self.othersBrowserCheckBox.setChecked(flags & OthersBrowserFlag) |
145 itm.setFlags(itm.flags() & ~Qt.ItemFlag.ItemIsEnabled) |
162 self.protocolsBrowserCheckBox.setChecked(flags & ProtocolsBrowserFlag) |
146 else: |
|
147 itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsEnabled) |
|
148 itm.setCheckState( |
|
149 Qt.CheckState.Checked |
|
150 if itm.data(Qt.ItemDataRole.UserRole) in browsersList |
|
151 else Qt.CheckState.Unchecked |
|
152 ) |
163 |
153 |
164 @pyqtSlot(int) |
154 @pyqtSlot(int) |
165 def on_projectTypeCombo_activated(self, index): |
155 def on_projectTypeCombo_activated(self, index): |
166 """ |
156 """ |
167 Private slot to set the browser checkboxes according to the selected |
157 Private slot to set the browser checkboxes according to the selected |