Changeset 167 for trunk/Forms


Ignore:
Timestamp:
Jul 1, 2023, 11:54:02 AM (18 months ago)
Author:
chronos
Message:
  • Added: Import form preparation.
Location:
trunk/Forms
Files:
3 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/FormContacts.lfm

    r162 r167  
    11object FormContacts: TFormContacts
    2   Left = 400
     2  Left = 675
    33  Height = 908
    4   Top = 212
     4  Top = 266
    55  Width = 1210
    66  Caption = 'Contacts'
     
    255255  end
    256256  object SaveDialog1: TSaveDialog
    257     Title = 'Uložit soubor jako'
    258257    Left = 720
    259258    Top = 408
    260259  end
    261260  object OpenDialog1: TOpenDialog
    262     Title = 'Otevřít existující soubor'
    263261    Left = 720
    264262    Top = 480
  • trunk/Forms/FormContacts.lrj

    r162 r167  
    1919{"hash":19140,"name":"tformcontacts.acut.caption","sourcebytes":[67,117,116],"value":"Cut"},
    2020{"hash":5671589,"name":"tformcontacts.apaste.caption","sourcebytes":[80,97,115,116,101],"value":"Paste"},
    21 {"hash":174310419,"name":"tformcontacts.acolumns.caption","sourcebytes":[67,111,108,117,109,110,115],"value":"Columns"},
    22 {"hash":201423615,"name":"tformcontacts.savedialog1.title","sourcebytes":[85,108,111,197,190,105,116,32,115,111,117,98,111,114,32,106,97,107,111],"value":"Ulo\u017Eit soubor jako"},
    23 {"hash":45680018,"name":"tformcontacts.opendialog1.title","sourcebytes":[79,116,101,118,197,153,195,173,116,32,101,120,105,115,116,117,106,195,173,99,195,173,32,115,111,117,98,111,114],"value":"Otev\u0159\u00EDt existuj\u00EDc\u00ED soubor"}
     21{"hash":174310419,"name":"tformcontacts.acolumns.caption","sourcebytes":[67,111,108,117,109,110,115],"value":"Columns"}
    2422]}
  • trunk/Forms/FormExport.lfm

    r162 r167  
    11object FormExport: TFormExport
    2   Left = 566
     2  Left = 859
    33  Height = 679
    4   Top = 461
     4  Top = 380
    55  Width = 842
    66  Caption = 'Export'
     
    9494    object ListView1: TListView
    9595      Left = 19
    96       Height = 433
    97       Top = 149
     96      Height = 409
     97      Top = 173
    9898      Width = 775
    9999      Anchors = [akTop, akLeft, akRight, akBottom]
     
    103103      ViewStyle = vsReport
    104104    end
     105    object CheckBoxHumanReadableHeader: TCheckBox
     106      Left = 16
     107      Height = 30
     108      Top = 128
     109      Width = 231
     110      Caption = 'Human readable header'
     111      OnChange = CheckBoxHumanReadableHeaderChange
     112      TabOrder = 4
     113    end
    105114  end
    106115  object SaveDialog1: TSaveDialog
    107     Title = 'Uložit soubor jako'
    108116    Left = 350
    109117    Top = 163
    110118  end
     119  object TimerRedraw: TTimer
     120    Interval = 200
     121    OnTimer = TimerRedrawTimer
     122    Left = 205
     123    Top = 277
     124  end
    111125end
  • trunk/Forms/FormExport.lrj

    r162 r167  
    66{"hash":50353482,"name":"tformexport.label2.caption","sourcebytes":[79,117,116,112,117,116,32,102,105,108,101,58],"value":"Output file:"},
    77{"hash":77164181,"name":"tformexport.buttonbrowse.caption","sourcebytes":[66,114,111,119,115,101],"value":"Browse"},
    8 {"hash":201423615,"name":"tformexport.savedialog1.title","sourcebytes":[85,108,111,197,190,105,116,32,115,111,117,98,111,114,32,106,97,107,111],"value":"Ulo\u017Eit soubor jako"}
     8{"hash":46972866,"name":"tformexport.checkboxhumanreadableheader.caption","sourcebytes":[72,117,109,97,110,32,114,101,97,100,97,98,108,101,32,104,101,97,100,101,114],"value":"Human readable header"}
    99]}
  • trunk/Forms/FormExport.pas

    r162 r167  
    55uses
    66  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ComCtrls,
    7   Table, LazFileUtils, FormEx;
     7  ExtCtrls, Table, LazFileUtils, FormEx;
    88
    99type
     
    1515    ButtonCancel: TButton;
    1616    ButtonExport: TButton;
     17    CheckBoxHumanReadableHeader: TCheckBox;
    1718    ComboBoxOutputFormat: TComboBox;
    1819    EditOutputFile: TEdit;
     
    2223    SaveDialog1: TSaveDialog;
    2324    ScrollBox1: TScrollBox;
     25    TimerRedraw: TTimer;
    2426    procedure ButtonBrowseClick(Sender: TObject);
    2527    procedure ButtonExportClick(Sender: TObject);
     28    procedure CheckBoxHumanReadableHeaderChange(Sender: TObject);
    2629    procedure ComboBoxOutputFormatChange(Sender: TObject);
    2730    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
     
    2932    procedure FormDestroy(Sender: TObject);
    3033    procedure FormShow(Sender: TObject);
     34    procedure TimerRedrawTimer(Sender: TObject);
    3135  private
    3236    Table: TTable;
     37    RedrawPending: Boolean;
    3338    procedure PrepareTable;
    3439    procedure UpdateFileNameExt;
     
    4348
    4449uses
    45   Core, Common, RegistryEx, VCardFile;
     50  Core, Common, RegistryEx, VCardFile, VCard;
    4651
    4752{ TFormExport }
     
    5863  TableFormat := TTableFormat(ComboBoxOutputFormat.Items.Objects[ComboBoxOutputFormat.ItemIndex]);
    5964  SaveStringToFile(Table.GetOutput(TableFormat), EditOutputFile.Text);
     65end;
     66
     67procedure TFormExport.CheckBoxHumanReadableHeaderChange(Sender: TObject);
     68begin
     69  RedrawPending := True;
    6070end;
    6171
     
    102112procedure TFormExport.FormShow(Sender: TObject);
    103113begin
    104   PrepareTable;
    105   Table.GetOutputListView(ListView1);
     114  RedrawPending := True;
     115end;
     116
     117procedure TFormExport.TimerRedrawTimer(Sender: TObject);
     118begin
     119  if RedrawPending then begin
     120    PrepareTable;
     121    Table.GetOutputListView(ListView1);
     122    RedrawPending := False;
     123  end;
    106124end;
    107125
     
    113131  Values: TStringList;
    114132  Index: Integer;
    115 begin
     133  Fields: TContactFields;
     134  Field: TContactField;
     135  Columns: TStringList;
     136begin
     137  Fields := TContact.GetFields;
     138  Table.Clear;
     139
    116140  Values := TStringList.Create;
     141  Columns := TStringList.Create;
    117142  try
    118143    with TVCardFile(Core.Core.DataFile), VCard do begin
     
    123148        for J := 0 to Contacts[I].Properties.Count - 1 do
    124149        if not Contacts[I].Properties[J].Name.StartsWith('PHOTO') and
    125           (Table.Columns.IndexOf(Contacts[I].Properties[J].Name) = -1) then
    126           Table.Columns.Add(Contacts[I].Properties[J].Name);
     150          (Table.Columns.IndexOf(Contacts[I].Properties[J].Name) = -1) then begin
     151            Table.Columns.Add(Contacts[I].Properties[J].Name);
     152            Columns.Add(Contacts[I].Properties[J].Name);
     153          end;
     154      end;
     155
     156      if CheckBoxHumanReadableHeader.Checked then begin
     157        for I := 0 to Table.Columns.Count - 1 do begin
     158          Field := Fields.GetBySysName(Table.Columns[I]);
     159          if Assigned(Field) then Table.Columns[I] := Field.Title;
     160        end;
    127161      end;
    128162
    129163      for I := 0 to Contacts.Count - 1 do begin
    130164        Values.Clear;
    131         for J := 0 to Table.Columns.Count - 1 do
     165        for J := 0 to Columns.Count - 1 do
    132166          Values.Add('');
    133167        for J := 0 to Contacts[I].Properties.Count - 1 do begin
    134           Index := Table.Columns.IndexOf(Contacts[I].Properties[J].Name);
     168          Index := Columns.IndexOf(Contacts[I].Properties[J].Name);
    135169          if Index <> -1 then
    136170            Values[Index] := Contacts[I].Properties[J].Value;
     
    144178  finally
    145179    Values.Free;
     180    Columns.Free;
    146181  end;
    147182end;
     
    163198  try
    164199    CurrentContext := Core.Core.ApplicationInfo1.GetRegistryContext;
    165     EditOutputFile.Text := ReadStringWithDefault('LastExportFileName', 'Export.txt');
    166     TableFormat := TTableFormat(ReadIntegerWithDefault('TableFormat', Integer(tfCsv)));
     200    EditOutputFile.Text := ReadStringWithDefault('ExportFileName', 'Export.txt');
     201    TableFormat := TTableFormat(ReadIntegerWithDefault('ExportTableFormat', Integer(tfCsv)));
     202    CheckBoxHumanReadableHeader.Checked := ReadBoolWithDefault('ExportHumanReadableColumns', CheckBoxHumanReadableHeader.Checked);
    167203    ComboBoxOutputFormat.ItemIndex := ComboBoxOutputFormat.Items.IndexOfObject(TObject(TableFormat));
    168204  finally
     
    176212  try
    177213    CurrentContext := Core.Core.ApplicationInfo1.GetRegistryContext;
    178     WriteString('LastExportFileName', EditOutputFile.Text);
    179     WriteInteger('TableFormat', Integer(ComboBoxOutputFormat.Items.Objects[ComboBoxOutputFormat.ItemIndex]));
     214    WriteString('ExportFileName', EditOutputFile.Text);
     215    WriteInteger('ExportTableFormat', Integer(ComboBoxOutputFormat.Items.Objects[ComboBoxOutputFormat.ItemIndex]));
     216    WriteBool('ExportHumanReadableColumns', CheckBoxHumanReadableHeader.Checked);
    180217  finally
    181218    Free;
  • trunk/Forms/FormMain.lfm

    r165 r167  
    11object FormMain: TFormMain
    2   Left = 510
    3   Height = 822
    4   Top = 272
    5   Width = 1254
     2  Left = 534
     3  Height = 993
     4  Top = 223
     5  Width = 1491
    66  AllowDropFiles = True
    77  Caption = 'vCard Studio'
    8   ClientHeight = 792
    9   ClientWidth = 1254
     8  ClientHeight = 959
     9  ClientWidth = 1491
    1010  DesignTimePPI = 144
    1111  Menu = MainMenu1
     
    1919  OnShow = FormShow
    2020  LCLVersion = '2.2.6.0'
    21   WindowState = wsMaximized
    2221  object CoolBar1: TCoolBar
    2322    Left = 0
    2423    Height = 43
    2524    Top = 0
    26     Width = 1254
     25    Width = 1491
    2726    AutoSize = True
    2827    Bands = <   
     
    149148        Caption = '-'
    150149      end
     150      object MenuItem12: TMenuItem
     151        Action = Core.AFileCompare
     152      end
     153      object Separator1: TMenuItem
     154        Caption = '-'
     155      end
    151156      object MenuItem3: TMenuItem
    152157        Action = Core.AFileCombine
     
    155160        Action = Core.AFileSplit
    156161      end
    157       object MenuItem12: TMenuItem
    158         Action = Core.AFileCompare
     162      object Separator2: TMenuItem
     163        Caption = '-'
     164      end
     165      object MenuItem16: TMenuItem
     166        Action = Core.AFileImport
    159167      end
    160168      object MenuItem15: TMenuItem
  • trunk/Forms/FormMain.pas

    r165 r167  
    2121    MenuItem14: TMenuItem;
    2222    MenuItem15: TMenuItem;
     23    MenuItem16: TMenuItem;
    2324    MenuItemColumns: TMenuItem;
    2425    MenuItem3: TMenuItem;
     
    4647    MenuItemFile: TMenuItem;
    4748    PopupMenuOpenRecent: TPopupMenu;
     49    Separator1: TMenuItem;
     50    Separator2: TMenuItem;
    4851    ToolBarOther: TToolBar;
    4952    ToolBarFile: TToolBar;
  • trunk/Forms/FormProperties.lfm

    r162 r167  
    11object FormProperties: TFormProperties
    2   Left = 400
     2  Left = 675
    33  Height = 908
    4   Top = 212
     4  Top = 266
    55  Width = 1210
    66  Caption = 'Contacts'
     
    192192  end
    193193  object SaveDialog1: TSaveDialog
    194     Title = 'Uložit soubor jako'
    195194    Left = 760
    196195    Top = 448
    197196  end
    198197  object OpenDialog1: TOpenDialog
    199     Title = 'Otevřít existující soubor'
    200198    Left = 760
    201199    Top = 520
  • trunk/Forms/FormProperties.lrj

    r162 r167  
    1010{"hash":4863557,"name":"tformproperties.aclone.caption","sourcebytes":[67,108,111,110,101],"value":"Clone"},
    1111{"hash":201478110,"name":"tformproperties.asavevaluetofile.caption","sourcebytes":[83,97,118,101,32,118,97,108,117,101,32,116,111,32,102,105,108,101,46,46,46],"value":"Save value to file..."},
    12 {"hash":231494782,"name":"tformproperties.aloadvaluefromfile.caption","sourcebytes":[76,111,97,100,32,118,97,108,117,101,32,102,114,111,109,32,102,105,108,101,46,46,46],"value":"Load value from file..."},
    13 {"hash":201423615,"name":"tformproperties.savedialog1.title","sourcebytes":[85,108,111,197,190,105,116,32,115,111,117,98,111,114,32,106,97,107,111],"value":"Ulo\u017Eit soubor jako"},
    14 {"hash":45680018,"name":"tformproperties.opendialog1.title","sourcebytes":[79,116,101,118,197,153,195,173,116,32,101,120,105,115,116,117,106,195,173,99,195,173,32,115,111,117,98,111,114],"value":"Otev\u0159\u00EDt existuj\u00EDc\u00ED soubor"}
     12{"hash":231494782,"name":"tformproperties.aloadvaluefromfile.caption","sourcebytes":[76,111,97,100,32,118,97,108,117,101,32,102,114,111,109,32,102,105,108,101,46,46,46],"value":"Load value from file..."}
    1513]}
Note: See TracChangeset for help on using the changeset viewer.