Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py

branch
Py2 comp.
changeset 3057
10516539f238
parent 2791
a9577f248f04
parent 3009
bf5ae5d7477d
child 3058
0a02c433f52d
equal deleted inserted replaced
3056:9986ec0e559a 3057:10516539f238
62 62
63 self.__urlRole = Qt.UserRole 63 self.__urlRole = Qt.UserRole
64 self.__ignoreExpand = False 64 self.__ignoreExpand = False
65 self.intercept = False 65 self.intercept = False
66 66
67 self.__rx_dir = \ 67 self.__rx_dir = QRegExp(
68 QRegExp(r"""\s*([0-9]+)\s+(\w+)\s+((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""") 68 r"""\s*([0-9]+)\s+(\w+)\s+"""
69 self.__rx_file = \ 69 r"""((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""")
70 QRegExp(r"""\s*([0-9]+)\s+(\w+)\s+([0-9]+)\s((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""") 70 self.__rx_file = QRegExp(
71 r"""\s*([0-9]+)\s+(\w+)\s+([0-9]+)\s"""
72 r"""((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""")
71 73
72 def closeEvent(self, e): 74 def closeEvent(self, e):
73 """ 75 """
74 Private slot implementing a close event handler. 76 Private slot implementing a close event handler.
75 77
96 """ 98 """
97 self.repoTree.header().resizeSections(QHeaderView.ResizeToContents) 99 self.repoTree.header().resizeSections(QHeaderView.ResizeToContents)
98 self.repoTree.header().setStretchLastSection(True) 100 self.repoTree.header().setStretchLastSection(True)
99 101
100 def __generateItem(self, repopath, revision, author, size, date, 102 def __generateItem(self, repopath, revision, author, size, date,
101 nodekind, url): 103 nodekind, url):
102 """ 104 """
103 Private method to generate a tree item in the repository tree. 105 Private method to generate a tree item in the repository tree.
104 106
105 @param parent parent of the item to be created (QTreeWidget or QTreeWidgetItem)
106 @param repopath path of the item (string) 107 @param repopath path of the item (string)
107 @param revision revision info (string) 108 @param revision revision info (string)
108 @param author author info (string) 109 @param author author info (string)
109 @param size size info (string) 110 @param size size info (string)
110 @param date date info (string) 111 @param date date info (string)
168 procStarted = process.waitForStarted(5000) 169 procStarted = process.waitForStarted(5000)
169 if procStarted: 170 if procStarted:
170 finished = process.waitForFinished(30000) 171 finished = process.waitForFinished(30000)
171 if finished: 172 if finished:
172 if process.exitCode() == 0: 173 if process.exitCode() == 0:
173 output = str(process.readAllStandardOutput(), ioEncoding, 'replace') 174 output = str(process.readAllStandardOutput(), ioEncoding,
175 'replace')
174 for line in output.splitlines(): 176 for line in output.splitlines():
175 line = line.strip() 177 line = line.strip()
176 if line.startswith('<root>'): 178 if line.startswith('<root>'):
177 repoRoot = line.replace('<root>', '').replace('</root>', '') 179 repoRoot = line.replace('<root>', '')\
180 .replace('</root>', '')
178 break 181 break
179 else: 182 else:
180 error = str(process.readAllStandardError(), 183 error = str(process.readAllStandardError(),
181 Preferences.getSystem("IOEncoding"), 184 Preferences.getSystem("IOEncoding"),
182 'replace') 185 'replace')
214 repoRoot = self.__repoRoot(url) 217 repoRoot = self.__repoRoot(url)
215 if repoRoot is None: 218 if repoRoot is None:
216 self.__finish() 219 self.__finish()
217 return 220 return
218 self.__ignoreExpand = True 221 self.__ignoreExpand = True
219 itm = self.__generateItem(repoRoot, "", "", "", "", "dir", repoRoot) 222 itm = self.__generateItem(
223 repoRoot, "", "", "", "", "dir", repoRoot)
220 itm.setExpanded(True) 224 itm.setExpanded(True)
221 self.parentItem = itm 225 self.parentItem = itm
222 urlPart = repoRoot 226 urlPart = repoRoot
223 for element in url.replace(repoRoot, "").split("/"): 227 for element in url.replace(repoRoot, "").split("/"):
224 if element: 228 if element:
225 urlPart = "{0}/{1}".format(urlPart, element) 229 urlPart = "{0}/{1}".format(urlPart, element)
226 itm = self.__generateItem(element, "", "", "", "", "dir", urlPart) 230 itm = self.__generateItem(
231 element, "", "", "", "", "dir", urlPart)
227 itm.setExpanded(True) 232 itm.setExpanded(True)
228 self.parentItem = itm 233 self.parentItem = itm
229 itm.setExpanded(False) 234 itm.setExpanded(False)
230 self.__ignoreExpand = False 235 self.__ignoreExpand = False
231 self.__finish() 236 self.__finish()
348 else: 353 else:
349 return "" 354 return ""
350 355
351 def __finish(self): 356 def __finish(self):
352 """ 357 """
353 Private slot called when the process finished or the user pressed the button. 358 Private slot called when the process finished or the user pressed the
359 button.
354 """ 360 """
355 if self.process is not None and \ 361 if self.process is not None and \
356 self.process.state() != QProcess.NotRunning: 362 self.process.state() != QProcess.NotRunning:
357 self.process.terminate() 363 self.process.terminate()
358 QTimer.singleShot(2000, self.process.kill) 364 QTimer.singleShot(2000, self.process.kill)
405 name = self.__rx_file.cap(5).strip() 411 name = self.__rx_file.cap(5).strip()
406 nodekind = "file" 412 nodekind = "file"
407 else: 413 else:
408 continue 414 continue
409 url = "{0}/{1}".format(self.repoUrl, name) 415 url = "{0}/{1}".format(self.repoUrl, name)
410 self.__generateItem(name, revision, author, size, date, nodekind, url) 416 self.__generateItem(
417 name, revision, author, size, date, nodekind, url)
411 418
412 def __readStderr(self): 419 def __readStderr(self):
413 """ 420 """
414 Private slot to handle the readyReadStandardError signal. 421 Private slot to handle the readyReadStandardError signal.
415 422

eric ide

mercurial