new gui functionalities (fading etc)

This commit is contained in:
Manuel Kamper 2019-08-07 15:55:48 +02:00
parent b8b1794c17
commit f8eb06baa3
10 changed files with 258 additions and 41 deletions

View File

@ -67,6 +67,12 @@
<setting name="showInfo" serializeAs="String">
<value>True</value>
</setting>
<setting name="fading" serializeAs="String">
<value>True</value>
</setting>
<setting name="fadingSpeed" serializeAs="String">
<value>3</value>
</setting>
</Mk0.Software.ImageSorter.Properties.Settings>
</userSettings>
</configuration>

View File

@ -66,6 +66,7 @@
this.folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
this.comboBoxZoom = new System.Windows.Forms.ComboBox();
this.label3 = new System.Windows.Forms.Label();
this.buttonLastImage = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBox)).BeginInit();
this.contextMenuStrip.SuspendLayout();
this.groupBox1.SuspendLayout();
@ -206,6 +207,7 @@
//
this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox2.Controls.Add(this.buttonLastImage);
this.groupBox2.Controls.Add(this.buttonInfo);
this.groupBox2.Controls.Add(this.buttonQuellPfad);
this.groupBox2.Controls.Add(this.buttonSettings);
@ -387,8 +389,8 @@
this.labelNoImages.Name = "labelNoImages";
this.labelNoImages.Size = new System.Drawing.Size(682, 526);
this.labelNoImages.TabIndex = 1;
this.labelNoImages.Text = "Keine Bilder im aktuellen Pfad vorhanden.\r\nBitte den Pfad ändern, um Bilder zu so" +
"rtieren.\r\nErlaubte Dateiformate sind (JPG, PNG, GIF, BMP, TIF).";
this.labelNoImages.Text = "Keine Bilder im aktuellen Pfad vorhanden.\r\nBitte den Quellpfad ändern, um Bilder " +
"zu sortieren.\r\nErlaubte Dateiformate sind (JPG, PNG, GIF, BMP, TIF).";
this.labelNoImages.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// labelZoom
@ -479,6 +481,19 @@
this.label3.TabIndex = 15;
this.label3.Text = "Zoom";
//
// buttonLastImage
//
this.buttonLastImage.Enabled = false;
this.buttonLastImage.Font = new System.Drawing.Font("Wingdings", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.buttonLastImage.Location = new System.Drawing.Point(105, 16);
this.buttonLastImage.Name = "buttonLastImage";
this.buttonLastImage.Size = new System.Drawing.Size(23, 23);
this.buttonLastImage.TabIndex = 9;
this.buttonLastImage.Text = "I";
this.buttonLastImage.UseVisualStyleBackColor = true;
this.buttonLastImage.MouseDown += new System.Windows.Forms.MouseEventHandler(this.ButtonLastImage_MouseDown);
this.buttonLastImage.MouseUp += new System.Windows.Forms.MouseEventHandler(this.ButtonLastImage_MouseUp);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
@ -502,7 +517,7 @@
this.MinimumSize = new System.Drawing.Size(983, 605);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Image Sorter v1.34 | © 2015-2019 by manuelkamper.com";
this.Text = "Image Sorter v1.37 | © 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);
@ -563,5 +578,6 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button buttonJumpBack;
private System.Windows.Forms.Button buttonInfo;
private System.Windows.Forms.Button buttonLastImage;
}
}

View File

