Ignore:
Timestamp:
Feb 28, 2018, 1:43:45 PM (7 years ago)
Author:
chronos
Message:
  • Added: From Find duplicities form it is possible to open the list of duplicit contacts for further modification/addition/removal.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormFindDuplicity.pas

    r16 r18  
    77uses
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
    9   ExtCtrls, StdCtrls, Contnrs, UContact;
     9  ExtCtrls, StdCtrls, ActnList, Menus, Contnrs, UContact;
    1010
    1111type
     
    2929
    3030  TFormFindDuplicity = class(TForm)
     31    AShowContacts: TAction;
     32    ActionList1: TActionList;
    3133    ComboBoxField: TComboBox;
    3234    Label1: TLabel;
    3335    ListView1: TListView;
     36    MenuItem1: TMenuItem;
    3437    Panel1: TPanel;
     38    PopupMenu1: TPopupMenu;
     39    procedure AShowContactsExecute(Sender: TObject);
    3540    procedure ComboBoxFieldChange(Sender: TObject);
    3641    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
     
    5964
    6065uses
    61   UCore;
     66  UCore, UFormContacts;
    6267
    6368{ TFoundItems }
     
    95100  with TFoundItem(FoundItems[Item.Index]) do begin
    96101    Item.Caption := Field;
     102    Item.Data := FoundItems[Item.Index];
    97103    Item.SubItems.Add(Contacts.ToString);
    98104    Item.SubItems.Add(IntToStr(Contacts.Count));
     
    156162end;
    157163
     164procedure TFormFindDuplicity.AShowContactsExecute(Sender: TObject);
     165var
     166  Form: TFormContacts;
     167  I: Integer;
     168begin
     169  if Assigned(ListView1.Selected) then begin
     170    Form := TFormContacts.Create(nil);
     171    Form.Contacts := TContacts.Create(False);
     172    Form.Contacts.ContactsFile := Contacts.ContactsFile;
     173    with TFoundItem(ListView1.Selected.Data) do
     174      for I := 0 to Contacts.Count - 1 do
     175        Form.Contacts.Add(Contacts[I]);
     176    Form.ShowModal;
     177    with TFoundItem(ListView1.Selected.Data) do begin
     178      // Remove all deleted
     179      for I := 0 to Contacts.Count - 1 do
     180        if Form.Contacts.IndexOf(Contacts[I]) = -1 then begin
     181          Form.Contacts.Remove(Contacts[I]);
     182          Self.Contacts.Remove(Contacts[I]);
     183          Self.Contacts.ContactsFile.Modified := True;
     184        end;
     185
     186      // Add newly added
     187      for I := 0 to Form.Contacts.Count - 1 do
     188        if Contacts.IndexOf(Form.Contacts[I]) = -1 then begin
     189          Form.Contacts.Add(Form.Contacts[I]);
     190          Self.Contacts.Add(Form.Contacts[I]);
     191          Self.Contacts.ContactsFile.Modified := True;
     192        end;
     193    end;
     194    Form.Contacts.Free;
     195    Form.Free;
     196    Find;
     197  end;
     198end;
     199
    158200procedure TFormFindDuplicity.FormClose(Sender: TObject;
    159201  var CloseAction: TCloseAction);
Note: See TracChangeset for help on using the changeset viewer.