mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-06 05:58:06 +02:00
pochecker: Finally fix main form scaling issue (hopefully...)
git-svn-id: trunk@65133 -
This commit is contained in:
parent
f4a42c7384
commit
4b4a0c7d92
@ -80,7 +80,6 @@ type
|
||||
procedure AddToMasterPoList(S: TStrings);
|
||||
procedure SetSelectedMasterFiles(S: TStrings);
|
||||
procedure ApplyConfig;
|
||||
procedure ApplyGeometry;
|
||||
procedure SaveConfig;
|
||||
function LangFilterIndexToLangID(Index: Integer): TLangID;
|
||||
function LangIdToLangFilterIndex(LangID: TLangID): Integer;
|
||||
@ -111,6 +110,7 @@ procedure ShowPoCheckerForm();
|
||||
begin
|
||||
if not Assigned(PoCheckerForm) then
|
||||
PoCheckerForm := TPoCheckerForm.Create(Application);
|
||||
PoCheckerForm.PixelsPerInch := Screen.PixelsPerInch;
|
||||
PoCheckerForm.Show;
|
||||
end;
|
||||
|
||||
@ -177,7 +177,6 @@ end;
|
||||
|
||||
procedure TPoCheckerForm.FormShow(Sender: TObject);
|
||||
begin
|
||||
ApplyGeometry;
|
||||
WindowState := FPoCheckerSettings.MainFormWindowState;
|
||||
SetSelectedMasterFiles(FPoCheckerSettings.MasterPoSelList);
|
||||
end;
|
||||
@ -516,9 +515,19 @@ end;
|
||||
|
||||
procedure TPoCheckerForm.ApplyConfig;
|
||||
var
|
||||
ARect: TRect;
|
||||
Abbr: String;
|
||||
ID: TLangID;
|
||||
begin
|
||||
ARect := FPoCheckerSettings.MainFormGeometry;
|
||||
if not IsDefaultRect(ARect) and IsValidRect(ARect) then
|
||||
begin
|
||||
// Main form size is stored in config at 96ppi.
|
||||
ARect.Width := Scale96ToForm(ARect.Width);
|
||||
ARect.Height := Scale96ToForm(ARect.Height);
|
||||
ARect := FitToRect(ARect, Screen.WorkAreaRect);
|
||||
BoundsRect := ARect;
|
||||
end;
|
||||
SetTestTypeCheckBoxes(FPoCheckerSettings.TestTypes);
|
||||
SelectDirectoryDialog.Filename := FPoCheckerSettings.SelectDirectoryFilename;
|
||||
Abbr := FPoCheckerSettings.LangFilterLanguageAbbr;
|
||||
@ -527,22 +536,11 @@ begin
|
||||
AddToMasterPoList(FPoCheckerSettings.MasterPoList);
|
||||
end;
|
||||
|
||||
procedure TPoCheckerForm.ApplyGeometry;
|
||||
var
|
||||
ARect: TRect;
|
||||
begin
|
||||
ARect := FPoCheckerSettings.MainFormGeometry;
|
||||
if not IsDefaultRect(ARect) and IsValidRect(ARect) then
|
||||
begin
|
||||
ARect := FitToRect(ARect, Screen.WorkAreaRect);
|
||||
BoundsRect := ARect;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TPoCheckerForm.SaveConfig;
|
||||
var
|
||||
SL: TStringList;
|
||||
ID: TLangID;
|
||||
R: TRect;
|
||||
begin
|
||||
FPoCheckerSettings.SelectDirectoryFilename := SelectDirectoryDialog.Filename;
|
||||
//FPoCheckerSettings.LangFilterIndex := LangFilter.ItemIndex;
|
||||
@ -550,10 +548,19 @@ begin
|
||||
FPoCheckerSettings.LangFilterLanguageAbbr := LanguageAbbr[ID];
|
||||
FPoCheckerSettings.TestTypes := GetTestTypesFromListBox;
|
||||
FPoCheckerSettings.MainFormWindowState := WindowState;
|
||||
// Store main form size in config at 96 ppi to avoid double scaling
|
||||
if (WindowState = wsNormal) then
|
||||
FPoCheckerSettings.MainFormGeometry := BoundsRect
|
||||
begin
|
||||
R := BoundsRect;
|
||||
R.Width := ScaleFormTo96(R.Width);
|
||||
R.Height := ScaleFormTo96(R.Height);
|
||||
end
|
||||
else
|
||||
FPoCheckerSettings.MainFormGeometry := Rect(RestoredLeft, RestoredTop, RestoredLeft+RestoredWidth, RestoredTop+RestoredHeight);
|
||||
begin
|
||||
R := Rect(0, 0, ScaleFormTo96(RestoredWidth), ScaleFormTo96(RestoredHeight));
|
||||
OffsetRect(R, RestoredLeft, RestoredTop);
|
||||
end;
|
||||
FPoCheckerSettings.MainFormGeometry := R;
|
||||
FPoCheckerSettings.MasterPoList := MasterPoListBox.Items;
|
||||
SL := GetSelectedMasterFiles;
|
||||
try
|
||||
|
Loading…
Reference in New Issue
Block a user