Changeset fc40752a5a78…
Parent 29f088531f12…
by
Changes to 5 files · Browse files at fc40752a5a78 Showing diff from parent 29f088531f12 Diff from another changeset...
@@ -401,3 +401,15 @@ it = self.tview.model().getRepoItem(hglib.fromunicode(uroot))
if it:
it.setBaseNode(basenode)
+
+ @pyqtSlot(QString)
+ def repoChanged(self, uroot):
+ m = self.tview.model()
+ changedrootpath = hglib.fromunicode(uroot).replace("\\", "/")
+ def isAboveOrBelowUroot(testedpath):
+ """Return True if rootpath is contained or contains uroot"""
+ r1 = testedpath.replace("\\", "/") + "/"
+ r2 = changedrootpath + "/"
+ return r1.startswith(r2) or r2.startswith(r1)
+
+ m.loadSubrepos(m.rootItem, isAboveOrBelowUroot)
|
@@ -197,9 +197,6 @@ def flags(self):
return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsDragEnabled
- def removeRows(self, row, count):
- return False
-
def dump(self, xw):
xw.writeAttribute('root', hglib.tounicode(self._root))
xw.writeAttribute('shortname', self.shortname())
@@ -252,7 +249,7 @@ if invalidSubrepoList:
self._valid = False
invalidRepoList += invalidSubrepoList
-
+
except (EnvironmentError, error.RepoError, util.Abort), e:
# Add the repo to the list of repos/subrepos
# that could not be open
@@ -328,7 +325,7 @@ else:
return ['open', 'clone', None, 'explore', 'terminal',
None, 'settings']
-
+
class RepoGroupItem(RepoTreeItem):
def __init__(self, name=None, parent=None):
|
@@ -290,10 +290,11 @@ return count
count += 1
- def loadSubrepos(self, root):
- warningmsg = ''
+ def loadSubrepos(self, root, filterFunc=(lambda r: True)):
for c in getRepoItemList(root):
- if self.showNetworkSubrepos \
- or not paths.netdrive_status(c.rootpath()):
-
- invalidRepoList = c.appendSubrepos()
+ if filterFunc(c.rootpath()):
+ if self.showNetworkSubrepos \
+ or not paths.netdrive_status(c.rootpath()):
+ self.removeRows(0, c.childCount(),
+ self.createIndex(c.row(), 0, c))
+ c.appendSubrepos()
|
@@ -45,6 +45,8 @@ progress = pyqtSignal(QString, object, QString, QString, object)
makeLogVisible = pyqtSignal(bool)
+ repoChanged = pyqtSignal(QString)
+
revisionSelected = pyqtSignal(object)
titleChanged = pyqtSignal(unicode)
@@ -828,6 +830,9 @@ else:
self.dirty = True
+ # Update the repo registry entries related to the current repo
+ self.repoChanged.emit(hglib.tounicode(self.repo.root))
+
def configChanged(self):
'Repository is reporting its config files have changed'
self.repomodel.invalidate()
|
@@ -620,6 +620,7 @@ rw.toolbarVisibilityChanged.connect(self.updateToolBarActions)
rw.shortNameChanged.connect(self.reporegistry.shortNameChanged)
rw.baseNodeChanged.connect(self.reporegistry.baseNodeChanged)
+ rw.repoChanged.connect(self.reporegistry.repoChanged)
tw = self.repoTabsWidget
index = self.repoTabsWidget.addTab(rw, rw.title())
|
Loading...