Settings dialog refactor.

This commit is contained in:
kovacsv 2021-06-24 18:13:49 +02:00
parent 795092d513
commit 3645e07c0d
4 changed files with 19 additions and 17 deletions

View File

@ -1,4 +1,4 @@
OV.FeatureSet =
{
SetDefaultColor : false
SettingsAvailable : false
};

View File

@ -1,5 +1,16 @@
OV.ShowSettingsDialog = function (importSettings, onOk)
{
function AddColorRow (contentDiv, defaultColor, paramName, paramDesc)
{
let colorRow = $('<div>').addClass ('ov_dialog_table_row').appendTo (contentDiv);
$('<div>').html (paramName).addClass ('ov_dialog_table_row_name').appendTo (colorRow);
let valueColumn = $('<div>').addClass ('ov_dialog_table_row_value').appendTo (colorRow);
let colorInput = $('<input>').attr ('type', 'color').addClass ('ov_dialog_color').appendTo (valueColumn);
$('<span>').addClass ('ov_dialog_table_row_comment').html (paramDesc).appendTo (valueColumn);
colorInput.val ('#' + OV.ColorToHexString (defaultColor));
return colorInput;
}
let dialogSettings = {
defaultColor : importSettings.defaultColor
};
@ -21,12 +32,7 @@ OV.ShowSettingsDialog = function (importSettings, onOk)
}
]);
let colorRow = $('<div>').addClass ('ov_dialog_table_row').appendTo (contentDiv);
$('<div>').html ('Default Color').addClass ('ov_dialog_table_row_name').appendTo (colorRow);
let valueColumn = $('<div>').addClass ('ov_dialog_table_row_value').appendTo (colorRow);
let colorInput = $('<input>').attr ('type', 'color').addClass ('ov_dialog_color').appendTo (valueColumn);
$('<span>').addClass ('ov_dialog_table_row_comment').html ('(For surfaces with no material)').appendTo (valueColumn);
colorInput.val ('#' + OV.ColorToHexString (dialogSettings.defaultColor));
let colorInput = AddColorRow (contentDiv, dialogSettings.defaultColor, 'Default Color', '(For surfaces with no material)');
colorInput.change (function () {
let colorStr = colorInput.val ().substr (1);
dialogSettings.defaultColor = OV.HexStringToColor (colorStr);

View File

@ -63,13 +63,13 @@ OV.ShowSharingDialog = function (importer, importSettings, camera)
let section = $('<div>').addClass ('ov_dialog_section').appendTo (parentDiv);
$('<div>').html ('Sharing Link').addClass ('ov_dialog_inner_title').appendTo (section);
let optionsSection = null;
if (OV.FeatureSet.SetDefaultColor) {
if (OV.FeatureSet.SettingsAvailable) {
optionsSection = $('<div>').addClass ('ov_dialog_section').appendTo (section);
}
let sharingLinkInput = AddCopyableTextInput (section, function () {
return GetSharingLink (sharingLinkParams);
});
if (OV.FeatureSet.SetDefaultColor) {
if (OV.FeatureSet.SettingsAvailable) {
AddCheckboxLine (optionsSection, 'Use overridden default color', 'share_color', function (checked) {
sharingLinkParams.color = checked ? importSettings.defaultColor : null;
sharingLinkInput.val (GetSharingLink (sharingLinkParams));
@ -91,7 +91,7 @@ OV.ShowSharingDialog = function (importer, importSettings, camera)
embeddingCodeParams.camera = checked ? camera : null;
embeddingCodeInput.val (GetEmbeddingCode (embeddingCodeParams));
});
if (OV.FeatureSet.SetDefaultColor) {
if (OV.FeatureSet.SettingsAvailable) {
AddCheckboxLine (optionsSection, 'Use overridden default color', 'embed_color', function (checked) {
embeddingCodeParams.color = checked ? importSettings.defaultColor : null;
embeddingCodeInput.val (GetEmbeddingCode (embeddingCodeParams));

View File

@ -21,7 +21,6 @@ OV.Website = class
Load ()
{
let canvas = $('<canvas>').appendTo (this.parameters.viewerDiv);
this.viewer.Init (canvas.get (0));
this.ShowViewer (false);
@ -316,15 +315,12 @@ OV.Website = class
AddButton (this.toolbar, 'share', 'Share model', true, function () {
obj.dialog = OV.ShowSharingDialog (importer, obj.importSettings, obj.viewer.GetCamera ());
});
if (OV.FeatureSet.SetDefaultColor) {
if (OV.FeatureSet.SettingsAvailable) {
AddSeparator (this.toolbar, true);
AddButton (this.toolbar, 'settings', 'Settings', true, function () {
obj.dialog = OV.ShowSettingsDialog (obj.importSettings, function (dialogSettings) {
let reload = false;
if (!OV.ColorIsEqual (obj.importSettings.defaultColor, dialogSettings.defaultColor)) {
obj.importSettings.defaultColor = dialogSettings.defaultColor;
reload = true;
}
let reload = !OV.ColorIsEqual (obj.importSettings.defaultColor, dialogSettings.defaultColor);
obj.importSettings.defaultColor = dialogSettings.defaultColor;
if (reload) {
obj.ReloadFiles ();
}