Settings dialog refactor.
This commit is contained in:
parent
795092d513
commit
3645e07c0d
@ -1,4 +1,4 @@
|
|||||||
OV.FeatureSet =
|
OV.FeatureSet =
|
||||||
{
|
{
|
||||||
SetDefaultColor : false
|
SettingsAvailable : false
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,5 +1,16 @@
|
|||||||
OV.ShowSettingsDialog = function (importSettings, onOk)
|
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 = {
|
let dialogSettings = {
|
||||||
defaultColor : importSettings.defaultColor
|
defaultColor : importSettings.defaultColor
|
||||||
};
|
};
|
||||||
@ -21,12 +32,7 @@ OV.ShowSettingsDialog = function (importSettings, onOk)
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
let colorRow = $('<div>').addClass ('ov_dialog_table_row').appendTo (contentDiv);
|
let colorInput = AddColorRow (contentDiv, dialogSettings.defaultColor, 'Default Color', '(For surfaces with no material)');
|
||||||
$('<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));
|
|
||||||
colorInput.change (function () {
|
colorInput.change (function () {
|
||||||
let colorStr = colorInput.val ().substr (1);
|
let colorStr = colorInput.val ().substr (1);
|
||||||
dialogSettings.defaultColor = OV.HexStringToColor (colorStr);
|
dialogSettings.defaultColor = OV.HexStringToColor (colorStr);
|
||||||
|
|||||||
@ -63,13 +63,13 @@ OV.ShowSharingDialog = function (importer, importSettings, camera)
|
|||||||
let section = $('<div>').addClass ('ov_dialog_section').appendTo (parentDiv);
|
let section = $('<div>').addClass ('ov_dialog_section').appendTo (parentDiv);
|
||||||
$('<div>').html ('Sharing Link').addClass ('ov_dialog_inner_title').appendTo (section);
|
$('<div>').html ('Sharing Link').addClass ('ov_dialog_inner_title').appendTo (section);
|
||||||
let optionsSection = null;
|
let optionsSection = null;
|
||||||
if (OV.FeatureSet.SetDefaultColor) {
|
if (OV.FeatureSet.SettingsAvailable) {
|
||||||
optionsSection = $('<div>').addClass ('ov_dialog_section').appendTo (section);
|
optionsSection = $('<div>').addClass ('ov_dialog_section').appendTo (section);
|
||||||
}
|
}
|
||||||
let sharingLinkInput = AddCopyableTextInput (section, function () {
|
let sharingLinkInput = AddCopyableTextInput (section, function () {
|
||||||
return GetSharingLink (sharingLinkParams);
|
return GetSharingLink (sharingLinkParams);
|
||||||
});
|
});
|
||||||
if (OV.FeatureSet.SetDefaultColor) {
|
if (OV.FeatureSet.SettingsAvailable) {
|
||||||
AddCheckboxLine (optionsSection, 'Use overridden default color', 'share_color', function (checked) {
|
AddCheckboxLine (optionsSection, 'Use overridden default color', 'share_color', function (checked) {
|
||||||
sharingLinkParams.color = checked ? importSettings.defaultColor : null;
|
sharingLinkParams.color = checked ? importSettings.defaultColor : null;
|
||||||
sharingLinkInput.val (GetSharingLink (sharingLinkParams));
|
sharingLinkInput.val (GetSharingLink (sharingLinkParams));
|
||||||
@ -91,7 +91,7 @@ OV.ShowSharingDialog = function (importer, importSettings, camera)
|
|||||||
embeddingCodeParams.camera = checked ? camera : null;
|
embeddingCodeParams.camera = checked ? camera : null;
|
||||||
embeddingCodeInput.val (GetEmbeddingCode (embeddingCodeParams));
|
embeddingCodeInput.val (GetEmbeddingCode (embeddingCodeParams));
|
||||||
});
|
});
|
||||||
if (OV.FeatureSet.SetDefaultColor) {
|
if (OV.FeatureSet.SettingsAvailable) {
|
||||||
AddCheckboxLine (optionsSection, 'Use overridden default color', 'embed_color', function (checked) {
|
AddCheckboxLine (optionsSection, 'Use overridden default color', 'embed_color', function (checked) {
|
||||||
embeddingCodeParams.color = checked ? importSettings.defaultColor : null;
|
embeddingCodeParams.color = checked ? importSettings.defaultColor : null;
|
||||||
embeddingCodeInput.val (GetEmbeddingCode (embeddingCodeParams));
|
embeddingCodeInput.val (GetEmbeddingCode (embeddingCodeParams));
|
||||||
|
|||||||
@ -21,7 +21,6 @@ OV.Website = class
|
|||||||
|
|
||||||
Load ()
|
Load ()
|
||||||
{
|
{
|
||||||
|
|
||||||
let canvas = $('<canvas>').appendTo (this.parameters.viewerDiv);
|
let canvas = $('<canvas>').appendTo (this.parameters.viewerDiv);
|
||||||
this.viewer.Init (canvas.get (0));
|
this.viewer.Init (canvas.get (0));
|
||||||
this.ShowViewer (false);
|
this.ShowViewer (false);
|
||||||
@ -316,15 +315,12 @@ OV.Website = class
|
|||||||
AddButton (this.toolbar, 'share', 'Share model', true, function () {
|
AddButton (this.toolbar, 'share', 'Share model', true, function () {
|
||||||
obj.dialog = OV.ShowSharingDialog (importer, obj.importSettings, obj.viewer.GetCamera ());
|
obj.dialog = OV.ShowSharingDialog (importer, obj.importSettings, obj.viewer.GetCamera ());
|
||||||
});
|
});
|
||||||
if (OV.FeatureSet.SetDefaultColor) {
|
if (OV.FeatureSet.SettingsAvailable) {
|
||||||
AddSeparator (this.toolbar, true);
|
AddSeparator (this.toolbar, true);
|
||||||
AddButton (this.toolbar, 'settings', 'Settings', true, function () {
|
AddButton (this.toolbar, 'settings', 'Settings', true, function () {
|
||||||
obj.dialog = OV.ShowSettingsDialog (obj.importSettings, function (dialogSettings) {
|
obj.dialog = OV.ShowSettingsDialog (obj.importSettings, function (dialogSettings) {
|
||||||
let reload = false;
|
let reload = !OV.ColorIsEqual (obj.importSettings.defaultColor, dialogSettings.defaultColor);
|
||||||
if (!OV.ColorIsEqual (obj.importSettings.defaultColor, dialogSettings.defaultColor)) {
|
obj.importSettings.defaultColor = dialogSettings.defaultColor;
|
||||||
obj.importSettings.defaultColor = dialogSettings.defaultColor;
|
|
||||||
reload = true;
|
|
||||||
}
|
|
||||||
if (reload) {
|
if (reload) {
|
||||||
obj.ReloadFiles ();
|
obj.ReloadFiles ();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user