Project/Project.py

branch
make_support
changeset 6252
5e5e57bf09ed
parent 6251
02afc7d22c41
child 6254
88cb0838c90d
equal deleted inserted replaced
6251:02afc7d22c41 6252:5e5e57bf09ed
2239 self.menuPackagersAct.setEnabled(True) 2239 self.menuPackagersAct.setEnabled(True)
2240 self.pluginGrp.setEnabled( 2240 self.pluginGrp.setEnabled(
2241 self.pdata["PROJECTTYPE"] in ["E6Plugin"]) 2241 self.pdata["PROJECTTYPE"] in ["E6Plugin"])
2242 self.addLanguageAct.setEnabled( 2242 self.addLanguageAct.setEnabled(
2243 bool(self.pdata["TRANSLATIONPATTERN"])) 2243 bool(self.pdata["TRANSLATIONPATTERN"]))
2244 self.makeGrp.setEnabled(
2245 self.pdata["MAKEPARAMS"]["MakeEnabled"])
2246 self.menuMakeAct.setEnabled(
2247 self.pdata["MAKEPARAMS"]["MakeEnabled"])
2244 2248
2245 self.projectAboutToBeCreated.emit() 2249 self.projectAboutToBeCreated.emit()
2246 2250
2247 hashStr = str(QCryptographicHash.hash( 2251 hashStr = str(QCryptographicHash.hash(
2248 QByteArray(self.ppath.encode("utf-8")), 2252 QByteArray(self.ppath.encode("utf-8")),
2888 self.menuPackagersAct.setEnabled(True) 2892 self.menuPackagersAct.setEnabled(True)
2889 self.pluginGrp.setEnabled( 2893 self.pluginGrp.setEnabled(
2890 self.pdata["PROJECTTYPE"] in ["E6Plugin"]) 2894 self.pdata["PROJECTTYPE"] in ["E6Plugin"])
2891 self.addLanguageAct.setEnabled( 2895 self.addLanguageAct.setEnabled(
2892 bool(self.pdata["TRANSLATIONPATTERN"])) 2896 bool(self.pdata["TRANSLATIONPATTERN"]))
2897 self.makeGrp.setEnabled(
2898 self.pdata["MAKEPARAMS"]["MakeEnabled"])
2899 self.menuMakeAct.setEnabled(
2900 self.pdata["MAKEPARAMS"]["MakeEnabled"])
2893 2901
2894 self.__model.projectOpened() 2902 self.__model.projectOpened()
2895 self.projectOpenedHooks.emit() 2903 self.projectOpenedHooks.emit()
2896 self.projectOpened.emit() 2904 self.projectOpened.emit()
2897 2905
3142 self.menuShowAct.setEnabled(False) 3150 self.menuShowAct.setEnabled(False)
3143 self.menuDiagramAct.setEnabled(False) 3151 self.menuDiagramAct.setEnabled(False)
3144 self.menuApidocAct.setEnabled(False) 3152 self.menuApidocAct.setEnabled(False)
3145 self.menuPackagersAct.setEnabled(False) 3153 self.menuPackagersAct.setEnabled(False)
3146 self.pluginGrp.setEnabled(False) 3154 self.pluginGrp.setEnabled(False)
3155 self.makeGrp.setEnabled(False)
3156 self.menuMakeAct.setEnabled(False)
3147 3157
3148 self.__model.projectClosed() 3158 self.__model.projectClosed()
3149 self.projectClosedHooks.emit() 3159 self.projectClosedHooks.emit()
3150 self.projectClosed.emit() 3160 self.projectClosed.emit()
3151 3161
3668 3678
3669 def initActions(self): 3679 def initActions(self):
3670 """ 3680 """
3671 Public slot to initialize the project related actions. 3681 Public slot to initialize the project related actions.
3672 """ 3682 """
3673 # TODO: add 'make' support
3674 self.actions = [] 3683 self.actions = []
3675 3684
3676 self.actGrp1 = createActionGroup(self) 3685 self.actGrp1 = createActionGroup(self)
3677 3686
3678 act = E5Action( 3687 act = E5Action(
4117 )) 4126 ))
4118 self.pluginSArchiveAct.triggered.connect( 4127 self.pluginSArchiveAct.triggered.connect(
4119 self.__pluginCreateSnapshotArchives) 4128 self.__pluginCreateSnapshotArchives)
4120 self.actions.append(self.pluginSArchiveAct) 4129 self.actions.append(self.pluginSArchiveAct)
4121 4130
4131 self.makeGrp = createActionGroup(self)
4132
4133 self.makeExecuteAct = E5Action(
4134 self.tr('Execute Make'),
4135 self.tr('&Execute Make'), 0, 0,
4136 self.makeGrp, 'project_make_execute')
4137 self.makeExecuteAct.setStatusTip(
4138 self.tr("Perform a 'make' run."))
4139 self.makeExecuteAct.setWhatsThis(self.tr(
4140 """<b>Execute Make</b>"""
4141 """<p>This performs a 'make' run to rebuild the configured"""
4142 """ target.</p>"""
4143 ))
4144 self.makeExecuteAct.triggered.connect(self.__executeMake)
4145 self.actions.append(self.makeExecuteAct)
4146
4147 self.makeTestAct = E5Action(
4148 self.tr('Test for Changes'),
4149 self.tr('&Test for Changes'), 0, 0,
4150 self.makeGrp, 'project_make_test')
4151 self.makeTestAct.setStatusTip(
4152 self.tr("Question 'make', if a rebuild is needed."))
4153 self.makeTestAct.setWhatsThis(self.tr(
4154 """<b>Test for Changes</b>"""
4155 """<p>This questions 'make', if a rebuild of the configured"""
4156 """ target is necessary.</p>"""
4157 ))
4158 self.makeTestAct.triggered.connect(self.__questionMake)
4159 self.actions.append(self.makeTestAct)
4160
4122 self.closeAct.setEnabled(False) 4161 self.closeAct.setEnabled(False)
4123 self.saveAct.setEnabled(False) 4162 self.saveAct.setEnabled(False)
4124 self.saveasAct.setEnabled(False) 4163 self.saveasAct.setEnabled(False)
4125 self.actGrp2.setEnabled(False) 4164 self.actGrp2.setEnabled(False)
4126 self.propsAct.setEnabled(False) 4165 self.propsAct.setEnabled(False)
4135 """ 4174 """
4136 Public slot to initialize the project menu. 4175 Public slot to initialize the project menu.
4137 4176
4138 @return the menu generated (QMenu) 4177 @return the menu generated (QMenu)
4139 """ 4178 """
4140 # TODO: add 'make' support
4141 menu = QMenu(self.tr('&Project'), self.parent()) 4179 menu = QMenu(self.tr('&Project'), self.parent())
4142 self.recentMenu = QMenu(self.tr('Open &Recent Projects'), menu) 4180 self.recentMenu = QMenu(self.tr('Open &Recent Projects'), menu)
4143 self.vcsMenu = QMenu(self.tr('&Version Control'), menu) 4181 self.vcsMenu = QMenu(self.tr('&Version Control'), menu)
4144 self.vcsMenu.setTearOffEnabled(True) 4182 self.vcsMenu.setTearOffEnabled(True)
4145 self.vcsProjectHelper.initMenu(self.vcsMenu) 4183 self.vcsProjectHelper.initMenu(self.vcsMenu)
4151 self.sessionMenu = QMenu(self.tr('Session'), menu) 4189 self.sessionMenu = QMenu(self.tr('Session'), menu)
4152 self.apidocMenu = QMenu(self.tr('Source &Documentation'), menu) 4190 self.apidocMenu = QMenu(self.tr('Source &Documentation'), menu)
4153 self.apidocMenu.setTearOffEnabled(True) 4191 self.apidocMenu.setTearOffEnabled(True)
4154 self.debuggerMenu = QMenu(self.tr('Debugger'), menu) 4192 self.debuggerMenu = QMenu(self.tr('Debugger'), menu)
4155 self.packagersMenu = QMenu(self.tr('Pac&kagers'), menu) 4193 self.packagersMenu = QMenu(self.tr('Pac&kagers'), menu)
4156 self.packagersMenu.setTearOffEnabled(True) 4194 self.makeMenu = QMenu(self.tr('Make'), menu)
4157 4195
4158 self.__menus = { 4196 self.__menus = {
4159 "Main": menu, 4197 "Main": menu,
4160 "Recent": self.recentMenu, 4198 "Recent": self.recentMenu,
4161 "VCS": self.vcsMenu, 4199 "VCS": self.vcsMenu,
4164 "Graphics": self.graphicsMenu, 4202 "Graphics": self.graphicsMenu,
4165 "Session": self.sessionMenu, 4203 "Session": self.sessionMenu,
4166 "Apidoc": self.apidocMenu, 4204 "Apidoc": self.apidocMenu,
4167 "Debugger": self.debuggerMenu, 4205 "Debugger": self.debuggerMenu,
4168 "Packagers": self.packagersMenu, 4206 "Packagers": self.packagersMenu,
4207 "Make": self.makeMenu,
4169 } 4208 }
4170 4209
4171 # connect the aboutToShow signals 4210 # connect the aboutToShow signals
4172 self.recentMenu.aboutToShow.connect(self.__showContextMenuRecent) 4211 self.recentMenu.aboutToShow.connect(self.__showContextMenuRecent)
4173 self.recentMenu.triggered.connect(self.__openRecent) 4212 self.recentMenu.triggered.connect(self.__openRecent)
4177 self.graphicsMenu.aboutToShow.connect(self.__showContextMenuGraphics) 4216 self.graphicsMenu.aboutToShow.connect(self.__showContextMenuGraphics)
4178 self.apidocMenu.aboutToShow.connect(self.__showContextMenuApiDoc) 4217 self.apidocMenu.aboutToShow.connect(self.__showContextMenuApiDoc)
4179 self.packagersMenu.aboutToShow.connect(self.__showContextMenuPackagers) 4218 self.packagersMenu.aboutToShow.connect(self.__showContextMenuPackagers)
4180 self.sessionMenu.aboutToShow.connect(self.__showContextMenuSession) 4219 self.sessionMenu.aboutToShow.connect(self.__showContextMenuSession)
4181 self.debuggerMenu.aboutToShow.connect(self.__showContextMenuDebugger) 4220 self.debuggerMenu.aboutToShow.connect(self.__showContextMenuDebugger)
4221 self.makeMenu.aboutToShow.connect(self.__showContextMenuMake)
4182 menu.aboutToShow.connect(self.__showMenu) 4222 menu.aboutToShow.connect(self.__showMenu)
4183 4223
4184 # build the show menu 4224 # build the show menu
4185 self.menuShow.setTearOffEnabled(True) 4225 self.menuShow.setTearOffEnabled(True)
4186 self.menuShow.addAction(self.codeMetricsAct) 4226 self.menuShow.addAction(self.codeMetricsAct)
4200 # build the debugger menu 4240 # build the debugger menu
4201 self.debuggerMenu.setTearOffEnabled(True) 4241 self.debuggerMenu.setTearOffEnabled(True)
4202 self.debuggerMenu.addActions(self.dbgActGrp.actions()) 4242 self.debuggerMenu.addActions(self.dbgActGrp.actions())
4203 4243
4204 # build the packagers menu 4244 # build the packagers menu
4245 self.packagersMenu.setTearOffEnabled(True)
4205 self.packagersMenu.addActions(self.pluginGrp.actions()) 4246 self.packagersMenu.addActions(self.pluginGrp.actions())
4206 self.packagersMenu.addSeparator() 4247 self.packagersMenu.addSeparator()
4248
4249 # build the make menu
4250 self.makeMenu.setTearOffEnabled(True)
4251 self.makeMenu.addActions(self.makeGrp.actions())
4252 self.makeMenu.addSeparator()
4207 4253
4208 # build the main menu 4254 # build the main menu
4209 menu.setTearOffEnabled(True) 4255 menu.setTearOffEnabled(True)
4210 menu.addActions(self.actGrp1.actions()) 4256 menu.addActions(self.actGrp1.actions())
4211 self.menuRecentAct = menu.addMenu(self.recentMenu) 4257 self.menuRecentAct = menu.addMenu(self.recentMenu)
4217 menu.addSeparator() 4263 menu.addSeparator()
4218 self.menuDebuggerAct = menu.addMenu(self.debuggerMenu) 4264 self.menuDebuggerAct = menu.addMenu(self.debuggerMenu)
4219 self.menuSessionAct = menu.addMenu(self.sessionMenu) 4265 self.menuSessionAct = menu.addMenu(self.sessionMenu)
4220 menu.addSeparator() 4266 menu.addSeparator()
4221 menu.addActions(self.actGrp2.actions()) 4267 menu.addActions(self.actGrp2.actions())
4268 menu.addSeparator()
4269 self.menuMakeAct = menu.addMenu(self.makeMenu)
4222 menu.addSeparator() 4270 menu.addSeparator()
4223 self.menuDiagramAct = menu.addMenu(self.graphicsMenu) 4271 self.menuDiagramAct = menu.addMenu(self.graphicsMenu)
4224 menu.addSeparator() 4272 menu.addSeparator()
4225 self.menuCheckAct = menu.addMenu(self.checksMenu) 4273 self.menuCheckAct = menu.addMenu(self.checksMenu)
4226 menu.addSeparator() 4274 menu.addSeparator()
4242 self.menuDiagramAct.setEnabled(False) 4290 self.menuDiagramAct.setEnabled(False)
4243 self.menuSessionAct.setEnabled(False) 4291 self.menuSessionAct.setEnabled(False)
4244 self.menuDebuggerAct.setEnabled(False) 4292 self.menuDebuggerAct.setEnabled(False)
4245 self.menuApidocAct.setEnabled(False) 4293 self.menuApidocAct.setEnabled(False)
4246 self.menuPackagersAct.setEnabled(False) 4294 self.menuPackagersAct.setEnabled(False)
4295 self.menuMakeAct.setEnabled(False)
4247 4296
4248 self.menu = menu 4297 self.menu = menu
4249 return menu 4298 return menu
4250 4299
4251 def initToolbars(self, toolbarManager): 4300 def initToolbars(self, toolbarManager):
4255 4304
4256 @param toolbarManager reference to a toolbar manager object 4305 @param toolbarManager reference to a toolbar manager object
4257 (E5ToolBarManager) 4306 (E5ToolBarManager)
4258 @return tuple of the generated toolbars (tuple of two QToolBar) 4307 @return tuple of the generated toolbars (tuple of two QToolBar)
4259 """ 4308 """
4260 # TODO: add 'make' support
4261 tb = QToolBar(self.tr("Project"), self.ui) 4309 tb = QToolBar(self.tr("Project"), self.ui)
4262 tb.setIconSize(UI.Config.ToolBarIconSize) 4310 tb.setIconSize(UI.Config.ToolBarIconSize)
4263 tb.setObjectName("ProjectToolbar") 4311 tb.setObjectName("ProjectToolbar")
4264 tb.setToolTip(self.tr('Project')) 4312 tb.setToolTip(self.tr('Project'))
4265 4313
5351 5399
5352 ######################################################################### 5400 #########################################################################
5353 ## Below are methods implementing the 'make' support 5401 ## Below are methods implementing the 'make' support
5354 ######################################################################### 5402 #########################################################################
5355 5403
5356 # TODO: add 'make' support 5404 def __showContextMenuMake(self):
5405 """
5406 Private slot called before the make menu is shown.
5407 """
5408 self.showMenu.emit("Make", self.makeMenu)
5409
5357 @pyqtSlot() 5410 @pyqtSlot()
5358 def executeMake(self): 5411 def executeMake(self):
5359 """ 5412 """
5360 Public slot to execute a project specific make run (auto-run). 5413 Public slot to execute a project specific make run (auto-run).
5361 """ 5414 """
5362 self.__executeMake(automatic=True) 5415 self.__executeMake(automatic=True)
5363 5416
5417 @pyqtSlot()
5364 def __executeMake(self, automatic=False): 5418 def __executeMake(self, automatic=False):
5365 """ 5419 """
5366 Private method to execute a project specific make run. 5420 Private method to execute a project specific make run.
5367 5421
5368 @param automatic flag indicating a non-user invoked execution 5422 @param automatic flag indicating a non-user invoked execution
5369 @type bool 5423 @type bool
5370 """ 5424 """
5371 # TODO: implement this 5425 # TODO: implement this
5372 pass 5426 pass
5373 5427
5428 @pyqtSlot()
5374 def __questionMake(self): 5429 def __questionMake(self):
5375 """ 5430 """
5376 Private method to question make for changes. 5431 Private method to question make for changes.
5377 """ 5432 """
5378 # TODO: implement this 5433 # TODO: implement this

eric ide

mercurial