Qt5: use QPrinterInfo_avaliablePrinterNames() instead of old QPrinterInfo_availablePrinters(). issue #34558

git-svn-id: trunk@59593 -
This commit is contained in:
zeljko 2018-11-18 12:19:28 +00:00
parent f781accf4c
commit 7de1b4bb56

View File

@ -48,13 +48,39 @@ procedure TQtPrinters.EnumQPrinters(Lst: TStrings);
var
i: Integer;
PrnInfo: QPrinterInfoH;
{$IFDEF LCLQt5}
AList: QStringListH;
{$ELSE}
Prntr: QPrinterInfoH;
PrnList: TPtrIntArray;
{$ENDIF}
PrnName: WideString;
begin
inherited DoEnumPrinters(Lst);
{$IFDEF LCLQt5}
Lst.Clear;
AList := QStringList_create();
try
QPrinterInfo_availablePrinterNames(AList);
for i := 0 to QStringList_size(AList) - 1 do
begin
QStringList_at(AList, @PrnName, I);
PrnInfo := QPrinterInfo_create();
try
QPrinterInfo_printerInfo(PrnInfo, @PrnName);
if QPrinterInfo_isDefault(PrnInfo) then
Lst.InsertObject(0, PrnName{%H-}, PrnInfo)
else
Lst.AddObject(PrnName{%H-}, PrnInfo);
finally
QPrinterInfo_destroy(PrnInfo);
end;
end;
finally
QStringList_destroy(AList);
end;
{$ELSE}
PrnInfo := QPrinterInfo_create();
try
Lst.Clear;
@ -74,6 +100,7 @@ begin
finally
QPrinterInfo_destroy(PrnInfo);
end;
{$ENDIF}
end;
function TQtPrinters.GetColorMode: QPrinterColorMode;
@ -360,7 +387,7 @@ begin
{$ENDIF}
Str := QtDefaultPrinter.PrinterName;
EnumQPrinters(Lst);
i := Lst.IndexOf(Str);
i := Lst.IndexOf(Str{%H-});
if i > 0 then
Lst.Move(i, 0);
end;