#include "settingsdialog.h" #include "ui_settingsdialog.h" #include #include #include SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::SettingsDialog) { ui->setupUi(this); settings = new QSettings("Deuchnord", "Hermes"); savePlace = settings->value("placeSave").toString(); ui->currentPlaceSave->setText(savePlace); } void SettingsDialog::on_btnChangeSavePlace_clicked() { QString savePlace = QFileDialog::getExistingDirectory(this, tr("Choisir un dossier de sauvegarde"), settings->value("placeSave").toString()); bool ok = true; bool replaceFile = false; QDir dir(savePlace+"/deuchnord-hermes"); if(dir.exists()) { int whatToDo = QMessageBox::question(this, tr("Confirmation"), tr("Des fichiers appartenant à Hermès semblent être déjà présents. Que voulez-vous faire ?
Cliquez sur Appliquer pour utiliser les fichiers présents à cet emplacement.
Cliquez sur Réinitialiser pour écraser les fichiers présents à cet emplacement.
Cliquez sur Annuler pour ne pas changer l'emplacement.", "The texts in italic should correspond to the texts on the buttons."), QMessageBox::Apply | QMessageBox::Reset | QMessageBox::Cancel, QMessageBox::Cancel); switch(whatToDo) { case QMessageBox::Reset: replaceFile = true; break; case QMessageBox::Cancel: ok = false; break; } } else replaceFile = true; if(ok) { ui->currentPlaceSave->setText(savePlace); this->savePlace = savePlace; this->replaceFile = replaceFile; } } void SettingsDialog::on_buttonBox_accepted() { bool restartNeeded = false, restartWillSave = true; // Emplacement de la sauvegarde if(savePlace != settings->value("placeSave").toString()) { if(!replaceFile) { restartNeeded = true; restartWillSave = false; emit dontSaveOnQuit(); } else { QDir dir(savePlace+"/deuchnord-hermes"); dir.mkdir(savePlace+"/deuchnord-hermes"); QFile::copy(settings->value("placeSave").toString()+"/deuchnord-hermes/manufacturers.xml", savePlace+"/deuchnord-hermes/manufacturers.xml"); } settings->setValue("placeSave", savePlace); } // Affichage d'un message s'il faut redémarrer Hermès if(restartNeeded) { QString message = tr("Certains changements dans votre configuration nécessitent de relancer Hermès."); if(!restartWillSave) message += tr("\nAttention, les changements effectués ne seront pas enregistrés !"); QMessageBox::warning(this, tr("Mise à jour de la configuration"), message); } } SettingsDialog::~SettingsDialog() { delete ui; }