Since the even handler runs in a different thread from the progress modal, `ModalityKt.defaultModalityImpl()`
won't be able to get it from `ProgressManager.getInstanceOrNull()?.currentProgressModality`, causing the
modality state to fall back to non-modal, delaying the label update until after the settings dialog is closed.
It's fixed by just storing the settings dialog modality state before showing the progress modal and passing
it to `runInEdt` explicitly.
Signed-off-by: Sergey Pak <sergey.pak@jetbrains.com>
GitOrigin-RevId: ae45788cc3f16bb92e2bad666ba16b733762a216
There are two parts to the fix:
* explicitly flushing settings to disk before the initial sync — while the sync subsystem
correctly filters out files not matching the selected sync categories, it only seems to
take into account files that are actually persisted on disk when uploading them. When
setting up sync, the settings object initially remains in-memory (at least until the
time IDE decides to flush it on it's own), so initial upload might be missing the
settings state, giving appearance of all the categories being synced, instead of just
the selected ones,
* correctly categorise plugin settings — `SettingsSyncFiltering.getSubCategory` was written
to only classify font settings properly, so you could not disable a specific plugin from
syncing. This is now fixed by using plugin ID for category while filtering. It might make
sense to unify this code with `SyncPluginGroup` one way or another, but it was simpler to
just duplicate the behaviour for this fix.
Signed-off-by: Sergey Pak <sergey.pak@jetbrains.com>
GitOrigin-RevId: 88ab02f1198479eaad8966b7890748b87e53f5e0
+ tests (junit4) were flaky due to interactions with other tests. Junit5 test-infra has better isolation => migrate tests to junit5 to alleviate flakiness
GitOrigin-RevId: 71f00eef99e94234561dfbcc248974c89d3d2955
This allows differentiating between sorting types and other kinds of options, such as linear IntelliSort, which also modifies the graph.
GitOrigin-RevId: d41714231e8ed5082c080444073918fb43a3c8f3
AbstractVcsLogUi works with VcsLogGraphTable, so the table was created in SettingsHistoryLogUi but not used. This commit inherits SettingsHistoryLogUi from VcsLogUiBase, and makes SettingsHistoryTable and SettingsHistoryTableModel to implement VcsLogCommitList and VcsLogCommitList model respectively.
GitOrigin-RevId: a67fa3cd1ecfebd344eddad7e447a28e721fc552
AbstractDataGetter#loadCommitsDataSynchronously outputs commit details from the cache before the details loaded from git. This commit uses AbstractDataGetter#getCommitDetails function instead, which keeps the details order.
GitOrigin-RevId: 1e3f8efc83dde984dc9d2bdc56637d1cc84ce2c2
VcsLogUiUtil#installNavigationHistory uses VcsLogGraphTable for navigation. Since the table is not actually shown in the settings sync ui, and the method AbstractVcsLogUi#getNavigationHistory is deprecated and not called, navigation would not work anyway.
GitOrigin-RevId: 0f360cfda8fa83693d08d912210a8fd013d9c4b4