@ -42,7 +42,7 @@ namespace Mk0.Software.ImageSorter
private string startuppath;
private string startupimage;
public string[] Args;
private System.Timers.Timer t = new System.Timers.Timer(700);
private System.Timers.Timer t1 = new System.Timers.Timer(1200);
public Main()
{
@ -53,7 +53,7 @@ namespace Mk0.Software.ImageSorter
SetDefaultPath();
comboBoxZoom.SelectedIndex = Properties.Settings.Default.zoom;
//todo file assoc prüfen
//todo file assoc prüfen und in einstellungen richtig setzen
}
private void Main_Load(object sender, EventArgs e)
@ -198,6 +198,13 @@ namespace Mk0.Software.ImageSorter
ReshowDelay = 500
};
t6.SetToolTip(buttonInfo, "Informationen ein-/ausblenden");
ToolTip t7 = new ToolTip
{
AutoPopDelay = 5000,
InitialDelay = 1000,
ReshowDelay = 500
};
t7.SetToolTip(buttonLastImage, "Letztes Bild anzeigen");
}
/// <summary>
@ -331,6 +338,9 @@ namespace Mk0.Software.ImageSorter
button.Text = Path.GetFileNameWithoutExtension(folder).ToString() + " (" + count + ")";
button.Size = new Size(225, 30);
button.Click += new EventHandler(MovePicture);
System.Timers.Timer tx = new System.Timers.Timer(35);
tx.Elapsed += new System.Timers.ElapsedEventHandler((sender1, e1) => ButtonFade(button, tx));
button.Tag = tx;
buttons.Add(button);
top += button.Height + 2;
}
@ -381,14 +391,17 @@ namespace Mk0.Software.ImageSorter
}
else
{
Directory.Delete($@"{Application.StartupPath}\AssocIcons", true);
FileAssociation.Remove("Image_Sorter_JPG", ".jpg", Application.ExecutablePath, "JPG Bild", $@"{Application.StartupPath}\AssocIcons\jpg.ico");
FileAssociation.Remove("Image_Sorter_PNG", ".png", Application.ExecutablePath, "PNG Bild", $@"{Application.StartupPath}\AssocIcons\png.ico");
FileAssociation.Remove("Image_Sorter_GIF", ".gif", Application.ExecutablePath, "GIF Bild", $@"{Application.StartupPath}\AssocIcons\gif.ico");
FileAssociation.Remove("Image_Sorter_JPEG", ".jpeg", Application.ExecutablePath, "JPEG Bild", $@"{Application.StartupPath}\AssocIcons\jpeg.ico");
FileAssociation.Remove("Image_Sorter_BMP", ".bmp", Application.ExecutablePath, "BMP Bild", $@"{Application.StartupPath}\AssocIcons\bmp.ico");
FileAssociation.Remove("Image_Sorter_TIF", ".tif", Application.ExecutablePath, "TIF Bild", $@"{Application.StartupPath}\AssocIcons\tif.ico");
FileAssociation.Remove("Image_Sorter_TIFF", ".tiff", Application.ExecutablePath, "TIFF Bild", $@"{Application.StartupPath}\AssocIcons\tiff.ico");
if(Directory.Exists($@"{Application.StartupPath}\AssocIcons"))
{
Directory.Delete($@"{Application.StartupPath}\AssocIcons", true);
FileAssociation.Remove("Image_Sorter_JPG", ".jpg", Application.ExecutablePath, "JPG Bild", $@"{Application.StartupPath}\AssocIcons\jpg.ico");
FileAssociation.Remove("Image_Sorter_PNG", ".png", Application.ExecutablePath, "PNG Bild", $@"{Application.StartupPath}\AssocIcons\png.ico");
FileAssociation.Remove("Image_Sorter_GIF", ".gif", Application.ExecutablePath, "GIF Bild", $@"{Application.StartupPath}\AssocIcons\gif.ico");
FileAssociation.Remove("Image_Sorter_JPEG", ".jpeg", Application.ExecutablePath, "JPEG Bild", $@"{Application.StartupPath}\AssocIcons\jpeg.ico");
FileAssociation.Remove("Image_Sorter_BMP", ".bmp", Application.ExecutablePath, "BMP Bild", $@"{Application.StartupPath}\AssocIcons\bmp.ico");
FileAssociation.Remove("Image_Sorter_TIF", ".tif", Application.ExecutablePath, "TIF Bild", $@"{Application.StartupPath}\AssocIcons\tif.ico");
FileAssociation.Remove("Image_Sorter_TIFF", ".tiff", Application.ExecutablePath, "TIFF Bild", $@"{Application.StartupPath}\AssocIcons\tiff.ico");
}
}
CheckSubfolders();
@ -639,11 +652,16 @@ namespace Mk0.Software.ImageSorter
CountPicsInPath();
LoadPicture(imageIndex);
CheckUndo();
btn.ForeColor = Color.MediumSeaGreen;
btn.Font = new Font(btn.Font, FontStyle.Bold);
t.Elapsed += new System.Timers.ElapsedEventHandler((sender1, e1) => ButtonBlink(sender, e, btn));
t.Enabled = true;
if(Properties.Settings.Default.fading)
{
btn.BackColor = Color.LightSalmon;
btn.ForeColor = Color.MediumSeaGreen;
btn.Font = new Font(btn.Font, FontStyle.Bold);
System.Timers.Timer t = new System.Timers.Timer(700);
t.Elapsed += new System.Timers.ElapsedEventHandler((sender1, e1) => ButtonBlink(sender, e, btn, t));
t.Start();
}
}
/// <summary>
@ -652,16 +670,47 @@ namespace Mk0.Software.ImageSorter
/// <param name="sender"></param>
/// <param name="e"></param>
/// <param name="btn"></param>
private void ButtonBlink(object sender, EventArgs e, Button btn)
private void ButtonBlink(object sender, EventArgs e, Button btn, System.Timers.Timer t)
{
btn.BeginInvoke(new MethodInvoker(() =>
{
System.Timers.Timer tx = btn.Tag as System.Timers.Timer;
if (tx.Enabled)
{
tx.Stop();
btn.BackColor = Color.LightSalmon;
}
btn.ForeColor = SystemColors.ControlText;
btn.Font = new Font(btn.Font, FontStyle.Regular);
tx.Start();
}));
t.Stop();
}
/// <summary>
/// Hintergrundfarbe des Buttons langsam nach Transparent blenden
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
/// <param name="btn"></param>
private void ButtonFade(Button btn, System.Timers.Timer tx)
{
btn.BeginInvoke(new MethodInvoker(() =>
{
int speed = Properties.Settings.Default.fadingSpeed * (Properties.Settings.Default.fadingSpeed / 3) + 1;
int alpha = btn.BackColor.A;
if (alpha - speed >= 0)
{
btn.BackColor = Color.FromArgb(btn.BackColor.A - speed, btn.BackColor.R, btn.BackColor.G, btn.BackColor.B);
}
else
{
btn.BackColor = Color.Transparent;
tx.Stop();
}
}));
}
/// <summary>
/// Macht die letzte Aktion rückgängig
/// </summary>
@ -1272,7 +1321,7 @@ namespace Mk0.Software.ImageSorter
private void ButtonJumpBack_Click(object sender, MouseEventArgs e)
{
CountPicsInPath();
LoadPicture(imageIndex + 1);
LoadPicture(imageIndex - 1);
CheckUndo();
}
@ -1310,5 +1359,15 @@ namespace Mk0.Software.ImageSorter
groupBox2.Height = groupBox2.Height - 87;
}
}
private void ButtonLastImage_MouseDown(object sender, MouseEventArgs e)
{
//todo vorheriges Bild anzeigen
}
private void ButtonLastImage_MouseUp(object sender, MouseEventArgs e)
{
//todo vorheriges Bild ausblenden
}
}
}

