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", |
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(): |
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 == " ": |