30 Commits

Author SHA1 Message Date
Abdel
d79ea44306 Update README.md 2024-03-28 18:46:21 -04:00
abdelkader
724113e304 added image batch export 2024-03-28 18:39:06 -04:00
abdelkader
32bf064f93 added the clear image batch operation 2024-03-28 13:14:43 -04:00
abdelkader
250279cf7c fix when opening new file
feature: image count
2024-03-28 12:10:40 -04:00
abdelkader
62744daa8a fix image type retrieval 2024-03-27 17:22:17 -04:00
abdelkader
4dad2c4151 fix the filter 2024-03-21 08:57:48 -04:00
abdelkader
e89b85411f Fixed the image handlers 2024-03-21 08:47:22 -04:00
abdelkader
81ce797614 keep focus on text box filter 2024-03-21 08:41:38 -04:00
abdelkader
2eb633cfd7 remove unused warning
fix bug
2024-03-21 08:39:29 -04:00
abdelkader
7a575bf526 forget a declaration 2024-03-20 18:17:39 -04:00
abdelkader
ad990213be Fix a multiple firing event 2024-03-20 18:16:55 -04:00
abdelkader
d1296f66b7 show the last inserted address 2024-03-20 17:21:05 -04:00
abdelkader
6b133c27f5 Merge branch 'master' of https://github.com/abdelkader/vCardEditor 2024-03-20 16:04:50 -04:00
abdelkader
ce69d72d46 fix a bug in Add Address 2024-03-20 16:04:28 -04:00
abdelkader
b2edc48f66 Added Parcel, and Preferred 2024-03-20 15:04:18 -04:00
abdelkader
ae3961ec33 rename OverWrite
refactor some code
2024-03-20 09:54:14 -04:00
abdelkader
bad8fee66b arrange some code 2024-03-20 09:50:48 -04:00
abdelkader
4ab38ffea7 move some code around. 2024-03-20 09:48:28 -04:00
abdelkader
2faa7965cd Extra Tab show number of item.
Correct a designer pb
2024-03-20 09:34:17 -04:00
Abdel
3d558b0216 Update README.md
new image
2024-03-19 13:09:52 -04:00
Abdel
ad28a57df8 Update README.md
added a new image
2024-03-19 13:05:34 -04:00
abdelkader
ba9d26f981 some minor changes 2024-03-19 12:28:25 -04:00
abdelkader
abbb03dddf added a button to the extra tab 2024-03-19 12:04:55 -04:00
abdelkader
a989351889 remove the flowlayout panel, and replace it with a simple panel. 2024-03-19 11:48:18 -04:00
abdelkader
22f7f88018 move the declaration, so the autogenerate of vs won't remove them 2024-03-19 11:41:37 -04:00
abdelkader
85bb588f42 saving only if change occured 2024-03-19 08:41:19 -04:00
abdelkader
1bf467f81f catch error when parsing error.
optimize parsing of vcard
save last row
2024-03-18 17:26:20 -04:00
abdelkader
7e8c43e011 refactor 2024-03-18 13:02:42 -04:00
abdelkader
7d09a9ee3e Use Version Class to handle version, and added some error handling 2024-03-18 12:34:47 -04:00
abdelkader
77c1e45bfd the application check if un update is available. 2024-03-18 11:05:52 -04:00
73 changed files with 640 additions and 583 deletions

View File

@@ -1906,13 +1906,12 @@ namespace Thought.vCards
/// </summary>
private void ReadInto_PHOTO(vCard card, vCardProperty property)
{
string[] Formats = { "GIF", "CGM", "WMF", "JPEG", "BMP", "MET", "PMB", "DIB", "PICT", "TIFF", "PS", "PDF" };
string imageType = property.Subproperties.GetValue("TYPE", Formats);
string imageType = property.Subproperties.GetValue("TYPE");
// The PHOTO property contains an embedded (encoded) image
// or a link to an image. A URL (linked) image is supposed
// to be indicated with the VALUE=URI subproperty.
string valueType = property.Subproperties.GetValue("VALUE");
//URI is the standard, but I've seen examples online of URL
@@ -2290,10 +2289,7 @@ namespace Thought.vCards
firstLine = firstLine.Trim();
if (firstLine.Length == 0)
{
Warnings.Add(Thought.vCards.WarningMessages.BlankLine);
continue;
}
// Get the index of the colon (:) in this
// property line. All vCard properties are
@@ -2301,10 +2297,7 @@ namespace Thought.vCards
int colonIndex = firstLine.IndexOf(':');
if (colonIndex == -1)
{
Warnings.Add(Thought.vCards.WarningMessages.ColonMissing);
continue;
}
// Get the name portion of the property. This
// portion contains the property name as well
@@ -2312,10 +2305,7 @@ namespace Thought.vCards
string namePart = firstLine.Substring(0, colonIndex).Trim();
if (string.IsNullOrEmpty(namePart))
{
Warnings.Add(Thought.vCards.WarningMessages.EmptyName);
continue;
}
// Split apart the name portion of the property.
// A property can have subproperties, separated
@@ -2323,17 +2313,14 @@ namespace Thought.vCards
string[] nameParts = namePart.Split(';');
for (int i = 0; i < nameParts.Length; i++)
nameParts[i] = nameParts[i].Trim();
nameParts[i] = nameParts[i].Trim();
// The name of the property is supposed to
// be first on the line. An empty name is not
// legal syntax.
if (nameParts[0].Length == 0)
{
Warnings.Add(Thought.vCards.WarningMessages.EmptyName);
continue;
}
// At this point there is sufficient text
// to define a vCard property. The only
@@ -2362,13 +2349,14 @@ namespace Thought.vCards
if (subNameValue.Length == 1)
{
// The Split function above returned a single
// array element. This means no equal (=) sign
// was present. The subproperty consists of
// a name only.
property.Subproperties.Add(
nameParts[index].Trim());
// The Split function above returned a single
// array element. This means no equal (=) sign
// was present. The subproperty consists of
// a name only.
if (!string.IsNullOrEmpty(subNameValue[0]))
{
property.Subproperties.Add(nameParts[index].Trim());
}
}
else
{

View File

@@ -311,8 +311,8 @@ namespace Thought.vCards
vCardValueCollection values = new vCardValueCollection(';');
values.Add(string.Empty);
values.Add(string.Empty);
values.Add(address.PostOfficeBox);
values.Add(address.ExtendedAddress);
values.Add(!string.IsNullOrEmpty(address.Street) ? address.Street.Replace("\r\n", "\n") : string.Empty);
values.Add(address.City);
values.Add(address.Region);

View File

@@ -1,12 +1,11 @@
using System;
using Thought.vCards;
using VCFEditor.View;
using vCardEditor.View;
using vCardEditor.View.Customs;
using VCFEditor.Repository;
using vCardEditor.Repository;
using vCardEditor.Model;
using System.Linq;
using System.IO;
using System.Collections.Generic;
namespace VCFEditor.Presenter
@@ -15,6 +14,7 @@ namespace VCFEditor.Presenter
{
private readonly IMainView _view;
private readonly IContactRepository _repository;
public MainPresenter(IMainView view, IContactRepository repository)
{
@@ -39,9 +39,72 @@ namespace VCFEditor.Presenter
_view.AddressRemoved += AddressRemovedHandler;
_view.CopyTextToClipboardEvent += CopyTextToClipboardHandler;
_view.AddExtraField += _view_AddExtraField;
_view.CountImagesEvent += _view_CountImages;
_view.ClearImagesEvent += _view_ClearImages;
_view.BatchExportImagesEvent += _view_BatchExportImagesEvent;
}
private void _view_BatchExportImagesEvent(object sender, EventArgs e)
{
if (_repository.Contacts == null || _repository.Contacts.Count == 0)
return;
int count = 0;
for (int i = 0; i < _repository.Contacts.Count; i++)
{
if (_repository.Contacts[i].card.Photos.Count > 0)
{
count++;
SaveCardPhoto(_repository.Contacts[i].card, i);
}
}
if (count > 0)
_view.DisplayMessage($"{count} contact(s) processed!", "Photo Count");
else
_view.DisplayMessage($"No picture found!", "Photo Count");
}
private void _view_ClearImages(object sender, EventArgs e)
{
if (_repository.Contacts == null || _repository.Contacts.Count == 0)
return;
int count = 0;
for (int i = 0; i < _repository.Contacts.Count; i++)
{
if (_repository.Contacts[i].card.Photos.Count > 0)
{
count++;
_repository.ModifyImage(i, null);
//remove from the form the image displayed.
if (_view.SelectedContactIndex == i)
_view.ClearImageFromForm();
}
}
if (count > 0)
_view.DisplayMessage($"{count} contact(s) processed!", "Photo Count");
else
_view.DisplayMessage($"No picture found!", "Photo Count");
}
private void _view_CountImages(object sender, EventArgs e)
{
if (_repository.Contacts == null)
return;
var count = _repository.Contacts.Count(x => x.card.Photos.Count > 0);
if (count > 0)
_view.DisplayMessage($"{count} contact(s) containing a picture = ", "Photo Count");
else
_view.DisplayMessage($"No picture found!", "Photo Count");
}
private void _view_AddExtraField(object sender, EventArg<vCardPropeties> e)
{
_view.AddExtraTextGroup(e.Data, string.Empty);
@@ -103,16 +166,25 @@ namespace VCFEditor.Presenter
{
//TODO: image can be url, or file location.
var card = _repository.Contacts[_view.SelectedContactIndex].card;
var image = card.Photos.FirstOrDefault();
SaveCardPhoto(card, _view.SelectedContactIndex, true);
}
}
if (image != null)
{
var newPath = _repository.ChangeExtension(_repository.fileName, image.Extension);
private void SaveCardPhoto(vCard card, int index, bool askUser = false)
{
//TODO: Save every image for a vCard.
var image = card.Photos.FirstOrDefault();
string imageFile = _view.DisplaySaveDialog(newPath);
_repository.SaveImageToDisk(imageFile, image);
}
if (image != null)
{
var newPath = _repository.GenerateFileName(_repository.fileName, index, image.Extension);
//string ImagePath = string.Empty;
//if (askUser)
// ImagePath = _view.DisplaySaveDialog(newPath);
_repository.SaveImageToDisk(newPath, image);
}
}

View File

@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
// en utilisant '*', comme indiqué ci-dessous :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("0.5.3")]
[assembly: AssemblyVersion("0.5.7")]

View File

@@ -1,5 +1,11 @@
0.5.4
0.5.5
redisgn the extra tab
Fix some bugs
0.5.4
Fix a regression when saving Phones, Website, Email
added the update button in the about dialog to check the latest version.
0.5.3
Support of QR Code.

View File

@@ -30,10 +30,13 @@ namespace vCardEditor.Repository
}
[Description("Overwrite the file when saving")]
public bool OverWrite { get; set; }
public bool Overwrite { get; set; }
[Description("Maximum entries for MRU ")]
public int Maximum { get; set; }
[Description("Url for checking application version")]
public string VersionUrl { get; set; }
[Browsable(false)]
public FixedList Paths { get; set; }
@@ -86,7 +89,8 @@ namespace vCardEditor.Repository
configData = new ConfigRepository
{
Maximum = MAX_RECENT_FILES,
Paths = new FixedList(MAX_RECENT_FILES)
Paths = new FixedList(MAX_RECENT_FILES),
VersionUrl = "https://raw.githubusercontent.com/abdelkader/vCardEditor/master/vCardEditor/Releases.txt"
};
}

View File

@@ -4,7 +4,6 @@ using System.Linq;
using System.Text;
using Thought.vCards;
using VCFEditor.Model;
using System.ComponentModel;
using vCardEditor.Repository;
using vCardEditor.View;
@@ -64,25 +63,45 @@ namespace VCFEditor.Repository
string[] lines = _fileHandler.ReadAllLines(fileName);
StringBuilder RawContent = new StringBuilder();
Contact contact = new Contact();
Contact contact;
for (int i = 0; i < lines.Length; i++)
{
RawContent.AppendLine(lines[i]);
if (string.Equals(lines[i].TrimEnd(), "END:VCARD", StringComparison.OrdinalIgnoreCase))
try
{
contact.card = ParseRawContent(RawContent);
Contacts.Add(contact);
contact = new Contact();
RawContent.Length = 0;
if (string.Equals(lines[i].TrimEnd(), "END:VCARD", StringComparison.OrdinalIgnoreCase))
{
contact = new Contact
{
card = ParseRawContent(RawContent)
};
Contacts.Add(contact);
RawContent.Length = 0;
}
}
catch (Exception)
{
OriginalContactList = null;
return false;
}
}
OriginalContactList = Contacts;
return true;
}
private vCard ParseRawContent(StringBuilder rawContent)
{
vCard card = null;
using (StringReader reader = new StringReader(rawContent.ToString()))
card = new vCard(reader);
return card;
}
public void AddEmptyContact()
{
if (_contacts != null && _contacts.Count > 0)
@@ -99,7 +118,7 @@ namespace VCFEditor.Repository
fileName = this.fileName;
//Take a copy if specified in the config file
if (!ConfigRepository.Instance.OverWrite)
if (!ConfigRepository.Instance.Overwrite)
{
string backupName = GetBackupName();
_fileHandler.MoveFile(fileName, backupName);
@@ -118,9 +137,9 @@ namespace VCFEditor.Repository
//Clean the flag for every contact, even the deleted ones.
entry.isDirty = false;
}
}
_dirty = false;
_fileHandler.WriteAllText(fileName, sb.ToString());
}
@@ -156,28 +175,6 @@ namespace VCFEditor.Repository
}
private vCard ParseRawContent(StringBuilder rawContent)
{
vCard card = null;
using (MemoryStream s = GenerateStreamFromString(rawContent.ToString()))
using (TextReader streamReader = new StreamReader(s, Encoding.UTF8))
{
card = new vCard(streamReader);
}
return card;
}
private MemoryStream GenerateStreamFromString(string s)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
}
public SortableBindingList<Contact> FilterContacts(string filter)
{
@@ -360,10 +357,11 @@ namespace VCFEditor.Repository
public string GenerateStringFromVCard(vCard card)
{
vCardStandardWriter writer = new vCardStandardWriter();
TextWriter tw = new StringWriter();
writer.Write(card, tw);
return tw.ToString();
using (TextWriter tw = new StringWriter())
{
writer.Write(card, tw);
return tw.ToString();
}
}
public void ModifyImage(int index, vCardPhoto photo)
@@ -392,7 +390,10 @@ namespace VCFEditor.Repository
return _fileHandler.ChangeExtension(path, extension);
}
public string GenerateFileName(string fileName, int index, string extension)
{
string result = Path.Combine(Path.GetDirectoryName(fileName), index.ToString() + "." + extension);
return result;
}
}
}

