Skip to content

Commit 6e8e066

Browse files
authored
Merge pull request #4063 from erri120/task/4061
Hide disabled groups from file conflicts view
2 parents 99330da + d741202 commit 6e8e066

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

src/NexusMods.App.UI/Pages/Sorting/FileConflicts/FileConflictsViewModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ protected override void BeforeModelActivationHook(CompositeItemModel<EntityId> m
301301

302302
protected override IObservable<IChangeSet<CompositeItemModel<EntityId>, EntityId>> GetRootsObservable(bool viewHierarchical)
303303
{
304-
return ObservePriorityGroups(_connection, _loadoutId).TransformWithInlineUpdate(CreateItemModel, UpdateItemModel);
304+
return ObservePriorityGroups(_connection, _loadoutId).OnUI().TransformWithInlineUpdate(CreateItemModel, UpdateItemModel);
305305
}
306306

307307
private CompositeItemModel<EntityId> CreateItemModel((EntityId, long, EntityId, EntityId, long, long) tuple)

src/NexusMods.DataModel/Synchronizer/Synchronizer.sql

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,16 @@ CREATE SCHEMA IF NOT EXISTS synchronizer;
44
-- The sources of items in the loadout.
55
CREATE TYPE synchronizer.ItemType AS ENUM ('Loadout', 'Game', 'Deleted', 'Intrinsic');
66

7+
-- Gets all loadout item groups and their enabled state
8+
CREATE OR REPLACE MACRO synchronizer.LoadoutGroups (db) AS TABLE
9+
SELECT
10+
loadout_item_group.*,
11+
loadout_item_group.Disabled = FALSE
12+
AND COALESCE(collection_group.Disabled, FALSE) = FALSE AS IsEnabled
13+
FROM
14+
MDB_LOADOUTITEMGROUP (Db => db) loadout_item_group
15+
LEFT JOIN MDB_COLLECTIONGROUP (Db => db) collection_group ON loadout_item_group.Parent = collection_group.Id;
16+
717
-- All leaf loadout items with a target path
818
CREATE OR REPLACE MACRO synchronizer.LeafLoadoutItems (db) AS TABLE
919
SELECT
@@ -33,11 +43,11 @@ SELECT
3343
arg_max(loadout_item.TargetPath, coalesce(group_priority.Priority, 0)) AS TargetPath,
3444
arg_max(loadout_item.Hash, coalesce(group_priority.Priority, 0)) AS Hash,
3545
arg_max(loadout_item.Size, coalesce(group_priority.Priority, 0)) AS Size,
36-
arg_max(loadout_item.IsEnabled, coalesce(group_priority.Priority, 0)) AS IsEnabled,
3746
arg_max(loadout_item.IsDeleted, coalesce(group_priority.Priority, 0)) AS IsDeleted
3847
FROM
3948
synchronizer.LeafLoadoutItems (db) loadout_item
4049
LEFT JOIN MDB_LOADOUTITEMGROUPPRIORITY(DB => db) group_priority ON loadout_item.Parent = group_priority.Target
50+
WHERE loadout_item.IsEnabled
4151
GROUP BY loadout_item.Loadout, loadout_item.TargetPath.Item2, loadout_item.TargetPath.Item3;
4252

4353
-- All the files in the overrides group
@@ -75,7 +85,6 @@ WITH all_files AS
7585
(CASE WHEN loadout_item.IsDeleted THEN 'Deleted' ELSE 'Loadout' END)::synchronizer.ItemType ItemType,
7686
1 Layer
7787
FROM synchronizer.WinningLeafLoadoutItem(db) loadout_item
78-
WHERE loadout_item.IsEnabled
7988
UNION
8089
-- Override files on Layer 2
8190
SELECT
@@ -132,7 +141,7 @@ FROM
132141
synchronizer.LeafLoadoutItems (db) loadout_item
133142
LEFT JOIN MDB_LOADOUTITEMGROUPPRIORITY (Db => db) priority ON priority.Target = loadout_item.Parent
134143
WHERE
135-
priority.Id IS NOT NULL
144+
priority.Id IS NOT NULL AND loadout_item.IsEnabled
136145
GROUP BY loadout_item.Loadout, loadout_item.TargetPath.Item2, loadout_item.TargetPath.Item3
137146
HAVING count(DISTINCT loadout_item.Hash) > 1;
138147

@@ -152,11 +161,13 @@ WITH
152161
)
153162
SELECT
154163
priority.*,
155-
row_number() OVER (PARTITION BY Loadout ORDER BY Priority) AS Index,
156-
lead(priority.Id, -1, 0) OVER (PARTITION BY Loadout ORDER BY Priority) As Prev,
157-
lead(priority.Id, 1, 0) OVER (PARTITION BY Loadout ORDER BY Priority) As Next,
164+
row_number() OVER (PARTITION BY priority.Loadout ORDER BY priority.Priority) AS Index,
165+
lead(priority.Id, -1, 0) OVER (PARTITION BY priority.Loadout ORDER BY priority.Priority) As Prev,
166+
lead(priority.Id, 1, 0) OVER (PARTITION BY priority.Loadout ORDER BY priority.Priority) As Next,
158167
coalesce(winnersAndLoser.WinningFiles, []) AS WinningFiles,
159168
coalesce(winnersAndLoser.LosingFiles, []) AS LosingFiles
160169
FROM
161170
MDB_LOADOUTITEMGROUPPRIORITY (Db => db) priority
162-
LEFT JOIN winnersAndLosers winnersAndLoser ON winnersAndLoser.Id = priority.Id;
171+
LEFT JOIN winnersAndLosers winnersAndLoser ON winnersAndLoser.Id = priority.Id
172+
LEFT JOIN synchronizer.LoadoutGroups (db) loadout_item_group ON priority.Target = loadout_item_group.Id
173+
WHERE loadout_item_group.IsEnabled;

0 commit comments

Comments
 (0)