--- a/src/eric7/Plugins/VcsPlugins/vcsPySvn/subversion.py Sun Nov 06 11:22:39 2022 +0100 +++ b/src/eric7/Plugins/VcsPlugins/vcsPySvn/subversion.py Mon Nov 07 17:19:58 2022 +0100 @@ -24,6 +24,7 @@ from eric7.EricUtilities.EricMutexLocker import EricMutexLocker from eric7.EricWidgets import EricMessageBox from eric7.EricWidgets.EricApplication import ericApp +from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog from eric7.VCS.VersionControl import VersionControl from .SvnDialog import SvnDialog @@ -478,11 +479,11 @@ @param message message for this operation (string) @param noDialog flag indicating quiet operations """ + from .SvnCommitDialog import SvnCommitDialog + if not noDialog and not message: # call CommitDialog and get message from there if self.__commitDialog is None: - from .SvnCommitDialog import SvnCommitDialog - self.__commitDialog = SvnCommitDialog(self, self.__ui) self.__commitDialog.accepted.connect(self.__vcsCommit_Step2) self.__commitDialog.show() @@ -962,6 +963,8 @@ @param noDialog flag indicating quiet operations @return flag indicating successfull operation (boolean) """ + from .SvnCopyDialog import SvnCopyDialog + rx_prot = re.compile("(file:|svn:|svn+ssh:|http:|https:).+") opts = self.options["global"] res = False @@ -972,8 +975,6 @@ force = True accepted = True else: - from .SvnCopyDialog import SvnCopyDialog - dlg = SvnCopyDialog(name, None, True, "--force" in opts) accepted = dlg.exec() == QDialog.DialogCode.Accepted if accepted: @@ -1039,6 +1040,8 @@ @param name file/directory name to be diffed (string) """ + from .SvnDiffDialog import SvnDiffDialog + names = name[:] if isinstance(name, list) else [name] for nam in names: if os.path.isfile(nam): @@ -1050,8 +1053,6 @@ if nam == project.ppath and not project.saveAllScripts(): return if self.diff is None: - from .SvnDiffDialog import SvnDiffDialog - self.diff = SvnDiffDialog(self) self.diff.show() self.diff.raise_() @@ -1066,9 +1067,9 @@ @param name file/directory name(s) to show the status of (string or list of strings) """ + from .SvnStatusDialog import SvnStatusDialog + if self.status is None: - from .SvnStatusDialog import SvnStatusDialog - self.status = SvnStatusDialog(self) self.status.show() self.status.raise_() @@ -1082,6 +1083,8 @@ @param name file/directory name to be tagged (string) """ + from .SvnTagDialog import SvnTagDialog + dname, fname = self.splitPath(name) reposURL = self.svnGetReposName(dname) @@ -1100,8 +1103,6 @@ url = ( None if self.otherData["standardLayout"] else self.svnNormalizeURL(reposURL) ) - from .SvnTagDialog import SvnTagDialog - dlg = SvnTagDialog( self.allTagsBranchesList, url, self.otherData["standardLayout"] ) @@ -1191,10 +1192,6 @@ project = ericApp().getObject("Project") names = [project.getRelativePath(nam) for nam in name] if names[0]: - from eric7.UI.DeleteFilesConfirmationDialog import ( - DeleteFilesConfirmationDialog, - ) - dia = DeleteFilesConfirmationDialog( self.parent(), self.tr("Revert changes"), @@ -1255,6 +1252,8 @@ @return flag indicating, that the switch contained an add or delete (boolean) """ + from .SvnSwitchDialog import SvnSwitchDialog + dname, fname = self.splitPath(name) reposURL = self.svnGetReposName(dname) @@ -1273,8 +1272,6 @@ url = ( None if self.otherData["standardLayout"] else self.svnNormalizeURL(reposURL) ) - from .SvnSwitchDialog import SvnSwitchDialog - dlg = SvnSwitchDialog( self.allTagsBranchesList, url, self.otherData["standardLayout"] ) @@ -1339,11 +1336,11 @@ @param name file/directory name to be merged (string) """ + from .SvnMergeDialog import SvnMergeDialog + dname, fname = self.splitPath(name) opts = self.options["global"] - from .SvnMergeDialog import SvnMergeDialog - dlg = SvnMergeDialog( self.mergeList[0], self.mergeList[1], self.mergeList[2], "--force" in opts ) @@ -1549,6 +1546,8 @@ @return the received dictionary completed with a combination of canBeCommited and canBeAdded or None in order to signal an error """ + from .SvnDialogMixin import SvnDialogMixin + if dname.endswith(os.sep): dname = dname[:-1] dname = os.path.normcase(dname) @@ -1567,8 +1566,6 @@ if os.path.splitdrive(repodir)[1] == os.sep: return names - from .SvnDialogMixin import SvnDialogMixin - mixin = SvnDialogMixin() client = self.getClient() client.callback_get_login = mixin._clientLoginCallback @@ -1627,6 +1624,8 @@ @return the received dictionary completed with a combination of canBeCommited and canBeAdded or None in order to signal an error """ + from .SvnDialogMixin import SvnDialogMixin + if not os.path.isdir(os.path.join(dname, self.adminDir)): # not under version control -> do nothing return names @@ -1642,8 +1641,6 @@ names[name] = self.statusCache[name] if not found: - from .SvnDialogMixin import SvnDialogMixin - mixin = SvnDialogMixin() client = self.getClient() client.callback_get_login = mixin._clientLoginCallback @@ -1740,6 +1737,10 @@ @param name directory name of the working directory (string) """ + from eric7.Plugins.VcsPlugins.vcsSubversion.SvnDialog import ( + SvnDialog as SvnProcessDialog, + ) + from .SvnCommandDialog import SvnCommandDialog dlg = SvnCommandDialog(self.commandHistory, self.wdHistory, name) @@ -1759,10 +1760,6 @@ args = [] self.addArguments(args, commandList) - from eric7.Plugins.VcsPlugins.vcsSubversion.SvnDialog import ( - SvnDialog as SvnProcessDialog, - ) - dia = SvnProcessDialog(self.tr("Subversion command")) res = dia.startProcess(args, wd) if res: @@ -1959,9 +1956,9 @@ @param name file/directory name (string or list of strings) @param recursive flag indicating a recursive list is requested """ + from .SvnPropListDialog import SvnPropListDialog + if self.propList is None: - from .SvnPropListDialog import SvnPropListDialog - self.propList = SvnPropListDialog(self) self.propList.show() self.propList.raise_() @@ -2092,9 +2089,9 @@ @param tags flag indicating listing of branches or tags (False = branches, True = tags) """ + from .SvnTagBranchListDialog import SvnTagBranchListDialog + if self.tagbranchList is None: - from .SvnTagBranchListDialog import SvnTagBranchListDialog - self.tagbranchList = SvnTagBranchListDialog(self) self.tagbranchList.show() self.tagbranchList.raise_() @@ -2120,9 +2117,9 @@ @param name file name to show the blame for (string) """ + from .SvnBlameDialog import SvnBlameDialog + if self.blame is None: - from .SvnBlameDialog import SvnBlameDialog - self.blame = SvnBlameDialog(self) self.blame.show() self.blame.raise_() @@ -2143,6 +2140,9 @@ @param name file/directory name to be diffed (string) """ + from .SvnDiffDialog import SvnDiffDialog + from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog + names = name[:] if isinstance(name, list) else [name] for nam in names: if os.path.isfile(nam): @@ -2153,14 +2153,10 @@ project = ericApp().getObject("Project") if nam == project.ppath and not project.saveAllScripts(): return - from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog - dlg = SvnRevisionSelectionDialog() if dlg.exec() == QDialog.DialogCode.Accepted: revisions = dlg.getRevisions() if self.diff is None: - from .SvnDiffDialog import SvnDiffDialog - self.diff = SvnDiffDialog(self) self.diff.show() self.diff.raise_() @@ -2181,6 +2177,9 @@ @param name file/directory name to be diffed (string) """ + from .SvnDiffDialog import SvnDiffDialog + from .SvnUrlSelectionDialog import SvnUrlSelectionDialog + names = name[:] if isinstance(name, list) else [name] for nam in names: if os.path.isfile(nam): @@ -2194,14 +2193,10 @@ dname = self.splitPath(names[0])[0] - from .SvnUrlSelectionDialog import SvnUrlSelectionDialog - dlg = SvnUrlSelectionDialog(self, self.tagsList, self.branchesList, dname) if dlg.exec() == QDialog.DialogCode.Accepted: urls, summary = dlg.getURLs() if self.diff is None: - from .SvnDiffDialog import SvnDiffDialog - self.diff = SvnDiffDialog(self) self.diff.show() self.diff.raise_() @@ -2262,12 +2257,14 @@ @param revisions tuple of two revisions (tuple of strings) @exception ValueError raised to indicate an invalid name parameter type """ + from eric7.UI.CompareDialog import CompareDialog + + from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog + if isinstance(name, list): raise ValueError("Wrong parameter type") if extended: - from .SvnRevisionSelectionDialog import SvnRevisionSelectionDialog - dlg = SvnRevisionSelectionDialog() if dlg.exec() == QDialog.DialogCode.Accepted: rev1, rev2 = dlg.getRevisions() @@ -2314,8 +2311,6 @@ return if self.sbsDiff is None: - from eric7.UI.CompareDialog import CompareDialog - self.sbsDiff = CompareDialog() self.sbsDiff.show() self.sbsDiff.raise_() @@ -2329,9 +2324,9 @@ @param name file/directory name to show the log of (string) @param isFile flag indicating log for a file is to be shown (boolean) """ + from .SvnLogBrowserDialog import SvnLogBrowserDialog + if self.logBrowser is None: - from .SvnLogBrowserDialog import SvnLogBrowserDialog - self.logBrowser = SvnLogBrowserDialog(self) self.logBrowser.show() self.logBrowser.raise_() @@ -2475,6 +2470,8 @@ @param projectPath path name of the project (string) """ + from .SvnRepoBrowserDialog import SvnRepoBrowserDialog + url = self.svnGetReposName(projectPath) if projectPath else None if url is None: url, ok = QInputDialog.getText( @@ -2487,8 +2484,6 @@ return if self.repoBrowser is None: - from .SvnRepoBrowserDialog import SvnRepoBrowserDialog - self.repoBrowser = SvnRepoBrowserDialog(self) self.repoBrowser.start(url) self.repoBrowser.show()