@@ -117,6 +117,10 @@ public bool CanOpenInNewPane
117
117
}
118
118
}
119
119
120
+ public bool ShowMoveItemUp { get ; set ; }
121
+
122
+ public bool ShowMoveItemDown { get ; set ; }
123
+
120
124
public bool ShowUnpinItem { get ; set ; }
121
125
122
126
public bool ShowHideSection { get ; set ; }
@@ -186,6 +190,90 @@ public void UnpinItem_Click(object sender, RoutedEventArgs e)
186
190
}
187
191
}
188
192
193
+ public void MoveItemToTop_Click ( object sender , RoutedEventArgs e )
194
+ {
195
+ if ( RightClickedItem . Section == SectionType . Favorites )
196
+ {
197
+ bool isSelectedSidebarItem = false ;
198
+
199
+ if ( SelectedSidebarItem == RightClickedItem )
200
+ {
201
+ isSelectedSidebarItem = true ;
202
+ }
203
+
204
+ int oldIndex = App . SidebarPinnedController . Model . IndexOfItem ( RightClickedItem ) ;
205
+ App . SidebarPinnedController . Model . MoveItem ( RightClickedItem , oldIndex , 1 ) ;
206
+
207
+ if ( isSelectedSidebarItem )
208
+ {
209
+ SetValue ( SelectedSidebarItemProperty , RightClickedItem ) ;
210
+ }
211
+ }
212
+ }
213
+
214
+ public void MoveItemUp_Click ( object sender , RoutedEventArgs e )
215
+ {
216
+ if ( RightClickedItem . Section == SectionType . Favorites )
217
+ {
218
+ bool isSelectedSidebarItem = false ;
219
+
220
+ if ( SelectedSidebarItem == RightClickedItem )
221
+ {
222
+ isSelectedSidebarItem = true ;
223
+ }
224
+
225
+ int oldIndex = App . SidebarPinnedController . Model . IndexOfItem ( RightClickedItem ) ;
226
+ App . SidebarPinnedController . Model . MoveItem ( RightClickedItem , oldIndex , oldIndex - 1 ) ;
227
+
228
+ if ( isSelectedSidebarItem )
229
+ {
230
+ SetValue ( SelectedSidebarItemProperty , RightClickedItem ) ;
231
+ }
232
+ }
233
+ }
234
+
235
+ public void MoveItemDown_Click ( object sender , RoutedEventArgs e )
236
+ {
237
+ if ( RightClickedItem . Section == SectionType . Favorites )
238
+ {
239
+ bool isSelectedSidebarItem = false ;
240
+
241
+ if ( SelectedSidebarItem == RightClickedItem )
242
+ {
243
+ isSelectedSidebarItem = true ;
244
+ }
245
+
246
+ int oldIndex = App . SidebarPinnedController . Model . IndexOfItem ( RightClickedItem ) ;
247
+ App . SidebarPinnedController . Model . MoveItem ( RightClickedItem , oldIndex , oldIndex + 1 ) ;
248
+
249
+ if ( isSelectedSidebarItem )
250
+ {
251
+ SetValue ( SelectedSidebarItemProperty , RightClickedItem ) ;
252
+ }
253
+ }
254
+ }
255
+
256
+ public void MoveItemToBottom_Click ( object sender , RoutedEventArgs e )
257
+ {
258
+ if ( RightClickedItem . Section == SectionType . Favorites )
259
+ {
260
+ bool isSelectedSidebarItem = false ;
261
+
262
+ if ( SelectedSidebarItem == RightClickedItem )
263
+ {
264
+ isSelectedSidebarItem = true ;
265
+ }
266
+
267
+ int oldIndex = App . SidebarPinnedController . Model . IndexOfItem ( RightClickedItem ) ;
268
+ App . SidebarPinnedController . Model . MoveItem ( RightClickedItem , oldIndex , App . SidebarPinnedController . Model . FavoriteItems . Count ( ) ) ;
269
+
270
+ if ( isSelectedSidebarItem )
271
+ {
272
+ SetValue ( SelectedSidebarItemProperty , RightClickedItem ) ;
273
+ }
274
+ }
275
+ }
276
+
189
277
public static GridLength GetSidebarCompactSize ( )
190
278
{
191
279
if ( App . Current . Resources . TryGetValue ( "NavigationViewCompactPaneLength" , out object paneLength ) )
@@ -262,6 +350,8 @@ private void NavigationViewLocationItem_RightTapped(object sender, RightTappedRo
262
350
ShowProperties = true ;
263
351
IsLibrariesHeader = false ;
264
352
ShowUnpinItem = ( ( library || favorite ) && ! item . IsDefaultLocation ) ;
353
+ ShowMoveItemUp = ShowUnpinItem && App . SidebarPinnedController . Model . IndexOfItem ( item ) > 1 ;
354
+ ShowMoveItemDown = ShowUnpinItem && App . SidebarPinnedController . Model . IndexOfItem ( item ) < App . SidebarPinnedController . Model . FavoriteItems . Count ( ) ;
265
355
ShowHideSection = false ;
266
356
ShowEjectDevice = false ;
267
357
@@ -295,6 +385,8 @@ private void NavigationViewLocationItem_RightTapped(object sender, RightTappedRo
295
385
ShowProperties = false ;
296
386
IsLibrariesHeader = librariesHeader ;
297
387
ShowUnpinItem = false ;
388
+ ShowMoveItemUp = false ;
389
+ ShowMoveItemDown = false ;
298
390
ShowHideSection = true ;
299
391
ShowEjectDevice = false ;
300
392
ShowEmptyRecycleBin = false ;
@@ -319,6 +411,8 @@ private void NavigationViewDriveItem_RightTapped(object sender, RightTappedRoute
319
411
IsLibrariesHeader = false ;
320
412
ShowEjectDevice = item . IsRemovable ;
321
413
ShowUnpinItem = false ;
414
+ ShowMoveItemUp = false ;
415
+ ShowMoveItemDown = false ;
322
416
ShowEmptyRecycleBin = false ;
323
417
ShowProperties = true ;
324
418
ShowHideSection = false ;
@@ -344,6 +438,8 @@ private void NavigationViewWSLItem_RightTapped(object sender, RightTappedRoutedE
344
438
IsLibrariesHeader = false ;
345
439
ShowEjectDevice = false ;
346
440
ShowUnpinItem = false ;
441
+ ShowMoveItemUp = false ;
442
+ ShowMoveItemDown = false ;
347
443
ShowEmptyRecycleBin = false ;
348
444
ShowProperties = false ;
349
445
ShowHideSection = false ;
@@ -930,6 +1026,34 @@ public List<ContextMenuFlyoutItemViewModel> GetLocationItemMenuItems()
930
1026
ShowItem = IsLocationItem
931
1027
} ,
932
1028
new ContextMenuFlyoutItemViewModel ( )
1029
+ {
1030
+ Text = "SideBarFavoritesMoveToTop" . GetLocalized ( ) ,
1031
+ Glyph = "\uE11C " ,
1032
+ Command = new RelayCommand ( ( ) => MoveItemToTop_Click ( null , null ) ) ,
1033
+ ShowItem = ShowMoveItemUp
1034
+ } ,
1035
+ new ContextMenuFlyoutItemViewModel ( )
1036
+ {
1037
+ Text = "SideBarFavoritesMoveOneUp" . GetLocalized ( ) ,
1038
+ Glyph = "\uE70E " ,
1039
+ Command = new RelayCommand ( ( ) => MoveItemUp_Click ( null , null ) ) ,
1040
+ ShowItem = ShowMoveItemUp
1041
+ } ,
1042
+ new ContextMenuFlyoutItemViewModel ( )
1043
+ {
1044
+ Text = "SideBarFavoritesMoveOneDown" . GetLocalized ( ) ,
1045
+ Glyph = "\uE70D " ,
1046
+ Command = new RelayCommand ( ( ) => MoveItemDown_Click ( null , null ) ) ,
1047
+ ShowItem = ShowMoveItemDown
1048
+ } ,
1049
+ new ContextMenuFlyoutItemViewModel ( )
1050
+ {
1051
+ Text = "SideBarFavoritesMoveToBottom" . GetLocalized ( ) ,
1052
+ Glyph = "\uE118 " ,
1053
+ Command = new RelayCommand ( ( ) => MoveItemToBottom_Click ( null , null ) ) ,
1054
+ ShowItem = ShowMoveItemDown
1055
+ } ,
1056
+ new ContextMenuFlyoutItemViewModel ( )
933
1057
{
934
1058
Text = "SideBarUnpinFromFavorites/Text" . GetLocalized ( ) ,
935
1059
Glyph = "\uE77A " ,
0 commit comments