Settings.xaml.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. using System.Windows;
  2. using System.Windows.Input;
  3. using FastColoredTextBoxNS;
  4. namespace MPE
  5. {
  6. public partial class Settings : Window
  7. {
  8. readonly FastColoredTextBox field;
  9. readonly System.Windows.Controls.Grid grid;
  10. readonly Properties.Settings param = Properties.Settings.Default;
  11. public Settings(ref System.Windows.Controls.Grid grid, FastColoredTextBox field)
  12. {
  13. InitializeComponent();
  14. this.grid = grid;
  15. this.field = field;
  16. field.SizeChanged += Field_SizeChanged;
  17. popupMenuTimer.Text = param.popupMenuTimer.ToString();
  18. if (param.taskFoler.Length > 0) taskForldLB.ToolTip = taskForldLB.Content = param.taskFoler;
  19. else
  20. {
  21. taskForldLB.ToolTip = taskForldLB.Content = "Папка не указана!";
  22. taskForldLB.Foreground = System.Windows.Media.Brushes.Red;
  23. }
  24. mapSize.Content = (int)codeMapSize.Value + "px";
  25. errorTimer.Text = param.errorTimer.ToString();
  26. if (!param.isCodeMap)
  27. {
  28. showMSG.Visibility = Visibility.Visible;
  29. mapSize.Visibility = codeMapSize.Visibility = Visibility.Hidden;
  30. }
  31. isErrorTimer.IsChecked = param.isErrorTimer;
  32. codeMapSize.ValueChanged += CodeMapSize_ValueChanged;
  33. }
  34. void Field_SizeChanged(object sender, System.EventArgs e)
  35. {
  36. if (param.isCodeMap)
  37. {
  38. showMSG.Visibility = Visibility.Hidden;
  39. mapSize.Visibility = codeMapSize.Visibility = Visibility.Visible;
  40. }
  41. else
  42. {
  43. showMSG.Visibility = Visibility.Visible;
  44. mapSize.Visibility = codeMapSize.Visibility = Visibility.Hidden;
  45. }
  46. }
  47. void UpdatesCB_Click(object sender, RoutedEventArgs e) { param.isCheckUpdates = !param.isCheckUpdates; updatesCB.IsChecked = !updatesCB.IsChecked; param.Save(); }
  48. void FontChange_Click(object sender, RoutedEventArgs e)
  49. {
  50. using (System.Windows.Forms.FontDialog fontDialog = new System.Windows.Forms.FontDialog())
  51. {
  52. if (fontDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  53. { param.fieldFont = field.Font = fontDialog.Font; param.Save(); }
  54. }
  55. }
  56. void CodeMapSize_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
  57. {
  58. if (param.isCodeMap)
  59. {
  60. codeMapSize.ToolTip = "Ширина: " + codeMapSize.Value;
  61. param.codeMapSize = (int)codeMapSize.Value;
  62. mapSize.Content = (int)codeMapSize.Value + "px";
  63. grid.ColumnDefinitions[2].Width = new GridLength(codeMapSize.Value);
  64. param.Save();
  65. }
  66. }
  67. void SetTaskFolder_Click(object sender, RoutedEventArgs e)
  68. {
  69. using (System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog())
  70. if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  71. {
  72. taskForldLB.ToolTip = taskForldLB.Content = fbd.SelectedPath;
  73. taskForldLB.Foreground = System.Windows.Media.Brushes.White;
  74. param.taskFoler = fbd.SelectedPath; param.Save();
  75. }
  76. }
  77. void MakeBackUpCB_Click(object sender, RoutedEventArgs e) { param.isMakeBackUp = makeBackUpCB.IsChecked == true; param.Save(); }
  78. void OpenLastFileCB_Click(object sender, RoutedEventArgs e) { param.isOpenLastFile = openLastFileCB.IsChecked == true; param.Save(); }
  79. void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) => DragMove();
  80. void SaveWindowSizeCB_Click(object sender, RoutedEventArgs e) { param.isSaveWindowSize = saveWindowSizeCB.IsChecked == true; param.Save(); }
  81. void ForumTopic_Click(object sender, RoutedEventArgs e) => System.Diagnostics.Process.Start("https://djoser-blog.ru/forum/index.php?/topic/7174-redaktor-shablonov-minipostereditor/");
  82. void GitHubSource_Click(object sender, RoutedEventArgs e) => System.Diagnostics.Process.Start("https://github.com/Medoo48/miniPosterEditor");
  83. void GitHubUpdaterSource_Click(object sender, RoutedEventArgs e) => System.Diagnostics.Process.Start("https://github.com/Medoo48/MPE_updater/");
  84. void ErrorTimer_LostFocus(object sender, RoutedEventArgs e)
  85. {
  86. if (!int.TryParse((sender as System.Windows.Controls.TextBox).Text, out int timer) || timer <= 0) return;
  87. DataHelper.setErrorTimer(param.errorTimer = timer);
  88. }
  89. void CheckUpdates_Click(object sender, RoutedEventArgs e) => Updater.FindNewVersion(true);
  90. void ExecTimer_Click(object sender, RoutedEventArgs e)
  91. {
  92. if (int.TryParse(popupMenuTimer.Text, out int ms) && ms > 0)
  93. {
  94. AutoCompleete.setTimer(ms);
  95. param.popupMenuTimer = ms;
  96. param.Save();
  97. }
  98. else MessageBox.Show("Число должно быть целым, положительным и больше нуля");
  99. }
  100. void isErrorTimer_Click(object sender, RoutedEventArgs e) { param.isErrorTimer = isErrorTimer.IsChecked == true; param.Save(); }
  101. }
  102. }