@@ -25,6 +25,7 @@ export interface AdvancedCanvasPluginSettings {
2525 disablePan : boolean
2626
2727 collapsibleGroupsFeatureEnabled : boolean
28+ collapsedGroupPreviewOnDrag : boolean
2829
2930 stickersFeatureEnabled : boolean
3031
@@ -61,6 +62,7 @@ export const DEFAULT_SETTINGS: Partial<AdvancedCanvasPluginSettings> = {
6162 disablePan : false ,
6263
6364 collapsibleGroupsFeatureEnabled : true ,
65+ collapsedGroupPreviewOnDrag : true ,
6466
6567 stickersFeatureEnabled : true ,
6668
@@ -78,7 +80,9 @@ export const DEFAULT_SETTINGS: Partial<AdvancedCanvasPluginSettings> = {
7880 showEdgesIntoDisabledPortals : true
7981}
8082
81- export default class AdvancedCanvasSettingsManager {
83+ export default class SettingsManager {
84+ static SETTINGS_CHANGED_EVENT = 'advanced-canvas:settings-changed'
85+
8286 private plugin : AdvancedCanvasPlugin
8387 private settings : AdvancedCanvasPluginSettings
8488 private settingsTab : AdvancedCanvasPluginSettingTab
@@ -89,6 +93,7 @@ export default class AdvancedCanvasSettingsManager {
8993
9094 async loadSettings ( ) {
9195 this . settings = Object . assign ( { } , DEFAULT_SETTINGS , await this . plugin . loadData ( ) )
96+ this . plugin . app . workspace . trigger ( SettingsManager . SETTINGS_CHANGED_EVENT )
9297 }
9398
9499 async saveSettings ( ) {
@@ -102,6 +107,7 @@ export default class AdvancedCanvasSettingsManager {
102107 async setSetting ( data : Partial < AdvancedCanvasPluginSettings > ) {
103108 this . settings = Object . assign ( this . settings , data )
104109 await this . saveSettings ( )
110+ this . plugin . app . workspace . trigger ( SettingsManager . SETTINGS_CHANGED_EVENT )
105111 }
106112
107113 addSettingsTab ( ) {
@@ -111,9 +117,9 @@ export default class AdvancedCanvasSettingsManager {
111117}
112118
113119export class AdvancedCanvasPluginSettingTab extends PluginSettingTab {
114- settingsManager : AdvancedCanvasSettingsManager
120+ settingsManager : SettingsManager
115121
116- constructor ( plugin : AdvancedCanvasPlugin , settingsManager : AdvancedCanvasSettingsManager ) {
122+ constructor ( plugin : AdvancedCanvasPlugin , settingsManager : SettingsManager ) {
117123 super ( plugin . app , plugin )
118124 this . settingsManager = settingsManager
119125 }
@@ -248,6 +254,15 @@ export class AdvancedCanvasPluginSettingTab extends PluginSettingTab {
248254 'collapsibleGroupsFeatureEnabled'
249255 )
250256
257+ new Setting ( containerEl )
258+ . setName ( "Collapsed group preview on drag" )
259+ . setDesc ( "When enabled, a group that is collapsed show its border while dragging a node." )
260+ . addToggle ( ( toggle ) =>
261+ toggle
262+ . setValue ( this . settingsManager . getSetting ( 'collapsedGroupPreviewOnDrag' ) )
263+ . onChange ( async ( value ) => await this . settingsManager . setSetting ( { collapsedGroupPreviewOnDrag : value } ) )
264+ )
265+
251266 this . createFeatureHeading (
252267 containerEl ,
253268 "Stickers" ,
0 commit comments