Changeset 2fc9cb409d47…
Parent b18ca97eac6c…
by
Changes to 3 files · Browse files at 2fc9cb409d47 Showing diff from parent b18ca97eac6c Diff from another changeset...
@@ -159,7 +159,7 @@
def _initactions(self):
self._statusfilter = status.StatusFilterButton(
- statustext='MAC', text=_('Status'))
+ statustext='MASC', text=_('Status'))
self._toolbar.addWidget(self._statusfilter)
self._actions = {}
|
@@ -26,13 +26,13 @@ StatusRole = Qt.UserRole + 1
"""Role for file change status"""
- def __init__(self, repo, rev, statusfilter='MAC', parent=None):
+ def __init__(self, repo, rev, statusfilter='MASC', parent=None):
QAbstractItemModel.__init__(self, parent)
self._repo = repo
self._rev = rev
- assert util.all(c in 'MARC' for c in statusfilter)
+ assert util.all(c in 'MARSC' for c in statusfilter)
self._statusfilter = statusfilter
def data(self, index, role=Qt.DisplayRole):
@@ -79,7 +79,11 @@ if not index.isValid():
return True # root entry must be a directory
e = index.internalPointer()
- return len(e) != 0
+ if e.status == 'S':
+ # Consider subrepos as dirs as well
+ return True
+ else:
+ return len(e) != 0
def mimeData(self, indexes):
def preparefiles():
@@ -155,9 +159,9 @@
@pyqtSlot(str)
def setStatusFilter(self, status):
- """Filter file tree by change status 'MARC'"""
+ """Filter file tree by change status 'MARSC'"""
status = str(status)
- assert util.all(c in 'MARC' for c in status)
+ assert util.all(c in 'MARSC' for c in status)
if self._statusfilter == status:
return # for performance reason
self._statusfilter = status
@@ -181,6 +185,25 @@ roote = _Entry()
ctx = self._repo[self._rev]
+ # Add subrepos to the tree
+ subpaths = ctx.substate.keys()
+ for path in subpaths:
+ if not 'S' in self._statusfilter:
+ break
+ e = roote
+ pathelements = hglib.tounicode(path).split('/')
+ for p in pathelements[:-1]:
+ if not p in e:
+ e.addchild(p)
+ e = e[p]
+
+ p = pathelements[-1]
+ if not p in e:
+ e.addchild(p)
+ e = e[p]
+ e.setstatus('S')
+
+ # Add regular files to the tree
status = dict(zip(('M', 'A', 'R'),
(set(a) for a in self._repo.status(ctx.parents()[0],
ctx)[:3])))
@@ -258,7 +281,7 @@ return self._status
def setstatus(self, status):
- assert status in 'MARC'
+ assert status in 'MARSC'
self._status = status
def __len__(self):
|
@@ -782,7 +782,7 @@ statusChanged = pyqtSignal(str)
def __init__(self, statustext, types=None, parent=None, **kwargs):
- self._TYPES = 'MARC'
+ self._TYPES = 'MARSC'
if types is not None:
self._TYPES = types
#if 'text' not in kwargs:
|
Loading...