From d40371752b98c9892c66b9f0f406f8257e97c292 Mon Sep 17 00:00:00 2001 From: Mauricio Baeza Date: Fri, 20 Nov 2020 23:21:57 -0600 Subject: [PATCH] Add data from path in tree control --- source/easymacro2.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/source/easymacro2.py b/source/easymacro2.py index a9d40c1..79d2f06 100644 --- a/source/easymacro2.py +++ b/source/easymacro2.py @@ -3692,9 +3692,16 @@ class UnoTree(UnoBaseObject): tdm.setRoot(root) self.model.DataModel = tdm self._tdm = self.model.DataModel - self._add_data() + # ~ self._add_data() return + @property + def path(self): + return self.root + @path.setter + def path(self, value): + self.data = _P.walk_dir(value, True) + @property def data(self): return self._data @@ -4530,6 +4537,25 @@ class Paths(object): paths += [cls.join(folder, f) for f in files] return paths + @classmethod + def walk_dir(cls, path, tree=False): + folders = [] + if tree: + i = 0 + p = 0 + parents = {path: 0} + for root, dirs, _ in os.walk(path): + for name in dirs: + i += 1 + rn = cls.join(root, name) + if not rn in parents: + parents[rn] = i + folders.append((i, parents[root], name)) + else: + for root, dirs, _ in os.walk(path): + folders += [cls.join(root, name) for name in dirs] + return folders + @classmethod def from_id(cls, id_ext): pip = CTX.getValueByName('/singletons/com.sun.star.deployment.PackageInformationProvider')