10 import os |
10 import os |
11 |
11 |
12 import pysvn |
12 import pysvn |
13 |
13 |
14 from PyQt4.QtCore import QMutexLocker, QByteArray, QUrl, Qt |
14 from PyQt4.QtCore import QMutexLocker, QByteArray, QUrl, Qt |
15 from PyQt4.QtGui import QWidget, QCursor, QApplication, QTextCursor, QDialogButtonBox |
15 from PyQt4.QtGui import QWidget, QCursor, QApplication, QTextCursor, \ |
|
16 QDialogButtonBox |
16 |
17 |
17 from .SvnUtilities import formatTime |
18 from .SvnUtilities import formatTime |
18 |
19 |
19 from .SvnDialogMixin import SvnDialogMixin |
20 from .SvnDialogMixin import SvnDialogMixin |
20 from .Ui_SvnLogDialog import Ui_SvnLogDialog |
21 from .Ui_SvnLogDialog import Ui_SvnLogDialog |
129 ver = "{0:d}".format(log["revision"].number) |
130 ver = "{0:d}".format(log["revision"].number) |
130 dstr = '<b>{0} {1}</b>'.format(self.revString, ver) |
131 dstr = '<b>{0} {1}</b>'.format(self.revString, ver) |
131 if self.__pegRev is None: |
132 if self.__pegRev is None: |
132 self.__pegRev = int(ver) |
133 self.__pegRev = int(ver) |
133 try: |
134 try: |
134 lv = "{0:d}".format(logs[logs.index(log) + 1]["revision"].number) |
135 lv = "{0:d}".format( |
|
136 logs[logs.index(log) + 1]["revision"].number) |
135 url = QUrl() |
137 url = QUrl() |
136 url.setScheme("file") |
138 url.setScheme("file") |
137 url.setPath(self.filename) |
139 url.setPath(self.filename) |
138 query = QByteArray() |
140 query = QByteArray() |
139 query.append(lv).append('_').append(ver) |
141 query.append(lv).append('_').append(ver) |
140 url.setEncodedQuery(query) |
142 url.setEncodedQuery(query) |
141 dstr += ' [<a href="{0}" name="{1}">{2}</a>]'.format( |
143 dstr += ' [<a href="{0}" name="{1}">{2}</a>]'.format( |
142 url.toString(), query, self.trUtf8('diff to {0}').format(lv) |
144 url.toString(), query, |
|
145 self.trUtf8('diff to {0}').format(lv) |
143 ) |
146 ) |
144 except IndexError: |
147 except IndexError: |
145 pass |
148 pass |
146 dstr += '<br />\n' |
149 dstr += '<br />\n' |
147 self.contents.insertHtml(dstr) |
150 self.contents.insertHtml(dstr) |
148 |
151 |
149 dstr = self.trUtf8('<i>author: {0}</i><br />\n').format(log["author"]) |
152 dstr = self.trUtf8('<i>author: {0}</i><br />\n')\ |
|
153 .format(log["author"]) |
150 self.contents.insertHtml(dstr) |
154 self.contents.insertHtml(dstr) |
151 |
155 |
152 dstr = self.trUtf8('<i>date: {0}</i><br />\n')\ |
156 dstr = self.trUtf8('<i>date: {0}</i><br />\n')\ |
153 .format(formatTime(log["date"])) |
157 .format(formatTime(log["date"])) |
154 self.contents.insertHtml(dstr) |
158 self.contents.insertHtml(dstr) |
164 for changeInfo in log['changed_paths']: |
168 for changeInfo in log['changed_paths']: |
165 dstr = '{0} {1}'\ |
169 dstr = '{0} {1}'\ |
166 .format(self.flags[changeInfo["action"]], |
170 .format(self.flags[changeInfo["action"]], |
167 changeInfo["path"]) |
171 changeInfo["path"]) |
168 if changeInfo["copyfrom_path"] is not None: |
172 if changeInfo["copyfrom_path"] is not None: |
169 dstr += self.trUtf8(" (copied from {0}, revision {1})")\ |
173 dstr += self.trUtf8( |
170 .format(changeInfo["copyfrom_path"], |
174 " (copied from {0}, revision {1})")\ |
171 changeInfo["copyfrom_revision"].number) |
175 .format(changeInfo["copyfrom_path"], |
|
176 changeInfo["copyfrom_revision"].number) |
172 dstr += '<br />\n' |
177 dstr += '<br />\n' |
173 self.contents.insertHtml(dstr) |
178 self.contents.insertHtml(dstr) |
174 |
179 |
175 self.contents.insertHtml('<hr /><br />\n') |
180 self.contents.insertHtml('<hr /><br />\n') |
176 except pysvn.ClientError as e: |
181 except pysvn.ClientError as e: |