mirror of
https://github.com/Kopano-dev/kopano-ol-extension.git
synced 2023-10-10 13:37:40 +02:00
[KOE-17] Added settings dialog with resynchronise button. Added option to overwrite local signatures.
This commit is contained in:
parent
f44e092ca0
commit
e98240ab47
@ -275,6 +275,12 @@
|
||||
<Compile Include="Features\SendAs\FeatureSendAs.cs" />
|
||||
<Compile Include="Features\SharedFolders\FolderTreeNode.cs" />
|
||||
<Compile Include="Features\Signatures\FeatureSignatures.cs" />
|
||||
<Compile Include="Features\Signatures\SignaturesSettings.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Features\Signatures\SignaturesSettings.Designer.cs">
|
||||
<DependentUpon>SignaturesSettings.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="GlobalOptions.cs" />
|
||||
<Compile Include="Logging.cs" />
|
||||
<Compile Include="Native\IOleWindow.cs" />
|
||||
@ -549,6 +555,9 @@
|
||||
<EmbeddedResource Include="Features\SharedFolders\SharedFoldersDialog.resx">
|
||||
<DependentUpon>SharedFoldersDialog.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Features\Signatures\SignaturesSettings.resx">
|
||||
<DependentUpon>SignaturesSettings.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Properties\Resources.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
|
@ -17,6 +17,7 @@ using Acacia.Features.GAB;
|
||||
/// Consult LICENSE file for details
|
||||
using Acacia.Stubs;
|
||||
using Acacia.Stubs.OutlookWrappers;
|
||||
using Acacia.UI;
|
||||
using Acacia.Utils;
|
||||
using Acacia.ZPush;
|
||||
using Acacia.ZPush.Connect;
|
||||
@ -39,6 +40,15 @@ namespace Acacia.Features.Signatures
|
||||
{
|
||||
#region Debug options
|
||||
|
||||
[AcaciaOption("If set, the local signature is always set to the server signature. If not set, the local signature will be set " +
|
||||
"only if it is unspecified. ")]
|
||||
public bool AlwaysSetLocal
|
||||
{
|
||||
get { return GetOption(OPTION_ALWAYS_SET_LOCAL); }
|
||||
set { SetOption(OPTION_ALWAYS_SET_LOCAL, value); }
|
||||
}
|
||||
private static readonly BoolOption OPTION_ALWAYS_SET_LOCAL = new BoolOption("AlwaysSetLocal", false);
|
||||
|
||||
[AcaciaOption("The format for local names of synchronised signatures, to prevent overwriting local signatures. May contain %account% and %name%.")]
|
||||
public string SignatureLocalName
|
||||
{
|
||||
@ -93,31 +103,51 @@ namespace Acacia.Features.Signatures
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
internal void ResyncAll()
|
||||
{
|
||||
foreach(ZPushAccount account in Watcher.Accounts.GetAccounts())
|
||||
{
|
||||
if (account.Confirmed == ZPushAccount.ConfirmationType.IsZPush)
|
||||
{
|
||||
SyncSignatures(account, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Syncs the signatures for the account.
|
||||
/// </summary>
|
||||
/// <param name="account">The account</param>
|
||||
/// <param name="serverSignatureHash">The signature hash. If null, the hash will not be checked and a hard sync will be done.</param>
|
||||
private void SyncSignatures(ZPushAccount account, string serverSignatureHash)
|
||||
{
|
||||
if (!account.Capabilities.Has("signatures"))
|
||||
return;
|
||||
|
||||
// Check hash if needed
|
||||
if (serverSignatureHash != null)
|
||||
{
|
||||
Logger.Instance.Trace(this, "Checking signature hash for account {0}: {1}", account, serverSignatureHash);
|
||||
if (serverSignatureHash == account.Account.LocalSignaturesHash)
|
||||
return;
|
||||
}
|
||||
|
||||
// Fetch signatures if there is a change
|
||||
if (serverSignatureHash != account.Account.LocalSignaturesHash)
|
||||
{
|
||||
try
|
||||
{
|
||||
Logger.Instance.Debug(this, "Updating signatures: {0}", account);
|
||||
FetchSignatures(account);
|
||||
string hash = FetchSignatures(account);
|
||||
|
||||
// Store updated hash
|
||||
account.Account.LocalSignaturesHash = serverSignatureHash;
|
||||
Logger.Instance.Debug(this, "Updated signatures: {0}", account);
|
||||
account.Account.LocalSignaturesHash = hash;
|
||||
Logger.Instance.Debug(this, "Updated signatures: {0}: {1}", account, hash);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.Instance.Error(this, "Error fetching signatures: {0}: {1}", account, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region API
|
||||
|
||||
@ -146,7 +176,12 @@ namespace Acacia.Features.Signatures
|
||||
{
|
||||
}
|
||||
|
||||
private void FetchSignatures(ZPushAccount account)
|
||||
/// <summary>
|
||||
/// Fetches the signatures for the account.
|
||||
/// </summary>
|
||||
/// <param name="account">The account.</param>
|
||||
/// <returns>The signature hash</returns>
|
||||
private string FetchSignatures(ZPushAccount account)
|
||||
{
|
||||
Logger.Instance.Debug(this, "Fetching signatures for account {0}", account);
|
||||
using (ZPushConnection connection = account.Connect())
|
||||
@ -166,17 +201,25 @@ namespace Acacia.Features.Signatures
|
||||
}
|
||||
|
||||
// Set default signatures if available and none are set
|
||||
if (!string.IsNullOrEmpty(result.new_message) && string.IsNullOrEmpty(account.Account.SignatureNewMessage))
|
||||
if (!string.IsNullOrEmpty(result.new_message) && ShouldSetSignature(account.Account.SignatureNewMessage))
|
||||
{
|
||||
account.Account.SignatureNewMessage = fullNames[result.new_message];
|
||||
}
|
||||
if (!string.IsNullOrEmpty(result.replyforward_message) && string.IsNullOrEmpty(account.Account.SignatureReplyForwardMessage))
|
||||
if (!string.IsNullOrEmpty(result.replyforward_message) && ShouldSetSignature(account.Account.SignatureReplyForwardMessage))
|
||||
{
|
||||
account.Account.SignatureReplyForwardMessage = fullNames[result.replyforward_message];
|
||||
}
|
||||
|
||||
return result.hash;
|
||||
}
|
||||
}
|
||||
|
||||
private bool ShouldSetSignature(string currentSignature)
|
||||
{
|
||||
return string.IsNullOrEmpty(currentSignature) || AlwaysSetLocal;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
private string StoreSignature(ISignatures signatures, ZPushAccount account, Signature signatureInfo)
|
||||
@ -334,5 +377,14 @@ namespace Acacia.Features.Signatures
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#region Settings
|
||||
|
||||
public override FeatureSettings GetSettings()
|
||||
{
|
||||
return new SignaturesSettings(this);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
79
src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/Signatures/SignaturesSettings.Designer.cs
generated
Normal file
79
src/AcaciaZPushPlugin/AcaciaZPushPlugin/Features/Signatures/SignaturesSettings.Designer.cs
generated
Normal file
@ -0,0 +1,79 @@
|
||||
namespace Acacia.Features.Signatures
|
||||
{
|
||||
partial class SignaturesSettings
|
||||
{
|
||||
/// <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 Component 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()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SignaturesSettings));
|
||||
this._layout = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.checkForceSet = new System.Windows.Forms.CheckBox();
|
||||
this.buttonResync = new System.Windows.Forms.Button();
|
||||
this._layout.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// _layout
|
||||
//
|
||||
resources.ApplyResources(this._layout, "_layout");
|
||||
this._layout.Controls.Add(this.checkForceSet, 0, 0);
|
||||
this._layout.Controls.Add(this.buttonResync, 0, 1);
|
||||
this._layout.Name = "_layout";
|
||||
//
|
||||
// checkForceSet
|
||||
//
|
||||
resources.ApplyResources(this.checkForceSet, "checkForceSet");
|
||||
this.checkForceSet.Name = "checkForceSet";
|
||||
this.checkForceSet.UseVisualStyleBackColor = true;
|
||||
this.checkForceSet.CheckedChanged += new System.EventHandler(this.checkForceSet_CheckedChanged);
|
||||
//
|
||||
// buttonResync
|
||||
//
|
||||
resources.ApplyResources(this.buttonResync, "buttonResync");
|
||||
this.buttonResync.Name = "buttonResync";
|
||||
this.buttonResync.UseVisualStyleBackColor = true;
|
||||
this.buttonResync.Click += new System.EventHandler(this.buttonResync_Click);
|
||||
//
|
||||
// SignaturesSettings
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.Controls.Add(this._layout);
|
||||
this.Name = "SignaturesSettings";
|
||||
this._layout.ResumeLayout(false);
|
||||
this._layout.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TableLayoutPanel _layout;
|
||||
private System.Windows.Forms.CheckBox checkForceSet;
|
||||
private System.Windows.Forms.Button buttonResync;
|
||||
}
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
/// Copyright 2016 Kopano b.v.
|
||||
///
|
||||
/// This program is free software: you can redistribute it and/or modify
|
||||
/// it under the terms of the GNU Affero General Public License, version 3,
|
||||
/// as published by the Free Software Foundation.
|
||||
///
|
||||
/// This program is distributed in the hope that it will be useful,
|
||||
/// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||
/// GNU Affero General Public License for more details.
|
||||
///
|
||||
/// You should have received a copy of the GNU Affero General Public License
|
||||
/// along with this program.If not, see<http://www.gnu.org/licenses/>.
|
||||
///
|
||||
/// Consult LICENSE file for details
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Acacia.ZPush;
|
||||
using Acacia.UI;
|
||||
|
||||
namespace Acacia.Features.Signatures
|
||||
{
|
||||
public partial class SignaturesSettings : FeatureSettings
|
||||
{
|
||||
private readonly FeatureSignatures _feature;
|
||||
public override Feature Feature
|
||||
{
|
||||
get
|
||||
{
|
||||
return _feature;
|
||||
}
|
||||
}
|
||||
|
||||
public SignaturesSettings(FeatureSignatures feature = null)
|
||||
{
|
||||
this._feature = feature;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
// Allow null feature for designer
|
||||
if (feature != null)
|
||||
{
|
||||
checkForceSet.Checked = feature.AlwaysSetLocal;
|
||||
}
|
||||
}
|
||||
|
||||
override public void Apply()
|
||||
{
|
||||
}
|
||||
|
||||
private void CheckDirty()
|
||||
{
|
||||
Dirty = false;
|
||||
}
|
||||
|
||||
private void buttonResync_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (_feature != null)
|
||||
{
|
||||
ProgressDialog.Execute("SignaturesSync",
|
||||
(ct) =>
|
||||
{
|
||||
_feature.ResyncAll();
|
||||
return 0;
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkForceSet_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (_feature != null)
|
||||
_feature.AlwaysSetLocal = checkForceSet.Checked;
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,252 @@
|
||||
<?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>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="_layout.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="_layout.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="_layout.ColumnCount" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="checkForceSet.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="checkForceSet.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="checkForceSet.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 4</value>
|
||||
</data>
|
||||
<data name="checkForceSet.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="checkForceSet.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>152, 17</value>
|
||||
</data>
|
||||
<data name="checkForceSet.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="checkForceSet.Text" xml:space="preserve">
|
||||
<value>Override local signatures</value>
|
||||
</data>
|
||||
<data name=">>checkForceSet.Name" xml:space="preserve">
|
||||
<value>checkForceSet</value>
|
||||
</data>
|
||||
<data name=">>checkForceSet.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=">>checkForceSet.Parent" xml:space="preserve">
|
||||
<value>_layout</value>
|
||||
</data>
|
||||
<data name=">>checkForceSet.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="buttonResync.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="buttonResync.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 28</value>
|
||||
</data>
|
||||
<data name="buttonResync.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>8, 0, 8, 0</value>
|
||||
</data>
|
||||
<data name="buttonResync.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>154, 23</value>
|
||||
</data>
|
||||
<data name="buttonResync.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="buttonResync.Text" xml:space="preserve">
|
||||
<value>Resynchronise signatures</value>
|
||||
</data>
|
||||
<data name=">>buttonResync.Name" xml:space="preserve">
|
||||
<value>buttonResync</value>
|
||||
</data>
|
||||
<data name=">>buttonResync.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>buttonResync.Parent" xml:space="preserve">
|
||||
<value>_layout</value>
|
||||
</data>
|
||||
<data name=">>buttonResync.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="_layout.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Fill</value>
|
||||
</data>
|
||||
<data name="_layout.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="_layout.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>2, 2, 2, 2</value>
|
||||
</data>
|
||||
<data name="_layout.RowCount" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="_layout.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>160, 54</value>
|
||||
</data>
|
||||
<data name="_layout.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name=">>_layout.Name" xml:space="preserve">
|
||||
<value>_layout</value>
|
||||
</data>
|
||||
<data name=">>_layout.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.TableLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>_layout.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>_layout.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="_layout.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
|
||||
<value><?xml version="1.0" encoding="utf-16"?><TableLayoutSettings><Controls><Control Name="checkForceSet" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /><Control Name="buttonResync" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /></Controls><Columns Styles="Percent,100,Absolute,20" /><Rows Styles="AutoSize,0,AutoSize,0" /></TableLayoutSettings></value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
|
||||
<value>GrowAndShrink</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>2, 2, 2, 2</value>
|
||||
</data>
|
||||
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>160, 54</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>SignaturesSettings</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>Acacia.UI.FeatureSettings, Kopano, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
</root>
|
@ -132,6 +132,15 @@ namespace Acacia.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Signatures.
|
||||
/// </summary>
|
||||
internal static string Feature_Signatures {
|
||||
get {
|
||||
return ResourceManager.GetString("Feature_Signatures", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Address Book for {0}.
|
||||
/// </summary>
|
||||
@ -1019,6 +1028,24 @@ namespace Acacia.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to The signatures are being synchronised..
|
||||
/// </summary>
|
||||
internal static string SignaturesSync_Label {
|
||||
get {
|
||||
return ResourceManager.GetString("SignaturesSync_Label", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Signatures.
|
||||
/// </summary>
|
||||
internal static string SignaturesSync_Title {
|
||||
get {
|
||||
return ResourceManager.GetString("SignaturesSync_Title", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to There is an error with the security certificate for server {0}. Do you want to allow the connection anyway?.
|
||||
/// </summary>
|
||||
|
@ -445,4 +445,13 @@
|
||||
<data name="AccountNoPassword_Title" xml:space="preserve">
|
||||
<value>Password unavailable</value>
|
||||
</data>
|
||||
<data name="Feature_Signatures" xml:space="preserve">
|
||||
<value>Signatures</value>
|
||||
</data>
|
||||
<data name="SignaturesSync_Label" xml:space="preserve">
|
||||
<value>The signatures are being synchronised.</value>
|
||||
</data>
|
||||
<data name="SignaturesSync_Title" xml:space="preserve">
|
||||
<value>Signatures</value>
|
||||
</data>
|
||||
</root>
|
@ -126,14 +126,10 @@
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="buttonApply.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>358, 4</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="buttonApply.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>269, 3</value>
|
||||
</data>
|
||||
<data name="buttonApply.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 33</value>
|
||||
<value>75, 27</value>
|
||||
</data>
|
||||
<data name="buttonApply.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -157,13 +153,10 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="buttonCancel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>250, 4</value>
|
||||
</data>
|
||||
<data name="buttonCancel.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>188, 3</value>
|
||||
</data>
|
||||
<data name="buttonCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 33</value>
|
||||
<value>75, 27</value>
|
||||
</data>
|
||||
<data name="buttonCancel.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@ -187,13 +180,10 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="buttonOK.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 4</value>
|
||||
</data>
|
||||
<data name="buttonOK.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>107, 3</value>
|
||||
</data>
|
||||
<data name="buttonOK.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 33</value>
|
||||
<value>75, 27</value>
|
||||
</data>
|
||||
<data name="buttonOK.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@ -213,6 +203,7 @@
|
||||
<data name=">>buttonOK.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="flowLayoutPanel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
@ -220,16 +211,13 @@
|
||||
<value>RightToLeft</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 394</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>0, 374</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>0, 0, 7, 0</value>
|
||||
<value>0, 0, 5, 0</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>469, 37</value>
|
||||
<value>352, 30</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -250,16 +238,13 @@
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>8, 16</value>
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>469, 431</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
<value>352, 404</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterParent</value>
|
||||
@ -271,6 +256,6 @@
|
||||
<value>SettingsDialog</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>Acacia.UI.KopanoDialog, Kopano, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
</root>
|
Loading…
Reference in New Issue
Block a user