summaryrefslogtreecommitdiff
path: root/src/modinfodialog.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-12-02 15:29:23 -0500
committerGitHub <noreply@github.com>2019-12-02 15:29:23 -0500
commitd5a4077a4396058a9f79339dba0c29c4b742b60f (patch)
treea8f32d4aa0ec39600c32788c9022ea4559d408b6 /src/modinfodialog.cpp
parenteabca00c35d7af3b6822bb7857ef1e073807ca0a (diff)
parent3b78e436dbee043e4a3f81e5bfa09695c2a708c4 (diff)
Merge pull request #915 from isanae/lock-hook-shell
Lock, hook, shell
Diffstat (limited to 'src/modinfodialog.cpp')
-rw-r--r--src/modinfodialog.cpp23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index c7e071ad..f5ca1de7 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -61,10 +61,27 @@ bool canPreviewFile(
return pluginContainer.previewGenerator().previewSupported(ext);
}
-bool canOpenFile(bool isArchive, const QString&)
+bool isExecutableFilename(const QString& filename)
{
- // can open anything as long as it's not in an archive
- return !isArchive;
+ static const std::set<QString> exeExtensions = {
+ "exe", "cmd", "bat"
+ };
+
+ const auto ext = QFileInfo(filename).suffix().toLower();
+
+ return exeExtensions.contains(ext);
+}
+
+bool canRunFile(bool isArchive, const QString& filename)
+{
+ // can run executables that are not archives
+ return !isArchive && isExecutableFilename(filename);
+}
+
+bool canOpenFile(bool isArchive, const QString& filename)
+{
+ // can open non-executables that are not archives
+ return !isArchive && !isExecutableFilename(filename);
}
bool canExploreFile(bool isArchive, const QString&)