View File

@ -33,7 +33,7 @@
<PublisherName>manuelkamper.com</PublisherName>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.25.0.0</ApplicationVersion>
<ApplicationVersion>1.37.0.0</ApplicationVersion>
<UseApplicationTrust>true</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut>
<ExcludeDeploymentUrl>true</ExcludeDeploymentUrl>

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.34.*")]
[assembly: AssemblyVersion("1.37.*")]
//[assembly: AssemblyFileVersion("1.6.0.0")]

View File

@ -142,5 +142,29 @@ namespace Mk0.Software.ImageSorter.Properties {
this["showInfo"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool fading {
get {
return ((bool)(this["fading"]));
}
set {
this["fading"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("3")]
public int fadingSpeed {
get {
return ((int)(this["fadingSpeed"]));
}
set {
this["fadingSpeed"] = value;
}
}
}
}

View File

@ -32,5 +32,11 @@
<Setting Name="showInfo" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="fading" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="fadingSpeed" Type="System.Int32" Scope="User">
<Value Profile="(Default)">3</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@ -42,10 +42,19 @@
this.tabPage3 = new System.Windows.Forms.TabPage();
this.checkBoxFileAssociation = new System.Windows.Forms.CheckBox();
this.label4 = new System.Windows.Forms.Label();
this.tabPage4 = new System.Windows.Forms.TabPage();
this.label8 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.trackBarFadingSpeed = new System.Windows.Forms.TrackBar();
this.checkBoxFading = new System.Windows.Forms.CheckBox();
this.label5 = new System.Windows.Forms.Label();
this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout();
this.tabPage3.SuspendLayout();
this.tabPage4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarFadingSpeed)).BeginInit();
this.SuspendLayout();
//
// checkBoxSingleInstance
@ -97,6 +106,7 @@
this.tabControl1.Controls.Add(this.tabPage1);
this.tabControl1.Controls.Add(this.tabPage2);
this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Controls.Add(this.tabPage4);
this.tabControl1.Location = new System.Drawing.Point(12, 12);
this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0;
@ -117,10 +127,9 @@
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(6, 3);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(489, 39);
this.label2.Size = new System.Drawing.Size(492, 48);
this.label2.TabIndex = 0;
this.label2.Text = resources.GetString("label2.Text");
//
@ -140,10 +149,9 @@
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(6, 3);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(474, 39);
this.label3.Size = new System.Drawing.Size(489, 39);
this.label3.TabIndex = 0;
this.label3.Text = resources.GetString("label3.Text");
//
@ -171,12 +179,92 @@
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(5, 3);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(473, 39);
this.label4.Size = new System.Drawing.Size(490, 39);
this.label4.TabIndex = 0;
this.label4.Text = resources.GetString("label4.Text");
this.label4.Text = "Wenn sie die Dateizuordnung aktivieren, werden Bildtypen mit ImageSorter verbunde" +
"n. Sie können dann Bilder mittels Doppelklick bzw. rechter Maustaste \"Öffnen mit" +
"...\" mit dem ImageSorter direkt öffnen.";
//
// tabPage4
//
this.tabPage4.Controls.Add(this.label8);
this.tabPage4.Controls.Add(this.label7);
this.tabPage4.Controls.Add(this.label6);
this.tabPage4.Controls.Add(this.trackBarFadingSpeed);
this.tabPage4.Controls.Add(this.checkBoxFading);
this.tabPage4.Controls.Add(this.label5);
this.tabPage4.Location = new System.Drawing.Point(4, 22);
this.tabPage4.Name = "tabPage4";
this.tabPage4.Padding = new System.Windows.Forms.Padding(3);
this.tabPage4.Size = new System.Drawing.Size(498, 107);
this.tabPage4.TabIndex = 3;
this.tabPage4.Text = "Fading";
this.tabPage4.UseVisualStyleBackColor = true;
//
// label8
//
this.label8.AutoSize = true;
this.label8.Enabled = false;
this.label8.Location = new System.Drawing.Point(114, 88);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(50, 13);
this.label8.TabIndex = 5;
this.label8.Text = "Langsam";
//
// label7
//
this.label7.AutoSize = true;
this.label7.Enabled = false;
this.label7.Location = new System.Drawing.Point(450, 88);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(42, 13);
this.label7.TabIndex = 4;
this.label7.Text = "Schnell";
//
// label6
//
this.label6.AutoSize = true;
this.label6.Enabled = false;
this.label6.Location = new System.Drawing.Point(249, 41);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(120, 13);
this.label6.TabIndex = 3;
this.label6.Text = "Fading-Geschwindigkeit";
//
// trackBarFadingSpeed
//
this.trackBarFadingSpeed.Enabled = false;
this.trackBarFadingSpeed.LargeChange = 3;
this.trackBarFadingSpeed.Location = new System.Drawing.Point(170, 56);
this.trackBarFadingSpeed.Minimum = 1;
this.trackBarFadingSpeed.Name = "trackBarFadingSpeed";
this.trackBarFadingSpeed.Size = new System.Drawing.Size(274, 45);
this.trackBarFadingSpeed.TabIndex = 2;
this.trackBarFadingSpeed.Value = 1;
this.trackBarFadingSpeed.Scroll += new System.EventHandler(this.TrackBarFadingSpeed_Scroll);
//
// checkBoxFading
//
this.checkBoxFading.AutoSize = true;
this.checkBoxFading.Location = new System.Drawing.Point(9, 40);
this.checkBoxFading.Name = "checkBoxFading";
this.checkBoxFading.Size = new System.Drawing.Size(107, 17);
this.checkBoxFading.TabIndex = 1;
this.checkBoxFading.Text = "Fading aktivieren";
this.checkBoxFading.UseVisualStyleBackColor = true;
this.checkBoxFading.CheckedChanged += new System.EventHandler(this.CheckBoxFading_CheckedChanged);
//
// label5
//
this.label5.Location = new System.Drawing.Point(6, 3);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(486, 34);
this.label5.TabIndex = 0;
this.label5.Text = "Mit Fading wird eine farbliche markierung von zuletzt gedrückten Ziel-Buttons akt" +
"iviert. Die Geschwindigkeit regelt, wie schnell diese Markierung wieder verblass" +
"t.";
//
// Settings
//
@ -200,6 +288,9 @@
this.tabPage2.PerformLayout();
this.tabPage3.ResumeLayout(false);
this.tabPage3.PerformLayout();
this.tabPage4.ResumeLayout(false);
this.tabPage4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarFadingSpeed)).EndInit();
this.ResumeLayout(false);
}
@ -219,5 +310,12 @@
private System.Windows.Forms.Label label3;
private System.Windows.Forms.CheckBox checkBoxFileAssociation;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TabPage tabPage4;
private System.Windows.Forms.TrackBar trackBarFadingSpeed;
private System.Windows.Forms.CheckBox checkBoxFading;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label6;
}
}

