Project/Project.py

changeset 486
e4711a55e482
parent 476
121633976eca
child 500
c3abc7895a01
equal deleted inserted replaced
485:b17b3aea644e 486:e4711a55e482
71 class Project(QObject): 71 class Project(QObject):
72 """ 72 """
73 Class implementing the project management functionality. 73 Class implementing the project management functionality.
74 74
75 @signal dirty(int) emitted when the dirty state changes 75 @signal dirty(int) emitted when the dirty state changes
76 @signal projectSessionLoaded() emitted after a project session file was loaded
77 @signal projectLanguageAdded(string) emitted after a new language was added 76 @signal projectLanguageAdded(string) emitted after a new language was added
78 @signal projectLanguageAddedByCode(string) emitted after a new language was added. 77 @signal projectLanguageAddedByCode(string) emitted after a new language was added.
79 The language code is sent by this signal. 78 The language code is sent by this signal.
80 @signal projectFormAdded(string) emitted after a new form was added 79 @signal projectFormAdded(string) emitted after a new form was added
81 @signal projectSourceAdded(string) emitted after a new source file was added 80 @signal projectSourceAdded(string) emitted after a new source file was added
111 of the menu and a reference to the menu are given. 110 of the menu and a reference to the menu are given.
112 @signal lexerAssociationsChanged() emitted after the lexer associations have been 111 @signal lexerAssociationsChanged() emitted after the lexer associations have been
113 changed 112 changed
114 """ 113 """
115 sourceFile = pyqtSignal(str) 114 sourceFile = pyqtSignal(str)
115 projectOpened = pyqtSignal()
116 newProject = pyqtSignal()
117 projectClosed = pyqtSignal()
116 118
117 keynames = [ 119 keynames = [
118 "PROGLANGUAGE", "MIXEDLANGUAGE", "PROJECTTYPE", 120 "PROGLANGUAGE", "MIXEDLANGUAGE", "PROJECTTYPE",
119 "SPELLLANGUAGE", "SPELLWORDS", "SPELLEXCLUDES", 121 "SPELLLANGUAGE", "SPELLWORDS", "SPELLEXCLUDES",
120 "DESCRIPTION", "VERSION", "HASH", 122 "DESCRIPTION", "VERSION", "HASH",
2242 fn in self.pdata["OTHERS"]: 2244 fn in self.pdata["OTHERS"]:
2243 return True 2245 return True
2244 else: 2246 else:
2245 return False 2247 return False
2246 2248
2247 def newProject(self): 2249 def createNewProject(self):
2248 """ 2250 """
2249 Public slot to built a new project. 2251 Public slot to built a new project.
2250 2252
2251 This method displays the new project dialog and initializes 2253 This method displays the new project dialog and initializes
2252 the project object with the data entered. 2254 the project object with the data entered.
2473 self.vcs.vcsSetDataFromDict(vcsDataDict) 2475 self.vcs.vcsSetDataFromDict(vcsDataDict)
2474 self.saveProject() 2476 self.saveProject()
2475 self.vcs.vcsConvertProject(vcsDataDict, self) 2477 self.vcs.vcsConvertProject(vcsDataDict, self)
2476 else: 2478 else:
2477 self.emit(SIGNAL('newProjectHooks')) 2479 self.emit(SIGNAL('newProjectHooks'))
2478 self.emit(SIGNAL('newProject')) 2480 self.newProject.emit()
2479 2481
2480 else: 2482 else:
2481 self.emit(SIGNAL('newProjectHooks')) 2483 self.emit(SIGNAL('newProjectHooks'))
2482 self.emit(SIGNAL('newProject')) 2484 self.newProject.emit()
2483 2485
2484 2486
2485 def newProjectAddFiles(self, mainscript): 2487 def newProjectAddFiles(self, mainscript):
2486 """ 2488 """
2487 Public method to add files to a new project. 2489 Public method to add files to a new project.
2800 self.menuPackagersAct.setEnabled(True) 2802 self.menuPackagersAct.setEnabled(True)
2801 self.pluginGrp.setEnabled(self.pdata["PROJECTTYPE"][0] == "E4Plugin") 2803 self.pluginGrp.setEnabled(self.pdata["PROJECTTYPE"][0] == "E4Plugin")
2802 2804
2803 self.__model.projectOpened() 2805 self.__model.projectOpened()
2804 self.emit(SIGNAL('projectOpenedHooks')) 2806 self.emit(SIGNAL('projectOpenedHooks'))
2805 self.emit(SIGNAL('projectOpened')) 2807 self.projectOpened.emit()
2806 2808
2807 QApplication.restoreOverrideCursor() 2809 QApplication.restoreOverrideCursor()
2808 2810
2809 if Preferences.getProject("SearchNewFiles"): 2811 if Preferences.getProject("SearchNewFiles"):
2810 self.__doSearchNewFiles() 2812 self.__doSearchNewFiles()
2912 self.__writeTasks() 2914 self.__writeTasks()
2913 2915
2914 self.sessActGrp.setEnabled(ok) 2916 self.sessActGrp.setEnabled(ok)
2915 self.menuSessionAct.setEnabled(ok) 2917 self.menuSessionAct.setEnabled(ok)
2916 self.emit(SIGNAL('projectClosedHooks')) 2918 self.emit(SIGNAL('projectClosedHooks'))
2917 self.emit(SIGNAL('projectClosed')) 2919 self.projectClosed.emit()
2918 self.emit(SIGNAL('projectOpenedHooks')) 2920 self.emit(SIGNAL('projectOpenedHooks'))
2919 self.emit(SIGNAL('projectOpened')) 2921 self.projectOpened.emit()
2920 return True 2922 return True
2921 else: 2923 else:
2922 return False 2924 return False
2923 2925
2924 def checkDirty(self): 2926 def checkDirty(self):
3043 self.menuPackagersAct.setEnabled(False) 3045 self.menuPackagersAct.setEnabled(False)
3044 self.pluginGrp.setEnabled(False) 3046 self.pluginGrp.setEnabled(False)
3045 3047
3046 self.__model.projectClosed() 3048 self.__model.projectClosed()
3047 self.emit(SIGNAL('projectClosedHooks')) 3049 self.emit(SIGNAL('projectClosedHooks'))
3048 self.emit(SIGNAL('projectClosed')) 3050 self.projectClosed.emit()
3049 3051
3050 return True 3052 return True
3051 3053
3052 def saveAllScripts(self, reportSyntaxErrors = False): 3054 def saveAllScripts(self, reportSyntaxErrors = False):
3053 """ 3055 """
3348 act.setWhatsThis(self.trUtf8( 3350 act.setWhatsThis(self.trUtf8(
3349 """<b>New...</b>""" 3351 """<b>New...</b>"""
3350 """<p>This opens a dialog for entering the info for a""" 3352 """<p>This opens a dialog for entering the info for a"""
3351 """ new project.</p>""" 3353 """ new project.</p>"""
3352 )) 3354 ))
3353 act.triggered[()].connect(self.newProject) 3355 act.triggered[()].connect(self.createNewProject)
3354 self.actions.append(act) 3356 self.actions.append(act)
3355 3357
3356 act = E5Action(self.trUtf8('Open project'), 3358 act = E5Action(self.trUtf8('Open project'),
3357 UI.PixmapCache.getIcon("projectOpen.png"), 3359 UI.PixmapCache.getIcon("projectOpen.png"),
3358 self.trUtf8('&Open...'), 0, 0, 3360 self.trUtf8('&Open...'), 0, 0,

eric ide

mercurial