This commit is contained in:
Manuel Kamper 2019-04-05 10:55:53 +02:00
commit b775d4e193
9 changed files with 186 additions and 106 deletions

View File

@ -37,27 +37,33 @@
</setting>
</Image_Sorter.Properties.Settings>
<Mk0.Software.ImageSorter.Properties.Settings>
<setting name="targetPath" serializeAs="String">
<value />
</setting>
<setting name="lastPath" serializeAs="String">
<value />
</setting>
<setting name="singleInstance" serializeAs="String">
<value>True</value>
</setting>
<setting name="lastWidth" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastHeight" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastTop" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastLeft" serializeAs="String">
<value>0</value>
</setting>
</Mk0.Software.ImageSorter.Properties.Settings>
<setting name="targetPath" serializeAs="String">
<value />
</setting>
<setting name="lastPath" serializeAs="String">
<value />
</setting>
<setting name="singleInstance" serializeAs="String">
<value>True</value>
</setting>
<setting name="lastWidth" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastHeight" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastTop" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastLeft" serializeAs="String">
<value>0</value>
</setting>
<setting name="fileAssociation" serializeAs="String">
<value>False</value>
</setting>
<setting name="zoom" serializeAs="String">
<value>0</value>
</setting>
</Mk0.Software.ImageSorter.Properties.Settings>
</userSettings>
</configuration>

View File

@ -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;
}
}

View File

@ -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
}
/// <summary>
/// Zoom-Optionen für Buttons
/// Zoom-Optionen
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// <param name="e"></param>
private void PictureBox_LoadCompleted(object sender, AsyncCompletedEventArgs e)
{
Button b = new Button
{
Tag = zoomType
};
Zoom(b, null);
Zoom();
}
/// <summary>
@ -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();
}
/// <summary>
/// Zoom-Combobox geändert
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ComboBoxZoom_SelectedIndexChanged(object sender, EventArgs e)
{
Properties.Settings.Default.zoom = comboBoxZoom.SelectedIndex;
Properties.Settings.Default.Save();
if(pictureBox.Image != null)
{
Zoom();
}
}
}
}

View File

@ -95,10 +95,6 @@
<HintPath>..\Mk0.Tools.Randomization.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="Mk0.Tools.SingleInstance">
<HintPath>..\Mk0.Tools.SingleInstance.dll</HintPath>
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="Microsoft.CSharp" />
@ -176,7 +172,6 @@
<Content Include="dll\Mk0.Tools.ImageCropper.dll" />
<Content Include="dll\Mk0.Tools.Images.dll" />
<Content Include="dll\Mk0.Tools.Randomization.dll" />
<Content Include="dll\Mk0.Tools.SingleInstance.dll" />
<Content Include="Resources\bmp.ico" />
<Content Include="Resources\gif.ico" />
<Content Include="image.ico" />

View File

@ -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);
}
}
}
}

View File

@ -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")]

View File

@ -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;
}
}
}
}

View File

@ -1,5 +1,5 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Image_Sorter.Properties" GeneratedClassName="Settings">
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Mk0.Software.ImageSorter.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="targetPath" Type="System.String" Scope="User">
@ -26,5 +26,8 @@
<Setting Name="fileAssociation" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="zoom" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings>
</SettingsFile>