From 8a3d50520f7500690faf3df22956cde50985d971 Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Sun, 9 Sep 2018 12:39:19 +0300 Subject: [PATCH] Added status check for settings read/write operations. --HG-- branch : release --- src/app/tape/tmainwindow.cpp | 28 +++++++++++++++----- src/app/valentina/mainwindow.cpp | 44 +++++++++++++++++++++----------- 2 files changed, 50 insertions(+), 22 deletions(-) diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index 3bb2eb290..665f0f639 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -2797,15 +2797,23 @@ void TMainWindow::MeasurementGUI() void TMainWindow::ReadSettings() { const VTapeSettings *settings = qApp->TapeSettings(); - restoreGeometry(settings->GetGeometry()); - restoreState(settings->GetWindowState()); - restoreState(settings->GetToolbarsState(), APP_VERSION); - // Text under tool buton icon - ToolBarStyles(); + if (settings->status() == QSettings::NoError) + { + restoreGeometry(settings->GetGeometry()); + restoreState(settings->GetWindowState()); + restoreState(settings->GetToolbarsState(), APP_VERSION); - // Stack limit - //qApp->getUndoStack()->setUndoLimit(settings->GetUndoCount()); + // Text under tool buton icon + ToolBarStyles(); + + // Stack limit + //qApp->getUndoStack()->setUndoLimit(settings->GetUndoCount()); + } + else + { + qWarning() << tr("Cannot read settings from a malformed INI file."); + } } //--------------------------------------------------------------------------------------------------------------------- @@ -2815,6 +2823,12 @@ void TMainWindow::WriteSettings() settings->SetGeometry(saveGeometry()); settings->SetWindowState(saveState()); settings->SetToolbarsState(saveState(APP_VERSION)); + + settings->sync(); + if (settings->status() == QSettings::AccessError) + { + qWarning() << tr("Cannot save settings. Access denied."); + } } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 74a953758..ffc8cba54 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -3700,21 +3700,29 @@ void MainWindow::ReadSettings() { qCDebug(vMainWindow, "Reading settings."); const VSettings *settings = qApp->ValentinaSettings(); - restoreGeometry(settings->GetGeometry()); - restoreState(settings->GetWindowState()); - restoreState(settings->GetToolbarsState(), APP_VERSION); - // Scene antialiasing - ui->view->SetAntialiasing(settings->GetGraphicalOutput()); + if (settings->status() == QSettings::NoError) + { + restoreGeometry(settings->GetGeometry()); + restoreState(settings->GetWindowState()); + restoreState(settings->GetToolbarsState(), APP_VERSION); - // Stack limit - qApp->getUndoStack()->setUndoLimit(settings->GetUndoCount()); + // Scene antialiasing + ui->view->SetAntialiasing(settings->GetGraphicalOutput()); - // Text under tool buton icon - ToolBarStyles(); + // Stack limit + qApp->getUndoStack()->setUndoLimit(settings->GetUndoCount()); - isDockToolOptionsVisible = ui->dockWidgetToolOptions->isVisible(); - isDockGroupsVisible = ui->dockWidgetGroups->isVisible(); + // Text under tool buton icon + ToolBarStyles(); + + isDockToolOptionsVisible = ui->dockWidgetToolOptions->isVisible(); + isDockGroupsVisible = ui->dockWidgetGroups->isVisible(); + } + else + { + qWarning() << tr("Cannot read settings from a malformed INI file."); + } } //--------------------------------------------------------------------------------------------------------------------- @@ -3725,10 +3733,16 @@ void MainWindow::WriteSettings() { ActionDraw(true); - VSettings *setings = qApp->ValentinaSettings(); - setings->SetGeometry(saveGeometry()); - setings->SetWindowState(saveState()); - setings->SetToolbarsState(saveState(APP_VERSION)); + VSettings *settings = qApp->ValentinaSettings(); + settings->SetGeometry(saveGeometry()); + settings->SetWindowState(saveState()); + settings->SetToolbarsState(saveState(APP_VERSION)); + + settings->sync(); + if (settings->status() == QSettings::AccessError) + { + qWarning() << tr("Cannot save settings. Access denied."); + } } //---------------------------------------------------------------------------------------------------------------------