diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2024-06-17 13:33:23 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-17 13:33:23 +0200 |
| commit | ccd213c4a1ee3016c4184a9ce86ee1bd7472406d (patch) | |
| tree | cdc870beec978ee53f125320bf51924b36bede34 /proto-wine/ftnoir_protocol_wine_dialog.cpp | |
| parent | 788d478be6c363d151a9693b3b1d4e4eaa11c021 (diff) | |
| parent | 9fcb6b524b7c9d6937f88a4b9928a905d886df1d (diff) | |
Merge pull request #1867 from kzvezdarov/fix-proton-9x-exec-path
Diffstat (limited to 'proto-wine/ftnoir_protocol_wine_dialog.cpp')
| -rw-r--r-- | proto-wine/ftnoir_protocol_wine_dialog.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/proto-wine/ftnoir_protocol_wine_dialog.cpp b/proto-wine/ftnoir_protocol_wine_dialog.cpp index 07dc1469..23f82fda 100644 --- a/proto-wine/ftnoir_protocol_wine_dialog.cpp +++ b/proto-wine/ftnoir_protocol_wine_dialog.cpp @@ -2,6 +2,9 @@ #include <QDebug> #include <QFileDialog> #include <QDir> +#include <QDirIterator> +#include <qdebug.h> +#include <qdir.h> #include "api/plugin-api.hpp" @@ -46,13 +49,27 @@ FTControls::FTControls() QDir dir(QDir::homePath() + path); dir.setFilter(QDir::Dirs); dir.setNameFilters({ "Proton*" }); - QFileInfoList list = dir.entryInfoList(); - for (int i = 0; i < list.size(); ++i) { - QFileInfo fileInfo = list.at(i); - ui.proton_version->addItem(fileInfo.fileName(), QVariant{fileInfo.filePath()}); + + QFileInfoList proton_dir_list = dir.entryInfoList(); + for (int i = 0; i < proton_dir_list.size(); ++i) { + const QFileInfo &proton_dir = proton_dir_list.at(i); + qDebug() << proton_dir.canonicalFilePath(); + + QDirIterator proton_executable_it(proton_dir.canonicalFilePath(), QStringList() << "wine", QDir::Files, QDirIterator::Subdirectories); + + if (proton_executable_it.hasNext()) { + QString proton_executable_path = proton_executable_it.next(); + QDir proton_dist_dir(proton_executable_path); + proton_dist_dir.cd("../../"); + + qDebug() << proton_dist_dir.canonicalPath(); + + ui.proton_version->addItem(proton_dir.fileName(), QVariant{proton_dist_dir.canonicalPath()}); + } } } + tie_setting(s.proton_path, ui.proton_version); tie_setting(s.variant_wine, ui.variant_wine); tie_setting(s.variant_proton, ui.variant_proton); |
