Merge remote-tracking branch 'upstream/master' into implement-backblaze-b2

This commit is contained in:
tinybarks 2018-10-01 19:34:36 +02:00
commit fce293108e
No known key found for this signature in database
GPG key ID: D999045C35D5795A
28 changed files with 2116 additions and 1561 deletions

View file

@ -1,3 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@ -167,4 +168,46 @@
<data name="rbSaturation.Text" xml:space="preserve">
<value>Sättigung:</value>
</data>
<data name="lblRecentColors.Text" xml:space="preserve">
<value>Vorherige Farben:</value>
</data>
<data name="btnClose.Text" xml:space="preserve">
<value>Schließen</value>
</data>
<data name="lblCursorPosition.Text" xml:space="preserve">
<value>Mausposition:</value>
</data>
<data name="lblHex.Text" xml:space="preserve">
<value>Hex:</value>
</data>
<data name="tsmiCopyAll.Text" xml:space="preserve">
<value>Alle kopieren</value>
</data>
<data name="tsmiCopyRGB.Text" xml:space="preserve">
<value>RGB kopieren</value>
</data>
<data name="tsmiCopyHexadecimal.Text" xml:space="preserve">
<value>Hexadezimal kopieren</value>
</data>
<data name="tsmiCopyCMYK.Text" xml:space="preserve">
<value>CMYK kopieren</value>
</data>
<data name="tsmiCopyHSB.Text" xml:space="preserve">
<value>HSB kopieren</value>
</data>
<data name="tsmiCopyDecimal.Text" xml:space="preserve">
<value>Dezimal kopieren</value>
</data>
<data name="tsmiCopyPosition.Text" xml:space="preserve">
<value>Position kopieren</value>
</data>
<data name="mbCopy.Text" xml:space="preserve">
<value>Kopieren</value>
</data>
<data name="cbTransparent.ToolTip" xml:space="preserve">
<value>Transparent</value>
</data>
<data name="btnScreenColorPicker.ToolTip" xml:space="preserve">
<value>Farbe vom Bildschirm auswählen</value>
</data>
</root>

View file

@ -93,7 +93,8 @@ public string Parse(string pattern)
if (ProcessName != null)
{
sb.Replace(CodeMenuEntryFilename.pn.ToPrefixString(), ProcessName);
string processName = ProcessName.Trim().Replace(' ', '_');
sb.Replace(CodeMenuEntryFilename.pn.ToPrefixString(), processName);
}
string width = "", height = "";

View file

@ -39,6 +39,7 @@ private void InitializeComponent()
this.panel1 = new System.Windows.Forms.Panel();
this.pbThumbnail = new ShareX.HelpersLib.MyPictureBox();
this.gbFilters = new System.Windows.Forms.GroupBox();
this.lblFilenameFilter = new System.Windows.Forms.Label();
this.cbHostFilterSelection = new System.Windows.Forms.ComboBox();
this.btnRemoveFilters = new System.Windows.Forms.Button();
this.btnApplyFilters = new System.Windows.Forms.Button();
@ -52,7 +53,6 @@ private void InitializeComponent()
this.dtpFilterTo = new System.Windows.Forms.DateTimePicker();
this.txtFilenameFilter = new System.Windows.Forms.TextBox();
this.cbFilenameFilterMethod = new System.Windows.Forms.ComboBox();
this.lblFilenameFilter = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
this.scMain.Panel1.SuspendLayout();
this.scMain.Panel2.SuspendLayout();
@ -151,6 +151,11 @@ private void InitializeComponent()
this.gbFilters.Name = "gbFilters";
this.gbFilters.TabStop = false;
//
// lblFilenameFilter
//
resources.ApplyResources(this.lblFilenameFilter, "lblFilenameFilter");
this.lblFilenameFilter.Name = "lblFilenameFilter";
//
// cbHostFilterSelection
//
this.cbHostFilterSelection.FormattingEnabled = true;
@ -233,11 +238,6 @@ private void InitializeComponent()
resources.ApplyResources(this.cbFilenameFilterMethod, "cbFilenameFilterMethod");
this.cbFilenameFilterMethod.Name = "cbFilenameFilterMethod";
//
// lblFilenameFilter
//
resources.ApplyResources(this.lblFilenameFilter, "lblFilenameFilter");
this.lblFilenameFilter.Name = "lblFilenameFilter";
//
// HistoryForm
//
resources.ApplyResources(this, "$this");

View file

@ -162,4 +162,10 @@
<data name="lblFilterTo.Text" xml:space="preserve">
<value>An:</value>
</data>
<data name="lblFilenameFilter.Text" xml:space="preserve">
<value>Dateiname:</value>
</data>
<data name="chURL.Text" xml:space="preserve">
<value>URL</value>
</data>
</root>

View file

@ -125,6 +125,10 @@
<data name="scMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="chIcon.Text" xml:space="preserve">
<value />
<comment>@Invariant</comment>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="chIcon.Width" type="System.Int32, mscorlib">
<value>24</value>

View file

@ -0,0 +1,144 @@
<?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>
<data name="btnAdd.Text" xml:space="preserve">
<value>Hinzufügen...</value>
</data>
<data name="btnRemove.Text" xml:space="preserve">
<value>Entfernen</value>
</data>
<data name="lblWidth.Text" xml:space="preserve">
<value>Breite:</value>
</data>
<data name="lblHeight.Text" xml:space="preserve">
<value>Höhe:</value>
</data>
<data name="btnGenerate.Text" xml:space="preserve">
<value>Thumbnails generieren</value>
</data>
<data name="lblOutputFolder.Text" xml:space="preserve">
<value>Ausgabe-Ordner</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>ShareX - Bild Thumbnailer</value>
</data>
<data name="lblOutputFilename.Text" xml:space="preserve">
<value>Ausgabe-Dateiname</value>
</data>
</root>

