MCPcopy Create free account
hub / github.com/TechJeeper/Printventory / initPreviewScene

Function initPreviewScene

preview.js:178–269  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

176 closePreview();
177 }
178 });
179
180 // Listen for 3MF preview status updates
181 window.electron.on3MFPreviewStatus((requestId, message) => {
182 if (requestId !== preview3mfRequestId) return;
183 const loading = document.getElementById('preview-loading');
184 if (loading && loading.querySelector('p')) {
185 loading.querySelector('p').textContent = message;
186 }
187 });
188 }
189
190 // Open preview modal
191 async function openPreview(filePath) {
192 console.log('[Preview] openPreview called with:', filePath);
193 if (preview3mfRequestId) {
194 window.electron.cancel3MFPreview?.(preview3mfRequestId);
195 preview3mfRequestId = null;
196 }
197 currentFilePath = filePath;
198 currentBundleGroupRecord = null;
199 hidePreviewSlicerMenu();
200 const loadToken = ++previewLoadToken;
201 const dialog = document.getElementById('preview-dialog');
202
203 if (!dialog) {
204 console.error('[Preview] preview-dialog element not found!');
205 return;
206 }
207 const modelName = document.getElementById('preview-model-name');
208 const loading = document.getElementById('preview-loading');
209 const fileType = document.getElementById('preview-file-type');
210 const dimensions = document.getElementById('preview-dimensions');
211
212 // Set model name
213 const fileName = filePath.split(/[/\\]/).pop();
214 modelName.textContent = fileName;
215
216 // Show loading (reset any prior error UI)
217 resetPreviewLoadingUI();
218 fileType.textContent = '';
219 dimensions.textContent = '';
220 updatePreviewSlicerButton();
221
222 // Open dialog
223 dialog.showModal();
224
225 // Wait a bit for dialog to fully render before initializing Three.js
226 await new Promise(resolve => setTimeout(resolve, 100));
227
228 // Initialize Three.js scene
229 initPreviewScene();
230
231 // Load the model
232 try {
233 console.log('Starting model load...');
234 await loadPreviewModel(filePath, loadToken);
235 if (loadToken !== previewLoadToken) return;

Callers 1

openPreviewFunction · 0.85

Calls 2

cleanupPreviewSceneFunction · 0.85
animatePreviewFunction · 0.85

Tested by

no test coverage detected