diff --git a/Mk0.Software.ImageSorter/App.config b/Mk0.Software.ImageSorter/App.config
index 452f2d1..12e7981 100644
--- a/Mk0.Software.ImageSorter/App.config
+++ b/Mk0.Software.ImageSorter/App.config
@@ -37,27 +37,33 @@
-
-
-
-
-
-
-
- True
-
-
- 0
-
-
- 0
-
-
- 0
-
-
- 0
-
-
+
+
+
+
+
+
+
+ True
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
+ False
+
+
+ 0
+
+
diff --git a/Mk0.Software.ImageSorter/Main.Designer.cs b/Mk0.Software.ImageSorter/Main.Designer.cs
index c4b2a3b..9a4c723 100644
--- a/Mk0.Software.ImageSorter/Main.Designer.cs
+++ b/Mk0.Software.ImageSorter/Main.Designer.cs
@@ -53,8 +53,6 @@
this.buttonRotate270 = new System.Windows.Forms.Button();
this.buttonMirrorHorizontal = new System.Windows.Forms.Button();
this.buttonMirrorVertikal = new System.Windows.Forms.Button();
- this.buttonZoom100 = new System.Windows.Forms.Button();
- this.buttonZoomAuto = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.labelNoImages = new System.Windows.Forms.Label();
this.labelZoom = new System.Windows.Forms.Label();
@@ -64,6 +62,8 @@
this.label1 = new System.Windows.Forms.Label();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
+ this.comboBoxZoom = new System.Windows.Forms.ComboBox();
+ this.label3 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
this.contextMenuStrip.SuspendLayout();
this.groupBox1.SuspendLayout();
@@ -333,30 +333,6 @@
this.buttonMirrorVertikal.UseVisualStyleBackColor = true;
this.buttonMirrorVertikal.Click += new System.EventHandler(this.ImageMirror);
//
- // buttonZoom100
- //
- this.buttonZoom100.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.buttonZoom100.Location = new System.Drawing.Point(712, 538);
- this.buttonZoom100.Name = "buttonZoom100";
- this.buttonZoom100.Size = new System.Drawing.Size(100, 23);
- this.buttonZoom100.TabIndex = 11;
- this.buttonZoom100.Tag = "100";
- this.buttonZoom100.Text = "Zoom 100%";
- this.buttonZoom100.UseVisualStyleBackColor = true;
- this.buttonZoom100.Click += new System.EventHandler(this.Zoom);
- //
- // buttonZoomAuto
- //
- this.buttonZoomAuto.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.buttonZoomAuto.Location = new System.Drawing.Point(818, 538);
- this.buttonZoomAuto.Name = "buttonZoomAuto";
- this.buttonZoomAuto.Size = new System.Drawing.Size(100, 23);
- this.buttonZoomAuto.TabIndex = 12;
- this.buttonZoomAuto.Tag = "auto";
- this.buttonZoomAuto.Text = "Zoom Auto";
- this.buttonZoomAuto.UseVisualStyleBackColor = true;
- this.buttonZoomAuto.Click += new System.EventHandler(this.Zoom);
- //
// panel1
//
this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
@@ -449,16 +425,41 @@
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
+ // comboBoxZoom
+ //
+ this.comboBoxZoom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.comboBoxZoom.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
+ this.comboBoxZoom.FormattingEnabled = true;
+ this.comboBoxZoom.Items.AddRange(new object[] {
+ "Auto",
+ "Vollbild",
+ "Original"});
+ this.comboBoxZoom.Location = new System.Drawing.Point(799, 538);
+ this.comboBoxZoom.Name = "comboBoxZoom";
+ this.comboBoxZoom.Size = new System.Drawing.Size(121, 21);
+ this.comboBoxZoom.TabIndex = 14;
+ this.comboBoxZoom.SelectedIndexChanged += new System.EventHandler(this.ComboBoxZoom_SelectedIndexChanged);
+ //
+ // label3
+ //
+ this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(759, 543);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(34, 13);
+ this.label3.TabIndex = 15;
+ this.label3.Text = "Zoom";
+ //
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(967, 566);
+ this.Controls.Add(this.label3);
+ this.Controls.Add(this.comboBoxZoom);
this.Controls.Add(this.panel3);
this.Controls.Add(this.labelZoom);
this.Controls.Add(this.panel1);
- this.Controls.Add(this.buttonZoomAuto);
- this.Controls.Add(this.buttonZoom100);
this.Controls.Add(this.buttonMirrorVertikal);
this.Controls.Add(this.buttonMirrorHorizontal);
this.Controls.Add(this.buttonRotate270);
@@ -473,8 +474,9 @@
this.Name = "Main";
this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Show;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "Image Sorter v1.27 | © 2015-2019 by manuelkamper.com";
+ this.Text = "Image Sorter v1.29 | © 2015-2019 by manuelkamper.com";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing);
+ this.Load += new System.EventHandler(this.Main_Load);
this.Shown += new System.EventHandler(this.Main_Shown);
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Main_KeyDown);
this.Resize += new System.EventHandler(this.Main_ResizeEnd);
@@ -513,8 +515,6 @@
private System.Windows.Forms.Button buttonRotate270;
private System.Windows.Forms.Button buttonMirrorHorizontal;
private System.Windows.Forms.Button buttonMirrorVertikal;
- private System.Windows.Forms.Button buttonZoom100;
- private System.Windows.Forms.Button buttonZoomAuto;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Label labelZoom;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip;
@@ -532,6 +532,8 @@
private System.Windows.Forms.Button buttonQuellPfad;
private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog;
private System.Windows.Forms.Label labelZielPath;
+ private System.Windows.Forms.ComboBox comboBoxZoom;
+ private System.Windows.Forms.Label label3;
}
}
diff --git a/Mk0.Software.ImageSorter/Main.cs b/Mk0.Software.ImageSorter/Main.cs
index ea23175..0e013e6 100644
--- a/Mk0.Software.ImageSorter/Main.cs
+++ b/Mk0.Software.ImageSorter/Main.cs
@@ -39,34 +39,49 @@ namespace Mk0.Software.ImageSorter
private Thread folderThread;
private bool threadIsRunning = false;
private Banner banner;
- private string zoomType = "auto";
+ //private string zoomType = "auto";
private string startuppath;
private string startupimage;
+ public string[] Args;
- public Main(string startuppath)
+ public Main()
{
InitializeComponent();
banner = new Banner(components, panel3, pictureBox1, pictureBox2, label1, label2);
pictureBox.Cursor = grabCursor;
DoubleBuffered = true;
- if (!string.IsNullOrEmpty(startuppath) && File.Exists(startuppath))
- {
- this.startuppath = Path.GetDirectoryName(startuppath);
- startupimage = Path.GetFileName(startuppath);
- }
SetDefaultPath();
+ comboBoxZoom.SelectedIndex = Properties.Settings.Default.zoom;
+ }
- if (Properties.Settings.Default.fileAssociation)
+ private void Main_Load(object sender, EventArgs e)
+ {
+ if (Args != null)
{
- ExtractAssocIcons();
+ ProcessParameters(null, Args);
+ Args = null;
+ }
+ }
- FileAssociation.Check("Image_Sorter", ".jpg", Application.StartupPath, "JPG Bild", $@"{Application.StartupPath}\AssocIcons\jpg.ico");
- FileAssociation.Check("Image_Sorter", ".png", Application.StartupPath, "PNG Bild", $@"{Application.StartupPath}\AssocIcons\png.ico");
- FileAssociation.Check("Image_Sorter", ".gif", Application.StartupPath, "GIF Bild", $@"{Application.StartupPath}\AssocIcons\gif.ico");
- FileAssociation.Check("Image_Sorter", ".jpeg", Application.StartupPath, "JPEG Bild", $@"{Application.StartupPath}\AssocIcons\jpeg.ico");
- FileAssociation.Check("Image_Sorter", ".bmp", Application.StartupPath, "BMP Bild", $@"{Application.StartupPath}\AssocIcons\bmp.ico");
- FileAssociation.Check("Image_Sorter", ".tif", Application.StartupPath, "TIF Bild", $@"{Application.StartupPath}\AssocIcons\tif.ico");
- FileAssociation.Check("Image_Sorter", ".tiff", Application.StartupPath, "TIFF Bild", $@"{Application.StartupPath}\AssocIcons\tiff.ico");
+ public delegate void ProcessParametersDelegate(object sender, string[] args);
+ public void ProcessParameters(object sender, string[] args)
+ {
+ if (args != null && args.Length != 0)
+ {
+ if (!string.IsNullOrEmpty(args[0]) && File.Exists(args[0]))
+ {
+ startuppath = Path.GetDirectoryName(args[0]);
+ startupimage = Path.GetFileName(args[0]);
+ if (!string.IsNullOrEmpty(startuppath) && File.Exists(startuppath))
+ {
+ startuppath = Path.GetDirectoryName(startuppath);
+ startupimage = Path.GetFileName(startuppath);
+ }
+ SetDefaultPath();
+ SearchImages();
+ CountPicsInPath();
+ LoadPicture(GetImageIndex(Path.Combine(startuppath, startupimage)));
+ }
}
}
@@ -440,8 +455,7 @@ namespace Mk0.Software.ImageSorter
buttonRotate180.Enabled = enabled;
buttonRotate270.Enabled = enabled;
buttonRotate90.Enabled = enabled;
- buttonZoom100.Enabled = enabled;
- buttonZoomAuto.Enabled = enabled;
+ comboBoxZoom.Enabled = enabled;
buttonJumpOver.Enabled = enabled;
labelNoImages.Visible = !enabled;
}
@@ -711,37 +725,48 @@ namespace Mk0.Software.ImageSorter
}
///
- /// Zoom-Optionen für Buttons
+ /// Zoom-Optionen
///
///
///
- private void Zoom(object sender, EventArgs e)
+ private void Zoom()
{
- Button btn = (Button)sender;
- string zoom = btn.Tag.ToString();
+ string zoom = comboBoxZoom.SelectedItem.ToString();
- if (zoom == "100")
+ if (zoom == "Original")
{
- zoomType = "100";
- buttonZoom100.Font = new Font(buttonZoom100.Font, FontStyle.Bold);
- buttonZoomAuto.Font = new Font(buttonZoomAuto.Font, FontStyle.Regular);
pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox.Size = new Size(pictureBox.Image.Width, pictureBox.Image.Height);
if (pictureBox.Image.Width > panel1.Width) { pictureBox.Left = (panel1.Width / 2) - (pictureBox.Width / 2); } else { pictureBox.Left = (panel1.Width / 2) - (pictureBox.Image.Width / 2); }
if (pictureBox.Image.Height > panel1.Height) { pictureBox.Top = (panel1.Height / 2) - (pictureBox.Height / 2); } else { pictureBox.Top = (panel1.Height / 2) - (pictureBox.Image.Height / 2); }
moveable = true;
}
- else if (zoom == "auto")
+ else if (zoom == "Vollbild")
{
- zoomType = "auto";
- buttonZoom100.Font = new Font(buttonZoom100.Font, FontStyle.Regular);
- buttonZoomAuto.Font = new Font(buttonZoomAuto.Font, FontStyle.Bold);
pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
pictureBox.Size = new Size(panel1.Width, panel1.Height);
pictureBox.Top = 0;
pictureBox.Left = 0;
moveable = false;
}
+ else if (zoom == "Auto")
+ {
+ pictureBox.SizeMode = PictureBoxSizeMode.Zoom;
+ if(pictureBox.Image.Width>panel1.Width || pictureBox.Image.Height>panel1.Height)
+ {
+ pictureBox.Size = new Size(panel1.Width, panel1.Height);
+ pictureBox.Top = 0;
+ pictureBox.Left = 0;
+ moveable = false;
+ }
+ else
+ {
+ pictureBox.Size = new Size(pictureBox.Image.Width, pictureBox.Image.Height);
+ if (pictureBox.Image.Width > panel1.Width) { pictureBox.Left = (panel1.Width / 2) - (pictureBox.Width / 2); } else { pictureBox.Left = (panel1.Width / 2) - (pictureBox.Image.Width / 2); }
+ if (pictureBox.Image.Height > panel1.Height) { pictureBox.Top = (panel1.Height / 2) - (pictureBox.Height / 2); } else { pictureBox.Top = (panel1.Height / 2) - (pictureBox.Image.Height / 2); }
+ moveable = true;
+ }
+ }
else
{
return;
@@ -894,11 +919,7 @@ namespace Mk0.Software.ImageSorter
///
private void PictureBox_LoadCompleted(object sender, AsyncCompletedEventArgs e)
{
- Button b = new Button
- {
- Tag = zoomType
- };
- Zoom(b, null);
+ Zoom();
}
///
@@ -1086,11 +1107,7 @@ namespace Mk0.Software.ImageSorter
{
try
{
- Button b = new Button
- {
- Tag = zoomType
- };
- Zoom(b, null);
+ Zoom();
}
catch (Exception)
{
@@ -1179,5 +1196,21 @@ namespace Mk0.Software.ImageSorter
LoadPicture(0);
ResetUndo();
}
+
+ ///
+ /// Zoom-Combobox geändert
+ ///
+ ///
+ ///
+ private void ComboBoxZoom_SelectedIndexChanged(object sender, EventArgs e)
+ {
+ Properties.Settings.Default.zoom = comboBoxZoom.SelectedIndex;
+ Properties.Settings.Default.Save();
+
+ if(pictureBox.Image != null)
+ {
+ Zoom();
+ }
+ }
}
}
\ No newline at end of file
diff --git a/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj b/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj
index 962b988..164f760 100644
--- a/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj
+++ b/Mk0.Software.ImageSorter/Mk0.Software.ImageSorter.csproj
@@ -95,10 +95,6 @@
..\Mk0.Tools.Randomization.dll
False
-
- ..\Mk0.Tools.SingleInstance.dll
- False
-
@@ -176,7 +172,6 @@
-
diff --git a/Mk0.Software.ImageSorter/Program.cs b/Mk0.Software.ImageSorter/Program.cs
index 52d4a44..b47ab2b 100644
--- a/Mk0.Software.ImageSorter/Program.cs
+++ b/Mk0.Software.ImageSorter/Program.cs
@@ -1,6 +1,5 @@
using System;
-using System.Windows.Forms;
-using Mk0.Tools.SingleInstance;
+using Microsoft.VisualBasic.ApplicationServices;
namespace Mk0.Software.ImageSorter
{
@@ -12,9 +11,39 @@ namespace Mk0.Software.ImageSorter
[STAThread]
static void Main(string[] args)
{
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- SingleApplication.Run(args.Length == 0 ? new Main(string.Empty) : new Main(args[0]), Mk0.Software.ImageSorter.Properties.Settings.Default.singleInstance);
+ App myApp = new App();
+ myApp.Run(args);
+ }
+
+ class App : WindowsFormsApplicationBase
+ {
+ public App()
+ {
+ IsSingleInstance = Properties.Settings.Default.singleInstance;
+ EnableVisualStyles = true;
+
+ ShutdownStyle = ShutdownMode.AfterMainFormCloses;
+ StartupNextInstance += new StartupNextInstanceEventHandler(SIApp_StartupNextInstance);
+ }
+
+ protected override void OnCreateMainForm()
+ {
+ MainForm = new Main();
+ ((Main)MainForm).Args = new string[CommandLineArgs.Count];
+ CommandLineArgs.CopyTo(((Main)MainForm).Args, 0);
+ }
+
+ protected void SIApp_StartupNextInstance(object sender, StartupNextInstanceEventArgs eventArgs)
+ {
+ string[] args = new string[eventArgs.CommandLine.Count];
+ eventArgs.CommandLine.CopyTo(args, 0);
+
+ object[] parameters = new object[2];
+ parameters[0] = MainForm;
+ parameters[1] = args;
+
+ MainForm.Invoke(new Main.ProcessParametersDelegate(((Main)MainForm).ProcessParameters), parameters);
+ }
}
}
}
diff --git a/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs b/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs
index c25d0c0..0802e78 100644
--- a/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs
+++ b/Mk0.Software.ImageSorter/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.27.*")]
+[assembly: AssemblyVersion("1.29.*")]
//[assembly: AssemblyFileVersion("1.6.0.0")]
diff --git a/Mk0.Software.ImageSorter/Properties/Settings.Designer.cs b/Mk0.Software.ImageSorter/Properties/Settings.Designer.cs
index a70960b..4ed8230 100644
--- a/Mk0.Software.ImageSorter/Properties/Settings.Designer.cs
+++ b/Mk0.Software.ImageSorter/Properties/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace Mk0.Software.ImageSorter.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.9.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -118,5 +118,17 @@ namespace Mk0.Software.ImageSorter.Properties {
this["fileAssociation"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("0")]
+ public int zoom {
+ get {
+ return ((int)(this["zoom"]));
+ }
+ set {
+ this["zoom"] = value;
+ }
+ }
}
}
diff --git a/Mk0.Software.ImageSorter/Properties/Settings.settings b/Mk0.Software.ImageSorter/Properties/Settings.settings
index ddd057c..941d310 100644
--- a/Mk0.Software.ImageSorter/Properties/Settings.settings
+++ b/Mk0.Software.ImageSorter/Properties/Settings.settings
@@ -1,5 +1,5 @@
-
+
@@ -26,5 +26,8 @@
False
+
+ 0
+
\ No newline at end of file
diff --git a/Mk0.Software.ImageSorter/dll/Mk0.Tools.SingleInstance.dll b/Mk0.Software.ImageSorter/dll/Mk0.Tools.SingleInstance.dll
deleted file mode 100644
index 490cde1..0000000
Binary files a/Mk0.Software.ImageSorter/dll/Mk0.Tools.SingleInstance.dll and /dev/null differ