Skip to content

Commit d76599a

Browse files
authored
Code Quality: Improved the way of instancing OpacityIconModel (#14603)
1 parent 2465c97 commit d76599a

File tree

9 files changed

+44
-126
lines changed

9 files changed

+44
-126
lines changed

src/Files.App/Data/Models/ContextMenuFlyoutItemViewModelBuilder.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,7 @@ public ContextMenuFlyoutItemViewModel Build()
6969
var glyph = command.Glyph;
7070
if (!string.IsNullOrEmpty(glyph.OpacityStyle))
7171
{
72-
viewModel.OpacityIcon = new OpacityIconModel
73-
{
74-
OpacityIconStyle = glyph.OpacityStyle,
75-
};
72+
viewModel.OpacityIcon = new(glyph.OpacityStyle);
7673
}
7774
else
7875
{

src/Files.App/Data/Models/OpacityIconModel.cs

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,27 @@
55

66
namespace Files.App.Data.Models
77
{
8-
public struct OpacityIconModel
8+
/// <summary>
9+
/// Represents a model for <see cref="OpacityIcon"/>.
10+
/// </summary>
11+
public class OpacityIconModel
912
{
10-
public string OpacityIconStyle { get; set; }
13+
public string? OpacityIconStyle { get; set; }
1114

12-
public readonly OpacityIcon ToOpacityIcon()
15+
public bool IsValid
16+
=> !string.IsNullOrWhiteSpace(OpacityIconStyle);
17+
18+
public OpacityIconModel(string styleName)
19+
{
20+
OpacityIconStyle = styleName;
21+
}
22+
23+
public OpacityIcon ToOpacityIcon()
1324
{
1425
return new()
1526
{
1627
Style = (Style)Application.Current.Resources[OpacityIconStyle],
1728
};
1829
}
19-
20-
public readonly bool IsValid
21-
=> !string.IsNullOrEmpty(OpacityIconStyle);
2230
}
2331
}

src/Files.App/Helpers/MenuFlyout/ContextFlyoutItemHelper.cs

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -143,10 +143,7 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
143143
new ContextMenuFlyoutItemViewModel()
144144
{
145145
Text = "SortBy".GetLocalizedResource(),
146-
OpacityIcon = new OpacityIconModel()
147-
{
148-
OpacityIconStyle = "ColorIconSort",
149-
},
146+
OpacityIcon = new("ColorIconSort"),
150147
ShowItem = !itemsSelected,
151148
ShowInRecycleBin = true,
152149
ShowInSearchPage = true,
@@ -355,10 +352,7 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
355352
},
356353
new ContextMenuFlyoutItemViewModel()
357354
{
358-
OpacityIcon = new OpacityIconModel()
359-
{
360-
OpacityIconStyle = commands.AddItem.Glyph.OpacityStyle
361-
},
355+
OpacityIcon = new(commands.AddItem.Glyph.OpacityStyle),
362356
Text = commands.AddItem.Label,
363357
Items = GetNewItemItems(commandsViewModel, currentInstanceViewModel.CanCreateFileInPage),
364358
ShowItem = !itemsSelected,
@@ -385,10 +379,7 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
385379
new ContextMenuFlyoutItemViewModel()
386380
{
387381
Text = "OpenWith".GetLocalizedResource(),
388-
OpacityIcon = new OpacityIconModel()
389-
{
390-
OpacityIconStyle = "ColorIconOpenWith"
391-
},
382+
OpacityIcon = new("ColorIconOpenWith"),
392383
Tag = "OpenWithOverflow",
393384
IsHidden = true,
394385
CollapseLabel = true,
@@ -512,10 +503,7 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
512503
{
513504
Text = "Compress".GetLocalizedResource(),
514505
ShowInSearchPage = true,
515-
OpacityIcon = new OpacityIconModel()
516-
{
517-
OpacityIconStyle = "ColorIconZip",
518-
},
506+
OpacityIcon = new("ColorIconZip"),
519507
Items = new List<ContextMenuFlyoutItemViewModel>
520508
{
521509
new ContextMenuFlyoutItemViewModelBuilder(commands.CompressIntoArchive).Build(),
@@ -528,10 +516,7 @@ public static List<ContextMenuFlyoutItemViewModel> GetBaseItemMenuItems(
528516
{
529517
Text = "Extract".GetLocalizedResource(),
530518
ShowInSearchPage = true,
531-
OpacityIcon = new OpacityIconModel()
532-
{
533-
OpacityIconStyle = "ColorIconZip",
534-
},
519+
OpacityIcon = new("ColorIconZip"),
535520
Items = new List<ContextMenuFlyoutItemViewModel>
536521
{
537522
new ContextMenuFlyoutItemViewModelBuilder(commands.DecompressArchive).Build(),

src/Files.App/Helpers/MenuFlyout/ShellContextMenuHelper.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -330,10 +330,7 @@ x.Tag is Win32ContextMenuItem menuItem &&
330330
{
331331
await openWithItem.LoadSubMenuAction();
332332

333-
openWithItem.OpacityIcon = new OpacityIconModel()
334-
{
335-
OpacityIconStyle = "ColorIconOpenWith",
336-
};
333+
openWithItem.OpacityIcon = new("ColorIconOpenWith");
337334
var (_, openWithItems) = ItemModelListToContextFlyoutHelper.GetAppBarItemsFromModel(new List<ContextMenuFlyoutItemViewModel>() { openWithItem });
338335
var placeholder = itemContextMenuFlyout.SecondaryCommands.Where(x => Equals((x as AppBarButton)?.Tag, "OpenWithPlaceholder")).FirstOrDefault() as AppBarButton;
339336
if (placeholder is not null)

src/Files.App/UserControls/Widgets/DrivesWidget.xaml.cs

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -159,21 +159,15 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
159159
new ContextMenuFlyoutItemViewModel()
160160
{
161161
Text = "OpenInNewTab".GetLocalizedResource(),
162-
OpacityIcon = new OpacityIconModel()
163-
{
164-
OpacityIconStyle = "ColorIconOpenInNewTab",
165-
},
162+
OpacityIcon = new("ColorIconOpenInNewTab"),
166163
Command = OpenInNewTabCommand,
167164
CommandParameter = item,
168165
ShowItem = userSettingsService.GeneralSettingsService.ShowOpenInNewTab
169166
},
170167
new ContextMenuFlyoutItemViewModel()
171168
{
172169
Text = "OpenInNewWindow".GetLocalizedResource(),
173-
OpacityIcon = new OpacityIconModel()
174-
{
175-
OpacityIconStyle = "ColorIconOpenInNewWindow",
176-
},
170+
OpacityIcon = new("ColorIconOpenInNewWindow"),
177171
Command = OpenInNewWindowCommand,
178172
CommandParameter = item,
179173
ShowItem = userSettingsService.GeneralSettingsService.ShowOpenInNewWindow
@@ -188,21 +182,15 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
188182
new ContextMenuFlyoutItemViewModel()
189183
{
190184
Text = "PinToFavorites".GetLocalizedResource(),
191-
OpacityIcon = new OpacityIconModel()
192-
{
193-
OpacityIconStyle = "ColorIconPinToFavorites",
194-
},
185+
OpacityIcon = new("ColorIconPinToFavorites"),
195186
Command = PinToFavoritesCommand,
196187
CommandParameter = item,
197188
ShowItem = !isPinned
198189
},
199190
new ContextMenuFlyoutItemViewModel()
200191
{
201192
Text = "UnpinFromFavorites".GetLocalizedResource(),
202-
OpacityIcon = new OpacityIconModel()
203-
{
204-
OpacityIconStyle = "ColorIconUnpinFromFavorites",
205-
},
193+
OpacityIcon = new("ColorIconUnpinFromFavorites"),
206194
Command = UnpinFromFavoritesCommand,
207195
CommandParameter = item,
208196
ShowItem = isPinned
@@ -224,10 +212,7 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
224212
new ContextMenuFlyoutItemViewModel()
225213
{
226214
Text = "Properties".GetLocalizedResource(),
227-
OpacityIcon = new OpacityIconModel()
228-
{
229-
OpacityIconStyle = "ColorIconProperties",
230-
},
215+
OpacityIcon = new("ColorIconProperties"),
231216
Command = OpenPropertiesCommand,
232217
CommandParameter = item
233218
},

src/Files.App/UserControls/Widgets/FileTagsWidget.xaml.cs

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -155,10 +155,7 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
155155
new ContextMenuFlyoutItemViewModel()
156156
{
157157
Text = "OpenWith".GetLocalizedResource(),
158-
OpacityIcon = new OpacityIconModel()
159-
{
160-
OpacityIconStyle = "ColorIconOpenWith",
161-
},
158+
OpacityIcon = new("ColorIconOpenWith"),
162159
Tag = "OpenWithPlaceholder",
163160
ShowItem = !isFolder
164161
},
@@ -171,21 +168,15 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
171168
new ContextMenuFlyoutItemViewModel()
172169
{
173170
Text = "OpenInNewTab".GetLocalizedResource(),
174-
OpacityIcon = new OpacityIconModel()
175-
{
176-
OpacityIconStyle = "ColorIconOpenInNewTab",
177-
},
171+
OpacityIcon = new("ColorIconOpenInNewTab"),
178172
Command = OpenInNewTabCommand,
179173
CommandParameter = item,
180174
ShowItem = isFolder
181175
},
182176
new ContextMenuFlyoutItemViewModel()
183177
{
184178
Text = "OpenInNewWindow".GetLocalizedResource(),
185-
OpacityIcon = new OpacityIconModel()
186-
{
187-
OpacityIconStyle = "ColorIconOpenInNewWindow",
188-
},
179+
OpacityIcon = new("ColorIconOpenInNewWindow"),
189180
Command = OpenInNewWindowCommand,
190181
CommandParameter = item,
191182
ShowItem = isFolder
@@ -208,32 +199,23 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
208199
new ContextMenuFlyoutItemViewModel()
209200
{
210201
Text = "PinToFavorites".GetLocalizedResource(),
211-
OpacityIcon = new OpacityIconModel()
212-
{
213-
OpacityIconStyle = "ColorIconPinToFavorites",
214-
},
202+
OpacityIcon = new("ColorIconPinToFavorites"),
215203
Command = PinToFavoritesCommand,
216204
CommandParameter = item,
217205
ShowItem = !isPinned && isFolder
218206
},
219207
new ContextMenuFlyoutItemViewModel()
220208
{
221209
Text = "UnpinFromFavorites".GetLocalizedResource(),
222-
OpacityIcon = new OpacityIconModel()
223-
{
224-
OpacityIconStyle = "ColorIconUnpinFromFavorites",
225-
},
210+
OpacityIcon = new("ColorIconUnpinFromFavorites"),
226211
Command = UnpinFromFavoritesCommand,
227212
CommandParameter = item,
228213
ShowItem = isPinned && isFolder
229214
},
230215
new ContextMenuFlyoutItemViewModel()
231216
{
232217
Text = "Properties".GetLocalizedResource(),
233-
OpacityIcon = new OpacityIconModel()
234-
{
235-
OpacityIconStyle = "ColorIconProperties",
236-
},
218+
OpacityIcon = new("ColorIconProperties"),
237219
Command = OpenPropertiesCommand,
238220
CommandParameter = item,
239221
ShowItem = isFolder

src/Files.App/UserControls/Widgets/QuickAccessWidget.xaml.cs

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -149,21 +149,15 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
149149
new ContextMenuFlyoutItemViewModel()
150150
{
151151
Text = "OpenInNewTab".GetLocalizedResource(),
152-
OpacityIcon = new OpacityIconModel()
153-
{
154-
OpacityIconStyle = "ColorIconOpenInNewTab",
155-
},
152+
OpacityIcon = new("ColorIconOpenInNewTab"),
156153
Command = OpenInNewTabCommand,
157154
CommandParameter = item,
158155
ShowItem = userSettingsService.GeneralSettingsService.ShowOpenInNewTab
159156
},
160157
new ContextMenuFlyoutItemViewModel()
161158
{
162159
Text = "OpenInNewWindow".GetLocalizedResource(),
163-
OpacityIcon = new OpacityIconModel()
164-
{
165-
OpacityIconStyle = "ColorIconOpenInNewWindow",
166-
},
160+
OpacityIcon = new("ColorIconOpenInNewWindow"),
167161
Command = OpenInNewWindowCommand,
168162
CommandParameter = item,
169163
ShowItem = userSettingsService.GeneralSettingsService.ShowOpenInNewWindow
@@ -178,32 +172,23 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
178172
new ContextMenuFlyoutItemViewModel()
179173
{
180174
Text = "PinToFavorites".GetLocalizedResource(),
181-
OpacityIcon = new OpacityIconModel()
182-
{
183-
OpacityIconStyle = "ColorIconPinToFavorites",
184-
},
175+
OpacityIcon = new("ColorIconPinToFavorites"),
185176
Command = PinToFavoritesCommand,
186177
CommandParameter = item,
187178
ShowItem = !isPinned
188179
},
189180
new ContextMenuFlyoutItemViewModel()
190181
{
191182
Text = "UnpinFromFavorites".GetLocalizedResource(),
192-
OpacityIcon = new OpacityIconModel()
193-
{
194-
OpacityIconStyle = "ColorIconUnpinFromFavorites",
195-
},
183+
OpacityIcon = new("ColorIconUnpinFromFavorites"),
196184
Command = UnpinFromFavoritesCommand,
197185
CommandParameter = item,
198186
ShowItem = isPinned
199187
},
200188
new ContextMenuFlyoutItemViewModel()
201189
{
202190
Text = "Properties".GetLocalizedResource(),
203-
OpacityIcon = new OpacityIconModel()
204-
{
205-
OpacityIconStyle = "ColorIconProperties",
206-
},
191+
OpacityIcon = new("ColorIconProperties"),
207192
Command = OpenPropertiesCommand,
208193
CommandParameter = item
209194
},

src/Files.App/UserControls/Widgets/RecentFilesWidget.xaml.cs

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,7 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
158158
new ContextMenuFlyoutItemViewModel()
159159
{
160160
Text = "OpenWith".GetLocalizedResource(),
161-
OpacityIcon = new OpacityIconModel()
162-
{
163-
OpacityIconStyle = "ColorIconOpenWith",
164-
},
161+
OpacityIcon = new("ColorIconOpenWith"),
165162
Tag = "OpenWithPlaceholder",
166163
},
167164
new ContextMenuFlyoutItemViewModel()
@@ -193,10 +190,7 @@ public override List<ContextMenuFlyoutItemViewModel> GetItemMenuItems(WidgetCard
193190
new ContextMenuFlyoutItemViewModel()
194191
{
195192
Text = "Properties".GetLocalizedResource(),
196-
OpacityIcon = new OpacityIconModel()
197-
{
198-
OpacityIconStyle = "ColorIconProperties",
199-
},
193+
OpacityIcon = new("ColorIconProperties"),
200194
Command = OpenPropertiesCommand,
201195
CommandParameter = item
202196
},

src/Files.App/ViewModels/UserControls/SidebarViewModel.cs

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -977,20 +977,14 @@ private List<ContextMenuFlyoutItemViewModel> GetLocationItemMenuItems(INavigatio
977977
new ContextMenuFlyoutItemViewModel()
978978
{
979979
Text = "OpenInNewTab".GetLocalizedResource(),
980-
OpacityIcon = new OpacityIconModel()
981-
{
982-
OpacityIconStyle = "ColorIconOpenInNewTab",
983-
},
980+
OpacityIcon = new("ColorIconOpenInNewTab"),
984981
Command = OpenInNewTabCommand,
985982
ShowItem = options.IsLocationItem && UserSettingsService.GeneralSettingsService.ShowOpenInNewTab
986983
},
987984
new ContextMenuFlyoutItemViewModel()
988985
{
989986
Text = "OpenInNewWindow".GetLocalizedResource(),
990-
OpacityIcon = new OpacityIconModel()
991-
{
992-
OpacityIconStyle = "ColorIconOpenInNewWindow",
993-
},
987+
OpacityIcon = new("ColorIconOpenInNewWindow"),
994988
Command = OpenInNewWindowCommand,
995989
ShowItem = options.IsLocationItem && UserSettingsService.GeneralSettingsService.ShowOpenInNewTab
996990
},
@@ -1003,20 +997,14 @@ private List<ContextMenuFlyoutItemViewModel> GetLocationItemMenuItems(INavigatio
1003997
new ContextMenuFlyoutItemViewModel()
1004998
{
1005999
Text = "PinToFavorites".GetLocalizedResource(),
1006-
OpacityIcon = new OpacityIconModel()
1007-
{
1008-
OpacityIconStyle = "ColorIconPinToFavorites",
1009-
},
1000+
OpacityIcon = new("ColorIconPinToFavorites"),
10101001
Command = PinItemCommand,
10111002
ShowItem = isDriveItem && !isDriveItemPinned
10121003
},
10131004
new ContextMenuFlyoutItemViewModel()
10141005
{
10151006
Text = "UnpinFromFavorites".GetLocalizedResource(),
1016-
OpacityIcon = new OpacityIconModel()
1017-
{
1018-
OpacityIconStyle = "ColorIconUnpinFromFavorites",
1019-
},
1007+
OpacityIcon = new("ColorIconUnpinFromFavorites"),
10201008
Command = UnpinItemCommand,
10211009
ShowItem = options.ShowUnpinItem || isDriveItemPinned
10221010
},
@@ -1050,10 +1038,7 @@ private List<ContextMenuFlyoutItemViewModel> GetLocationItemMenuItems(INavigatio
10501038
new ContextMenuFlyoutItemViewModel()
10511039
{
10521040
Text = "Properties".GetLocalizedResource(),
1053-
OpacityIcon = new OpacityIconModel()
1054-
{
1055-
OpacityIconStyle = "ColorIconProperties",
1056-
},
1041+
OpacityIcon = new("ColorIconProperties"),
10571042
Command = OpenPropertiesCommand,
10581043
CommandParameter = menu,
10591044
ShowItem = options.ShowProperties

0 commit comments

Comments
 (0)