Files
openide/plugins/settings-sync
Tomek jaen Mańko 977472cc96 IJPL-13201 Allow to choose cross-IDE sync mode when enabling sync
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
2024-07-29 20:13:34 +00:00
..
2024-07-25 19:20:06 +00:00