diff -r 0b936ff1bbb9 -r a2bc06a54d9d src/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py --- a/src/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py Sun Nov 06 11:22:39 2022 +0100 +++ b/src/eric7/Plugins/VcsPlugins/vcsMercurial/hg.py Mon Nov 07 17:19:58 2022 +0100 @@ -51,6 +51,17 @@ @param parent parent widget (QWidget) @param name name of this object (string) """ + from .CloseheadExtension.closehead import Closehead + from .GpgExtension.gpg import Gpg + from .HgUtilities import getConfigPath + from .HisteditExtension.histedit import Histedit + from .LargefilesExtension.largefiles import Largefiles + from .PurgeExtension.purge import Purge + from .QueuesExtension.queues import Queues + from .RebaseExtension.rebase import Rebase + from .ShelveExtension.shelve import Shelve + from .StripExtension.strip import Strip + VersionControl.__init__(self, parent, name) self.defaultOptions = { "global": [""], @@ -117,8 +128,6 @@ self.__activeExtensions = [] - from .HgUtilities import getConfigPath - self.__iniWatcher = QFileSystemWatcher(self) self.__iniWatcher.fileChanged.connect(self.__iniFileChanged) cfgFile = getConfigPath() @@ -135,16 +144,6 @@ self.__defaultPushConfigured = False # instantiate the extensions - from .CloseheadExtension.closehead import Closehead - from .GpgExtension.gpg import Gpg - from .HisteditExtension.histedit import Histedit - from .LargefilesExtension.largefiles import Largefiles - from .PurgeExtension.purge import Purge - from .QueuesExtension.queues import Queues - from .RebaseExtension.rebase import Rebase - from .ShelveExtension.shelve import Shelve - from .StripExtension.strip import Strip - self.__extensions = { "mq": Queues(self), "purge": Purge(self), @@ -400,6 +399,8 @@ @param mq flag indicating a queue commit (boolean) @param merge flag indicating a merge commit (boolean) """ + from .HgCommitDialog import HgCommitDialog + msg = message if mq or merge: @@ -409,8 +410,6 @@ if not noDialog: # call CommitDialog and get message from there if self.__commitDialog is None: - from .HgCommitDialog import HgCommitDialog - self.__commitDialog = HgCommitDialog(self, msg, mq, merge, self.__ui) self.__commitDialog.accepted.connect(self.__vcsCommit_Step2) self.__commitDialog.show() @@ -723,6 +722,8 @@ @param noDialog flag indicating quiet operations @return flag indicating successfull operation (boolean) """ + from .HgCopyDialog import HgCopyDialog + isDir = os.path.isdir(name) res = False @@ -732,8 +733,6 @@ force = True accepted = True else: - from .HgCopyDialog import HgCopyDialog - dlg = HgCopyDialog(name, None, True) accepted = dlg.exec() == QDialog.DialogCode.Accepted if accepted: @@ -781,6 +780,8 @@ @param name file/directory name to be diffed (string) """ + from .HgDiffDialog import HgDiffDialog + names = name[:] if isinstance(name, list) else [name] for nam in names: if os.path.isfile(nam): @@ -792,8 +793,6 @@ if nam == project.ppath and not project.saveAllScripts(): return if self.diff is None: - from .HgDiffDialog import HgDiffDialog - self.diff = HgDiffDialog(self) self.diff.show() self.diff.raise_() @@ -808,9 +807,9 @@ @param name file/directory name(s) to show the status of (string or list of strings) """ + from .HgStatusDialog import HgStatusDialog + if self.status is None: - from .HgStatusDialog import HgStatusDialog - self.status = HgStatusDialog(self) self.status.show() self.status.raise_() @@ -825,9 +824,9 @@ @param largefiles flag indicating to show the largefiles status as well (boolean) """ + from .HgSummaryDialog import HgSummaryDialog + if self.summary is None: - from .HgSummaryDialog import HgSummaryDialog - self.summary = HgSummaryDialog(self) self.summary.show() self.summary.raise_() @@ -893,6 +892,8 @@ or delete @rtype bool """ + from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog + args = self.initCommand("revert") if not self.getPlugin().getPreferences("CreateBackup"): args.append("--no-backup") @@ -907,10 +908,6 @@ project = ericApp().getObject("Project") names = [project.getRelativePath(nam) for nam in names] if names[0]: - from eric7.UI.DeleteFilesConfirmationDialog import ( - DeleteFilesConfirmationDialog, - ) - dlg = DeleteFilesConfirmationDialog( self.parent(), self.tr("Revert changes"), @@ -951,9 +948,9 @@ @param rev revision to merge with @type str """ + from .HgMergeDialog import HgMergeDialog + if not rev: - from .HgMergeDialog import HgMergeDialog - dlg = HgMergeDialog( self.hgGetTagsList(), self.hgGetBranchesList(), @@ -988,6 +985,8 @@ @param name file/directory name to be merged (string) """ + from eric7.UI.DeleteFilesConfirmationDialog import DeleteFilesConfirmationDialog + args = self.initCommand("resolve") if self.getPlugin().getPreferences("InternalMerge"): args.append("--tool") @@ -1002,10 +1001,6 @@ project = ericApp().getObject("Project") names = [project.getRelativePath(nam) for nam in names] if names[0]: - from eric7.UI.DeleteFilesConfirmationDialog import ( - DeleteFilesConfirmationDialog, - ) - dlg = DeleteFilesConfirmationDialog( self.parent(), self.tr("Re-Merge"), @@ -1486,9 +1481,9 @@ @param skiplist name of a skip list file @type str """ + from .HgAnnotateDialog import HgAnnotateDialog + if self.annotate is None: - from .HgAnnotateDialog import HgAnnotateDialog - self.annotate = HgAnnotateDialog(self) self.annotate.show() self.annotate.raise_() @@ -1508,6 +1503,9 @@ @param name file/directory name to be diffed (string) """ + from .HgDiffDialog import HgDiffDialog + from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog + names = name[:] if isinstance(name, list) else [name] for nam in names: if os.path.isfile(nam): @@ -1519,8 +1517,6 @@ if nam == project.ppath and not project.saveAllScripts(): return - from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog - dlg = HgRevisionsSelectionDialog( self.hgGetTagsList(), self.hgGetBranchesList(), @@ -1529,8 +1525,6 @@ if dlg.exec() == QDialog.DialogCode.Accepted: revisions = dlg.getRevisions() if self.diff is None: - from .HgDiffDialog import HgDiffDialog - self.diff = HgDiffDialog(self) self.diff.show() self.diff.raise_() @@ -1566,12 +1560,14 @@ @param revisions tuple of two revisions (tuple of strings) @exception ValueError raised to indicate an invalid name parameter """ + from eric7.UI.CompareDialog import CompareDialog + + from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog + if isinstance(name, list): raise ValueError("Wrong parameter type") if extended: - from .HgRevisionsSelectionDialog import HgRevisionsSelectionDialog - dlg = HgRevisionsSelectionDialog( self.hgGetTagsList(), self.hgGetBranchesList(), @@ -1618,8 +1614,6 @@ return if self.sbsDiff is None: - from eric7.UI.CompareDialog import CompareDialog - self.sbsDiff = CompareDialog() self.sbsDiff.show() self.sbsDiff.raise_() @@ -1634,12 +1628,12 @@ @param isFile flag indicating log for a file is to be shown (boolean) """ + from .HgLogBrowserDialog import HgLogBrowserDialog + if name == self.getClient().getRepository(): name = None if self.logBrowser is None: - from .HgLogBrowserDialog import HgLogBrowserDialog - self.logBrowser = HgLogBrowserDialog(self) self.logBrowser.show() self.logBrowser.raise_() @@ -1650,9 +1644,9 @@ Public method used to view the log of incoming changes from the Mercurial repository. """ + from .HgLogBrowserDialog import HgLogBrowserDialog + if self.logBrowserIncoming is None: - from .HgLogBrowserDialog import HgLogBrowserDialog - self.logBrowserIncoming = HgLogBrowserDialog(self, mode="incoming") self.logBrowserIncoming.show() self.logBrowserIncoming.raise_() @@ -1663,9 +1657,9 @@ Public method used to view the log of outgoing changes from the Mercurial repository. """ + from .HgLogBrowserDialog import HgLogBrowserDialog + if self.logBrowserOutgoing is None: - from .HgLogBrowserDialog import HgLogBrowserDialog - self.logBrowserOutgoing = HgLogBrowserDialog(self, mode="outgoing") self.logBrowserOutgoing.show() self.logBrowserOutgoing.raise_() @@ -1843,9 +1837,9 @@ """ Public method used to show a list of files containing conflicts. """ + from .HgConflictsListDialog import HgConflictsListDialog + if self.conflictsDlg is None: - from .HgConflictsListDialog import HgConflictsListDialog - self.conflictsDlg = HgConflictsListDialog(self) self.conflictsDlg.show() self.conflictsDlg.raise_() @@ -1975,6 +1969,8 @@ section of the data dialog @type dict """ + from .HgRepoConfigDataDialog import HgRepoConfigDataDialog + if repoName is None: repoName = self.getClient().getRepository() @@ -1982,8 +1978,6 @@ if not os.path.exists(cfgFile): # open dialog to enter the initial data withLargefiles = self.isExtensionActive("largefiles") and withLargefiles - from .HgRepoConfigDataDialog import HgRepoConfigDataDialog - dlg = HgRepoConfigDataDialog( withLargefiles=withLargefiles, largefilesData=largefilesData ) @@ -2143,9 +2137,9 @@ @param bundleData dictionary containing the bundle creation information @type dict """ + from .HgBundleDialog import HgBundleDialog + if bundleData is None: - from .HgBundleDialog import HgBundleDialog - dlg = HgBundleDialog( self.hgGetTagsList(), self.hgGetBranchesList(), @@ -2221,6 +2215,8 @@ Public method used to view the log of incoming changes from a changegroup file. """ + from .HgLogBrowserDialog import HgLogBrowserDialog + file = EricFileDialog.getOpenFileName( None, self.tr("Preview changegroup"), @@ -2231,8 +2227,6 @@ self.__lastChangeGroupPath = os.path.dirname(file) if self.logBrowserIncoming is None: - from .HgLogBrowserDialog import HgLogBrowserDialog - self.logBrowserIncoming = HgLogBrowserDialog(self, mode="incoming") self.logBrowserIncoming.show() self.logBrowserIncoming.raise_() @@ -2291,6 +2285,8 @@ @type str @exception ValueError raised to indicate an invalid bisect subcommand """ + from .HgRevisionSelectionDialog import HgRevisionSelectionDialog + if subcommand not in ("good", "bad", "skip", "reset"): raise ValueError( self.tr("Bisect subcommand ({0}) invalid.").format(subcommand) @@ -2298,8 +2294,6 @@ rev = "" if subcommand in ("good", "bad", "skip"): - from .HgRevisionSelectionDialog import HgRevisionSelectionDialog - dlg = HgRevisionSelectionDialog( self.hgGetTagsList(), self.hgGetBranchesList(), @@ -2524,9 +2518,9 @@ @return flag indicating success (boolean) @exception ValueError raised to indicate an invalid phase """ + from .HgPhaseDialog import HgPhaseDialog + if data is None: - from .HgPhaseDialog import HgPhaseDialog - dlg = HgPhaseDialog() if dlg.exec() == QDialog.DialogCode.Accepted: data = dlg.getData() @@ -2806,6 +2800,8 @@ """ Public method to remove sub-repositories. """ + from .HgRemoveSubrepositoriesDialog import HgRemoveSubrepositoriesDialog + hgsub = self.getHgSubPath() subrepositories = [] @@ -2834,8 +2830,6 @@ ) return - from .HgRemoveSubrepositoriesDialog import HgRemoveSubrepositoriesDialog - dlg = HgRemoveSubrepositoriesDialog(subrepositories) if dlg.exec() == QDialog.DialogCode.Accepted: subrepositories, removedSubrepos, deleteSubrepos = dlg.getData() @@ -3115,11 +3109,11 @@ """ Public method used to list the available bookmarks. """ + from .HgBookmarksListDialog import HgBookmarksListDialog + self.bookmarksList = [] if self.bookmarksListDlg is None: - from .HgBookmarksListDialog import HgBookmarksListDialog - self.bookmarksListDlg = HgBookmarksListDialog(self) self.bookmarksListDlg.show() self.bookmarksListDlg.raise_() @@ -3156,11 +3150,11 @@ @param revision revision to set bookmark for (string) @param bookmark name of the bookmark (string) """ + from .HgBookmarkDialog import HgBookmarkDialog + if bool(revision) and bool(bookmark): ok = True else: - from .HgBookmarkDialog import HgBookmarkDialog - dlg = HgBookmarkDialog( HgBookmarkDialog.DEFINE_MODE, self.hgGetTagsList(), @@ -3219,9 +3213,9 @@ @param renameInfo old and new names of the bookmark @type tuple of str and str """ + from .HgBookmarkRenameDialog import HgBookmarkRenameDialog + if not renameInfo: - from .HgBookmarkRenameDialog import HgBookmarkRenameDialog - dlg = HgBookmarkRenameDialog(self.hgGetBookmarksList()) if dlg.exec() == QDialog.DialogCode.Accepted: renameInfo = dlg.getData() @@ -3244,11 +3238,11 @@ @param revision revision to set bookmark for (string) @param bookmark name of the bookmark (string) """ + from .HgBookmarkDialog import HgBookmarkDialog + if bool(revision) and bool(bookmark): ok = True else: - from .HgBookmarkDialog import HgBookmarkDialog - dlg = HgBookmarkDialog( HgBookmarkDialog.MOVE_MODE, self.hgGetTagsList(),