View file

@ -166,6 +166,9 @@
<EmbeddedResource Include="Forms\ImageCombinerForm.zh-TW.resx">
<DependentUpon>ImageCombinerForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ImageThumbnailerForm.de.resx">
<DependentUpon>ImageThumbnailerForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ImageThumbnailerForm.es-MX.resx">
<DependentUpon>ImageThumbnailerForm.cs</DependentUpon>
</EmbeddedResource>

View file

@ -1560,6 +1560,15 @@ internal class Resources {
}
}
/// <summary>
/// Looks up a localized string similar to Value of first step:.
/// </summary>
internal static string ShapeManager_CreateToolbar_StartingStepValue {
get {
return ResourceManager.GetString("ShapeManager_CreateToolbar_StartingStepValue", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Undo.
/// </summary>

View file

@ -165,6 +165,9 @@ Distance: {6:0.00} px / Angle: {7:0.00}°</value>
<data name="ShapeManager_CreateToolbar_UseLetters" xml:space="preserve">
<value>Use letters</value>
</data>
<data name="ShapeManager_CreateToolbar_StartingStepValue" xml:space="preserve">
<value>Value of first step:</value>
</data>
<data name="ShapeManager_CreateToolbar_ImageSize" xml:space="preserve">
<value>Image size...</value>
</data>

View file

@ -94,10 +94,10 @@ public class AnnotationOptions
public string LastStickerPath { get; set; }
// Blur effect
public int BlurRadius { get; set; } = 15;
public int BlurRadius { get; set; } = 35;
// Pixelate effect
public int PixelateSize { get; set; } = 8;
public int PixelateSize { get; set; } = 15;
// Highlight effect
public Color HighlightColor { get; set; } = Color.Yellow;

View file

@ -152,6 +152,7 @@ private set
public bool IsCurrentHoverShapeValid => CurrentHoverShape != null && CurrentHoverShape.IsValidShape;
public bool IsCurrentShapeTypeRegion => IsShapeTypeRegion(CurrentTool);
public int StartingStepNumber { get; set; } = 1;
public bool IsCreating { get; set; }
public bool IsMoving { get; set; }
@ -1474,7 +1475,7 @@ private void UpdateNodes()
public void OrderStepShapes()
{
int i = 1;
int i = StartingStepNumber;
foreach (StepDrawingShape shape in Shapes.OfType<StepDrawingShape>())
{

View file

@ -52,7 +52,7 @@ internal partial class ShapeManager
private ToolStripMenuItem tsmiArrowHeadsBothSide, tsmiShadow, tsmiShadowColor, tsmiStepUseLetters, tsmiUndo, tsmiDelete, tsmiDeleteAll, tsmiMoveTop,
tsmiMoveUp, tsmiMoveDown, tsmiMoveBottom, tsmiRegionCapture, tsmiQuickCrop, tsmiShowMagnifier, tsmiImageEditorBackgroundColor;
private ToolStripLabeledNumericUpDown tslnudBorderSize, tslnudCornerRadius, tslnudCenterPoints, tslnudBlurRadius, tslnudPixelateSize, tslnudStepFontSize,
tslnudMagnifierPixelCount;
tslnudMagnifierPixelCount, tslnudStartingStepValue;
private ToolStripLabel tslDragLeft, tslDragRight;
private ToolStripLabeledComboBox tscbImageInterpolationMode, tscbCursorTypes;
@ -546,6 +546,16 @@ internal void CreateToolbar()
};
tsddbShapeOptions.DropDownItems.Add(tslnudStepFontSize);
tslnudStartingStepValue = new ToolStripLabeledNumericUpDown(Resources.ShapeManager_CreateToolbar_StartingStepValue);
tslnudStartingStepValue.Content.Minimum = 1;
tslnudStartingStepValue.Content.Maximum = 10000;
tslnudStartingStepValue.Content.ValueChanged = (sender, e) =>
{
StartingStepNumber = (int)tslnudStartingStepValue.Content.Value;
UpdateCurrentShape();
};
tsddbShapeOptions.DropDownItems.Add(tslnudStartingStepValue);
tsmiStepUseLetters = new ToolStripMenuItem(Resources.ShapeManager_CreateToolbar_UseLetters);
tsmiStepUseLetters.Checked = false;
tsmiStepUseLetters.CheckOnClick = true;
@ -1304,6 +1314,7 @@ private void UpdateMenu()
tsbHighlightColor.Image = ImageHelpers.CreateColorPickerIcon(AnnotationOptions.HighlightColor, new Rectangle(0, 0, 16, 16));
tslnudStepFontSize.Content.Value = AnnotationOptions.StepFontSize;
tslnudStartingStepValue.Content.Value = StartingStepNumber;
tsmiStepUseLetters.Checked = AnnotationOptions.StepUseLetters;
tsmiShadow.Checked = AnnotationOptions.Shadow;
@ -1395,6 +1406,7 @@ private void UpdateMenu()
tslnudCenterPoints.Visible = shapeType == ShapeType.DrawingLine || shapeType == ShapeType.DrawingArrow;
tsmiArrowHeadsBothSide.Visible = shapeType == ShapeType.DrawingArrow;
tscbImageInterpolationMode.Visible = shapeType == ShapeType.DrawingImage || shapeType == ShapeType.DrawingImageScreen;
tslnudStartingStepValue.Visible = shapeType == ShapeType.DrawingStep;
tslnudStepFontSize.Visible = tsmiStepUseLetters.Visible = shapeType == ShapeType.DrawingStep;
tscbCursorTypes.Visible = shapeType == ShapeType.DrawingCursor;
tslnudBlurRadius.Visible = shapeType == ShapeType.EffectBlur;

View file

@ -135,4 +135,7 @@
<data name="lblVerificationCode.Text" xml:space="preserve">
<value>Verifikationscode (Hole den Code von der Autorisierungsseite):</value>
</data>
<data name="lblStatus.Text" xml:space="preserve">
<value>Status:</value>
</data>
</root>

View file

@ -1,4 +1,4 @@

<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@ -147,4 +147,31 @@
<data name="tpMain.Text" xml:space="preserve">
<value>Dateien</value>
</data>
<data name="tsmiConnect.Text" xml:space="preserve">
<value>Verbinden</value>
</data>
<data name="tsmiDisconnect.Text" xml:space="preserve">
<value>Trennen</value>
</data>
<data name="tsmiDownload.Text" xml:space="preserve">
<value>Download</value>
</data>
<data name="tsmiOpenURL.Text" xml:space="preserve">
<value>URL öffnen</value>
</data>
<data name="tsmiRename.Text" xml:space="preserve">
<value>Umbenennen</value>
</data>
<data name="tsmiDelete.Text" xml:space="preserve">
<value>Löschen</value>
</data>
<data name="tsmiRefresh.Text" xml:space="preserve">
<value>Aktualisieren</value>
</data>
<data name="tsmiCreateDirectory.Text" xml:space="preserve">
<value>Ordner erstellen</value>
</data>
<data name="tsmiCopyURL.Text" xml:space="preserve">
<value>URL(s) in die Zwischenablage kopieren</value>
</data>
</root>

View file

@ -55,7 +55,9 @@ public override GenericUploader CreateUploader(UploadersConfig config, TaskRefer
CreateShare = config.OwnCloudCreateShare,
DirectLink = config.OwnCloudDirectLink,
PreviewLink = config.OwnCloudUsePreviewLinks,
IsCompatibility81 = config.OwnCloud81Compatibility
IsCompatibility81 = config.OwnCloud81Compatibility,
AutoExpireTime = config.OwnCloudExpiryTime,
AutoExpire = config.OwnCloudAutoExpire
};
}
@ -68,10 +70,12 @@ public sealed class OwnCloud : FileUploader
public string Username { get; set; }
public string Password { get; set; }
public string Path { get; set; }
public int AutoExpireTime { get; set; }
public bool CreateShare { get; set; }
public bool DirectLink { get; set; }
public bool PreviewLink { get; set; }
public bool IsCompatibility81 { get; set; }
public bool AutoExpire { get; set; }
public OwnCloud(string host, string username, string password)
{
@ -128,7 +132,7 @@ public override UploadResult Upload(Stream stream, string fileName)
return result;
}
// http://doc.owncloud.org/server/7.0/developer_manual/core/ocs-share-api.html#create-a-new-share
// https://doc.owncloud.org/server/10.0/developer_manual/core/ocs-share-api.html#create-a-new-share
public string ShareFile(string path)
{
Dictionary<string, string> args = new Dictionary<string, string>();
@ -139,6 +143,26 @@ public string ShareFile(string path)
// args.Add("password", ""); // password to protect public link Share with
args.Add("permissions", "1"); // 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)
if (AutoExpire)
{
if (AutoExpireTime == 0)
{
throw new Exception("ownCloud Auto Epxire Time is not valid.");
}
else
{
try
{
DateTime expireTime = DateTime.UtcNow.AddDays(AutoExpireTime);
args.Add("expireDate", $"{expireTime.Year}-{expireTime.Month}-{expireTime.Day}");
}
catch
{
throw new Exception("ownCloud Auto Expire time is invalid");
}
}
}
string url = URLHelpers.CombineURL(Host, "ocs/v1.php/apps/files_sharing/api/v1/shares?format=json");
url = URLHelpers.FixPrefix(url);

View file

@ -183,4 +183,4 @@ public override string ToString()
}
}
}
}
}

View file

@ -132,4 +132,7 @@
<data name="llAttribution.Text" xml:space="preserve">
<value>Unterstützt von OCR.Space API</value>
</data>
<data name="llGoogleTranslate.Text" xml:space="preserve">
<value>In Google-Übersetzer öffnen &amp; Schließen</value>
</data>
</root>

File diff suppressed because it is too large Load diff

View file

@ -595,10 +595,12 @@ public void LoadSettings()
txtOwnCloudUsername.Text = Config.OwnCloudUsername;
txtOwnCloudPassword.Text = Config.OwnCloudPassword;
txtOwnCloudPath.Text = Config.OwnCloudPath;
txtOwnCloudExpiryTime.Value = Config.OwnCloudExpiryTime;
cbOwnCloudCreateShare.Checked = Config.OwnCloudCreateShare;
cbOwnCloudDirectLink.Checked = Config.OwnCloudDirectLink;
cbOwnCloud81Compatibility.Checked = Config.OwnCloud81Compatibility;
cbOwnCloudUsePreviewLinks.Checked = Config.OwnCloudUsePreviewLinks;
cbOwnCloudAutoExpire.Checked = Config.OwnCloudAutoExpire;
#endregion ownCloud / Nextcloud
@ -2325,6 +2327,11 @@ private void txtOwnCloudPath_TextChanged(object sender, EventArgs e)
Config.OwnCloudPath = txtOwnCloudPath.Text;
}
private void txtOwnExpiryTime_TextChanged(object sender, EventArgs e)
{
Config.OwnCloudExpiryTime = Convert.ToInt32(txtOwnCloudExpiryTime.Value);
}
private void cbOwnCloudCreateShare_CheckedChanged(object sender, EventArgs e)
{
Config.OwnCloudCreateShare = cbOwnCloudCreateShare.Checked;
@ -2345,6 +2352,11 @@ private void cbOwnCloudUsePreviewLinks_CheckedChanged(object sender, EventArgs e
Config.OwnCloudUsePreviewLinks = cbOwnCloudUsePreviewLinks.Checked;
}
private void cbOwnCloudAutoExpire_CheckedChanged(object sender, EventArgs e)
{
Config.OwnCloudAutoExpire = cbOwnCloudAutoExpire.Checked;
}
#endregion ownCloud / Nextcloud
#region Pushbullet
@ -3746,11 +3758,11 @@ private void btnCustomUploaderRegexAddSyntax_Click(object sender, EventArgs e)
{
if (match.Groups.Count > 1 && !string.IsNullOrEmpty(match.Groups[1].Value))
{
syntax = string.Format("$regex:{0},{1}$", selectedIndex + 1, match.Groups[1].Value);
syntax = string.Format("$regex:{0}|{1}$", selectedIndex + 1, match.Groups[1].Value);
}
else
{
syntax = string.Format("$regex:{0},1$", selectedIndex + 1);
syntax = string.Format("$regex:{0}|1$", selectedIndex + 1);
}
}
else

View file

@ -2790,7 +2790,7 @@ store.book[0].title</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpCustomUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpCustomUploaders.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -3201,7 +3201,7 @@ store.book[0].title</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpYourls.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpYourls.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -3360,7 +3360,7 @@ store.book[0].title</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpAdFly.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpAdFly.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -3546,7 +3546,7 @@ store.book[0].title</value>
<value>4, 22</value>
</data>
<data name="tpPolr.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpPolr.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -3735,7 +3735,7 @@ store.book[0].title</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpFirebaseDynamicLinks.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpFirebaseDynamicLinks.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
@ -5253,13 +5253,13 @@ store.book[0].title</value>
<value>11</value>
</data>
<data name="tpFTP.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 40</value>
<value>4, 22</value>
</data>
<data name="tpFTP.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpFTP.Size" type="System.Drawing.Size, System.Drawing">
<value>972, 519</value>
<value>972, 537</value>
</data>
<data name="tpFTP.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -5412,13 +5412,13 @@ store.book[0].title</value>
<value>4</value>
</data>
<data name="tpDropbox.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 202</value>
</data>
<data name="tpDropbox.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpDropbox.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpDropbox.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
@ -5544,13 +5544,13 @@ store.book[0].title</value>
<value>3</value>
</data>
<data name="tpOneDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpOneDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOneDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpOneDrive.TabIndex" type="System.Int32, mscorlib">
<value>17</value>
@ -5796,13 +5796,13 @@ store.book[0].title</value>
<value>7</value>
</data>
<data name="tpGoogleDrive.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpGoogleDrive.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpGoogleDrive.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpGoogleDrive.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -6033,13 +6033,13 @@ store.book[0].title</value>
<value>7</value>
</data>
<data name="tpPuush.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpPuush.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpPuush.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpPuush.TabIndex" type="System.Int32, mscorlib">
<value>26</value>
@ -6228,13 +6228,13 @@ store.book[0].title</value>
<value>5</value>
</data>
<data name="tpBox.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpBox.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpBox.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpBox.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -7029,13 +7029,13 @@ store.book[0].title</value>
<value>20</value>
</data>
<data name="tpAmazonS3.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpAmazonS3.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpAmazonS3.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpAmazonS3.TabIndex" type="System.Int32, mscorlib">
<value>13</value>
@ -7290,13 +7290,13 @@ store.book[0].title</value>
<value>8</value>
</data>
<data name="tpGoogleCloudStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpGoogleCloudStorage.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpGoogleCloudStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpGoogleCloudStorage.TabIndex" type="System.Int32, mscorlib">
<value>32</value>
@ -7728,13 +7728,13 @@ store.book[0].title</value>
<value>14</value>
</data>
<data name="tpAzureStorage.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpAzureStorage.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpAzureStorage.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpAzureStorage.TabIndex" type="System.Int32, mscorlib">
<value>28</value>
@ -8055,13 +8055,13 @@ store.book[0].title</value>
<value>2</value>
</data>
<data name="tpGfycat.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpGfycat.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpGfycat.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpGfycat.TabIndex" type="System.Int32, mscorlib">
<value>30</value>
@ -8376,10 +8376,10 @@ store.book[0].title</value>
<value>10</value>
</data>
<data name="tpMega.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpMega.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpMega.TabIndex" type="System.Int32, mscorlib">
<value>12</value>
@ -8399,6 +8399,87 @@ store.book[0].title</value>
<data name="&gt;&gt;tpMega.ZOrder" xml:space="preserve">
<value>11</value>
</data>
<data name="txtOwnCloudExpiryTime.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 224</value>
</data>
<data name="txtOwnCloudExpiryTime.Size" type="System.Drawing.Size, System.Drawing">
<value>248, 20</value>
</data>
<data name="txtOwnCloudExpiryTime.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
</data>
<data name="&gt;&gt;txtOwnCloudExpiryTime.Name" xml:space="preserve">
<value>txtOwnCloudExpiryTime</value>
</data>
<data name="&gt;&gt;txtOwnCloudExpiryTime.Type" xml:space="preserve">
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;txtOwnCloudExpiryTime.Parent" xml:space="preserve">
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;txtOwnCloudExpiryTime.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="cbOwnCloudAutoExpire.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="cbOwnCloudAutoExpire.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="cbOwnCloudAutoExpire.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 334</value>
</data>
<data name="cbOwnCloudAutoExpire.Size" type="System.Drawing.Size, System.Drawing">
<value>138, 17</value>
</data>
<data name="cbOwnCloudAutoExpire.TabIndex" type="System.Int32, mscorlib">
<value>18</value>
</data>
<data name="cbOwnCloudAutoExpire.Text" xml:space="preserve">
<value>Auto expire shared links</value>
</data>
<data name="&gt;&gt;cbOwnCloudAutoExpire.Name" xml:space="preserve">
<value>cbOwnCloudAutoExpire</value>
</data>
<data name="&gt;&gt;cbOwnCloudAutoExpire.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;cbOwnCloudAutoExpire.Parent" xml:space="preserve">
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;cbOwnCloudAutoExpire.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="lblOwnCloudExpiryTime.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="lblOwnCloudExpiryTime.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="lblOwnCloudExpiryTime.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 208</value>
</data>
<data name="lblOwnCloudExpiryTime.Size" type="System.Drawing.Size, System.Drawing">
<value>95, 13</value>
</data>
<data name="lblOwnCloudExpiryTime.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
</data>
<data name="lblOwnCloudExpiryTime.Text" xml:space="preserve">
<value>Expiry Time (days):</value>
</data>
<data name="&gt;&gt;lblOwnCloudExpiryTime.Name" xml:space="preserve">
<value>lblOwnCloudExpiryTime</value>
</data>
<data name="&gt;&gt;lblOwnCloudExpiryTime.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;lblOwnCloudExpiryTime.Parent" xml:space="preserve">
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;lblOwnCloudExpiryTime.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="cbOwnCloudUsePreviewLinks.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
@ -8406,7 +8487,7 @@ store.book[0].title</value>
<value>NoControl</value>
</data>
<data name="cbOwnCloudUsePreviewLinks.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 279</value>
<value>16, 357</value>
</data>
<data name="cbOwnCloudUsePreviewLinks.Size" type="System.Drawing.Size, System.Drawing">
<value>189, 17</value>
@ -8427,7 +8508,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;cbOwnCloudUsePreviewLinks.ZOrder" xml:space="preserve">
<value>0</value>
<value>3</value>
</data>
<data name="lblOwnCloudHostExample.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8457,7 +8538,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;lblOwnCloudHostExample.ZOrder" xml:space="preserve">
<value>1</value>
<value>4</value>
</data>
<data name="cbOwnCloud81Compatibility.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8466,7 +8547,7 @@ store.book[0].title</value>
<value>NoControl</value>
</data>
<data name="cbOwnCloud81Compatibility.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 256</value>
<value>16, 311</value>
</data>
<data name="cbOwnCloud81Compatibility.Size" type="System.Drawing.Size, System.Drawing">
<value>157, 17</value>
@ -8487,7 +8568,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;cbOwnCloud81Compatibility.ZOrder" xml:space="preserve">
<value>2</value>
<value>5</value>
</data>
<data name="cbOwnCloudDirectLink.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8496,7 +8577,7 @@ store.book[0].title</value>
<value>NoControl</value>
</data>
<data name="cbOwnCloudDirectLink.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 232</value>
<value>16, 287</value>
</data>
<data name="cbOwnCloudDirectLink.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 17</value>
@ -8517,7 +8598,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;cbOwnCloudDirectLink.ZOrder" xml:space="preserve">
<value>3</value>
<value>6</value>
</data>
<data name="cbOwnCloudCreateShare.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8526,7 +8607,7 @@ store.book[0].title</value>
<value>NoControl</value>
</data>
<data name="cbOwnCloudCreateShare.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 208</value>
<value>16, 263</value>
</data>
<data name="cbOwnCloudCreateShare.Size" type="System.Drawing.Size, System.Drawing">
<value>131, 17</value>
@ -8547,7 +8628,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;cbOwnCloudCreateShare.ZOrder" xml:space="preserve">
<value>4</value>
<value>7</value>
</data>
<data name="txtOwnCloudPath.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 176</value>
@ -8568,7 +8649,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;txtOwnCloudPath.ZOrder" xml:space="preserve">
<value>5</value>
<value>8</value>
</data>
<data name="txtOwnCloudPassword.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 128</value>
@ -8589,7 +8670,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;txtOwnCloudPassword.ZOrder" xml:space="preserve">
<value>6</value>
<value>9</value>
</data>
<data name="txtOwnCloudUsername.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 80</value>
@ -8610,7 +8691,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;txtOwnCloudUsername.ZOrder" xml:space="preserve">
<value>7</value>
<value>10</value>
</data>
<data name="txtOwnCloudHost.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 32</value>
@ -8631,7 +8712,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;txtOwnCloudHost.ZOrder" xml:space="preserve">
<value>8</value>
<value>11</value>
</data>
<data name="lblOwnCloudPath.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8661,7 +8742,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;lblOwnCloudPath.ZOrder" xml:space="preserve">
<value>9</value>
<value>12</value>
</data>
<data name="lblOwnCloudPassword.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8691,7 +8772,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;lblOwnCloudPassword.ZOrder" xml:space="preserve">
<value>10</value>
<value>13</value>
</data>
<data name="lblOwnCloudUsername.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8721,7 +8802,7 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;lblOwnCloudUsername.ZOrder" xml:space="preserve">
<value>11</value>
<value>14</value>
</data>
<data name="lblOwnCloudHost.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -8751,16 +8832,16 @@ store.book[0].title</value>
<value>tpOwnCloud</value>
</data>
<data name="&gt;&gt;lblOwnCloudHost.ZOrder" xml:space="preserve">
<value>12</value>
<value>15</value>
</data>
<data name="tpOwnCloud.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpOwnCloud.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpOwnCloud.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpOwnCloud.TabIndex" type="System.Int32, mscorlib">
<value>15</value>
@ -8964,13 +9045,13 @@ store.book[0].title</value>
<value>6</value>
</data>
<data name="tpMediaFire.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpMediaFire.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpMediaFire.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpMediaFire.TabIndex" type="System.Int32, mscorlib">
<value>16</value>
@ -9126,13 +9207,13 @@ store.book[0].title</value>
<value>4</value>
</data>
<data name="tpPushbullet.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 22</value>
</data>
<data name="tpPushbullet.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpPushbullet.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 537</value>
</data>
<data name="tpPushbullet.TabIndex" type="System.Int32, mscorlib">
<value>14</value>
@ -9303,13 +9384,13 @@ store.book[0].title</value>
<value>5</value>
</data>
<data name="tpSendSpace.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpSendSpace.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpSendSpace.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpSendSpace.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
@ -9489,13 +9570,13 @@ store.book[0].title</value>
<value>5</value>
</data>
<data name="tpGe_tt.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpGe_tt.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpGe_tt.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpGe_tt.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
@ -9648,13 +9729,13 @@ store.book[0].title</value>
<value>4</value>
</data>
<data name="tpHostr.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpHostr.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpHostr.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpHostr.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
@ -9858,10 +9939,10 @@ store.book[0].title</value>
<value>3</value>
</data>
<data name="tpJira.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpJira.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpJira.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
@ -10014,13 +10095,13 @@ store.book[0].title</value>
<value>4</value>
</data>
<data name="tpLambda.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpLambda.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpLambda.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpLambda.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
@ -10224,13 +10305,13 @@ store.book[0].title</value>
<value>6</value>
</data>
<data name="tpPomf.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpPomf.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpPomf.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpPomf.TabIndex" type="System.Int32, mscorlib">
<value>22</value>
@ -11185,13 +11266,13 @@ Using an encrypted library disables sharing.</value>
<value>20</value>
</data>
<data name="tpSeafile.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpSeafile.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpSeafile.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpSeafile.TabIndex" type="System.Int32, mscorlib">
<value>23</value>
@ -11389,10 +11470,10 @@ Using an encrypted library disables sharing.</value>
<value>5</value>
</data>
<data name="tpStreamable.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpStreamable.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpStreamable.TabIndex" type="System.Int32, mscorlib">
<value>24</value>
@ -11491,13 +11572,13 @@ Using an encrypted library disables sharing.</value>
<value>2</value>
</data>
<data name="tpSul.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpSul.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpSul.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpSul.TabIndex" type="System.Int32, mscorlib">
<value>25</value>
@ -11725,13 +11806,13 @@ Using an encrypted library disables sharing.</value>
<value>7</value>
</data>
<data name="tpLithiio.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpLithiio.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpLithiio.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpLithiio.TabIndex" type="System.Int32, mscorlib">
<value>20</value>
@ -12232,13 +12313,13 @@ Using an encrypted library disables sharing.</value>
<value>1</value>
</data>
<data name="tpPlik.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpPlik.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpPlik.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpPlik.TabIndex" type="System.Int32, mscorlib">
<value>29</value>
@ -12361,10 +12442,10 @@ Using an encrypted library disables sharing.</value>
<value>3</value>
</data>
<data name="tpYouTube.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpYouTube.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpYouTube.TabIndex" type="System.Int32, mscorlib">
<value>31</value>
@ -12664,13 +12745,13 @@ Using an encrypted library disables sharing.</value>
<value>10</value>
</data>
<data name="tpSharedFolder.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpSharedFolder.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpSharedFolder.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpSharedFolder.TabIndex" type="System.Int32, mscorlib">
<value>9</value>
@ -13084,13 +13165,13 @@ Using an encrypted library disables sharing.</value>
<value>14</value>
</data>
<data name="tpEmail.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 220</value>
<value>4, 40</value>
</data>
<data name="tpEmail.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>3, 3, 3, 3</value>
</data>
<data name="tpEmail.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 0</value>
<value>972, 519</value>
</data>
<data name="tpEmail.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
@ -13711,7 +13792,7 @@ Using an encrypted library disables sharing.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpPaste_ee.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpPaste_ee.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
@ -13927,7 +14008,7 @@ Using an encrypted library disables sharing.</value>
<value>4, 22</value>
</data>
<data name="tpGist.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpGist.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
@ -14035,7 +14116,7 @@ Using an encrypted library disables sharing.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpUpaste.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpUpaste.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
@ -14194,7 +14275,7 @@ Using an encrypted library disables sharing.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpHastebin.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpHastebin.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
@ -14323,7 +14404,7 @@ Using an encrypted library disables sharing.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpOneTimeSecret.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpOneTimeSecret.TabIndex" type="System.Int32, mscorlib">
<value>5</value>
@ -14380,7 +14461,7 @@ Using an encrypted library disables sharing.</value>
<value>3, 3, 3, 3</value>
</data>
<data name="tpPastie.Size" type="System.Drawing.Size, System.Drawing">
<value>178, 42</value>
<value>972, 537</value>
</data>
<data name="tpPastie.TabIndex" type="System.Int32, mscorlib">
<value>6</value>

View file

@ -229,7 +229,7 @@ private void ParseRegexList()
}
}
public string ParseURL(string url, bool output)
public string ParseURL(string url, bool usingResponse)
{
if (string.IsNullOrEmpty(url))
{
@ -259,7 +259,7 @@ public string ParseURL(string url, bool output)
if (syntaxLength > 0)
{
string syntax = url.Substring(syntaxStartIndex, syntaxLength);
string syntaxResult = ParseSyntax(syntax, output);
string syntaxResult = ParseSyntax(syntax, usingResponse);
if (!string.IsNullOrEmpty(syntaxResult))
{
@ -284,57 +284,50 @@ public string ParseURL(string url, bool output)
return result.ToString();
}
private string ParseSyntax(string syntax, bool output)
private string ParseSyntax(string syntax, bool usingResponse)
{
CustomUploaderResponseParseType parseType;
if (syntax.Equals("response", StringComparison.InvariantCultureIgnoreCase)) // Example: $response$
if (usingResponse)
{
return response;
}
else if (syntax.StartsWith("regex:", StringComparison.InvariantCultureIgnoreCase)) // Example: $regex:1,1$
{
parseType = CustomUploaderResponseParseType.Regex;
syntax = syntax.Substring(6);
}
else if (syntax.StartsWith("json:", StringComparison.InvariantCultureIgnoreCase)) // Example: $json:Files[0].URL$
{
parseType = CustomUploaderResponseParseType.Json;
syntax = syntax.Substring(5);
}
else if (syntax.StartsWith("xml:", StringComparison.InvariantCultureIgnoreCase)) // Example: $xml:/Files/File[1]/URL$
{
parseType = CustomUploaderResponseParseType.Xml;
syntax = syntax.Substring(4);
}
else if (syntax.StartsWith("random:", StringComparison.InvariantCultureIgnoreCase)) // Example: $random:domain1.com|domain2.com$
{
parseType = CustomUploaderResponseParseType.Random;
syntax = syntax.Substring(7);
}
else // Example: $1,1$
{
parseType = CustomUploaderResponseParseType.Regex;
if (syntax.Equals("response", StringComparison.InvariantCultureIgnoreCase)) // Example: $response$
{
return response;
}
else if (syntax.StartsWith("regex:", StringComparison.InvariantCultureIgnoreCase)) // Example: $regex:1|1$
{
return ParseSyntax(CustomUploaderResponseParseType.Regex, syntax.Substring(6));
}
else if (syntax.StartsWith("json:", StringComparison.InvariantCultureIgnoreCase)) // Example: $json:Files[0].URL$
{
return ParseSyntax(CustomUploaderResponseParseType.Json, syntax.Substring(5));
}
else if (syntax.StartsWith("xml:", StringComparison.InvariantCultureIgnoreCase)) // Example: $xml:/Files/File[1]/URL$
{
return ParseSyntax(CustomUploaderResponseParseType.Xml, syntax.Substring(4));
}
}
if (syntax.StartsWith("random:", StringComparison.InvariantCultureIgnoreCase)) // Example: $random:domain1.com|domain2.com$
{
return ParseSyntax(CustomUploaderResponseParseType.Random, syntax.Substring(7));
}
return null;
}
private string ParseSyntax(CustomUploaderResponseParseType parseType, string syntax)
{
if (!string.IsNullOrEmpty(syntax))
{
if (output)
switch (parseType)
{
switch (parseType)
{
case CustomUploaderResponseParseType.Regex:
return ParseRegexSyntax(syntax);
case CustomUploaderResponseParseType.Json:
return ParseJsonSyntax(syntax);
case CustomUploaderResponseParseType.Xml:
return ParseXmlSyntax(syntax);
}
}
if (parseType == CustomUploaderResponseParseType.Random)
{
return ParseRandomSyntax(syntax);
case CustomUploaderResponseParseType.Regex:
return ParseRegexSyntax(syntax);
case CustomUploaderResponseParseType.Json:
return ParseJsonSyntax(syntax);
case CustomUploaderResponseParseType.Xml:
return ParseXmlSyntax(syntax);
case CustomUploaderResponseParseType.Random:
return ParseRandomSyntax(syntax);
}
}
@ -356,7 +349,7 @@ private string ParseRegexSyntax(string syntax)
}
else
{
if (syntax[i] == ',')
if (syntax[i] == '|' || syntax[i] == ',')
{
isGroupRegex = true;
}

View file

@ -208,4 +208,19 @@ Hergestellte Ordner:</value>
<data name="UploadersConfigForm_FTPOpenClient_FTP_client_only_supports_FTP_or_FTPS_" xml:space="preserve">
<value>Das FTP-Programm unterstützt nur FTP oder FTPS.</value>
</data>
<data name="OAuthControl_Status_NotLoggedIn" xml:space="preserve">
<value>Nicht angemeldet.</value>
</data>
<data name="OAuthControl_Status_LoggedIn" xml:space="preserve">
<value>Angemeldet.</value>
</data>
<data name="OAuthControl_Status_LoginFailed" xml:space="preserve">
<value>Anmeldung fehlgeschlagen.</value>
</data>
<data name="UploadersConfigForm_UpdatePastebinStatus_LoggedIn" xml:space="preserve">
<value>Angemeldet.</value>
</data>
<data name="UploadersConfigForm_UpdatePastebinStatus_NotLoggedIn" xml:space="preserve">
<value>Nicht angemeldet.</value>
</data>
</root>

View file

@ -293,10 +293,12 @@ public class UploadersConfig : SettingsBase<UploadersConfig>
public string OwnCloudUsername = "";
public string OwnCloudPassword = "";
public string OwnCloudPath = "/";
public int OwnCloudExpiryTime = 7;
public bool OwnCloudCreateShare = true;
public bool OwnCloudDirectLink = false;
public bool OwnCloud81Compatibility = true;
public bool OwnCloudUsePreviewLinks = false;
public bool OwnCloudAutoExpire = false;
#endregion ownCloud / Nextcloud

View file

@ -333,4 +333,19 @@
<data name="cbFirefoxAddonSupport.Text" xml:space="preserve">
<value>Aktiviere Firefox-Erweiterungsunterstützung</value>
</data>
<data name="gbChrome.Text" xml:space="preserve">
<value>Chrome Erweiterung</value>
</data>
<data name="tpExportImport.Text" xml:space="preserve">
<value>Exportieren / Importieren</value>
</data>
<data name="gbFirefox.Text" xml:space="preserve">
<value>Firefox Erweiterung</value>
</data>
<data name="btnCheckDevBuild.Text" xml:space="preserve">
<value>Entwicklungs-Version installieren...</value>
</data>
<data name="cbEditWithShareX.Text" xml:space="preserve">
<value>Zeige "Bearbeiten mit ShareX"-Eintrag im Kontextmenü</value>
</data>
</root>

View file

@ -708,4 +708,49 @@
<data name="tsmiTrayTextCapture.Text" xml:space="preserve">
<value>Texterkennung (OCR)...</value>
</data>
</root>
<data name="pbPatreonHide.ToolTip" xml:space="preserve">
<value>Patreon Schaltfläche ausblenden</value>
</data>
<data name="tsmiTrayImageEditor.Text" xml:space="preserve">
<value>Bildeditor...</value>
</data>
<data name="tsmiTrayShowCursor.Text" xml:space="preserve">
<value>Mauszeiger anzeigen</value>
</data>
<data name="tsmiCopyMarkdownLink.Text" xml:space="preserve">
<value>Markdown-Link</value>
</data>
<data name="tsmiShowCursor.Text" xml:space="preserve">
<value>Mauszeiger anzeigen</value>
</data>
<data name="tsmiImageEditor.Text" xml:space="preserve">
<value>Bildeditor...</value>
</data>
<data name="pbDiscordHide.ToolTip" xml:space="preserve">
<value>Discord Schaltfläche ausblenden</value>
</data>
<data name="tsmiCopyMarkdownImage.Text" xml:space="preserve">
<value>Markdown-Bild</value>
</data>
<data name="tsmiCopyMarkdownLinkedImage.Text" xml:space="preserve">
<value>Markdown verlinktes Bild</value>
</data>
<data name="pbDiscordOpen.ToolTip" xml:space="preserve">
<value>ShareX Discord-Server Einladung öffnen</value>
</data>
<data name="tsmiCombineImages.Text" xml:space="preserve">
<value>Bilder zusammenführen...</value>
</data>
<data name="tsmiImagePreviewSide.Text" xml:space="preserve">
<value>Seitlich</value>
</data>
<data name="tsmiImagePreviewBottom.Text" xml:space="preserve">
<value>Unten</value>
</data>
<data name="tsmiTrayImageThumbnailer.Text" xml:space="preserve">
<value>Bild Thumbnailer</value>
</data>
<data name="pbPatreonOpen.ToolTip" xml:space="preserve">
<value>ShareX Patreon-Seite öffnen</value>
</data>
</root>

View file

@ -126,4 +126,25 @@
<data name="tsmiSaveAs.Text" xml:space="preserve">
<value>Als Bilddatei speichern...</value>
</data>
<data name="tpEncode.Text" xml:space="preserve">
<value>Kodieren</value>
</data>
<data name="lblDecodeResult.Text" xml:space="preserve">
<value>Ergebnis:</value>
</data>
<data name="tpDecode.Text" xml:space="preserve">
<value>Dekodieren</value>
</data>
<data name="btnDecodeFromScreen.Text" xml:space="preserve">
<value>vom Bildschirm dekodieren...</value>
</data>
<data name="tsmiDecode.Text" xml:space="preserve">
<value>Dekodieren</value>
</data>
<data name="btnDecodeFromFile.Text" xml:space="preserve">
<value>Aus Bild dekodieren...</value>
</data>
<data name="tsmiUpload.Text" xml:space="preserve">
<value>Bild hochladen</value>
</data>
</root>

View file

@ -129,4 +129,7 @@
<data name="lblName.Text" xml:space="preserve">
<value>Menü Text:</value>
</data>
<data name="btnOK.Text" xml:space="preserve">
<value>OK</value>
</data>
</root>

View file

@ -486,4 +486,22 @@ Bist du sicher?</value>
Rechte Maustaste um das Menü zu öffnen
Mittlere Maustaste um die Aktionsleiste zu schließen</value>
</data>
<data name="ScreenRecord_ConfirmCancel" xml:space="preserve">
<value>Möchten Sie die Aufnahme wirklich beenden?</value>
</data>
<data name="IntegrationHelpers_EditWithShareX" xml:space="preserve">
<value>mit ShareX bearbeiten</value>
</data>
<data name="ApplicationSettingsForm_btnCheckDevBuild_Click_DevBuilds_Warning" xml:space="preserve">
<value>Entwicklungs-Versionen können instabil sein und sind nur für Testzwecke geeignet. Möchten Sie diese trotzdem installieren?</value>
</data>
<data name="ApplicationSettingsForm_btnResetSettings_Click_WouldYouLikeToResetShareXSettings" xml:space="preserve">
<value>Möchten Sie die ShareX-Einstellungen zurücksetzen?</value>
</data>
<data name="UploadManager_ShowShortenURLDialog_ShortenURL" xml:space="preserve">
<value>URL-Kürzen</value>
</data>
<data name="UploadManager_ShowShortenURLDialog_Shorten" xml:space="preserve">
<value>Kürzen</value>
</data>
</root>