This commit is contained in:
Manuel Kamper 2024-08-16 22:06:32 +02:00
parent 41268f0600
commit 6e97e3b8fb
21 changed files with 779 additions and 13 deletions

View File

@ -58,6 +58,21 @@
<setting name="preview" serializeAs="String"> <setting name="preview" serializeAs="String">
<value>False</value> <value>False</value>
</setting> </setting>
<setting name="inpaintUrl" serializeAs="String">
<value />
</setting>
<setting name="lastWidthInpaint" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastHeightInpaint" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastTopInpaint" serializeAs="String">
<value>0</value>
</setting>
<setting name="lastLeftInpaint" serializeAs="String">
<value>0</value>
</setting>
</Mk0.Software.ImageSorter.Properties.Settings> </Mk0.Software.ImageSorter.Properties.Settings>
</userSettings> </userSettings>
</configuration> </configuration>

View File

@ -0,0 +1,50 @@
using System;
using System.IO;
using CefSharp;
namespace Mk0.Software.ImageSorter
{
class DownloadHandler :IDownloadHandler
{
public event EventHandler<DownloadItem> OnBeforeDownloadFired;
public event EventHandler<DownloadItem> OnDownloadUpdatedFired;
public bool CanDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, string url, string requestMethod)
{
return true;
}
public void OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
}
public void OnDownloadUpdated(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IDownloadItemCallback callback)
{
OnDownloadUpdatedFired?.Invoke(this, downloadItem);
}
bool IDownloadHandler.OnBeforeDownload(IWebBrowser chromiumWebBrowser, IBrowser browser, DownloadItem downloadItem, IBeforeDownloadCallback callback)
{
OnBeforeDownloadFired?.Invoke(this, downloadItem);
if (!callback.IsDisposed)
{
using (callback)
{
string DownloadsDirectoryPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "inpaint-tmp");
callback.Continue(
Path.Combine(
DownloadsDirectoryPath,
downloadItem.SuggestedFileName
),
showDialog: false
);
}
}
return true;
}
}
}

View File

@ -0,0 +1,91 @@
namespace Mk0.Software.ImageSorter
{
partial class Inpaint
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.buttonPaste = new System.Windows.Forms.Button();
this.buttonReload = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// buttonPaste
//
this.buttonPaste.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.buttonPaste.BackColor = System.Drawing.Color.DodgerBlue;
this.buttonPaste.BackgroundImage = global::Mk0.Software.ImageSorter.Properties.Resources.inpaint_reloadfile;
this.buttonPaste.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.buttonPaste.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonPaste.Location = new System.Drawing.Point(657, 12);
this.buttonPaste.Name = "buttonPaste";
this.buttonPaste.Size = new System.Drawing.Size(130, 39);
this.buttonPaste.TabIndex = 1;
this.buttonPaste.TabStop = false;
this.buttonPaste.UseVisualStyleBackColor = false;
this.buttonPaste.Click += new System.EventHandler(this.ButtonPaste_Click);
//
// buttonReload
//
this.buttonReload.BackColor = System.Drawing.Color.DodgerBlue;
this.buttonReload.BackgroundImage = global::Mk0.Software.ImageSorter.Properties.Resources.inpaint_reload;
this.buttonReload.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
this.buttonReload.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonReload.Location = new System.Drawing.Point(12, 12);
this.buttonReload.Name = "buttonReload";
this.buttonReload.Size = new System.Drawing.Size(130, 39);
this.buttonReload.TabIndex = 2;
this.buttonReload.TabStop = false;
this.buttonReload.UseVisualStyleBackColor = false;
this.buttonReload.Click += new System.EventHandler(this.ButtonReload_Click);
//
// Inpaint
//
this.AllowDrop = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 561);
this.Controls.Add(this.buttonReload);
this.Controls.Add(this.buttonPaste);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(800, 600);
this.Name = "Inpaint";
this.ShowIcon = false;
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Image Sorter | Inpaint";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Inpaint_FormClosing);
this.Shown += new System.EventHandler(this.Inpaint_Shown);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button buttonPaste;
private System.Windows.Forms.Button buttonReload;
}
}

View File

