diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2018-09-30 11:19:18 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2018-09-30 11:19:18 +0100 |
commit | 62f67115b5c46134c34f88f4b1cbdacc19384c0a (patch) | |
tree | 0a76b14de203a4c23040e5665e39df8de9867745 /x11-libs/libfm-qt | |
parent | 265dbe5dbc14c199299496c6db8fce3f76647015 (diff) |
gentoo resync : 30.09.2018
Diffstat (limited to 'x11-libs/libfm-qt')
5 files changed, 458 insertions, 0 deletions
diff --git a/x11-libs/libfm-qt/Manifest b/x11-libs/libfm-qt/Manifest index 19fafff5f352..da84c6adeb74 100644 --- a/x11-libs/libfm-qt/Manifest +++ b/x11-libs/libfm-qt/Manifest @@ -1,5 +1,9 @@ +AUX libfm-qt-0.13.1-check-if-app-exists-before-opening.patch 2010 BLAKE2B 3f33d70abe1467df3b799602c3232af7a490481c1fb2c3dd5a68f4792dc45a251f1e5518df36604090d23a42c43d13051bd144b54eb15cb2a7c722c9283cbacf SHA512 cafb1b97a1f6faeb7e7e9da5fa7c323eea1754078d08e5e0ea4e437c29d7da371318ecc7b944c595ef60f3169697f35db9efbd2ee23282a2bd694fac19d2e634 +AUX libfm-qt-0.13.1-correctly-handle-mountable-types.patch 3498 BLAKE2B ed7a0541d2bcbed1afd30d0045f676f179a0c123376afaeeef29260107f80ea8b0cf89a3a55f4e004fd11a6157b4ef2d3c092c8ddedd2013bef321fb59728660 SHA512 3bc193a1ef82bbe64181e596e082cbcc26b60f1cad8f05cb1d1fdcc1d162af21f8935179e3cf8ff370a7640bd5299a2ef7380436f80f9c620489365fe76c31c3 +AUX libfm-qt-0.13.1-fix-smb-error.patch 11579 BLAKE2B 4a0cdc5c9579415a3334de6295cae8ae5b9a4fdbbd0ecf647484b58edd3c6bed07fc0b93050a81c6d0d55343ea3b0f554cde536f6873ce3db057a6da3e6c267a SHA512 cc00a79ceac417d969001ac35b3c65bb6b437b3c98c62d5e70ea1e23b1a0ad0e11f05ad5c49cee64cdc23b16121ba14a8fc8978aa42b4ba6c64da00f07f72f8d DIST libfm-qt-0.11.1.tar.xz 127624 BLAKE2B a6651e5ffc79a49f17f4ab95dbb9e4f51bd8de08f9d207970e32e2732eec920eaba0edf404ef1fa2fcc1e9b7f14fbc869eeb1ba334dae4b2f5ef3a9f5b94c713 SHA512 e7cb545e81459f459aafdf491541c3de7cc91249c2179f74bc1ddab0f0c50467e82b731afce22b3a86a2462d331f55794f4336912ec607bfb5e2faa43ad58079 DIST libfm-qt-0.13.1.tar.xz 191972 BLAKE2B 760847be1fbb209003bd2b61a9c475ccf57721c469927039518a5f65543b8264c32f3e2c66c867be0b969fdf4636fb82cde0b2bd4e77b1365fcb9f61b0bd02c8 SHA512 29b8f686950a7b0ea86468d01ca64a6ff8316ccd5f0144808a4332692cf96199431470880a9b560780efeba7add833ab6a0d9b4b24220f8fb7091cc5ef151dc8 EBUILD libfm-qt-0.11.1.ebuild 905 BLAKE2B 617800ac0b96fb5ad880dddda765d1f66836871911c04f8a8b1388673bb3849edbd4ec242620f741e127fdf769d87e3bc20b16313ade87005cf7a80e28d76b16 SHA512 4d230db20a9c7aa842aa5b855080e7d01273f15eb2968d5a4de4211c1d9d5db5f7d3ebbc0db74b4dcf8b65744419552c04514ae51710532238c3e24db1b83ccc +EBUILD libfm-qt-0.13.1-r1.ebuild 1099 BLAKE2B 16213a455bd0710d7171b6fe6e8161e466c06251985edff6fbf342a9f48677e6f19fdfb67abc81f25fabd07cf56aeb7f405987198771c6735167b3ac8d81e3aa SHA512 ad0560427f59782cf05974fd20598fe697f8f872506a59d87065c195e3fb3de255dfa62fb6749d0574711a5335a1b6ddbc6ba92615f04576c289280ca0a9beec EBUILD libfm-qt-0.13.1.ebuild 926 BLAKE2B 3f1262e5cc7c7c2113e50db9cf19327281b125820b03f5114eae2524f406ded9dd6697ec37b92eb7292a44fc19811e3505e39f880b4039616c0d6594ba101975 SHA512 0413552e13a4ea4e5b1ebe0cd2b6cc82b846fc0da0c58ecd21212583fcc9bcc76831c3c013c54bd7979896a5fbf3a6ea2f4e5e5be4ade801fea99688dc5fae0c MISC metadata.xml 314 BLAKE2B a40b71c62066cf524406556206999869edecf714d898236a8f277132e8b3752fec298cf9407e9010a1037bc757fafcbae32abec9b52a68492d414acd529c176a SHA512 edaddf48fd7cef23284164b7046e0e6b5ce1442847d3353ee8175177f00b06973d6588811b166dacbd7a1182942128792858a43e029d6aa874c1b8625b5e78f3 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 new file mode 100644 index 000000000000..92b45be432fb --- /dev/null +++ b/x11-libs/libfm-qt/files/libfm-qt-0.13.1-check-if-app-exists-before-opening.patch @@ -0,0 +1,45 @@ +From 4923f860094787d14052e9dc416c9388ff1bb53b Mon Sep 17 00:00:00 2001 +From: Tsu Jan <tsujan2000@gmail.com> +Date: Thu, 7 Jun 2018 06:10:37 +0430 +Subject: [PATCH] Check if the opening app exists before using it + +Also, show an error message if there's no app. +--- + src/core/basicfilelauncher.cpp | 17 ++++++++++++----- + 1 file changed, 12 insertions(+), 5 deletions(-) + +diff --git a/src/core/basicfilelauncher.cpp b/src/core/basicfilelauncher.cpp +index 8390531..2c7f00e 100644 +--- a/src/core/basicfilelauncher.cpp ++++ b/src/core/basicfilelauncher.cpp +@@ -256,18 +256,25 @@ FilePath BasicFileLauncher::handleShortcut(const FileInfoPtr& fileInfo, GAppLaun + || strcmp(scheme.get(), "trash") == 0 + || strcmp(scheme.get(), "network") == 0 + || strcmp(scheme.get(), "computer") == 0) { +- return FilePath::fromUri(fileInfo->target().c_str()); ++ return FilePath::fromUri(target.c_str()); + } + else { + // ask gio to launch the default handler for the uri scheme +- GAppInfoPtr app{g_app_info_get_default_for_uri_scheme(scheme.get()), false}; +- FilePathList uris{FilePath::fromUri(fileInfo->target().c_str())}; +- launchWithApp(app.get(), uris, ctx); ++ if(GAppInfoPtr app{g_app_info_get_default_for_uri_scheme(scheme.get()), false}) { ++ FilePathList uris{FilePath::fromUri(target.c_str())}; ++ launchWithApp(app.get(), uris, ctx); ++ } ++ else { ++ GErrorPtr err{G_IO_ERROR, G_IO_ERROR_FAILED, ++ QObject::tr("No default application is set to launch '%1'") ++ .arg(target.c_str())}; ++ showError(nullptr, err); ++ } + } + } + else { + // see it as a local path +- return FilePath::fromLocalPath(fileInfo->target().c_str()); ++ return FilePath::fromLocalPath(target.c_str()); + } + return FilePath(); + } 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 new file mode 100644 index 000000000000..adaed387e279 --- /dev/null +++ b/x11-libs/libfm-qt/files/libfm-qt-0.13.1-correctly-handle-mountable-types.patch @@ -0,0 +1,80 @@ +From dc7a5753b934e323d4d8d13f3253cbe7ae55a111 Mon Sep 17 00:00:00 2001 +From: "Hong Jen Yee (PCMan)" <pcman.tw@gmail.com> +Date: Sun, 10 Jun 2018 00:07:31 +0800 +Subject: [PATCH] Correctly handle mountable types. + +--- + src/core/basicfilelauncher.cpp | 6 +++--- + src/core/fileinfo.cpp | 4 ++-- + src/core/fileinfo.h | 3 ++- + 3 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/src/core/basicfilelauncher.cpp b/src/core/basicfilelauncher.cpp +index 0dc8208..0ae1177 100644 +--- a/src/core/basicfilelauncher.cpp ++++ b/src/core/basicfilelauncher.cpp +@@ -30,11 +30,10 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon + // classify files according to different mimetypes + for(auto& fileInfo : fileInfos) { + /* +- qDebug("path: %s, type: %s, target: %s, isDir: %i, isDesktopEntry: %i", ++ qDebug("path: %s, type: %s, target: %s, isDir: %i, isShortcut: %i, isMountable: %i, isDesktopEntry: %i", + fileInfo->path().toString().get(), fileInfo->mimeType()->name(), fileInfo->target().c_str(), +- fileInfo->isDir(), fileInfo->isDesktopEntry()); ++ fileInfo->isDir(), fileInfo->isShortcut(), fileInfo->isMountable(), fileInfo->isDesktopEntry()); + */ +- + if(fileInfo->isMountable()) { + if(fileInfo->target().empty()) { + // the mountable is not yet mounted so we have no target URI. +@@ -269,6 +268,7 @@ FilePath BasicFileLauncher::handleShortcut(const FileInfoPtr& fileInfo, GAppLaun + // if we know the target is a dir, we are not going to open it using other apps + // for example: `network:///smb-root' is a shortcut targeting `smb:///' and it's also a dir + if(fileInfo->isDir()) { ++ qDebug("shortcut is dir: %s", target.c_str()); + return FilePath::fromPathStr(target.c_str()); + } + +diff --git a/src/core/fileinfo.cpp b/src/core/fileinfo.cpp +index b19a751..5838fe5 100644 +--- a/src/core/fileinfo.cpp ++++ b/src/core/fileinfo.cpp +@@ -118,7 +118,8 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath + isDeletable_ = true; + } + +- isShortcut_ = false; ++ isShortcut_ = (type == G_FILE_TYPE_SHORTCUT); ++ isMountable_ = (type == G_FILE_TYPE_MOUNTABLE); + + /* special handling for symlinks */ + if(g_file_info_get_is_symlink(inf.get())) { +@@ -129,7 +130,6 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath + + switch(type) { + case G_FILE_TYPE_SHORTCUT: +- isShortcut_ = true; + /* Falls through. */ + case G_FILE_TYPE_MOUNTABLE: + uri = g_file_info_get_attribute_string(inf.get(), G_FILE_ATTRIBUTE_STANDARD_TARGET_URI); +diff --git a/src/core/fileinfo.h b/src/core/fileinfo.h +index 8437d92..27f7508 100644 +--- a/src/core/fileinfo.h ++++ b/src/core/fileinfo.h +@@ -150,7 +150,7 @@ class LIBFM_QT_API FileInfo { + } + + bool isMountable() const { +- return mimeType_->isMountable(); ++ return isMountable_; + } + + bool isShortcut() const { +@@ -238,6 +238,7 @@ class LIBFM_QT_API FileInfo { + std::string target_; /* target of shortcut or mountable. */ + + bool isShortcut_ : 1; /* TRUE if file is shortcut type */ ++ bool isMountable_ : 1; /* TRUE if file is mountable type */ + bool isAccessible_ : 1; /* TRUE if can be read by user */ + bool isWritable_ : 1; /* TRUE if can be written to by user */ + bool isDeletable_ : 1; /* TRUE if can be deleted by user */ 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 new file mode 100644 index 000000000000..12611650a76c --- /dev/null +++ b/x11-libs/libfm-qt/files/libfm-qt-0.13.1-fix-smb-error.patch @@ -0,0 +1,279 @@ +From 1a6fa2632388ffcc57ce723501a588c90b940f93 Mon Sep 17 00:00:00 2001 +From: "Hong Jen Yee (PCMan)" <pcman.tw@gmail.com> +Date: Sat, 9 Jun 2018 21:04:19 +0800 +Subject: [PATCH] Fix failure to open smb:// caused by incorrect file info + handling. + +--- + src/core/basicfilelauncher.cpp | 40 ++++++++++++++++++++++++------- + src/core/basicfilelauncher.h | 2 +- + src/core/fileinfo.cpp | 9 ++++--- + src/core/fileinfojob.cpp | 44 +++++++++++++++++++++------------- + src/core/fileinfojob.h | 5 ++++ + src/core/gioptrs.h | 4 ++++ + src/filelauncher.cpp | 2 +- + src/filelauncher.h | 2 +- + 8 files changed, 77 insertions(+), 31 deletions(-) + +diff --git a/src/core/basicfilelauncher.cpp b/src/core/basicfilelauncher.cpp +index 2c7f00e..0dc8208 100644 +--- a/src/core/basicfilelauncher.cpp ++++ b/src/core/basicfilelauncher.cpp +@@ -29,11 +29,13 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon + FilePathList pathsToLaunch; + // classify files according to different mimetypes + for(auto& fileInfo : fileInfos) { +- // qDebug("path: %s, target: %s", fileInfo->path().toString().get(), fileInfo->target().c_str()); +- if(fileInfo->isDir()) { +- folderInfos.emplace_back(fileInfo); +- } +- else if(fileInfo->isMountable()) { ++ /* ++ qDebug("path: %s, type: %s, target: %s, isDir: %i, isDesktopEntry: %i", ++ fileInfo->path().toString().get(), fileInfo->mimeType()->name(), fileInfo->target().c_str(), ++ fileInfo->isDir(), fileInfo->isDesktopEntry()); ++ */ ++ ++ if(fileInfo->isMountable()) { + if(fileInfo->target().empty()) { + // the mountable is not yet mounted so we have no target URI. + GErrorPtr err{G_IO_ERROR, G_IO_ERROR_NOT_MOUNTED, +@@ -67,6 +69,9 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon + pathsToLaunch.emplace_back(path); + } + } ++ else if(fileInfo->isDir()) { ++ folderInfos.emplace_back(fileInfo); ++ } + else { + auto& mimeType = fileInfo->mimeType(); + mimeTypeToFiles[mimeType->name()].emplace_back(fileInfo); +@@ -103,16 +108,27 @@ bool BasicFileLauncher::launchFiles(const FileInfoList& fileInfos, GAppLaunchCon + bool BasicFileLauncher::launchPaths(FilePathList paths, GAppLaunchContext* ctx) { + // FIXME: blocking with an event loop is not a good design :-( + QEventLoop eventLoop; +- + auto job = new FileInfoJob{paths}; + job->setAutoDelete(false); // do not automatically delete the job since we want its results later. + + GObjectPtr<GAppLaunchContext> ctxPtr{ctx}; ++ ++ // error handling (for example: handle path not mounted error) ++ QObject::connect(job, &FileInfoJob::error, ++ &eventLoop, [this, job, ctx](const GErrorPtr & err, Job::ErrorSeverity /* severity */ , Job::ErrorAction &act) { ++ auto path = job->currentPath(); ++ if(showError(ctx, err, path, nullptr)) { ++ // the user handled the error and ask for retry ++ act = Job::ErrorAction::RETRY; ++ } ++ }, Qt::BlockingQueuedConnection); // BlockingQueuedConnection is required here to pause the job and wait for user response ++ + QObject::connect(job, &FileInfoJob::finished, + [&eventLoop]() { + // exit the event loop when the job is done + eventLoop.exit(); + }); ++ + // run the job in another thread to not block the UI + job->runAsync(); + +@@ -145,7 +161,7 @@ BasicFileLauncher::ExecAction BasicFileLauncher::askExecFile(const FileInfoPtr & + return ExecAction::DIRECT_EXEC; + } + +-bool BasicFileLauncher::showError(GAppLaunchContext* /* ctx */, GErrorPtr& /* err */, const FilePath& /* path */, const FileInfoPtr& /* info */) { ++bool BasicFileLauncher::showError(GAppLaunchContext* /* ctx */, const GErrorPtr & /* err */, const FilePath& /* path */, const FileInfoPtr& /* info */) { + return false; + } + +@@ -249,13 +265,21 @@ bool BasicFileLauncher::launchDesktopEntry(const char *desktopEntryName, const F + + FilePath BasicFileLauncher::handleShortcut(const FileInfoPtr& fileInfo, GAppLaunchContext* ctx) { + auto target = fileInfo->target(); ++ ++ // if we know the target is a dir, we are not going to open it using other apps ++ // for example: `network:///smb-root' is a shortcut targeting `smb:///' and it's also a dir ++ if(fileInfo->isDir()) { ++ return FilePath::fromPathStr(target.c_str()); ++ } ++ + auto scheme = CStrPtr{g_uri_parse_scheme(target.c_str())}; + if(scheme) { + // collect the uri schemes we support + if(strcmp(scheme.get(), "file") == 0 + || strcmp(scheme.get(), "trash") == 0 + || strcmp(scheme.get(), "network") == 0 +- || strcmp(scheme.get(), "computer") == 0) { ++ || strcmp(scheme.get(), "computer") == 0 ++ || strcmp(scheme.get(), "menu") == 0) { + return FilePath::fromUri(target.c_str()); + } + else { +diff --git a/src/core/basicfilelauncher.h b/src/core/basicfilelauncher.h +index a28aa75..3b1545d 100644 +--- a/src/core/basicfilelauncher.h ++++ b/src/core/basicfilelauncher.h +@@ -53,7 +53,7 @@ class LIBFM_QT_API BasicFileLauncher { + + virtual bool openFolder(GAppLaunchContext* ctx, const FileInfoList& folderInfos, GErrorPtr& err); + +- virtual bool showError(GAppLaunchContext* ctx, GErrorPtr& err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}); ++ virtual bool showError(GAppLaunchContext* ctx, const GErrorPtr& err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}); + + virtual ExecAction askExecFile(const FileInfoPtr& file); + +diff --git a/src/core/fileinfo.cpp b/src/core/fileinfo.cpp +index 8e86f8d..b19a751 100644 +--- a/src/core/fileinfo.cpp ++++ b/src/core/fileinfo.cpp +@@ -36,10 +36,9 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath + size_ = g_file_info_get_size(inf.get()); + + tmp = g_file_info_get_content_type(inf.get()); +- if(!tmp) { +- tmp = "application/octet-stream"; ++ if(tmp) { ++ mimeType_ = MimeType::fromName(tmp); + } +- mimeType_ = MimeType::fromName(tmp); + + mode_ = g_file_info_get_attribute_uint32(inf.get(), G_FILE_ATTRIBUTE_UNIX_MODE); + +@@ -196,6 +195,10 @@ void FileInfo::setFromGFileInfo(const GObjectPtr<GFileInfo>& inf, const FilePath + } + } + ++ if(!mimeType_) { ++ mimeType_ = MimeType::fromName("application/octet-stream"); ++ } ++ + /* if there is a custom folder icon, use it */ + if(isNative() && type == G_FILE_TYPE_DIRECTORY) { + auto local_path = path().localPath(); +diff --git a/src/core/fileinfojob.cpp b/src/core/fileinfojob.cpp +index 3c222af..7bf8bb3 100644 +--- a/src/core/fileinfojob.cpp ++++ b/src/core/fileinfojob.cpp +@@ -13,31 +13,41 @@ FileInfoJob::FileInfoJob(FilePathList paths, FilePathList deletionPaths, FilePat + + void FileInfoJob::exec() { + for(const auto& path: paths_) { +- if(!isCancelled()) { ++ if(isCancelled()) { ++ break; ++ } ++ currentPath_ = path; ++ ++ bool retry; ++ do { ++ retry = false; + GErrorPtr err; + GFileInfoPtr inf{ + g_file_query_info(path.gfile().get(), defaultGFileInfoQueryAttribs, + G_FILE_QUERY_INFO_NONE, cancellable().get(), &err), + false + }; +- if(!inf) { +- continue; ++ if(inf) { ++ // Reuse the same dirPath object when the path remains the same (optimize for files in the same dir) ++ auto dirPath = commonDirPath_.isValid() ? commonDirPath_ : path.parent(); ++ auto fileInfoPtr = std::make_shared<FileInfo>(inf, dirPath); ++ ++ // FIXME: this is not elegant ++ if(cutFilesHashSet_ ++ && cutFilesHashSet_->count(path.hash())) { ++ fileInfoPtr->bindCutFiles(cutFilesHashSet_); ++ } ++ ++ results_.push_back(fileInfoPtr); ++ Q_EMIT gotInfo(path, results_.back()); + } +- +- // Reuse the same dirPath object when the path remains the same (optimize for files in the same dir) +- auto dirPath = commonDirPath_.isValid() ? commonDirPath_ : path.parent(); +- FileInfo fileInfo(inf, dirPath); +- +- if(cutFilesHashSet_ +- && cutFilesHashSet_->count(fileInfo.path().hash())) { +- fileInfo.bindCutFiles(cutFilesHashSet_); ++ else { ++ auto act = emitError(err); ++ if(act == Job::ErrorAction::RETRY) { ++ retry = true; ++ } + } +- +- auto fileInfoPtr = std::make_shared<const FileInfo>(fileInfo); +- +- results_.push_back(fileInfoPtr); +- Q_EMIT gotInfo(path, fileInfoPtr); +- } ++ } while(retry && !isCancelled()); + } + } + +diff --git a/src/core/fileinfojob.h b/src/core/fileinfojob.h +index 53a03c5..d75e88f 100644 +--- a/src/core/fileinfojob.h ++++ b/src/core/fileinfojob.h +@@ -27,6 +27,10 @@ class LIBFM_QT_API FileInfoJob : public Job { + return results_; + } + ++ const FilePath& currentPath() const { ++ return currentPath_; ++ } ++ + Q_SIGNALS: + void gotInfo(const FilePath& path, std::shared_ptr<const FileInfo>& info); + +@@ -39,6 +43,7 @@ class LIBFM_QT_API FileInfoJob : public Job { + FileInfoList results_; + FilePath commonDirPath_; + const std::shared_ptr<const HashSet> cutFilesHashSet_; ++ FilePath currentPath_; + }; + + } // namespace Fm +diff --git a/src/core/gioptrs.h b/src/core/gioptrs.h +index 401424b..ae22602 100644 +--- a/src/core/gioptrs.h ++++ b/src/core/gioptrs.h +@@ -112,6 +112,10 @@ class GErrorPtr { + return err_; + } + ++ const GError* operator->() const { ++ return err_; ++ } ++ + bool operator == (const GErrorPtr& other) const { + return err_ == other.err_; + } +diff --git a/src/filelauncher.cpp b/src/filelauncher.cpp +index 5f667fc..ff14533 100644 +--- a/src/filelauncher.cpp ++++ b/src/filelauncher.cpp +@@ -76,7 +76,7 @@ bool FileLauncher::openFolder(GAppLaunchContext *ctx, const FileInfoList &folder + return BasicFileLauncher::openFolder(ctx, folderInfos, err); + } + +-bool FileLauncher::showError(GAppLaunchContext* /*ctx*/, GErrorPtr &err, const FilePath &path, const FileInfoPtr &info) { ++bool FileLauncher::showError(GAppLaunchContext* /*ctx*/, const GErrorPtr &err, const FilePath &path, const FileInfoPtr &info) { + /* ask for mount if trying to launch unmounted path */ + if(err->domain == G_IO_ERROR) { + if(path && err->code == G_IO_ERROR_NOT_MOUNTED) { +diff --git a/src/filelauncher.h b/src/filelauncher.h +index be5be5a..991a00a 100644 +--- a/src/filelauncher.h ++++ b/src/filelauncher.h +@@ -43,7 +43,7 @@ class LIBFM_QT_API FileLauncher: public BasicFileLauncher { + + bool openFolder(GAppLaunchContext* ctx, const FileInfoList& folderInfos, GErrorPtr& err) override; + +- bool showError(GAppLaunchContext* ctx, GErrorPtr& err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}) override; ++ bool showError(GAppLaunchContext* ctx, const GErrorPtr &err, const FilePath& path = FilePath{}, const FileInfoPtr& info = FileInfoPtr{}) override; + + ExecAction askExecFile(const FileInfoPtr& file) override; + diff --git a/x11-libs/libfm-qt/libfm-qt-0.13.1-r1.ebuild b/x11-libs/libfm-qt/libfm-qt-0.13.1-r1.ebuild new file mode 100644 index 000000000000..95dea87773b8 --- /dev/null +++ b/x11-libs/libfm-qt/libfm-qt-0.13.1-r1.ebuild @@ -0,0 +1,50 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit cmake-utils eapi7-ver + +DESCRIPTION="Qt port of libfm, a library providing components to build desktop file managers" +HOMEPAGE="https://lxqt.org/" + +if [[ "${PV}" == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/lxqt/${PN}.git" +else + SRC_URI="https://downloads.lxqt.org/downloads/${PN}/${PV}/${P}.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~x86" +fi + +LICENSE="GPL-2+ LGPL-2.1+" +SLOT="0/5" + +PATCHES=( + "${FILESDIR}/${P}-check-if-app-exists-before-opening.patch" + "${FILESDIR}/${P}-fix-smb-error.patch" + "${FILESDIR}/${P}-correctly-handle-mountable-types.patch" +) + +RDEPEND=" + dev-libs/glib:2 + dev-qt/qtcore:5 + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qtx11extras:5 + >=lxde-base/menu-cache-1.1.0 + media-libs/libexif:= + >=x11-libs/libfm-1.2.0:= + x11-libs/libxcb:= +" +DEPEND="${RDEPEND} + dev-qt/linguist-tools:5 + >=dev-util/lxqt-build-tools-0.5.0 + virtual/pkgconfig +" + +src_configure() { + local mycmakeargs=( + -DPULL_TRANSLATIONS=OFF + ) + cmake-utils_src_configure +} |