diff -r 47935c6e4744 -r bc74f74a95f5 Project/Project.py --- a/Project/Project.py Mon Aug 15 17:22:13 2016 +0200 +++ b/Project/Project.py Wed Aug 17 12:32:58 2016 +0200 @@ -134,38 +134,6 @@ lexerAssociationsChanged = pyqtSignal() projectChanged = pyqtSignal() - keynames = [ - "PROGLANGUAGE", "MIXEDLANGUAGE", "PROJECTTYPE", - "SPELLLANGUAGE", "SPELLWORDS", "SPELLEXCLUDES", - "DESCRIPTION", "VERSION", "HASH", - "AUTHOR", "EMAIL", - "SOURCES", "FORMS", "RESOURCES", - "TRANSLATIONS", "TRANSLATIONPATTERN", "TRANSLATIONSBINPATH", - "TRANSLATIONEXCEPTIONS", - "MAINSCRIPT", "EOL", - "VCS", "VCSOPTIONS", "VCSOTHERDATA", - "OTHERS", "INTERFACES", - "FILETYPES", "LEXERASSOCS", - "PROJECTTYPESPECIFICDATA", - "DOCUMENTATIONPARMS", - "PACKAGERSPARMS", - "CHECKERSPARMS", - "OTHERTOOLSPARMS", - ] - - dbgKeynames = [ - "INTERPRETER", "DEBUGCLIENT", - "ENVIRONMENTOVERRIDE", "ENVIRONMENTSTRING", - "REMOTEDEBUGGER", "REMOTEHOST", "REMOTECOMMAND", - "PATHTRANSLATION", "REMOTEPATH", "LOCALPATH", - "CONSOLEDEBUGGER", "CONSOLECOMMAND", - "REDIRECT", "NOENCODING", - ] - - userKeynames = [ - "VCSOVERRIDE", "VCSSTATUSMONITORINTERVAL", - ] - eols = [os.linesep, "\n", "\r", "\r\n"] def __init__(self, parent=None, filename=None): @@ -264,18 +232,19 @@ """ Private method to initialize the list of supported project types. """ - self.__projectTypes = {} self.__fileTypeCallbacks = {} self.__lexerAssociationCallbacks = {} self.__binaryTranslationsCallbacks = {} - self.__projectTypes["Qt4"] = self.tr("PyQt4 GUI") - self.__projectTypes["Qt4C"] = self.tr("PyQt4 Console") - self.__projectTypes["PyQt5"] = self.tr("PyQt5 GUI") - self.__projectTypes["PyQt5C"] = self.tr("PyQt5 Console") - self.__projectTypes["E6Plugin"] = self.tr("Eric6 Plugin") - self.__projectTypes["Console"] = self.tr("Console") - self.__projectTypes["Other"] = self.tr("Other") + self.__projectTypes = { + "Qt4": self.tr("PyQt4 GUI"), + "Qt4C": self.tr("PyQt4 Console"), + "PyQt5": self.tr("PyQt5 GUI"), + "PyQt5C": self.tr("PyQt5 Console"), + "E6Plugin": self.tr("Eric6 Plugin"), + "Console": self.tr("Console"), + "Other": self.tr("Other"), + } self.__projectProgLanguages = { "Python2": ["Qt4", "Qt4C", "PyQt5", "PyQt5C", @@ -436,33 +405,49 @@ self.dbgTracePython = False self.dbgAutoContinue = True - self.pdata = {} - for key in self.__class__.keynames: - self.pdata[key] = [] - self.pdata["AUTHOR"] = [''] - self.pdata["EMAIL"] = [''] - self.pdata["HASH"] = [''] - self.pdata["PROGLANGUAGE"] = ["Python3"] - self.pdata["MIXEDLANGUAGE"] = [False] - self.pdata["PROJECTTYPE"] = ["Qt4"] - self.pdata["SPELLLANGUAGE"] = \ - [Preferences.getEditor("SpellCheckingDefaultLanguage")] - self.pdata["SPELLWORDS"] = [''] - self.pdata["SPELLEXCLUDES"] = [''] - self.pdata["FILETYPES"] = {} - self.pdata["LEXERASSOCS"] = {} - self.pdata["PROJECTTYPESPECIFICDATA"] = {} - self.pdata["CHECKERSPARMS"] = {} - self.pdata["PACKAGERSPARMS"] = {} - self.pdata["DOCUMENTATIONPARMS"] = {} - self.pdata["OTHERTOOLSPARMS"] = {} - self.pdata["EOL"] = [-1] + self.pdata = { + # TODO: change these to use lists only where neccessary + "DESCRIPTION": [], + "VERSION": [], + "SOURCES": [], + "FORMS": [], + "RESOURCES": [], + "INTERFACES": [], + "OTHERS": [], + "TRANSLATIONS": [], + "TRANSLATIONPATTERN": [], + "TRANSLATIONSBINPATH": [], + "TRANSLATIONEXCEPTIONS": [], + "MAINSCRIPT": [], + "VCS": [], + "VCSOPTIONS": [], + "VCSOTHERDATA": [], + "AUTHOR": [''], + "EMAIL": [''], + "HASH": [''], + "PROGLANGUAGE": ["Python3"], + "MIXEDLANGUAGE": [False], + "PROJECTTYPE": ["PyQt5"], + "SPELLLANGUAGE": + [Preferences.getEditor("SpellCheckingDefaultLanguage")], + "SPELLWORDS": '', + "SPELLEXCLUDES": '', + "FILETYPES": {}, + "LEXERASSOCS": {}, + "PROJECTTYPESPECIFICDATA": {}, + "CHECKERSPARMS": {}, + "PACKAGERSPARMS": {}, + "DOCUMENTATIONPARMS": {}, + "OTHERTOOLSPARMS": {}, + "EOL": [-1], + } self.__initDebugProperties() - self.pudata = {} - for key in self.__class__.userKeynames: - self.pudata[key] = [] + self.pudata = { + "VCSOVERRIDE": "", + "VCSSTATUSMONITORINTERVAL": 0, + } self.vcs = self.initVCS() @@ -633,7 +618,7 @@ """ if self.pudata["VCSSTATUSMONITORINTERVAL"]: self.setStatusMonitorInterval( - self.pudata["VCSSTATUSMONITORINTERVAL"][0]) + self.pudata["VCSSTATUSMONITORINTERVAL"]) else: self.setStatusMonitorInterval( Preferences.getVCS("StatusMonitorInterval")) @@ -1175,15 +1160,22 @@ Private method to initialize the debug properties. """ self.debugPropertiesLoaded = False - self.debugProperties = {} - for key in self.__class__.dbgKeynames: - self.debugProperties[key] = "" - self.debugProperties["ENVIRONMENTOVERRIDE"] = False - self.debugProperties["REMOTEDEBUGGER"] = False - self.debugProperties["PATHTRANSLATION"] = False - self.debugProperties["CONSOLEDEBUGGER"] = False - self.debugProperties["REDIRECT"] = True - self.debugProperties["NOENCODING"] = False + self.debugProperties = { + "INTERPRETER": "", + "DEBUGCLIENT": "", + "ENVIRONMENTOVERRIDE": False, + "ENVIRONMENTSTRING": "", + "REMOTEDEBUGGER": False, + "REMOTEHOST": "", + "REMOTECOMMAND": "", + "PATHTRANSLATION": False, + "REMOTEPATH": "", + "LOCALPATH": "", + "CONSOLEDEBUGGER": False, + "CONSOLECOMMAND": "", + "REDIRECT": False, + "NOENCODING": False, + } def isDebugPropertiesLoaded(self): """ @@ -2535,8 +2527,7 @@ Private slot to display the user specific properties dialog. """ vcsSystem = self.pdata["VCS"] and self.pdata["VCS"][0] or None - vcsSystemOverride = self.pudata["VCSOVERRIDE"] and \ - self.pudata["VCSOVERRIDE"][0] or None + vcsSystemOverride = self.pudata["VCSOVERRIDE"] or None from .UserPropertiesDialog import UserPropertiesDialog dlg = UserPropertiesDialog(self) @@ -2546,9 +2537,9 @@ if (self.pdata["VCS"] and self.pdata["VCS"][0] != vcsSystem) or \ (self.pudata["VCSOVERRIDE"] and - self.pudata["VCSOVERRIDE"][0] != vcsSystemOverride) or \ + self.pudata["VCSOVERRIDE"] != vcsSystemOverride) or \ (vcsSystemOverride is not None and - len(self.pudata["VCSOVERRIDE"]) == 0): + not self.pudata["VCSOVERRIDE"]): # stop the VCS monitor thread and shutdown VCS if self.vcs is not None: self.vcs.stopStatusMonitor() @@ -2570,7 +2561,7 @@ if self.pudata["VCSSTATUSMONITORINTERVAL"]: self.setStatusMonitorInterval( - self.pudata["VCSSTATUSMONITORINTERVAL"][0]) + self.pudata["VCSSTATUSMONITORINTERVAL"]) else: self.setStatusMonitorInterval( Preferences.getVCS("StatusMonitorInterval")) @@ -3156,12 +3147,12 @@ project specific word and exclude list """ pwl = "" - if len(self.pdata["SPELLWORDS"][0]) > 0: - pwl = os.path.join(self.ppath, self.pdata["SPELLWORDS"][0]) + if self.pdata["SPELLWORDS"]: + pwl = os.path.join(self.ppath, self.pdata["SPELLWORDS"]) pel = "" - if len(self.pdata["SPELLEXCLUDES"][0]) > 0: - pel = os.path.join(self.ppath, self.pdata["SPELLEXCLUDES"][0]) + if self.pdata["SPELLEXCLUDES"]: + pel = os.path.join(self.ppath, self.pdata["SPELLEXCLUDES"]) return (pwl, pel) @@ -4337,9 +4328,8 @@ if self.pdata["VCS"] and self.pdata["VCS"][0] != 'None': if self.pudata["VCSOVERRIDE"] and \ - self.pudata["VCSOVERRIDE"][0] is not None and \ not nooverride: - vcsSystem = self.pudata["VCSOVERRIDE"][0] + vcsSystem = self.pudata["VCSOVERRIDE"] override = True if vcsSystem is not None: @@ -4349,7 +4339,7 @@ except ImportError: if override: # override failed, revert to original - self.pudata["VCSOVERRIDE"] = [] + self.pudata["VCSOVERRIDE"] = "" return self.initVCS(nooverride=True) if vcs: @@ -4365,7 +4355,7 @@ "<p>The selected VCS <b>{0}</b> could not be" " found. <br/>Reverting override.</p><p>{1}</p>") .format(vcsSystem, msg)) - self.pudata["VCSOVERRIDE"] = [] + self.pudata["VCSOVERRIDE"] = "" return self.initVCS(nooverride=True) QApplication.restoreOverrideCursor()