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.
595 lines
17 KiB
Plaintext
595 lines
17 KiB
Plaintext
unit icq_fr;
|
|
{$I RnQConfig.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
|
|
ComCtrls, StdCtrls, ExtCtrls, RnQButtons, RnQSpin, RDGlobal,
|
|
selectcontactsDlg, RnQPrefsLib,
|
|
Mask, Menus;
|
|
|
|
{$I NoRTTI.inc}
|
|
|
|
type
|
|
TicqFr = class(TPrefFrame)
|
|
plBg: TPanel;
|
|
O: TPageControl;
|
|
TS1: TTabSheet;
|
|
birthGrp: TRadioGroup;
|
|
addedYouChk: TCheckBox;
|
|
clientidChk: TCheckBox;
|
|
webawareChk: TCheckBox;
|
|
visibilityexploitChk: TCheckBox;
|
|
dcGrp: TRadioGroup;
|
|
authNeededChk: TCheckBox;
|
|
AddTrafTB: TTabSheet;
|
|
GBTyping: TGroupBox;
|
|
Label2: TLabel;
|
|
Label3: TLabel;
|
|
ChkSendTyping: TCheckBox;
|
|
MTNIdleSpin: TRnQSpinEdit;
|
|
GBInvis: TGroupBox;
|
|
Label1: TLabel;
|
|
ChkinvisCheck: TCheckBox;
|
|
CheckInvisSpin: TRnQSpinEdit;
|
|
ChkInvisSend: TCheckBox;
|
|
ChkInvisGoOfl: TCheckBox;
|
|
ShwOfflBox: TCheckBox;
|
|
ChkSupInvChk: TCheckBox;
|
|
ChkTyping: TCheckBox;
|
|
SendUTF8Chk: TCheckBox;
|
|
Label4: TLabel;
|
|
ChkIntervSpin: TRnQSpinEdit;
|
|
Label5: TLabel;
|
|
UTF8MsgsChk: TCheckBox;
|
|
ChkInvisRG: TRadioGroup;
|
|
ProtVerCBox: TComboBox;
|
|
AutoReqXStChk: TCheckBox;
|
|
TestWWBtn: TRnQButton;
|
|
SBSelInvisCl: TRnQButton;
|
|
MsgCryptChk: TCheckBox;
|
|
useSSIChk: TCheckBox;
|
|
PrivacyGrp: TRadioGroup;
|
|
AvatarsTS: TTabSheet;
|
|
AvatarGrp: TGroupBox;
|
|
AvtAutLoadChk: TCheckBox;
|
|
AvtAutGetChk: TCheckBox;
|
|
CheckBox1: TCheckBox;
|
|
RnQSpinEdit1: TRnQSpinEdit;
|
|
NotDnlddInfoChk: TCheckBox;
|
|
SupAvtChk: TCheckBox;
|
|
UseLSIChk: TCheckBox;
|
|
ShowInvChk: TCheckBox;
|
|
CapEdit: TMaskEdit;
|
|
CapsPpp: TPopupMenu;
|
|
AddCapsBtn: TRnQButton;
|
|
AddCapsChk: TCheckBox;
|
|
CapsLabel: TLabel;
|
|
FileTrTS: TTabSheet;
|
|
FTPortsEdit: TLabeledEdit;
|
|
SecTS: TTabSheet;
|
|
pwdBox: TEdit;
|
|
Label23: TLabel;
|
|
SaveMD5chk: TCheckBox;
|
|
LoginRG: TRadioGroup;
|
|
AdvMsgChk: TCheckBox;
|
|
XMPPChk: TCheckBox;
|
|
bdayBox: TDateTimePicker;
|
|
procedure SBSelInvisClClick(Sender: TObject);
|
|
procedure UpdVis1(Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure UpdVis(Sender: TObject);
|
|
procedure SpeedButton1Click(Sender: TObject);
|
|
procedure AddCapsChkClick(Sender: TObject);
|
|
procedure AddCapsBtnClick(Sender: TObject);
|
|
procedure onCapsMenuClick(Sender: TObject);
|
|
procedure CapEditChange(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
// var
|
|
wnd: TselectCntsFrm;
|
|
public
|
|
{ Public declarations }
|
|
procedure CloseAction(Sender: TObject);
|
|
|
|
procedure initPage; Override; final;
|
|
procedure unInitPage; Override; final;
|
|
procedure applyPage; Override; final;
|
|
procedure resetPage; Override; final;
|
|
procedure updateVisPage; Override; final;
|
|
end;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
utilLib, RnQLangs, RDUtils, RnQCrypt, RnQPics,
|
|
ICQv9, Protocol_ICQ, ICQConsts, RnQProtocol, // contacts,
|
|
RnQMenu, menusUnit, themesLib, globalLib,
|
|
RQUtil, RnQFileUtil, RnQDialogs, mainDlg;
|
|
|
|
type
|
|
TCapsRec = record
|
|
v: AnsiString;
|
|
S: String;
|
|
pic: TPicName;
|
|
end;
|
|
|
|
const
|
|
CliCaps: array [0 .. 3] of TCapsRec = ((v: '&RQinside'; S: '&RQ'; pic: PIC_CLI_NRQ), (v: 'Smaper '; S: 'Smaper';
|
|
pic: PIC_CLI_smaper), (v: 'PIGEON!'; S: 'Pigeon'; pic: PIC_CLI_pigeon), (v: 'SIM client'; S: 'SIM'; pic: PIC_CLI_SIM));
|
|
TypNotifCap = 'Typing Notification';
|
|
ChkInvCap = 'Support invisibility check';
|
|
|
|
var
|
|
needSaveChkList: Boolean;
|
|
|
|
procedure TicqFr.initPage;
|
|
var
|
|
I: Integer;
|
|
begin
|
|
pwdBox.onKeyDown := RnQmain.pwdboxKeyDown;
|
|
// pwdBox.Width:= ServerCBox.Width;
|
|
pwdBox.Width := TS1.Clientwidth - GAP_SIZE2 - pwdBox.Left;
|
|
|
|
birthGrp.Width := TS1.Clientwidth - GAP_SIZE2;
|
|
birthGrp.Left := GAP_SIZE;
|
|
dcGrp.Left := GAP_SIZE;
|
|
PrivacyGrp.Left := GAP_SIZE;
|
|
dcGrp.Width := birthGrp.Width;
|
|
{$IFDEF UseNotSSI}
|
|
// dcGrp.width := 190;
|
|
LoginRG.Width := dcGrp.Width;
|
|
// LoginRG.left := birthGrp.width - LoginRG.width + GAP_SIZE;
|
|
LoginRG.Left := GAP_SIZE;
|
|
LoginRG.Visible := True;
|
|
// OldxStChk.Visible := True;
|
|
|
|
useSSIChk.Visible := True;
|
|
UseLSIChk.Visible := True;
|
|
{$ELSE}
|
|
LoginRG.Visible := False;
|
|
// OldxStChk.Visible := False;
|
|
|
|
useSSIChk.Visible := False;
|
|
UseLSIChk.Visible := False;
|
|
{$ENDIF UseNotSSI}
|
|
PrivacyGrp.Top := dcGrp.Top + dcGrp.height + GAP_SIZEd2;
|
|
PrivacyGrp.Width := birthGrp.Width;
|
|
|
|
// birthGrp.top:= dcGrp.top + dcGrp.height + GAP_SIZE;
|
|
birthGrp.Top := PrivacyGrp.Top + PrivacyGrp.height + GAP_SIZEd2;
|
|
bdayBox.Top := birthGrp.Top + birthGrp.height - bdayBox.height - GAP_SIZE;
|
|
|
|
GBTyping.Width := birthGrp.Width;
|
|
GBInvis.Width := birthGrp.Width;
|
|
AvatarGrp.Width := birthGrp.Width;
|
|
|
|
// GBTyping.Caption := ' ' + getTranslation(TypNotifCap);
|
|
// GBInvis.Caption := ' ' + getTranslation(ChkInvCap);
|
|
|
|
bdayBox.Format := getTranslation('MMMM d');
|
|
{$IFDEF RNQ_FULL}
|
|
{$ELSE}
|
|
// TabSheet2.TabVisible := false;
|
|
{$ENDIF}
|
|
webawareChk.Width := TestWWBtn.Left - webawareChk.Left - 5;
|
|
ShwOfflBox.Width := GBInvis.Width - 10;
|
|
|
|
for I := 0 to Length(CliCaps) - 1 do
|
|
AddToMenu(CapsPpp.Items, dupAmperstand(CliCaps[I].S), CliCaps[I].pic, False, onCapsMenuClick, False).Tag := I;
|
|
end;
|
|
|
|
procedure TicqFr.unInitPage;
|
|
begin
|
|
clearMenu(CapsPpp.Items);
|
|
end;
|
|
|
|
procedure TicqFr.AddCapsBtnClick(Sender: TObject);
|
|
begin
|
|
// with TRnQButton(Sender).BoundsRect do
|
|
// with ClientToScreen(point(left,bottom)) do
|
|
with mousePos do
|
|
CapsPpp.Popup(X, Y)
|
|
end;
|
|
|
|
procedure TicqFr.onCapsMenuClick(Sender: TObject);
|
|
var
|
|
S: RawByteString;
|
|
begin
|
|
// with TRnQButton(Sender).BoundsRect do
|
|
// with ClientToScreen(point(left,bottom)) do
|
|
// with mousePos do
|
|
// CapsPpp.Popup(X,Y)
|
|
S := CliCaps[TMenuItem(Sender).Tag].v;
|
|
// CapEdit.Text := str2hex(s, ' ');
|
|
CapEdit.Text := str2hexU(S);
|
|
// CapEdit.EditText := str2hex(s);
|
|
end;
|
|
|
|
procedure TicqFr.CapEditChange(Sender: TObject);
|
|
begin
|
|
CapsLabel.Caption := hex2StrSafe(CapEdit.Text);
|
|
end;
|
|
|
|
procedure TicqFr.AddCapsChkClick(Sender: TObject);
|
|
begin
|
|
updateVisPage;
|
|
end;
|
|
|
|
procedure TicqFr.applyPage;
|
|
var
|
|
mustUpdPerms, mustUpdSts, mustUpdCaps: Boolean;
|
|
// tempStatus : byte;
|
|
icq: TICQSession;
|
|
I, l: Integer;
|
|
begin
|
|
if not Assigned(Account.AccProto) or (Account.AccProto.ProtoName <> 'ICQ') then
|
|
Exit;
|
|
icq := TICQSession(Account.AccProto.ProtoElem);
|
|
|
|
if (icq.saveMD5Pwd <> SaveMD5chk.Checked) then
|
|
begin
|
|
icq.saveMD5Pwd := SaveMD5chk.Checked;
|
|
if icq.saveMD5Pwd then
|
|
pwdBox.Text := MD5Pass(pwdBox.Text)
|
|
else
|
|
pwdBox.Text := '';
|
|
end;
|
|
if not icq.saveMD5Pwd then
|
|
icq.pwd := pwdBox.Text;
|
|
|
|
// ICQ.loginServerPort:=portBox.text;
|
|
mustUpdCaps := False;
|
|
mustUpdSts := False;
|
|
mustUpdPerms := False;
|
|
// sendInterests := sendInterChk.Checked;
|
|
if sendBalloonOn <> birthGrp.itemindex then
|
|
begin
|
|
sendBalloonOn := birthGrp.itemindex;
|
|
icq.applyBalloon;
|
|
mustUpdSts := True;
|
|
end;
|
|
sendBalloonOnDate := bdayBox.Date;
|
|
case dcGrp.itemindex of
|
|
0:
|
|
if icq.DCmode <> DC_NONE then
|
|
begin
|
|
mustUpdSts := True;
|
|
icq.DCmode := DC_NONE;
|
|
end;
|
|
1:
|
|
if icq.DCmode <> DC_ROSTER then
|
|
begin
|
|
mustUpdSts := True;
|
|
icq.DCmode := DC_ROSTER;
|
|
end;
|
|
2:
|
|
if icq.DCmode <> DC_EVERYONE then
|
|
begin
|
|
mustUpdSts := True;
|
|
icq.DCmode := DC_EVERYONE;
|
|
end;
|
|
3:
|
|
if icq.DCmode <> DC_FAKE then
|
|
begin
|
|
mustUpdSts := True;
|
|
icq.DCmode := DC_FAKE;
|
|
end;
|
|
end;
|
|
if icq.showclientid <> clientidChk.Checked then
|
|
begin
|
|
icq.showclientid := clientidChk.Checked;
|
|
mustUpdSts := True;
|
|
mustUpdCaps := True;
|
|
end;
|
|
if (AddCapsChk.Checked <> AddExtCliCaps) then
|
|
begin
|
|
AddExtCliCaps := AddCapsChk.Checked;
|
|
mustUpdCaps := True;
|
|
end;
|
|
if (ExtClientCaps <> hex2StrSafe(CapEdit.Text)) then
|
|
begin
|
|
if Length(CapEdit.Text) > 2 then
|
|
begin
|
|
ExtClientCaps := hex2StrSafe(CapEdit.Text);
|
|
l := Length(ExtClientCaps);
|
|
if l < 16 then
|
|
begin
|
|
SetLength(ExtClientCaps, 16);
|
|
for I := l + 1 to 16 do
|
|
ExtClientCaps[I] := #00;
|
|
end;
|
|
end
|
|
else
|
|
ExtClientCaps := '';
|
|
if AddExtCliCaps then
|
|
mustUpdCaps := True;
|
|
end;
|
|
if showInvisSts <> ShowInvChk.Checked then
|
|
begin
|
|
if not showInvisSts and (icq.visibility in [VI_invisible, VI_privacy]) then
|
|
begin
|
|
icq.sendStatusCode(False);
|
|
mustUpdSts := False;
|
|
end;
|
|
showInvisSts := ShowInvChk.Checked;
|
|
end;
|
|
// ProtVerCBox
|
|
if icq.SupportUTF <> SendUTF8Chk.Checked then
|
|
begin
|
|
icq.SupportUTF := SendUTF8Chk.Checked;
|
|
mustUpdCaps := True;
|
|
end;
|
|
if icq.UseCryptMsg <> MsgCryptChk.Checked then
|
|
begin
|
|
icq.UseCryptMsg := MsgCryptChk.Checked;
|
|
mustUpdCaps := True;
|
|
end;
|
|
icq.SendingUTF := UTF8MsgsChk.Checked;
|
|
icq.UseAdvMsg := AdvMsgChk.Checked;
|
|
useFBcontacts := XMPPChk.Checked;
|
|
warnVisibilityExploit := visibilityexploitChk.Checked;
|
|
if icq.webaware <> webawareChk.Checked then
|
|
begin
|
|
icq.webaware := webawareChk.Checked;
|
|
// ICQ.webaware:=webaware;
|
|
mustUpdPerms := True;
|
|
mustUpdSts := True;
|
|
end;
|
|
if PrivacyGrp.itemindex <> icq.showInfo then
|
|
begin
|
|
icq.showInfo := PrivacyGrp.itemindex;
|
|
mustUpdPerms := True;
|
|
// mustUpdSts := True;
|
|
end;
|
|
|
|
sendTheAddedYou := addedYouChk.Checked;
|
|
if icq.authNeeded <> authNeededChk.Checked then
|
|
begin
|
|
icq.authNeeded := authNeededChk.Checked;
|
|
mustUpdPerms := True;
|
|
mustUpdSts := True;
|
|
end;
|
|
if icq.SupportTypingNotif <> ChkTyping.Checked then
|
|
begin
|
|
mustUpdCaps := True;
|
|
icq.SupportTypingNotif := ChkTyping.Checked;
|
|
end;
|
|
icq.isSendTypingNotif := ChkSendTyping.Checked;
|
|
typingInterval := MTNIdleSpin.AsInteger;
|
|
{$IFDEF CHECK_INVIS}
|
|
supportInvisCheck := ChkSupInvChk.Checked;
|
|
CheckInvis.AutoCheck := ChkinvisCheck.Checked;
|
|
CheckInvis.AutoCheckInterval := CheckInvisSpin.AsInteger;
|
|
CheckInvis.ChkInvisInterval := ChkIntervSpin.Value;
|
|
CheckInvis.AutoCheckOnSend := ChkInvisSend.Checked;
|
|
CheckInvis.AutoCheckGoOfflineUsers := ChkInvisGoOfl.Checked;
|
|
CheckInvis.Method := ChkInvisRG.itemindex;
|
|
showCheckedInvOfl := ShwOfflBox.Checked;
|
|
{$ENDIF}
|
|
icq.AvatarsSupport := SupAvtChk.Checked;
|
|
icq.AvatarsAutoGet := AvtAutLoadChk.Checked;
|
|
icq.AvatarsAutoGetSWF := AvtAutGetChk.Checked;
|
|
AvatarsNotDnlddInform := NotDnlddInfoChk.Checked;
|
|
autoRequestXsts := AutoReqXStChk.Checked;
|
|
{$IFDEF UseNotSSI}
|
|
{ if OldxStChk.Checked <> UseOldXSt then
|
|
begin
|
|
UseOldXSt := OldxStChk.Checked;
|
|
try
|
|
tempStatus := icq.curXStatus;
|
|
if (not UseOldXSt and (xsf_6 in XStatusArray[tempStatus].flags))
|
|
or (UseOldXSt and (xsf_Old in XStatusArray[tempStatus].flags)) then
|
|
else
|
|
icq.curXStatus := 0;
|
|
except
|
|
end;
|
|
mustUpdCaps := True;
|
|
mustUpdSts := True;
|
|
end; }
|
|
LoginMD5 := LoginRG.itemindex = 1;
|
|
useSSI2 := useSSIChk.Checked;
|
|
useLSI2 := UseLSIChk.Checked;
|
|
{$ENDIF UseNotSSI}
|
|
if mustUpdCaps and icq.isOnline then
|
|
icq.sendCapabilities;
|
|
if mustUpdSts and icq.isOnline then
|
|
icq.sendStatusCode;
|
|
if mustUpdPerms and icq.isOnline then
|
|
begin
|
|
icq.sendPrivacy(PrivacyGrp.itemindex, webawareChk.Checked, authNeededChk.Checked);
|
|
// Reload UIN info to refresh this ICQ settings page
|
|
icq.sendAdvQueryInfo(Account.AccProto.MyAccNum, '');
|
|
end;
|
|
if needSaveChkList then
|
|
saveListsDelayed := True;
|
|
// if not saveFile(userPath+CheckInvisFileName+'.txt', CheckInvis.CList.toString, True) then
|
|
// msgDlg(getTranslation('Error saving Check-invisibility list'),mtError);
|
|
end;
|
|
|
|
procedure TicqFr.resetPage;
|
|
var
|
|
icq: TICQSession;
|
|
begin
|
|
if not Assigned(Account.AccProto) or (Account.AccProto.ProtoName <> 'ICQ') then
|
|
Exit;
|
|
icq := TICQSession(Account.AccProto.ProtoElem);
|
|
|
|
pwdBox.Text := icq.pwd;
|
|
SaveMD5chk.Checked := icq.saveMD5Pwd;
|
|
// sendInterChk.Checked := sendInterests;
|
|
birthGrp.itemindex := sendBalloonOn;
|
|
bdayBox.Date := sendBalloonOnDate;
|
|
case icq.DCmode of
|
|
DC_ROSTER:
|
|
dcGrp.itemindex := 1;
|
|
DC_EVERYONE:
|
|
dcGrp.itemindex := 2;
|
|
// DC_FAKE: dcGrp.ItemIndex := 3;
|
|
else
|
|
// DC_NONE:
|
|
dcGrp.itemindex := 0;
|
|
end;
|
|
visibilityexploitChk.Checked := warnVisibilityExploit;
|
|
clientidChk.Checked := icq.showclientid;
|
|
AddCapsChk.Checked := AddExtCliCaps;
|
|
CapEdit.Text := str2hexU(ExtClientCaps);
|
|
SendUTF8Chk.Checked := icq.SupportUTF;
|
|
UTF8MsgsChk.Checked := icq.SendingUTF;
|
|
MsgCryptChk.Checked := icq.UseCryptMsg;
|
|
AdvMsgChk.Checked := icq.UseAdvMsg;
|
|
XMPPChk.Checked := useFBcontacts;
|
|
ShowInvChk.Checked := showInvisSts;
|
|
addedYouChk.Checked := sendTheAddedYou;
|
|
webawareChk.Checked := icq.webaware;
|
|
PrivacyGrp.itemindex := icq.showInfo;
|
|
authNeededChk.Checked := icq.authNeeded;
|
|
ChkTyping.Checked := icq.SupportTypingNotif;
|
|
ChkSendTyping.Checked := icq.isSendTypingNotif;
|
|
MTNIdleSpin.Value := typingInterval;
|
|
{$IFDEF CHECK_INVIS}
|
|
ChkSupInvChk.Checked := supportInvisCheck;
|
|
ChkinvisCheck.Checked := CheckInvis.AutoCheck;
|
|
CheckInvisSpin.Value := CheckInvis.AutoCheckInterval;
|
|
ChkIntervSpin.Value := CheckInvis.ChkInvisInterval;
|
|
ChkInvisSend.Checked := CheckInvis.AutoCheckOnSend;
|
|
ChkInvisGoOfl.Checked := CheckInvis.AutoCheckGoOfflineUsers;
|
|
ChkInvisRG.itemindex := CheckInvis.Method;
|
|
ShwOfflBox.Checked := showCheckedInvOfl;
|
|
{$ELSE}
|
|
ChkSupInvChk.Checked := False;
|
|
ChkSupInvChk.Enabled := False;
|
|
{$ENDIF}
|
|
SupAvtChk.Checked := icq.AvatarsSupport;
|
|
AvtAutLoadChk.Checked := icq.AvatarsAutoGet;
|
|
AvtAutGetChk.Checked := icq.AvatarsAutoGetSWF;
|
|
NotDnlddInfoChk.Checked := AvatarsNotDnlddInform;
|
|
AutoReqXStChk.Checked := autoRequestXsts;
|
|
needSaveChkList := False;
|
|
{$IFDEF UseNotSSI}
|
|
if LoginMD5 then
|
|
LoginRG.itemindex := 1
|
|
else
|
|
LoginRG.itemindex := 0;
|
|
useSSIChk.Checked := useSSI2;
|
|
UseLSIChk.Checked := useLSI2;
|
|
// OldxStChk.Checked := UseOldXSt;
|
|
{$ELSE UseNotSSI}
|
|
useSSIChk.Checked := True;
|
|
useSSIChk.Enabled := False;
|
|
{$ENDIF UseNotSSI}
|
|
end;
|
|
|
|
procedure TicqFr.updateVisPage;
|
|
begin
|
|
GBTyping.Visible := ChkTyping.Checked;
|
|
// if ChkTyping.Checked then
|
|
// begin
|
|
// ChkTyping.Caption := '';
|
|
// ChkTyping.Width := ChkTyping.Height;
|
|
// end
|
|
// else
|
|
// begin
|
|
ChkTyping.Caption := getTranslation(TypNotifCap);
|
|
ChkTyping.Width := GetWidth(ChkTyping);
|
|
// end;
|
|
|
|
// GBTyping.Enabled := ChkTyping.Checked;
|
|
{$IFDEF CHECK_INVIS}
|
|
GBInvis.Visible := ChkSupInvChk.Checked;
|
|
{$ELSE ~CHECK_INVIS}
|
|
GBInvis.Visible := False;
|
|
{$ENDIF CHECK_INVIS}
|
|
// if ChkSupInvChk.Checked then
|
|
// begin
|
|
// ChkSupInvChk.Caption := '';
|
|
// ChkSupInvChk.Width := ChkTyping.Height;
|
|
// end
|
|
// else
|
|
// begin
|
|
ChkSupInvChk.Caption := getTranslation(ChkInvCap);
|
|
ChkSupInvChk.Width := GetWidth(ChkSupInvChk);
|
|
// end;
|
|
|
|
AvatarGrp.Visible := SupAvtChk.Checked;
|
|
SupAvtChk.Width := GetWidth(SupAvtChk);
|
|
|
|
bdayBox.Enabled := birthGrp.itemindex = 3;
|
|
webawareChk.Enabled := Assigned(Account.AccProto) and Account.AccProto.isOnline;
|
|
PrivacyGrp.Enabled := webawareChk.Enabled;
|
|
{$IFDEF UseNotSSI}
|
|
// useSSIChk.Enabled := not webawareChk.Enabled;
|
|
UseLSIChk.Enabled := useSSIChk.Enabled and useSSIChk.Checked;
|
|
{$ELSE UseNotSSI}
|
|
// useSSIChk.Enabled := False;
|
|
UseLSIChk.Enabled := useSSIChk.Enabled;
|
|
{$ENDIF UseNotSSI}
|
|
ShowInvChk.Enabled := useSSIChk.Checked;
|
|
CapEdit.Enabled := AddCapsChk.Checked;
|
|
AddCapsBtn.Enabled := AddCapsChk.Checked;
|
|
|
|
SaveMD5chk.Enabled := LoginMD5;
|
|
if not LoginMD5 then
|
|
SaveMD5chk.Checked := False;
|
|
Label23.Enabled := not SaveMD5chk.Checked;
|
|
pwdBox.Enabled := Label23.Enabled;
|
|
end;
|
|
|
|
procedure TicqFr.SpeedButton1Click(Sender: TObject);
|
|
begin
|
|
openURL('http://wwp.icq.com/scripts/online.dll?icq=' + Account.AccProto.getMyInfo.UID2cmp + '&img=3')
|
|
end;
|
|
|
|
procedure TicqFr.UpdVis(Sender: TObject);
|
|
begin
|
|
updateVisPage;
|
|
end;
|
|
|
|
procedure TicqFr.UpdVis1(Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
begin
|
|
updateVisPage;
|
|
end;
|
|
|
|
procedure TicqFr.SBSelInvisClClick(Sender: TObject);
|
|
begin
|
|
if Assigned(wnd) then
|
|
SetForegroundWindow(wnd.Handle)
|
|
else
|
|
begin
|
|
wnd := TselectCntsFrm.doAll(TForm(parent), 'Select Invisibility check list', 'Select', Account.AccProto,
|
|
Account.AccProto.readList(LT_ROSTER).clone, // .add(notinlist),
|
|
CloseAction, [sco_multi, sco_groups, sco_predefined], @wnd, True);
|
|
// wnd.toggle(thisContact);
|
|
{$IFDEF CHECK_INVIS}
|
|
CheckInvis.CList.resetEnumeration;
|
|
while CheckInvis.CList.hasMore do
|
|
wnd.toggle(CheckInvis.CList.getNext);
|
|
{$ENDIF}
|
|
// wnd.icon:=theme.getIco(ICO_MSG);
|
|
// wnd.extra:=Tincapsulate.aString(msg);
|
|
end;
|
|
needSaveChkList := True;
|
|
end;
|
|
|
|
procedure TicqFr.CloseAction(Sender: TObject);
|
|
var
|
|
wnd: TselectCntsFrm;
|
|
// cl:TcontactList;
|
|
// msg:string;
|
|
begin
|
|
wnd := (Sender as Tcontrol).parent as TselectCntsFrm;
|
|
{$IFDEF CHECK_INVIS}
|
|
CheckInvis.CList := wnd.selectedList;
|
|
{$ENDIF}
|
|
// cl.free;
|
|
wnd.extra.free;
|
|
wnd.close;
|
|
end; // sendmessage action
|
|
|
|
// INITIALIZATION
|
|
|
|
// AddPrefPage(2, TicqFr, 'ICQ');
|
|
end.
|