Could not open or create %1 for writing
\ +Please make sure you have the right permissions \ + and try again.
").arg(file.fileName())); + msgBox.exec(); + return; + } + + file.close(); + } + + // Construct the arguments to run the importer + QStringList arguments; + + if (addonsCheckBox->isChecked()) + arguments.append(QString("--game-files")); + + arguments.append(QString("--encoding")); + arguments.append(mGameSettings.value(QString("encoding"), QString("win1252"))); + arguments.append(QString("--ini")); + arguments.append(settingsComboBox->currentText()); + arguments.append(QString("--cfg")); + arguments.append(path); + + qDebug() << "arguments " << arguments; + + if (!mImporterInvoker->startProcess(QLatin1String("mwiniimport"), arguments, false)) return; } @@ -129,7 +176,6 @@ void Launcher::SettingsPage::wizardFinished(int exitCode, QProcess::ExitStatus e if (exitCode != 0 || exitStatus == QProcess::CrashExit) return; - mMain->writeSettings(); mMain->reloadSettings(); wizardButton->setEnabled(true); } @@ -146,6 +192,9 @@ void Launcher::SettingsPage::importerFinished(int exitCode, QProcess::ExitStatus if (exitCode != 0 || exitStatus == QProcess::CrashExit) return; + // Re-read the settings in their current state + mMain->reloadSettings(); + // Import selected data files from openmw.cfg if (addonsCheckBox->isChecked()) { @@ -154,6 +203,8 @@ void Launcher::SettingsPage::importerFinished(int exitCode, QProcess::ExitStatus const QString profile(mProfileDialog->lineEdit()->text()); const QStringList files(mGameSettings.values(QLatin1String("content"))); + qDebug() << "Profile " << profile << files; + // Doesn't quite work right now mLauncherSettings.setValue(QLatin1String("Profiles/currentprofile"), profile); @@ -165,7 +216,6 @@ void Launcher::SettingsPage::importerFinished(int exitCode, QProcess::ExitStatus } } - mMain->writeSettings(); mMain->reloadSettings(); importerButton->setEnabled(true); } @@ -184,3 +234,30 @@ void Launcher::SettingsPage::updateOkButton(const QString &text) ? mProfileDialog->setOkButtonEnabled(false) : mProfileDialog->setOkButtonEnabled(true); } + +void Launcher::SettingsPage::saveSettings() +{ + QString language(languageComboBox->currentText()); + + mLauncherSettings.setValue(QLatin1String("Settings/language"), language); + + if (language == QLatin1String("Polish")) { + mGameSettings.setValue(QLatin1String("encoding"), QLatin1String("win1250")); + } else if (language == QLatin1String("Russian")) { + mGameSettings.setValue(QLatin1String("encoding"), QLatin1String("win1251")); + } else { + mGameSettings.setValue(QLatin1String("encoding"), QLatin1String("win1252")); + } +} + +bool Launcher::SettingsPage::loadSettings() +{ + QString language(mLauncherSettings.value(QLatin1String("Settings/language"))); + + int index = languageComboBox->findText(language); + + if (index != -1) + languageComboBox->setCurrentIndex(index); + + return true; +} diff --git a/apps/launcher/settingspage.hpp b/apps/launcher/settingspage.hpp index d43141fc4e..846f5681c8 100644 --- a/apps/launcher/settingspage.hpp +++ b/apps/launcher/settingspage.hpp @@ -10,6 +10,7 @@ #include "maindialog.hpp" +namespace Files { struct ConfigurationManager; } namespace Config { class GameSettings; class LauncherSettings; } @@ -22,13 +23,14 @@ namespace Launcher Q_OBJECT public: - SettingsPage( Config::GameSettings &gameSettings, + SettingsPage(Files::ConfigurationManager &cfg, Config::GameSettings &gameSettings, Config::LauncherSettings &launcherSettings, MainDialog *parent = 0); void saveSettings(); bool loadSettings(); private slots: + void on_wizardButton_clicked(); void on_importerButton_clicked(); void on_browseButton_clicked(); @@ -42,9 +44,12 @@ namespace Launcher void updateOkButton(const QString &text); private: + Process::ProcessInvoker *mWizardInvoker; Process::ProcessInvoker *mImporterInvoker; + Files::ConfigurationManager &mCfgMgr; + Config::GameSettings &mGameSettings; Config::LauncherSettings &mLauncherSettings; diff --git a/apps/launcher/utils/textinputdialog.cpp b/apps/launcher/utils/textinputdialog.cpp index 74e40a81c2..b47fdb6e62 100644 --- a/apps/launcher/utils/textinputdialog.cpp +++ b/apps/launcher/utils/textinputdialog.cpp @@ -14,7 +14,7 @@ Launcher::TextInputDialog::TextInputDialog(const QString& title, const QString & mButtonBox = new QDialogButtonBox(this); mButtonBox->addButton(QDialogButtonBox::Ok); mButtonBox->addButton(QDialogButtonBox::Cancel); -// mButtonBox->button(QDialogButtonBox::Ok)->setEnabled (false); + mButtonBox->button(QDialogButtonBox::Ok)->setEnabled (false); QLabel *label = new QLabel(this); label->setText(text);