Skip to content

Commit 6d5e954

Browse files
Luke BlevinsLuke Blevins
authored andcommitted
Initial Paste Item Collision Support
1 parent 15922e4 commit 6d5e954

File tree

5 files changed

+480
-37
lines changed

5 files changed

+480
-37
lines changed

FileLoader.cs

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,27 @@ private async void DisplayConsentDialog()
175175
private static ProgressUIPath pUIp = new ProgressUIPath();
176176
public static ProgressUIPath PUIP { get { return ItemViewModel.pUIp; } }
177177

178+
private static ProgressUIButtonText buttonText = new ProgressUIButtonText();
179+
public static ProgressUIButtonText ButtonText { get { return ItemViewModel.buttonText; } }
180+
181+
private static CollisionBoxHeader collisionBoxHeader = new CollisionBoxHeader();
182+
public static CollisionBoxHeader CollisionBoxHeader { get { return collisionBoxHeader; } }
183+
184+
private static CollisionBoxSubHeader collisionBoxSubHeader = new CollisionBoxSubHeader();
185+
public static CollisionBoxSubHeader CollisionBoxSubHeader { get { return collisionBoxSubHeader; } }
186+
187+
private static CollisionUIVisibility collisionUIVisibility = new CollisionUIVisibility();
188+
public static CollisionUIVisibility CollisionUIVisibility { get { return collisionUIVisibility; } }
189+
190+
private static CollisionBoxHeader conflictBoxHeader = new CollisionBoxHeader();
191+
public static CollisionBoxHeader ConflictBoxHeader { get { return conflictBoxHeader; } }
192+
193+
private static CollisionBoxSubHeader conflictBoxSubHeader = new CollisionBoxSubHeader();
194+
public static CollisionBoxSubHeader ConflictBoxSubHeader { get { return conflictBoxSubHeader; } }
195+
196+
private static CollisionUIVisibility conflictUIVisibility = new CollisionUIVisibility();
197+
public static CollisionUIVisibility ConflictUIVisibility { get { return conflictUIVisibility; } }
198+
178199
private static EmptyFolderTextState textState = new EmptyFolderTextState();
179200
public static EmptyFolderTextState TextState { get { return ItemViewModel.textState; } }
180201
public static bool IsStopRequested = false;
@@ -205,6 +226,7 @@ public async void GetItemsAsync(string path)
205226
}
206227

207228
PUIH.Header = "Loading " + NumOfItems + " items";
229+
ButtonText.buttonText = "Hide";
208230

209231
if (NumOfItems >= 250)
210232
{
@@ -315,14 +337,34 @@ public static ProgressPercentage PROGRESSPER
315337
}
316338
}
317339

318-
public int UpdateProgUI(int level)
340+
public static int UpdateProgUI(int level)
319341
{
320342
PROGRESSPER.prog = level;
321-
//Debug.WriteLine("Status Updated For Folder Read Loop");
322343
return (int)level;
323344
}
324345

346+
public static void DisplayCollisionUIWithArgs(string header, string subHeader)
347+
{
348+
CollisionBoxHeader.Header = header;
349+
CollisionBoxSubHeader.SubHeader = subHeader;
350+
CollisionUIVisibility.isVisible = Visibility.Visible;
351+
}
325352

353+
public static void DisplayReviewUIWithArgs(string header, string subHeader)
354+
{
355+
ConflictBoxHeader.Header = header;
356+
ConflictBoxSubHeader.SubHeader = subHeader;
357+
ConflictUIVisibility.isVisible = Visibility.Visible;
358+
}
359+
360+
public static void DisplayProgUIWithArgs(string headerText, string messageText, string buttonText, int initialProgBarLevel)
361+
{
362+
PUIH.Header = headerText;
363+
PUIP.Path = messageText;
364+
ButtonText.buttonText = buttonText;
365+
PROGRESSPER.prog = initialProgBarLevel;
366+
PVIS.isVisible = Visibility.Visible;
367+
}
326368

327369
}
328370
}

GenericFileBrowser.xaml

Lines changed: 49 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,12 +211,59 @@
211211
<Grid Visibility="Collapsed" Background="{StaticResource Accent}" VerticalAlignment="Top" Height="30" HorizontalAlignment="Stretch" Margin="0,872,0,0" Grid.Row="1">
212212

