mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-05 08:06:56 +07:00
To facilitate re-using the sync scope selector part of the sync settings UI in the modal, it was extracted to the `SettingsSyncPanelFactory` helper (like the category UI) and exposed as a combined factory method named `createCombinedSyncSettingsPanel`. The combined panel also took the responsibility for applying the changed settings as not to duplicate logic. Configuration change event production was left in the settings configurable, as it's apparently only needed for the non-dialog use-case (otherwise it can cause a race between cross-IDE sync state on client and server). Use of cross-IDE sync state (that is, `SettingsSyncLocalSettings`) was refactored to follow the same pattern as `SettingsSyncSettings`, with persistent setting and an UI model, both implementing a shared interface. To actually apply the selected sync scope on enabling sync the `SettingsSyncBridge#applyInitialChanges` method now creates/removes the cross-IDE sync server-side marker file before any sync data are sent or applied. Signed-off-by: Sergey Pak <sergey.pak@jetbrains.com> GitOrigin-RevId: 370e0aafd0861280da72819bbd04b191adfbe3d2