Plugins/VcsPlugins/vcsSubversion/SvnRepoBrowserDialog.py

changeset 3009
bf5ae5d7477d
parent 2963
745d38097b7f
child 3020
542e97d4ecb3
child 3057
10516539f238
equal deleted inserted replaced
3008:7848489bcb92 3009:bf5ae5d7477d
56 56
57 self.__urlRole = Qt.UserRole 57 self.__urlRole = Qt.UserRole
58 self.__ignoreExpand = False 58 self.__ignoreExpand = False
59 self.intercept = False 59 self.intercept = False
60 60
61 self.__rx_dir = \ 61 self.__rx_dir = QRegExp(
62 QRegExp(r"""\s*([0-9]+)\s+(\w+)\s+((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""") 62 r"""\s*([0-9]+)\s+(\w+)\s+"""
63 self.__rx_file = \ 63 r"""((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""")
64 QRegExp(r"""\s*([0-9]+)\s+(\w+)\s+([0-9]+)\s((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""") 64 self.__rx_file = QRegExp(
65 r"""\s*([0-9]+)\s+(\w+)\s+([0-9]+)\s"""
66 r"""((?:\w+\s+\d+|[0-9.]+\s+\w+)\s+[0-9:]+)\s+(.+)\s*""")
65 67
66 def closeEvent(self, e): 68 def closeEvent(self, e):
67 """ 69 """
68 Private slot implementing a close event handler. 70 Private slot implementing a close event handler.
69 71
161 procStarted = process.waitForStarted(5000) 163 procStarted = process.waitForStarted(5000)
162 if procStarted: 164 if procStarted:
163 finished = process.waitForFinished(30000) 165 finished = process.waitForFinished(30000)
164 if finished: 166 if finished:
165 if process.exitCode() == 0: 167 if process.exitCode() == 0:
166 output = str(process.readAllStandardOutput(), ioEncoding, 'replace') 168 output = str(process.readAllStandardOutput(), ioEncoding,
169 'replace')
167 for line in output.splitlines(): 170 for line in output.splitlines():
168 line = line.strip() 171 line = line.strip()
169 if line.startswith('<root>'): 172 if line.startswith('<root>'):
170 repoRoot = line.replace('<root>', '').replace('</root>', '') 173 repoRoot = line.replace('<root>', '')\
174 .replace('</root>', '')
171 break 175 break
172 else: 176 else:
173 error = str(process.readAllStandardError(), 177 error = str(process.readAllStandardError(),
174 Preferences.getSystem("IOEncoding"), 178 Preferences.getSystem("IOEncoding"),
175 'replace') 179 'replace')
207 repoRoot = self.__repoRoot(url) 211 repoRoot = self.__repoRoot(url)
208 if repoRoot is None: 212 if repoRoot is None:
209 self.__finish() 213 self.__finish()
210 return 214 return
211 self.__ignoreExpand = True 215 self.__ignoreExpand = True
212 itm = self.__generateItem(repoRoot, "", "", "", "", "dir", repoRoot) 216 itm = self.__generateItem(
217 repoRoot, "", "", "", "", "dir", repoRoot)
213 itm.setExpanded(True) 218 itm.setExpanded(True)
214 self.parentItem = itm 219 self.parentItem = itm
215 urlPart = repoRoot 220 urlPart = repoRoot
216 for element in url.replace(repoRoot, "").split("/"): 221 for element in url.replace(repoRoot, "").split("/"):
217 if element: 222 if element:
218 urlPart = "{0}/{1}".format(urlPart, element) 223 urlPart = "{0}/{1}".format(urlPart, element)
219 itm = self.__generateItem(element, "", "", "", "", "dir", urlPart) 224 itm = self.__generateItem(
225 element, "", "", "", "", "dir", urlPart)
220 itm.setExpanded(True) 226 itm.setExpanded(True)
221 self.parentItem = itm 227 self.parentItem = itm
222 itm.setExpanded(False) 228 itm.setExpanded(False)
223 self.__ignoreExpand = False 229 self.__ignoreExpand = False
224 self.__finish() 230 self.__finish()
341 else: 347 else:
342 return "" 348 return ""
343 349
344 def __finish(self): 350 def __finish(self):
345 """ 351 """
346 Private slot called when the process finished or the user pressed the button. 352 Private slot called when the process finished or the user pressed the
353 button.
347 """ 354 """
348 if self.process is not None and \ 355 if self.process is not None and \
349 self.process.state() != QProcess.NotRunning: 356 self.process.state() != QProcess.NotRunning:
350 self.process.terminate() 357 self.process.terminate()
351 QTimer.singleShot(2000, self.process.kill) 358 QTimer.singleShot(2000, self.process.kill)
398 name = self.__rx_file.cap(5).strip() 405 name = self.__rx_file.cap(5).strip()
399 nodekind = "file" 406 nodekind = "file"
400 else: 407 else:
401 continue 408 continue
402 url = "{0}/{1}".format(self.repoUrl, name) 409 url = "{0}/{1}".format(self.repoUrl, name)
403 self.__generateItem(name, revision, author, size, date, nodekind, url) 410 self.__generateItem(
411 name, revision, author, size, date, nodekind, url)
404 412
405 def __readStderr(self): 413 def __readStderr(self):
406 """ 414 """
407 Private slot to handle the readyReadStandardError signal. 415 Private slot to handle the readyReadStandardError signal.
408 416

eric ide

mercurial