Changeset 145 for trunk/Forms


Ignore:
Timestamp:
Jan 24, 2017, 1:55:43 PM (7 years ago)
Author:
chronos
Message:
  • Added: Allow to disable selected acronym categories so acronyms without any enabled category won't be shown in main acronym search filter.
Location:
trunk/Forms
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormCategories.lfm

    r123 r145  
    11object FormCategories: TFormCategories
    2   Left = 592
     2  Left = 516
    33  Height = 429
    4   Top = 490
     4  Top = 439
    55  Width = 784
    66  Caption = 'Acronym categories'
     
    1111  OnShow = FormShow
    1212  Position = poScreenCenter
    13   LCLVersion = '1.6.0.4'
     13  LCLVersion = '1.6.2.0'
    1414  object ListViewCategories: TListView
    1515    Left = 4
     
    1919    Align = alClient
    2020    BorderSpacing.Around = 4
     21    Checkboxes = True
    2122    Columns = <   
    2223      item
     
    3536    TabOrder = 0
    3637    ViewStyle = vsReport
     38    OnChange = ListViewCategoriesChange
    3739    OnData = ListViewCategoriesData
    3840    OnDblClick = ListViewCategoriesDblClick
     
    9395      OnExecute = ASelectAllExecute
    9496      ShortCut = 16449
     97    end
     98    object AEnable: TAction
     99      Caption = 'Enable'
     100      OnExecute = AEnableExecute
     101    end
     102    object ADisable: TAction
     103      Caption = 'Disable'
     104      OnExecute = ADisableExecute
    95105    end
    96106  end
     
    219229      Action = ASelectAll
    220230    end
     231    object MenuItem5: TMenuItem
     232      Caption = '-'
     233    end
     234    object MenuItem6: TMenuItem
     235      Action = AEnable
     236    end
     237    object MenuItem7: TMenuItem
     238      Action = ADisable
     239    end
     240  end
     241  object ListViewSort1: TListViewSort
     242    ListView = ListViewCategories
     243    OnCompareItem = ListViewSort1CompareItem
     244    OnFilter = ListViewSort1Filter
     245    Column = 0
     246    Order = soNone
     247    left = 536
     248    top = 184
    221249  end
    222250end
  • trunk/Forms/UFormCategories.lrt

    r123 r145  
    77TFORMCATEGORIES.AMODIFY.CAPTION=Modify
    88TFORMCATEGORIES.ASELECTALL.CAPTION=Select all
     9TFORMCATEGORIES.AENABLE.CAPTION=Enable
     10TFORMCATEGORIES.ADISABLE.CAPTION=Disable
     11TFORMCATEGORIES.MENUITEM5.CAPTION=-
  • trunk/Forms/UFormCategories.pas

    r123 r145  
    77uses
    88  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
    9   ActnList, Menus, UAcronym;
     9  ActnList, Menus, UAcronym, UListViewSort;
    1010
    1111type
     
    1515  TFormCategories = class(TForm)
    1616    AAdd: TAction;
     17    AEnable: TAction;
     18    ADisable: TAction;
    1719    ASelectAll: TAction;
    1820    ARemove: TAction;
     
    2022    ActionList1: TActionList;
    2123    ListViewCategories: TListView;
     24    ListViewSort1: TListViewSort;
    2225    MenuItem1: TMenuItem;
    2326    MenuItem2: TMenuItem;
    2427    MenuItem3: TMenuItem;
    2528    MenuItem4: TMenuItem;
     29    MenuItem5: TMenuItem;
     30    MenuItem6: TMenuItem;
     31    MenuItem7: TMenuItem;
    2632    PopupMenuCategory: TPopupMenu;
    2733    ToolBar1: TToolBar;
     
    3036    ToolButton3: TToolButton;
    3137    procedure AAddExecute(Sender: TObject);
     38    procedure ADisableExecute(Sender: TObject);
     39    procedure AEnableExecute(Sender: TObject);
    3240    procedure AModifyExecute(Sender: TObject);
    3341    procedure ARemoveExecute(Sender: TObject);
     
    3644    procedure FormCreate(Sender: TObject);
    3745    procedure FormShow(Sender: TObject);
     46    procedure ListViewCategoriesChange(Sender: TObject; Item: TListItem;
     47      Change: TItemChange);
    3848    procedure ListViewCategoriesData(Sender: TObject; Item: TListItem);
    3949    procedure ListViewCategoriesDblClick(Sender: TObject);
     
    4151    procedure ListViewCategoriesSelectItem(Sender: TObject; Item: TListItem;
    4252      Selected: Boolean);
     53    function ListViewSort1CompareItem(Item1, Item2: TObject): Integer;
     54    procedure ListViewSort1Filter(ListViewSort: TListViewSort);
    4355  private
    4456    { private declarations }
     
    7385  UpdateList;
    7486  Core.ScaleDPI1.ScaleControl(ToolBar1, Core.ScaleDPI1.DesignDPI);
     87end;
     88
     89procedure TFormCategories.ListViewCategoriesChange(Sender: TObject;
     90  Item: TListItem; Change: TItemChange);
     91begin
     92  if Assigned(Item) and (Change = ctState) then begin
     93    TAcronymCategory(Item.Data).Enabled := Item.Checked;
     94    Core.AcronymDb.Modified := True;
     95  end;
    7596end;
    7697
     
    87108    end else ShowMessage(Format(SCategoryAlreadyExists, [S]));
    88109  end;
     110end;
     111
     112procedure TFormCategories.ADisableExecute(Sender: TObject);
     113var
     114  I: Integer;
     115begin
     116  for I := ListViewCategories.Items.Count - 1 downto 0 do
     117  if ListViewCategories.Items[I].Selected then begin
     118    TAcronymCategory(ListViewCategories.Items[I].Data).Enabled := False;
     119    Core.AcronymDb.Modified := True;
     120  end;
     121  UpdateList;
     122end;
     123
     124procedure TFormCategories.AEnableExecute(Sender: TObject);
     125var
     126  I: Integer;
     127begin
     128  for I := ListViewCategories.Items.Count - 1 downto 0 do
     129  if ListViewCategories.Items[I].Selected then begin
     130    TAcronymCategory(ListViewCategories.Items[I].Data).Enabled := True;
     131    Core.AcronymDb.Modified := True;
     132  end;
     133  UpdateList;
    89134end;
    90135
     
    145190procedure TFormCategories.ListViewCategoriesData(Sender: TObject; Item: TListItem);
    146191begin
    147   if Item.Index < Core.AcronymDb.Categories.Count then
    148   with TAcronymCategory(Core.AcronymDb.Categories[Item.Index]) do begin
     192  if Item.Index < ListViewSort1.List.Count then
     193  with TAcronymCategory(ListViewSort1.List[Item.Index]) do begin
    149194    Item.Caption := Name;
    150     Item.Data := Core.AcronymDb.Categories[Item.Index];
     195    Item.Data := ListViewSort1.List[Item.Index];
    151196    Item.SubItems.Add(IntToStr(AcronymMeanings.Count));
     197    Item.Checked := Enabled;
    152198  end;
    153199end;
     
    170216end;
    171217
     218function TFormCategories.ListViewSort1CompareItem(Item1, Item2: TObject
     219  ): Integer;
     220begin
     221  Result := 0;
     222  if Assigned(Item1) and Assigned(Item2) and (ListViewSort1.Order <> soNone) then begin
     223    with ListViewSort1 do
     224    case Column of
     225      0: Result := CompareString(TAcronymCategory(Item1).Name, TAcronymCategory(Item2).Name);
     226      1: Result := CompareInteger(TAcronymCategory(Item1).AcronymMeanings.Count, TAcronymCategory(Item2).AcronymMeanings.Count);
     227    end;
     228    if ListViewSort1.Order = soDown then Result := -Result;
     229  end else Result := 0;
     230end;
     231
     232procedure TFormCategories.ListViewSort1Filter(ListViewSort: TListViewSort);
     233begin
     234  Core.AcronymDb.Categories.AssignToList(ListViewSort1.List);
     235end;
     236
    172237procedure TFormCategories.UpdateList;
    173238begin
     239  ListViewSort1.Refresh;
    174240  ListViewCategories.Items.Count := Core.AcronymDb.Categories.Count;
    175241  ListViewCategories.Refresh;
  • trunk/Forms/UFormImportSources.lfm

    r123 r145  
    1111  OnShow = FormShow
    1212  Position = poScreenCenter
    13   LCLVersion = '1.6.0.4'
     13  LCLVersion = '1.6.2.0'
    1414  object ToolBar1: TToolBar
    1515    Left = 0
     
    296296      }
    297297    end
     298    object MenuItem7: TMenuItem
     299      Caption = '-'
     300    end
    298301    object MenuItem5: TMenuItem
    299302      Action = AEnable
  • trunk/Forms/UFormImportSources.lrt

    r123 r145  
    1212TFORMIMPORTSOURCES.AENABLE.CAPTION=Enable
    1313TFORMIMPORTSOURCES.ADISABLE.CAPTION=Disable
     14TFORMIMPORTSOURCES.MENUITEM7.CAPTION=-
  • trunk/Forms/UFormImportSources.pas

    r123 r145  
    3232    MenuItem5: TMenuItem;
    3333    MenuItem6: TMenuItem;
     34    MenuItem7: TMenuItem;
    3435    PopupMenuImportSource: TPopupMenu;
    3536    ToolBar1: TToolBar;
     
    182183  if Assigned(Item) and (Change = ctState) then begin
    183184    TImportSource(Item.Data).Enabled := Item.Checked;
     185    Core.AcronymDb.Modified := True;
    184186  end;
    185187end;
     
    226228begin
    227229  for I := ListView1.Items.Count - 1 downto 0 do
    228   if ListView1.Items[I].Selected then
     230  if ListView1.Items[I].Selected then begin
    229231    TImportSource(ListView1.Items[I].Data).Enabled := False;
     232    Core.AcronymDb.Modified := True;
     233  end;
    230234  UpdateList;
    231235end;
     
    236240begin
    237241  for I := ListView1.Items.Count - 1 downto 0 do
    238   if ListView1.Items[I].Selected then
     242  if ListView1.Items[I].Selected then begin
    239243    TImportSource(ListView1.Items[I].Data).Enabled := True;
     244    Core.AcronymDb.Modified := True;
     245  end;
    240246  UpdateList;
    241247end;
  • trunk/Forms/UFormMain.pas

    r144 r145  
    499499procedure TFormMain.ListViewSort1Filter(ListViewSort: TListViewSort);
    500500begin
    501   Core.AcronymDb.AssignToList(ListViewSort1.List);
     501  Core.AcronymDb.AssignToList(ListViewSort1.List, True);
    502502  FilterList(ListViewSort1.List);
    503503end;
Note: See TracChangeset for help on using the changeset viewer.