@ -0,0 +1,127 @@
using CefSharp.WinForms;
using System;
using System.Windows.Forms;
using System.Collections.Specialized;
using CefSharp;
using System.IO;
namespace Mk0.Software.ImageSorter
{
public partial class Inpaint : Form
{
private readonly string url;
private readonly string file;
public ChromiumWebBrowser browser;
public Inpaint(string url, string file)
{
InitializeComponent();
this.url = url;
this.file = file;
InitializeChromium();
}
private void InitializeChromium()
{
browser = new ChromiumWebBrowser(url)
{
DownloadHandler = new DownloadHandler(),
MenuHandler = new MenuHandler(),
TabIndex = 0
};
this.Controls.Add(browser);
browser.Dock = DockStyle.Fill;
}
private void Inpaint_FormClosing(object sender, FormClosingEventArgs e)
{
if (!File.Exists(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "inpaint-tmp", Path.GetFileNameWithoutExtension(file) + "_cleanup" + Path.GetExtension(file))))
{
DialogResult res = MessageBox.Show("Sie haben kein bearbeitetes Bild heruntergeladen. Klicken sie dazu auf den Downloadbutton am unteren Fensterrand.\n\nWollen sie die bearbeitete Datei doch noch herunterladen (Ja)?\n\nFalls sie ihre Änderungen verwerfen wollen, Klicken sie (Nein).", "Inpaint Frage", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
switch (res)
{
case DialogResult.Yes:
{
e.Cancel = true;
break;
}
case DialogResult.No:
{
Properties.Settings.Default.lastWidthInpaint = Width;
Properties.Settings.Default.lastHeightInpaint = Height;
Properties.Settings.Default.lastTopInpaint = Top;
Properties.Settings.Default.lastLeftInpaint = Left;
Properties.Settings.Default.Save();
break;
}
}
}
}
private void Inpaint_Shown(object sender, EventArgs e)
{
if (Properties.Settings.Default.lastHeightInpaint >= MinimumSize.Height)
{
Height = Properties.Settings.Default.lastHeightInpaint;
}
if (Properties.Settings.Default.lastWidthInpaint >= MinimumSize.Width)
{
Width = Properties.Settings.Default.lastWidthInpaint;
}
if (Properties.Settings.Default.lastTopInpaint <= Screen.PrimaryScreen.Bounds.Height && Properties.Settings.Default.lastTopInpaint >= 0)
{
Top = Properties.Settings.Default.lastTopInpaint;
}
if (Properties.Settings.Default.lastLeftInpaint <= Screen.PrimaryScreen.Bounds.Width && Properties.Settings.Default.lastLeftInpaint >= 0)
{
Left = Properties.Settings.Default.lastLeftInpaint;
}
CopyPasteImage();
ToolTip t1 = new ToolTip
{
AutoPopDelay = 5000,
InitialDelay = 1000,
ReshowDelay = 500
};
t1.SetToolTip(buttonPaste, "Bild erneut in Inpaint laden/Zurücksetzen (F5)");
ToolTip t2 = new ToolTip
{
AutoPopDelay = 5000,
InitialDelay = 1000,
ReshowDelay = 500
};
t2.SetToolTip(buttonReload, "Inpaint neu laden (Strg + F5)");
}
private void CopyPasteImage()
{
System.Threading.Thread.Sleep(125);
StringCollection c = new StringCollection
{
file
};
Clipboard.SetFileDropList(c);
browser.Select();
browser.Focus();
SendKeys.Send("^{v}");
browser.Select();
browser.Focus();
SendKeys.Send("^{v}");
browser.Select();
browser.Focus();
SendKeys.Send("^{v}");
}
private void ButtonPaste_Click(object sender, EventArgs e)
{
CopyPasteImage();
}
private void ButtonReload_Click(object sender, EventArgs e)
{
browser.Reload();
CopyPasteImage();
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -87,6 +87,7 @@
this.panelPreview = new System.Windows.Forms.Panel(); this.panelPreview = new System.Windows.Forms.Panel();
this.buttonHeart = new System.Windows.Forms.Button(); this.buttonHeart = new System.Windows.Forms.Button();
this.buttonChristmas = new System.Windows.Forms.Button(); this.buttonChristmas = new System.Windows.Forms.Button();
this.buttonWebRemove = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxImage)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.pictureBoxImage)).BeginInit();
this.contextMenuStrip.SuspendLayout(); this.contextMenuStrip.SuspendLayout();
this.groupBoxInformationen.SuspendLayout(); this.groupBoxInformationen.SuspendLayout();
@ -844,11 +845,27 @@
this.buttonChristmas.Visible = false; this.buttonChristmas.Visible = false;
this.buttonChristmas.Click += new System.EventHandler(this.ButtonChristmas_Click); this.buttonChristmas.Click += new System.EventHandler(this.ButtonChristmas_Click);
// //
// buttonWebRemove
//
this.buttonWebRemove.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.buttonWebRemove.BackgroundImage = global::Mk0.Software.ImageSorter.Properties.Resources.inpaint_icon;
this.buttonWebRemove.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
this.buttonWebRemove.FlatAppearance.BorderColor = System.Drawing.Color.Silver;
this.buttonWebRemove.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.buttonWebRemove.Location = new System.Drawing.Point(239, 536);
this.buttonWebRemove.Name = "buttonWebRemove";
this.buttonWebRemove.Size = new System.Drawing.Size(23, 23);
this.buttonWebRemove.TabIndex = 23;
this.buttonWebRemove.Tag = "";
this.buttonWebRemove.UseVisualStyleBackColor = true;
this.buttonWebRemove.Click += new System.EventHandler(this.ButtonWebRemove_Click);
//
// Main // Main
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(967, 566); this.ClientSize = new System.Drawing.Size(967, 566);
this.Controls.Add(this.buttonWebRemove);
this.Controls.Add(this.groupBoxTransformation); this.Controls.Add(this.groupBoxTransformation);
this.Controls.Add(this.groupBoxRander); this.Controls.Add(this.groupBoxRander);
this.Controls.Add(this.buttonChristmas); this.Controls.Add(this.buttonChristmas);
@ -871,7 +888,7 @@
this.KeyPreview = true; this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(983, 605); this.MinimumSize = new System.Drawing.Size(983, 605);
this.Name = "Main"; this.Name = "Main";
this.Text = "Image Sorter v2.7 | © 2015-2023 by kmpr.at"; this.Text = "Image Sorter v2.8 | © 2015-2024 by kmpr.at";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing); this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing);
this.Load += new System.EventHandler(this.Main_Load); this.Load += new System.EventHandler(this.Main_Load);
this.Shown += new System.EventHandler(this.Main_Shown); this.Shown += new System.EventHandler(this.Main_Shown);
@ -957,5 +974,6 @@
private System.Windows.Forms.Button buttonRandAlle; private System.Windows.Forms.Button buttonRandAlle;
private System.Windows.Forms.Button buttonRandObenUnten; private System.Windows.Forms.Button buttonRandObenUnten;
private System.Windows.Forms.Button buttonRandLinksRechts; private System.Windows.Forms.Button buttonRandLinksRechts;
private System.Windows.Forms.Button buttonWebRemove;
} }
} }