213213
</Grid>
214+
215+
<controls:DropShadowPanel BorderBrush="White" BorderThickness="1" Name="FileConflictBox" Visibility="{x:Bind local2:ItemViewModel.ConflictUIVisibility.isVisible}" HorizontalAlignment="Center" VerticalAlignment="Top" Width="500" Height="225" Margin="0,150,0,0" Grid.Row="1" Canvas.ZIndex="3">
216+
<Grid Padding="25">
217+
<Rectangle Fill="{ThemeResource ApplicationPageBackgroundThemeBrush}" Stroke="White" StrokeThickness="1" Width="500" Height="225" HorizontalAlignment="Center" VerticalAlignment="Center"/>
218+
<StackPanel>
219+
<TextBlock Name="ConflictLargeHeader" Text="{x:Bind local2:ItemViewModel.ConflictBoxHeader.Header, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" FontSize="22"/>
220+
<TextBlock Name="ConflictSmallHeader" TextWrapping="WrapWholeWords" Text="{x:Bind local2:ItemViewModel.ConflictBoxSubHeader.SubHeader, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
221+
<StackPanel Orientation="Horizontal" Padding="0,90,0,0">
222+
<Button Name="ReplaceChoice" Width="200" Margin="0,0,50,0" Content="Replace"/>
223+
<Button Name="SkipChoice" Width="200" Content="Skip"/>
224+
</StackPanel>
225+
</StackPanel>
226+
</Grid>
227+
</controls:DropShadowPanel>
228+
229+
<controls:DropShadowPanel BorderBrush="White" BorderThickness="1" Name="CollisionBox" Visibility="{x:Bind local2:ItemViewModel.CollisionUIVisibility.isVisible, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Top" Width="500" Height="275" Margin="0,150,0,0" Grid.Row="1" Canvas.ZIndex="3">
230+
<Grid Padding="25">
231+
<Rectangle Fill="{ThemeResource ApplicationPageBackgroundThemeBrush}" Stroke="White" StrokeThickness="1" Width="500" Height="275" HorizontalAlignment="Center" VerticalAlignment="Center"/>
232+
<StackPanel>
233+
<TextBlock Name="LargeHeader" Text="{x:Bind local2:ItemViewModel.CollisionBoxHeader.Header, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" FontSize="22"/>
234+
<TextBlock Name="SmallHeader" TextWrapping="WrapWholeWords" Text="{x:Bind local2:ItemViewModel.CollisionBoxSubHeader.SubHeader, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
235+
<ListView IsItemClickEnabled="True" Name="CollisonLV">
236+
<ListViewItem Name="ReplaceAll">
237+
<StackPanel Orientation="Horizontal">
238+
<SymbolIcon Symbol="Accept" Margin="0,0,15,0"/>
239+
<TextBlock Text="Replace all items with the same name"/>
240+
</StackPanel>
241+
</ListViewItem>
242+
<ListViewItem Name="SkipAll">
243+
<StackPanel Orientation="Horizontal">
244+
<SymbolIcon Symbol="Forward" Margin="0,0,15,0"/>
245+
<TextBlock Text="Skip these items"/>
246+
</StackPanel>
247+
</ListViewItem>
248+
<ListViewItem Name="PromptForAll">
249+
<StackPanel Orientation="Horizontal">
250+
<FontIcon Glyph="&#xE9D5;" Margin="0,0,15,0"/>
251+
<TextBlock Text="Prompt me for each item"/>
252+
</StackPanel>
253+
</ListViewItem>
254+
255+
256+
</ListView>
257+
</StackPanel>
258+
</Grid>
259+
</controls:DropShadowPanel>
260+
214261
<controls:DropShadowPanel x:Name="ProgressBox" Visibility="{x:Bind local2:ItemViewModel.PVIS.isVisible, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Top" Width="500" Height="225" Margin="0,150,0,0" Grid.Row="1">
215262
<Grid>
216263
<Rectangle Fill="{ThemeResource ApplicationPageBackgroundThemeBrush}" Stroke="White" Width="500" Height="225" HorizontalAlignment="Center" VerticalAlignment="Center"/>
217264
<TextBlock Text="{x:Bind local2:ItemViewModel.PUIH.Header, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="25,0,0,150" FontSize="22"/>
218-
<Button Content="Hide" HorizontalAlignment="Right" Margin="0,0,25,25" VerticalAlignment="Bottom" Width="175" Click="Button_Click"/>
219-
<TextBlock Text="{x:Bind local2:ItemViewModel.PUIP.Path, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="25,0,0,50" FontSize="14"/>
265+
<Button Content="{x:Bind local2:ItemViewModel.ButtonText.buttonText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Right" Margin="0,0,25,25" VerticalAlignment="Bottom" Width="175" Click="Button_Click"/>
266+
<TextBlock Text="{x:Bind local2:ItemViewModel.PUIP.Path, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="25,0,0,85" FontSize="14"/>
220267
<ProgressBar Name="pbar" Value="{x:Bind local2:ItemViewModel.PROGRESSPER.prog, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" Height="8" HorizontalAlignment="Center" Width="450" Margin="0,50,0,0"/>
221268
</Grid>
222269
</controls:DropShadowPanel>

GenericFileBrowser.xaml.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ public GenericFileBrowser()
5454
ProgressBox.Visibility = Visibility.Collapsed;
5555
ItemViewModel.TextState.isVisible = Visibility.Collapsed;
5656
ItemViewModel.PVIS.isVisible = Visibility.Collapsed;
57+
ItemViewModel.CollisionUIVisibility.isVisible = Visibility.Collapsed;
58+
ItemViewModel.ConflictUIVisibility.isVisible = Visibility.Collapsed;
5759
data = AllView;
5860
context = RightClickContextMenu;
5961
HeaderContextMenu = HeaderRightClickMenu;
@@ -71,7 +73,9 @@ public GenericFileBrowser()
7173
AllView.DoubleTapped += Interact.Interaction.List_ItemClick;
7274
Paste.Click += Interact.Interaction.PasteItem_ClickAsync;
7375
Clipboard.ContentChanged += Clipboard_ContentChanged;
74-
76+
CollisonLV.ItemClick += Interact.Interaction.CollisionLVItemClick;
77+
ReplaceChoice.Click += Interact.Interaction.ReplaceChoiceClick;
78+
SkipChoice.Click += Interact.Interaction.SkipChoiceClick;
7579
}
7680

7781
private void Clipboard_ContentChanged(object sender, object e)
@@ -171,7 +175,6 @@ private void Button_Click(object sender, RoutedEventArgs e)
171175
ProgressBox.Visibility = Visibility.Collapsed;
172176
}
173177

174-
175178
}
176179

177180
public class EmptyFolderTextState : INotifyPropertyChanged

0 commit comments

Comments
 (0)