39 self.setWindowFlags(Qt.Window) |
39 self.setWindowFlags(Qt.Window) |
40 |
40 |
41 self.vcs = vcs |
41 self.vcs = vcs |
42 |
42 |
43 self.client = self.vcs.getClient() |
43 self.client = self.vcs.getClient() |
44 self.client.callback_cancel = \ |
44 self.client.callback_cancel = self._clientCancelCallback |
45 self._clientCancelCallback |
45 self.client.callback_get_login = self._clientLoginCallback |
46 self.client.callback_get_login = \ |
46 self.client.callback_ssl_server_trust_prompt = ( |
47 self._clientLoginCallback |
|
48 self.client.callback_ssl_server_trust_prompt = \ |
|
49 self._clientSslServerTrustPromptCallback |
47 self._clientSslServerTrustPromptCallback |
|
48 ) |
50 |
49 |
51 self.show() |
50 self.show() |
52 QApplication.processEvents() |
51 QApplication.processEvents() |
53 |
52 |
54 def start(self, projectPath, fn): |
53 def start(self, projectPath, fn): |
68 infoStr += self.tr( |
67 infoStr += self.tr( |
69 "<tr><td><b>Path (relative to project):</b></td>" |
68 "<tr><td><b>Path (relative to project):</b></td>" |
70 "<td>{0}</td></tr>").format(path) |
69 "<td>{0}</td></tr>").format(path) |
71 if info['URL']: |
70 if info['URL']: |
72 infoStr += self.tr( |
71 infoStr += self.tr( |
73 "<tr><td><b>Url:</b></td><td>{0}</td></tr>")\ |
72 "<tr><td><b>Url:</b></td><td>{0}</td></tr>" |
74 .format(info['URL']) |
73 ).format(info['URL']) |
75 if info['rev']: |
74 if info['rev']: |
76 infoStr += self.tr( |
75 infoStr += self.tr( |
77 "<tr><td><b>Revision:</b></td><td>{0}</td></tr>")\ |
76 "<tr><td><b>Revision:</b></td><td>{0}</td></tr>" |
78 .format(info['rev'].number) |
77 ).format(info['rev'].number) |
79 if info['repos_root_URL']: |
78 if info['repos_root_URL']: |
80 infoStr += self.tr( |
79 infoStr += self.tr( |
81 "<tr><td><b>Repository root URL:</b></td>" |
80 "<tr><td><b>Repository root URL:</b></td>" |
82 "<td>{0}</td></tr>").format(info['repos_root_URL']) |
81 "<td>{0}</td></tr>" |
|
82 ).format(info['repos_root_URL']) |
83 if info['repos_UUID']: |
83 if info['repos_UUID']: |
84 infoStr += self.tr( |
84 infoStr += self.tr( |
85 "<tr><td><b>Repository UUID:</b></td>" |
85 "<tr><td><b>Repository UUID:</b></td>" |
86 "<td>{0}</td></tr>").format(info['repos_UUID']) |
86 "<td>{0}</td></tr>" |
|
87 ).format(info['repos_UUID']) |
87 if info['last_changed_author']: |
88 if info['last_changed_author']: |
88 infoStr += self.tr( |
89 infoStr += self.tr( |
89 "<tr><td><b>Last changed author:</b></td>" |
90 "<tr><td><b>Last changed author:</b></td>" |
90 "<td>{0}</td></tr>")\ |
91 "<td>{0}</td></tr>" |
91 .format(info['last_changed_author']) |
92 ).format(info['last_changed_author']) |
92 if info['last_changed_date']: |
93 if info['last_changed_date']: |
93 infoStr += self.tr( |
94 infoStr += self.tr( |
94 "<tr><td><b>Last Changed Date:</b></td>" |
95 "<tr><td><b>Last Changed Date:</b></td>" |
95 "<td>{0}</td></tr>")\ |
96 "<td>{0}</td></tr>" |
96 .format(formatTime(info['last_changed_date'])) |
97 ).format(formatTime(info['last_changed_date'])) |
97 if info['last_changed_rev'] and \ |
98 if ( |
98 info['last_changed_rev'].kind == \ |
99 info['last_changed_rev'] and |
99 pysvn.opt_revision_kind.number: |
100 info['last_changed_rev'].kind == |
|
101 pysvn.opt_revision_kind.number |
|
102 ): |
100 infoStr += self.tr( |
103 infoStr += self.tr( |
101 "<tr><td><b>Last changed revision:</b></td>" |
104 "<tr><td><b>Last changed revision:</b></td>" |
102 "<td>{0}</td></tr>")\ |
105 "<td>{0}</td></tr>" |
103 .format(info['last_changed_rev'].number) |
106 ).format(info['last_changed_rev'].number) |
104 if info['kind']: |
107 if info['kind']: |
105 if info['kind'] == pysvn.node_kind.file: |
108 if info['kind'] == pysvn.node_kind.file: |
106 nodeKind = self.tr("file") |
109 nodeKind = self.tr("file") |
107 elif info['kind'] == pysvn.node_kind.dir: |
110 elif info['kind'] == pysvn.node_kind.dir: |
108 nodeKind = self.tr("directory") |
111 nodeKind = self.tr("directory") |
109 elif info['kind'] == pysvn.node_kind.none: |
112 elif info['kind'] == pysvn.node_kind.none: |
110 nodeKind = self.tr("none") |
113 nodeKind = self.tr("none") |
111 else: |
114 else: |
112 nodeKind = self.tr("unknown") |
115 nodeKind = self.tr("unknown") |
113 infoStr += self.tr( |
116 infoStr += self.tr( |
114 "<tr><td><b>Node kind:</b></td><td>{0}</td></tr>")\ |
117 "<tr><td><b>Node kind:</b></td><td>{0}</td></tr>" |
115 .format(nodeKind) |
118 ).format(nodeKind) |
116 if info['lock']: |
119 if info['lock']: |
117 lockInfo = info['lock'] |
120 lockInfo = info['lock'] |
118 infoStr += self.tr( |
121 infoStr += self.tr( |
119 "<tr><td><b>Lock Owner:</b></td><td>{0}</td></tr>")\ |
122 "<tr><td><b>Lock Owner:</b></td><td>{0}</td></tr>" |
120 .format(lockInfo['owner']) |
123 ).format(lockInfo['owner']) |
121 infoStr += self.tr( |
124 infoStr += self.tr( |
122 "<tr><td><b>Lock Creation Date:</b></td>" |
125 "<tr><td><b>Lock Creation Date:</b></td>" |
123 "<td>{0}</td></tr>")\ |
126 "<td>{0}</td></tr>" |
124 .format(formatTime(lockInfo['creation_date'])) |
127 ).format(formatTime(lockInfo['creation_date'])) |
125 if lockInfo['expiration_date'] is not None: |
128 if lockInfo['expiration_date'] is not None: |
126 infoStr += self.tr( |
129 infoStr += self.tr( |
127 "<tr><td><b>Lock Expiration Date:</b></td>" |
130 "<tr><td><b>Lock Expiration Date:</b></td>" |
128 "<td>{0}</td></tr>")\ |
131 "<td>{0}</td></tr>" |
129 .format(formatTime(lockInfo['expiration_date'])) |
132 ).format(formatTime(lockInfo['expiration_date'])) |
130 infoStr += self.tr( |
133 infoStr += self.tr( |
131 "<tr><td><b>Lock Token:</b></td><td>{0}</td></tr>")\ |
134 "<tr><td><b>Lock Token:</b></td><td>{0}</td></tr>" |
132 .format(lockInfo['token']) |
135 ).format(lockInfo['token']) |
133 infoStr += self.tr( |
136 infoStr += self.tr( |
134 "<tr><td><b>Lock Comment:</b></td><td>{0}</td></tr>")\ |
137 "<tr><td><b>Lock Comment:</b></td><td>{0}</td></tr>" |
135 .format(lockInfo['comment']) |
138 ).format(lockInfo['comment']) |
136 if info['wc_info']: |
139 if info['wc_info']: |
137 wcInfo = info['wc_info'] |
140 wcInfo = info['wc_info'] |
138 if wcInfo['schedule']: |
141 if wcInfo['schedule']: |
139 if wcInfo['schedule'] == pysvn.wc_schedule.normal: |
142 if wcInfo['schedule'] == pysvn.wc_schedule.normal: |
140 schedule = self.tr("normal") |
143 schedule = self.tr("normal") |
143 elif wcInfo['schedule'] == pysvn.wc_schedule.delete: |
146 elif wcInfo['schedule'] == pysvn.wc_schedule.delete: |
144 schedule = self.tr("delete") |
147 schedule = self.tr("delete") |
145 elif wcInfo['schedule'] == pysvn.wc_schedule.replace: |
148 elif wcInfo['schedule'] == pysvn.wc_schedule.replace: |
146 schedule = self.tr("replace") |
149 schedule = self.tr("replace") |
147 infoStr += self.tr( |
150 infoStr += self.tr( |
148 "<tr><td><b>Schedule:</b></td><td>{0}</td></tr>")\ |
151 "<tr><td><b>Schedule:</b></td><td>{0}</td></tr>" |
149 .format(schedule) |
152 ).format(schedule) |
150 if wcInfo['copyfrom_url']: |
153 if wcInfo['copyfrom_url']: |
151 infoStr += self.tr( |
154 infoStr += self.tr( |
152 "<tr><td><b>Copied From URL:</b></td>" |
155 "<tr><td><b>Copied From URL:</b></td>" |
153 "<td>{0}</td></tr>")\ |
156 "<td>{0}</td></tr>" |
154 .format(wcInfo['copyfrom_url']) |
157 ).format(wcInfo['copyfrom_url']) |
155 infoStr += self.tr( |
158 infoStr += self.tr( |
156 "<tr><td><b>Copied From Rev:</b></td>" |
159 "<tr><td><b>Copied From Rev:</b></td>" |
157 "<td>{0}</td></tr>")\ |
160 "<td>{0}</td></tr>" |
158 .format(wcInfo['copyfrom_rev'].number) |
161 ).format(wcInfo['copyfrom_rev'].number) |
159 if wcInfo['text_time']: |
162 if wcInfo['text_time']: |
160 infoStr += self.tr( |
163 infoStr += self.tr( |
161 "<tr><td><b>Text Last Updated:</b></td>" |
164 "<tr><td><b>Text Last Updated:</b></td>" |
162 "<td>{0}</td></tr>")\ |
165 "<td>{0}</td></tr>" |
163 .format(formatTime(wcInfo['text_time'])) |
166 ).format(formatTime(wcInfo['text_time'])) |
164 if wcInfo['prop_time']: |
167 if wcInfo['prop_time']: |
165 infoStr += self.tr( |
168 infoStr += self.tr( |
166 "<tr><td><b>Properties Last Updated:</b></td>" |
169 "<tr><td><b>Properties Last Updated:</b></td>" |
167 "<td>{0}</td></tr>")\ |
170 "<td>{0}</td></tr>" |
168 .format(formatTime(wcInfo['prop_time'])) |
171 ).format(formatTime(wcInfo['prop_time'])) |
169 if wcInfo['checksum']: |
172 if wcInfo['checksum']: |
170 infoStr += self.tr( |
173 infoStr += self.tr( |
171 "<tr><td><b>Checksum:</b></td><td>{0}</td></tr>")\ |
174 "<tr><td><b>Checksum:</b></td><td>{0}</td></tr>" |
172 .format(wcInfo['checksum']) |
175 ).format(wcInfo['checksum']) |
173 infoStr += "</table>" |
176 infoStr += "</table>" |
174 self.infoBrowser.setHtml(infoStr) |
177 self.infoBrowser.setHtml(infoStr) |
175 except pysvn.ClientError as e: |
178 except pysvn.ClientError as e: |
176 self.__showError(e.args[0]) |
179 self.__showError(e.args[0]) |
177 locker.unlock() |
180 locker.unlock() |