View File

@ -24,6 +24,8 @@ namespace Mk0.Software.ImageSorter
}
checkBoxSingleInstance.Checked = Properties.Settings.Default.singleInstance;
checkBoxFileAssociation.Checked = Properties.Settings.Default.fileAssociation;
checkBoxFading.Checked = Properties.Settings.Default.fading;
trackBarFadingSpeed.Value = Properties.Settings.Default.fadingSpeed;
}
private void ButtonChangeTargetPath_Click(object sender, EventArgs e)
@ -48,5 +50,20 @@ namespace Mk0.Software.ImageSorter
Properties.Settings.Default.fileAssociation = checkBoxFileAssociation.Checked;
Properties.Settings.Default.Save();
}
private void CheckBoxFading_CheckedChanged(object sender, EventArgs e)
{
Properties.Settings.Default.fading = checkBoxFading.Checked;
trackBarFadingSpeed.Enabled = checkBoxFading.Checked;
label6.Enabled = checkBoxFading.Checked;
label7.Enabled = checkBoxFading.Checked;
label8.Enabled = checkBoxFading.Checked;
Properties.Settings.Default.Save();
}
private void TrackBarFadingSpeed_Scroll(object sender, EventArgs e)
{
Properties.Settings.Default.fadingSpeed = trackBarFadingSpeed.Value;
}
}
}