View File

@ -17,6 +17,8 @@ using System.Threading;
using System.Windows.Forms; using System.Windows.Forms;
using Mk0.Software.OnlineUpdater; using Mk0.Software.OnlineUpdater;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Text.RegularExpressions;
using System.Net.Http;
namespace Mk0.Software.ImageSorter namespace Mk0.Software.ImageSorter
{ {
@ -381,6 +383,13 @@ namespace Mk0.Software.ImageSorter
ReshowDelay = 500 ReshowDelay = 500
}; };
t24.SetToolTip(buttonChristmas, "Frohe Weihnachten!"); t24.SetToolTip(buttonChristmas, "Frohe Weihnachten!");
ToolTip t25 = new ToolTip
{
AutoPopDelay = 5000,
InitialDelay = 1000,
ReshowDelay = 500
};
t25.SetToolTip(buttonWebRemove, "Objekte aus Bild entfernen (X)");
} }
/// <summary> /// <summary>
@ -1402,6 +1411,13 @@ namespace Mk0.Software.ImageSorter
Properties.Settings.Default.fullScreen = WindowState == FormWindowState.Maximized; Properties.Settings.Default.fullScreen = WindowState == FormWindowState.Maximized;
Properties.Settings.Default.preview = panelPreview.Visible; Properties.Settings.Default.preview = panelPreview.Visible;
Properties.Settings.Default.Save(); Properties.Settings.Default.Save();
try
{
Array.ForEach(Directory.GetFiles(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "inpaint-tmp")), File.Delete);
}
catch (Exception)
{
}
} }
/// <summary> /// <summary>
@ -1724,6 +1740,12 @@ namespace Mk0.Software.ImageSorter
buttonPreview.PerformClick(); buttonPreview.PerformClick();
e.Handled = true; e.Handled = true;
} }
if (e.KeyCode == Keys.X)
{
buttonWebRemove.PerformClick();
e.Handled = true;
}
} }
/// <summary> /// <summary>
@ -2174,5 +2196,65 @@ namespace Mk0.Software.ImageSorter
{ {
Process.Start("https://www.kmpr.at/christmas.php"); Process.Start("https://www.kmpr.at/christmas.php");
} }
/// <summary>
/// Öffnet IOPaint Webseite um Objekte aus Bildern entfernen zu können
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void ButtonWebRemove_Click(object sender, EventArgs e)
{
if (CheckInpaint())
{
Inpaint ip = new Inpaint(Properties.Settings.Default.inpaintUrl, pictureBoxImage.ImageLocation);
ip.ShowDialog();
string oldFileName = pictureBoxImage.ImageLocation;
string newFileName = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "inpaint-tmp", Path.GetFileNameWithoutExtension(pictureBoxImage.ImageLocation) + "_cleanup" + Path.GetExtension(pictureBoxImage.ImageLocation));
if (File.Exists(newFileName))
{
File.Delete(oldFileName);
File.Move(newFileName, oldFileName);
LoadPicture(imageIndex);
}
}
else
{
MessageBox.Show("Die URL zu IOPaint wurde nicht konfiguriert, oder ist falsch konfiguriert (geben sie diese mit http(s):// ein), oder IOPaint lieferte einen Fehler.\n\nPassen sie die URL in den Einstellungen im Register \"Inpaint\" an.", "Inpaint Konfigurationsfehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
/// <summary>
/// Prüft ob Inpaint URL korrekt ist und IOPaint läuft
/// </summary>
/// <returns></returns>
private bool CheckInpaint()
{
string Pattern = @"^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$";
Regex Rgx = new Regex(Pattern, RegexOptions.Compiled | RegexOptions.IgnoreCase);
if (Rgx.IsMatch(Properties.Settings.Default.inpaintUrl))
{
try
{
HttpClient client = new HttpClient
{
BaseAddress = new Uri(Properties.Settings.Default.inpaintUrl)
};
HttpResponseMessage response = client.GetAsync("api/v1/server-config").Result;
if (response.IsSuccessStatusCode)
{
var resp = response.Content.ReadAsStringAsync().Result;
if (resp.ToString().Contains("\"model_type\":\"inpaint\","))
{
return true;
}
}
}
catch (Exception)
{
return false;
}
}
return false;
}
} }
} }

