mirror of
https://github.com/chylex/Backup-Essentials.git
synced 2025-06-17 06:39:56 +02:00
Added backup and cancel buttons to Drop window and fixed page NPE
This commit is contained in:
parent
4d387c8f9c
commit
7dd04a24c4
BackupEssentials
@ -2,6 +2,7 @@
|
|||||||
using BackupEssentials.Controls;
|
using BackupEssentials.Controls;
|
||||||
using BackupEssentials.Pages;
|
using BackupEssentials.Pages;
|
||||||
using System;
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
using System.Windows.Input;
|
using System.Windows.Input;
|
||||||
@ -100,6 +101,7 @@ namespace BackupEssentials{
|
|||||||
if (DropData == null && e.Data.GetDataPresent(DataFormats.FileDrop)){
|
if (DropData == null && e.Data.GetDataPresent(DataFormats.FileDrop)){
|
||||||
DropData = e.Data.GetData(DataFormats.FileDrop) as string[];
|
DropData = e.Data.GetData(DataFormats.FileDrop) as string[];
|
||||||
DropOverlayLabel.Visibility = Visibility.Visible;
|
DropOverlayLabel.Visibility = Visibility.Visible;
|
||||||
|
App.SetForegroundWindow(Process.GetCurrentProcess().MainWindowHandle);
|
||||||
}
|
}
|
||||||
else e.Effects = DragDropEffects.None;
|
else e.Effects = DragDropEffects.None;
|
||||||
|
|
||||||
@ -113,8 +115,8 @@ namespace BackupEssentials{
|
|||||||
|
|
||||||
private void OnDragDrop(object sender, DragEventArgs e){
|
private void OnDragDrop(object sender, DragEventArgs e){
|
||||||
if (DropData != null){
|
if (DropData != null){
|
||||||
ShowPage(typeof(BackupDrop),DropData);
|
|
||||||
DropOverlayLabel.Visibility = Visibility.Hidden;
|
DropOverlayLabel.Visibility = Visibility.Hidden;
|
||||||
|
ShowPage(typeof(BackupDrop),new object[]{ DropData, ContentFrame.Content == null ? null : (ContentFrame.Content as Page).GetType() });
|
||||||
DropData = null;
|
DropData = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -130,7 +132,7 @@ namespace BackupEssentials{
|
|||||||
IPageShowData pageDataHandler = page as IPageShowData;
|
IPageShowData pageDataHandler = page as IPageShowData;
|
||||||
if (pageDataHandler != null && data != IgnoreShowData)pageDataHandler.OnShow(data);
|
if (pageDataHandler != null && data != IgnoreShowData)pageDataHandler.OnShow(data);
|
||||||
|
|
||||||
if (!page.AllowDrop){
|
if (page != null && !page.AllowDrop){
|
||||||
page.AllowDrop = true;
|
page.AllowDrop = true;
|
||||||
page.DragEnter += new DragEventHandler(OnDragEnter);
|
page.DragEnter += new DragEventHandler(OnDragEnter);
|
||||||
page.DragLeave += new DragEventHandler(OnDragLeave);
|
page.DragLeave += new DragEventHandler(OnDragLeave);
|
||||||
|
@ -23,14 +23,14 @@
|
|||||||
<StackPanel.Resources>
|
<StackPanel.Resources>
|
||||||
<Style TargetType="Button">
|
<Style TargetType="Button">
|
||||||
<Setter Property="Margin" Value="8,8,0,0"/>
|
<Setter Property="Margin" Value="8,8,0,0"/>
|
||||||
<Setter Property="Width" Value="120"/>
|
<Setter Property="Width" Value="100"/>
|
||||||
<Setter Property="Height" Value="40"/>
|
<Setter Property="Height" Value="40"/>
|
||||||
<Setter Property="FontSize" Value="16"/>
|
<Setter Property="FontSize" Value="16"/>
|
||||||
<Setter Property="Template" Value="{StaticResource ButtonStyleDefault}"/>
|
<Setter Property="Template" Value="{StaticResource ButtonStyleDefault}"/>
|
||||||
</Style>
|
</Style>
|
||||||
</StackPanel.Resources>
|
</StackPanel.Resources>
|
||||||
<Button x:Name="ButtonBackup" Content="Backup" IsEnabled="False"/>
|
<Button x:Name="ButtonBackup" Content="Backup" IsEnabled="False" Click="ClickBackup"/>
|
||||||
<Button x:Name="ButtoonCancel" Content="Cancel" Template="{StaticResource ButtonStyleRedDefault}"/>
|
<Button x:Name="ButtonCancel" Content="Cancel" Template="{StaticResource ButtonStyleRedDefault}" Click="ClickCancel"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<ListView Name="LocationsListView" Grid.Row="1" Margin="8" Style="{StaticResource ListViewStyleDefault}" SelectionChanged="ListViewSelectionChanged">
|
<ListView Name="LocationsListView" Grid.Row="1" Margin="8" Style="{StaticResource ListViewStyleDefault}" SelectionChanged="ListViewSelectionChanged">
|
||||||
|
@ -1,8 +1,17 @@
|
|||||||
using BackupEssentials.Backup;
|
using BackupEssentials.Backup;
|
||||||
|
using System;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.IO;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Windows;
|
||||||
using System.Windows.Controls;
|
using System.Windows.Controls;
|
||||||
|
|
||||||
namespace BackupEssentials.Pages{
|
namespace BackupEssentials.Pages{
|
||||||
public partial class BackupDrop : Page, IPageShowData{
|
public partial class BackupDrop : Page, IPageShowData{
|
||||||
|
private Type PrevPageType;
|
||||||
|
private string[] FileList;
|
||||||
|
private bool Running;
|
||||||
|
|
||||||
public BackupDrop(){
|
public BackupDrop(){
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
@ -11,11 +20,38 @@ namespace BackupEssentials.Pages{
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IPageShowData.OnShow(object data){
|
void IPageShowData.OnShow(object data){
|
||||||
string[] files = (string[])data;
|
FileList = (string[])((Object[])data)[0];
|
||||||
|
PrevPageType = (Type)((Object[])data)[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ListViewSelectionChanged(object sender, SelectionChangedEventArgs e){
|
private void ListViewSelectionChanged(object sender, SelectionChangedEventArgs e){
|
||||||
ButtonBackup.IsEnabled = LocationsListView.SelectedItems.Count == 1;
|
ButtonBackup.IsEnabled = LocationsListView.SelectedItems.Count == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ClickBackup(object sender, RoutedEventArgs e){
|
||||||
|
if (FileList.Length == 0 || Running)return;
|
||||||
|
|
||||||
|
Process newProcess = new Process();
|
||||||
|
newProcess.StartInfo.Arguments = "-runshell -locid "+LocationsListView.SelectedIndex+" -src \""+string.Join("\" \"",FileList)+"\"";
|
||||||
|
newProcess.StartInfo.FileName = Path.GetFileName(Assembly.GetExecutingAssembly().CodeBase);
|
||||||
|
newProcess.EnableRaisingEvents = true;
|
||||||
|
newProcess.Start();
|
||||||
|
|
||||||
|
newProcess.Exited += (sender2, args2) => {
|
||||||
|
if (newProcess.ExitCode == 0){
|
||||||
|
Dispatcher.Invoke(new Action(() => {
|
||||||
|
MainWindow.Instance.ShowPage(PrevPageType,MainWindow.IgnoreShowData);
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
Running = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
Running = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ClickCancel(object sender, RoutedEventArgs e){
|
||||||
|
MainWindow.Instance.ShowPage(PrevPageType,MainWindow.IgnoreShowData);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user