diff options
author | Priton-CE <thies.eric@gmail.com> | 2024-09-21 16:12:10 +0200 |
---|---|---|
committer | Priton-CE <thies.eric@gmail.com> | 2024-09-21 16:12:10 +0200 |
commit | d31d706ac4997f134a8ec584c249546f1a0fe7ce (patch) | |
tree | c0eeec1a3d94ccb728876f754c3d456156f2d5db | |
parent | bc84e28daf41f108d5dfcec9f8de3b79fbb31d44 (diff) |
improved wine settings dialog startup time
-rw-r--r-- | proto-wine/ftnoir_protocol_wine_dialog.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/proto-wine/ftnoir_protocol_wine_dialog.cpp b/proto-wine/ftnoir_protocol_wine_dialog.cpp index 3fbccd14..2d1148a2 100644 --- a/proto-wine/ftnoir_protocol_wine_dialog.cpp +++ b/proto-wine/ftnoir_protocol_wine_dialog.cpp @@ -57,6 +57,11 @@ FTControls::FTControls() for (int i = 0; i < proton_dir_list.size(); ++i) { const QFileInfo &proton_dir = proton_dir_list.at(i); + // check if this Proton Version is already present in any way + // NOTE: placed here instead of in front of the addItem call to improve performance + if (ui.proton_version->findData(QVariant{proton_dir.canonicalPath()}) != -1) + continue; + QDirIterator proton_executable_it(proton_dir.canonicalFilePath(), QStringList() << "wine", QDir::Files, QDirIterator::Subdirectories); if (proton_executable_it.hasNext()) { @@ -64,8 +69,7 @@ FTControls::FTControls() QDir proton_dist_dir(proton_executable_path); proton_dist_dir.cd("../../"); - if (ui.proton_version->findData(QVariant{proton_dist_dir.canonicalPath()}) == -1) - ui.proton_version->addItem(proton_dir.fileName(), QVariant{proton_dist_dir.canonicalPath()}); + ui.proton_version->addItem(proton_dir.fileName(), QVariant{proton_dist_dir.canonicalPath()}); } } } |