View File

@ -0,0 +1,27 @@
using CefSharp;
namespace Mk0.Software.ImageSorter
{
internal class MenuHandler : IContextMenuHandler
{
public void OnBeforeContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
{
model.Clear();
}
public bool OnContextMenuCommand(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
{
return false;
}
public void OnContextMenuDismissed(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame)
{
}
public bool RunContextMenu(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback)
{
return false;
}
}
}

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.props')" />
<Import Project="..\packages\chromiumembeddedframework.runtime.win-x86.126.2.18\build\chromiumembeddedframework.runtime.win-x86.props" Condition="Exists('..\packages\chromiumembeddedframework.runtime.win-x86.126.2.18\build\chromiumembeddedframework.runtime.win-x86.props')" />
<Import Project="..\packages\chromiumembeddedframework.runtime.win-x64.126.2.18\build\chromiumembeddedframework.runtime.win-x64.props" Condition="Exists('..\packages\chromiumembeddedframework.runtime.win-x64.126.2.18\build\chromiumembeddedframework.runtime.win-x64.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup> <PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
@ -17,6 +20,8 @@
<SccAuxPath>Svn</SccAuxPath> <SccAuxPath>Svn</SccAuxPath>
<SccProvider>SubversionScc</SccProvider> <SccProvider>SubversionScc</SccProvider>
<TargetFrameworkProfile /> <TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<PublishUrl>publish\</PublishUrl> <PublishUrl>publish\</PublishUrl>
<Install>true</Install> <Install>true</Install>
<InstallFrom>Disk</InstallFrom> <InstallFrom>Disk</InstallFrom>
@ -33,7 +38,7 @@
<PublisherName>manuelkamper.com</PublisherName> <PublisherName>manuelkamper.com</PublisherName>
<OpenBrowserOnPublish>false</OpenBrowserOnPublish> <OpenBrowserOnPublish>false</OpenBrowserOnPublish>
<ApplicationRevision>0</ApplicationRevision> <ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>2.7.0.0</ApplicationVersion> <ApplicationVersion>2.8.0.0</ApplicationVersion>
<UseApplicationTrust>true</UseApplicationTrust> <UseApplicationTrust>true</UseApplicationTrust>
<CreateDesktopShortcut>true</CreateDesktopShortcut> <CreateDesktopShortcut>true</CreateDesktopShortcut>
<ExcludeDeploymentUrl>true</ExcludeDeploymentUrl> <ExcludeDeploymentUrl>true</ExcludeDeploymentUrl>
@ -52,12 +57,12 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType> <DebugType>none</DebugType>
<Optimize>true</Optimize> <Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath> <OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants> <DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport> <ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel> <WarningLevel>0</WarningLevel>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ApplicationIcon>image.ico</ApplicationIcon> <ApplicationIcon>image.ico</ApplicationIcon>
@ -75,6 +80,15 @@
<SignManifests>false</SignManifests> <SignManifests>false</SignManifests>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="CefSharp, Version=126.2.180.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>..\packages\CefSharp.Common.126.2.180\lib\net462\CefSharp.dll</HintPath>
</Reference>
<Reference Include="CefSharp.Core, Version=126.2.180.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>..\packages\CefSharp.Common.126.2.180\lib\net462\CefSharp.Core.dll</HintPath>
</Reference>
<Reference Include="CefSharp.WinForms, Version=126.2.180.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138, processorArchitecture=MSIL">
<HintPath>..\packages\CefSharp.WinForms.126.2.180\lib\net462\CefSharp.WinForms.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" /> <Reference Include="Microsoft.VisualBasic" />
<Reference Include="Mk0.GUI.Banner"> <Reference Include="Mk0.GUI.Banner">
<HintPath>..\..\Mk0.GUI.Banner\Mk0.GUI.Banner\bin\Release\Mk0.GUI.Banner.dll</HintPath> <HintPath>..\..\Mk0.GUI.Banner\Mk0.GUI.Banner\bin\Release\Mk0.GUI.Banner.dll</HintPath>
@ -100,6 +114,7 @@
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Deployment" /> <Reference Include="System.Deployment" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" /> <Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
@ -116,6 +131,7 @@
<Compile Include="Dateirenamer.Designer.cs"> <Compile Include="Dateirenamer.Designer.cs">
<DependentUpon>Dateirenamer.cs</DependentUpon> <DependentUpon>Dateirenamer.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="DownloadHandler.cs" />
<Compile Include="EXIF.cs"> <Compile Include="EXIF.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -123,12 +139,19 @@
<DependentUpon>EXIF.cs</DependentUpon> <DependentUpon>EXIF.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="FileAssociation.cs" /> <Compile Include="FileAssociation.cs" />
<Compile Include="Inpaint.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Inpaint.Designer.cs">
<DependentUpon>Inpaint.cs</DependentUpon>
</Compile>
<Compile Include="Main.cs"> <Compile Include="Main.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="Main.Designer.cs"> <Compile Include="Main.Designer.cs">
<DependentUpon>Main.cs</DependentUpon> <DependentUpon>Main.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="MenuHandler.cs" />
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Settings.cs"> <Compile Include="Settings.cs">
@ -152,6 +175,9 @@
<EmbeddedResource Include="EXIF.resx"> <EmbeddedResource Include="EXIF.resx">
<DependentUpon>EXIF.cs</DependentUpon> <DependentUpon>EXIF.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Inpaint.resx">
<DependentUpon>Inpaint.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Main.resx"> <EmbeddedResource Include="Main.resx">
<DependentUpon>Main.cs</DependentUpon> <DependentUpon>Main.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
@ -191,6 +217,9 @@
<None Include="Resources\border-2-leftright-icon.png" /> <None Include="Resources\border-2-leftright-icon.png" />
<None Include="Resources\border-2-all-icon.png" /> <None Include="Resources\border-2-all-icon.png" />
<Content Include="Resources\heic.ico" /> <Content Include="Resources\heic.ico" />
<None Include="Resources\inpaint-icon.png" />
<None Include="Resources\inpaint-reloadfile.png" />
<None Include="Resources\inpaint-reload.png" />
<Content Include="Resources\webp.ico" /> <Content Include="Resources\webp.ico" />
<None Include="Resources\transform-rotate-270-icon.png" /> <None Include="Resources\transform-rotate-270-icon.png" />
<None Include="Resources\transform-rotate-180-icon.png" /> <None Include="Resources\transform-rotate-180-icon.png" />
@ -295,6 +324,16 @@
</FileAssociation> </FileAssociation>
</ItemGroup> </ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Dieses Projekt verweist auf mindestens ein NuGet-Paket, das auf diesem Computer fehlt. Verwenden Sie die Wiederherstellung von NuGet-Paketen, um die fehlenden Dateien herunterzuladen. Weitere Informationen finden Sie unter "http://go.microsoft.com/fwlink/?LinkID=322105". Die fehlende Datei ist "{0}".</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\chromiumembeddedframework.runtime.win-x64.126.2.18\build\chromiumembeddedframework.runtime.win-x64.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\chromiumembeddedframework.runtime.win-x64.126.2.18\build\chromiumembeddedframework.runtime.win-x64.props'))" />
<Error Condition="!Exists('..\packages\chromiumembeddedframework.runtime.win-x86.126.2.18\build\chromiumembeddedframework.runtime.win-x86.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\chromiumembeddedframework.runtime.win-x86.126.2.18\build\chromiumembeddedframework.runtime.win-x86.props'))" />
<Error Condition="!Exists('..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.props'))" />
<Error Condition="!Exists('..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.targets'))" />
</Target>
<Import Project="..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.126.2.180\build\CefSharp.Common.targets')" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets. Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild"> <Target Name="BeforeBuild">

View File

@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("kmpr.at")] [assembly: AssemblyCompany("kmpr.at")]
[assembly: AssemblyProduct("ImageSorter")] [assembly: AssemblyProduct("ImageSorter")]
[assembly: AssemblyCopyright("Copyright © 2015-2023 by kmpr.at")] [assembly: AssemblyCopyright("Copyright © 2015-2024 by kmpr.at")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben: // übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.7.*")] [assembly: AssemblyVersion("2.8.*")]
//[assembly: AssemblyFileVersion("1.6.0.0")] //[assembly: AssemblyFileVersion("1.6.0.0")]

View File

@ -340,6 +340,36 @@ namespace Mk0.Software.ImageSorter.Properties {
} }
} }
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap inpaint_icon {
get {
object obj = ResourceManager.GetObject("inpaint_icon", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap inpaint_reload {
get {
object obj = ResourceManager.GetObject("inpaint_reload", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap inpaint_reloadfile {
get {
object obj = ResourceManager.GetObject("inpaint_reloadfile", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Icon ähnlich wie (Symbol). /// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Icon ähnlich wie (Symbol).
/// </summary> /// </summary>

View File

@ -250,4 +250,13 @@
<data name="border_2_all_icon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="border_2_all_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\border-2-all-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\border-2-all-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="inpaint_icon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\inpaint-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="inpaint_reload" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\inpaint-reload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="inpaint_reloadfile" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\inpaint-reloadfile.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

View File

@ -12,7 +12,7 @@ namespace Mk0.Software.ImageSorter.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.6.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@ -214,5 +214,65 @@ namespace Mk0.Software.ImageSorter.Properties {
this["preview"] = value; this["preview"] = value;
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string inpaintUrl {
get {
return ((string)(this["inpaintUrl"]));
}
set {
this["inpaintUrl"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int lastWidthInpaint {
get {
return ((int)(this["lastWidthInpaint"]));
}
set {
this["lastWidthInpaint"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int lastHeightInpaint {
get {
return ((int)(this["lastHeightInpaint"]));
}
set {
this["lastHeightInpaint"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int lastTopInpaint {
get {
return ((int)(this["lastTopInpaint"]));
}
set {
this["lastTopInpaint"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int lastLeftInpaint {
get {
return ((int)(this["lastLeftInpaint"]));
}
set {
this["lastLeftInpaint"] = value;
}
}
} }
} }

View File

@ -50,5 +50,20 @@
<Setting Name="preview" Type="System.Boolean" Scope="User"> <Setting Name="preview" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value> <Value Profile="(Default)">False</Value>
</Setting> </Setting>
<Setting Name="inpaintUrl" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="lastWidthInpaint" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="lastHeightInpaint" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="lastTopInpaint" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="lastLeftInpaint" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -58,6 +58,11 @@
this.label10 = new System.Windows.Forms.Label(); this.label10 = new System.Windows.Forms.Label();
this.buttonResetBackgroundColours = new System.Windows.Forms.Button(); this.buttonResetBackgroundColours = new System.Windows.Forms.Button();
this.label9 = new System.Windows.Forms.Label(); this.label9 = new System.Windows.Forms.Label();
this.tabPage6 = new System.Windows.Forms.TabPage();
this.linkLabelIOPaintGit = new System.Windows.Forms.LinkLabel();
this.label13 = new System.Windows.Forms.Label();
this.textBoxInpaintUrl = new System.Windows.Forms.TextBox();
this.label12 = new System.Windows.Forms.Label();
this.tabControl1.SuspendLayout(); this.tabControl1.SuspendLayout();
this.tabPage1.SuspendLayout(); this.tabPage1.SuspendLayout();
this.tabPage2.SuspendLayout(); this.tabPage2.SuspendLayout();
@ -65,6 +70,7 @@
this.tabPage4.SuspendLayout(); this.tabPage4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.trackBarFadingSpeed)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarFadingSpeed)).BeginInit();
this.tabPage5.SuspendLayout(); this.tabPage5.SuspendLayout();
this.tabPage6.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
// checkBoxSingleInstance // checkBoxSingleInstance
@ -118,6 +124,7 @@
this.tabControl1.Controls.Add(this.tabPage3); this.tabControl1.Controls.Add(this.tabPage3);
this.tabControl1.Controls.Add(this.tabPage4); this.tabControl1.Controls.Add(this.tabPage4);
this.tabControl1.Controls.Add(this.tabPage5); this.tabControl1.Controls.Add(this.tabPage5);
this.tabControl1.Controls.Add(this.tabPage6);
this.tabControl1.Location = new System.Drawing.Point(12, 12); this.tabControl1.Location = new System.Drawing.Point(12, 12);
this.tabControl1.Name = "tabControl1"; this.tabControl1.Name = "tabControl1";
this.tabControl1.SelectedIndex = 0; this.tabControl1.SelectedIndex = 0;
@ -162,7 +169,7 @@
// //
this.label3.Location = new System.Drawing.Point(6, 3); this.label3.Location = new System.Drawing.Point(6, 3);
this.label3.Name = "label3"; this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(489, 39); this.label3.Size = new System.Drawing.Size(492, 39);
this.label3.TabIndex = 0; this.label3.TabIndex = 0;
this.label3.Text = resources.GetString("label3.Text"); this.label3.Text = resources.GetString("label3.Text");
// //
@ -190,9 +197,9 @@
// //
// label4 // label4
// //
this.label4.Location = new System.Drawing.Point(5, 3); this.label4.Location = new System.Drawing.Point(6, 3);
this.label4.Name = "label4"; this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(490, 39); this.label4.Size = new System.Drawing.Size(492, 39);
this.label4.TabIndex = 0; this.label4.TabIndex = 0;
this.label4.Text = "Wenn sie die Dateizuordnung aktivieren, werden Bildtypen mit ImageSorter verbunde" + 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" + "n. Sie können dann Bilder mittels Doppelklick bzw. rechter Maustaste \"Öffnen mit" +
@ -271,7 +278,7 @@
// //
this.label5.Location = new System.Drawing.Point(6, 3); this.label5.Location = new System.Drawing.Point(6, 3);
this.label5.Name = "label5"; this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(486, 34); this.label5.Size = new System.Drawing.Size(492, 34);
this.label5.TabIndex = 0; this.label5.TabIndex = 0;
this.label5.Text = "Mit Fading wird eine farbliche Markierung von zuletzt gedrückten Ziel-Buttons akt" + 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" + "iviert. Die Geschwindigkeit regelt, wie schnell diese Markierung wieder verblass" +
@ -363,10 +370,59 @@
// //
this.label9.Location = new System.Drawing.Point(6, 3); this.label9.Location = new System.Drawing.Point(6, 3);
this.label9.Name = "label9"; this.label9.Name = "label9";
this.label9.Size = new System.Drawing.Size(486, 46); this.label9.Size = new System.Drawing.Size(492, 46);
this.label9.TabIndex = 1; this.label9.TabIndex = 1;
this.label9.Text = resources.GetString("label9.Text"); this.label9.Text = resources.GetString("label9.Text");
// //
// tabPage6
//
this.tabPage6.Controls.Add(this.linkLabelIOPaintGit);
this.tabPage6.Controls.Add(this.label13);
this.tabPage6.Controls.Add(this.textBoxInpaintUrl);
this.tabPage6.Controls.Add(this.label12);
this.tabPage6.Location = new System.Drawing.Point(4, 22);
this.tabPage6.Name = "tabPage6";
this.tabPage6.Size = new System.Drawing.Size(498, 107);
this.tabPage6.TabIndex = 5;
this.tabPage6.Text = "Inpaint";
this.tabPage6.UseVisualStyleBackColor = true;
//
// linkLabelIOPaintGit
//
this.linkLabelIOPaintGit.AutoSize = true;
this.linkLabelIOPaintGit.Location = new System.Drawing.Point(6, 77);
this.linkLabelIOPaintGit.Name = "linkLabelIOPaintGit";
this.linkLabelIOPaintGit.Size = new System.Drawing.Size(112, 13);
this.linkLabelIOPaintGit.TabIndex = 3;
this.linkLabelIOPaintGit.TabStop = true;
this.linkLabelIOPaintGit.Text = "IOPaint auf git.kmpr.at";
this.linkLabelIOPaintGit.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkLabelIOPaintGit_LinkClicked);
//
// label13
//
this.label13.AutoSize = true;
this.label13.Location = new System.Drawing.Point(6, 53);
this.label13.Name = "label13";
this.label13.Size = new System.Drawing.Size(70, 13);
this.label13.TabIndex = 2;
this.label13.Text = "IOPaint URL:";
//
// textBoxInpaintUrl
//
this.textBoxInpaintUrl.Location = new System.Drawing.Point(82, 50);
this.textBoxInpaintUrl.Name = "textBoxInpaintUrl";
this.textBoxInpaintUrl.Size = new System.Drawing.Size(398, 20);
this.textBoxInpaintUrl.TabIndex = 1;
this.textBoxInpaintUrl.TextChanged += new System.EventHandler(this.TextBoxInpaintUrl_TextChanged);
//
// label12
//
this.label12.Location = new System.Drawing.Point(6, 3);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(492, 39);
this.label12.TabIndex = 0;
this.label12.Text = resources.GetString("label12.Text");
//
// Settings // Settings
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@ -394,6 +450,8 @@
((System.ComponentModel.ISupportInitialize)(this.trackBarFadingSpeed)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.trackBarFadingSpeed)).EndInit();
this.tabPage5.ResumeLayout(false); this.tabPage5.ResumeLayout(false);
this.tabPage5.PerformLayout(); this.tabPage5.PerformLayout();
this.tabPage6.ResumeLayout(false);
this.tabPage6.PerformLayout();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@ -429,5 +487,10 @@
private System.Windows.Forms.Label label10; private System.Windows.Forms.Label label10;
private System.Windows.Forms.Panel panelDarkBackgroundColour; private System.Windows.Forms.Panel panelDarkBackgroundColour;
private System.Windows.Forms.Panel panelLightBackgroundColour; private System.Windows.Forms.Panel panelLightBackgroundColour;
private System.Windows.Forms.TabPage tabPage6;
private System.Windows.Forms.TextBox textBoxInpaintUrl;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.LinkLabel linkLabelIOPaintGit;
private System.Windows.Forms.Label label13;
} }
} }

View File

@ -29,6 +29,7 @@ namespace Mk0.Software.ImageSorter
trackBarFadingSpeed.Value = Properties.Settings.Default.fadingSpeed; trackBarFadingSpeed.Value = Properties.Settings.Default.fadingSpeed;
panelDarkBackgroundColour.BackColor = Properties.Settings.Default.darkBackgroundColour; panelDarkBackgroundColour.BackColor = Properties.Settings.Default.darkBackgroundColour;
panelLightBackgroundColour.BackColor = Properties.Settings.Default.lightBackgroundColour; panelLightBackgroundColour.BackColor = Properties.Settings.Default.lightBackgroundColour;
textBoxInpaintUrl.Text = Properties.Settings.Default.inpaintUrl;
} }
private void ButtonChangeTargetPath_Click(object sender, EventArgs e) private void ButtonChangeTargetPath_Click(object sender, EventArgs e)
@ -110,5 +111,16 @@ namespace Mk0.Software.ImageSorter
Properties.Settings.Default.Save(); Properties.Settings.Default.Save();
} }
} }
private void LinkLabelIOPaintGit_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
System.Diagnostics.Process.Start("https://git.kmpr.at/kamp/IOPaint");
}
private void TextBoxInpaintUrl_TextChanged(object sender, EventArgs e)
{
Properties.Settings.Default.inpaintUrl = textBoxInpaintUrl.Text;
Properties.Settings.Default.Save();
}
} }
} }

