1 |
commit: d9cb09425875beeba0f0a771290674d36fb89b8a |
2 |
Author: Michael Mair-Keimberger <m.mairkeimberger <AT> gmail <DOT> com> |
3 |
AuthorDate: Sun Jun 23 20:50:49 2019 +0000 |
4 |
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Jun 25 17:57:39 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d9cb0942 |
7 |
|
8 |
x11-libs/libfm-qt: remove unused patches |
9 |
|
10 |
Signed-off-by: Michael Mair-Keimberger <m.mairkeimberger <AT> gmail.com> |
11 |
Closes: https://github.com/gentoo/gentoo/pull/12315 |
12 |
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> |
13 |
|
14 |
...0.13.1-check-if-app-exists-before-opening.patch | 45 ---- |
15 |
...t-0.13.1-correctly-handle-mountable-types.patch | 80 ------ |
16 |
.../files/libfm-qt-0.13.1-fix-smb-error.patch | 279 --------------------- |
17 |
3 files changed, 404 deletions(-) |
18 |
|
19 |
diff --git a/x11-libs/libfm-qt/files/libfm-qt-0.13.1-check-if-app-exists-before-opening.patch b/x11-libs/libfm-qt/files/libfm-qt-0.13.1-check-if-app-exists-before-opening.patch |
20 |
deleted file mode 100644 |
21 |
index 92b45be432f..00000000000 |
22 |
--- a/x11-libs/libfm-qt/files/libfm-qt-0.13.1-check-if-app-exists-before-opening.patch |
23 |
+++ /dev/null |
24 |
@@ -1,45 +0,0 @@ |
25 |
-From 4923f860094787d14052e9dc416c9388ff1bb53b Mon Sep 17 00:00:00 2001 |
26 |
-From: Tsu Jan <tsujan2000@×××××.com> |
27 |
-Date: Thu, 7 Jun 2018 06:10:37 +0430 |
28 |
-Subject: [PATCH] Check if the opening app exists before using it |
29 |
- |
30 |
-Also, show an error message if there's no app. |
31 |
---- |
32 |
- src/core/basicfilelauncher.cpp | 17 ++++++++++++----- |
33 |
- 1 file changed, 12 insertions(+), 5 deletions(-) |
34 |
- |
35 |
-diff --git a/src/core/basicfilelauncher.cpp b/src/core/basicfilelauncher.cpp |
36 |
-index 8390531..2c7f00e 100644 |
37 |
---- a/src/core/basicfilelauncher.cpp |
38 |
-+++ b/src/core/basicfilelauncher.cpp |
39 |
-@@ -256,18 +256,25 @@ FilePath BasicFileLauncher::handleShortcut(const FileInfoPtr& fileInfo, GAppLaun |
40 |
- || strcmp(scheme.get(), "trash") == 0 |
41 |
- || strcmp(scheme.get(), "network") == 0 |
42 |
- || strcmp(scheme.get(), "computer") == 0) { |
43 |
-- return FilePath::fromUri(fileInfo->target().c_str()); |
44 |
-+ return FilePath::fromUri(target.c_str()); |
45 |
- } |
46 |
- else { |
47 |
- // ask gio to launch the default handler for the uri scheme |
48 |
-- GAppInfoPtr app{g_app_info_get_default_for_uri_scheme(scheme.get()), false}; |
49 |
-- FilePathList uris{FilePath::fromUri(fileInfo->target().c_str())}; |
50 |
-- launchWithApp(app.get(), uris, ctx); |
51 |
-+ if(GAppInfoPtr app{g_app_info_get_default_for_uri_scheme(scheme.get()), false}) { |
52 |
-+ FilePathList uris{FilePath::fromUri(target.c_str())}; |
53 |
-+ launchWithApp(app.get(), uris, ctx); |
54 |
-+ } |
55 |
-+ else { |
56 |
-+ GErrorPtr err{G_IO_ERROR, G_IO_ERROR_FAILED, |
57 |
-+ QObject::tr("No default application is set to launch '%1'") |
58 |
-+ .arg(target.c_str())}; |
59 |
-+ showError(nullptr, err); |
60 |
-+ } |
61 |
- } |
62 |
- } |
63 |
- else { |
64 |
- // see it as a local path |
65 |
-- return FilePath::fromLocalPath(fileInfo->target().c_str()); |
66 |
-+ return FilePath::fromLocalPath(target.c_str()); |
67 |
- } |
68 |
- return FilePath(); |
69 |
- } |
70 |
|
71 |
diff --git a/x11-libs/libfm-qt/files/libfm-qt-0.13.1-correctly-handle-mountable-types.patch b/x11-libs/libfm-qt/files/libfm-qt-0.13.1-correctly-handle-mountable-types.patch |
72 |
deleted file mode 100644 |
73 |
index adaed387e27..00000000000 |
74 |
--- a/x11-libs/libfm-qt/files/libfm-qt-0.13.1-correctly-handle-mountable-types.patch |
75 |
+++ /dev/null |
76 |
@@ -1,80 +0,0 @@ |
77 |
-From dc7a5753b934e323d4d8d13f3253cbe7ae55a111 Mon Sep 17 00:00:00 2001 |
78 |
-From: "Hong Jen Yee (PCMan)" <pcman.tw@×××××.com> |
79 |
-Date: Sun, 10 Jun 2018 00:07:31 +0800 |
80 |
-Subject: [PATCH] Correctly handle mountable types. |
81 |
- |
82 |
---- |
83 |
- src/core/basicfilelauncher.cpp | 6 +++--- |
84 |
- src/core/fileinfo.cpp | 4 ++-- |
85 |
- src/core/fileinfo.h | 3 ++- |
86 |
- 3 files changed, 7 insertions(+), 6 deletions(-) |
87 |
- |
88 |
-diff --git a/src/core/basicfilelauncher.cpp b/src/core/basicfilelauncher.cpp |
89 |
-index 0dc8208..0ae1177 100644 |
90 |
---- a/src/core/basicfilelauncher.cpp |
91 |
-+++ b/src/core/basicfilelauncher.cpp |
92 |
-@@ -30,11 +30,10 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon |
93 |
- // classify files according to different mimetypes |
94 |
- for(auto& fileInfo : fileInfos) { |
95 |
- /* |
96 |
-- qDebug("path: %s, type: %s, target: %s, isDir: %i, isDesktopEntry: %i", |
97 |
-+ qDebug("path: %s, type: %s, target: %s, isDir: %i, isShortcut: %i, isMountable: %i, isDesktopEntry: %i", |
98 |
- fileInfo->path().toString().get(), fileInfo->mimeType()->name(), fileInfo->target().c_str(), |
99 |
-- fileInfo->isDir(), fileInfo->isDesktopEntry()); |
100 |
-+ fileInfo->isDir(), fileInfo->isShortcut(), fileInfo->isMountable(), fileInfo->isDesktopEntry()); |
101 |
- */ |
102 |
-- |
103 |
- if(fileInfo->isMountable()) { |
104 |
- if(fileInfo->target().empty()) { |
105 |
- // the mountable is not yet mounted so we have no target URI. |
106 |
-@@ -269,6 +268,7 @@ FilePath BasicFileLauncher::handleShortcut(const FileInfoPtr& fileInfo, GAppLaun |
107 |
- // if we know the target is a dir, we are not going to open it using other apps |
108 |
- // for example: `network:///smb-root' is a shortcut targeting `smb:///' and it's also a dir |
109 |
- if(fileInfo->isDir()) { |
110 |
-+ qDebug("shortcut is dir: %s", target.c_str()); |
111 |
- return FilePath::fromPathStr(target.c_str()); |
112 |
- } |
113 |
- |
114 |
-diff --git a/src/core/fileinfo.cpp b/src/core/fileinfo.cpp |
115 |
-index b19a751..5838fe5 100644 |
116 |
---- a/src/core/fileinfo.cpp |
117 |
-+++ b/src/core/fileinfo.cpp |
118 |
-@@ -118,7 +118,8 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath |
119 |
- isDeletable_ = true; |
120 |
- } |
121 |
- |
122 |
-- isShortcut_ = false; |
123 |
-+ isShortcut_ = (type == G_FILE_TYPE_SHORTCUT); |
124 |
-+ isMountable_ = (type == G_FILE_TYPE_MOUNTABLE); |
125 |
- |
126 |
- /* special handling for symlinks */ |
127 |
- if(g_file_info_get_is_symlink(inf.get())) { |
128 |
-@@ -129,7 +130,6 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath |
129 |
- |
130 |
- switch(type) { |
131 |
- case G_FILE_TYPE_SHORTCUT: |
132 |
-- isShortcut_ = true; |
133 |
- /* Falls through. */ |
134 |
- case G_FILE_TYPE_MOUNTABLE: |
135 |
- uri = g_file_info_get_attribute_string(inf.get(), G_FILE_ATTRIBUTE_STANDARD_TARGET_URI); |
136 |
-diff --git a/src/core/fileinfo.h b/src/core/fileinfo.h |
137 |
-index 8437d92..27f7508 100644 |
138 |
---- a/src/core/fileinfo.h |
139 |
-+++ b/src/core/fileinfo.h |
140 |
-@@ -150,7 +150,7 @@ class LIBFM_QT_API FileInfo { |
141 |
- } |
142 |
- |
143 |
- bool isMountable() const { |
144 |
-- return mimeType_->isMountable(); |
145 |
-+ return isMountable_; |
146 |
- } |
147 |
- |
148 |
- bool isShortcut() const { |
149 |
-@@ -238,6 +238,7 @@ class LIBFM_QT_API FileInfo { |
150 |
- std::string target_; /* target of shortcut or mountable. */ |
151 |
- |
152 |
- bool isShortcut_ : 1; /* TRUE if file is shortcut type */ |
153 |
-+ bool isMountable_ : 1; /* TRUE if file is mountable type */ |
154 |
- bool isAccessible_ : 1; /* TRUE if can be read by user */ |
155 |
- bool isWritable_ : 1; /* TRUE if can be written to by user */ |
156 |
- bool isDeletable_ : 1; /* TRUE if can be deleted by user */ |
157 |
|
158 |
diff --git a/x11-libs/libfm-qt/files/libfm-qt-0.13.1-fix-smb-error.patch b/x11-libs/libfm-qt/files/libfm-qt-0.13.1-fix-smb-error.patch |
159 |
deleted file mode 100644 |
160 |
index 12611650a76..00000000000 |
161 |
--- a/x11-libs/libfm-qt/files/libfm-qt-0.13.1-fix-smb-error.patch |
162 |
+++ /dev/null |
163 |
@@ -1,279 +0,0 @@ |
164 |
-From 1a6fa2632388ffcc57ce723501a588c90b940f93 Mon Sep 17 00:00:00 2001 |
165 |
-From: "Hong Jen Yee (PCMan)" <pcman.tw@×××××.com> |
166 |
-Date: Sat, 9 Jun 2018 21:04:19 +0800 |
167 |
-Subject: [PATCH] Fix failure to open smb:// caused by incorrect file info |
168 |
- handling. |
169 |
- |
170 |
---- |
171 |
- src/core/basicfilelauncher.cpp | 40 ++++++++++++++++++++++++------- |
172 |
- src/core/basicfilelauncher.h | 2 +- |
173 |
- src/core/fileinfo.cpp | 9 ++++--- |
174 |
- src/core/fileinfojob.cpp | 44 +++++++++++++++++++++------------- |
175 |
- src/core/fileinfojob.h | 5 ++++ |
176 |
- src/core/gioptrs.h | 4 ++++ |
177 |
- src/filelauncher.cpp | 2 +- |
178 |
- src/filelauncher.h | 2 +- |
179 |
- 8 files changed, 77 insertions(+), 31 deletions(-) |
180 |
- |
181 |
-diff --git a/src/core/basicfilelauncher.cpp b/src/core/basicfilelauncher.cpp |
182 |
-index 2c7f00e..0dc8208 100644 |
183 |
---- a/src/core/basicfilelauncher.cpp |
184 |
-+++ b/src/core/basicfilelauncher.cpp |
185 |
-@@ -29,11 +29,13 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon |
186 |
- FilePathList pathsToLaunch; |
187 |
- // classify files according to different mimetypes |
188 |
- for(auto& fileInfo : fileInfos) { |
189 |
-- // qDebug("path: %s, target: %s", fileInfo->path().toString().get(), fileInfo->target().c_str()); |
190 |
-- if(fileInfo->isDir()) { |
191 |
-- folderInfos.emplace_back(fileInfo); |
192 |
-- } |
193 |
-- else if(fileInfo->isMountable()) { |
194 |
-+ /* |
195 |
-+ qDebug("path: %s, type: %s, target: %s, isDir: %i, isDesktopEntry: %i", |
196 |
-+ fileInfo->path().toString().get(), fileInfo->mimeType()->name(), fileInfo->target().c_str(), |
197 |
-+ fileInfo->isDir(), fileInfo->isDesktopEntry()); |
198 |
-+ */ |
199 |
-+ |
200 |
-+ if(fileInfo->isMountable()) { |
201 |
- if(fileInfo->target().empty()) { |
202 |
- // the mountable is not yet mounted so we have no target URI. |
203 |
- GErrorPtr err{G_IO_ERROR, G_IO_ERROR_NOT_MOUNTED, |
204 |
-@@ -67,6 +69,9 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon |
205 |
- pathsToLaunch.emplace_back(path); |
206 |
- } |
207 |
- } |
208 |
-+ else if(fileInfo->isDir()) { |
209 |
-+ folderInfos.emplace_back(fileInfo); |
210 |
-+ } |
211 |
- else { |
212 |
- auto& mimeType = fileInfo->mimeType(); |
213 |
- mimeTypeToFiles[mimeType->name()].emplace_back(fileInfo); |
214 |
-@@ -103,16 +108,27 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon |
215 |
- bool BasicFileLauncher::launchPaths(FilePathList paths, GAppLaunchContext* ctx) { |
216 |
- // FIXME: blocking with an event loop is not a good design :-( |
217 |
- QEventLoop eventLoop; |
218 |
-- |
219 |
- auto job = new FileInfoJob{paths}; |
220 |
- job->setAutoDelete(false); // do not automatically delete the job since we want its results later. |
221 |
- |
222 |
- GObjectPtr<GAppLaunchContext> ctxPtr{ctx}; |
223 |
-+ |
224 |
-+ // error handling (for example: handle path not mounted error) |
225 |
-+ QObject::connect(job, &FileInfoJob::error, |
226 |
-+ &eventLoop, [this, job, ctx](const GErrorPtr & err, Job::ErrorSeverity /* severity */ , Job::ErrorAction &act) { |
227 |
-+ auto path = job->currentPath(); |
228 |
-+ if(showError(ctx, err, path, nullptr)) { |
229 |
-+ // the user handled the error and ask for retry |
230 |
-+ act = Job::ErrorAction::RETRY; |
231 |
-+ } |
232 |
-+ }, Qt::BlockingQueuedConnection); // BlockingQueuedConnection is required here to pause the job and wait for user response |
233 |
-+ |
234 |
- QObject::connect(job, &FileInfoJob::finished, |
235 |
- [&eventLoop]() { |
236 |
- // exit the event loop when the job is done |
237 |
- eventLoop.exit(); |
238 |
- }); |
239 |
-+ |
240 |
- // run the job in another thread to not block the UI |
241 |
- job->runAsync(); |
242 |
- |
243 |
-@@ -145,7 +161,7 @@ BasicFileLauncher::ExecAction BasicFileLauncher::askExecFile(const FileInfoPtr & |
244 |
- return ExecAction::DIRECT_EXEC; |
245 |
- } |
246 |
- |
247 |
--bool BasicFileLauncher::showError(GAppLaunchContext* /* ctx */, GErrorPtr& /* err */, const FilePath& /* path */, const FileInfoPtr& /* info */) { |
248 |
-+bool BasicFileLauncher::showError(GAppLaunchContext* /* ctx */, const GErrorPtr & /* err */, const FilePath& /* path */, const FileInfoPtr& /* info */) { |
249 |
- return false; |
250 |
- } |
251 |
- |
252 |
-@@ -249,13 +265,21 @@ bool BasicFileLauncher::launchDesktopEntry(const char *desktopEntryName, const F |
253 |
- |
254 |
- FilePath BasicFileLauncher::handleShortcut(const FileInfoPtr& fileInfo, GAppLaunchContext* ctx) { |
255 |
- auto target = fileInfo->target(); |
256 |
-+ |
257 |
-+ // if we know the target is a dir, we are not going to open it using other apps |
258 |
-+ // for example: `network:///smb-root' is a shortcut targeting `smb:///' and it's also a dir |
259 |
-+ if(fileInfo->isDir()) { |
260 |
-+ return FilePath::fromPathStr(target.c_str()); |
261 |
-+ } |
262 |
-+ |
263 |
- auto scheme = CStrPtr{g_uri_parse_scheme(target.c_str())}; |
264 |
- if(scheme) { |
265 |
- // collect the uri schemes we support |
266 |
- if(strcmp(scheme.get(), "file") == 0 |
267 |
- || strcmp(scheme.get(), "trash") == 0 |
268 |
- || strcmp(scheme.get(), "network") == 0 |
269 |
-- || strcmp(scheme.get(), "computer") == 0) { |
270 |
-+ || strcmp(scheme.get(), "computer") == 0 |
271 |
-+ || strcmp(scheme.get(), "menu") == 0) { |
272 |
- return FilePath::fromUri(target.c_str()); |
273 |
- } |
274 |
- else { |
275 |
-diff --git a/src/core/basicfilelauncher.h b/src/core/basicfilelauncher.h |
276 |
-index a28aa75..3b1545d 100644 |
277 |
---- a/src/core/basicfilelauncher.h |
278 |
-+++ b/src/core/basicfilelauncher.h |
279 |
-@@ -53,7 +53,7 @@ class LIBFM_QT_API BasicFileLauncher { |
280 |
- |
281 |
- virtual bool openFolder(GAppLaunchContext* ctx, const FileInfoList& folderInfos, GErrorPtr& err); |
282 |
- |
283 |
-- virtual bool showError(GAppLaunchContext* ctx, GErrorPtr& err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}); |
284 |
-+ virtual bool showError(GAppLaunchContext* ctx, const GErrorPtr& err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}); |
285 |
- |
286 |
- virtual ExecAction askExecFile(const FileInfoPtr& file); |
287 |
- |
288 |
-diff --git a/src/core/fileinfo.cpp b/src/core/fileinfo.cpp |
289 |
-index 8e86f8d..b19a751 100644 |
290 |
---- a/src/core/fileinfo.cpp |
291 |
-+++ b/src/core/fileinfo.cpp |
292 |
-@@ -36,10 +36,9 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath |
293 |
- size_ = g_file_info_get_size(inf.get()); |
294 |
- |
295 |
- tmp = g_file_info_get_content_type(inf.get()); |
296 |
-- if(!tmp) { |
297 |
-- tmp = "application/octet-stream"; |
298 |
-+ if(tmp) { |
299 |
-+ mimeType_ = MimeType::fromName(tmp); |
300 |
- } |
301 |
-- mimeType_ = MimeType::fromName(tmp); |
302 |
- |
303 |
- mode_ = g_file_info_get_attribute_uint32(inf.get(), G_FILE_ATTRIBUTE_UNIX_MODE); |
304 |
- |
305 |
-@@ -196,6 +195,10 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath |
306 |
- } |
307 |
- } |
308 |
- |
309 |
-+ if(!mimeType_) { |
310 |
-+ mimeType_ = MimeType::fromName("application/octet-stream"); |
311 |
-+ } |
312 |
-+ |
313 |
- /* if there is a custom folder icon, use it */ |
314 |
- if(isNative() && type == G_FILE_TYPE_DIRECTORY) { |
315 |
- auto local_path = path().localPath(); |
316 |
-diff --git a/src/core/fileinfojob.cpp b/src/core/fileinfojob.cpp |
317 |
-index 3c222af..7bf8bb3 100644 |
318 |
---- a/src/core/fileinfojob.cpp |
319 |
-+++ b/src/core/fileinfojob.cpp |
320 |
-@@ -13,31 +13,41 @@ FileInfoJob::FileInfoJob(FilePathList paths, FilePathList deletionPaths, FilePat |
321 |
- |
322 |
- void FileInfoJob::exec() { |
323 |
- for(const auto& path: paths_) { |
324 |
-- if(!isCancelled()) { |
325 |
-+ if(isCancelled()) { |
326 |
-+ break; |
327 |
-+ } |
328 |
-+ currentPath_ = path; |
329 |
-+ |
330 |
-+ bool retry; |
331 |
-+ do { |
332 |
-+ retry = false; |
333 |
- GErrorPtr err; |
334 |
- GFileInfoPtr inf{ |
335 |
- g_file_query_info(path.gfile().get(), defaultGFileInfoQueryAttribs, |
336 |
- G_FILE_QUERY_INFO_NONE, cancellable().get(), &err), |
337 |
- false |
338 |
- }; |
339 |
-- if(!inf) { |
340 |
-- continue; |
341 |
-+ if(inf) { |
342 |
-+ // Reuse the same dirPath object when the path remains the same (optimize for files in the same dir) |
343 |
-+ auto dirPath = commonDirPath_.isValid() ? commonDirPath_ : path.parent(); |
344 |
-+ auto fileInfoPtr = std::make_shared<FileInfo>(inf, dirPath); |
345 |
-+ |
346 |
-+ // FIXME: this is not elegant |
347 |
-+ if(cutFilesHashSet_ |
348 |
-+ && cutFilesHashSet_->count(path.hash())) { |
349 |
-+ fileInfoPtr->bindCutFiles(cutFilesHashSet_); |
350 |
-+ } |
351 |
-+ |
352 |
-+ results_.push_back(fileInfoPtr); |
353 |
-+ Q_EMIT gotInfo(path, results_.back()); |
354 |
- } |
355 |
-- |
356 |
-- // Reuse the same dirPath object when the path remains the same (optimize for files in the same dir) |
357 |
-- auto dirPath = commonDirPath_.isValid() ? commonDirPath_ : path.parent(); |
358 |
-- FileInfo fileInfo(inf, dirPath); |
359 |
-- |
360 |
-- if(cutFilesHashSet_ |
361 |
-- && cutFilesHashSet_->count(fileInfo.path().hash())) { |
362 |
-- fileInfo.bindCutFiles(cutFilesHashSet_); |
363 |
-+ else { |
364 |
-+ auto act = emitError(err); |
365 |
-+ if(act == Job::ErrorAction::RETRY) { |
366 |
-+ retry = true; |
367 |
-+ } |
368 |
- } |
369 |
-- |
370 |
-- auto fileInfoPtr = std::make_shared<const FileInfo>(fileInfo); |
371 |
-- |
372 |
-- results_.push_back(fileInfoPtr); |
373 |
-- Q_EMIT gotInfo(path, fileInfoPtr); |
374 |
-- } |
375 |
-+ } while(retry && !isCancelled()); |
376 |
- } |
377 |
- } |
378 |
- |
379 |
-diff --git a/src/core/fileinfojob.h b/src/core/fileinfojob.h |
380 |
-index 53a03c5..d75e88f 100644 |
381 |
---- a/src/core/fileinfojob.h |
382 |
-+++ b/src/core/fileinfojob.h |
383 |
-@@ -27,6 +27,10 @@ class LIBFM_QT_API FileInfoJob : public Job { |
384 |
- return results_; |
385 |
- } |
386 |
- |
387 |
-+ const FilePath& currentPath() const { |
388 |
-+ return currentPath_; |
389 |
-+ } |
390 |
-+ |
391 |
- Q_SIGNALS: |
392 |
- void gotInfo(const FilePath& path, std::shared_ptr<const FileInfo>& info); |
393 |
- |
394 |
-@@ -39,6 +43,7 @@ class LIBFM_QT_API FileInfoJob : public Job { |
395 |
- FileInfoList results_; |
396 |
- FilePath commonDirPath_; |
397 |
- const std::shared_ptr<const HashSet> cutFilesHashSet_; |
398 |
-+ FilePath currentPath_; |
399 |
- }; |
400 |
- |
401 |
- } // namespace Fm |
402 |
-diff --git a/src/core/gioptrs.h b/src/core/gioptrs.h |
403 |
-index 401424b..ae22602 100644 |
404 |
---- a/src/core/gioptrs.h |
405 |
-+++ b/src/core/gioptrs.h |
406 |
-@@ -112,6 +112,10 @@ class GErrorPtr { |
407 |
- return err_; |
408 |
- } |
409 |
- |
410 |
-+ const GError* operator->() const { |
411 |
-+ return err_; |
412 |
-+ } |
413 |
-+ |
414 |
- bool operator == (const GErrorPtr& other) const { |
415 |
- return err_ == other.err_; |
416 |
- } |
417 |
-diff --git a/src/filelauncher.cpp b/src/filelauncher.cpp |
418 |
-index 5f667fc..ff14533 100644 |
419 |
---- a/src/filelauncher.cpp |
420 |
-+++ b/src/filelauncher.cpp |
421 |
-@@ -76,7 +76,7 @@ bool FileLauncher::openFolder(GAppLaunchContext *ctx, const FileInfoList &folder |
422 |
- return BasicFileLauncher::openFolder(ctx, folderInfos, err); |
423 |
- } |
424 |
- |
425 |
--bool FileLauncher::showError(GAppLaunchContext* /*ctx*/, GErrorPtr &err, const FilePath &path, const FileInfoPtr &info) { |
426 |
-+bool FileLauncher::showError(GAppLaunchContext* /*ctx*/, const GErrorPtr &err, const FilePath &path, const FileInfoPtr &info) { |
427 |
- /* ask for mount if trying to launch unmounted path */ |
428 |
- if(err->domain == G_IO_ERROR) { |
429 |
- if(path && err->code == G_IO_ERROR_NOT_MOUNTED) { |
430 |
-diff --git a/src/filelauncher.h b/src/filelauncher.h |
431 |
-index be5be5a..991a00a 100644 |
432 |
---- a/src/filelauncher.h |
433 |
-+++ b/src/filelauncher.h |
434 |
-@@ -43,7 +43,7 @@ class LIBFM_QT_API FileLauncher: public BasicFileLauncher { |
435 |
- |
436 |
- bool openFolder(GAppLaunchContext* ctx, const FileInfoList& folderInfos, GErrorPtr& err) override; |
437 |
- |
438 |
-- bool showError(GAppLaunchContext* ctx, GErrorPtr& err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}) override; |
439 |
-+ bool showError(GAppLaunchContext* ctx, const GErrorPtr &err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}) override; |
440 |
- |
441 |
- ExecAction askExecFile(const FileInfoPtr& file) override; |
442 |
- |