eric6/MultiProject/MultiProject.py

changeset 7771
787a6b3f8c9f
parent 7759
51aa6c6b66f7
child 7780
41420f82c0ac
equal deleted inserted replaced
7770:49f3377aebf1 7771:787a6b3f8c9f
10 10
11 import os 11 import os
12 import shutil 12 import shutil
13 13
14 from PyQt5.QtCore import ( 14 from PyQt5.QtCore import (
15 pyqtSignal, pyqtSlot, Qt, QFileInfo, QFile, QIODevice, QObject, QUuid 15 pyqtSignal, pyqtSlot, QFileInfo, QFile, QIODevice, QObject, QUuid
16 ) 16 )
17 from PyQt5.QtGui import QCursor
18 from PyQt5.QtWidgets import QMenu, QApplication, QDialog, QToolBar 17 from PyQt5.QtWidgets import QMenu, QApplication, QDialog, QToolBar
19 18
20 from Globals import recentNameMultiProject 19 from Globals import recentNameMultiProject
21 20
22 from E5Gui.E5Action import E5Action, createActionGroup 21 from E5Gui.E5Action import E5Action, createActionGroup
23 from E5Gui import E5FileDialog, E5MessageBox, E5PathPickerDialog 22 from E5Gui import E5FileDialog, E5MessageBox, E5PathPickerDialog
24 from E5Gui.E5PathPickerDialog import E5PathPickerModes 23 from E5Gui.E5PathPickerDialog import E5PathPickerModes
24 from E5Gui.E5OverrideCursor import E5OverrideCursor
25 25
26 import UI.PixmapCache 26 import UI.PixmapCache
27 27
28 import Preferences 28 import Preferences
29 import Utilities 29 import Utilities
223 @param fn filename of the multi project file to be read (string) 223 @param fn filename of the multi project file to be read (string)
224 @return flag indicating success 224 @return flag indicating success
225 """ 225 """
226 f = QFile(fn) 226 f = QFile(fn)
227 if f.open(QIODevice.ReadOnly): 227 if f.open(QIODevice.ReadOnly):
228 from E5XML.MultiProjectReader import MultiProjectReader 228 with E5OverrideCursor():
229 reader = MultiProjectReader(f, self) 229 from E5XML.MultiProjectReader import MultiProjectReader
230 reader.readXML() 230 reader = MultiProjectReader(f, self)
231 f.close() 231 reader.readXML()
232 f.close()
232 if reader.hasError(): 233 if reader.hasError():
233 return False 234 return False
234 else: 235 else:
235 QApplication.restoreOverrideCursor()
236 E5MessageBox.critical( 236 E5MessageBox.critical(
237 self.ui, 237 self.ui,
238 self.tr("Read multiproject file"), 238 self.tr("Read multiproject file"),
239 self.tr( 239 self.tr(
240 "<p>The multiproject file <b>{0}</b> could not be" 240 "<p>The multiproject file <b>{0}</b> could not be"
551 fn = None 551 fn = None
552 552
553 QApplication.processEvents() 553 QApplication.processEvents()
554 554
555 if fn is not None: 555 if fn is not None:
556 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
557 QApplication.processEvents()
558 self.closeMultiProject() 556 self.closeMultiProject()
559 if self.__readMultiProject(fn): 557 ok = self.__readMultiProject(fn)
558 if ok:
560 self.opened = True 559 self.opened = True
561 QApplication.restoreOverrideCursor()
562 QApplication.processEvents()
563 560
564 self.closeAct.setEnabled(True) 561 self.closeAct.setEnabled(True)
565 self.saveasAct.setEnabled(True) 562 self.saveasAct.setEnabled(True)
566 self.addProjectAct.setEnabled(True) 563 self.addProjectAct.setEnabled(True)
567 self.propsAct.setEnabled(True) 564 self.propsAct.setEnabled(True)
569 self.multiProjectOpened.emit() 566 self.multiProjectOpened.emit()
570 567
571 if openMaster and Preferences.getMultiProject( 568 if openMaster and Preferences.getMultiProject(
572 "OpenMasterAutomatically"): 569 "OpenMasterAutomatically"):
573 self.__openMasterProject(False) 570 self.__openMasterProject(False)
574 else:
575 QApplication.restoreOverrideCursor()
576 571
577 def saveMultiProject(self): 572 def saveMultiProject(self):
578 """ 573 """
579 Public slot to save the current multi project. 574 Public slot to save the current multi project.
580 575

eric ide

mercurial