diff --git a/vCardEditor/Model/Contact.cs b/vCardEditor/Model/Contact.cs index be9bf79..d020647 100644 --- a/vCardEditor/Model/Contact.cs +++ b/vCardEditor/Model/Contact.cs @@ -15,6 +15,7 @@ namespace VCFEditor.Model NotifyPropertyChanged("Name"); } } + [DisplayName("F.Name")] public string FamilyName { @@ -27,12 +28,10 @@ namespace VCFEditor.Model get { if (card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular) != null) return card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber; - return string.Empty; } } - [Browsable(false)] public vCard card { get; set; } @@ -47,7 +46,6 @@ namespace VCFEditor.Model [Browsable(false)] public string path { get; set; } - public Contact() { diff --git a/vCardEditor/Model/FixedList.cs b/vCardEditor/Model/FixedList.cs index f2bb7e4..e7f4161 100644 --- a/vCardEditor/Model/FixedList.cs +++ b/vCardEditor/Model/FixedList.cs @@ -16,10 +16,9 @@ namespace vCardEditor.Model get { return _size; } set { _size = value; } } - public FixedList() : this(5) - { - } + public FixedList() : this(5) { } + public FixedList(int size) { this._size = size; diff --git a/vCardEditor/Presenter/MainPresenter.cs b/vCardEditor/Presenter/MainPresenter.cs index b919331..73aaf94 100644 --- a/vCardEditor/Presenter/MainPresenter.cs +++ b/vCardEditor/Presenter/MainPresenter.cs @@ -1,12 +1,12 @@ using System; +using System.Collections.Generic; +using System.Linq; using Thought.vCards; -using VCFEditor.View; +using vCardEditor.Model; +using vCardEditor.Repository; using vCardEditor.View.Customs; using VCFEditor.Repository; -using vCardEditor.Repository; -using vCardEditor.Model; -using System.Linq; -using System.Collections.Generic; +using VCFEditor.View; namespace VCFEditor.Presenter { @@ -14,7 +14,6 @@ namespace VCFEditor.Presenter { private readonly IMainView _view; private readonly IContactRepository _repository; - public MainPresenter(IMainView view, IContactRepository repository) { @@ -44,9 +43,6 @@ namespace VCFEditor.Presenter _view.BatchExportImagesEvent += _view_BatchExportImagesEvent; _view.SplitFileEvent += SaveSplittedFileHandler; _view.OpenFolderEvent += OpenNewFolderHandler; - - - } private void OpenNewFolderHandler(object sender, EventArg e) @@ -59,7 +55,7 @@ namespace VCFEditor.Presenter if (!string.IsNullOrEmpty(path)) { - var Loaded =_repository.LoadMultipleFilesContact(path); + bool Loaded =_repository.LoadMultipleFilesContact(path); if (!Loaded) { _view.DisplayMessage("No file loaded!", "Error"); @@ -69,7 +65,6 @@ namespace VCFEditor.Presenter AddPathToMostRecentUsedFiles(path); _view.DisplayContacts(_repository.Contacts); } - } public void OpenNewFileHandler(object sender, EventArg e) @@ -89,7 +84,6 @@ namespace VCFEditor.Presenter return; } - if (!_repository.LoadContacts(path)) _view.DisplayMessage("File seems missing or corrupted!", "Error"); else @@ -98,9 +92,8 @@ namespace VCFEditor.Presenter AddPathToMostRecentUsedFiles(path); } } - - } + private void AddPathToMostRecentUsedFiles(string path) { FixedList MostRecentUsedFiles = ConfigRepository.Instance.Paths; @@ -110,6 +103,7 @@ namespace VCFEditor.Presenter _view.UpdateMRUMenu(MostRecentUsedFiles); } } + private void _view_BatchExportImagesEvent(object sender, EventArgs e) { if (_repository.Contacts == null || _repository.Contacts.Count == 0) @@ -122,7 +116,6 @@ namespace VCFEditor.Presenter { count++; SaveCardPhoto(_repository.Contacts[i].card, i); - } } @@ -151,7 +144,6 @@ namespace VCFEditor.Presenter } } - if (count > 0) _view.DisplayMessage($"{count} contact(s) processed!", "Photo Count"); else @@ -163,7 +155,7 @@ namespace VCFEditor.Presenter if (_repository.Contacts == null) return; - var count = _repository.Contacts.Count(x => x.card.Photos.Count > 0); + int count = _repository.Contacts.Count(x => x.card.Photos.Count > 0); if (count > 0) _view.DisplayMessage($"{count} contact(s) containing a picture = ", "Photo Count"); else @@ -187,19 +179,18 @@ namespace VCFEditor.Presenter _view.SendTextToClipBoard(SerializedCard); _view.DisplayMessage("vCard copied to clipboard!", "Information"); } + private void LoadFormHandler(object sender, EventArg e) { _view.LoadIntialState(ConfigRepository.Instance.FormState); - var paths = Environment.GetCommandLineArgs(); + string[] paths = Environment.GetCommandLineArgs(); if (paths.Length > 1) { var evt = new EventArg(paths[1]); OpenNewFileHandler(sender, evt); } - } - private void AddressRemovedHandler(object sender, EventArg e) { var contact = _repository.Contacts[_view.SelectedContactIndex]; @@ -224,13 +215,13 @@ namespace VCFEditor.Presenter contact.card.DeliveryAddresses.Clear(); contact.card.DeliveryAddresses.Add(new vCardDeliveryAddress(e.Data)); } + private void ExportImageHandler(object sender, EventArgs e) { - if (_view.SelectedContactIndex > -1) { //TODO: image can be url, or file location. - var card = _repository.Contacts[_view.SelectedContactIndex].card; + vCard card = _repository.Contacts[_view.SelectedContactIndex].card; SaveCardPhoto(card, _view.SelectedContactIndex, true); } } @@ -238,12 +229,11 @@ namespace VCFEditor.Presenter private void SaveCardPhoto(vCard card, int index, bool askUser = false) { //TODO: Save every image for a vCard. - var image = card.Photos.FirstOrDefault(); + vCardPhoto image = card.Photos.FirstOrDefault(); if (image != null) { - - var newPath = _repository.GenerateFileName(_repository.fileName, index, image.Extension); + string newPath = _repository.GenerateFileName(_repository.fileName, index, image.Extension); //string ImagePath = string.Empty; //if (askUser) @@ -255,10 +245,9 @@ namespace VCFEditor.Presenter private void ExportQRHandler(object sender, EventArgs e) { - if (_view.SelectedContactIndex > -1) { - var card = _repository.Contacts[_view.SelectedContactIndex].card; + vCard card = _repository.Contacts[_view.SelectedContactIndex].card; string content = _repository.GenerateStringFromVCard(card); _view.DisplayQRCode(content); @@ -267,14 +256,13 @@ namespace VCFEditor.Presenter private void ModifyImageHandler(object sender, EventArg e) { - if (!string.IsNullOrEmpty(e.Data) ) + if (!string.IsNullOrEmpty(e.Data)) { vCardPhoto photo = new vCardPhoto(e.Data); _repository.ModifyImage(_view.SelectedContactIndex, photo); } else _repository.ModifyImage(_view.SelectedContactIndex, null); - } void CloseFormHandler(object sender, EventArg e) @@ -284,12 +272,12 @@ namespace VCFEditor.Presenter if (!e.Data) { - var state = _view.GetFormState(); + FormState state = _view.GetFormState(); ConfigRepository.Instance.FormState = state; ConfigRepository.Instance.SaveConfig(); } - } + public void BeforeLeavingContactHandler(object sender, EventArg e) { _repository.SaveDirtyVCard(_view.SelectedContactIndex, e.Data); @@ -297,10 +285,9 @@ namespace VCFEditor.Presenter public void TextBoxValueChangedHandler(object sender, EventArgs e) { - var tb = sender as StateTextBox; + StateTextBox tb = sender as StateTextBox; if (tb != null && tb.oldText != tb.Text) _repository.SetDirtyFlag(_view.SelectedContactIndex); - } public void FilterTextChangedHandler(object sender, EventArg e) @@ -328,10 +315,7 @@ namespace VCFEditor.Presenter else filename = _view.DisplaySaveDialog(""); - _repository.SaveContactsToFile(filename); - - } private void SaveSplittedFileHandler(object sender, EventArgs e) @@ -345,7 +329,6 @@ namespace VCFEditor.Presenter int count = _repository.SaveSplittedFiles(Path); _view.DisplayMessage(string.Format("{0} contact(s) processed!", count), "Information"); } - } private void BeforeOpeningNewFileHandler() @@ -356,13 +339,10 @@ namespace VCFEditor.Presenter SaveContactsHandler(null, null); //_repository.SaveContactsToFile(_repository.fileName); } - } - public void ChangeContactSelectedHandler(object sender, EventArgs e) { - if (_view.SelectedContactIndex > -1) { vCard card = _repository.Contacts[_view.SelectedContactIndex].card; @@ -374,8 +354,6 @@ namespace VCFEditor.Presenter } else _view.ClearContactDetail(); - } - } } diff --git a/vCardEditor/Program.cs b/vCardEditor/Program.cs index 95e1ded..f5a656d 100644 --- a/vCardEditor/Program.cs +++ b/vCardEditor/Program.cs @@ -1,12 +1,9 @@ using System; -using System.Collections.Generic; -using System.Linq; using System.Windows.Forms; +using vCardEditor.Repository; using vCardEditor.View; using VCFEditor.Presenter; -using VCFEditor; using VCFEditor.Repository; -using vCardEditor.Repository; namespace vCardEditor { @@ -21,8 +18,8 @@ namespace vCardEditor Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - var fileHandler = new FileHandler(); - var mainForm = new MainForm(); + FileHandler fileHandler = new FileHandler(); + MainForm mainForm = new MainForm(); new MainPresenter(mainForm, new ContactRepository(fileHandler)); Application.Run(mainForm); diff --git a/vCardEditor/Repository/ConfigRepository.cs b/vCardEditor/Repository/ConfigRepository.cs index 0644a2a..0dcad9b 100644 --- a/vCardEditor/Repository/ConfigRepository.cs +++ b/vCardEditor/Repository/ConfigRepository.cs @@ -17,6 +17,7 @@ namespace vCardEditor.Repository private const int MAX_RECENT_FILES = 5; private static ConfigRepository instance = null; + [XmlIgnore] public static ConfigRepository Instance { @@ -31,6 +32,7 @@ namespace vCardEditor.Repository [Description("Overwrite the file when saving")] public bool Overwrite { get; set; } + [Description("Maximum entries for MRU ")] public int Maximum { get; set; } @@ -45,14 +47,12 @@ namespace vCardEditor.Repository private ConfigRepository() { } - - /// /// save config file /// public void SaveConfig() { - var ns = new XmlSerializerNamespaces(); + XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); ns.Add("", ""); XmlSerializer xsSubmit = new XmlSerializer(typeof(ConfigRepository)); @@ -82,7 +82,6 @@ namespace vCardEditor.Repository configData = (ConfigRepository)deserializer.Deserialize(reader); configData.Paths.Size = configData.Maximum; } - } catch (Exception) { @@ -94,10 +93,7 @@ namespace vCardEditor.Repository }; } - return configData; } - - } } diff --git a/vCardEditor/Repository/ContactRepository.cs b/vCardEditor/Repository/ContactRepository.cs index 8bb8017..414b638 100644 --- a/vCardEditor/Repository/ContactRepository.cs +++ b/vCardEditor/Repository/ContactRepository.cs @@ -3,9 +3,9 @@ using System.IO; using System.Linq; using System.Text; using Thought.vCards; -using VCFEditor.Model; using vCardEditor.Repository; using vCardEditor.View; +using VCFEditor.Model; namespace VCFEditor.Repository { @@ -13,16 +13,13 @@ namespace VCFEditor.Repository { public string fileName { get; set; } private IFileHandler _fileHandler; - /// - /// Formatted name. - /// - public const string KeyName = "FN"; /// /// Keep a copy of contact list when filtering /// private SortableBindingList OriginalContactList = null; private SortableBindingList _contacts; + public SortableBindingList Contacts { get @@ -43,6 +40,7 @@ namespace VCFEditor.Repository get { return (_contacts != null && _contacts.Any(x => x.isDirty)) || _dirty; } set { _dirty = true; } } + public ContactRepository(IFileHandler fileHandler) { _fileHandler = fileHandler; @@ -106,6 +104,7 @@ namespace VCFEditor.Repository return ListOfContacts; } + private vCard ParseRawContent(StringBuilder rawContent) { vCard card = null; @@ -181,12 +180,9 @@ namespace VCFEditor.Repository _dirty = true; _contacts.RemoveAt(i); } - } } - } - public SortableBindingList FilterContacts(string filter) { @@ -196,7 +192,6 @@ namespace VCFEditor.Repository return Contacts; } - public void SetDirtyFlag(int index) { if (index > -1) @@ -229,7 +224,6 @@ namespace VCFEditor.Repository card.Phones.Clear(); foreach (var item in newCard.Phones) card.Phones.Add(new vCardPhone(item.FullNumber, item.PhoneType)); - } private void SaveExtraField(vCard newCard, vCard card) @@ -259,7 +253,6 @@ namespace VCFEditor.Repository else card.DeliveryAddresses.Add(new vCardDeliveryAddress(item.Street, item.City, item.Region, item.Country, item.PostalCode, item.AddressType.FirstOrDefault())); - } } @@ -277,7 +270,6 @@ namespace VCFEditor.Repository { if (card.Phones.GetFirstChoice(vCardPhoneTypes.Home) != null) card.Phones.GetFirstChoice(vCardPhoneTypes.Home).FullNumber = string.Empty; - } @@ -293,7 +285,6 @@ namespace VCFEditor.Repository { if (card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular) != null) card.Phones.GetFirstChoice(vCardPhoneTypes.Cellular).FullNumber = string.Empty; - } //Work @@ -308,7 +299,6 @@ namespace VCFEditor.Repository { if (card.Phones.GetFirstChoice(vCardPhoneTypes.Work) != null) card.Phones.GetFirstChoice(vCardPhoneTypes.Work).FullNumber = string.Empty; - } } @@ -328,9 +318,7 @@ namespace VCFEditor.Repository { if (card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet) != null) card.EmailAddresses.GetFirstChoice(vCardEmailAddressType.Internet).Address = string.Empty; - } - } private void SaveWebUrl(vCard NewCard, vCard card) @@ -347,7 +335,6 @@ namespace VCFEditor.Repository { if (card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal) != null) card.Websites.GetFirstChoice(vCardWebsiteTypes.Personal).Url = string.Empty; - } @@ -362,7 +349,6 @@ namespace VCFEditor.Repository { if (card.Websites.GetFirstChoice(vCardWebsiteTypes.Work) != null) card.Websites.GetFirstChoice(vCardWebsiteTypes.Work).Url = string.Empty; - } } @@ -415,7 +401,7 @@ namespace VCFEditor.Repository int count; for (count = 0; count < contactsToSave.Count(); count++) { - var entry = contactsToSave[count]; + Contact entry = contactsToSave[count]; string SerializedCard = GenerateStringFromVCard(entry.card); //Check if filename for the card is empty, and generate one if empty @@ -426,7 +412,6 @@ namespace VCFEditor.Repository //Clean the flag for every contact, even the deleted ones. entry.isDirty = false; - } //Clean the global flag for the entire vCard Catalog. diff --git a/vCardEditor/Repository/FileHandler.cs b/vCardEditor/Repository/FileHandler.cs index abc217f..1606dd0 100644 --- a/vCardEditor/Repository/FileHandler.cs +++ b/vCardEditor/Repository/FileHandler.cs @@ -24,7 +24,6 @@ namespace vCardEditor.Repository { if (File.Exists(newFilename)) File.Move(newFilename, oldFilename); - } public string[] ReadAllLines(string filename) @@ -39,9 +38,9 @@ namespace vCardEditor.Repository public void WriteBytesToFile(string imageFile, byte[] image) { - using (var ms = new MemoryStream(image)) + using (MemoryStream ms = new MemoryStream(image)) { - using (var fs = new FileStream(imageFile, FileMode.Create)) + using (FileStream fs = new FileStream(imageFile, FileMode.Create)) ms.WriteTo(fs); } } @@ -61,6 +60,5 @@ namespace vCardEditor.Repository string[] filePaths = Directory.GetFiles(path, ext,SearchOption.TopDirectoryOnly); return filePaths; } - } } diff --git a/vCardEditor/View/AboutDialog.cs b/vCardEditor/View/AboutDialog.cs index fdf3c14..91a352b 100644 --- a/vCardEditor/View/AboutDialog.cs +++ b/vCardEditor/View/AboutDialog.cs @@ -1,12 +1,7 @@ using System; -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; @@ -40,7 +35,7 @@ namespace vCardEditor.View return titleAttribute.Title; } } - return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); + return Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); } } @@ -109,10 +104,10 @@ namespace vCardEditor.View { try { - using (var client = new WebClient()) + using (WebClient client = new WebClient()) { string result = await client.DownloadStringTaskAsync(ConfigRepository.Instance.VersionUrl); - using (var reader = new StringReader(result)) + using (StringReader reader = new StringReader(result)) { string InternetVersion = reader.ReadLine(); string AssemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); @@ -126,11 +121,11 @@ namespace vCardEditor.View } } } - catch (WebException ) + catch (WebException) { MessageBox.Show("Could not download version information from GitHub.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } - catch (Exception ) + catch (Exception) { MessageBox.Show("Error processing version information.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } diff --git a/vCardEditor/View/ConfigDialog.cs b/vCardEditor/View/ConfigDialog.cs index 62d2cc7..2ea5d29 100644 --- a/vCardEditor/View/ConfigDialog.cs +++ b/vCardEditor/View/ConfigDialog.cs @@ -1,7 +1,5 @@ -using System; -using System.Windows.Forms; +using System.Windows.Forms; using vCardEditor.Repository; -using vCardEditor.Model; namespace vCardEditor.View { diff --git a/vCardEditor/View/Customs/AddAddressDialog.cs b/vCardEditor/View/Customs/AddAddressDialog.cs index 5ebf73c..84c4332 100644 --- a/vCardEditor/View/Customs/AddAddressDialog.cs +++ b/vCardEditor/View/Customs/AddAddressDialog.cs @@ -26,9 +26,7 @@ namespace vCardEditor.View.Customs Addresses = addressCollection; _checkBoxes = Controls.OfType().ToList(); - - - foreach (var item in addressCollection) + foreach (vCardDeliveryAddressTypes item in addressCollection) { switch (item.ToString()) { @@ -53,9 +51,7 @@ namespace vCardEditor.View.Customs case "International": cbInternational.Checked = true; break; - } - } } @@ -71,13 +67,11 @@ namespace vCardEditor.View.Customs } Addresses.Clear(); - foreach (var item in checkedItems) + foreach (CheckBox item in checkedItems) { - var enumType = (vCardDeliveryAddressTypes)Enum.Parse(typeof(vCardDeliveryAddressTypes), item.Text, true); + vCardDeliveryAddressTypes enumType = (vCardDeliveryAddressTypes)Enum.Parse(typeof(vCardDeliveryAddressTypes), item.Text, true); Addresses.Add(enumType); } - - } } } diff --git a/vCardEditor/View/Customs/AddressBox.cs b/vCardEditor/View/Customs/AddressBox.cs index 896418b..c500f1a 100644 --- a/vCardEditor/View/Customs/AddressBox.cs +++ b/vCardEditor/View/Customs/AddressBox.cs @@ -8,8 +8,8 @@ namespace vCardEditor.View.Customs public partial class AddressBox : UserControl { public event EventHandler TextChangedEvent; + public List AddressType { get; set; } - public AddressBox(string street, string city, string region, string country, string postalCode, string extendedAddress, string postOfficeBox, List addressType) @@ -46,7 +46,7 @@ namespace vCardEditor.View.Customs public vCardDeliveryAddress getDeliveryAddress() { - var deliveryAddress = new vCardDeliveryAddress + vCardDeliveryAddress deliveryAddress = new vCardDeliveryAddress { City = CityValue.Text, Country = CountryValue.Text, @@ -57,9 +57,7 @@ namespace vCardEditor.View.Customs PostOfficeBox = POBoxValue.Text, AddressType = AddressType }; - return deliveryAddress; } - } } diff --git a/vCardEditor/View/Customs/AddressTabControl.cs b/vCardEditor/View/Customs/AddressTabControl.cs index 90365e0..aeb7ae2 100644 --- a/vCardEditor/View/Customs/AddressTabControl.cs +++ b/vCardEditor/View/Customs/AddressTabControl.cs @@ -26,7 +26,6 @@ namespace vCardEditor.View.Customs Selecting += tbcAddress_Selecting; HandleCreated += tbcAddress_HandleCreated; MouseDoubleClick += AddressTabControl_MouseDoubleClick; - } public void getDeliveryAddress(vCard card) @@ -51,9 +50,9 @@ namespace vCardEditor.View.Customs { if (GetTabRect(i).Contains(e.Location)) { - var AddressBox = TabPages[i].Controls[0] as AddressBox; + AddressBox AddressBox = TabPages[i].Controls[0] as AddressBox; - var diag = new AddAddressDialog(AddressBox.AddressType); + AddAddressDialog diag = new AddAddressDialog(AddressBox.AddressType); if (diag.ShowDialog() == DialogResult.OK) { @@ -66,10 +65,8 @@ namespace vCardEditor.View.Customs break; } } - } - [DllImport("user32.dll")] private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp); private const int TCM_SETMINTABWIDTH = 0x1300 + 49; @@ -78,20 +75,18 @@ namespace vCardEditor.View.Customs SendMessage(Handle, TCM_SETMINTABWIDTH, IntPtr.Zero, (IntPtr)16); } - private void tbcAddress_Selecting(object sender, TabControlCancelEventArgs e) { if (e.TabPageIndex == TabCount - 1) e.Cancel = true; } - private void tbcAddress_MouseDown(object sender, MouseEventArgs e) { - var lastIndex = TabCount - 1; + int lastIndex = TabCount - 1; if (GetTabRect(lastIndex).Contains(e.Location)) { - var diag = new AddAddressDialog(); + AddAddressDialog diag = new AddAddressDialog(); if (diag.ShowDialog() == DialogResult.OK) { vCardDeliveryAddress da = new vCardDeliveryAddress(); @@ -100,16 +95,15 @@ namespace vCardEditor.View.Customs AddTab?.Invoke(sender, new EventArg>(diag.Addresses)); SelectedIndex = TabCount - 2; } - } else { - for (var i = 0; i < TabPages.Count; i++) + for (int i = 0; i < TabPages.Count; i++) { - var tabRect = GetTabRect(i); + Rectangle tabRect = GetTabRect(i); tabRect.Inflate(-2, -2); - var closeImage = Properties.Resources.Close; - var imageRect = new Rectangle( + Bitmap closeImage = Properties.Resources.Close; + Rectangle imageRect = new Rectangle( (tabRect.Right - closeImage.Width), tabRect.Top + (tabRect.Height - closeImage.Height) / 2, closeImage.Width, closeImage.Height); @@ -122,12 +116,9 @@ namespace vCardEditor.View.Customs SelectedIndex = 0; RemoveTab?.Invoke(sender, new EventArg(i)); } - return; } - } - } } @@ -136,19 +127,19 @@ namespace vCardEditor.View.Customs if (e.Index > TabCount - 1) return; - var tabRect = GetTabRect(e.Index); + Rectangle tabRect = GetTabRect(e.Index); tabRect.Inflate(-2, -2); if (e.Index == TabCount - 1) { - var addImage = Properties.Resources.Add; + Bitmap addImage = Properties.Resources.Add; e.Graphics.DrawImage(addImage, tabRect.Left + (tabRect.Width - addImage.Width) / 2, tabRect.Top + (tabRect.Height - addImage.Height) / 2); } else { - var closeImage = Properties.Resources.Close; + Bitmap closeImage = Properties.Resources.Close; e.Graphics.DrawImage(closeImage, (tabRect.Right - closeImage.Width), tabRect.Top + (tabRect.Height - closeImage.Height) / 2); @@ -172,8 +163,6 @@ namespace vCardEditor.View.Customs TextBrush.Dispose(); } - - } public void SetAddresses(vCard card) @@ -184,7 +173,7 @@ namespace vCardEditor.View.Customs private void AddTabForEveryAddress(vCard card) { - foreach (var item in card.DeliveryAddresses) + foreach (vCardDeliveryAddress item in card.DeliveryAddresses) AddtabForAddress(item); SelectedIndex = 0; } @@ -193,36 +182,32 @@ namespace vCardEditor.View.Customs { string title = GetTabTitle(da.AddressType); - var page = new TabPage($" {title} "); + TabPage page = new TabPage($" {title} "); TabPages.Insert(TabCount - 1, page); - var ab = new AddressBox(da.Street, da.City, da.Region, da.Country, + AddressBox ab = new AddressBox(da.Street, da.City, da.Region, da.Country, 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())); - - } private string GetTabTitle(List addressTypes) { - var title = string.Empty; + string title = string.Empty; if (addressTypes.Count > 0) { title = addressTypes[0].ToString(); if (addressTypes.Count > 1) title += "..."; } - return title; } private void ClearTabs() { - //Remove every tab (except "+"). We don't call Clear() as it doesn't free memory. while (TabCount > 1) TabPages[0].Dispose(); diff --git a/vCardEditor/View/Customs/ColumnsDialog.cs b/vCardEditor/View/Customs/ColumnsDialog.cs index bdea984..4195d14 100644 --- a/vCardEditor/View/Customs/ColumnsDialog.cs +++ b/vCardEditor/View/Customs/ColumnsDialog.cs @@ -18,7 +18,7 @@ namespace vCardEditor.View.Customs _checkBoxes = Controls.OfType().ToList(); Columns = columns; - foreach (var item in columns) + foreach (Column item in columns) { switch (item) { @@ -36,13 +36,9 @@ namespace vCardEditor.View.Customs private void btnOK_Click(object sender, EventArgs e) { Columns.Clear(); - - var total = _checkBoxes - .Where(checkBox => checkBox.Checked); - - foreach (var item in total) + foreach (CheckBox item in _checkBoxes.Where(checkBox => checkBox.Checked)) { - var enumType = (Column)Enum.Parse(typeof(Column), item.Text, true); + Column enumType = (Column)Enum.Parse(typeof(Column), item.Text, true); Columns.Add(enumType); } } diff --git a/vCardEditor/View/Customs/CustumInputDialog.Designer.cs b/vCardEditor/View/Customs/CustomInputDialog.Designer.cs similarity index 99% rename from vCardEditor/View/Customs/CustumInputDialog.Designer.cs rename to vCardEditor/View/Customs/CustomInputDialog.Designer.cs index 0b37a26..decfdf4 100644 --- a/vCardEditor/View/Customs/CustumInputDialog.Designer.cs +++ b/vCardEditor/View/Customs/CustomInputDialog.Designer.cs @@ -1,7 +1,7 @@  namespace vCardEditor.View.Customs { - partial class CustumInputDialog + partial class CustomInputDialog { /// /// Required designer variable. diff --git a/vCardEditor/View/Customs/CustumInputDialog.cs b/vCardEditor/View/Customs/CustomInputDialog.cs similarity index 77% rename from vCardEditor/View/Customs/CustumInputDialog.cs rename to vCardEditor/View/Customs/CustomInputDialog.cs index ecda1c5..84c32f5 100644 --- a/vCardEditor/View/Customs/CustumInputDialog.cs +++ b/vCardEditor/View/Customs/CustomInputDialog.cs @@ -2,9 +2,9 @@ namespace vCardEditor.View.Customs { - public partial class CustumInputDialog : Form + public partial class CustomInputDialog : Form { - public CustumInputDialog() + public CustomInputDialog() { InitializeComponent(); } @@ -15,7 +15,5 @@ namespace vCardEditor.View.Customs { input = tbInput.Text; } - - } } diff --git a/vCardEditor/View/Customs/CustumInputDialog.resx b/vCardEditor/View/Customs/CustomInputDialog.resx similarity index 100% rename from vCardEditor/View/Customs/CustumInputDialog.resx rename to vCardEditor/View/Customs/CustomInputDialog.resx diff --git a/vCardEditor/View/Customs/ExtendedPanel.cs b/vCardEditor/View/Customs/ExtendedPanel.cs index 0aeb340..147fa6a 100644 --- a/vCardEditor/View/Customs/ExtendedPanel.cs +++ b/vCardEditor/View/Customs/ExtendedPanel.cs @@ -6,7 +6,6 @@ using Thought.vCards; namespace vCardEditor.View.Customs { - public partial class ExtendedPanel : UserControl { public ExtendedPanel() @@ -35,8 +34,8 @@ namespace vCardEditor.View.Customs //{ // AddControl(custom.input, string.Empty); //} - } + public event EventHandler ContentTextChanged; public string Caption @@ -48,12 +47,11 @@ namespace vCardEditor.View.Customs public PanelType panelType { get; set; } private void MenuItemClickHandlers(object sender, EventArgs e) { - var tag = (sender as ToolStripMenuItem).Tag; + object tag = (sender as ToolStripMenuItem).Tag; if (tag != null && tag is vCardRoot) AddControl(tag as vCardRoot); } - private void btnAddExtraText_Click(object sender, EventArgs e) { Button btnSender = (Button)sender; @@ -71,35 +69,31 @@ namespace vCardEditor.View.Customs default: break; } - - - - } public void AddControl(vCardRoot card) { Point pt = GetCoordinatesForNewControl(); - - RemovableTextBox ctl = new RemovableTextBox(card); - - ctl.Anchor = AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left; - ctl.Location = pt; - ctl.Width = PanelContent.Width - 20; //TODO : Calculte the right size of the scrollbar! + RemovableTextBox ctl = new RemovableTextBox(card) + { + Anchor = AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Left, + Location = pt, + Width = PanelContent.Width - 20 //TODO : Calculte the right size of the scrollbar! + }; - ctl.BoutonRemoveClicked += RemoveControl; + ctl.ButtonRemoveClicked += RemoveControl; ctl.ContentTextChanged += (s, e) => ContentTextChanged?.Invoke(s, e); PanelContent.Controls.Add(ctl); } + public List GetExtraFields() { List result = new List(); - foreach (var item in PanelContent.Controls) + foreach (Control item in PanelContent.Controls) { - var ctl = item as RemovableTextBox; - result.Add(ctl.Tag as vCardRoot); + result.Add((item as RemovableTextBox).Tag as vCardRoot); } return result; @@ -126,20 +120,16 @@ namespace vCardEditor.View.Customs { for (int i = 0; i < PanelContent.Controls.Count; i++) { - var ctl = PanelContent.Controls[i]; - ctl.Location = new Point(5, (i * 30) + 10); + PanelContent.Controls[i].Location = new Point(5, (i * 30) + 10); } - } - - private Point GetCoordinatesForNewControl() { Point pt; if (PanelContent.Controls.Count > 0) { - var LastControl = PanelContent.Controls[PanelContent.Controls.Count - 1]; + Control LastControl = PanelContent.Controls[PanelContent.Controls.Count - 1]; pt = LastControl.Location; pt.Y += 30; } @@ -148,8 +138,5 @@ namespace vCardEditor.View.Customs return pt; } - - - } } diff --git a/vCardEditor/View/Customs/RemovableTextBox.cs b/vCardEditor/View/Customs/RemovableTextBox.cs index b061282..96c4bac 100644 --- a/vCardEditor/View/Customs/RemovableTextBox.cs +++ b/vCardEditor/View/Customs/RemovableTextBox.cs @@ -6,12 +6,13 @@ namespace vCardEditor.View.Customs { public partial class RemovableTextBox : UserControl { - public event EventHandler BoutonRemoveClicked; + public event EventHandler ButtonRemoveClicked; public event EventHandler ContentTextChanged; + public RemovableTextBox() { InitializeComponent(); - btnRemove.Click += (s, e) => BoutonRemoveClicked?.Invoke(s, e); + btnRemove.Click += (s, e) => ButtonRemoveClicked?.Invoke(s, e); // Bubble up to set the dirty flag from the parent. ContentTextBox.LostFocus += (s, e) => ContentTextChanged?.Invoke(s, e); ContentTextBox.Validated += (s, e) => ContentTextChanged?.Invoke(s, e); @@ -22,7 +23,7 @@ namespace vCardEditor.View.Customs private void ContentTextBox_Validated(object sender, EventArgs e) { - var card = this.Tag as vCardRoot; + vCardRoot card = this.Tag as vCardRoot; card.ChangeContent(Content); } @@ -33,7 +34,6 @@ namespace vCardEditor.View.Customs Content = cardType.ToString(); } - public string Title { get { return TitleLabel.Text; } @@ -45,6 +45,5 @@ namespace vCardEditor.View.Customs get { return ContentTextBox.Text; } set { ContentTextBox.Text = value; } } - } } diff --git a/vCardEditor/View/MainForm.cs b/vCardEditor/View/MainForm.cs index c091241..b8da87c 100644 --- a/vCardEditor/View/MainForm.cs +++ b/vCardEditor/View/MainForm.cs @@ -1,16 +1,16 @@ using System; +using System.Collections.Generic; using System.ComponentModel; +using System.Drawing; using System.Linq; using System.Windows.Forms; -using VCFEditor.View; -using VCFEditor.Model; using Thought.vCards; -using vCardEditor.Repository; using vCardEditor.Model; -using System.Drawing; -using System.Collections.Generic; +using vCardEditor.Repository; using vCardEditor.View.Customs; using vCardEditor.View.UIToolbox; +using VCFEditor.Model; +using VCFEditor.View; namespace vCardEditor.View { @@ -39,9 +39,6 @@ namespace vCardEditor.View public event EventHandler BatchExportImagesEvent; public event EventHandler> OpenFolderEvent; public event EventHandler SplitFileEvent; - - - ComponentResourceManager resources; @@ -56,13 +53,10 @@ namespace vCardEditor.View else return -1; } - } - public MainForm() { - InitializeComponent(); resources = new ComponentResourceManager(typeof(MainForm)); @@ -74,7 +68,6 @@ namespace vCardEditor.View extendedPanelPhones.ContentTextChanged += (sender, e) => TextBoxValueChanged?.Invoke(sender, e); extendedPanelWeb.ContentTextChanged += (sender, e) => TextBoxValueChanged?.Invoke(sender, e); BuildMRUMenu(); - } private void tbsOpen_Click(object sender, EventArgs e) @@ -82,7 +75,6 @@ namespace vCardEditor.View OpenFile(sender, string.Empty); } - private void OpenFile(object sender, string filename) { var evt = new EventArg(filename); @@ -98,7 +90,6 @@ namespace vCardEditor.View bsContacts.DataSource = null; if (contacts != null) bsContacts.DataSource = contacts; - } private void tbsSave_Click(object sender, EventArgs e) @@ -116,7 +107,6 @@ namespace vCardEditor.View SaveContactsSelected(sender, e); } - } private void tbsNew_Click(object sender, EventArgs e) @@ -129,7 +119,6 @@ namespace vCardEditor.View if (dgContacts.CurrentCell == null) return; - //Weired, the selection is fired multiple times... int RowIndex = dgContacts.CurrentCell.RowIndex; if (LastRowIndex != RowIndex) @@ -154,7 +143,6 @@ namespace vCardEditor.View public void DisplayContactDetail(vCard card, string FileName) { - if (card == null) throw new ArgumentException("vCard must be valid!"); @@ -176,34 +164,29 @@ namespace vCardEditor.View SetExtraInfos(card); SetExtraTabFields(card); - } private void SetExtraInfos(vCard card) { - foreach (var item in card.EmailAddresses) + foreach (vCardEmailAddress item in card.EmailAddresses) extendedPanelWeb.AddControl(item); - foreach (var item in card.Websites) + foreach (vCardWebsite item in card.Websites) extendedPanelWeb.AddControl(item); - foreach (var item in card.Phones) + foreach (vCardPhone item in card.Phones) extendedPanelPhones.AddControl(item); } - - private void SetExtraTabFields(vCard card) { - foreach (var note in card.Notes) + foreach (vCardNote 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) @@ -215,12 +198,11 @@ namespace vCardEditor.View etg.TextChangedEvent += (sender, e) => TextBoxValueChanged?.Invoke(sender, e); etg.ControlDeleted += (sender, e) => { - var send = sender as Control; + Control send = sender as Control; panelTabExtra.Controls.Remove(send.Parent); }; etg.Dock = DockStyle.Top; - panelTabExtra.Controls.Add(etg); } @@ -255,7 +237,7 @@ namespace vCardEditor.View { if (photos.Any()) { - var photo = photos[0]; + vCardPhoto photo = photos[0]; try { // Get the bytes of the photo if it has not already been loaded. @@ -272,8 +254,8 @@ namespace vCardEditor.View } else PhotoBox.Image = (Image)resources.GetObject("PhotoBox.Image"); - } + private void SetAddressesValues(vCard card) { tbcAddress.SetAddresses(card); @@ -306,19 +288,15 @@ namespace vCardEditor.View textBoxFilter.Focus(); } - - private vCard GetvCardFromWindow() { vCard card = new vCard { - Title = FormattedTitleValue.Text, FormattedName = FormattedNameValue.Text, GivenName = firstNameValue.Text, AdditionalNames = middleNameValue.Text, FamilyName = lastNameValue.Text, - }; tbcAddress.getDeliveryAddress(card); @@ -331,7 +309,7 @@ namespace vCardEditor.View private void getExtraPhones(vCard card) { card.Phones.Clear(); - foreach (var item in extendedPanelPhones.GetExtraFields()) + foreach (vCardRoot item in extendedPanelPhones.GetExtraFields()) { if (item is vCardPhone) { @@ -339,40 +317,34 @@ namespace vCardEditor.View card.Phones.Add(phone); } } - } + private void getExtraWeb(vCard card) { card.Websites.Clear(); card.EmailAddresses.Clear(); - foreach (var item in extendedPanelWeb.GetExtraFields()) + foreach (vCardRoot item in extendedPanelWeb.GetExtraFields()) { switch (item) { case vCardEmailAddress email: card.EmailAddresses.Add(email); break; - case vCardWebsite website: card.Websites.Add(website); break; - default: break; } - } - } - - private void getExtraData(vCard card) { - foreach (var item in panelTabExtra.Controls) + foreach (object item in panelTabExtra.Controls) { - var tbc = item as ExtraTextGroup; + ExtraTextGroup tbc = item as ExtraTextGroup; switch (tbc.CardProp) { case vCardPropeties.NOTE: @@ -398,12 +370,12 @@ namespace vCardEditor.View Close(); } - private void MainForm_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; } + private void MainForm_DragDrop(object sender, DragEventArgs e) { string[] FileList = (string[])e.Data.GetData(DataFormats.FileDrop, false); @@ -416,14 +388,11 @@ namespace vCardEditor.View OpenFile(sender, FileList[0]); } - - private void BuildMRUMenu() { //TODO: Open File or Folder. recentFilesMenuItem.DropDownItemClicked += (s, e) => OpenFile(s, e.ClickedItem.Text); UpdateMRUMenu(ConfigRepository.Instance.Paths); - } public void UpdateMRUMenu(FixedList MostRecentFilesList) @@ -434,7 +403,6 @@ namespace vCardEditor.View recentFilesMenuItem.DropDownItems.Clear(); for (int i = 0; i < MostRecentFilesList._innerList.Count; i++) recentFilesMenuItem.DropDownItems.Add(MostRecentFilesList[i]); - } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) @@ -443,7 +411,6 @@ namespace vCardEditor.View CloseForm?.Invoke(sender, evt); e.Cancel = evt.Data; - } public bool AskMessage(string msg, string caption) @@ -467,6 +434,7 @@ namespace vCardEditor.View { MessageBox.Show(msg, caption); } + public string DisplayOpenFileDialog(string filter = "") { string filename = string.Empty; @@ -481,8 +449,7 @@ namespace vCardEditor.View public string DisplaySaveDialog(string filename) { - - var saveFileDialog = new SaveFileDialog + SaveFileDialog saveFileDialog = new SaveFileDialog { FileName = filename }; @@ -493,11 +460,12 @@ namespace vCardEditor.View return filename; } + private void PhotoBox_Click(object sender, EventArgs e) { if (ModifyImage != null) { - var fileName = DisplayOpenFileDialog(); + string fileName = DisplayOpenFileDialog(); if (!string.IsNullOrEmpty(fileName)) { try @@ -510,11 +478,8 @@ namespace vCardEditor.View { MessageBox.Show($"Invalid file! : {fileName}"); } - } - } - } public void ClearImageFromForm() @@ -544,26 +509,23 @@ namespace vCardEditor.View Clipboard.SetText(text); } - private void dgContacts_CellContextMenuStripNeeded(object sender, DataGridViewCellContextMenuStripNeededEventArgs e) { if (e.RowIndex == -1) { e.ContextMenuStrip = contextMenuStrip1; } - } private void modifiyColumnsToolStripMenuItem_Click(object sender, EventArgs e) { List Columns = GetListColumnsForDataGrid(); - var dialog = new ColumnsDialog(Columns); + ColumnsDialog dialog = new ColumnsDialog(Columns); if (dialog.ShowDialog() == DialogResult.OK) { ToggleAllColumnsToInvisible(); ToggleOnlySelected(dialog.Columns); - } } @@ -574,19 +536,17 @@ namespace vCardEditor.View { if (dgContacts.Columns[i].Visible) { - var name = dgContacts.Columns[i].Name; - var enumType = (Column)Enum.Parse(typeof(Column), name, true); + string name = dgContacts.Columns[i].Name; + Column enumType = (Column)Enum.Parse(typeof(Column), name, true); Columns.Add(enumType); } - } - return Columns; } private void ToggleOnlySelected(List columns) { - foreach (var item in columns) + foreach (Column item in columns) { switch (item) { @@ -610,7 +570,6 @@ namespace vCardEditor.View public FormState GetFormState() { - return new FormState { Columns = GetListColumnsForDataGrid(), @@ -626,7 +585,6 @@ namespace vCardEditor.View { var evt = new EventArg(new FormState()); LoadForm?.Invoke(sender, evt); - } public void LoadIntialState(FormState state) @@ -642,6 +600,7 @@ namespace vCardEditor.View } } } + private void tbsQR_Click(object sender, EventArgs e) { ExportQR?.Invoke(sender, e); @@ -653,7 +612,6 @@ namespace vCardEditor.View qr.ShowDialog(); } - private void addNotesToolStripMenuItem_Click(object sender, EventArgs e) { var evt = new EventArg(vCardPropeties.NOTE); @@ -674,7 +632,6 @@ namespace vCardEditor.View menuExtraField.Show(ptLowerLeft); } - private void miNote_Click(object sender, EventArgs e) { var evt = new EventArg(vCardPropeties.NOTE); diff --git a/vCardEditor/View/QRDialog.cs b/vCardEditor/View/QRDialog.cs index 9c3b71b..6a2fb18 100644 --- a/vCardEditor/View/QRDialog.cs +++ b/vCardEditor/View/QRDialog.cs @@ -29,8 +29,6 @@ namespace vCardEditor.View pictureBoxQRCode.BackgroundImage = qrCode.GetGraphic(20, Color.Black, Color.White, null, 1); pictureBoxQRCode.Size = new Size(pictureBoxQRCode.Width, pictureBoxQRCode.Height); pictureBoxQRCode.SizeMode = PictureBoxSizeMode.StretchImage; - - } } @@ -61,30 +59,27 @@ namespace vCardEditor.View } else { - using (FileStream fs = (System.IO.FileStream)saveFileDialog1.OpenFile()) + using (FileStream fs = (FileStream)saveFileDialog1.OpenFile()) { - - - ImageFormat imageFormat = null; - switch (saveFileDialog1.FilterIndex) - { - case 1: - imageFormat = ImageFormat.Bmp; - break; - case 2: - imageFormat = ImageFormat.Png; - break; - case 3: - imageFormat = ImageFormat.Jpeg; - break; - case 4: - imageFormat = ImageFormat.Gif; - break; - default: - throw new NotSupportedException("File extension is not supported"); - } - pictureBoxQRCode.BackgroundImage.Save(fs, imageFormat); - + ImageFormat imageFormat = null; + switch (saveFileDialog1.FilterIndex) + { + case 1: + imageFormat = ImageFormat.Bmp; + break; + case 2: + imageFormat = ImageFormat.Png; + break; + case 3: + imageFormat = ImageFormat.Jpeg; + break; + case 4: + imageFormat = ImageFormat.Gif; + break; + default: + throw new NotSupportedException("File extension is not supported"); + } + pictureBoxQRCode.BackgroundImage.Save(fs, imageFormat); } } } diff --git a/vCardEditor/View/SortableBindingList.cs b/vCardEditor/View/SortableBindingList.cs index 511d375..4459bcf 100644 --- a/vCardEditor/View/SortableBindingList.cs +++ b/vCardEditor/View/SortableBindingList.cs @@ -104,7 +104,7 @@ namespace vCardEditor.View // Remember the current setting for RaiseListChangedEvents // (if it was already deactivated, we shouldn't activate it after adding!). - var oldRaiseEventsValue = RaiseListChangedEvents; + bool oldRaiseEventsValue = RaiseListChangedEvents; try { @@ -122,9 +122,6 @@ namespace vCardEditor.View if (RaiseListChangedEvents) ResetBindings(); } - } - - } } diff --git a/vCardEditor/vCardEditor.csproj b/vCardEditor/vCardEditor.csproj index c3f04a0..c167373 100644 --- a/vCardEditor/vCardEditor.csproj +++ b/vCardEditor/vCardEditor.csproj @@ -176,11 +176,11 @@ ColumnsDialog.cs - + Form - - CustumInputDialog.cs + + CustomInputDialog.cs UserControl @@ -244,8 +244,8 @@ ColumnsDialog.cs - - CustumInputDialog.cs + + CustomInputDialog.cs ExtendedPanel.cs