Merge lp:~komar007/qpdfview/unique_instances into lp:qpdfview
- unique_instances
- Merge into trunk
Status: | Merged |
---|---|
Merge reported by: | Adam Reichold |
Merged at revision: | not available |
Proposed branch: | lp:~komar007/qpdfview/unique_instances |
Merge into: | lp:qpdfview |
Diff against target: |
543 lines (+100/-48) 26 files modified
miscellaneous/qpdfview.1 (+2/-0) sources/main.cpp (+36/-8) sources/mainwindow.cpp (+37/-17) sources/mainwindow.h (+3/-1) translations/qpdfview_ast.ts (+1/-1) translations/qpdfview_ca.ts (+1/-1) translations/qpdfview_cs.ts (+1/-1) translations/qpdfview_da.ts (+1/-1) translations/qpdfview_de.ts (+1/-1) translations/qpdfview_el.ts (+1/-1) translations/qpdfview_en_GB.ts (+1/-1) translations/qpdfview_es.ts (+1/-1) translations/qpdfview_fi.ts (+1/-1) translations/qpdfview_fr.ts (+1/-1) translations/qpdfview_he.ts (+1/-1) translations/qpdfview_hr.ts (+1/-1) translations/qpdfview_it.ts (+1/-1) translations/qpdfview_my.ts (+1/-1) translations/qpdfview_pt_BR.ts (+1/-1) translations/qpdfview_ro.ts (+1/-1) translations/qpdfview_ru.ts (+1/-1) translations/qpdfview_sk.ts (+1/-1) translations/qpdfview_tr.ts (+1/-1) translations/qpdfview_ug.ts (+1/-1) translations/qpdfview_uk.ts (+1/-1) translations/qpdfview_zh_CN.ts (+1/-1) |
To merge this branch: | bzr merge lp:~komar007/qpdfview/unique_instances |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Adam Reichold | Approve | ||
Review via email:
|
Commit message
Description of the change
Hi,
I've recently found out about this program and got to like it.
I implemented a feature which I really needed - named instances.
Everything works as before, but there's an extra parameter, --instance.
When you're using --unique, you can specify instance name with --instance, and open multiple named windows.
Later you can choose in which window to open a tab remotely again by specifying the instance name.
I also implemented tab restore on a per-instance basis.
I assumed that "v1" in "tabs_v1" means version and, since I needed to change the db schema, I also changed the name of this table to eliminate compatibility problems.

Adam Reichold (adamreichold) wrote : | # |

Michał Trybus (komar007) wrote : | # |
Hi,
thanks for your feedback.
I removed the translation fixes, db import and added myself to CONTRIBUTORS.
I rewrote the history a bit and made another branch: lp:~komar007/qpdfview/unique_instances_v2
Cheers,
Michał

Adam Reichold (adamreichold) wrote : | # |
One thing, I am wondering: Is the check whether the instance name is empty necessary? Could it be possible, that the argument list contains an empty string?

Michał Trybus (komar007) wrote : | # |
Yes, it's possible, you can do it with two quotation marks.
Since I'm using empty string to represent stored tabs if the program is run without --instance, I didn't want to allow the same with --instance, for clarity.

Adam Reichold (adamreichold) wrote : | # |
Sounds sensible, thanks for clarifying that.

Adam Reichold (adamreichold) wrote : | # |
Thanks again for the good work and contributing it to qpdfview's users! I merged your changes with some smaller modifications that I hope you can agree with.
Best regards, Adam.

