61 self.connect(self.contents, SIGNAL('anchorClicked(const QUrl&)'), |
61 self.connect(self.contents, SIGNAL('anchorClicked(const QUrl&)'), |
62 self.__sourceChanged) |
62 self.__sourceChanged) |
63 |
63 |
64 self.revisions = [] # stack of remembered revisions |
64 self.revisions = [] # stack of remembered revisions |
65 self.revString = self.trUtf8('Revision') |
65 self.revString = self.trUtf8('Revision') |
|
66 self.projectMode = False |
66 |
67 |
67 self.logEntries = [] # list of log entries |
68 self.logEntries = [] # list of log entries |
68 self.lastLogEntry = {} |
69 self.lastLogEntry = {} |
69 self.fileCopies = {} |
70 self.fileCopies = {} |
70 self.endInitialText = False |
71 self.endInitialText = False |
71 self.initialText = "" |
72 self.initialText = [] |
72 |
73 |
73 self.diff = None |
74 self.diff = None |
74 |
75 |
75 def closeEvent(self, e): |
76 def closeEvent(self, e): |
76 """ |
77 """ |
104 self.repodir = self.dname |
105 self.repodir = self.dname |
105 while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)): |
106 while not os.path.isdir(os.path.join(self.repodir, self.vcs.adminDir)): |
106 self.repodir = os.path.dirname(self.repodir) |
107 self.repodir = os.path.dirname(self.repodir) |
107 if self.repodir == os.sep: |
108 if self.repodir == os.sep: |
108 return |
109 return |
|
110 |
|
111 self.projectMode = (self.fname == "." and self.dname == self.repodir) |
109 |
112 |
110 self.process.kill() |
113 self.process.kill() |
111 |
114 |
112 self.activateWindow() |
115 self.activateWindow() |
113 self.raise_() |
116 self.raise_() |
129 project = e5App().getObject("Project") |
132 project = e5App().getObject("Project") |
130 self.vcs.bundleFile = os.path.join( |
133 self.vcs.bundleFile = os.path.join( |
131 project.getProjectManagementDir(), "hg-bundle.hg") |
134 project.getProjectManagementDir(), "hg-bundle.hg") |
132 args.append('--bundle') |
135 args.append('--bundle') |
133 args.append(self.vcs.bundleFile) |
136 args.append(self.vcs.bundleFile) |
134 if self.fname != "." or self.dname != self.repodir: |
137 if not self.projectMode: |
135 args.append(self.filename) |
138 args.append(self.filename) |
136 |
139 |
137 self.process.setWorkingDirectory(self.repodir) |
140 self.process.setWorkingDirectory(self.repodir) |
138 |
141 |
139 self.process.start('hg', args) |
142 self.process.start('hg', args) |
158 parents = [] |
161 parents = [] |
159 |
162 |
160 process = QProcess() |
163 process = QProcess() |
161 args = [] |
164 args = [] |
162 args.append("parents") |
165 args.append("parents") |
163 if self.commandMode == "incoming" and self.vcs.bundleFile: |
166 if self.mode == "incoming" and self.vcs.bundleFile: |
164 args.append("--repository") |
167 args.append("--repository") |
165 args.append(self.vcs.bundleFile) |
168 args.append(self.vcs.bundleFile) |
166 args.append("--template") |
169 args.append("--template") |
167 args.append("{rev}:{node|short}\n") |
170 args.append("{rev}:{node|short}\n") |
168 args.append("-r") |
171 args.append("-r") |
169 args.append(rev) |
172 args.append(rev) |
170 args.append(self.filename) |
173 if not self.projectMode: |
|
174 args.append(self.filename) |
171 |
175 |
172 process.setWorkingDirectory(self.repodir) |
176 process.setWorkingDirectory(self.repodir) |
173 process.start('hg', args) |
177 process.start('hg', args) |
174 procStarted = process.waitForStarted() |
178 procStarted = process.waitForStarted() |
175 if procStarted: |
179 if procStarted: |
210 .format(self.filename)) |
214 .format(self.filename)) |
211 self.errorGroup.show() |
215 self.errorGroup.show() |
212 return |
216 return |
213 |
217 |
214 if self.initialText: |
218 if self.initialText: |
215 self.contents.insertHtml(Utilities.html_encode(self.initialText.strip())) |
219 for line in self.initialText: |
216 self.contents.insertHtml('<br />\n') |
220 self.contents.insertHtml(Utilities.html_encode(line.strip())) |
|
221 self.contents.insertHtml('<br />\n') |
217 self.contents.insertHtml('{0}<br/>\n'.format(80 * "=")) |
222 self.contents.insertHtml('{0}<br/>\n'.format(80 * "=")) |
218 |
223 |
219 for entry in self.logEntries: |
224 for entry in self.logEntries: |
220 fileCopies = {} |
225 fileCopies = {} |
221 for fentry in entry["file_copies"].split(", "): |
226 if entry["file_copies"]: |
222 newName, oldName = entry[:-1].split(" (") |
227 for fentry in entry["file_copies"].split(", "): |
223 fileCopies[newName] = oldName |
228 newName, oldName = fentry[:-1].split(" (") |
|
229 fileCopies[newName] = oldName |
224 |
230 |
225 rev, hexRev = entry["change"].split(":") |
231 rev, hexRev = entry["change"].split(":") |
226 dstr = '<p><b>{0} {1}</b>'.format(self.revString, entry["change"]) |
232 dstr = '<p><b>{0} {1}</b>'.format(self.revString, entry["change"]) |
227 parents = self.__getParents(rev) |
233 if entry["parents"]: |
|
234 parents = entry["parents"].split() |
|
235 else: |
|
236 parents = self.__getParents(rev) |
228 for parent in parents: |
237 for parent in parents: |
229 url = QUrl() |
238 url = QUrl() |
230 url.setScheme("file") |
239 url.setScheme("file") |
231 url.setPath(self.filename) |
240 url.setPath(self.filename) |
232 query = QByteArray() |
241 query = QByteArray() |