View File

@ -120,19 +120,10 @@
<metadata name="folderBrowserDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="label3.Text" xml:space="preserve">
<value>Der Zielpfad legt fest, wohin die Bilder verschoben werden sollen. Im Zielpfad sollten Unterordner
vorhanden sein, welche dann im ImageSorter als Ziel zum Verschieben verfügbar sind. Der Zielpfad
wird beim nächsten Start von ImageSorter wieder automatisch ausgewählt.</value>
</data>
<data name="label2.Text" xml:space="preserve">
<value>Mit der Option Einzelinstanz legen sie fest, dass der ImageSorter nur ein Mal geöffnet sein kann. Wenn
sie weitere Bilder öffnen, öffnen sich diese dann im selben Fenster. Wenn diese Option deaktiviert ist,
öffnen sich jedes Bild in einem eigenen Fenster.</value>
<value>Mit der Option Einzelinstanz legen sie fest, dass der ImageSorter nur ein Mal geöffnet sein kann. Wenn sie weitere Bilder öffnen, öffnen sich diese dann im selben Fenster. Wenn diese Option deaktiviert ist, öffnen sich jedes Bild in einem eigenen Fenster.</value>
</data>
<data name="label4.Text" xml:space="preserve">
<value>Wenn sie die Dateizuordnung aktivieren, werden Bildtypen mit ImageSorter verbunden. Sie können
dann Bilder mittels Doppelklick bzw. rechter Maustaste "Öffnen mit..." mit dem ImageSorter direkt
öffnen.</value>
<data name="label3.Text" xml:space="preserve">
<value>Der Zielpfad legt fest, wohin die Bilder verschoben werden sollen. Im Zielpfad sollten Unterordner vorhanden sein, welche dann im ImageSorter als Ziel zum Verschieben verfügbar sind. Der Zielpfad wird beim nächsten Start von ImageSorter wieder automatisch ausgewählt.</value>
</data>
</root>