View File

@@ -5,7 +5,7 @@ namespace vCardEditor.Repository
public interface IConfigRepository
{
int Maximum { get; set; }
bool OverWrite { get; set; }
bool Overwrite { get; set; }
FixedList Paths { get; set; }
void SaveConfig();

View File

@@ -23,9 +23,10 @@ namespace VCFEditor.Repository
void AddEmptyContact();
void ModifyImage(int index, vCardPhoto photo);
string GetExtension(string path);
string ChangeExtension(string path, string extension);
//string ChangeExtension(string path, int index, string extension);
void SaveImageToDisk(string imageFile, vCardPhoto image);
string GenerateStringFromVCard(vCard card);
string GenerateFileName(string fileName, int index, string extension);
}
}

View File

@@ -1,90 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// Ce code a été généré par un outil.
// Version du runtime :4.0.30319.34209
//
// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
// le code est régénéré.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Thought.vCards {
using System;
/// <summary>
/// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
/// </summary>
// Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
// à l'aide d'un outil, tel que ResGen ou Visual Studio.
// Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
// avec l'option /str ou régénérez votre projet VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class WarningMessages {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal WarningMessages() {
}
/// <summary>
/// Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("vCardEditor.Thought.vCards.WarningMessages", typeof(WarningMessages).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Remplace la propriété CurrentUICulture du thread actuel pour toutes
/// les recherches de ressources à l'aide de cette classe de ressource fortement typée.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Recherche une chaîne localisée semblable à Line {0} A blank line was encountered. This is not allowed in the vCard specification..
/// </summary>
internal static string BlankLine {
get {
return ResourceManager.GetString("BlankLine", resourceCulture);
}
}
/// <summary>
/// Recherche une chaîne localisée semblable à Line {0}: A colon (:) is missing. All properties must be in NAME:VALUE format..
/// </summary>
internal static string ColonMissing {
get {
return ResourceManager.GetString("ColonMissing", resourceCulture);
}
}
/// <summary>
/// Recherche une chaîne localisée semblable à Line {0}: The name section of the property is empty..
/// </summary>
internal static string EmptyName {
get {
return ResourceManager.GetString("EmptyName", resourceCulture);
}
}
}
}

View File

@@ -1,129 +0,0 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="BlankLine" xml:space="preserve">
<value>Line {0} A blank line was encountered. This is not allowed in the vCard specification.</value>
</data>
<data name="ColonMissing" xml:space="preserve">
<value>Line {0}: A colon (:) is missing. All properties must be in NAME:VALUE format.</value>
</data>
<data name="EmptyName" xml:space="preserve">
<value>Line {0}: The name section of the property is empty.</value>
</data>
</root>

View File

@@ -36,36 +36,42 @@
this.labelCompanyName = new System.Windows.Forms.Label();
this.textBoxDescription = new System.Windows.Forms.TextBox();
this.okButton = new System.Windows.Forms.Button();
this.updateButton = new System.Windows.Forms.Button();
this.tableLayoutPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel
//
this.tableLayoutPanel.ColumnCount = 2;
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 27.81775F));
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 72.18225F));
this.tableLayoutPanel.ColumnCount = 3;
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 32.31441F));
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67.68559F));
this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 119F));
this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0);
this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0);
this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1);
this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2);
this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3);
this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4);
this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5);
this.tableLayoutPanel.Controls.Add(this.okButton, 2, 5);
this.tableLayoutPanel.Controls.Add(this.updateButton, 1, 5);
this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel.Location = new System.Drawing.Point(12, 11);
this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4);
this.tableLayoutPanel.Name = "tableLayoutPanel";
this.tableLayoutPanel.RowCount = 6;
this.tableLayoutPanel.RowCount = 7;
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 47.93651F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 12.69841F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 8F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel.Size = new System.Drawing.Size(556, 326);
this.tableLayoutPanel.TabIndex = 0;
//
@@ -76,69 +82,74 @@
this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4);
this.logoPictureBox.Name = "logoPictureBox";
this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6);
this.logoPictureBox.Size = new System.Drawing.Size(145, 121);
this.logoPictureBox.Size = new System.Drawing.Size(133, 121);
this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.logoPictureBox.TabIndex = 12;
this.logoPictureBox.TabStop = false;
//
// labelProductName
//
this.tableLayoutPanel.SetColumnSpan(this.labelProductName, 2);
this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelProductName.Location = new System.Drawing.Point(162, 0);
this.labelProductName.Location = new System.Drawing.Point(149, 0);
this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21);
this.labelProductName.Name = "labelProductName";
this.labelProductName.Size = new System.Drawing.Size(390, 21);
this.labelProductName.Size = new System.Drawing.Size(403, 21);
this.labelProductName.TabIndex = 19;
this.labelProductName.Text = "Nom du produit";
this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelVersion
//
this.tableLayoutPanel.SetColumnSpan(this.labelVersion, 2);
this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelVersion.Location = new System.Drawing.Point(162, 32);
this.labelVersion.Location = new System.Drawing.Point(149, 31);
this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21);
this.labelVersion.Name = "labelVersion";
this.labelVersion.Size = new System.Drawing.Size(390, 21);
this.labelVersion.Size = new System.Drawing.Size(403, 21);
this.labelVersion.TabIndex = 0;
this.labelVersion.Text = "Version";
this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelCopyright
//
this.tableLayoutPanel.SetColumnSpan(this.labelCopyright, 2);
this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCopyright.Location = new System.Drawing.Point(162, 64);
this.labelCopyright.Location = new System.Drawing.Point(149, 62);
this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21);
this.labelCopyright.Name = "labelCopyright";
this.labelCopyright.Size = new System.Drawing.Size(390, 21);
this.labelCopyright.Size = new System.Drawing.Size(403, 21);
this.labelCopyright.TabIndex = 21;
this.labelCopyright.Text = "Copyright";
this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// labelCompanyName
//
this.tableLayoutPanel.SetColumnSpan(this.labelCompanyName, 2);
this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill;
this.labelCompanyName.Location = new System.Drawing.Point(162, 96);
this.labelCompanyName.Location = new System.Drawing.Point(149, 93);
this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0);
this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21);
this.labelCompanyName.Name = "labelCompanyName";
this.labelCompanyName.Size = new System.Drawing.Size(390, 21);
this.labelCompanyName.Size = new System.Drawing.Size(403, 21);
this.labelCompanyName.TabIndex = 22;
this.labelCompanyName.Text = "Nom de la société";
this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// textBoxDescription
//
this.tableLayoutPanel.SetColumnSpan(this.textBoxDescription, 2);
this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill;
this.textBoxDescription.Location = new System.Drawing.Point(162, 132);
this.textBoxDescription.Location = new System.Drawing.Point(149, 128);
this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4);
this.textBoxDescription.Multiline = true;
this.textBoxDescription.Name = "textBoxDescription";
this.textBoxDescription.ReadOnly = true;
this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both;
this.textBoxDescription.Size = new System.Drawing.Size(390, 155);
this.textBoxDescription.Size = new System.Drawing.Size(403, 143);
this.textBoxDescription.TabIndex = 23;
this.textBoxDescription.TabStop = false;
this.textBoxDescription.Text = "Description";
@@ -147,13 +158,23 @@
//
this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.okButton.Location = new System.Drawing.Point(452, 295);
this.okButton.Location = new System.Drawing.Point(442, 282);
this.okButton.Margin = new System.Windows.Forms.Padding(4);
this.okButton.Name = "okButton";
this.okButton.Size = new System.Drawing.Size(100, 27);
this.okButton.Size = new System.Drawing.Size(110, 29);
this.okButton.TabIndex = 24;
this.okButton.Text = "&OK";
//
// updateButton
//
this.updateButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.updateButton.Location = new System.Drawing.Point(312, 283);
this.updateButton.Name = "updateButton";
this.updateButton.Size = new System.Drawing.Size(121, 29);
this.updateButton.TabIndex = 25;
this.updateButton.Text = "Check update...";
this.updateButton.Click += new System.EventHandler(this.updateButton_Click);
//
// AboutDialog
//
this.AcceptButton = this.okButton;
@@ -188,5 +209,6 @@
private System.Windows.Forms.Label labelCompanyName;
private System.Windows.Forms.TextBox textBoxDescription;
private System.Windows.Forms.Button okButton;
private System.Windows.Forms.Button updateButton;
}
}

