From d0d06f9880a1c7cc828fa9e185ba5d1271381766 Mon Sep 17 00:00:00 2001 From: Jonatan Nilsson Date: Mon, 13 Apr 2020 03:53:39 +0000 Subject: [PATCH] Fixed many tiny bugs with the process manager (stopping, starting, closing, etc.) Added so it always remembers the current queue. Updated UI to a more dark mode UI. --- .gitignore | 1 + ProgramQueuer/App.xaml | 14 +- ProgramQueuer/App.xaml.cs | 3 +- ProgramQueuer/MainWindow.xaml | 101 +- ProgramQueuer/MainWindow.xaml.cs | 65 +- ProgramQueuer/Monotone.Brushes.xaml | 196 + ProgramQueuer/Monotone.Colors.xaml | 22 + ProgramQueuer/Monotone.xaml | 3657 +++++++++++++++++ ProgramQueuer/ProgramQueuer.csproj | 86 +- ProgramQueuer/Properties/AssemblyInfo.cs | 1 + .../Properties/Resources.Designer.cs | 7 +- ProgramQueuer/Properties/Resources.resx | 8 +- ProgramQueuer/Properties/Settings.Designer.cs | 30 +- ProgramQueuer/Properties/Settings.settings | 8 +- ProgramQueuer/Queuer/EntryManager.cs | 124 +- ProgramQueuer/Queuer/ProgramEntry.cs | 19 + ProgramQueuer/Resources/Help.png | Bin 3403 -> 0 bytes ProgramQueuer/Resources/Program.ico | Bin 1078 -> 0 bytes ProgramQueuer/Resources/accept.png | Bin 984 -> 0 bytes ProgramQueuer/Resources/add.png | Bin 940 -> 0 bytes ProgramQueuer/Resources/application.png | Bin 554 -> 0 bytes ProgramQueuer/Resources/fixedsys.ttf | Bin 0 -> 568324 bytes ProgramQueuer/Resources/fontawesome-solid.otf | Bin 0 -> 580620 bytes ProgramQueuer/Resources/fontawesome.otf | Bin 0 -> 97016 bytes ProgramQueuer/Resources/force_run.png | Bin 373 -> 0 bytes ProgramQueuer/Resources/play.png | Bin 923 -> 0 bytes ProgramQueuer/Resources/remove.png | Bin 1004 -> 0 bytes ProgramQueuer/Resources/stop.png | Bin 913 -> 0 bytes ProgramQueuer/Resources/trash-icon.png | Bin 824 -> 0 bytes ProgramQueuer/Resources/warning.png | Bin 713 -> 0 bytes ProgramQueuer/Resources/window.png | Bin 307 -> 0 bytes ProgramQueuer/app.config | 10 +- ProgramQueuer/logo.ico | Bin 0 -> 118667 bytes ProgramQueuer/program.ico | Bin 226780 -> 0 bytes 34 files changed, 4228 insertions(+), 124 deletions(-) create mode 100644 ProgramQueuer/Monotone.Brushes.xaml create mode 100644 ProgramQueuer/Monotone.Colors.xaml create mode 100644 ProgramQueuer/Monotone.xaml delete mode 100755 ProgramQueuer/Resources/Help.png delete mode 100755 ProgramQueuer/Resources/Program.ico delete mode 100755 ProgramQueuer/Resources/accept.png delete mode 100755 ProgramQueuer/Resources/add.png delete mode 100755 ProgramQueuer/Resources/application.png create mode 100644 ProgramQueuer/Resources/fixedsys.ttf create mode 100644 ProgramQueuer/Resources/fontawesome-solid.otf create mode 100644 ProgramQueuer/Resources/fontawesome.otf delete mode 100755 ProgramQueuer/Resources/force_run.png delete mode 100755 ProgramQueuer/Resources/play.png delete mode 100755 ProgramQueuer/Resources/remove.png delete mode 100755 ProgramQueuer/Resources/stop.png delete mode 100755 ProgramQueuer/Resources/trash-icon.png delete mode 100755 ProgramQueuer/Resources/warning.png delete mode 100755 ProgramQueuer/Resources/window.png create mode 100644 ProgramQueuer/logo.ico delete mode 100755 ProgramQueuer/program.ico diff --git a/.gitignore b/.gitignore index bdc3535..8bcf350 100644 --- a/.gitignore +++ b/.gitignore @@ -106,3 +106,4 @@ Generated_Code #added for RIA/Silverlight projects _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML +.vs diff --git a/ProgramQueuer/App.xaml b/ProgramQueuer/App.xaml index 1aeb5f9..cdc1767 100755 --- a/ProgramQueuer/App.xaml +++ b/ProgramQueuer/App.xaml @@ -1,8 +1,20 @@  - + + /Resources/fontawesome.otf#Font Awesome 5 Free + /Resources/fontawesome-solid.otf#Font Awesome 5 Free + /Resources/fixedsys.ttf#Fixedsys Excelsior + + + + + + + + diff --git a/ProgramQueuer/App.xaml.cs b/ProgramQueuer/App.xaml.cs index 29aa2a3..4b1cfec 100755 --- a/ProgramQueuer/App.xaml.cs +++ b/ProgramQueuer/App.xaml.cs @@ -4,6 +4,7 @@ using System.Configuration; using System.Data; using System.Linq; using System.Windows; +using System.Windows.Controls; namespace ProgramQueuer { @@ -12,5 +13,5 @@ namespace ProgramQueuer /// public partial class App : Application { - } + } } diff --git a/ProgramQueuer/MainWindow.xaml b/ProgramQueuer/MainWindow.xaml index 0b2a6ce..a73ead6 100755 --- a/ProgramQueuer/MainWindow.xaml +++ b/ProgramQueuer/MainWindow.xaml @@ -9,7 +9,7 @@ DragEnter="ListView_DragEnter" Drop="ListView_Drop" Loaded="Window_Loaded" Width="{Binding Path=width, Source={x:Static properties:Settings.Default}, Mode=TwoWay}" - Height="{Binding Path=height, Source={x:Static properties:Settings.Default}, Mode=TwoWay}" Icon="/ProgramQueuer;component/program.ico" StateChanged="Window_StateChanged"> + Height="{Binding Path=height, Source={x:Static properties:Settings.Default}, Mode=TwoWay}" Icon="logo.ico" StateChanged="Window_StateChanged"> @@ -18,11 +18,14 @@ - + + + + - + @@ -30,20 +33,9 @@ - + - - - - - - - - - - - @@ -51,75 +43,74 @@ - + - - - - + + - + - + + + + + + + + + + + + - - - - - + + + + + - - + + - - - + + + + + + + + + + + + diff --git a/ProgramQueuer/MainWindow.xaml.cs b/ProgramQueuer/MainWindow.xaml.cs index 226bbb0..ad294aa 100755 --- a/ProgramQueuer/MainWindow.xaml.cs +++ b/ProgramQueuer/MainWindow.xaml.cs @@ -18,7 +18,6 @@ using System.Windows.Threading; using ProgramQueuer.Queuer; using WPF.JoshSmith.ServiceProviders.UI; using Microsoft.Win32; - using NotifyIcon = System.Windows.Forms.NotifyIcon; namespace ProgramQueuer @@ -45,6 +44,7 @@ namespace ProgramQueuer this._icon.MouseClick += new System.Windows.Forms.MouseEventHandler(_icon_MouseClick); this.DataContext = _manager; this.listPrograms.ItemsSource = _manager.QueueList; + mainGrid.RowDefinitions[2].Height = new GridLength(ProgramQueuer.Properties.Settings.Default.split_height); } void _icon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e) @@ -62,17 +62,27 @@ namespace ProgramQueuer private void Window_Loaded(object sender, RoutedEventArgs e) { _manager.RedirectOutput = ProgramQueuer.Properties.Settings.Default.redirectOutput; + _manager.Load(); new ListViewDragDropManager(this.listPrograms); } private void GridSplitter_DragCompleted(object sender, System.Windows.Controls.Primitives.DragCompletedEventArgs e) { - ProgramQueuer.Properties.Settings.Default.split_height = textboxStatus.Height; + ProgramQueuer.Properties.Settings.Default.split_height = mainGrid.RowDefinitions[2].ActualHeight; } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { - if (_manager.Working) + bool working = false; + for (int i = 0; i < _manager.QueueList.Count; i++) + { + if (_manager.QueueList[i].Working) + { + working = true; + break; + } + } + if (working) if (MessageBox.Show("Are you sure you want to stop current worker and batch and exit application?", "You sure you want to exit?", MessageBoxButton.YesNo) == MessageBoxResult.No) { e.Cancel = true; @@ -83,7 +93,8 @@ namespace ProgramQueuer this._icon.Visible = false; ProgramQueuer.Properties.Settings.Default.redirectOutput = _manager.RedirectOutput; ProgramQueuer.Properties.Settings.Default.lastPath = _openFile.InitialDirectory; - ProgramQueuer.Properties.Settings.Default.Save(); + _manager.Save(); + // ProgramQueuer.Properties.Settings.Default.Save(); } private void ButtonExit_Click(object sender, RoutedEventArgs e) @@ -119,8 +130,9 @@ namespace ProgramQueuer string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false); foreach (string file in files) { - _manager.QueueList.Add(new ProgramEntry { Name = file , Status = "Queued"}); + _manager.AddToQueue(new ProgramEntry { Name = file , Status = "Queued"}); _openFile.InitialDirectory = new FileInfo(file).DirectoryName; + _manager.Save(); } } } @@ -136,14 +148,14 @@ namespace ProgramQueuer { if (MessageBox.Show("Are you sure you want to kill this process and continue with the next one available?", "Stop current process?", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { - ((sender as Control).DataContext as ProgramEntry).Process.Kill(); + _manager.ForceStopEntry((sender as Control).DataContext as ProgramEntry); } } else { if (MessageBox.Show("Are you sure you want to kill this process?", "Stop selected process?", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { - ((sender as Control).DataContext as ProgramEntry).Process.Kill(); + _manager.ForceStopEntry((sender as Control).DataContext as ProgramEntry); } } } @@ -160,7 +172,7 @@ namespace ProgramQueuer { foreach (string file in _openFile.FileNames) { - _manager.QueueList.Add(new ProgramEntry { Name = file, Status = "Queued" }); + _manager.AddToQueue(new ProgramEntry { Name = file, Status = "Queued" }); _openFile.InitialDirectory = new FileInfo(file).DirectoryName; } } @@ -180,7 +192,7 @@ namespace ProgramQueuer private void ButtonHelp_Click(object sender, RoutedEventArgs e) { - popupHelp.IsOpen = true; + // popupHelp.IsOpen = true; } private void buttonStartCurrent_Click(object sender, RoutedEventArgs e) @@ -204,14 +216,20 @@ namespace ProgramQueuer private void buttonClearFinished_Click(object sender, RoutedEventArgs e) { + bool changed = false; for (int i = 0; i < _manager.QueueList.Count; i++) { if (_manager.QueueList[i].Finished == true) { + changed = true; _manager.QueueList.Remove(_manager.QueueList[i]); i--; } } + if (changed) + { + _manager.Save(); + } popupEmpty.IsOpen = false; } @@ -228,8 +246,37 @@ namespace ProgramQueuer if (MessageBox.Show("Are you sure you want to clear list?", "Clear list?", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { _manager.QueueList.Clear(); + _manager.Save(); } popupEmpty.IsOpen = false; } + + private void expanderStatus_Expanded(object sender, RoutedEventArgs e) + { + mainGrid.RowDefinitions[2].Height = new GridLength(ProgramQueuer.Properties.Settings.Default.split_height); + gridSplitter.Visibility = Visibility.Visible; + } + + private void expanderStatus_Collapsed(object sender, RoutedEventArgs e) + { + mainGrid.RowDefinitions[2].Height = new GridLength(0, GridUnitType.Auto); + gridSplitter.Visibility = Visibility.Collapsed; + } + + private void buttonResetCurrent_Click(object sender, RoutedEventArgs e) + { + var entry = (sender as Control).DataContext as ProgramEntry; + entry.Finished = false; + entry.Status = "Queued"; + _manager.Save(); + } + + private void buttonMarkFinishedCurrent_Click(object sender, RoutedEventArgs e) + { + var entry = (sender as Control).DataContext as ProgramEntry; + entry.Finished = true; + entry.Status = "Marked finished"; + _manager.Save(); + } } } diff --git a/ProgramQueuer/Monotone.Brushes.xaml b/ProgramQueuer/Monotone.Brushes.xaml new file mode 100644 index 0000000..923f6f8 --- /dev/null +++ b/ProgramQueuer/Monotone.Brushes.xaml @@ -0,0 +1,196 @@ + + 1 + 1 + 1 + 1 + 1 + + + + + + + + + + + + + + + + 1 + 0 + 0 + 1 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 10 + -11 + -10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + M 0,5.1 L 1.7,5.2 L 3.4,7.1 L 8,0.4 L 9.2,0 L 3.3,10.8 Z + M 0,4 L 3.5,0 L 7,4 Z + M 0,0 L 3.5,4 L 7,0 Z + M 0,0 L 4,3.5 L 0,7 Z + + + + + + + + + + + + + + + + + + + + + M -5,-10.5 L 5,-10.5 L 5,10.5 L -5,10.5 Z + M 4.5,-8.5 L -4.5,-8.5 L -4.5,4.5 L -0.5,8.5 L 0.5,8.5 L 4.5,4.5 Z + M 4.5,-7.5 A 1 1 0 0 0 3.5,-8.5 L -3.5,-8.5 A 1 1 0 0 0 -4.5,-7.5 L -4.5,4.5 L -0.5,8.5 L 0.5,8.5 L 4.5,4.5 Z + M 3.5,-7.5 L -3.5,-7.5 L -3.5,4.5 L 0,8 L 3.5,4.5 Z + + + + + M -5,-9.5 L 5,-9.5 L 5,9.5 L -5,9.5 Z + M -4,-8.5 L 4,-8.5 L 4,8.5 L -4,8.5 Z + + + + + + + \ No newline at end of file diff --git a/ProgramQueuer/Monotone.Colors.xaml b/ProgramQueuer/Monotone.Colors.xaml new file mode 100644 index 0000000..e5f45d2 --- /dev/null +++ b/ProgramQueuer/Monotone.Colors.xaml @@ -0,0 +1,22 @@ + + #1f1f1f + #353535 + #333 + #606060 + #3300FFFF + #0b6767 + #999 + #555 + #BBB + #222 + #1f1f1f + #1f1f1f + #ffffff + Cyan + DarkCyan + #33008B8B + #ff8888 + #aa4444 + \ No newline at end of file diff --git a/ProgramQueuer/Monotone.xaml b/ProgramQueuer/Monotone.xaml new file mode 100644 index 0000000..338469d --- /dev/null +++ b/ProgramQueuer/Monotone.xaml @@ -0,0 +1,3657 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ProgramQueuer/ProgramQueuer.csproj b/ProgramQueuer/ProgramQueuer.csproj index 99e77ed..2d218d7 100755 --- a/ProgramQueuer/ProgramQueuer.csproj +++ b/ProgramQueuer/ProgramQueuer.csproj @@ -1,5 +1,5 @@  - + Debug x86 @@ -10,10 +10,27 @@ Properties ProgramQueuer ProgramQueuer - v3.5 + v4.6 512 {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 + + + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + false + true x86 @@ -24,6 +41,7 @@ DEBUG;TRACE prompt 4 + false x86 @@ -33,15 +51,19 @@ TRACE prompt 4 + false - program.ico + logo.ico + + + @@ -77,6 +99,18 @@ MainWindow.xaml Code + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + @@ -102,42 +136,26 @@ Settings.Designer.cs + + + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + False + Microsoft .NET Framework 4.6 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + +