src/eric7/Project/ProjectBrowser.py

branch
eric7
changeset 9221
bf71ee032bb4
parent 9209
b99e7fd55fd3
child 9413
80c06d472826
equal deleted inserted replaced
9220:e9e7eca7efee 9221:bf71ee032bb4
16 16
17 import UI.PixmapCache 17 import UI.PixmapCache
18 import Preferences 18 import Preferences
19 19
20 from .ProjectBrowserFlags import ( 20 from .ProjectBrowserFlags import (
21 SourcesBrowserFlag, FormsBrowserFlag, ResourcesBrowserFlag, 21 SourcesBrowserFlag,
22 TranslationsBrowserFlag, InterfacesBrowserFlag, OthersBrowserFlag, 22 FormsBrowserFlag,
23 ProtocolsBrowserFlag, AllBrowsersFlag 23 ResourcesBrowserFlag,
24 TranslationsBrowserFlag,
25 InterfacesBrowserFlag,
26 OthersBrowserFlag,
27 ProtocolsBrowserFlag,
28 AllBrowsersFlag,
24 ) 29 )
25 30
26 31
27 class ProjectBrowser(EricTabWidget): 32 class ProjectBrowser(EricTabWidget):
28 """ 33 """
29 Class implementing the project browser part of the eric UI. 34 Class implementing the project browser part of the eric UI.
30 35
31 It generates a widget with up to seven tabs. The individual tabs contain 36 It generates a widget with up to seven tabs. The individual tabs contain
32 the project sources browser, the project forms browser, 37 the project sources browser, the project forms browser,
33 the project resources browser, the project translations browser, 38 the project resources browser, the project translations browser,
34 the project interfaces (IDL) browser and a browser for stuff, 39 the project interfaces (IDL) browser and a browser for stuff,
35 that doesn't fit these categories. Optionally it contains an additional 40 that doesn't fit these categories. Optionally it contains an additional
36 tab with the file system browser. 41 tab with the file system browser.
37 """ 42 """
43
38 def __init__(self, project, parent=None): 44 def __init__(self, project, parent=None):
39 """ 45 """
40 Constructor 46 Constructor
41 47
42 @param project reference to the project object 48 @param project reference to the project object
43 @param parent parent widget (QWidget) 49 @param parent parent widget (QWidget)
44 """ 50 """
45 EricTabWidget.__init__(self, parent) 51 EricTabWidget.__init__(self, parent)
46 self.project = project 52 self.project = project
47 53
48 self.setWindowIcon(UI.PixmapCache.getIcon("eric")) 54 self.setWindowIcon(UI.PixmapCache.getIcon("eric"))
49 55
50 self.setUsesScrollButtons(True) 56 self.setUsesScrollButtons(True)
51 57
52 self.vcsStatusIndicator = EricClickableLed(self) 58 self.vcsStatusIndicator = EricClickableLed(self)
53 self.setCornerWidget(self.vcsStatusIndicator, Qt.Corner.TopLeftCorner) 59 self.setCornerWidget(self.vcsStatusIndicator, Qt.Corner.TopLeftCorner)
54 self.vcsStatusIndicator.clicked.connect( 60 self.vcsStatusIndicator.clicked.connect(self.__vcsStatusIndicatorClicked)
55 self.__vcsStatusIndicatorClicked)
56 self.vcsStatusColorNames = { 61 self.vcsStatusColorNames = {
57 "A": "VcsAdded", 62 "A": "VcsAdded",
58 "M": "VcsModified", 63 "M": "VcsModified",
59 "O": "VcsRemoved", 64 "O": "VcsRemoved",
60 "R": "VcsReplaced", 65 "R": "VcsReplaced",
69 "R": self.tr("files replaced"), 74 "R": self.tr("files replaced"),
70 "U": self.tr("update required"), 75 "U": self.tr("update required"),
71 "Z": self.tr("conflict"), 76 "Z": self.tr("conflict"),
72 } 77 }
73 self.__vcsStateChanged(" ") 78 self.__vcsStateChanged(" ")
74 79
75 # step 1: create all the individual browsers 80 # step 1: create all the individual browsers
76 from .ProjectSourcesBrowser import ProjectSourcesBrowser 81 from .ProjectSourcesBrowser import ProjectSourcesBrowser
77 from .ProjectFormsBrowser import ProjectFormsBrowser 82 from .ProjectFormsBrowser import ProjectFormsBrowser
78 from .ProjectTranslationsBrowser import ProjectTranslationsBrowser 83 from .ProjectTranslationsBrowser import ProjectTranslationsBrowser
79 from .ProjectResourcesBrowser import ProjectResourcesBrowser 84 from .ProjectResourcesBrowser import ProjectResourcesBrowser
80 from .ProjectInterfacesBrowser import ProjectInterfacesBrowser 85 from .ProjectInterfacesBrowser import ProjectInterfacesBrowser
81 from .ProjectOthersBrowser import ProjectOthersBrowser 86 from .ProjectOthersBrowser import ProjectOthersBrowser
82 from .ProjectProtocolsBrowser import ProjectProtocolsBrowser 87 from .ProjectProtocolsBrowser import ProjectProtocolsBrowser
88
83 # sources browser 89 # sources browser
84 self.psBrowser = ProjectSourcesBrowser(self.project) 90 self.psBrowser = ProjectSourcesBrowser(self.project)
85 # forms browser 91 # forms browser
86 self.pfBrowser = ProjectFormsBrowser(self.project) 92 self.pfBrowser = ProjectFormsBrowser(self.project)
87 # resources browser 93 # resources browser
92 self.piBrowser = ProjectInterfacesBrowser(self.project) 98 self.piBrowser = ProjectInterfacesBrowser(self.project)
93 # protocols (protobuf) browser 99 # protocols (protobuf) browser
94 self.ppBrowser = ProjectProtocolsBrowser(self.project) 100 self.ppBrowser = ProjectProtocolsBrowser(self.project)
95 # others browser 101 # others browser
96 self.poBrowser = ProjectOthersBrowser(self.project) 102 self.poBrowser = ProjectOthersBrowser(self.project)
97 103
98 # step 2: connect all the browsers 104 # step 2: connect all the browsers
99 # connect the sources browser 105 # connect the sources browser
100 self.project.projectClosed.connect(self.psBrowser._projectClosed) 106 self.project.projectClosed.connect(self.psBrowser._projectClosed)
101 self.project.projectOpened.connect(self.psBrowser._projectOpened) 107 self.project.projectOpened.connect(self.psBrowser._projectOpened)
102 self.project.newProject.connect(self.psBrowser._newProject) 108 self.project.newProject.connect(self.psBrowser._newProject)
103 self.project.reinitVCS.connect(self.psBrowser._initMenusAndVcs) 109 self.project.reinitVCS.connect(self.psBrowser._initMenusAndVcs)
104 self.project.projectPropertiesChanged.connect( 110 self.project.projectPropertiesChanged.connect(self.psBrowser._initMenusAndVcs)
105 self.psBrowser._initMenusAndVcs) 111
106
107 # connect the forms browser 112 # connect the forms browser
108 self.project.projectClosed.connect(self.pfBrowser._projectClosed) 113 self.project.projectClosed.connect(self.pfBrowser._projectClosed)
109 self.project.projectOpened.connect(self.pfBrowser._projectOpened) 114 self.project.projectOpened.connect(self.pfBrowser._projectOpened)
110 self.project.newProject.connect(self.pfBrowser._newProject) 115 self.project.newProject.connect(self.pfBrowser._newProject)
111 self.project.reinitVCS.connect(self.pfBrowser._initMenusAndVcs) 116 self.project.reinitVCS.connect(self.pfBrowser._initMenusAndVcs)
112 self.project.projectPropertiesChanged.connect( 117 self.project.projectPropertiesChanged.connect(self.pfBrowser._initMenusAndVcs)
113 self.pfBrowser._initMenusAndVcs) 118
114
115 # connect the resources browser 119 # connect the resources browser
116 self.project.projectClosed.connect(self.prBrowser._projectClosed) 120 self.project.projectClosed.connect(self.prBrowser._projectClosed)
117 self.project.projectOpened.connect(self.prBrowser._projectOpened) 121 self.project.projectOpened.connect(self.prBrowser._projectOpened)
118 self.project.newProject.connect(self.prBrowser._newProject) 122 self.project.newProject.connect(self.prBrowser._newProject)
119 self.project.reinitVCS.connect(self.prBrowser._initMenusAndVcs) 123 self.project.reinitVCS.connect(self.prBrowser._initMenusAndVcs)
120 self.project.projectPropertiesChanged.connect( 124 self.project.projectPropertiesChanged.connect(self.prBrowser._initMenusAndVcs)
121 self.prBrowser._initMenusAndVcs) 125
122
123 # connect the translations browser 126 # connect the translations browser
124 self.project.projectClosed.connect(self.ptBrowser._projectClosed) 127 self.project.projectClosed.connect(self.ptBrowser._projectClosed)
125 self.project.projectOpened.connect(self.ptBrowser._projectOpened) 128 self.project.projectOpened.connect(self.ptBrowser._projectOpened)
126 self.project.newProject.connect(self.ptBrowser._newProject) 129 self.project.newProject.connect(self.ptBrowser._newProject)
127 self.project.reinitVCS.connect(self.ptBrowser._initMenusAndVcs) 130 self.project.reinitVCS.connect(self.ptBrowser._initMenusAndVcs)
128 self.project.projectPropertiesChanged.connect( 131 self.project.projectPropertiesChanged.connect(self.ptBrowser._initMenusAndVcs)
129 self.ptBrowser._initMenusAndVcs) 132
130
131 # connect the interfaces (IDL) browser 133 # connect the interfaces (IDL) browser
132 self.project.projectClosed.connect(self.piBrowser._projectClosed) 134 self.project.projectClosed.connect(self.piBrowser._projectClosed)
133 self.project.projectOpened.connect(self.piBrowser._projectOpened) 135 self.project.projectOpened.connect(self.piBrowser._projectOpened)
134 self.project.newProject.connect(self.piBrowser._newProject) 136 self.project.newProject.connect(self.piBrowser._newProject)
135 self.project.reinitVCS.connect(self.piBrowser._initMenusAndVcs) 137 self.project.reinitVCS.connect(self.piBrowser._initMenusAndVcs)
136 self.project.projectPropertiesChanged.connect( 138 self.project.projectPropertiesChanged.connect(self.piBrowser._initMenusAndVcs)
137 self.piBrowser._initMenusAndVcs) 139
138
139 # connect the protocols (protobuf) browser 140 # connect the protocols (protobuf) browser
140 self.project.projectClosed.connect(self.ppBrowser._projectClosed) 141 self.project.projectClosed.connect(self.ppBrowser._projectClosed)
141 self.project.projectOpened.connect(self.ppBrowser._projectOpened) 142 self.project.projectOpened.connect(self.ppBrowser._projectOpened)
142 self.project.newProject.connect(self.ppBrowser._newProject) 143 self.project.newProject.connect(self.ppBrowser._newProject)
143 self.project.reinitVCS.connect(self.ppBrowser._initMenusAndVcs) 144 self.project.reinitVCS.connect(self.ppBrowser._initMenusAndVcs)
144 self.project.projectPropertiesChanged.connect( 145 self.project.projectPropertiesChanged.connect(self.ppBrowser._initMenusAndVcs)
145 self.ppBrowser._initMenusAndVcs) 146
146
147 # connect the others browser 147 # connect the others browser
148 self.project.projectClosed.connect(self.poBrowser._projectClosed) 148 self.project.projectClosed.connect(self.poBrowser._projectClosed)
149 self.project.projectOpened.connect(self.poBrowser._projectOpened) 149 self.project.projectOpened.connect(self.poBrowser._projectOpened)
150 self.project.newProject.connect(self.poBrowser._newProject) 150 self.project.newProject.connect(self.poBrowser._newProject)
151 self.project.reinitVCS.connect(self.poBrowser._initMenusAndVcs) 151 self.project.reinitVCS.connect(self.poBrowser._initMenusAndVcs)
152 self.project.projectPropertiesChanged.connect( 152 self.project.projectPropertiesChanged.connect(self.poBrowser._initMenusAndVcs)
153 self.poBrowser._initMenusAndVcs) 153
154
155 # add signal connection to ourselves 154 # add signal connection to ourselves
156 self.project.projectOpened.connect(self.__projectOpened) 155 self.project.projectOpened.connect(self.__projectOpened)
157 self.project.projectClosed.connect(self.__projectClosed) 156 self.project.projectClosed.connect(self.__projectClosed)
158 self.project.newProject.connect(self.__newProject) 157 self.project.newProject.connect(self.__newProject)
159 self.project.projectPropertiesChanged.connect( 158 self.project.projectPropertiesChanged.connect(self.__projectPropertiesChanged)
160 self.__projectPropertiesChanged)
161 self.currentChanged.connect(self.__currentChanged) 159 self.currentChanged.connect(self.__currentChanged)
162 self.project.getModel().vcsStateChanged.connect(self.__vcsStateChanged) 160 self.project.getModel().vcsStateChanged.connect(self.__vcsStateChanged)
163 161
164 self.__currentBrowsersFlags = 0 162 self.__currentBrowsersFlags = 0
165 self.__projectPropertiesChanged() 163 self.__projectPropertiesChanged()
166 self.setCurrentIndex(0) 164 self.setCurrentIndex(0)
167 165
168 def __setBrowsersAvailable(self, browserFlags): 166 def __setBrowsersAvailable(self, browserFlags):
169 """ 167 """
170 Private method to add selected browsers to the project browser. 168 Private method to add selected browsers to the project browser.
171 169
172 @param browserFlags flags indicating the browsers to add (integer) 170 @param browserFlags flags indicating the browsers to add (integer)
173 """ 171 """
174 # step 1: remove all tabs 172 # step 1: remove all tabs
175 while self.count() > 0: 173 while self.count() > 0:
176 self.removeTab(0) 174 self.removeTab(0)
177 175
178 # step 2: add browsers 176 # step 2: add browsers
179 if browserFlags & SourcesBrowserFlag: 177 if browserFlags & SourcesBrowserFlag:
180 index = self.addTab( 178 index = self.addTab(
181 self.psBrowser, 179 self.psBrowser, UI.PixmapCache.getIcon("projectSources"), ""
182 UI.PixmapCache.getIcon("projectSources"), '') 180 )
183 self.setTabToolTip(index, self.psBrowser.windowTitle()) 181 self.setTabToolTip(index, self.psBrowser.windowTitle())
184 182
185 if browserFlags & FormsBrowserFlag: 183 if browserFlags & FormsBrowserFlag:
186 index = self.addTab( 184 index = self.addTab(
187 self.pfBrowser, 185 self.pfBrowser, UI.PixmapCache.getIcon("projectForms"), ""
188 UI.PixmapCache.getIcon("projectForms"), '') 186 )
189 self.setTabToolTip(index, self.pfBrowser.windowTitle()) 187 self.setTabToolTip(index, self.pfBrowser.windowTitle())
190 188
191 if browserFlags & ResourcesBrowserFlag: 189 if browserFlags & ResourcesBrowserFlag:
192 index = self.addTab( 190 index = self.addTab(
193 self.prBrowser, 191 self.prBrowser, UI.PixmapCache.getIcon("projectResources"), ""
194 UI.PixmapCache.getIcon("projectResources"), '') 192 )
195 self.setTabToolTip(index, self.prBrowser.windowTitle()) 193 self.setTabToolTip(index, self.prBrowser.windowTitle())
196 194
197 if browserFlags & TranslationsBrowserFlag: 195 if browserFlags & TranslationsBrowserFlag:
198 index = self.addTab( 196 index = self.addTab(
199 self.ptBrowser, 197 self.ptBrowser, UI.PixmapCache.getIcon("projectTranslations"), ""
200 UI.PixmapCache.getIcon("projectTranslations"), '') 198 )
201 self.setTabToolTip(index, self.ptBrowser.windowTitle()) 199 self.setTabToolTip(index, self.ptBrowser.windowTitle())
202 200
203 if browserFlags & InterfacesBrowserFlag: 201 if browserFlags & InterfacesBrowserFlag:
204 index = self.addTab( 202 index = self.addTab(
205 self.piBrowser, 203 self.piBrowser, UI.PixmapCache.getIcon("projectInterfaces"), ""
206 UI.PixmapCache.getIcon("projectInterfaces"), '') 204 )
207 self.setTabToolTip(index, self.piBrowser.windowTitle()) 205 self.setTabToolTip(index, self.piBrowser.windowTitle())
208 206
209 if browserFlags & ProtocolsBrowserFlag: 207 if browserFlags & ProtocolsBrowserFlag:
210 index = self.addTab( 208 index = self.addTab(self.ppBrowser, UI.PixmapCache.getIcon("protobuf"), "")
211 self.ppBrowser,
212 UI.PixmapCache.getIcon("protobuf"), '')
213 self.setTabToolTip(index, self.ppBrowser.windowTitle()) 209 self.setTabToolTip(index, self.ppBrowser.windowTitle())
214 210
215 if browserFlags & OthersBrowserFlag: 211 if browserFlags & OthersBrowserFlag:
216 index = self.addTab( 212 index = self.addTab(
217 self.poBrowser, 213 self.poBrowser, UI.PixmapCache.getIcon("projectOthers"), ""
218 UI.PixmapCache.getIcon("projectOthers"), '') 214 )
219 self.setTabToolTip(index, self.poBrowser.windowTitle()) 215 self.setTabToolTip(index, self.poBrowser.windowTitle())
220 216
221 QApplication.processEvents() 217 QApplication.processEvents()
222 218
223 def __currentChanged(self, index): 219 def __currentChanged(self, index):
224 """ 220 """
225 Private slot to handle the currentChanged(int) signal. 221 Private slot to handle the currentChanged(int) signal.
226 222
227 @param index index of the tab (integer) 223 @param index index of the tab (integer)
228 """ 224 """
229 if index > -1: 225 if index > -1:
230 browser = self.widget(index) 226 browser = self.widget(index)
231 if browser is not None: 227 if browser is not None:
232 browser.layoutDisplay() 228 browser.layoutDisplay()
233 229
234 def __projectOpened(self): 230 def __projectOpened(self):
235 """ 231 """
236 Private slot to handle the projectOpened signal. 232 Private slot to handle the projectOpened signal.
237 """ 233 """
238 self.__projectPropertiesChanged() 234 self.__projectPropertiesChanged()
239 self.setCurrentIndex(0) 235 self.setCurrentIndex(0)
240 self.__vcsStateChanged(" ") 236 self.__vcsStateChanged(" ")
241 237
242 def __projectClosed(self): 238 def __projectClosed(self):
243 """ 239 """
244 Private slot to handle the projectClosed signal. 240 Private slot to handle the projectClosed signal.
245 """ 241 """
246 self.__projectPropertiesChanged() 242 self.__projectPropertiesChanged()
247 self.setCurrentIndex(0) 243 self.setCurrentIndex(0)
248 self.__setSourcesIcon() 244 self.__setSourcesIcon()
249 self.__vcsStateChanged(" ") 245 self.__vcsStateChanged(" ")
250 246
251 def __newProject(self): 247 def __newProject(self):
252 """ 248 """
253 Private slot to handle the newProject signal. 249 Private slot to handle the newProject signal.
254 """ 250 """
255 self.setCurrentIndex(0) 251 self.setCurrentIndex(0)
256 self.__projectPropertiesChanged() 252 self.__projectPropertiesChanged()
257 253
258 def __projectPropertiesChanged(self): 254 def __projectPropertiesChanged(self):
259 """ 255 """
260 Private slot to handle the projectPropertiesChanged signal. 256 Private slot to handle the projectPropertiesChanged signal.
261 """ 257 """
262 flags = ( 258 flags = (
263 Preferences.getProjectBrowserFlags(self.project.getProjectType()) 259 Preferences.getProjectBrowserFlags(self.project.getProjectType())
264 if self.project.isOpen() else 260 if self.project.isOpen()
265 AllBrowsersFlag 261 else AllBrowsersFlag
266 ) 262 )
267 263
268 if flags != self.__currentBrowsersFlags: 264 if flags != self.__currentBrowsersFlags:
269 self.__currentBrowsersFlags = flags 265 self.__currentBrowsersFlags = flags
270 self.__setBrowsersAvailable(flags) 266 self.__setBrowsersAvailable(flags)
271 267
272 endIndex = self.count() 268 endIndex = self.count()
273 for index in range(endIndex): 269 for index in range(endIndex):
274 self.setTabEnabled(index, self.project.isOpen()) 270 self.setTabEnabled(index, self.project.isOpen())
275 271
276 self.__setSourcesIcon() 272 self.__setSourcesIcon()
277 273
278 def __setSourcesIcon(self): 274 def __setSourcesIcon(self):
279 """ 275 """
280 Private method to set the right icon for the sources browser tab. 276 Private method to set the right icon for the sources browser tab.
281 """ 277 """
282 if not self.project.isOpen(): 278 if not self.project.isOpen():
297 elif self.project.getProjectLanguage() == "JavaScript": 293 elif self.project.getProjectLanguage() == "JavaScript":
298 icon = UI.PixmapCache.getIcon("projectSourcesJavaScript") 294 icon = UI.PixmapCache.getIcon("projectSourcesJavaScript")
299 else: 295 else:
300 icon = UI.PixmapCache.getIcon("projectSources") 296 icon = UI.PixmapCache.getIcon("projectSources")
301 self.setTabIcon(self.indexOf(self.psBrowser), icon) 297 self.setTabIcon(self.indexOf(self.psBrowser), icon)
302 298
303 def handleEditorChanged(self, fn): 299 def handleEditorChanged(self, fn):
304 """ 300 """
305 Public slot to handle the editorChanged signal. 301 Public slot to handle the editorChanged signal.
306 302
307 @param fn filename of the changed file (string) 303 @param fn filename of the changed file (string)
308 """ 304 """
309 if Preferences.getProject("FollowEditor"): 305 if Preferences.getProject("FollowEditor"):
310 if self.project.isProjectSource(fn): 306 if self.project.isProjectSource(fn):
311 self.psBrowser.selectFile(fn) 307 self.psBrowser.selectFile(fn)
315 self.prBrowser.selectFile(fn) 311 self.prBrowser.selectFile(fn)
316 elif self.project.isProjectInterface(fn): 312 elif self.project.isProjectInterface(fn):
317 self.piBrowser.selectFile(fn) 313 self.piBrowser.selectFile(fn)
318 elif self.project.isProjectProtocol(fn): 314 elif self.project.isProjectProtocol(fn):
319 self.ppBrowser.selectFile(fn) 315 self.ppBrowser.selectFile(fn)
320 316
321 def handleEditorLineChanged(self, fn, lineno): 317 def handleEditorLineChanged(self, fn, lineno):
322 """ 318 """
323 Public slot to handle the editorLineChanged signal. 319 Public slot to handle the editorLineChanged signal.
324 320
325 @param fn filename of the changed file (string) 321 @param fn filename of the changed file (string)
326 @param lineno one based line number of the item (integer) 322 @param lineno one based line number of the item (integer)
327 """ 323 """
328 if ( 324 if (
329 Preferences.getProject("FollowEditor") and 325 Preferences.getProject("FollowEditor")
330 Preferences.getProject("FollowCursorLine") and 326 and Preferences.getProject("FollowCursorLine")
331 self.project.isProjectSource(fn) 327 and self.project.isProjectSource(fn)
332 ): 328 ):
333 self.psBrowser.selectFileLine(fn, lineno) 329 self.psBrowser.selectFileLine(fn, lineno)
334 330
335 def getProjectBrowsers(self): 331 def getProjectBrowsers(self):
336 """ 332 """
337 Public method to get references to the individual project browsers. 333 Public method to get references to the individual project browsers.
338 334
339 @return list of references to project browsers 335 @return list of references to project browsers
340 """ 336 """
341 return [self.psBrowser, self.pfBrowser, self.prBrowser, 337 return [
342 self.ptBrowser, self.piBrowser, self.ppBrowser, 338 self.psBrowser,
343 self.poBrowser] 339 self.pfBrowser,
344 340 self.prBrowser,
341 self.ptBrowser,
342 self.piBrowser,
343 self.ppBrowser,
344 self.poBrowser,
345 ]
346
345 def getProjectBrowser(self, name): 347 def getProjectBrowser(self, name):
346 """ 348 """
347 Public method to get a reference to the named project browser. 349 Public method to get a reference to the named project browser.
348 350
349 @param name name of the requested project browser (string). 351 @param name name of the requested project browser (string).
350 Valid names are "sources, forms, resources, translations, 352 Valid names are "sources, forms, resources, translations,
351 interfaces, protocols, others". 353 interfaces, protocols, others".
352 @return reference to the requested browser or None 354 @return reference to the requested browser or None
353 """ 355 """
358 "translations": self.ptBrowser, 360 "translations": self.ptBrowser,
359 "interfaces": self.piBrowser, 361 "interfaces": self.piBrowser,
360 "protocols": self.ppBrowser, 362 "protocols": self.ppBrowser,
361 "others": self.poBrowser, 363 "others": self.poBrowser,
362 }.get(name, None) 364 }.get(name, None)
363 365
364 def getProjectBrowserNames(self): 366 def getProjectBrowserNames(self):
365 """ 367 """
366 Public method to get the names of the various project browsers. 368 Public method to get the names of the various project browsers.
367 369
368 @return list of project browser names (list of string) 370 @return list of project browser names (list of string)
369 """ 371 """
370 return ["sources", "forms", "resources", 372 return [
371 "translations", "interfaces", "protocols", "others"] 373 "sources",
372 374 "forms",
375 "resources",
376 "translations",
377 "interfaces",
378 "protocols",
379 "others",
380 ]
381
373 def handlePreferencesChanged(self): 382 def handlePreferencesChanged(self):
374 """ 383 """
375 Public slot used to handle the preferencesChanged signal. 384 Public slot used to handle the preferencesChanged signal.
376 """ 385 """
377 self.__projectPropertiesChanged() 386 self.__projectPropertiesChanged()
378 self.__vcsStateChanged(self.currentVcsStatus) 387 self.__vcsStateChanged(self.currentVcsStatus)
379 388
380 def __vcsStateChanged(self, state): 389 def __vcsStateChanged(self, state):
381 """ 390 """
382 Private slot to handle a change in the vcs state. 391 Private slot to handle a change in the vcs state.
383 392
384 @param state new vcs state (string) 393 @param state new vcs state (string)
385 """ 394 """
386 self.currentVcsStatus = state 395 self.currentVcsStatus = state
387 if state == " " or state not in self.vcsStatusColorNames: 396 if state == " " or state not in self.vcsStatusColorNames:
388 self.vcsStatusIndicator.setColor(QColor(Qt.GlobalColor.lightGray)) 397 self.vcsStatusIndicator.setColor(QColor(Qt.GlobalColor.lightGray))
389 else: 398 else:
390 self.vcsStatusIndicator.setColor( 399 self.vcsStatusIndicator.setColor(
391 Preferences.getProjectBrowserColour( 400 Preferences.getProjectBrowserColour(self.vcsStatusColorNames[state])
392 self.vcsStatusColorNames[state])) 401 )
393 if state not in self.vcsStatusText: 402 if state not in self.vcsStatusText:
394 self.vcsStatusIndicator.setToolTip(self.tr("unknown status")) 403 self.vcsStatusIndicator.setToolTip(self.tr("unknown status"))
395 else: 404 else:
396 self.vcsStatusIndicator.setToolTip(self.vcsStatusText[state]) 405 self.vcsStatusIndicator.setToolTip(self.vcsStatusText[state])
397 406
398 def __vcsStatusIndicatorClicked(self, pos): 407 def __vcsStatusIndicatorClicked(self, pos):
399 """ 408 """
400 Private slot to react upon clicks on the VCS indicator LED. 409 Private slot to react upon clicks on the VCS indicator LED.
401 410
402 @param pos position of the click (QPoint) 411 @param pos position of the click (QPoint)
403 """ 412 """
404 vcs = self.project.getVcs() 413 vcs = self.project.getVcs()
405 if vcs: 414 if vcs:
406 if self.currentVcsStatus == " ": 415 if self.currentVcsStatus == " ":

eric ide

mercurial