View File

@@ -2,9 +2,13 @@
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Reflection;
using System.Threading.Tasks;
using System.Windows.Forms;
using vCardEditor.Repository;
namespace vCardEditor.View
{
@@ -100,5 +104,36 @@ namespace vCardEditor.View
}
}
#endregion
private async void updateButton_Click(object sender, EventArgs e)
{
try
{
using (var client = new WebClient())
{
string result = await client.DownloadStringTaskAsync(ConfigRepository.Instance.VersionUrl);
using (var reader = new StringReader(result))
{
string InternetVersion = reader.ReadLine();
string AssemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();
Version v1 = new Version(InternetVersion);
Version v2 = new Version(AssemblyVersion);
if (v1.CompareTo(v2) > 0)
MessageBox.Show(string.Format("New version {0} found!", result), "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
MessageBox.Show("You have the latest version!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
catch (WebException )
{
MessageBox.Show("Could not download version information from GitHub.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch (Exception )
{
MessageBox.Show("Error processing version information.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}

View File

@@ -10,7 +10,7 @@ namespace vCardEditor.View
public ConfigDialog()
{
InitializeComponent();
ConfigRepository conf = ConfigRepository.Instance;//
ConfigRepository conf = ConfigRepository.Instance;
pgConfig.SelectedObject = conf;
}
}

View File

@@ -36,8 +36,8 @@ namespace vCardEditor.View.Customs
this.btnOK = new System.Windows.Forms.Button();
this.btnCancel = new System.Windows.Forms.Button();
this.cbInternational = new System.Windows.Forms.CheckBox();
this.cbCustom = new System.Windows.Forms.CheckBox();
this.textBox1 = new System.Windows.Forms.TextBox();
this.cbParcel = new System.Windows.Forms.CheckBox();
this.cbPreferred = new System.Windows.Forms.CheckBox();
this.SuspendLayout();
//
// cbHome
@@ -73,7 +73,7 @@ namespace vCardEditor.View.Customs
// cbDomestic
//
this.cbDomestic.AutoSize = true;
this.cbDomestic.Location = new System.Drawing.Point(12, 94);
this.cbDomestic.Location = new System.Drawing.Point(143, 40);
this.cbDomestic.Name = "cbDomestic";
this.cbDomestic.Size = new System.Drawing.Size(88, 21);
this.cbDomestic.TabIndex = 3;
@@ -82,8 +82,9 @@ namespace vCardEditor.View.Customs
//
// btnOK
//
this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK;
this.btnOK.Location = new System.Drawing.Point(95, 187);
this.btnOK.Location = new System.Drawing.Point(95, 161);
this.btnOK.Name = "btnOK";
this.btnOK.Size = new System.Drawing.Size(75, 23);
this.btnOK.TabIndex = 7;
@@ -93,9 +94,10 @@ namespace vCardEditor.View.Customs
//
// btnCancel
//
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnCancel.CausesValidation = false;
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnCancel.Location = new System.Drawing.Point(176, 187);
this.btnCancel.Location = new System.Drawing.Point(176, 161);
this.btnCancel.Name = "btnCancel";
this.btnCancel.Size = new System.Drawing.Size(75, 23);
this.btnCancel.TabIndex = 8;
@@ -105,37 +107,41 @@ namespace vCardEditor.View.Customs
// cbInternational
//
this.cbInternational.AutoSize = true;
this.cbInternational.Location = new System.Drawing.Point(12, 121);
this.cbInternational.Location = new System.Drawing.Point(143, 12);
this.cbInternational.Name = "cbInternational";
this.cbInternational.Size = new System.Drawing.Size(108, 21);
this.cbInternational.TabIndex = 9;
this.cbInternational.Text = "International";
this.cbInternational.UseVisualStyleBackColor = true;
//
// cbCustom
// cbParcel
//
this.cbCustom.AutoSize = true;
this.cbCustom.Location = new System.Drawing.Point(12, 148);
this.cbCustom.Name = "cbCustom";
this.cbCustom.Size = new System.Drawing.Size(81, 21);
this.cbCustom.TabIndex = 10;
this.cbCustom.Text = "Custom:";
this.cbCustom.UseVisualStyleBackColor = true;
this.cbParcel.AutoSize = true;
this.cbParcel.Location = new System.Drawing.Point(143, 67);
this.cbParcel.Name = "cbParcel";
this.cbParcel.Size = new System.Drawing.Size(70, 21);
this.cbParcel.TabIndex = 10;
this.cbParcel.Text = "Parcel";
this.cbParcel.UseVisualStyleBackColor = true;
//
// textBox1
// cbPreferred
//
this.textBox1.Location = new System.Drawing.Point(90, 149);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(161, 22);
this.textBox1.TabIndex = 11;
this.cbPreferred.AutoSize = true;
this.cbPreferred.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cbPreferred.Location = new System.Drawing.Point(95, 113);
this.cbPreferred.Name = "cbPreferred";
this.cbPreferred.Size = new System.Drawing.Size(99, 21);
this.cbPreferred.TabIndex = 11;
this.cbPreferred.Text = "Preferred";
this.cbPreferred.UseVisualStyleBackColor = true;
//
// AddAddress
// AddAddressDialog
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(263, 223);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.cbCustom);
this.ClientSize = new System.Drawing.Size(263, 196);
this.Controls.Add(this.cbPreferred);
this.Controls.Add(this.cbParcel);
this.Controls.Add(this.cbInternational);
this.Controls.Add(this.btnCancel);
this.Controls.Add(this.btnOK);
@@ -143,7 +149,7 @@ namespace vCardEditor.View.Customs
this.Controls.Add(this.cbPostal);
this.Controls.Add(this.cbWork);
this.Controls.Add(this.cbHome);
this.Name = "AddAddress";
this.Name = "AddAddressDialog";
this.Text = "Address Type";
this.ResumeLayout(false);
this.PerformLayout();
@@ -159,7 +165,7 @@ namespace vCardEditor.View.Customs
private System.Windows.Forms.Button btnOK;
private System.Windows.Forms.Button btnCancel;
private System.Windows.Forms.CheckBox cbInternational;
private System.Windows.Forms.CheckBox cbCustom;
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.CheckBox cbParcel;
private System.Windows.Forms.CheckBox cbPreferred;
}
}

View File

@@ -1,11 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Thought.vCards;
@@ -30,50 +26,52 @@ namespace vCardEditor.View.Customs
Addresses = addressCollection;
_checkBoxes = Controls.OfType<CheckBox>().ToList();
foreach (var item in addressCollection)
{
switch (item.ToString())
{
case "Home":
cbHome.Checked = true;
break;
break;
case "Work":
cbWork.Checked = true;
break;
case "Postal":
cbPostal.Checked = true;
break;
case "Parcel":
cbParcel.Checked = true;
break;
case "Preferred":
cbPreferred.Checked = true;
break;
case "Domestic":
cbDomestic.Checked = true;
break;
case "International":
cbInternational.Checked = true;
break;
case "Default":
cbCustom.Checked = true;
break;
}
}
}
private void btnOK_Click(object sender, EventArgs e)
{
var total = _checkBoxes
.Where(checkBox => checkBox.Checked);
var checkedItems = _checkBoxes.Where(checkBox => checkBox.Checked);
if (total.Count() == 0)
if (checkedItems.Count() == 0)
{
MessageBox.Show("One item must be checked!");
MessageBox.Show("At least, one address type must be checked!");
DialogResult = DialogResult.None;
return;
}
foreach (var item in total)
Addresses.Clear();
foreach (var item in checkedItems)
{
var enumType = (vCardDeliveryAddressTypes)Enum.Parse(typeof(vCardDeliveryAddressTypes), item.Text, true);
Addresses.Add(enumType);
@@ -81,6 +79,5 @@ namespace vCardEditor.View.Customs
}
}
}

View File

@@ -29,38 +29,36 @@ namespace vCardEditor.View.Customs
/// </summary>
private void InitializeComponent()
{
this.ExtAddrValue = new vCardEditor.View.StateTextBox();
this.ExtAddrValue = new vCardEditor.View.Customs.StateTextBox();
this.ExtAdressLabel = new System.Windows.Forms.Label();
this.StreetLabel = new System.Windows.Forms.Label();
this.StreetValue = new vCardEditor.View.StateTextBox();
this.StreetValue = new vCardEditor.View.Customs.StateTextBox();
this.POBoxLabel = new System.Windows.Forms.Label();
this.CountryValue = new vCardEditor.View.StateTextBox();
this.CountryValue = new vCardEditor.View.Customs.StateTextBox();
this.Country = new System.Windows.Forms.Label();
this.POBoxValue = new vCardEditor.View.StateTextBox();
this.POBoxValue = new vCardEditor.View.Customs.StateTextBox();
this.CityLabel = new System.Windows.Forms.Label();
this.RegionValue = new vCardEditor.View.StateTextBox();
this.CityValue = new vCardEditor.View.StateTextBox();
this.RegionValue = new vCardEditor.View.Customs.StateTextBox();
this.CityValue = new vCardEditor.View.Customs.StateTextBox();
this.StateLabel = new System.Windows.Forms.Label();
this.ZipLabel = new System.Windows.Forms.Label();
this.ZipValue = new vCardEditor.View.StateTextBox();
this.ZipValue = new vCardEditor.View.Customs.StateTextBox();
this.SuspendLayout();
//
// ExtAddrValue
//
this.ExtAddrValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ExtAddrValue.Location = new System.Drawing.Point(90, 45);
this.ExtAddrValue.Location = new System.Drawing.Point(68, 45);
this.ExtAddrValue.Margin = new System.Windows.Forms.Padding(4);
this.ExtAddrValue.Name = "ExtAddrValue";
this.ExtAddrValue.oldText = null;
this.ExtAddrValue.Size = new System.Drawing.Size(237, 22);
this.ExtAddrValue.Size = new System.Drawing.Size(190, 22);
this.ExtAddrValue.TabIndex = 27;
this.ExtAddrValue.LostFocus += new System.EventHandler(this.Value_TextChanged);
this.ExtAddrValue.Validated += new System.EventHandler(this.Value_TextChanged);
//
// ExtAdressLabel
//
this.ExtAdressLabel.Location = new System.Drawing.Point(4, 45);
this.ExtAdressLabel.Location = new System.Drawing.Point(5, 44);
this.ExtAdressLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.ExtAdressLabel.Name = "ExtAdressLabel";
this.ExtAdressLabel.Size = new System.Drawing.Size(40, 23);
@@ -73,7 +71,7 @@ namespace vCardEditor.View.Customs
this.StreetLabel.Location = new System.Drawing.Point(2, 14);
this.StreetLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.StreetLabel.Name = "StreetLabel";
this.StreetLabel.Size = new System.Drawing.Size(65, 23);
this.StreetLabel.Size = new System.Drawing.Size(64, 23);
this.StreetLabel.TabIndex = 14;
this.StreetLabel.Text = "Address:";
this.StreetLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
@@ -82,18 +80,18 @@ namespace vCardEditor.View.Customs
//
this.StreetValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.StreetValue.Location = new System.Drawing.Point(90, 14);
this.StreetValue.Location = new System.Drawing.Point(68, 14);
this.StreetValue.Margin = new System.Windows.Forms.Padding(4);
this.StreetValue.Name = "StreetValue";
this.StreetValue.oldText = "";
this.StreetValue.Size = new System.Drawing.Size(613, 22);
this.StreetValue.Size = new System.Drawing.Size(632, 22);
this.StreetValue.TabIndex = 15;
this.StreetValue.LostFocus += new System.EventHandler(this.Value_TextChanged);
this.StreetValue.Validated += new System.EventHandler(this.Value_TextChanged);
//
// POBoxLabel
//
this.POBoxLabel.Location = new System.Drawing.Point(338, 75);
this.POBoxLabel.Location = new System.Drawing.Point(267, 76);
this.POBoxLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.POBoxLabel.Name = "POBoxLabel";
this.POBoxLabel.Size = new System.Drawing.Size(38, 23);
@@ -105,18 +103,18 @@ namespace vCardEditor.View.Customs
//
this.CountryValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.CountryValue.Location = new System.Drawing.Point(579, 76);
this.CountryValue.Location = new System.Drawing.Point(557, 76);
this.CountryValue.Margin = new System.Windows.Forms.Padding(4);
this.CountryValue.Name = "CountryValue";
this.CountryValue.oldText = null;
this.CountryValue.Size = new System.Drawing.Size(125, 22);
this.CountryValue.Size = new System.Drawing.Size(143, 22);
this.CountryValue.TabIndex = 25;
this.CountryValue.LostFocus += new System.EventHandler(this.Value_TextChanged);
this.CountryValue.Validated += new System.EventHandler(this.Value_TextChanged);
//
// Country
//
this.Country.Location = new System.Drawing.Point(505, 76);
this.Country.Location = new System.Drawing.Point(486, 74);
this.Country.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.Country.Name = "Country";
this.Country.Size = new System.Drawing.Size(65, 23);
@@ -126,20 +124,18 @@ namespace vCardEditor.View.Customs
//
// POBoxValue
//
this.POBoxValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.POBoxValue.Location = new System.Drawing.Point(397, 76);
this.POBoxValue.Location = new System.Drawing.Point(315, 77);
this.POBoxValue.Margin = new System.Windows.Forms.Padding(4);
this.POBoxValue.Name = "POBoxValue";
this.POBoxValue.oldText = null;
this.POBoxValue.Size = new System.Drawing.Size(100, 22);
this.POBoxValue.Size = new System.Drawing.Size(166, 22);
this.POBoxValue.TabIndex = 17;
this.POBoxValue.LostFocus += new System.EventHandler(this.Value_TextChanged);
this.POBoxValue.Validated += new System.EventHandler(this.Value_TextChanged);
//
// CityLabel
//
this.CityLabel.Location = new System.Drawing.Point(338, 46);
this.CityLabel.Location = new System.Drawing.Point(267, 44);
this.CityLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.CityLabel.Name = "CityLabel";
this.CityLabel.Size = new System.Drawing.Size(32, 23);
@@ -151,31 +147,29 @@ namespace vCardEditor.View.Customs
//
this.RegionValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.RegionValue.Location = new System.Drawing.Point(90, 75);
this.RegionValue.Location = new System.Drawing.Point(557, 44);
this.RegionValue.Margin = new System.Windows.Forms.Padding(4);
this.RegionValue.Name = "RegionValue";
this.RegionValue.oldText = null;
this.RegionValue.Size = new System.Drawing.Size(236, 22);
this.RegionValue.Size = new System.Drawing.Size(143, 22);
this.RegionValue.TabIndex = 23;
this.RegionValue.LostFocus += new System.EventHandler(this.Value_TextChanged);
this.RegionValue.Validated += new System.EventHandler(this.Value_TextChanged);
//
// CityValue
//
this.CityValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.CityValue.Location = new System.Drawing.Point(397, 45);
this.CityValue.Location = new System.Drawing.Point(316, 46);
this.CityValue.Margin = new System.Windows.Forms.Padding(4);
this.CityValue.Name = "CityValue";
this.CityValue.oldText = null;
this.CityValue.Size = new System.Drawing.Size(127, 22);
this.CityValue.Size = new System.Drawing.Size(166, 22);
this.CityValue.TabIndex = 19;
this.CityValue.LostFocus += new System.EventHandler(this.Value_TextChanged);
this.CityValue.Validated += new System.EventHandler(this.Value_TextChanged);
//
// StateLabel
//
this.StateLabel.Location = new System.Drawing.Point(2, 74);
this.StateLabel.Location = new System.Drawing.Point(486, 46);
this.StateLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.StateLabel.Name = "StateLabel";
this.StateLabel.Size = new System.Drawing.Size(61, 23);
@@ -185,31 +179,29 @@ namespace vCardEditor.View.Customs
//
// ZipLabel
//
this.ZipLabel.Location = new System.Drawing.Point(533, 45);
this.ZipLabel.Location = new System.Drawing.Point(5, 75);
this.ZipLabel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.ZipLabel.Name = "ZipLabel";
this.ZipLabel.Size = new System.Drawing.Size(37, 23);
this.ZipLabel.TabIndex = 20;
this.ZipLabel.TabIndex = 28;
this.ZipLabel.Text = "Zip:";
this.ZipLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// ZipValue
//
this.ZipValue.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ZipValue.Location = new System.Drawing.Point(579, 46);
this.ZipValue.Location = new System.Drawing.Point(68, 77);
this.ZipValue.Margin = new System.Windows.Forms.Padding(4);
this.ZipValue.Name = "ZipValue";
this.ZipValue.oldText = null;
this.ZipValue.Size = new System.Drawing.Size(124, 22);
this.ZipValue.TabIndex = 21;
this.ZipValue.LostFocus += new System.EventHandler(this.Value_TextChanged);
this.ZipValue.Validated += new System.EventHandler(this.Value_TextChanged);
this.ZipValue.Size = new System.Drawing.Size(190, 22);
this.ZipValue.TabIndex = 29;
//
// AddressBox
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.ZipLabel);
this.Controls.Add(this.ZipValue);
this.Controls.Add(this.ExtAddrValue);
this.Controls.Add(this.ExtAdressLabel);
this.Controls.Add(this.StreetLabel);
@@ -222,8 +214,6 @@ namespace vCardEditor.View.Customs
this.Controls.Add(this.RegionValue);
this.Controls.Add(this.CityValue);
this.Controls.Add(this.StateLabel);
this.Controls.Add(this.ZipLabel);
this.Controls.Add(this.ZipValue);
this.Name = "AddressBox";
this.Size = new System.Drawing.Size(706, 104);
this.ResumeLayout(false);

View File

@@ -98,7 +98,7 @@ namespace vCardEditor.View.Customs
da.AddressType = diag.Addresses;
AddtabForAddress(da);
AddTab?.Invoke(sender, new EventArg<List<vCardDeliveryAddressTypes>>(diag.Addresses));
SelectedIndex = TabCount - 1;
SelectedIndex = TabCount - 2;
}
}
@@ -200,6 +200,7 @@ namespace vCardEditor.View.Customs
da.PostalCode, da.ExtendedAddress, da.PostOfficeBox, da.AddressType);
ab.TextChangedEvent += (s, e) => TextChangedEvent?.Invoke(s, e);
ab.Dock = DockStyle.Fill;
page.Controls.Add(ab);
page.ToolTipText = string.Join(",", da.AddressType.ConvertAll(f => f.ToString()));

View File

@@ -9,20 +9,10 @@ namespace vCardEditor.View.Customs
public partial class ExtendedPanel : UserControl
{
public event EventHandler ContentTextChanged;
public string Caption
{
get { return PanelContent.Text; }
set { PanelContent.Text = value; }
}
public PanelType panelType { get; set; }
public ExtendedPanel(PanelType _panel)
public ExtendedPanel()
{
InitializeComponent();
panelType = _panel;
miCell.Click += MenuItemClickHandlers;
miCell.Tag = new vCardPhone(string.Empty, vCardPhoneTypes.Cellular);
@@ -47,7 +37,15 @@ namespace vCardEditor.View.Customs
//}
}
public event EventHandler ContentTextChanged;
public string Caption
{
get { return PanelContent.Text; }
set { PanelContent.Text = value; }
}
public PanelType panelType { get; set; }
private void MenuItemClickHandlers(object sender, EventArgs e)
{
var tag = (sender as ToolStripMenuItem).Tag;

View File

@@ -30,7 +30,7 @@ namespace vCardEditor.View.UIToolbox
private void InitializeComponent()
{
this.btnClose = new System.Windows.Forms.Button();
this.txtContent = new vCardEditor.View.StateTextBox();
this.txtContent = new vCardEditor.View.Customs.StateTextBox();
this.label2 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
@@ -47,6 +47,8 @@ namespace vCardEditor.View.UIToolbox
//
// txtContent
//
this.txtContent.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtContent.Location = new System.Drawing.Point(56, 4);
this.txtContent.Multiline = true;
this.txtContent.Name = "txtContent";
@@ -76,7 +78,7 @@ namespace vCardEditor.View.UIToolbox
#endregion
private System.Windows.Forms.Button btnClose;
private StateTextBox txtContent;
private Customs.StateTextBox txtContent;
private System.Windows.Forms.Label label2;
}
}

View File

@@ -31,7 +31,7 @@ namespace vCardEditor.View.Customs
{
this.btnRemove = new System.Windows.Forms.Button();
this.TitleLabel = new System.Windows.Forms.Label();
this.ContentTextBox = new vCardEditor.View.StateTextBox();
this.ContentTextBox = new vCardEditor.View.Customs.StateTextBox();
this.SuspendLayout();
//
// btnRemove

View File

@@ -1,7 +1,7 @@
using System;
using System.Windows.Forms;
namespace vCardEditor.View
namespace vCardEditor.View.Customs
{
public class StateTextBox : TextBox
{
@@ -9,8 +9,8 @@ namespace vCardEditor.View
protected override void OnLostFocus(EventArgs e)
{
base.OnLostFocus(e);
oldText = this.Text;
base.OnLostFocus(e);
}
}

View File

@@ -12,5 +12,7 @@ namespace VCFEditor.View
}
public T Data { get; set; }
public bool CanCancel { get; set; }
}
}

View File

@@ -27,6 +27,9 @@ namespace VCFEditor.View
event EventHandler<EventArg<int>> AddressRemoved;
event EventHandler CopyTextToClipboardEvent;
event EventHandler<EventArg<vCardPropeties>> AddExtraField;
event EventHandler CountImagesEvent;
event EventHandler ClearImagesEvent;
event EventHandler BatchExportImagesEvent;
int SelectedContactIndex { get; }
void DisplayContacts(SortableBindingList<Contact> contacts);
void DisplayContactDetail(vCard card, string FileName);
@@ -43,5 +46,7 @@ namespace VCFEditor.View
void LoadIntialState(FormState state);
void AddExtraTextGroup(vCardPropeties type, string content);
void DisplayQRCode(string content);
void ClearImageFromForm();
}
}

