diff --git a/App.config b/App.config
index 2ce48cf..fe810b1 100644
--- a/App.config
+++ b/App.config
@@ -19,13 +19,14 @@
-
+
+
diff --git a/Constant/Constants.cs b/Constant/Constants.cs
index 18889d7..3eb6edb 100644
--- a/Constant/Constants.cs
+++ b/Constant/Constants.cs
@@ -18,9 +18,14 @@ namespace GeekDesk.Constant
///
public static string DATA_FILE_PATH = APP_DIR + "Data"; //app数据文件路径
- public static string LOG_FILE_PATH = APP_DIR + "Log.log";
+ ///
+ /// 备份文件路径
+ ///
+ public static string DATA_FILE_BAK_PATH = APP_DIR + "bak\\Data.bak"; //app数据文件路径
- public static string ERROR_FILE_PATH = APP_DIR + "Error.log";
+ public static string LOG_FILE_PATH = APP_DIR + "logs\\log.log";
+
+ public static string ERROR_FILE_PATH = APP_DIR + "logs\\error.log";
public static int SHADOW_WIDTH = 20;
diff --git a/Control/Other/BacklogNotificatin.xaml.cs b/Control/Other/BacklogNotificatin.xaml.cs
index 28b64c9..46fc210 100644
--- a/Control/Other/BacklogNotificatin.xaml.cs
+++ b/Control/Other/BacklogNotificatin.xaml.cs
@@ -62,7 +62,7 @@ namespace GeekDesk.Control.Other
}
ToDoTask.activityBacklog[info].Close(); //关闭桌面通知
ToDoTask.activityBacklog.Remove(info);//激活任务删除
- CommonCode.SaveAppData(appData);
+ CommonCode.SaveAppData(appData, Constants.DATA_FILE_PATH);
}
diff --git a/Control/Other/GlobalMsgNotification.xaml b/Control/Other/GlobalMsgNotification.xaml
new file mode 100644
index 0000000..c421ea3
--- /dev/null
+++ b/Control/Other/GlobalMsgNotification.xaml
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Control/Other/GlobalMsgNotification.xaml.cs b/Control/Other/GlobalMsgNotification.xaml.cs
new file mode 100644
index 0000000..b64a686
--- /dev/null
+++ b/Control/Other/GlobalMsgNotification.xaml.cs
@@ -0,0 +1,61 @@
+using GeekDesk.Constant;
+using GeekDesk.Task;
+using GeekDesk.Util;
+using GeekDesk.ViewModel;
+using HandyControl.Controls;
+using Quartz;
+using System;
+using System.Windows;
+using System.Windows.Input;
+
+namespace GeekDesk.Control.Other
+{
+ ///
+ /// BacklogNotificatin.xaml 的交互逻辑
+ ///
+ public partial class GlobalMsgNotification
+ {
+
+ public Notification ntf;
+ public GlobalMsgNotification(DialogMsg msg)
+ {
+ InitializeComponent();
+ this.DataContext = msg;
+ }
+
+
+ public class DialogMsg
+ {
+ public string msg;
+ public string title;
+
+ public string Msg
+ {
+ get
+ {
+ return msg;
+ }
+ set
+ {
+ msg = value;
+ }
+ }
+ public string Title
+ {
+ get
+ {
+ return title;
+ }
+ set
+ {
+ title = value;
+ }
+ }
+ }
+
+ private void Close_Click(object sender, RoutedEventArgs e)
+ {
+ ntf.Close();
+ }
+ }
+}
diff --git a/Control/Other/IconInfoDialog.xaml.cs b/Control/Other/IconInfoDialog.xaml.cs
index 13a0855..a087d6f 100644
--- a/Control/Other/IconInfoDialog.xaml.cs
+++ b/Control/Other/IconInfoDialog.xaml.cs
@@ -1,4 +1,5 @@
-using GeekDesk.Util;
+using GeekDesk.Constant;
+using GeekDesk.Util;
using GeekDesk.ViewModel;
using Microsoft.Win32;
using System;
@@ -38,7 +39,7 @@ namespace GeekDesk.Control.Other
info.Name = IconName.Text;
info.AdminStartUp = IconIsAdmin.IsChecked.Value;
info.StartArg = StartArg.Text;
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
dialog.Close();
}
@@ -51,7 +52,7 @@ namespace GeekDesk.Control.Other
{
IconInfo info = this.DataContext as IconInfo;
info.BitmapImage = ImageUtil.ByteArrToImage(info.DefaultImage);
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
///
@@ -72,7 +73,7 @@ namespace GeekDesk.Control.Other
{
IconInfo info = this.DataContext as IconInfo;
info.BitmapImage = ImageUtil.GetBitmapIconByPath(ofd.FileName);
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
}
catch (Exception e1)
diff --git a/Control/Other/IconInfoUrlDialog.xaml.cs b/Control/Other/IconInfoUrlDialog.xaml.cs
index 2ecb6f1..2e3847f 100644
--- a/Control/Other/IconInfoUrlDialog.xaml.cs
+++ b/Control/Other/IconInfoUrlDialog.xaml.cs
@@ -52,7 +52,7 @@ namespace GeekDesk.Control.Other
{
MainWindow.appData.MenuList[MainWindow.appData.AppConfig.SelectedMenuIndex].IconList.Add(info);
}
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
dialog.Close();
}
@@ -65,7 +65,7 @@ namespace GeekDesk.Control.Other
{
IconInfo info = this.DataContext as IconInfo;
info.BitmapImage = ImageUtil.ByteArrToImage(info.DefaultImage);
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
///
@@ -86,7 +86,7 @@ namespace GeekDesk.Control.Other
{
IconInfo info = this.DataContext as IconInfo;
info.BitmapImage = ImageUtil.GetBitmapIconByPath(ofd.FileName);
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
}
catch (Exception ex)
diff --git a/Control/UserControls/Config/OtherControl.xaml b/Control/UserControls/Config/OtherControl.xaml
index ca5c35e..989f205 100644
--- a/Control/UserControls/Config/OtherControl.xaml
+++ b/Control/UserControls/Config/OtherControl.xaml
@@ -93,6 +93,16 @@
Foreground="Black"
IsChecked="{Binding UpdateType, Mode=TwoWay, Converter={StaticResource UpdateTypeConvert}, ConverterParameter=2}"/>
+
+
+
+
+
diff --git a/Control/UserControls/Config/OtherControl.xaml.cs b/Control/UserControls/Config/OtherControl.xaml.cs
index 7c3aba1..a70b079 100644
--- a/Control/UserControls/Config/OtherControl.xaml.cs
+++ b/Control/UserControls/Config/OtherControl.xaml.cs
@@ -107,5 +107,10 @@ namespace GeekDesk.Control.UserControls.Config
CountLowSort.Visibility = Visibility.Visible;
}
}
+
+ private void BakDataFile(object sender, RoutedEventArgs e)
+ {
+ CommonCode.BakAppData();
+ }
}
}
diff --git a/Control/UserControls/PannelCard/RightCardControl.xaml.cs b/Control/UserControls/PannelCard/RightCardControl.xaml.cs
index 9d61057..a5d17c3 100644
--- a/Control/UserControls/PannelCard/RightCardControl.xaml.cs
+++ b/Control/UserControls/PannelCard/RightCardControl.xaml.cs
@@ -376,7 +376,7 @@ namespace GeekDesk.Control.UserControls.PannelCard
MainWindow.appData.MenuList[appData.AppConfig.SelectedMenuIndex].IconList.Add(iconInfo);
}
CommonCode.SortIconList();
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
///
diff --git a/Control/UserControls/SystemItem/SystemItem.xaml.cs b/Control/UserControls/SystemItem/SystemItem.xaml.cs
index a5d787d..7cc22ab 100644
--- a/Control/UserControls/SystemItem/SystemItem.xaml.cs
+++ b/Control/UserControls/SystemItem/SystemItem.xaml.cs
@@ -42,7 +42,7 @@ namespace GeekDesk.Control.UserControls.SystemItem
iconInfo = CommonCode.GetIconInfoByPath(thisInfo.LnkPath_NoWrite);
}
menuInfo.IconList.Add(iconInfo);
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
}
}
diff --git a/Control/UserControls/ToDo/TodoControl.xaml.cs b/Control/UserControls/ToDo/TodoControl.xaml.cs
index 5e97e15..59de7a6 100644
--- a/Control/UserControls/ToDo/TodoControl.xaml.cs
+++ b/Control/UserControls/ToDo/TodoControl.xaml.cs
@@ -1,4 +1,5 @@
-using GeekDesk.Control.Windows;
+using GeekDesk.Constant;
+using GeekDesk.Control.Windows;
using GeekDesk.Util;
using GeekDesk.ViewModel;
using HandyControl.Controls;
@@ -42,7 +43,7 @@ namespace GeekDesk.Control.UserControls.Backlog
{
MainWindow.appData.HiToDoList.Remove(info);
}
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
return true;
}, "DeleteConfirm");
diff --git a/Control/Windows/ToDoInfoWindow.xaml.cs b/Control/Windows/ToDoInfoWindow.xaml.cs
index 5df9841..992615b 100644
--- a/Control/Windows/ToDoInfoWindow.xaml.cs
+++ b/Control/Windows/ToDoInfoWindow.xaml.cs
@@ -178,7 +178,7 @@ namespace GeekDesk.Control.Windows
Growl.SuccessGlobal("设置待办任务成功, 系统将在 " + minutes + " 分钟后提醒您!");
}
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
this.Close();
}
diff --git a/GeekDesk.csproj b/GeekDesk.csproj
index ebee579..cf1a9b1 100644
--- a/GeekDesk.csproj
+++ b/GeekDesk.csproj
@@ -167,6 +167,9 @@
+
+ GlobalMsgNotification.xaml
+
BacklogNotificatin.xaml
@@ -290,6 +293,10 @@
+
+ MSBuild:Compile
+ Designer
+
Designer
MSBuild:Compile
@@ -515,4 +522,13 @@
+
+
+
+
+
+ ; Move all assemblies and related files to lib folder
+ROBOCOPY "$(TargetDir) " "$(TargetDir)lib\ " /XF Data *.exe *.config *.manifest /XD lib logs bak /E /IS /MOVE
+if %25errorlevel%25 leq 4 exit 0 else exit %25errorlevel%25
+
\ No newline at end of file
diff --git a/MainWindow.xaml b/MainWindow.xaml
index 74589af..f1a5499 100644
--- a/MainWindow.xaml
+++ b/MainWindow.xaml
@@ -6,6 +6,7 @@
xmlns:uc="clr-namespace:GeekDesk.Control.UserControls.PannelCard"
xmlns:cn="clr-namespace:GeekDesk.Constant"
xmlns:xf="clr-namespace:XamlFlair;assembly=XamlFlair.WPF"
+ xmlns:local="clr-namespace:GeekDesk"
mc:Ignorable="d"
xmlns:cvt="clr-namespace:GeekDesk.Converts"
x:Name="AppWindow"
@@ -26,6 +27,7 @@
MouseDown="MainWindow_MouseDown"
MouseEnter="MainWindow_MouseEnter"
GotFocus="Window_GotFocus"
+ Loaded="Window_Loaded"
>
@@ -124,7 +126,6 @@
FocusVisualStyle="{x:Null}"
/>
-
@@ -151,6 +152,7 @@
+
diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs
index 5a295ae..f6b8eb0 100644
--- a/MainWindow.xaml.cs
+++ b/MainWindow.xaml.cs
@@ -8,6 +8,7 @@ using GeekDesk.Task;
using GeekDesk.Util;
using GeekDesk.ViewModel;
using GeekDesk.ViewModel.Temp;
+using Microsoft.Win32;
using NPinyin;
using System;
using System.Collections.ObjectModel;
@@ -38,14 +39,19 @@ namespace GeekDesk
public static MainWindow mainWindow;
public MainWindow()
{
+ //加载数据
LoadData();
- InitializeComponent();
- mainWindow = this;
- this.Topmost = true;
- this.Loaded += Window_Loaded;
- this.SizeChanged += MainWindow_Resize;
- ToDoTask.BackLogCheck();
+ InitializeComponent();
+
+ //用于其他类访问
+ mainWindow = this;
+
+ //置于顶层
+ this.Topmost = true;
+
+ //执行待办提醒
+ ToDoTask.BackLogCheck();
////实例化隐藏 Hide类,进行时间timer设置
MarginHide.ReadyHide(this);
@@ -60,7 +66,7 @@ namespace GeekDesk
///
- /// 显示搜索框
+ /// 搜索快捷键按下
///
///
///
@@ -72,6 +78,9 @@ namespace GeekDesk
}
}
+ ///
+ /// 显示搜索框
+ ///
private void ShowSearchBox()
{
RunTimeStatus.SEARCH_BOX_SHOW = true;
@@ -128,6 +137,9 @@ namespace GeekDesk
RightCard.VerticalUFG.Visibility = Visibility.Visible;
}
+ ///
+ /// 隐藏搜索框
+ ///
public void HidedSearchBox()
{
RunTimeStatus.SEARCH_BOX_SHOW = false;
@@ -214,6 +226,10 @@ namespace GeekDesk
//更新线程开启 检测更新
UpdateThread.Update();
+
+ //自动备份一次数据
+ appData.AppConfig.SysBakTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
+ CommonCode.SaveAppData(appData, Constants.DATA_FILE_BAK_PATH);
}
///
@@ -338,21 +354,6 @@ namespace GeekDesk
}
- ///
- /// 重置窗体大小 写入缓存
- ///
- ///
- ///
- void MainWindow_Resize(object sender, System.EventArgs e)
- {
- if (this.DataContext != null)
- {
- AppData appData = this.DataContext as AppData;
- appData.AppConfig.WindowWidth = this.Width;
- appData.AppConfig.WindowHeight = this.Height;
- }
- }
-
///
@@ -754,5 +755,21 @@ namespace GeekDesk
AppWindowLostFocus();
}
+ ///
+ /// 备份数据文件
+ ///
+ ///
+ ///
+ [Obsolete]
+ private void BakDataFile(object sender, RoutedEventArgs e)
+ {
+ Thread t = new Thread(() =>
+ {
+ CommonCode.BakAppData();
+ });
+ t.ApartmentState = ApartmentState.STA;
+ t.Start();
+ }
+
}
}
diff --git a/Util/CommonCode.cs b/Util/CommonCode.cs
index 65f2b1c..4b3c545 100644
--- a/Util/CommonCode.cs
+++ b/Util/CommonCode.cs
@@ -1,5 +1,9 @@
using GeekDesk.Constant;
+using GeekDesk.Control.Other;
using GeekDesk.ViewModel;
+using HandyControl.Data;
+using Microsoft.Win32;
+using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@@ -8,6 +12,7 @@ using System.Runtime.InteropServices;
using System.Runtime.Serialization.Formatters.Binary;
using System.Windows;
using System.Windows.Media.Imaging;
+using static GeekDesk.Control.Other.GlobalMsgNotification;
///
/// 提取一些代码
@@ -28,15 +33,56 @@ namespace GeekDesk.Util
{
using (FileStream fs = File.Create(Constants.DATA_FILE_PATH)) { }
appData = new AppData();
- SaveAppData(appData);
-
+ SaveAppData(appData, Constants.DATA_FILE_PATH);
}
else
{
- using (FileStream fs = new FileStream(Constants.DATA_FILE_PATH, FileMode.Open))
+ try
{
- BinaryFormatter bf = new BinaryFormatter();
- appData = bf.Deserialize(fs) as AppData;
+ using (FileStream fs = new FileStream(Constants.DATA_FILE_PATH, FileMode.Open))
+ {
+ BinaryFormatter bf = new BinaryFormatter();
+ appData = bf.Deserialize(fs) as AppData;
+ }
+ }
+ catch
+ {
+ if (File.Exists(Constants.DATA_FILE_BAK_PATH))
+ {
+ try
+ {
+ using (FileStream fs = new FileStream(Constants.DATA_FILE_BAK_PATH, FileMode.Open))
+ {
+ BinaryFormatter bf = new BinaryFormatter();
+ appData = bf.Deserialize(fs) as AppData;
+ }
+
+ DialogMsg msg = new DialogMsg();
+ msg.msg = "不幸的是, GeekDesk当前的数据文件已经损坏, " +
+ "现在已经启用系统自动备份的数据\n\n" +
+ "如果你有较新的备份, " +
+ "请退出GeekDesk, " +
+ "将备份文件重命名为:Data, " +
+ "然后将Data覆盖到GeekDesk的根目录即可\n\n" +
+ "系统上次备份时间: \n" + appData.AppConfig.SysBakTime +
+ "\n\n如果当前数据就是你想要的数据, 那么请不用管它";
+ GlobalMsgNotification gm = new GlobalMsgNotification(msg);
+ HandyControl.Controls.Notification ntf = HandyControl.Controls.Notification.Show(gm, ShowAnimation.Fade, true);
+ gm.ntf = ntf;
+ } catch
+ {
+ MessageBox.Show("不幸的是, GeekDesk当前的数据文件已经损坏\n如果你有备份, 请将备份文件重命名为:Data 然后将Data覆盖到GeekDesk的根目录即可!");
+ Application.Current.Shutdown();
+ return null;
+ }
+
+ } else
+ {
+ MessageBox.Show("不幸的是, GeekDesk当前的数据文件已经损坏\n如果你有备份, 请将备份文件重命名为:Data 然后将Data覆盖到GeekDesk的根目录即可!");
+ Application.Current.Shutdown();
+ return null;
+ }
+
}
}
return appData;
@@ -46,15 +92,38 @@ namespace GeekDesk.Util
/// 保存app 数据
///
///
- public static void SaveAppData(AppData appData)
+ public static void SaveAppData(AppData appData, string filePath)
{
- using (FileStream fs = new FileStream(Constants.DATA_FILE_PATH, FileMode.Create))
+ if (!Directory.Exists(filePath.Substring(0, filePath.LastIndexOf("\\"))))
+ {
+ Directory.CreateDirectory(filePath.Substring(0, filePath.LastIndexOf("\\")));
+ }
+ using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(fs, appData);
}
}
+ public static void BakAppData()
+ {
+
+ SaveFileDialog sfd = new SaveFileDialog
+ {
+ Title = "备份文件",
+ Filter = "bak文件(*.bak)|*.bak",
+ FileName = "Data-GD-" + DateTime.Now.ToString("yyMMdd") + ".bak",
+ };
+ if (sfd.ShowDialog() == true)
+ {
+ using (FileStream fs = new FileStream(sfd.FileName, FileMode.Create))
+ {
+ BinaryFormatter bf = new BinaryFormatter();
+ bf.Serialize(fs, MainWindow.appData);
+ }
+ }
+ }
+
///
diff --git a/ViewModel/AppConfig.cs b/ViewModel/AppConfig.cs
index 07e1f56..ab94dfd 100644
--- a/ViewModel/AppConfig.cs
+++ b/ViewModel/AppConfig.cs
@@ -93,8 +93,21 @@ namespace GeekDesk.ViewModel
private SearchType searchType;
+ private string sysBakTime; //系统自动备份时间
+
#region GetSet
+ public string SysBakTime
+ {
+ get
+ {
+ return sysBakTime;
+ }
+ set
+ {
+ sysBakTime = value;
+ }
+ }
public SearchType SearchType
{
@@ -898,7 +911,7 @@ namespace GeekDesk.ViewModel
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
#endregion
diff --git a/ViewModel/AppData.cs b/ViewModel/AppData.cs
index 1a96533..da488e3 100644
--- a/ViewModel/AppData.cs
+++ b/ViewModel/AppData.cs
@@ -1,4 +1,5 @@
-using GeekDesk.Util;
+using GeekDesk.Constant;
+using GeekDesk.Util;
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
@@ -88,7 +89,7 @@ namespace GeekDesk.ViewModel
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
}
diff --git a/ViewModel/GradientBGParam.cs b/ViewModel/GradientBGParam.cs
index afaa258..5370b98 100644
--- a/ViewModel/GradientBGParam.cs
+++ b/ViewModel/GradientBGParam.cs
@@ -1,4 +1,5 @@
-using GeekDesk.Util;
+using GeekDesk.Constant;
+using GeekDesk.Util;
using System;
using System.ComponentModel;
@@ -69,7 +70,7 @@ namespace GeekDesk.ViewModel
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
}
diff --git a/ViewModel/IconInfo.cs b/ViewModel/IconInfo.cs
index 2ae550a..b5b8aba 100644
--- a/ViewModel/IconInfo.cs
+++ b/ViewModel/IconInfo.cs
@@ -303,7 +303,7 @@ namespace GeekDesk.ViewModel
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
diff --git a/ViewModel/MenuInfo.cs b/ViewModel/MenuInfo.cs
index 328ab62..72a16b9 100644
--- a/ViewModel/MenuInfo.cs
+++ b/ViewModel/MenuInfo.cs
@@ -134,7 +134,7 @@ namespace GeekDesk.ViewModel
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
}
}
diff --git a/ViewModel/ToDoInfo.cs b/ViewModel/ToDoInfo.cs
index b0dd8d2..c19842b 100644
--- a/ViewModel/ToDoInfo.cs
+++ b/ViewModel/ToDoInfo.cs
@@ -133,7 +133,7 @@ namespace GeekDesk.ViewModel
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
- CommonCode.SaveAppData(MainWindow.appData);
+ CommonCode.SaveAppData(MainWindow.appData, Constants.DATA_FILE_PATH);
}
}
}