Changeset 53 for trunk/Forms


Ignore:
Timestamp:
Dec 8, 2021, 2:02:17 PM (3 years ago)
Author:
chronos
Message:
  • Added: Allow to load from file or save to file individual selected contacts from the list.
Location:
trunk/Forms
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormContacts.lfm

    r52 r53  
    1414  object ListView1: TListView
    1515    Left = 0
    16     Height = 810
     16    Height = 801
    1717    Top = 0
    1818    Width = 1210
     
    5858    Left = 0
    5959    Height = 39
    60     Top = 842
     60    Top = 833
    6161    Width = 1210
    6262    Align = alBottom
     
    8686      Action = AClone
    8787    end
     88    object ToolButton5: TToolButton
     89      Left = 141
     90      Height = 33
     91      Top = 2
     92      Style = tbsSeparator
     93    end
     94    object ToolButton6: TToolButton
     95      Left = 149
     96      Top = 2
     97      Action = ALoadFromFile
     98    end
     99    object ToolButton7: TToolButton
     100      Left = 184
     101      Top = 2
     102      Action = ASaveToFile
     103    end
    88104  end
    89105  object ListViewFilter1: TListViewFilter
    90106    Left = 0
    91107    Height = 32
    92     Top = 810
     108    Top = 801
    93109    Width = 1210
    94110    OnChange = ListViewFilter1Change
     
    97113  object StatusBar1: TStatusBar
    98114    Left = 0
    99     Height = 27
    100     Top = 881
     115    Height = 36
     116    Top = 872
    101117    Width = 1210
    102118    Panels = <   
     
    124140    object MenuItem4: TMenuItem
    125141      Action = ASelectAll
     142    end
     143    object MenuItem6: TMenuItem
     144      Caption = '-'
     145    end
     146    object MenuItem7: TMenuItem
     147      Action = ALoadFromFile
     148    end
     149    object MenuItem8: TMenuItem
     150      Action = ASaveToFile
    126151    end
    127152  end
     
    158183      OnExecute = ACloneExecute
    159184    end
     185    object ALoadFromFile: TAction
     186      Caption = 'Load from file...'
     187      ImageIndex = 5
     188      OnExecute = ALoadFromFileExecute
     189    end
     190    object ASaveToFile: TAction
     191      Caption = 'Save to file...'
     192      ImageIndex = 7
     193      OnExecute = ASaveToFileExecute
     194    end
    160195  end
    161196  object ListViewSort1: TListViewSort
     
    169204    Top = 428
    170205  end
     206  object SaveDialog1: TSaveDialog
     207    Left = 720
     208    Top = 408
     209  end
     210  object OpenDialog1: TOpenDialog
     211    Left = 720
     212    Top = 480
     213  end
    171214end
  • trunk/Forms/UFormContacts.lrj

    r52 r53  
    1111{"hash":93079237,"name":"tformcontacts.aremove.caption","sourcebytes":[82,101,109,111,118,101],"value":"Remove"},
    1212{"hash":195296268,"name":"tformcontacts.aselectall.caption","sourcebytes":[83,101,108,101,99,116,32,97,108,108],"value":"Select all"},
    13 {"hash":4863557,"name":"tformcontacts.aclone.caption","sourcebytes":[67,108,111,110,101],"value":"Clone"}
     13{"hash":4863557,"name":"tformcontacts.aclone.caption","sourcebytes":[67,108,111,110,101],"value":"Clone"},
     14{"hash":177113358,"name":"tformcontacts.aloadfromfile.caption","sourcebytes":[76,111,97,100,32,102,114,111,109,32,102,105,108,101,46,46,46],"value":"Load from file..."},
     15{"hash":10127854,"name":"tformcontacts.asavetofile.caption","sourcebytes":[83,97,118,101,32,116,111,32,102,105,108,101,46,46,46],"value":"Save to file..."}
    1416]}
  • trunk/Forms/UFormContacts.pas

    r52 r53  
    1616    AAdd: TAction;
    1717    AClone: TAction;
     18    ALoadFromFile: TAction;
     19    ASaveToFile: TAction;
    1820    ASelectAll: TAction;
    1921    ARemove: TAction;
     
    2830    MenuItem4: TMenuItem;
    2931    MenuItem5: TMenuItem;
     32    MenuItem6: TMenuItem;
     33    MenuItem7: TMenuItem;
     34    MenuItem8: TMenuItem;
     35    OpenDialog1: TOpenDialog;
    3036    PopupMenuContact: TPopupMenu;
     37    SaveDialog1: TSaveDialog;
    3138    StatusBar1: TStatusBar;
    3239    ToolBar1: TToolBar;
     
    3542    ToolButton3: TToolButton;
    3643    ToolButton4: TToolButton;
     44    ToolButton5: TToolButton;
     45    ToolButton6: TToolButton;
     46    ToolButton7: TToolButton;
    3747    procedure AAddExecute(Sender: TObject);
    3848    procedure ACloneExecute(Sender: TObject);
     49    procedure ALoadFromFileExecute(Sender: TObject);
    3950    procedure AModifyExecute(Sender: TObject);
    4051    procedure ARemoveExecute(Sender: TObject);
     52    procedure ASaveToFileExecute(Sender: TObject);
    4153    procedure ASelectAllExecute(Sender: TObject);
    4254    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
     
    314326end;
    315327
     328procedure TFormContacts.ALoadFromFileExecute(Sender: TObject);
     329var
     330  TempFile: TContactsFile;
     331begin
     332  if Assigned(ListView1.Selected) then begin
     333    TempFile := TContactsFile.Create;
     334    try
     335      OpenDialog1.Filter := TempFile.GetFileFilter;
     336      OpenDialog1.DefaultExt := TempFile.GetFileExt;
     337    finally
     338      TempFile.Free;
     339    end;
     340    OpenDialog1.InitialDir := ExtractFileDir(Core.LastContactFileName);
     341    OpenDialog1.FileName := ExtractFileName(Core.LastContactFileName);
     342    if OpenDialog1.Execute then begin
     343      TContact(ListView1.Selected.Data).LoadFromFile(OpenDialog1.FileName);
     344      Core.LastContactFileName := OpenDialog1.FileName;
     345      ReloadList;
     346    end;
     347  end;
     348end;
     349
    316350procedure TFormContacts.AModifyExecute(Sender: TObject);
    317351var
     
    359393end;
    360394
     395procedure TFormContacts.ASaveToFileExecute(Sender: TObject);
     396var
     397  TempFile: TContactsFile;
     398begin
     399  if Assigned(ListView1.Selected) then begin
     400    TempFile := TContactsFile.Create;
     401    try
     402      SaveDialog1.Filter := TempFile.GetFileFilter;
     403      SaveDialog1.DefaultExt := TempFile.GetFileExt;
     404    finally
     405      TempFile.Free;
     406    end;
     407    SaveDialog1.InitialDir := ExtractFileDir(Core.LastContactFileName);
     408    SaveDialog1.FileName := TContact(ListView1.Selected.Data).Fields[cfFullName] +
     409      VCardFileExt;
     410    if SaveDialog1.Execute then begin
     411      TContact(ListView1.Selected.Data).SaveToFile(SaveDialog1.FileName);
     412      Core.LastContactFileName := SaveDialog1.FileName;
     413    end;
     414  end;
     415end;
     416
    361417procedure TFormContacts.ASelectAllExecute(Sender: TObject);
    362418var
     
    409465begin
    410466  if FUpdateCount = 0 then DoUpdateInterface;
     467  ALoadFromFile.Enabled := Assigned(ListView1.Selected);
     468  ASaveToFile.Enabled := Assigned(ListView1.Selected);
     469  AModify.Enabled := Assigned(ListView1.Selected);
     470  AClone.Enabled := Assigned(ListView1.Selected);
     471  ARemove.Enabled := Assigned(ListView1.Selected);
     472  ASelectAll.Enabled := ListView1.Items.Count > 0;
    411473end;
    412474
Note: See TracChangeset for help on using the changeset viewer.