View File

@@ -78,19 +78,19 @@ namespace vCardEditor.View
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
this.tcMainTab = new System.Windows.Forms.TabControl();
this.TapPageMain = new System.Windows.Forms.TabPage();
this.extendedPanelWeb = new vCardEditor.View.Customs.ExtendedPanel(PanelType.Web);
this.extendedPanelPhones = new vCardEditor.View.Customs.ExtendedPanel(PanelType.Phone);
this.extendedPanelWeb = new vCardEditor.View.Customs.ExtendedPanel();
this.extendedPanelPhones = new vCardEditor.View.Customs.ExtendedPanel();
this.btnExportImage = new System.Windows.Forms.Button();
this.groupBox3 = new System.Windows.Forms.GroupBox();
this.FormattedTitleValue = new vCardEditor.View.StateTextBox();
this.FormattedTitleValue = new vCardEditor.View.Customs.StateTextBox();
this.FormattedTitleLabel = new System.Windows.Forms.Label();
this.lastNameValue = new vCardEditor.View.StateTextBox();
this.lastNameValue = new vCardEditor.View.Customs.StateTextBox();
this.label3 = new System.Windows.Forms.Label();
this.middleNameValue = new vCardEditor.View.StateTextBox();
this.middleNameValue = new vCardEditor.View.Customs.StateTextBox();
this.label2 = new System.Windows.Forms.Label();
this.firstNameValue = new vCardEditor.View.StateTextBox();
this.firstNameValue = new vCardEditor.View.Customs.StateTextBox();
this.label1 = new System.Windows.Forms.Label();
this.FormattedNameValue = new vCardEditor.View.StateTextBox();
this.FormattedNameValue = new vCardEditor.View.Customs.StateTextBox();
this.FormattedNameLabel = new System.Windows.Forms.Label();
this.btnRemoveImage = new System.Windows.Forms.Button();
this.groupBox4 = new System.Windows.Forms.GroupBox();
@@ -98,7 +98,12 @@ namespace vCardEditor.View
this.tabPage3 = new System.Windows.Forms.TabPage();
this.PhotoBox = new System.Windows.Forms.PictureBox();
this.TapPageExtra = new System.Windows.Forms.TabPage();
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.btnAddExtraText = new System.Windows.Forms.Button();
this.panelTabExtra = new System.Windows.Forms.Panel();
this.menuExtraField = new System.Windows.Forms.ContextMenuStrip(this.components);
this.miNote = new System.Windows.Forms.ToolStripMenuItem();
this.miOrg = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.gbNameList.SuspendLayout();
@@ -116,6 +121,8 @@ namespace vCardEditor.View
this.tbcAddress.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.PhotoBox)).BeginInit();
this.TapPageExtra.SuspendLayout();
this.groupBox1.SuspendLayout();
this.menuExtraField.SuspendLayout();
this.SuspendLayout();
//
// menuStrip1
@@ -128,7 +135,7 @@ namespace vCardEditor.View
this.helpToolStripMenuItem});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(1202, 30);
this.menuStrip1.Size = new System.Drawing.Size(1202, 28);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
@@ -142,7 +149,7 @@ namespace vCardEditor.View
this.recentFilesMenuItem,
this.miQuit});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(46, 26);
this.fileToolStripMenuItem.Size = new System.Drawing.Size(46, 24);
this.fileToolStripMenuItem.Text = "File";
//
// miSave
@@ -193,7 +200,7 @@ namespace vCardEditor.View
this.copyToolStripMenuItem,
this.extraFieldsToolStripMenuItem});
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
this.editToolStripMenuItem.Size = new System.Drawing.Size(49, 26);
this.editToolStripMenuItem.Size = new System.Drawing.Size(49, 24);
this.editToolStripMenuItem.Text = "Edit";
//
// copyToolStripMenuItem
@@ -231,7 +238,7 @@ namespace vCardEditor.View
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.imagesToolStripMenuItem});
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(58, 26);
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(58, 24);
this.toolsToolStripMenuItem.Text = "Tools";
//
// imagesToolStripMenuItem
@@ -241,33 +248,36 @@ namespace vCardEditor.View
this.clearToolStripMenuItem,
this.countToolStripMenuItem});
this.imagesToolStripMenuItem.Name = "imagesToolStripMenuItem";
this.imagesToolStripMenuItem.Size = new System.Drawing.Size(140, 26);
this.imagesToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
this.imagesToolStripMenuItem.Text = "Images";
//
// exportToolStripMenuItem
//
this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
this.exportToolStripMenuItem.Size = new System.Drawing.Size(135, 26);
this.exportToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
this.exportToolStripMenuItem.Text = "Export";
this.exportToolStripMenuItem.Click += new System.EventHandler(this.exportToolStripMenuItem_Click);
//
// clearToolStripMenuItem
//
this.clearToolStripMenuItem.Name = "clearToolStripMenuItem";
this.clearToolStripMenuItem.Size = new System.Drawing.Size(135, 26);
this.clearToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
this.clearToolStripMenuItem.Text = "Clear";
this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click);
//
// countToolStripMenuItem
//
this.countToolStripMenuItem.Name = "countToolStripMenuItem";
this.countToolStripMenuItem.Size = new System.Drawing.Size(135, 26);
this.countToolStripMenuItem.Size = new System.Drawing.Size(224, 26);
this.countToolStripMenuItem.Text = "Count";
this.countToolStripMenuItem.Click += new System.EventHandler(this.countToolStripMenuItem_Click);
//
// helpToolStripMenuItem
//
this.helpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.miAbout});
this.helpToolStripMenuItem.Name = "helpToolStripMenuItem";
this.helpToolStripMenuItem.Size = new System.Drawing.Size(55, 26);
this.helpToolStripMenuItem.Size = new System.Drawing.Size(55, 24);
this.helpToolStripMenuItem.Text = "Help";
//
// miAbout
@@ -301,9 +311,9 @@ namespace vCardEditor.View
this.toolStripSeparator1,
this.tbsAbout,
this.toolStripSeparator});
this.toolStrip1.Location = new System.Drawing.Point(0, 30);
this.toolStrip1.Location = new System.Drawing.Point(0, 28);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(1202, 31);
this.toolStrip1.Size = new System.Drawing.Size(1202, 27);
this.toolStrip1.TabIndex = 1;
this.toolStrip1.Text = "toolStrip1";
//
@@ -313,7 +323,7 @@ namespace vCardEditor.View
this.tbsNew.Image = ((System.Drawing.Image)(resources.GetObject("tbsNew.Image")));
this.tbsNew.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbsNew.Name = "tbsNew";
this.tbsNew.Size = new System.Drawing.Size(29, 28);
this.tbsNew.Size = new System.Drawing.Size(29, 24);
this.tbsNew.Text = "&Nouveau";
this.tbsNew.Click += new System.EventHandler(this.tbsNew_Click);
//
@@ -323,7 +333,7 @@ namespace vCardEditor.View
this.tbsOpen.Image = ((System.Drawing.Image)(resources.GetObject("tbsOpen.Image")));
this.tbsOpen.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbsOpen.Name = "tbsOpen";
this.tbsOpen.Size = new System.Drawing.Size(29, 28);
this.tbsOpen.Size = new System.Drawing.Size(29, 24);
this.tbsOpen.Text = "&Open";
this.tbsOpen.Click += new System.EventHandler(this.tbsOpen_Click);
//
@@ -333,7 +343,7 @@ namespace vCardEditor.View
this.tbsSave.Image = ((System.Drawing.Image)(resources.GetObject("tbsSave.Image")));
this.tbsSave.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbsSave.Name = "tbsSave";
this.tbsSave.Size = new System.Drawing.Size(29, 28);
this.tbsSave.Size = new System.Drawing.Size(29, 24);
this.tbsSave.Text = "&Save";
this.tbsSave.Click += new System.EventHandler(this.tbsSave_Click);
//
@@ -343,7 +353,7 @@ namespace vCardEditor.View
this.tbsDelete.Image = ((System.Drawing.Image)(resources.GetObject("tbsDelete.Image")));
this.tbsDelete.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbsDelete.Name = "tbsDelete";
this.tbsDelete.Size = new System.Drawing.Size(29, 28);
this.tbsDelete.Size = new System.Drawing.Size(29, 24);
this.tbsDelete.Text = "Delete";
this.tbsDelete.Click += new System.EventHandler(this.tbsDelete_Click);
//
@@ -353,14 +363,14 @@ namespace vCardEditor.View
this.tbsQR.Image = global::vCardEditor.Properties.Resources.nuget_icon;
this.tbsQR.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbsQR.Name = "tbsQR";
this.tbsQR.Size = new System.Drawing.Size(29, 28);
this.tbsQR.Size = new System.Drawing.Size(29, 24);
this.tbsQR.Text = "&QR Code";
this.tbsQR.Click += new System.EventHandler(this.tbsQR_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 31);
this.toolStripSeparator1.Size = new System.Drawing.Size(6, 27);
//
// tbsAbout
//
@@ -368,14 +378,14 @@ namespace vCardEditor.View
this.tbsAbout.Image = ((System.Drawing.Image)(resources.GetObject("tbsAbout.Image")));
this.tbsAbout.ImageTransparentColor = System.Drawing.Color.Magenta;
this.tbsAbout.Name = "tbsAbout";
this.tbsAbout.Size = new System.Drawing.Size(29, 28);
this.tbsAbout.Size = new System.Drawing.Size(29, 24);
this.tbsAbout.Text = "&?";
this.tbsAbout.Click += new System.EventHandler(this.tbsAbout_Click);
//
// toolStripSeparator
//
this.toolStripSeparator.Name = "toolStripSeparator";
this.toolStripSeparator.Size = new System.Drawing.Size(6, 31);
this.toolStripSeparator.Size = new System.Drawing.Size(6, 27);
//
// openFileDialog
//
@@ -392,7 +402,7 @@ namespace vCardEditor.View
this.gbNameList.Margin = new System.Windows.Forms.Padding(4);
this.gbNameList.Name = "gbNameList";
this.gbNameList.Padding = new System.Windows.Forms.Padding(4);
this.gbNameList.Size = new System.Drawing.Size(398, 580);
this.gbNameList.Size = new System.Drawing.Size(398, 586);
this.gbNameList.TabIndex = 2;
this.gbNameList.TabStop = false;
this.gbNameList.Text = "Name List :";
@@ -424,7 +434,7 @@ namespace vCardEditor.View
this.dgContacts.RowHeadersVisible = false;
this.dgContacts.RowHeadersWidth = 51;
this.dgContacts.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgContacts.Size = new System.Drawing.Size(390, 527);
this.dgContacts.Size = new System.Drawing.Size(390, 533);
this.dgContacts.TabIndex = 2;
this.dgContacts.CellContextMenuStripNeeded += new System.Windows.Forms.DataGridViewCellContextMenuStripNeededEventHandler(this.dgContacts_CellContextMenuStripNeeded);
this.dgContacts.RowLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgContacts_RowLeave);
@@ -507,7 +517,7 @@ namespace vCardEditor.View
// splitContainer1
//
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
this.splitContainer1.Location = new System.Drawing.Point(0, 61);
this.splitContainer1.Location = new System.Drawing.Point(0, 55);
this.splitContainer1.Name = "splitContainer1";
//
// splitContainer1.Panel1
@@ -517,7 +527,7 @@ namespace vCardEditor.View
// splitContainer1.Panel2
//
this.splitContainer1.Panel2.Controls.Add(this.tcMainTab);
this.splitContainer1.Size = new System.Drawing.Size(1202, 580);
this.splitContainer1.Size = new System.Drawing.Size(1202, 586);
this.splitContainer1.SplitterDistance = 398;
this.splitContainer1.TabIndex = 4;
//
@@ -530,7 +540,7 @@ namespace vCardEditor.View
this.tcMainTab.Location = new System.Drawing.Point(0, 0);
this.tcMainTab.Name = "tcMainTab";
this.tcMainTab.SelectedIndex = 0;
this.tcMainTab.Size = new System.Drawing.Size(800, 580);
this.tcMainTab.Size = new System.Drawing.Size(800, 586);
this.tcMainTab.TabIndex = 0;
//
// TapPageMain
@@ -546,29 +556,31 @@ namespace vCardEditor.View
this.TapPageMain.Location = new System.Drawing.Point(4, 25);
this.TapPageMain.Name = "TapPageMain";
this.TapPageMain.Padding = new System.Windows.Forms.Padding(3);
this.TapPageMain.Size = new System.Drawing.Size(792, 551);
this.TapPageMain.Size = new System.Drawing.Size(792, 557);
this.TapPageMain.TabIndex = 0;
this.TapPageMain.Text = "Main";
//
// extendedPanelWeb
//
this.extendedPanelWeb.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
this.extendedPanelWeb.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.extendedPanelWeb.Caption = "";
this.extendedPanelWeb.Location = new System.Drawing.Point(402, 383);
this.extendedPanelWeb.Location = new System.Drawing.Point(386, 389);
this.extendedPanelWeb.Name = "extendedPanelWeb";
this.extendedPanelWeb.panelType = vCardEditor.View.Customs.PanelType.Web;
this.extendedPanelWeb.Size = new System.Drawing.Size(381, 155);
this.extendedPanelWeb.Size = new System.Drawing.Size(397, 161);
this.extendedPanelWeb.TabIndex = 59;
//
// extendedPanelPhones
//
this.extendedPanelPhones.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.extendedPanelPhones.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.extendedPanelPhones.Caption = "";
this.extendedPanelPhones.Location = new System.Drawing.Point(13, 383);
this.extendedPanelPhones.Location = new System.Drawing.Point(13, 389);
this.extendedPanelPhones.Name = "extendedPanelPhones";
this.extendedPanelPhones.panelType = vCardEditor.View.Customs.PanelType.Phone;
this.extendedPanelPhones.Size = new System.Drawing.Size(367, 155);
this.extendedPanelPhones.Size = new System.Drawing.Size(367, 161);
this.extendedPanelPhones.TabIndex = 58;
//
// btnExportImage
@@ -581,6 +593,7 @@ namespace vCardEditor.View
this.btnExportImage.Size = new System.Drawing.Size(21, 23);
this.btnExportImage.TabIndex = 57;
this.btnExportImage.UseVisualStyleBackColor = true;
this.btnExportImage.Click += new System.EventHandler(this.btnExportImage_Click);
//
// groupBox3
//
@@ -724,18 +737,18 @@ namespace vCardEditor.View
this.btnRemoveImage.Size = new System.Drawing.Size(20, 23);
this.btnRemoveImage.TabIndex = 56;
this.btnRemoveImage.UseVisualStyleBackColor = true;
this.btnRemoveImage.Click += new System.EventHandler(this.btnRemoveImage_Click);
//
// groupBox4
//
this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.groupBox4.Controls.Add(this.tbcAddress);
this.groupBox4.Location = new System.Drawing.Point(13, 184);
this.groupBox4.Margin = new System.Windows.Forms.Padding(4);
this.groupBox4.Name = "groupBox4";
this.groupBox4.Padding = new System.Windows.Forms.Padding(4);
this.groupBox4.Size = new System.Drawing.Size(770, 192);
this.groupBox4.Size = new System.Drawing.Size(770, 198);
this.groupBox4.TabIndex = 5;
this.groupBox4.TabStop = false;
this.groupBox4.Text = "Address:";
@@ -753,7 +766,7 @@ namespace vCardEditor.View
this.tbcAddress.Padding = new System.Drawing.Point(12, 4);
this.tbcAddress.SelectedIndex = 0;
this.tbcAddress.ShowToolTips = true;
this.tbcAddress.Size = new System.Drawing.Size(745, 154);
this.tbcAddress.Size = new System.Drawing.Size(745, 160);
this.tbcAddress.TabIndex = 0;
//
// tabPage3
@@ -762,7 +775,7 @@ namespace vCardEditor.View
this.tabPage3.Location = new System.Drawing.Point(4, 27);
this.tabPage3.Name = "tabPage3";
this.tabPage3.Padding = new System.Windows.Forms.Padding(3);
this.tabPage3.Size = new System.Drawing.Size(737, 123);
this.tabPage3.Size = new System.Drawing.Size(737, 129);
this.tabPage3.TabIndex = 0;
this.tabPage3.Text = " ";
//
@@ -778,11 +791,12 @@ namespace vCardEditor.View
this.PhotoBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.PhotoBox.TabIndex = 55;
this.PhotoBox.TabStop = false;
this.PhotoBox.Click += new System.EventHandler(this.PhotoBox_Click);
//
// TapPageExtra
//
this.TapPageExtra.BackColor = System.Drawing.SystemColors.Control;
this.TapPageExtra.Controls.Add(this.flowLayoutPanel1);
this.TapPageExtra.Controls.Add(this.groupBox1);
this.TapPageExtra.Location = new System.Drawing.Point(4, 25);
this.TapPageExtra.Name = "TapPageExtra";
this.TapPageExtra.Padding = new System.Windows.Forms.Padding(3);
@@ -790,15 +804,62 @@ namespace vCardEditor.View
this.TapPageExtra.TabIndex = 1;
this.TapPageExtra.Text = "Extra";
//
// flowLayoutPanel1
// groupBox1
//
this.flowLayoutPanel1.BackColor = System.Drawing.SystemColors.Control;
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 3);
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
this.flowLayoutPanel1.Size = new System.Drawing.Size(786, 551);
this.flowLayoutPanel1.TabIndex = 0;
this.groupBox1.Controls.Add(this.btnAddExtraText);
this.groupBox1.Controls.Add(this.panelTabExtra);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox1.Location = new System.Drawing.Point(3, 3);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(786, 551);
this.groupBox1.TabIndex = 0;
this.groupBox1.TabStop = false;
//
// btnAddExtraText
//
this.btnAddExtraText.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnAddExtraText.BackColor = System.Drawing.SystemColors.Window;
this.btnAddExtraText.Image = global::vCardEditor.Properties.Resources.Add;
this.btnAddExtraText.Location = new System.Drawing.Point(732, 0);
this.btnAddExtraText.Name = "btnAddExtraText";
this.btnAddExtraText.Size = new System.Drawing.Size(39, 22);
this.btnAddExtraText.TabIndex = 59;
this.btnAddExtraText.UseVisualStyleBackColor = true;
this.btnAddExtraText.Click += new System.EventHandler(this.btnAddExtraText_Click);
//
// panelTabExtra
//
this.panelTabExtra.AutoScroll = true;
this.panelTabExtra.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelTabExtra.Location = new System.Drawing.Point(3, 18);
this.panelTabExtra.Name = "panelTabExtra";
this.panelTabExtra.Size = new System.Drawing.Size(780, 530);
this.panelTabExtra.TabIndex = 1;
this.panelTabExtra.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.panelTabExtra_ControlAdded);
this.panelTabExtra.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.panelTabExtra_ControlRemoved);
//
// menuExtraField
//
this.menuExtraField.ImageScalingSize = new System.Drawing.Size(20, 20);
this.menuExtraField.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.miNote,
this.miOrg});
this.menuExtraField.Name = "contextMenuStrip1";
this.menuExtraField.Size = new System.Drawing.Size(164, 52);
//
// miNote
//
this.miNote.Name = "miNote";
this.miNote.Size = new System.Drawing.Size(163, 24);
this.miNote.Text = "Note";
this.miNote.Click += new System.EventHandler(this.miNote_Click);
//
// miOrg
//
this.miOrg.Name = "miOrg";
this.miOrg.Size = new System.Drawing.Size(163, 24);
this.miOrg.Text = "Organisation";
this.miOrg.Click += new System.EventHandler(this.miOrg_Click);
//
// MainForm
//
@@ -840,6 +901,8 @@ namespace vCardEditor.View
this.tbcAddress.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.PhotoBox)).EndInit();
this.TapPageExtra.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.menuExtraField.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
@@ -889,12 +952,9 @@ namespace vCardEditor.View
private System.Windows.Forms.TabControl tcMainTab;
private System.Windows.Forms.TabPage TapPageMain;
private System.Windows.Forms.TabPage TapPageExtra;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
private System.Windows.Forms.ToolStripMenuItem extraFieldsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem addNotesToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem addOrgToolStripMenuItem;
private ExtendedPanel extendedPanelWeb;
private ExtendedPanel extendedPanelPhones;
private System.Windows.Forms.Button btnExportImage;
private System.Windows.Forms.GroupBox groupBox3;
internal StateTextBox FormattedTitleValue;
@@ -913,5 +973,13 @@ namespace vCardEditor.View
private System.Windows.Forms.TabPage tabPage3;
internal System.Windows.Forms.PictureBox PhotoBox;
private System.Windows.Forms.ToolStripButton tbsQR;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Panel panelTabExtra;
private System.Windows.Forms.Button btnAddExtraText;
private System.Windows.Forms.ContextMenuStrip menuExtraField;
private System.Windows.Forms.ToolStripMenuItem miNote;
private System.Windows.Forms.ToolStripMenuItem miOrg;
private ExtendedPanel extendedPanelWeb;
private ExtendedPanel extendedPanelPhones;
}
}

