diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-12-02 15:29:23 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-12-02 15:29:23 -0500 |
| commit | d5a4077a4396058a9f79339dba0c29c4b742b60f (patch) | |
| tree | a8f32d4aa0ec39600c32788c9022ea4559d408b6 /src/modinfodialog.cpp | |
| parent | eabca00c35d7af3b6822bb7857ef1e073807ca0a (diff) | |
| parent | 3b78e436dbee043e4a3f81e5bfa09695c2a708c4 (diff) | |
Merge pull request #915 from isanae/lock-hook-shell
Lock, hook, shell
Diffstat (limited to 'src/modinfodialog.cpp')
| -rw-r--r-- | src/modinfodialog.cpp | 23 |
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&) |
