7 Module implementing the multi project management functionality. |
7 Module implementing the multi project management functionality. |
8 """ |
8 """ |
9 |
9 |
10 import os |
10 import os |
11 import sys |
11 import sys |
12 import cStringIO |
12 import io |
13 |
13 |
14 from PyQt4.QtCore import * |
14 from PyQt4.QtCore import * |
15 from PyQt4.QtGui import * |
15 from PyQt4.QtGui import * |
16 |
16 |
17 from E4Gui.E4Application import e4App |
17 from E4Gui.E4Application import e4App |
18 |
18 |
19 from Globals import recentNameMultiProject |
19 from Globals import recentNameMultiProject |
20 |
20 |
21 from PropertiesDialog import PropertiesDialog |
21 from .PropertiesDialog import PropertiesDialog |
22 from AddProjectDialog import AddProjectDialog |
22 from .AddProjectDialog import AddProjectDialog |
23 |
23 |
24 from E4XML.XMLUtilities import make_parser |
24 from E4XML.XMLUtilities import make_parser |
25 from E4XML.XMLErrorHandler import XMLErrorHandler, XMLFatalParseError |
25 from E4XML.XMLErrorHandler import XMLErrorHandler, XMLFatalParseError |
26 from E4XML.XMLEntityResolver import XMLEntityResolver |
26 from E4XML.XMLEntityResolver import XMLEntityResolver |
27 |
27 |
201 QMessageBox.critical(None, |
201 QMessageBox.critical(None, |
202 self.trUtf8("Read multiproject file"), |
202 self.trUtf8("Read multiproject file"), |
203 self.trUtf8("""Compressed multiproject files not supported.""" |
203 self.trUtf8("""Compressed multiproject files not supported.""" |
204 """ The compression library is missing.""")) |
204 """ The compression library is missing.""")) |
205 return False |
205 return False |
206 f = gzip.open(fn, "rb") |
206 f = gzip.open(fn, "r") |
207 else: |
207 else: |
208 f = open(fn, "rb") |
208 f = open(fn, "r") |
209 line = f.readline() |
209 line = f.readline() |
210 dtdLine = f.readline() |
210 dtdLine = f.readline() |
211 f.close() |
211 f.close() |
212 except EnvironmentError: |
212 except EnvironmentError: |
213 QApplication.restoreOverrideCursor() |
213 QApplication.restoreOverrideCursor() |
272 QMessageBox.critical(None, |
272 QMessageBox.critical(None, |
273 self.trUtf8("Read multiproject file"), |
273 self.trUtf8("Read multiproject file"), |
274 self.trUtf8("""Compressed multiproject files not supported.""" |
274 self.trUtf8("""Compressed multiproject files not supported.""" |
275 """ The compression library is missing.""")) |
275 """ The compression library is missing.""")) |
276 return False |
276 return False |
277 f = gzip.open(fn, "rb") |
277 f = gzip.open(fn, "r") |
278 else: |
278 else: |
279 f = open(fn, "rb") |
279 f = open(fn, "r") |
280 try: |
280 try: |
281 try: |
281 try: |
282 parser.parse(f) |
282 parser.parse(f) |
283 except UnicodeEncodeError: |
283 except UnicodeEncodeError: |
284 f.seek(0) |
284 f.seek(0) |
285 buf = cStringIO.StringIO(f.read()) |
285 buf = io.StringIO(f.read()) |
286 parser.parse(buf) |
286 parser.parse(buf) |
287 finally: |
287 finally: |
288 f.close() |
288 f.close() |
289 except IOError: |
289 except IOError: |
290 QApplication.restoreOverrideCursor() |
290 QApplication.restoreOverrideCursor() |
349 QMessageBox.critical(None, |
349 QMessageBox.critical(None, |
350 self.trUtf8("Save multiproject file"), |
350 self.trUtf8("Save multiproject file"), |
351 self.trUtf8("""Compressed multiproject files not supported.""" |
351 self.trUtf8("""Compressed multiproject files not supported.""" |
352 """ The compression library is missing.""")) |
352 """ The compression library is missing.""")) |
353 return False |
353 return False |
354 f = gzip.open(fn, "wb") |
354 f = gzip.open(fn, "w") |
355 else: |
355 else: |
356 f = open(fn, "wb") |
356 f = open(fn, "w") |
357 |
357 |
358 MultiProjectWriter(self, f, os.path.splitext(os.path.basename(fn))[0])\ |
358 MultiProjectWriter(self, f, os.path.splitext(os.path.basename(fn))[0])\ |
359 .writeXML() |
359 .writeXML() |
360 |
360 |
361 f.close() |
361 f.close() |