View File

@@ -34,10 +34,16 @@ namespace vCardEditor.View
public event EventHandler ExportImage;
public event EventHandler ExportQR;
public event EventHandler CopyTextToClipboardEvent;
public event EventHandler CountImagesEvent;
public event EventHandler ClearImagesEvent;
public event EventHandler BatchExportImagesEvent;
ComponentResourceManager resources;
private int LastRowIndex = -1;
public int SelectedContactIndex
{
get
@@ -50,10 +56,12 @@ namespace vCardEditor.View
}
public MainForm()
{
InitializeComponent();
resources = new ComponentResourceManager(typeof(MainForm));
tbcAddress.AddTab += (sender, e) => AddressAdded?.Invoke(sender, e);
tbcAddress.RemoveTab += (sender, e) => AddressRemoved?.Invoke(sender, e);
@@ -65,10 +73,21 @@ namespace vCardEditor.View
BuildMRUMenu();
}
private void tbsOpen_Click(object sender, EventArgs e)
{
NewFileOpened?.Invoke(sender, new EventArg<string>(string.Empty));
OpenFile(sender, string.Empty);
}
private void OpenFile(object sender, string filename)
{
var evt = new EventArg<string>(filename);
NewFileOpened?.Invoke(sender, new EventArg<string>(filename));
if (!evt.CanCancel)
LastRowIndex = -1;
}
public void DisplayContacts(SortableBindingList<Contact> contacts)
@@ -84,6 +103,10 @@ namespace vCardEditor.View
{
//make sure the last changes in the textboxes is saved.
Validate();
//Make sure to save changes for the current row.
dgContacts_RowLeave(null, null);
SaveContactsSelected(sender, e);
}
@@ -96,13 +119,25 @@ namespace vCardEditor.View
private void dgContacts_SelectionChanged(object sender, EventArgs e)
{
if (ChangeContactsSelected != null && dgContacts.CurrentCell != null)
if (dgContacts.CurrentCell == null)
return;
//Weired, the selection is fired multiple times...
int RowIndex = dgContacts.CurrentCell.RowIndex;
if (LastRowIndex != RowIndex)
{
vCard data = GetvCardFromWindow();
ChangeContactsSelected(sender, new EventArg<vCard>(data));
if (ChangeContactsSelected != null && dgContacts.CurrentCell != null)
{
vCard data = GetvCardFromWindow();
ChangeContactsSelected(sender, new EventArg<vCard>(data));
}
else
ChangeContactsSelected(sender, new EventArg<vCard>(null));
LastRowIndex = RowIndex;
}
else
ChangeContactsSelected(sender, new EventArg<vCard>(null));
}
private void Value_TextChanged(object sender, EventArgs e)
@@ -117,9 +152,9 @@ namespace vCardEditor.View
throw new ArgumentException("vCard must be valid!");
ClearContactDetail();
Text = string.Format("{0} - vCard Editor", FileName);
//gbContactDetail.Enabled = true;
tcMainTab.Enabled = true;
gbNameList.Enabled = true;
@@ -128,12 +163,11 @@ namespace vCardEditor.View
SetSummaryValue(lastNameValue, card.FamilyName);
SetSummaryValue(middleNameValue, card.AdditionalNames);
SetSummaryValue(FormattedNameValue, card.FormattedName);
SetAddressesValues(card);
SetPhotoValue(card.Photos);
SetExtraInfos(card);
SetExtraTabFields(card);
}
@@ -141,37 +175,28 @@ namespace vCardEditor.View
private void SetExtraInfos(vCard card)
{
foreach (var item in card.EmailAddresses)
{
extendedPanelWeb.AddControl(item);
}
foreach (var item in card.Websites)
{
extendedPanelWeb.AddControl(item);
}
foreach (var item in card.Phones)
{
extendedPanelPhones.AddControl(item);
}
}
private void SetExtraTabFields(vCard card)
{
if (card.Notes.Count > 0)
{
foreach (var note in card.Notes)
AddExtraTextGroup(vCardPropeties.NOTE, note.Text);
}
foreach (var note in card.Notes)
AddExtraTextGroup(vCardPropeties.NOTE, note.Text);
if (!string.IsNullOrEmpty(card.Organization))
{
AddExtraTextGroup(vCardPropeties.ORG, card.Organization);
}
}
public void AddExtraTextGroup(vCardPropeties type, string content)
@@ -184,15 +209,16 @@ namespace vCardEditor.View
etg.ControlDeleted += (sender, e) =>
{
var send = sender as Control;
flowLayoutPanel1.Controls.Remove(send.Parent);
panelTabExtra.Controls.Remove(send.Parent);
};
etg.Dock = DockStyle.Top;
flowLayoutPanel1.Controls.Add(etg);
panelTabExtra.Controls.Add(etg);
}
public void ClearContactDetail()
{
//gbContactDetail.Enabled = false;
tcMainTab.Enabled = false;
gbNameList.Enabled = false;
@@ -202,11 +228,8 @@ namespace vCardEditor.View
SetSummaryValue(FormattedTitleValue, string.Empty);
SetSummaryValue(FormattedNameValue, string.Empty);
//SetAddressesValues(new vCard());
SetPhotoValue(new vCardPhotoCollection());
flowLayoutPanel1.Controls.Clear();
panelTabExtra.Controls.Clear();
extendedPanelPhones.ClearFields();
extendedPanelWeb.ClearFields();
}
@@ -269,12 +292,15 @@ namespace vCardEditor.View
{
//Save before leaving contact.
BeforeLeavingContact?.Invoke(sender, new EventArg<vCard>(GetvCardFromWindow()));
FilterTextChanged?.Invoke(sender, new EventArg<string>(textBoxFilter.Text));
LastRowIndex = -1;
dgContacts.ClearSelection();
textBoxFilter.Focus();
}
private vCard GetvCardFromWindow()
{
vCard card = new vCard
@@ -300,7 +326,7 @@ namespace vCardEditor.View
card.Phones.Clear();
foreach (var item in extendedPanelPhones.GetExtraFields())
{
if (item is vCardPhone)
if (item is vCardPhone)
{
vCardPhone phone = item as vCardPhone;
card.Phones.Add(phone);
@@ -333,11 +359,11 @@ namespace vCardEditor.View
}
private void getExtraData(vCard card)
{
foreach (var item in flowLayoutPanel1.Controls)
foreach (var item in panelTabExtra.Controls)
{
var tbc = item as ExtraTextGroup;
switch (tbc.CardProp)
@@ -380,18 +406,14 @@ namespace vCardEditor.View
return;
}
NewFileOpened(sender, new EventArg<string>(FileList[0]));
OpenFile(sender, FileList[0]);
}
private void BuildMRUMenu()
{
recentFilesMenuItem.DropDownItemClicked += (s, e) =>
{
var evt = new EventArg<string>(e.ClickedItem.Text);
NewFileOpened(s, evt);
};
recentFilesMenuItem.DropDownItemClicked += (s, e) => OpenFile(s, e.ClickedItem.Text);
UpdateMRUMenu(ConfigRepository.Instance.Paths);
}
@@ -487,6 +509,11 @@ namespace vCardEditor.View
}
public void ClearImageFromForm()
{
PhotoBox.Image = (Image)resources.GetObject("PhotoBox.Image");
}
private void btnRemoveImage_Click(object sender, EventArgs e)
{
PhotoBox.Image = (Image)resources.GetObject("PhotoBox.Image");
@@ -509,6 +536,7 @@ namespace vCardEditor.View
Clipboard.SetText(text);
}
private void dgContacts_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e)
{
if (e.RowIndex == -1)
@@ -606,6 +634,17 @@ namespace vCardEditor.View
}
}
}
private void tbsQR_Click(object sender, EventArgs e)
{
ExportQR?.Invoke(sender, e);
}
public void DisplayQRCode(string content)
{
QRDialog qr = new QRDialog(content);
qr.ShowDialog();
}
private void addNotesToolStripMenuItem_Click(object sender, EventArgs e)
{
@@ -619,15 +658,50 @@ namespace vCardEditor.View
AddExtraField?.Invoke(sender, evt);
}
private void tbsQR_Click(object sender, EventArgs e)
private void btnAddExtraText_Click(object sender, EventArgs e)
{
ExportQR?.Invoke(sender, e);
Button btnSender = (Button)sender;
Point ptLowerLeft = new Point(0, btnSender.Height);
ptLowerLeft = btnSender.PointToScreen(ptLowerLeft);
menuExtraField.Show(ptLowerLeft);
}
public void DisplayQRCode(string content)
private void miNote_Click(object sender, EventArgs e)
{
QRDialog qr = new QRDialog(content);
qr.ShowDialog();
var evt = new EventArg<vCardPropeties>(vCardPropeties.NOTE);
AddExtraField?.Invoke(sender, evt);
}
private void miOrg_Click(object sender, EventArgs e)
{
var evt = new EventArg<vCardPropeties>(vCardPropeties.ORG);
AddExtraField?.Invoke(sender, evt);
}
private void panelTabExtra_ControlAdded(object sender, ControlEventArgs e)
{
TapPageExtra.Text = string.Format("Extra ({0})", panelTabExtra.Controls.Count);
}
private void panelTabExtra_ControlRemoved(object sender, ControlEventArgs e)
{
TapPageExtra.Text = string.Format("Extra ({0})", panelTabExtra.Controls.Count);
}
private void countToolStripMenuItem_Click(object sender, EventArgs e)
{
CountImagesEvent?.Invoke(sender, e);
}
private void clearToolStripMenuItem_Click(object sender, EventArgs e)
{
ClearImagesEvent?.Invoke(sender, e);
}
private void exportToolStripMenuItem_Click(object sender, EventArgs e)
{
BatchExportImagesEvent?.Invoke(sender, e);
}
}
}

