src/eric7/Preferences/ConfigurationPages/ProjectBrowserPage.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
19 19
20 class ProjectBrowserPage(ConfigurationPageBase, Ui_ProjectBrowserPage): 20 class ProjectBrowserPage(ConfigurationPageBase, Ui_ProjectBrowserPage):
21 """ 21 """
22 Class implementing the Project Browser configuration page. 22 Class implementing the Project Browser configuration page.
23 """ 23 """
24
24 def __init__(self): 25 def __init__(self):
25 """ 26 """
26 Constructor 27 Constructor
27 """ 28 """
28 super().__init__() 29 super().__init__()
29 self.setupUi(self) 30 self.setupUi(self)
30 self.setObjectName("ProjectBrowserPage") 31 self.setObjectName("ProjectBrowserPage")
31 32
32 self.__currentProjectTypeIndex = 0 33 self.__currentProjectTypeIndex = 0
33 34
34 # set initial values 35 # set initial values
35 self.projectTypeCombo.addItem('', '') 36 self.projectTypeCombo.addItem("", "")
36 self.__projectBrowserFlags = {'': 0} 37 self.__projectBrowserFlags = {"": 0}
37 try: 38 try:
38 projectTypes = ericApp().getObject("Project").getProjectTypes() 39 projectTypes = ericApp().getObject("Project").getProjectTypes()
39 for projectType in sorted(projectTypes.keys()): 40 for projectType in sorted(projectTypes.keys()):
40 self.projectTypeCombo.addItem(projectTypes[projectType], 41 self.projectTypeCombo.addItem(projectTypes[projectType], projectType)
41 projectType) 42 self.__projectBrowserFlags[
42 self.__projectBrowserFlags[projectType] = ( 43 projectType
43 Preferences.getProjectBrowserFlags(projectType) 44 ] = Preferences.getProjectBrowserFlags(projectType)
44 )
45 except KeyError: 45 except KeyError:
46 self.pbGroup.setEnabled(False) 46 self.pbGroup.setEnabled(False)
47 47
48 self.initColour( 48 self.initColour(
49 "Highlighted", self.pbHighlightedButton, 49 "Highlighted", self.pbHighlightedButton, Preferences.getProjectBrowserColour
50 Preferences.getProjectBrowserColour) 50 )
51 51
52 self.followEditorCheckBox.setChecked( 52 self.followEditorCheckBox.setChecked(Preferences.getProject("FollowEditor"))
53 Preferences.getProject("FollowEditor"))
54 self.followCursorLineCheckBox.setChecked( 53 self.followCursorLineCheckBox.setChecked(
55 Preferences.getProject("FollowCursorLine")) 54 Preferences.getProject("FollowCursorLine")
55 )
56 self.autoPopulateCheckBox.setChecked( 56 self.autoPopulateCheckBox.setChecked(
57 Preferences.getProject("AutoPopulateItems")) 57 Preferences.getProject("AutoPopulateItems")
58 )
58 self.hideGeneratedCheckBox.setChecked( 59 self.hideGeneratedCheckBox.setChecked(
59 Preferences.getProject("HideGeneratedForms")) 60 Preferences.getProject("HideGeneratedForms")
61 )
60 self.showHiddenCheckBox.setChecked( 62 self.showHiddenCheckBox.setChecked(
61 Preferences.getProject("BrowsersListHiddenFiles")) 63 Preferences.getProject("BrowsersListHiddenFiles")
62 64 )
65
63 def save(self): 66 def save(self):
64 """ 67 """
65 Public slot to save the Project Browser configuration. 68 Public slot to save the Project Browser configuration.
66 """ 69 """
67 self.saveColours(Preferences.setProjectBrowserColour) 70 self.saveColours(Preferences.setProjectBrowserColour)
68 71
69 Preferences.setProject( 72 Preferences.setProject("FollowEditor", self.followEditorCheckBox.isChecked())
70 "FollowEditor", 73 Preferences.setProject(
71 self.followEditorCheckBox.isChecked()) 74 "FollowCursorLine", self.followCursorLineCheckBox.isChecked()
72 Preferences.setProject( 75 )
73 "FollowCursorLine", 76 Preferences.setProject(
74 self.followCursorLineCheckBox.isChecked()) 77 "AutoPopulateItems", self.autoPopulateCheckBox.isChecked()
75 Preferences.setProject( 78 )
76 "AutoPopulateItems", 79 Preferences.setProject(
77 self.autoPopulateCheckBox.isChecked()) 80 "HideGeneratedForms", self.hideGeneratedCheckBox.isChecked()
78 Preferences.setProject( 81 )
79 "HideGeneratedForms", 82 Preferences.setProject(
80 self.hideGeneratedCheckBox.isChecked()) 83 "BrowsersListHiddenFiles", self.showHiddenCheckBox.isChecked()
81 Preferences.setProject( 84 )
82 "BrowsersListHiddenFiles", 85
83 self.showHiddenCheckBox.isChecked())
84
85 if self.pbGroup.isEnabled(): 86 if self.pbGroup.isEnabled():
86 self.__storeProjectBrowserFlags( 87 self.__storeProjectBrowserFlags(
87 self.projectTypeCombo.itemData(self.__currentProjectTypeIndex)) 88 self.projectTypeCombo.itemData(self.__currentProjectTypeIndex)
89 )
88 for projectType, flags in list(self.__projectBrowserFlags.items()): 90 for projectType, flags in list(self.__projectBrowserFlags.items()):
89 if projectType != '': 91 if projectType != "":
90 Preferences.setProjectBrowserFlags(projectType, flags) 92 Preferences.setProjectBrowserFlags(projectType, flags)
91 93
92 def __storeProjectBrowserFlags(self, projectType): 94 def __storeProjectBrowserFlags(self, projectType):
93 """ 95 """
94 Private method to store the flags for the selected project type. 96 Private method to store the flags for the selected project type.
95 97
96 @param projectType type of the selected project (string) 98 @param projectType type of the selected project (string)
97 """ 99 """
98 from Project.ProjectBrowserFlags import ( 100 from Project.ProjectBrowserFlags import (
99 SourcesBrowserFlag, FormsBrowserFlag, ResourcesBrowserFlag, 101 SourcesBrowserFlag,
100 TranslationsBrowserFlag, InterfacesBrowserFlag, OthersBrowserFlag, 102 FormsBrowserFlag,
101 ProtocolsBrowserFlag 103 ResourcesBrowserFlag,
102 ) 104 TranslationsBrowserFlag,
103 105 InterfacesBrowserFlag,
106 OthersBrowserFlag,
107 ProtocolsBrowserFlag,
108 )
109
104 flags = 0 110 flags = 0
105 if self.sourcesBrowserCheckBox.isChecked(): 111 if self.sourcesBrowserCheckBox.isChecked():
106 flags |= SourcesBrowserFlag 112 flags |= SourcesBrowserFlag
107 if self.formsBrowserCheckBox.isChecked(): 113 if self.formsBrowserCheckBox.isChecked():
108 flags |= FormsBrowserFlag 114 flags |= FormsBrowserFlag
109 if ( 115 if self.resourcesBrowserCheckBox.isChecked() and projectType not in (
110 self.resourcesBrowserCheckBox.isChecked() and 116 "PyQt6",
111 projectType not in ("PyQt6", "PyQt6C") 117 "PyQt6C",
112 ): 118 ):
113 flags |= ResourcesBrowserFlag 119 flags |= ResourcesBrowserFlag
114 if self.translationsBrowserCheckBox.isChecked(): 120 if self.translationsBrowserCheckBox.isChecked():
115 flags |= TranslationsBrowserFlag 121 flags |= TranslationsBrowserFlag
116 if self.interfacesBrowserCheckBox.isChecked(): 122 if self.interfacesBrowserCheckBox.isChecked():
117 flags |= InterfacesBrowserFlag 123 flags |= InterfacesBrowserFlag
118 if self.othersBrowserCheckBox.isChecked(): 124 if self.othersBrowserCheckBox.isChecked():
119 flags |= OthersBrowserFlag 125 flags |= OthersBrowserFlag
120 if self.protocolsBrowserCheckBox.isChecked(): 126 if self.protocolsBrowserCheckBox.isChecked():
121 flags |= ProtocolsBrowserFlag 127 flags |= ProtocolsBrowserFlag
122 128
123 self.__projectBrowserFlags[projectType] = flags 129 self.__projectBrowserFlags[projectType] = flags
124 130
125 def __setProjectBrowsersCheckBoxes(self, projectType): 131 def __setProjectBrowsersCheckBoxes(self, projectType):
126 """ 132 """
127 Private method to set the checkboxes according to the selected project 133 Private method to set the checkboxes according to the selected project
128 type. 134 type.
129 135
130 @param projectType type of the selected project (string) 136 @param projectType type of the selected project (string)
131 """ 137 """
132 from Project.ProjectBrowserFlags import ( 138 from Project.ProjectBrowserFlags import (
133 SourcesBrowserFlag, FormsBrowserFlag, ResourcesBrowserFlag, 139 SourcesBrowserFlag,
134 TranslationsBrowserFlag, InterfacesBrowserFlag, OthersBrowserFlag, 140 FormsBrowserFlag,
135 ProtocolsBrowserFlag 141 ResourcesBrowserFlag,
136 ) 142 TranslationsBrowserFlag,
137 143 InterfacesBrowserFlag,
144 OthersBrowserFlag,
145 ProtocolsBrowserFlag,
146 )
147
138 flags = self.__projectBrowserFlags[projectType] 148 flags = self.__projectBrowserFlags[projectType]
139 149
140 self.sourcesBrowserCheckBox.setChecked(flags & SourcesBrowserFlag) 150 self.sourcesBrowserCheckBox.setChecked(flags & SourcesBrowserFlag)
141 self.formsBrowserCheckBox.setChecked(flags & FormsBrowserFlag) 151 self.formsBrowserCheckBox.setChecked(flags & FormsBrowserFlag)
142 self.resourcesBrowserCheckBox.setEnabled( 152 self.resourcesBrowserCheckBox.setEnabled(
143 projectType not in ("PyQt6", "PyQt6C", "E7Plugin")) 153 projectType not in ("PyQt6", "PyQt6C", "E7Plugin")
154 )
144 if projectType in ("PyQt6", "PyQt6C", "E7Plugin"): 155 if projectType in ("PyQt6", "PyQt6C", "E7Plugin"):
145 self.resourcesBrowserCheckBox.setChecked(False) 156 self.resourcesBrowserCheckBox.setChecked(False)
146 else: 157 else:
147 self.resourcesBrowserCheckBox.setChecked( 158 self.resourcesBrowserCheckBox.setChecked(flags & ResourcesBrowserFlag)
148 flags & ResourcesBrowserFlag) 159 self.translationsBrowserCheckBox.setChecked(flags & TranslationsBrowserFlag)
149 self.translationsBrowserCheckBox.setChecked( 160 self.interfacesBrowserCheckBox.setChecked(flags & InterfacesBrowserFlag)
150 flags & TranslationsBrowserFlag)
151 self.interfacesBrowserCheckBox.setChecked(
152 flags & InterfacesBrowserFlag)
153 self.othersBrowserCheckBox.setChecked(flags & OthersBrowserFlag) 161 self.othersBrowserCheckBox.setChecked(flags & OthersBrowserFlag)
154 self.protocolsBrowserCheckBox.setChecked(flags & ProtocolsBrowserFlag) 162 self.protocolsBrowserCheckBox.setChecked(flags & ProtocolsBrowserFlag)
155 163
156 @pyqtSlot(int) 164 @pyqtSlot(int)
157 def on_projectTypeCombo_activated(self, index): 165 def on_projectTypeCombo_activated(self, index):
158 """ 166 """
159 Private slot to set the browser checkboxes according to the selected 167 Private slot to set the browser checkboxes according to the selected
160 project type. 168 project type.
161 169
162 @param index index of the selected project type (integer) 170 @param index index of the selected project type (integer)
163 """ 171 """
164 if self.__currentProjectTypeIndex == index: 172 if self.__currentProjectTypeIndex == index:
165 return 173 return
166 174
167 self.__storeProjectBrowserFlags( 175 self.__storeProjectBrowserFlags(
168 self.projectTypeCombo.itemData(self.__currentProjectTypeIndex)) 176 self.projectTypeCombo.itemData(self.__currentProjectTypeIndex)
169 self.__setProjectBrowsersCheckBoxes( 177 )
170 self.projectTypeCombo.itemData(index)) 178 self.__setProjectBrowsersCheckBoxes(self.projectTypeCombo.itemData(index))
171 self.__currentProjectTypeIndex = index 179 self.__currentProjectTypeIndex = index
172 180
173 @pyqtSlot(bool) 181 @pyqtSlot(bool)
174 def on_followEditorCheckBox_toggled(self, checked): 182 def on_followEditorCheckBox_toggled(self, checked):
175 """ 183 """
176 Private slot to handle the change of the 'Follow Editor' checkbox. 184 Private slot to handle the change of the 'Follow Editor' checkbox.
177 185
178 @param checked flag indicating the state of the checkbox 186 @param checked flag indicating the state of the checkbox
179 """ 187 """
180 if not checked: 188 if not checked:
181 self.followCursorLineCheckBox.setChecked(False) 189 self.followCursorLineCheckBox.setChecked(False)
182 190
183 @pyqtSlot(bool) 191 @pyqtSlot(bool)
184 def on_followCursorLineCheckBox_toggled(self, checked): 192 def on_followCursorLineCheckBox_toggled(self, checked):
185 """ 193 """
186 Private slot to handle the change of the 'Follow Cursor Line' checkbox. 194 Private slot to handle the change of the 'Follow Cursor Line' checkbox.
187 195
188 @param checked flag indicating the state of the checkbox 196 @param checked flag indicating the state of the checkbox
189 """ 197 """
190 if checked: 198 if checked:
191 self.followEditorCheckBox.setChecked(True) 199 self.followEditorCheckBox.setChecked(True)
192 200
193 201
194 def create(dlg): 202 def create(dlg):
195 """ 203 """
196 Module function to create the configuration page. 204 Module function to create the configuration page.
197 205
198 @param dlg reference to the configuration dialog 206 @param dlg reference to the configuration dialog
199 @return reference to the instantiated page (ConfigurationPageBase) 207 @return reference to the instantiated page (ConfigurationPageBase)
200 """ 208 """
201 page = ProjectBrowserPage() 209 page = ProjectBrowserPage()
202 return page 210 return page

eric ide

mercurial