Michał Trybus (komar007) wrote : | # |
Thanks!
Preview Diff
1 | === modified file 'miscellaneous/qpdfview.1' | |||
2 | --- miscellaneous/qpdfview.1 2012-10-07 11:51:13 +0000 | |||
3 | +++ miscellaneous/qpdfview.1 2012-11-26 20:32:20 +0000 | |||
4 | @@ -33,6 +33,8 @@ | |||
5 | 33 | .SH OPTIONS | 33 | .SH OPTIONS |
6 | 34 | .IP --unique | 34 | .IP --unique |
7 | 35 | If an instance of qpdfview is started with this option, any files that are opened using this option afterwards, are opened as tabs in the original window. If a file is already opened in a tab of the original window, it is merely reloaded. | 35 | If an instance of qpdfview is started with this option, any files that are opened using this option afterwards, are opened as tabs in the original window. If a file is already opened in a tab of the original window, it is merely reloaded. |
8 | 36 | .IP --instance name | ||
9 | 37 | Sets the name of the current instance opened with --unique. This allows to run multiple instances and remotely open and refresh tabs in any of them by passing the instance name each time. | ||
10 | 36 | .IP [file[#page]] | 38 | .IP [file[#page]] |
11 | 37 | .I file | 39 | .I file |
12 | 38 | specifies the file to open. The optional parameter | 40 | specifies the file to open. The optional parameter |
13 | 39 | 41 | ||
14 | === modified file 'sources/main.cpp' | |||
15 | --- sources/main.cpp 2012-11-25 07:18:09 +0000 | |||
16 | +++ sources/main.cpp 2012-11-26 20:32:20 +0000 | |||
17 | @@ -21,6 +21,8 @@ | |||
18 | 21 | 21 | ||
19 | 22 | #include "mainwindow.h" | 22 | #include "mainwindow.h" |
20 | 23 | 23 | ||
21 | 24 | QString appOrgName = "local.qpdfview"; | ||
22 | 25 | |||
23 | 24 | struct File | 26 | struct File |
24 | 25 | { | 27 | { |
25 | 26 | QString filePath; | 28 | QString filePath; |
26 | @@ -42,7 +44,7 @@ | |||
27 | 42 | 44 | ||
28 | 43 | QApplication application(argc, argv); | 45 | QApplication application(argc, argv); |
29 | 44 | 46 | ||
31 | 45 | QApplication::setOrganizationDomain("local.qpdfview"); | 47 | QApplication::setOrganizationDomain(appOrgName); |
32 | 46 | QApplication::setOrganizationName("qpdfview"); | 48 | QApplication::setOrganizationName("qpdfview"); |
33 | 47 | QApplication::setApplicationName("qpdfview"); | 49 | QApplication::setApplicationName("qpdfview"); |
34 | 48 | 50 | ||
35 | @@ -65,6 +67,8 @@ | |||
36 | 65 | #endif // QT_VERSION | 67 | #endif // QT_VERSION |
37 | 66 | 68 | ||
38 | 67 | bool unique = false; | 69 | bool unique = false; |
39 | 70 | bool nextInstance = false; | ||
40 | 71 | QString instance = ""; | ||
41 | 68 | QList< File > files; | 72 | QList< File > files; |
42 | 69 | 73 | ||
43 | 70 | { | 74 | { |
44 | @@ -82,10 +86,24 @@ | |||
45 | 82 | 86 | ||
46 | 83 | foreach(QString argument, arguments) | 87 | foreach(QString argument, arguments) |
47 | 84 | { | 88 | { |
49 | 85 | if(argument == "--unique") | 89 | if (nextInstance) |
50 | 90 | { | ||
51 | 91 | nextInstance = false; | ||
52 | 92 | if (argument.length() < 1) | ||
53 | 93 | { | ||
54 | 94 | qDebug() << "empty instance name not allowed"; | ||
55 | 95 | return 1; | ||
56 | 96 | } | ||
57 | 97 | instance = argument; | ||
58 | 98 | } | ||
59 | 99 | else if(argument == "--unique") | ||
60 | 86 | { | 100 | { |
61 | 87 | unique = true; | 101 | unique = true; |
62 | 88 | } | 102 | } |
63 | 103 | else if(argument == "--instance") | ||
64 | 104 | { | ||
65 | 105 | nextInstance = true; | ||
66 | 106 | } | ||
67 | 89 | else | 107 | else |
68 | 90 | { | 108 | { |
69 | 91 | File file; | 109 | File file; |
70 | @@ -110,6 +128,16 @@ | |||
71 | 110 | files.append(file); | 128 | files.append(file); |
72 | 111 | } | 129 | } |
73 | 112 | } | 130 | } |
74 | 131 | if (nextInstance) | ||
75 | 132 | { | ||
76 | 133 | qDebug() << "Option --instance requires a string argument"; | ||
77 | 134 | return 1; | ||
78 | 135 | } | ||
79 | 136 | if (!unique && instance != "") | ||
80 | 137 | { | ||
81 | 138 | qDebug() << "Option --instance not allowed without --unique"; | ||
82 | 139 | return 1; | ||
83 | 140 | } | ||
84 | 113 | } | 141 | } |
85 | 114 | 142 | ||
86 | 115 | MainWindow* mainWindow = 0; | 143 | MainWindow* mainWindow = 0; |
87 | @@ -164,10 +192,10 @@ | |||
88 | 164 | 192 | ||
89 | 165 | { | 193 | { |
90 | 166 | // D-Bus | 194 | // D-Bus |
92 | 167 | 195 | QString service = appOrgName + ".i" + instance; | |
93 | 168 | if(unique) | 196 | if(unique) |
94 | 169 | { | 197 | { |
96 | 170 | QDBusInterface* interface = new QDBusInterface("local.qpdfview", "/MainWindow", "local.qpdfview.MainWindow", QDBusConnection::sessionBus()); | 198 | QDBusInterface* interface = new QDBusInterface(service, "/MainWindow", "local.qpdfview.MainWindow", QDBusConnection::sessionBus()); |
97 | 171 | 199 | ||
98 | 172 | if(interface->isValid()) | 200 | if(interface->isValid()) |
99 | 173 | { | 201 | { |
100 | @@ -191,11 +219,11 @@ | |||
101 | 191 | } | 219 | } |
102 | 192 | else | 220 | else |
103 | 193 | { | 221 | { |
105 | 194 | mainWindow = new MainWindow(); | 222 | mainWindow = new MainWindow(instance); |
106 | 195 | 223 | ||
107 | 196 | new MainWindowAdaptor(mainWindow); | 224 | new MainWindowAdaptor(mainWindow); |
108 | 197 | 225 | ||
110 | 198 | if(!QDBusConnection::sessionBus().registerService("local.qpdfview")) | 226 | if(!QDBusConnection::sessionBus().registerService(service)) |
111 | 199 | { | 227 | { |
112 | 200 | qDebug() << QDBusConnection::sessionBus().lastError().message(); | 228 | qDebug() << QDBusConnection::sessionBus().lastError().message(); |
113 | 201 | 229 | ||
114 | @@ -214,13 +242,13 @@ | |||
115 | 214 | } | 242 | } |
116 | 215 | else | 243 | else |
117 | 216 | { | 244 | { |
119 | 217 | mainWindow = new MainWindow(); | 245 | mainWindow = new MainWindow(""); |
120 | 218 | } | 246 | } |
121 | 219 | } | 247 | } |
122 | 220 | 248 | ||
123 | 221 | #else | 249 | #else |
124 | 222 | 250 | ||
126 | 223 | mainWindow = new MainWindow(); | 251 | mainWindow = new MainWindow(""); |
127 | 224 | 252 | ||
128 | 225 | #endif // WITH_DBUS | 253 | #endif // WITH_DBUS |
129 | 226 | 254 | ||
130 | 227 | 255 | ||
131 | === modified file 'sources/mainwindow.cpp' | |||
132 | --- sources/mainwindow.cpp 2012-11-26 16:48:29 +0000 | |||
133 | +++ sources/mainwindow.cpp 2012-11-26 20:32:20 +0000 | |||
134 | @@ -21,7 +21,7 @@ | |||
135 | 21 | 21 | ||
136 | 22 | #include "mainwindow.h" | 22 | #include "mainwindow.h" |
137 | 23 | 23 | ||
139 | 24 | MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) | 24 | MainWindow::MainWindow(QString instanceName, QWidget* parent) : QMainWindow(parent), m_instanceName(instanceName) |
140 | 25 | { | 25 | { |
141 | 26 | { | 26 | { |
142 | 27 | // settings | 27 | // settings |
143 | @@ -2112,10 +2112,11 @@ | |||
144 | 2112 | 2112 | ||
145 | 2113 | // tabs | 2113 | // tabs |
146 | 2114 | 2114 | ||
148 | 2115 | if(!tables.contains("tabs_v1")) | 2115 | if(!tables.contains("tabs_v2")) |
149 | 2116 | { | 2116 | { |
151 | 2117 | query.exec("CREATE TABLE tabs_v1 " | 2117 | query.exec("CREATE TABLE tabs_v2 " |
152 | 2118 | "(filePath TEXT" | 2118 | "(filePath TEXT" |
153 | 2119 | ",instanceName TEXT" | ||
154 | 2119 | ",currentPage INTEGER" | 2120 | ",currentPage INTEGER" |
155 | 2120 | ",continuousMode INTEGER" | 2121 | ",continuousMode INTEGER" |
156 | 2121 | ",layoutMode INTEGER" | 2122 | ",layoutMode INTEGER" |
157 | @@ -2127,6 +2128,19 @@ | |||
158 | 2127 | { | 2128 | { |
159 | 2128 | qDebug() << query.lastError(); | 2129 | qDebug() << query.lastError(); |
160 | 2129 | } | 2130 | } |
161 | 2131 | // import stored tabs from old version into current instance | ||
162 | 2132 | if(tables.contains("tabs_v1")) | ||
163 | 2133 | { | ||
164 | 2134 | query.prepare("INSERT INTO tabs_v2 " | ||
165 | 2135 | "SELECT filePath,?,currentPage,continuousMode,layoutMode,scaleMode,scaleFactor,rotation " | ||
166 | 2136 | "FROM tabs_v1"); | ||
167 | 2137 | query.bindValue(0, m_instanceName); | ||
168 | 2138 | query.exec(); | ||
169 | 2139 | if(!query.isActive()) | ||
170 | 2140 | { | ||
171 | 2141 | qDebug() << query.lastError(); | ||
172 | 2142 | } | ||
173 | 2143 | } | ||
174 | 2130 | } | 2144 | } |
175 | 2131 | 2145 | ||
176 | 2132 | // bookmarks | 2146 | // bookmarks |
177 | @@ -2196,7 +2210,10 @@ | |||
178 | 2196 | m_database.transaction(); | 2210 | m_database.transaction(); |
179 | 2197 | 2211 | ||
180 | 2198 | QSqlQuery query(m_database); | 2212 | QSqlQuery query(m_database); |
182 | 2199 | query.exec("SELECT filePath,currentPage,continuousMode,layoutMode,scaleMode,scaleFactor,rotation FROM tabs_v1"); | 2213 | query.prepare("SELECT filePath,currentPage,continuousMode,layoutMode,scaleMode,scaleFactor,rotation " |
183 | 2214 | "FROM tabs_v2 WHERE instanceName=?"); | ||
184 | 2215 | query.bindValue(0, m_instanceName); | ||
185 | 2216 | query.exec(); | ||
186 | 2200 | 2217 | ||
187 | 2201 | while(query.next()) | 2218 | while(query.next()) |
188 | 2202 | { | 2219 | { |
189 | @@ -2279,7 +2296,9 @@ | |||
190 | 2279 | m_database.transaction(); | 2296 | m_database.transaction(); |
191 | 2280 | 2297 | ||
192 | 2281 | QSqlQuery query(m_database); | 2298 | QSqlQuery query(m_database); |
194 | 2282 | query.exec("DELETE FROM tabs_v1"); | 2299 | query.prepare("DELETE FROM tabs_v2 WHERE instanceName = ?"); |
195 | 2300 | query.bindValue(0, m_instanceName); | ||
196 | 2301 | query.exec(); | ||
197 | 2283 | 2302 | ||
198 | 2284 | if(!query.isActive()) | 2303 | if(!query.isActive()) |
199 | 2285 | { | 2304 | { |
200 | @@ -2288,22 +2307,23 @@ | |||
201 | 2288 | 2307 | ||
202 | 2289 | if(m_settings->value("mainWindow/restoreTabs", false).toBool()) | 2308 | if(m_settings->value("mainWindow/restoreTabs", false).toBool()) |
203 | 2290 | { | 2309 | { |
207 | 2291 | query.prepare("INSERT INTO tabs_v1 " | 2310 | query.prepare("INSERT INTO tabs_v2 " |
208 | 2292 | "(filePath,currentPage,continuousMode,layoutMode,scaleMode,scaleFactor,rotation)" | 2311 | "(filePath,instanceName,currentPage,continuousMode,layoutMode,scaleMode,scaleFactor,rotation)" |
209 | 2293 | " VALUES (?,?,?,?,?,?,?)"); | 2312 | " VALUES (?,?,?,?,?,?,?,?)"); |
210 | 2294 | 2313 | ||
211 | 2295 | for(int index = 0; index < m_tabWidget->count(); ++index) | 2314 | for(int index = 0; index < m_tabWidget->count(); ++index) |
212 | 2296 | { | 2315 | { |
213 | 2297 | query.bindValue(0, QFileInfo(tab(index)->filePath()).absoluteFilePath()); | 2316 | query.bindValue(0, QFileInfo(tab(index)->filePath()).absoluteFilePath()); |
223 | 2298 | query.bindValue(1, tab(index)->currentPage()); | 2317 | query.bindValue(1, m_instanceName); |
224 | 2299 | 2318 | query.bindValue(2, tab(index)->currentPage()); | |
225 | 2300 | query.bindValue(2, static_cast< uint >(tab(index)->continousMode())); | 2319 | |
226 | 2301 | query.bindValue(3, static_cast< uint >(tab(index)->layoutMode())); | 2320 | query.bindValue(3, static_cast< uint >(tab(index)->continousMode())); |
227 | 2302 | 2321 | query.bindValue(4, static_cast< uint >(tab(index)->layoutMode())); | |
228 | 2303 | query.bindValue(4, static_cast< uint >(tab(index)->scaleMode())); | 2322 | |
229 | 2304 | query.bindValue(5, tab(index)->scaleFactor()); | 2323 | query.bindValue(5, static_cast< uint >(tab(index)->scaleMode())); |
230 | 2305 | 2324 | query.bindValue(6, tab(index)->scaleFactor()); | |
231 | 2306 | query.bindValue(6, static_cast< uint >(tab(index)->rotation())); | 2325 | |
232 | 2326 | query.bindValue(7, static_cast< uint >(tab(index)->rotation())); | ||
233 | 2307 | 2327 | ||
234 | 2308 | query.exec(); | 2328 | query.exec(); |
235 | 2309 | 2329 | ||
236 | 2310 | 2330 | ||
237 | === modified file 'sources/mainwindow.h' | |||
238 | --- sources/mainwindow.h 2012-11-25 07:24:50 +0000 | |||
239 | +++ sources/mainwindow.h 2012-11-26 20:32:20 +0000 | |||
240 | @@ -53,7 +53,7 @@ | |||
241 | 53 | Q_OBJECT | 53 | Q_OBJECT |
242 | 54 | 54 | ||
243 | 55 | public: | 55 | public: |
245 | 56 | explicit MainWindow(QWidget* parent = 0); | 56 | explicit MainWindow(QString instanceName, QWidget* parent = 0); |
246 | 57 | 57 | ||
247 | 58 | QSize sizeHint() const; | 58 | QSize sizeHint() const; |
248 | 59 | QMenu* createPopupMenu(); | 59 | QMenu* createPopupMenu(); |
249 | @@ -291,6 +291,8 @@ | |||
250 | 291 | 291 | ||
251 | 292 | #endif // WITH_SQL | 292 | #endif // WITH_SQL |
252 | 293 | 293 | ||
253 | 294 | QString m_instanceName; | ||
254 | 295 | |||
255 | 294 | void createDatabase(); | 296 | void createDatabase(); |
256 | 295 | 297 | ||
257 | 296 | void restoreTabs(); | 298 | void restoreTabs(); |
258 | 297 | 299 | ||
259 | === modified file 'translations/qpdfview_ast.ts' | |||
260 | --- translations/qpdfview_ast.ts 2012-11-26 07:22:27 +0000 | |||
261 | +++ translations/qpdfview_ast.ts 2012-11-26 20:32:20 +0000 | |||
262 | @@ -729,7 +729,7 @@ | |||
263 | 729 | <context> | 729 | <context> |
264 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
265 | 731 | <message> | 731 | <message> |
267 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
268 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
269 | 734 | <translation type="unfinished">Nun s'alcontraron datos SyncTeX pa «%1».</translation> | 734 | <translation type="unfinished">Nun s'alcontraron datos SyncTeX pa «%1».</translation> |
270 | 735 | </message> | 735 | </message> |
271 | 736 | 736 | ||
272 | === modified file 'translations/qpdfview_ca.ts' | |||
273 | --- translations/qpdfview_ca.ts 2012-11-25 09:09:10 +0000 | |||
274 | +++ translations/qpdfview_ca.ts 2012-11-26 20:32:20 +0000 | |||
275 | @@ -729,7 +729,7 @@ | |||
276 | 729 | <context> | 729 | <context> |
277 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
278 | 731 | <message> | 731 | <message> |
280 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
281 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
282 | 734 | <translation type="unfinished">No s'han trobat les dades SyncText per «%1».</translation> | 734 | <translation type="unfinished">No s'han trobat les dades SyncText per «%1».</translation> |
283 | 735 | </message> | 735 | </message> |
284 | 736 | 736 | ||
285 | === modified file 'translations/qpdfview_cs.ts' | |||
286 | --- translations/qpdfview_cs.ts 2012-11-26 14:50:34 +0000 | |||
287 | +++ translations/qpdfview_cs.ts 2012-11-26 20:32:20 +0000 | |||
288 | @@ -732,7 +732,7 @@ | |||
289 | 732 | <context> | 732 | <context> |
290 | 733 | <name>QObject</name> | 733 | <name>QObject</name> |
291 | 734 | <message> | 734 | <message> |
293 | 735 | <location filename="../sources/main.cpp" line="155"/> | 735 | <location filename="../sources/main.cpp" line="173"/> |
294 | 736 | <source>SyncTeX data for '%1' could not be found.</source> | 736 | <source>SyncTeX data for '%1' could not be found.</source> |
295 | 737 | <translation type="unfinished">Nepodařilo se najít SyncTeX data pro '%1'.</translation> | 737 | <translation type="unfinished">Nepodařilo se najít SyncTeX data pro '%1'.</translation> |
296 | 738 | </message> | 738 | </message> |
297 | 739 | 739 | ||
298 | === modified file 'translations/qpdfview_da.ts' | |||
299 | --- translations/qpdfview_da.ts 2012-11-25 09:27:13 +0000 | |||
300 | +++ translations/qpdfview_da.ts 2012-11-26 20:32:20 +0000 | |||
301 | @@ -729,7 +729,7 @@ | |||
302 | 729 | <context> | 729 | <context> |
303 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
304 | 731 | <message> | 731 | <message> |
306 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
307 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
308 | 734 | <translation type="unfinished">SyncTeX-data for '%1' kunne ikke findes.</translation> | 734 | <translation type="unfinished">SyncTeX-data for '%1' kunne ikke findes.</translation> |
309 | 735 | </message> | 735 | </message> |
310 | 736 | 736 | ||
311 | === modified file 'translations/qpdfview_de.ts' | |||
312 | --- translations/qpdfview_de.ts 2012-11-25 08:26:35 +0000 | |||
313 | +++ translations/qpdfview_de.ts 2012-11-26 20:32:20 +0000 | |||
314 | @@ -729,7 +729,7 @@ | |||
315 | 729 | <context> | 729 | <context> |
316 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
317 | 731 | <message> | 731 | <message> |
319 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
320 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
321 | 734 | <translation type="unfinished">Keine SyncTeX-Daten für "%1" gefunden.</translation> | 734 | <translation type="unfinished">Keine SyncTeX-Daten für "%1" gefunden.</translation> |
322 | 735 | </message> | 735 | </message> |
323 | 736 | 736 | ||
324 | === modified file 'translations/qpdfview_el.ts' | |||
325 | --- translations/qpdfview_el.ts 2012-11-25 07:24:50 +0000 | |||
326 | +++ translations/qpdfview_el.ts 2012-11-26 20:32:20 +0000 | |||
327 | @@ -729,7 +729,7 @@ | |||
328 | 729 | <context> | 729 | <context> |
329 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
330 | 731 | <message> | 731 | <message> |
332 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
333 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
334 | 734 | <translation type="unfinished">Τα δεδομένα SyncTeX για το '%1' δεν μπορούν να βρεθούν.</translation> | 734 | <translation type="unfinished">Τα δεδομένα SyncTeX για το '%1' δεν μπορούν να βρεθούν.</translation> |
335 | 735 | </message> | 735 | </message> |
336 | 736 | 736 | ||
337 | === modified file 'translations/qpdfview_en_GB.ts' | |||
338 | --- translations/qpdfview_en_GB.ts 2012-11-25 09:27:13 +0000 | |||
339 | +++ translations/qpdfview_en_GB.ts 2012-11-26 20:32:20 +0000 | |||
340 | @@ -729,7 +729,7 @@ | |||
341 | 729 | <context> | 729 | <context> |
342 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
343 | 731 | <message> | 731 | <message> |
345 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
346 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
347 | 734 | <translation type="unfinished">SyncTeX data for '%1' could not be found.</translation> | 734 | <translation type="unfinished">SyncTeX data for '%1' could not be found.</translation> |
348 | 735 | </message> | 735 | </message> |
349 | 736 | 736 | ||
350 | === modified file 'translations/qpdfview_es.ts' | |||
351 | --- translations/qpdfview_es.ts 2012-11-25 07:24:50 +0000 | |||
352 | +++ translations/qpdfview_es.ts 2012-11-26 20:32:20 +0000 | |||
353 | @@ -729,7 +729,7 @@ | |||
354 | 729 | <context> | 729 | <context> |
355 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
356 | 731 | <message> | 731 | <message> |
358 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
359 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
360 | 734 | <translation type="unfinished">No se encontraron los datos SyncText para «%1».</translation> | 734 | <translation type="unfinished">No se encontraron los datos SyncText para «%1».</translation> |
361 | 735 | </message> | 735 | </message> |
362 | 736 | 736 | ||
363 | === modified file 'translations/qpdfview_fi.ts' | |||
364 | --- translations/qpdfview_fi.ts 2012-11-25 07:24:50 +0000 | |||
365 | +++ translations/qpdfview_fi.ts 2012-11-26 20:32:20 +0000 | |||
366 | @@ -729,7 +729,7 @@ | |||
367 | 729 | <context> | 729 | <context> |
368 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
369 | 731 | <message> | 731 | <message> |
371 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
372 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
373 | 734 | <translation type="unfinished"></translation> | 734 | <translation type="unfinished"></translation> |
374 | 735 | </message> | 735 | </message> |
375 | 736 | 736 | ||
376 | === modified file 'translations/qpdfview_fr.ts' | |||
377 | --- translations/qpdfview_fr.ts 2012-11-25 07:24:50 +0000 | |||
378 | +++ translations/qpdfview_fr.ts 2012-11-26 20:32:20 +0000 | |||
379 | @@ -729,7 +729,7 @@ | |||
380 | 729 | <context> | 729 | <context> |
381 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
382 | 731 | <message> | 731 | <message> |
384 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
385 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
386 | 734 | <translation type="unfinished">Impossible de trouver les données SyncTeX pour '%1'.</translation> | 734 | <translation type="unfinished">Impossible de trouver les données SyncTeX pour '%1'.</translation> |
387 | 735 | </message> | 735 | </message> |
388 | 736 | 736 | ||
389 | === modified file 'translations/qpdfview_he.ts' | |||
390 | --- translations/qpdfview_he.ts 2012-11-25 08:26:35 +0000 | |||
391 | +++ translations/qpdfview_he.ts 2012-11-26 20:32:20 +0000 | |||
392 | @@ -729,7 +729,7 @@ | |||
393 | 729 | <context> | 729 | <context> |
394 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
395 | 731 | <message> | 731 | <message> |
397 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
398 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
399 | 734 | <translation type="unfinished">לא ניתן למצוא את נתוני ה־SyncTeX עבור '%1'.</translation> | 734 | <translation type="unfinished">לא ניתן למצוא את נתוני ה־SyncTeX עבור '%1'.</translation> |
400 | 735 | </message> | 735 | </message> |
401 | 736 | 736 | ||
402 | === modified file 'translations/qpdfview_hr.ts' | |||
403 | --- translations/qpdfview_hr.ts 2012-11-25 07:24:50 +0000 | |||
404 | +++ translations/qpdfview_hr.ts 2012-11-26 20:32:20 +0000 | |||
405 | @@ -729,7 +729,7 @@ | |||
406 | 729 | <context> | 729 | <context> |
407 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
408 | 731 | <message> | 731 | <message> |
410 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
411 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
412 | 734 | <translation type="unfinished">SyncTeX podaci za '%1' nije pronađen.</translation> | 734 | <translation type="unfinished">SyncTeX podaci za '%1' nije pronađen.</translation> |
413 | 735 | </message> | 735 | </message> |
414 | 736 | 736 | ||
415 | === modified file 'translations/qpdfview_it.ts' | |||
416 | --- translations/qpdfview_it.ts 2012-11-25 08:26:35 +0000 | |||
417 | +++ translations/qpdfview_it.ts 2012-11-26 20:32:20 +0000 | |||
418 | @@ -729,7 +729,7 @@ | |||
419 | 729 | <context> | 729 | <context> |
420 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
421 | 731 | <message> | 731 | <message> |
423 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
424 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
425 | 734 | <translation type="unfinished">Impossibile trovare i dati SyncTeX per «%1».</translation> | 734 | <translation type="unfinished">Impossibile trovare i dati SyncTeX per «%1».</translation> |
426 | 735 | </message> | 735 | </message> |
427 | 736 | 736 | ||
428 | === modified file 'translations/qpdfview_my.ts' | |||
429 | --- translations/qpdfview_my.ts 2012-11-25 07:24:50 +0000 | |||
430 | +++ translations/qpdfview_my.ts 2012-11-26 20:32:20 +0000 | |||
431 | @@ -729,7 +729,7 @@ | |||
432 | 729 | <context> | 729 | <context> |
433 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
434 | 731 | <message> | 731 | <message> |
436 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
437 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
438 | 734 | <translation type="unfinished">SyncTeX data for '%1' could not be found.</translation> | 734 | <translation type="unfinished">SyncTeX data for '%1' could not be found.</translation> |
439 | 735 | </message> | 735 | </message> |
440 | 736 | 736 | ||
441 | === modified file 'translations/qpdfview_pt_BR.ts' | |||
442 | --- translations/qpdfview_pt_BR.ts 2012-11-26 07:22:27 +0000 | |||
443 | +++ translations/qpdfview_pt_BR.ts 2012-11-26 20:32:20 +0000 | |||
444 | @@ -729,7 +729,7 @@ | |||
445 | 729 | <context> | 729 | <context> |
446 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
447 | 731 | <message> | 731 | <message> |
449 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
450 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
451 | 734 | <translation type="unfinished">SyncTeX dados para '%1' não pôde ser encontrado.</translation> | 734 | <translation type="unfinished">SyncTeX dados para '%1' não pôde ser encontrado.</translation> |
452 | 735 | </message> | 735 | </message> |
453 | 736 | 736 | ||
454 | === modified file 'translations/qpdfview_ro.ts' | |||
455 | --- translations/qpdfview_ro.ts 2012-11-25 07:24:50 +0000 | |||
456 | +++ translations/qpdfview_ro.ts 2012-11-26 20:32:20 +0000 | |||
457 | @@ -729,7 +729,7 @@ | |||
458 | 729 | <context> | 729 | <context> |
459 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
460 | 731 | <message> | 731 | <message> |
462 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
463 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
464 | 734 | <translation type="unfinished">Nu s-au găsit datele SyncTeX pentru „%1”.</translation> | 734 | <translation type="unfinished">Nu s-au găsit datele SyncTeX pentru „%1”.</translation> |
465 | 735 | </message> | 735 | </message> |
466 | 736 | 736 | ||
467 | === modified file 'translations/qpdfview_ru.ts' | |||
468 | --- translations/qpdfview_ru.ts 2012-11-25 07:24:50 +0000 | |||
469 | +++ translations/qpdfview_ru.ts 2012-11-26 20:32:20 +0000 | |||
470 | @@ -729,7 +729,7 @@ | |||
471 | 729 | <context> | 729 | <context> |
472 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
473 | 731 | <message> | 731 | <message> |
475 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
476 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
477 | 734 | <translation type="unfinished">Не найдены данные SyncTeX для '%1'.</translation> | 734 | <translation type="unfinished">Не найдены данные SyncTeX для '%1'.</translation> |
478 | 735 | </message> | 735 | </message> |
479 | 736 | 736 | ||
480 | === modified file 'translations/qpdfview_sk.ts' | |||
481 | --- translations/qpdfview_sk.ts 2012-11-25 10:12:59 +0000 | |||
482 | +++ translations/qpdfview_sk.ts 2012-11-26 20:32:20 +0000 | |||
483 | @@ -729,7 +729,7 @@ | |||
484 | 729 | <context> | 729 | <context> |
485 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
486 | 731 | <message> | 731 | <message> |
488 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
489 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
490 | 734 | <translation type="unfinished">SyncTeX dáta pre '%1' sa nedali nájsť.</translation> | 734 | <translation type="unfinished">SyncTeX dáta pre '%1' sa nedali nájsť.</translation> |
491 | 735 | </message> | 735 | </message> |
492 | 736 | 736 | ||
493 | === modified file 'translations/qpdfview_tr.ts' | |||
494 | --- translations/qpdfview_tr.ts 2012-11-25 07:24:50 +0000 | |||
495 | +++ translations/qpdfview_tr.ts 2012-11-26 20:32:20 +0000 | |||
496 | @@ -729,7 +729,7 @@ | |||
497 | 729 | <context> | 729 | <context> |
498 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
499 | 731 | <message> | 731 | <message> |
501 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
502 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
503 | 734 | <translation type="unfinished">'%1' belgesi için SyncTeX verisi bulunamadı.</translation> | 734 | <translation type="unfinished">'%1' belgesi için SyncTeX verisi bulunamadı.</translation> |
504 | 735 | </message> | 735 | </message> |
505 | 736 | 736 | ||
506 | === modified file 'translations/qpdfview_ug.ts' | |||
507 | --- translations/qpdfview_ug.ts 2012-11-25 07:24:50 +0000 | |||
508 | +++ translations/qpdfview_ug.ts 2012-11-26 20:32:20 +0000 | |||
509 | @@ -729,7 +729,7 @@ | |||
510 | 729 | <context> | 729 | <context> |
511 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
512 | 731 | <message> | 731 | <message> |
514 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
515 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
516 | 734 | <translation type="unfinished"></translation> | 734 | <translation type="unfinished"></translation> |
517 | 735 | </message> | 735 | </message> |
518 | 736 | 736 | ||
519 | === modified file 'translations/qpdfview_uk.ts' | |||
520 | --- translations/qpdfview_uk.ts 2012-11-25 07:24:50 +0000 | |||
521 | +++ translations/qpdfview_uk.ts 2012-11-26 20:32:20 +0000 | |||
522 | @@ -729,7 +729,7 @@ | |||
523 | 729 | <context> | 729 | <context> |
524 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
525 | 731 | <message> | 731 | <message> |
527 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
528 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
529 | 734 | <translation type="unfinished">Не знайдено даних SyncTeX для '%1'.</translation> | 734 | <translation type="unfinished">Не знайдено даних SyncTeX для '%1'.</translation> |
530 | 735 | </message> | 735 | </message> |
531 | 736 | 736 | ||
532 | === modified file 'translations/qpdfview_zh_CN.ts' | |||
533 | --- translations/qpdfview_zh_CN.ts 2012-11-25 09:27:13 +0000 | |||
534 | +++ translations/qpdfview_zh_CN.ts 2012-11-26 20:32:20 +0000 | |||
535 | @@ -729,7 +729,7 @@ | |||
536 | 729 | <context> | 729 | <context> |
537 | 730 | <name>QObject</name> | 730 | <name>QObject</name> |
538 | 731 | <message> | 731 | <message> |
540 | 732 | <location filename="../sources/main.cpp" line="155"/> | 732 | <location filename="../sources/main.cpp" line="173"/> |
541 | 733 | <source>SyncTeX data for '%1' could not be found.</source> | 733 | <source>SyncTeX data for '%1' could not be found.</source> |
542 | 734 | <translation type="unfinished"></translation> | 734 | <translation type="unfinished"></translation> |
543 | 735 | </message> | 735 | </message> |
Hello Michał,
Tanks for your contribution! It seems a useful feature and I am very much for merging the branch. I hope I'll have some time tonight for a thorough review. Just some first remarks:
* Could you leave out the translation updates? I'll run "lupdate" when this is inside trunk. It just makes the diff larger.
* Your interpretation of the database table name is correct, at least what you described was my plan. :-) But since there has been no release using the "v1" table as of now, you can leave out the reimport of the "v1" table. This is all happing in trunk and so we do not have to give guarantees to the outside world yet. (But the new name is still correct, so we do not try to use the old table.)
* If you don't mind, I would add a copyright notice for you to the modified source files after merge and maybe make some smaller style changes. (Or you add the copyright notice yourself using your preferred mail address.)
Best regards, Adam.