mirror of
https://github.com/redstrate/Astra.git
synced 2025-04-23 12:57:45 +00:00
Reload wine path when wine version combo changes
This commit is contained in:
parent
241b4b43e1
commit
6a32d73301
3 changed files with 30 additions and 33 deletions
|
@ -177,11 +177,9 @@ SettingsWindow::SettingsWindow(LauncherWindow& window, QWidget* parent) : window
|
|||
connect(wineVersionCombo, &QComboBox::currentIndexChanged, [this](int index) {
|
||||
getCurrentProfile().wineVersion = index;
|
||||
|
||||
this->window.readWineInfo(getCurrentProfile());
|
||||
this->window.saveSettings();
|
||||
this->reloadControls();
|
||||
|
||||
// TODO: figure out the purpose of calling this before 1.0
|
||||
// this->window.readInitialInformation();
|
||||
});
|
||||
|
||||
connect(selectWineButton, &QPushButton::pressed, [this] {
|
||||
|
@ -189,9 +187,6 @@ SettingsWindow::SettingsWindow(LauncherWindow& window, QWidget* parent) : window
|
|||
|
||||
this->window.saveSettings();
|
||||
this->reloadControls();
|
||||
|
||||
// TODO: figure out the purpose of calling this before 2.0
|
||||
//this->window.readInitialInformation();
|
||||
});
|
||||
|
||||
winePrefixDirectory = new QLabel(window.currentProfile().winePrefixPath);
|
||||
|
@ -204,9 +199,6 @@ SettingsWindow::SettingsWindow(LauncherWindow& window, QWidget* parent) : window
|
|||
|
||||
this->window.saveSettings();
|
||||
this->reloadControls();
|
||||
|
||||
// TODO: figure out the purpose of calling this before 3.0
|
||||
//this->window.readInitialInformation();
|
||||
});
|
||||
wineBoxLayout->addWidget(selectPrefixButton);
|
||||
|
||||
|
|
|
@ -219,30 +219,7 @@ void LauncherWindow::readInitialInformation() {
|
|||
profile.name = settings.value("name", "Default").toString();
|
||||
|
||||
profile.wineVersion = settings.value("wineVersion", 0).toInt();
|
||||
#if defined(Q_OS_MAC)
|
||||
switch(profile.wineVersion) {
|
||||
case 0: // system wine
|
||||
profile.winePath = "/usr/local/bin/wine64";
|
||||
break;
|
||||
case 1: // custom path
|
||||
profile.winePath = settings.value("winePath").toString();
|
||||
break;
|
||||
case 2: // ffxiv built-in (for mac users)
|
||||
profile.winePath = "/Applications/FINAL FANTASY XIV ONLINE.app/Contents/SharedSupport/finalfantasyxiv/FINAL FANTASY XIV ONLINE/wine";
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(Q_OS_LINUX)
|
||||
switch(profile.wineVersion) {
|
||||
case 0: // system wine (should be in $PATH)
|
||||
profile.winePath = "wine";
|
||||
break;
|
||||
case 1: // custom pth
|
||||
profile.winePath = settings.value("winePath").toString();
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
readWineInfo(profile);
|
||||
|
||||
if(settings.contains("gamePath") && settings.value("gamePath").canConvert<QString>() && !settings.value("gamePath").toString().isEmpty()) {
|
||||
profile.gamePath = settings.value("gamePath").toString();
|
||||
|
@ -293,6 +270,33 @@ void LauncherWindow::readInitialInformation() {
|
|||
readGameVersion();
|
||||
}
|
||||
|
||||
void LauncherWindow::readWineInfo(ProfileSettings& profile) {
|
||||
#if defined(Q_OS_MAC)
|
||||
switch(profile.wineVersion) {
|
||||
case 0: // system wine
|
||||
profile.winePath = "/usr/local/bin/wine64";
|
||||
break;
|
||||
case 1: // custom path
|
||||
profile.winePath = profile.winePath;
|
||||
break;
|
||||
case 2: // ffxiv built-in (for mac users)
|
||||
profile.winePath = "/Applications/FINAL FANTASY XIV ONLINE.app/Contents/SharedSupport/finalfantasyxiv/FINAL FANTASY XIV ONLINE/wine";
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(Q_OS_LINUX)
|
||||
switch(profile.wineVersion) {
|
||||
case 0: // system wine (should be in $PATH)
|
||||
profile.winePath = "wine";
|
||||
break;
|
||||
case 1: // custom pth
|
||||
profile.winePath = profile.winePath;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void LauncherWindow::readGameVersion() {
|
||||
for(auto& profile : profileSettings) {
|
||||
profile.bootVersion = readVersion(profile.gamePath + "/boot/ffxivboot.ver");
|
||||
|
|
|
@ -77,6 +77,7 @@ public:
|
|||
QString readVersion(QString path);
|
||||
void readInitialInformation();
|
||||
void readGameVersion();
|
||||
void readWineInfo(ProfileSettings& settings);
|
||||
void saveSettings();
|
||||
|
||||
QSettings settings;
|
||||
|
|
Loading…
Add table
Reference in a new issue