View File

@ -129,4 +129,8 @@
<data name="label9.Text" xml:space="preserve"> <data name="label9.Text" xml:space="preserve">
<value>Hier kann für den Bildhintergrund zur leichteren Bildbearbeitung die Farbe individualisiert werden. Es kann sowohl die Farbe für den hellen Hintergrund (Standard), sowie den dunklen Hintergrund verändert werden.</value> <value>Hier kann für den Bildhintergrund zur leichteren Bildbearbeitung die Farbe individualisiert werden. Es kann sowohl die Farbe für den hellen Hintergrund (Standard), sowie den dunklen Hintergrund verändert werden.</value>
</data> </data>
<data name="label12.Text" xml:space="preserve">
<value>Mit Inpaint können unerwünschte Objekte aus Bildern entfernt werden. Dazu muss IOPaint installiert werden. Anschließend hier die URL (FQDN oder IP inklusive "http(s)://" und evtl. Portnummer) der lokalen IOPaint-Instanz eingeben:
</value>
</data>
</root> </root>

View File

@ -1,5 +1,9 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="CefSharp.Common" version="126.2.180" targetFramework="net48" />
<package id="CefSharp.WinForms" version="126.2.180" targetFramework="net48" />
<package id="chromiumembeddedframework.runtime.win-x64" version="126.2.18" targetFramework="net48" />
<package id="chromiumembeddedframework.runtime.win-x86" version="126.2.18" targetFramework="net48" />
<package id="mk0.gui.banner" version="1.0.0" targetFramework="net472" /> <package id="mk0.gui.banner" version="1.0.0" targetFramework="net472" />
<package id="mk0.tools.calculation" version="1.0.0" targetFramework="net472" /> <package id="mk0.tools.calculation" version="1.0.0" targetFramework="net472" />
<package id="mk0.tools.imagecropper" version="1.0.0" targetFramework="net472" /> <package id="mk0.tools.imagecropper" version="1.0.0" targetFramework="net472" />