You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
RnQ/RnQ/Prefs/ignore_fr.pas

122 lines
3.3 KiB
Plaintext

unit ignore_fr;
interface
{$I Compilers.inc}
{$I RnQConfig.inc}
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
StdCtrls, Menus, RnQButtons, RnQDialogs, GlobalLib;
{$I NoRTTI.inc}
type
TignoreFr = class(TPrefFrame)
ignoreChk: TCheckBox;
ignoreBox: TListBox;
PopupMenu: TPopupMenu;
menuviewinfo: TMenuItem;
addBtn: TRnQButton;
removeBtn: TRnQButton;
procedure ignoreBoxDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ignoreBoxDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure removeBtnClick(Sender: TObject);
procedure addBtnClick(Sender: TObject);
procedure menuviewinfoClick(Sender: TObject);
procedure ignoreBoxContextPopup(Sender: TObject; MousePos: TPoint;
var Handled: Boolean);
private
currentContact : Tcontact;
{ Private declarations }
public
procedure applyPage; Override;
procedure resetPage; Override;
{ Public declarations }
end;
implementation
uses
RQGlobal, RQThemes, RnQFileUtil,
icqv9,
utilLib, mainDlg, RQUtil, RnQLangs;
{$R *.dfm}
procedure TignoreFr.ignoreBoxDragDrop(Sender, Source: TObject; X,Y: Integer);
begin addToIgnoreList(clickedContact) end;
procedure TignoreFr.ignoreBoxDragOver(Sender, Source: TObject; X,Y: Integer; State: TDragState; var Accept: Boolean);
begin accept:=source=RnQmain.roaster end;
procedure TignoreFr.removeBtnClick(Sender: TObject);
var
i:integer;
begin
for i:=ignoreBox.count-1 downto 0 do
if ignoreBox.selected[i] then
ignoreList.remove(ignoreBox.items.objects[i]);
ignoreBox.deleteSelected;
saveLists;
end;
procedure TignoreFr.addBtnClick(Sender: TObject);
begin
msgDlg(getTranslation('for now you can only drag&drop your contacts from the contact-list, sorry'),mtInformation);
end;
procedure TignoreFr.menuviewinfoClick(Sender: TObject);
begin
viewInfoAbout(currentContact)
end;
procedure TignoreFr.ignoreBoxContextPopup(Sender: TObject;
MousePos: TPoint; var Handled: Boolean);
var
i : Integer;
begin
i := ignoreBox.ItemAtPos(MousePos, True);
if i >=0 then
currentContact := Tcontact(ignoreBox.items.objects[i]);
PopupMenu.Popup(ignoreBox.ClientToScreen(MousePos).X, ignoreBox.ClientToScreen(MousePos).Y)
end;
procedure TignoreFr.applyPage;
var
i : Integer;
begin
enableIgnorelist:=ignoreChk.checked;
Ignorelist.clear;
with ignoreBox do
for i:=0 to count-1 do
Ignorelist.add(items.objects[i]);
if not saveFile(userPath+ignoreFileName+'.txt', ignorelist.toString, True) then
msgDlg(getTranslation('Error saving ignore list'),mtError);
end;
procedure TignoreFr.resetPage;
var
i : Integer;
begin
addBtn.top:= clientHeight - GAP_SIZE - addBtn.Height;
addBtn.left:= GAP_SIZE;
removeBtn.top:= addBtn.top;
removeBtn.left:= addBtn.left + addBtn.Width +GAP_SIZE;
ignoreBox.width:= clientWidth - GAP_SIZE2;
ignoreBox.height:= clientHeight - GAP_SIZE2 - ignoreBox.top - addBtn.Height;
ignoreChk.checked:=enableIgnorelist;
ignoreBox.clear;
with ignoreList do
for i:=0 to count-1 do
ignoreBox.addItem(getAt(i).displayed,getAt(i));
end;
INITIALIZATION
AddPrefPage(0, TignoreFr, 'Ignore list');
end.