View File

@@ -336,6 +336,12 @@
XvxneHv7DU8zWBta5VGXAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="menuExtraField.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>804, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAkAAAAAAAEAIAAHLwAAlgAAAICAAAABACAAKAgBAJ0vAABgYAAAAQAgAKiUAADFNwEASEgAAAEA

View File

@@ -99,51 +99,50 @@
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Repository\Interfaces\IFileHandler.cs" />
<Compile Include="Thought.vCards\vCard.cs" />
<Compile Include="Thought.vCards\vCardAccessClassification.cs" />
<Compile Include="Thought.vCards\vCardCertificate.cs" />
<Compile Include="Thought.vCards\vCardCertificateCollection.cs" />
<Compile Include="Thought.vCards\vCardCollection.cs" />
<Compile Include="Thought.vCards\vCardDeliveryAddress.cs" />
<Compile Include="Thought.vCards\vCardDeliveryAddressCollection.cs" />
<Compile Include="Thought.vCards\vCardDeliveryAddressTypes.cs" />
<Compile Include="Thought.vCards\vCardDeliveryLabel.cs" />
<Compile Include="Thought.vCards\vCardDeliveryLabelCollection.cs" />
<Compile Include="Thought.vCards\vCardEmailAddress.cs" />
<Compile Include="Thought.vCards\vCardEmailAddressCollection.cs" />
<Compile Include="Thought.vCards\vCardEmailAddressType.cs" />
<Compile Include="Thought.vCards\vCardEncoding.cs" />
<Compile Include="Thought.vCards\vCardException.cs" />
<Compile Include="Thought.vCards\vCardFormat.cs" />
<Compile Include="Thought.vCards\vCardGender.cs" />
<Compile Include="Thought.vCards\vCardIMPP.cs" />
<Compile Include="Thought.vCards\vCardIMPPCollection.cs" />
<Compile Include="Thought.vCards\vCardNote.cs" />
<Compile Include="Thought.vCards\vCardNoteCollection.cs" />
<Compile Include="Thought.vCards\vCardPhone.cs" />
<Compile Include="Thought.vCards\vCardPhoneCollection.cs" />
<Compile Include="Thought.vCards\vCardPhoneTypes.cs" />
<Compile Include="Thought.vCards\vCardPhoto.cs" />
<Compile Include="Thought.vCards\vCardPhotoCollection.cs" />
<Compile Include="Thought.vCards\vCardProperty.cs" />
<Compile Include="Thought.vCards\vCardPropertyCollection.cs" />
<Compile Include="Thought.vCards\vCardReader.cs" />
<Compile Include="Thought.vCards\vCardRoot.cs" />
<Compile Include="Thought.vCards\vCardSocialProfile.cs" />
<Compile Include="Thought.vCards\vCardSocialProfileCollection.cs" />
<Compile Include="Thought.vCards\vCardSource.cs" />
<Compile Include="Thought.vCards\vCardSourceCollection.cs" />
<Compile Include="Thought.vCards\vCardStandardReader.cs" />
<Compile Include="Thought.vCards\vCardStandardWriter.cs" />
<Compile Include="Thought.vCards\vCardStandardWriterOptions.cs" />
<Compile Include="Thought.vCards\vCardSubproperty.cs" />
<Compile Include="Thought.vCards\vCardSubpropertyCollection.cs" />
<Compile Include="Thought.vCards\vCardValueCollection.cs" />
<Compile Include="Thought.vCards\vCardWebsite.cs" />
<Compile Include="Thought.vCards\vCardWebsiteCollection.cs" />
<Compile Include="Thought.vCards\vCardWebsiteTypes.cs" />
<Compile Include="Thought.vCards\vCardWriter.cs" />
<Compile Include="Thought.vCards\WarningMessages.Designer.cs" />
<Compile Include="Libs\Thought.vCards\vCard.cs" />
<Compile Include="Libs\Thought.vCards\vCardAccessClassification.cs" />
<Compile Include="Libs\Thought.vCards\vCardCertificate.cs" />
<Compile Include="Libs\Thought.vCards\vCardCertificateCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardDeliveryAddress.cs" />
<Compile Include="Libs\Thought.vCards\vCardDeliveryAddressCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardDeliveryAddressTypes.cs" />
<Compile Include="Libs\Thought.vCards\vCardDeliveryLabel.cs" />
<Compile Include="Libs\Thought.vCards\vCardDeliveryLabelCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardEmailAddress.cs" />
<Compile Include="Libs\Thought.vCards\vCardEmailAddressCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardEmailAddressType.cs" />
<Compile Include="Libs\Thought.vCards\vCardEncoding.cs" />
<Compile Include="Libs\Thought.vCards\vCardException.cs" />
<Compile Include="Libs\Thought.vCards\vCardFormat.cs" />
<Compile Include="Libs\Thought.vCards\vCardGender.cs" />
<Compile Include="Libs\Thought.vCards\vCardIMPP.cs" />
<Compile Include="Libs\Thought.vCards\vCardIMPPCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardNote.cs" />
<Compile Include="Libs\Thought.vCards\vCardNoteCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardPhone.cs" />
<Compile Include="Libs\Thought.vCards\vCardPhoneCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardPhoneTypes.cs" />
<Compile Include="Libs\Thought.vCards\vCardPhoto.cs" />
<Compile Include="Libs\Thought.vCards\vCardPhotoCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardProperty.cs" />
<Compile Include="Libs\Thought.vCards\vCardPropertyCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardReader.cs" />
<Compile Include="Libs\Thought.vCards\vCardRoot.cs" />
<Compile Include="Libs\Thought.vCards\vCardSocialProfile.cs" />
<Compile Include="Libs\Thought.vCards\vCardSocialProfileCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardSource.cs" />
<Compile Include="Libs\Thought.vCards\vCardSourceCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardStandardReader.cs" />
<Compile Include="Libs\Thought.vCards\vCardStandardWriter.cs" />
<Compile Include="Libs\Thought.vCards\vCardStandardWriterOptions.cs" />
<Compile Include="Libs\Thought.vCards\vCardSubproperty.cs" />
<Compile Include="Libs\Thought.vCards\vCardSubpropertyCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardValueCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardWebsite.cs" />
<Compile Include="Libs\Thought.vCards\vCardWebsiteCollection.cs" />
<Compile Include="Libs\Thought.vCards\vCardWebsiteTypes.cs" />
<Compile Include="Libs\Thought.vCards\vCardWriter.cs" />
<Compile Include="View\AboutDialog.cs">
<SubType>Form</SubType>
</Compile>
@@ -211,7 +210,7 @@
<DependentUpon>QRDialog.cs</DependentUpon>
</Compile>
<Compile Include="View\SortableBindingList.cs" />
<Compile Include="View\StateTextBox.cs">
<Compile Include="View\Customs\StateTextBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="View\Customs\ExtraTextGroup.cs">
@@ -230,7 +229,6 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="Thought.vCards\WarningMessages.resx" />
<EmbeddedResource Include="View\AboutDialog.resx">
<DependentUpon>AboutDialog.cs</DependentUpon>
</EmbeddedResource>