From 3645e07c0d8fd2512bb5036d5b1bfa29283bde57 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Thu, 24 Jun 2021 18:13:49 +0200 Subject: [PATCH 01/13] Settings dialog refactor. --- website/o3dv/featureset.js | 2 +- website/o3dv/settingsdialog.js | 18 ++++++++++++------ website/o3dv/sharingdialog.js | 6 +++--- website/o3dv/website.js | 10 +++------- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/website/o3dv/featureset.js b/website/o3dv/featureset.js index e06b5ce..ebb8ba8 100644 --- a/website/o3dv/featureset.js +++ b/website/o3dv/featureset.js @@ -1,4 +1,4 @@ OV.FeatureSet = { - SetDefaultColor : false + SettingsAvailable : false }; diff --git a/website/o3dv/settingsdialog.js b/website/o3dv/settingsdialog.js index 70d4c91..9af2775 100644 --- a/website/o3dv/settingsdialog.js +++ b/website/o3dv/settingsdialog.js @@ -1,5 +1,16 @@ OV.ShowSettingsDialog = function (importSettings, onOk) { + function AddColorRow (contentDiv, defaultColor, paramName, paramDesc) + { + let colorRow = $('
').addClass ('ov_dialog_table_row').appendTo (contentDiv); + $('
').html (paramName).addClass ('ov_dialog_table_row_name').appendTo (colorRow); + let valueColumn = $('
').addClass ('ov_dialog_table_row_value').appendTo (colorRow); + let colorInput = $('').attr ('type', 'color').addClass ('ov_dialog_color').appendTo (valueColumn); + $('').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 = $('
').addClass ('ov_dialog_table_row').appendTo (contentDiv); - $('
').html ('Default Color').addClass ('ov_dialog_table_row_name').appendTo (colorRow); - let valueColumn = $('
').addClass ('ov_dialog_table_row_value').appendTo (colorRow); - let colorInput = $('').attr ('type', 'color').addClass ('ov_dialog_color').appendTo (valueColumn); - $('').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); diff --git a/website/o3dv/sharingdialog.js b/website/o3dv/sharingdialog.js index ff1618f..7f0d01e 100644 --- a/website/o3dv/sharingdialog.js +++ b/website/o3dv/sharingdialog.js @@ -63,13 +63,13 @@ OV.ShowSharingDialog = function (importer, importSettings, camera) let section = $('
').addClass ('ov_dialog_section').appendTo (parentDiv); $('
').html ('Sharing Link').addClass ('ov_dialog_inner_title').appendTo (section); let optionsSection = null; - if (OV.FeatureSet.SetDefaultColor) { + if (OV.FeatureSet.SettingsAvailable) { optionsSection = $('
').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)); diff --git a/website/o3dv/website.js b/website/o3dv/website.js index 8f6f126..0ee88cf 100644 --- a/website/o3dv/website.js +++ b/website/o3dv/website.js @@ -21,7 +21,6 @@ OV.Website = class Load () { - let 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 (); } From 5a027f193f3bfa282cc3ad93301dac8c529ffd95 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Thu, 24 Jun 2021 18:20:33 +0200 Subject: [PATCH 02/13] Return the created viewer elements so later modifications are possible. --- source/viewer/domviewer.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/viewer/domviewer.js b/source/viewer/domviewer.js index 1b16603..326ad40 100644 --- a/source/viewer/domviewer.js +++ b/source/viewer/domviewer.js @@ -99,4 +99,6 @@ OV.Init3DViewerElements = function () viewerElement.viewer.Resize (width, height); } }); + + return viewerElements; }; From f4b8ca18c6dc055b204edd5d4b8ae988161277ed Mon Sep 17 00:00:00 2001 From: kovacsv Date: Thu, 24 Jun 2021 18:24:12 +0200 Subject: [PATCH 03/13] Callback instead of return value because of async loading. --- sandbox/embed_selfhost_multiple.html | 4 +++- source/viewer/domviewer.js | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sandbox/embed_selfhost_multiple.html b/sandbox/embed_selfhost_multiple.html index 2e7f2a9..3d15889 100644 --- a/sandbox/embed_selfhost_multiple.html +++ b/sandbox/embed_selfhost_multiple.html @@ -69,7 +69,9 @@