#4196 Apply background color, well label color and z-scale automatically from preferences

* Ask to change existing views if their values are different from the previous Preferences default
This commit is contained in:
Gaute Lindkvist
2019-04-02 13:28:31 +02:00
parent 69b01bcca7
commit 7d78956781
10 changed files with 195 additions and 36 deletions

View File

@@ -47,12 +47,15 @@ void RicEditPreferencesFeature::onActionTriggered(bool isChecked)
RiaApplication* app = RiaApplication::instance();
QStringList tabNames = app->preferences()->tabNames();
std::unique_ptr<RiaPreferences> oldPreferences = clonePreferences(app->preferences());
RiuPropertyViewTabWidget propertyDialog(nullptr, app->preferences(), "Preferences", tabNames);
if (propertyDialog.exec() == QDialog::Accepted)
{
// Write preferences using QSettings and apply them to the application
caf::PdmSettings::writeFieldsToApplicationStore(app->preferences());
app->applyPreferences();
app->applyPreferences(oldPreferences.get());
}
else
{
@@ -68,3 +71,14 @@ void RicEditPreferencesFeature::setupActionLook(QAction* actionToSetup)
{
actionToSetup->setText("&Preferences...");
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
std::unique_ptr<RiaPreferences> RicEditPreferencesFeature::clonePreferences(const RiaPreferences* preferences)
{
caf::PdmObjectHandle* pdmClone =
preferences->xmlCapability()->copyByXmlSerialization(caf::PdmDefaultObjectFactory::instance());
return std::unique_ptr<RiaPreferences>(dynamic_cast<RiaPreferences*>(pdmClone));
}

View File

@@ -19,7 +19,9 @@
#pragma once
#include "cafCmdFeature.h"
#include <memory>
class RiaPreferences;
//==================================================================================================
///
@@ -27,12 +29,14 @@
class RicEditPreferencesFeature : public caf::CmdFeature
{
CAF_CMD_HEADER_INIT;
protected:
// Overrides
bool isCommandEnabled() override;
void onActionTriggered( bool isChecked ) override;
void setupActionLook( QAction* actionToSetup ) override;
static std::unique_ptr<RiaPreferences> clonePreferences(const RiaPreferences* preferences);
};