Settings dialog refactor.
This commit is contained in:
parent
795092d513
commit
3645e07c0d
@ -1,4 +1,4 @@
|
||||
OV.FeatureSet =
|
||||
{
|
||||
SetDefaultColor : false
|
||||
SettingsAvailable : false
|
||||
};
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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));
|
||||
|
||||
@ -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 ();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user