| 4608 | return { deleted }; |
| 4609 | } catch (error) { |
| 4610 | console.error('Error removing models by file type ids:', error); |
| 4611 | throw error; |
| 4612 | } |
| 4613 | }); |
| 4614 | |
| 4615 | const getSettingHandler = async (event, key) => { |
| 4616 | try { |
| 4617 | console.log('Main Process - Getting setting:', key); |
| 4618 | const result = db.prepare('SELECT value FROM settings WHERE key = ?').get(key); |
| 4619 | console.log('Main Process - Setting value:', result?.value); |
| 4620 | return result?.value || null; |
| 4621 | } catch (error) { |
| 4622 | console.error('Error getting setting:', error); |
| 4623 | return null; |
| 4624 | } |
| 4625 | }; |
| 4626 | ipcMain.handle('get-setting', getSettingHandler); |
| 4627 | ipcHandlerRegistry.set('get-setting', getSettingHandler); |
| 4628 | |
| 4629 | // Add handler to get app version directly (fallback for server mode) |
| 4630 | ipcMain.handle('get-app-version', async () => { |
| 4631 | try { |
| 4632 | return version; |
| 4633 | } catch (error) { |
| 4634 | console.error('Error getting app version:', error); |
| 4635 | return null; |
| 4636 | } |
| 4637 | }); |
| 4638 | |
| 4639 | // Add error handling to the saveSetting handler |
| 4640 | const saveSettingHandler = async (event, key, value) => { |
| 4641 | try { |
| 4642 | console.log('Main Process - Saving setting:', key, value); |
| 4643 | |
| 4644 | // Ensure database is initialized |
| 4645 | if (!db) { |
| 4646 | console.error('Database not initialized when saving setting'); |
| 4647 | return false; |
| 4648 | } |
| 4649 | |
| 4650 | // If this is the CollectUsage setting being changed, track the change |
| 4651 | if (key === 'CollectUsage') { |
| 4652 | const oldValue = db.prepare('SELECT value FROM settings WHERE key = ?').get(key)?.value; |
| 4653 | console.log('CollectUsage - Old value:', oldValue, 'New value:', value); |
| 4654 | |
| 4655 | // If turning on analytics and it was previously off, track this event |
| 4656 | if (value === '1' && oldValue !== '1') { |
| 4657 | // Track that the user enabled analytics |
| 4658 | const clientId = getClientId(); |
| 4659 | await analytics.event(clientId, 'Settings', 'EnableAnalytics', { |
| 4660 | evLabel: `Version ${version}`, |
| 4661 | evValue: 1, |
| 4662 | os_platform: process.platform |
| 4663 | }); |
| 4664 | } |
| 4665 | } |
| 4666 | |
| 4667 | // Execute the database update |