Notify the user of any errors

This commit is contained in:
Jan Dalheimer 2013-12-30 14:45:59 +01:00
parent c01678a3fa
commit 5d0868a056
4 changed files with 19 additions and 7 deletions

View File

@ -554,17 +554,17 @@ QString MultiMC::getExitUpdatePath() const
return m_updateOnExitPath; return m_updateOnExitPath;
} }
void MultiMC::openJsonEditor(const QString &filename) bool MultiMC::openJsonEditor(const QString &filename)
{ {
const QString file = QDir::current().absoluteFilePath(filename); const QString file = QDir::current().absoluteFilePath(filename);
if (m_settings->get("JsonEditor").toString().isEmpty()) if (m_settings->get("JsonEditor").toString().isEmpty())
{ {
QDesktopServices::openUrl(QUrl::fromLocalFile(file)); return QDesktopServices::openUrl(QUrl::fromLocalFile(file));
} }
else else
{ {
QProcess::startDetached(m_settings->get("JsonEditor").toString(), return QProcess::startDetached(m_settings->get("JsonEditor").toString(),
QStringList() << file); QStringList() << file);
} }
} }

View File

@ -117,7 +117,7 @@ public:
* Opens a json file using either a system default editor, or, if note empty, the editor * Opens a json file using either a system default editor, or, if note empty, the editor
* specified in the settings * specified in the settings
*/ */
void openJsonEditor(const QString &filename); bool openJsonEditor(const QString &filename);
private: private:
void initLogger(); void initLogger();

View File

@ -140,7 +140,10 @@ void OneSixModEditDialog::on_customEditorBtn_clicked()
{ {
if (m_inst->versionIsCustom()) if (m_inst->versionIsCustom())
{ {
MMC->openJsonEditor(m_inst->instanceRoot() + "/custom.json"); if (!MMC->openJsonEditor(m_inst->instanceRoot() + "/custom.json"))
{
QMessageBox::warning(this, tr("Error"), tr("Unable to open custom.json, check the settings"));
}
} }
} }

View File

@ -142,12 +142,21 @@ void SettingsDialog::on_jsonEditorBrowseBtn_clicked()
: ui->jsonEditorTextBox->text()); : ui->jsonEditorTextBox->text());
QString cooked_file = NormalizePath(raw_file); QString cooked_file = NormalizePath(raw_file);
if (cooked_file.isEmpty())
{
return;
}
// it has to exist and be an executable // it has to exist and be an executable
if (!cooked_file.isEmpty() && QFileInfo(cooked_file).exists() && if (QFileInfo(cooked_file).exists() &&
QFileInfo(cooked_file).isExecutable()) QFileInfo(cooked_file).isExecutable())
{ {
ui->jsonEditorTextBox->setText(cooked_file); ui->jsonEditorTextBox->setText(cooked_file);
} }
else
{
QMessageBox::warning(this, tr("Invalid"), tr("The file choosen does not seem to be an executable"));
}
} }
void SettingsDialog::on_maximizedCheckBox_clicked(bool checked) void SettingsDialog::on_maximizedCheckBox_clicked(bool checked)