Material: Material Preferences

Updates the material preferences including selecting a default material

Preferences adds some options for what gets displayed in the Materials editor.
The option to use the legacy editor is removed in favour of the new
editor.

A new preference page has been added that allows the user to select a
default material. This will then be assigned to any newly created object. In
support of this, a new widget PrefsMaterialTreeWidget has been added as an
extension of the MaterialTreeWidget to automatically save and restore the
selected material.
This commit is contained in:
David Carter
2024-05-12 16:07:30 -04:00
committed by Chris Hennes
parent 6c4f76a8a5
commit 4dcd810ac5
21 changed files with 586 additions and 57 deletions

View File

@@ -709,3 +709,34 @@ void MaterialTreeWidget::saveMaterialTreeChildren(const Base::Reference<Paramete
}
}
}
// --------------------------------------------------------------------
PrefMaterialTreeWidget::PrefMaterialTreeWidget(QWidget* parent)
: MaterialTreeWidget(parent)
, PrefWidget()
{}
PrefMaterialTreeWidget::~PrefMaterialTreeWidget() = default;
void PrefMaterialTreeWidget::restorePreferences()
{
if (getWindowParameter().isNull()) {
failedToRestore(objectName());
return;
}
const char* defaultUuid = "7f9fd73b-50c9-41d8-b7b2-575a030c1eeb";
QString uuid = QString::fromStdString(getWindowParameter()->GetASCII(entryName(), defaultUuid));
setMaterial(uuid);
}
void PrefMaterialTreeWidget::savePreferences()
{
if (getWindowParameter().isNull()) {
failedToSave(objectName());
return;
}
getWindowParameter()->SetASCII(entryName(), getMaterialUUID().toStdString());
}