ADD: Qt 6 widgetset support (fixes #402)

This commit is contained in:
Alexander Koblov 2022-11-13 20:38:18 +03:00
commit ee8b06ae53
12 changed files with 74 additions and 55 deletions

View file

@ -43,6 +43,9 @@ uses
{$IFDEF LCLQT5}
, qt5, qtwidgets
{$ENDIF}
{$IFDEF LCLQT6}
, qt6, qtwidgets
{$ENDIF}
;
type
@ -157,7 +160,7 @@ procedure TKASProgressBar.SetProgress(CurrentValue: Int64; MaxValue: Int64;
var
wText: String;
{$ENDIF}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6)}
var
wText: WideString;
{$ENDIF}
@ -199,7 +202,7 @@ begin
// Have to reset 'show_text' every time because LCLGTK2 will set it according to BarShowText.
gtk_progress_set_show_text(PGtkProgress(Self.Handle), True);
{$ENDIF}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) OR DEFINED(LCLQT5) OR DEFINED(LCLQT6)}
{
%p - is replaced by the percentage completed.
%v - is replaced by the current value.

View file

@ -27,7 +27,7 @@ library wlxMplayer;
{$mode objfpc}{$H+}
{$include calling.inc}
{$IF NOT (DEFINED(LCLGTK) or DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF NOT (DEFINED(LCLGTK) or DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6))}
{$DEFINE LCLGTK2}
{$ENDIF}
@ -45,6 +45,7 @@ uses
{$IFDEF LCLGTK2} gtk2, gdk2, glib2, gdk2x, {$ENDIF}
{$IFDEF LCLQT} qt4, {$ENDIF}
{$IFDEF LCLQT5} qt5, {$ENDIF}
{$IFDEF LCLQT6} qt6, {$ENDIF}
process,
math,
WLXPlugin;
@ -161,7 +162,7 @@ begin
if pr.Running then
pr.Terminate(0);
pr.Free;
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
QWidget_Destroy(QWidgetH(hWidget));
{$ELSE}
gtk_widget_destroy(PGtkWidget(hWidget));
@ -170,7 +171,7 @@ begin
end;
procedure TMPlayer.SetParentWidget(AWidget: THandle);
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
begin
hWidget:= THandle(QWidget_create(QWidgetH(AWidget)));
QWidget_show(QWidgetH(hWidget));

View file

@ -34,7 +34,7 @@ uses
ActnList, uOSForms, uShellContextMenu, uExceptions, uFileSystemFileSource,
uFormCommands, uHotkeyManager, LCLVersion, uWcxModule, uFileSource;
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
{$DEFINE FIX_DEFAULT}
{$ENDIF}
@ -1446,7 +1446,7 @@ begin
lsFoundedFiles.ScrollWidth := iTemp + 32;
end;
lsFoundedFiles.Items.AddObject(sText, Sender);
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
Application.ProcessMessages;
{$ENDIF}
end;

View file

@ -51,6 +51,8 @@ uses
, Qt4, QtWidgets
{$ELSEIF DEFINED(LCLQT5)}
, Qt5, QtWidgets
{$ELSEIF DEFINED(LCLQT6)}
, Qt6, QtWidgets
{$ELSEIF DEFINED(LCLGTK2)}
, Glib2, Gtk2
{$ELSEIF DEFINED(DARWIN)}
@ -682,7 +684,7 @@ type
procedure OnUniqueInstanceMessage(Sender: TObject; Params: TCommandLineParams);
procedure tbPasteClick(Sender: TObject);
procedure AllProgressOnUpdateTimer(Sender: TObject);
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5)) and not DEFINED(MSWINDOWS)}
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)) and not DEFINED(MSWINDOWS)}
private
QEventHook: QObject_hookH;
function QObjectEventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
@ -948,12 +950,12 @@ const
TCToolbarClipboardHeader = 'TOTALCMD#BAR#DATA';
DCToolbarClipboardHeader = 'DOUBLECMD#BAR#DATA';
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
var
LastActiveWindow: TCustomForm = nil;
{$ENDIF}
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5)) and not DEFINED(MSWINDOWS)}
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)) and not DEFINED(MSWINDOWS)}
var
CloseQueryResult: Boolean = False;
{$ENDIF}
@ -1193,7 +1195,7 @@ begin
TDriveWatcher.Initialize(GetWindowHandle(Application.MainForm));
TDriveWatcher.AddObserver(@OnDriveWatcherEvent);
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5)) and not DEFINED(MSWINDOWS)}
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)) and not DEFINED(MSWINDOWS)}
// Fixes bug - [0000033] "DC cancels shutdown in KDE"
// http://doublecmd.sourceforge.net/mantisbt/view.php?id=33
QEventHook:= QObject_hook_create(TQtWidget(Self.Handle).Widget);
@ -1739,7 +1741,7 @@ begin
FreeAndNil(DrivesList);
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5)) and not DEFINED(MSWINDOWS)}
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)) and not DEFINED(MSWINDOWS)}
QObject_hook_destroy(QEventHook);
{$ENDIF}
@ -1780,7 +1782,7 @@ begin
end;
end;
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5)) and not DEFINED(MSWINDOWS)}
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)) and not DEFINED(MSWINDOWS)}
CloseQueryResult:= CanClose;
{$ENDIF}
end;
@ -6466,7 +6468,7 @@ begin
end;
procedure TfrmMain.HideToTray;
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
var
ActiveWindow: HWND;
LCLObject: TObject;
@ -6484,7 +6486,7 @@ begin
window has capture) thus preventing the user from restoring the main window.
So when the main form is hidden the modal window is hidden too.
}
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
LastActiveWindow := nil;
if not Self.Active then // If there is another window active
begin
@ -6502,7 +6504,7 @@ begin
// We only want to hide it.
LastActiveWindow.Visible := False;
{$ENDIF}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
// Have to use QT directly to hide the window for this to work.
TQtWidget(LastActiveWindow.Handle).setVisible(False);
{$ENDIF}
@ -6525,10 +6527,10 @@ begin
ShowTrayIcon(False);
// After the main form is shown, restore the last active modal form if there was any.
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
if Assigned(LastActiveWindow) then
begin
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
TQtWidget(LastActiveWindow.Handle).setVisible(true);
{$ENDIF}
{$IFDEF LCLGTK2}
@ -6956,7 +6958,7 @@ begin
Cancel := not CanClose;
end;
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5)) and not DEFINED(MSWINDOWS)}
{$IF (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)) and not DEFINED(MSWINDOWS)}
function TfrmMain.QObjectEventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl;
begin
Result:= False;

View file

@ -109,7 +109,7 @@ uses
uKeyboard,
uGlobs,
uFormCommands
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
, uFileView
{$ENDIF}
;
@ -710,7 +710,7 @@ procedure TfrmQuickSearch.FrameExit(Sender: TObject);
var
DontHide: Boolean;
begin
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
// Workaround: QuickSearch frame lose focus on SpeedButton click
if Screen.ActiveControl is TFileView then
edtSearch.SetFocus

View file

@ -64,6 +64,9 @@ uses
{$IFDEF LCLQT5}
, qt5
{$ENDIF}
{$IFDEF LCLQT6}
, qt6
{$ENDIF}
{$IFDEF LCLGTK2}
, gtk2
{$ENDIF}
@ -471,7 +474,7 @@ begin
end;
{$ENDIF}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
WSVersion := 'Qt ' + QtVersion + ', libQt' + QtVersion[0] + 'Pas ';
WSVersion := WSVersion + IntToStr((QT_VERSION shr 16) and 255) + '.' +

View file

@ -187,7 +187,7 @@ uses
{$ELSEIF DEFINED(LCLQT) and DEFINED(DARWIN)}
uses
uDragDropQt, uDragDropCocoa;
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6)}
uses
uDragDropQt;
{$ENDIF}
@ -349,7 +349,7 @@ begin
Result := True;
{$ELSEIF DEFINED(LCLGTK) OR DEFINED(LCLGTK2)}
Result := True;
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6)}
Result := True;
{$ELSE}
Result := False;
@ -366,7 +366,7 @@ begin
Result := TDragDropSourceGTK.Create(Control);
{$ELSEIF DEFINED(LCLQT) and DEFINED(DARWIN)}
Result := TDragDropSourceCocoa.Create(Control);
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6)}
Result := TDragDropSourceQT.Create(Control);
{$ELSE}
Result := TDragDropSource.Create(Control); // Dummy
@ -379,7 +379,7 @@ begin
Result := TDragDropTargetWindows.Create(Control);
{$ELSEIF DEFINED(LCLGTK) or DEFINED(LCLGTK2)}
Result := TDragDropTargetGTK.Create(Control);
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6)}
Result := TDragDropTargetQT.Create(Control);
{$ELSE}
Result := TDragDropTarget.Create(Control); // Dummy

View file

@ -15,6 +15,8 @@ uses
, qt4
{$ELSEIF DEFINED(LCLQT5)}
, qt5
{$ELSEIF DEFINED(LCLQT6)}
, qt6
{$ENDIF}
;
@ -75,7 +77,7 @@ const
textPlainMimeW : WideString = textPlainMime;
{$IF DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT5) or DEFINED(LCLQT6)}
function QDropEvent_pos(handle: QDropEventH): PQtPoint; overload;
const
retval: TQtPoint = (x: 0; y: 0);

View file

@ -157,11 +157,13 @@ uses
, Gdk2, GLib2, Gtk2Extra
, Gtk2Proc
{$ENDIF}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
{$IF DEFINED(LCLQT)}
, qt4, qtwidgets
{$ELSEIF DEFINED(LCLQT5)}
, qt5, qtwidgets
{$ELSEIF DEFINED(LCLQT6)}
, qt6, qtwidgets
{$ENDIF}
, XLib, X
, xutil, KeySym
@ -190,7 +192,7 @@ var
XDisplay: PDisplay = nil;
{$ELSEIF DEFINED(LCLGTK2)}
XDisplay: PGdkDisplay = nil;
{$ELSEIF (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$ELSEIF (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
XDisplay: PDisplay = nil;
{$ENDIF}
{$ENDIF}
@ -204,7 +206,7 @@ var
{$ENDIF}
{$ENDIF}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
type
TKeyboardLayoutChangedHook = class
private
@ -275,7 +277,7 @@ begin
end;
end;
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
{en
Retrieves the character and respective modifiers state
for the given keysym and given level.
@ -566,7 +568,7 @@ end;
function VirtualKeyToUTF8Char(Key: Byte; ShiftState: TShiftState): TUTF8Char;
{$IF DEFINED(UNIX) and (DEFINED(LCLGTK) or DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(UNIX) and (DEFINED(LCLGTK) or DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
function ShiftStateToXModifierLevel(ShiftState: TShiftState): Cardinal;
begin
Result := 0;
@ -580,7 +582,7 @@ var
KeyInfo: TVKeyInfo;
{$ENDIF}
ShiftedChar: Boolean;
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
KeyChar:TUTF8Char;
KeySym: TKeySym;
TempShiftState: TShiftState;
@ -606,7 +608,7 @@ begin
Result := KeyInfo.KeyChar[ShiftStateToXModifierLevel(ShiftState)];
{$ELSEIF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$ELSEIF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
// For QT we'll use Xlib to get text for a key.
@ -700,14 +702,14 @@ end;
function VirtualKeyToText(Key: Byte; ShiftState: TShiftState): string;
var
Name: string;
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
KeyChar: TUTF8Char;
KeySym: TKeySym;
TempShiftState: TShiftState;
{$ENDIF}
begin
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
// Overwrite behaviour for some keys in QT.
case Key of
QtKey_Bar: KeySym := XK_bar; // VK_F13
@ -956,7 +958,7 @@ begin
end;
{$ENDIF}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
procedure UpdateModifiersMasks;
var
Map: PXModifierKeymap;
@ -1019,13 +1021,13 @@ begin
{$IF DEFINED(UNIX) and (DEFINED(LCLGTK) or DEFINED(LCLGTK2))}
UpdateGtkAltGrVirtualKeyCode;
{$ENDIF}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
UpdateModifiersMasks;
{$ENDIF}
CacheVKToChar;
end;
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
constructor TKeyboardLayoutChangedHook.Create(QObject: QObjectH);
begin
EventHook := QObject_hook_create(QObject);
@ -1095,7 +1097,7 @@ end;
procedure UnhookKeyboardLayoutChanged;
begin
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
if Assigned(KeyboardLayoutChangedHook) then
FreeAndNil(KeyboardLayoutChangedHook);
@ -1129,7 +1131,7 @@ begin
// On Unix (X server) the event for changing keyboard layout
// is sent twice (on QT, GTK1 and GTK2).
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
KeyboardLayoutChangedHook := KeyboardLayoutChangedHook.Create(
TQtWidget(Application.MainForm.Handle).TheObject);
@ -1220,12 +1222,12 @@ initialization
XDisplay := gdk_display;
{$ELSEIF DEFINED(LCLGTK2)}
XDisplay := gdk_display_get_default;
{$ELSEIF (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$ELSEIF (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
XDisplay := XOpenDisplay(nil);
{$ENDIF}
{$ENDIF}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5))}
{$IF DEFINED(X11) and (DEFINED(LCLQT) or DEFINED(LCLQT5) OR DEFINED(LCLQT6))}
finalization
XCloseDisplay(XDisplay);
{$ENDIF}

View file

@ -75,7 +75,7 @@ uses
{$IF DEFINED(RabbitVCS)}
, fpjson, jsonparser, jsonscanner
{$ENDIF}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
, uGObject2
{$ENDIF}
;
@ -425,7 +425,7 @@ var
pyVersion: PPyObject;
AVersion: TStringArray;
Major, Minor, Micro: Integer;
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
GtkWidget: TGType;
GtkClass, Gtk3: Pointer;
{$ENDIF}
@ -451,7 +451,7 @@ begin
end;
// RabbitVCS migrated to GTK3 from version 0.17.1
RabbitGtk3:= (Major > 0) or (Minor > 17) or ((Minor = 17) and (Micro > 0));
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
// Check GTK platform theme plugin
GtkWidget:= g_type_from_name('GtkWidget');
Result:= (GtkWidget = 0);

View file

@ -155,6 +155,9 @@ uses
{$IF DEFINED(LCLQT5) and not DEFINED(DARWIN)}
, qt5, qtwidgets
{$ENDIF}
{$IF DEFINED(LCLQT6) and not DEFINED(DARWIN)}
, qt6, qtwidgets
{$ENDIF}
{$IF DEFINED(LCLGTK2)}
, gtk2
{$ENDIF}
@ -511,7 +514,7 @@ begin
end;
{$ENDIF}
{$IF DEFINED(LCLGTK2) or ((DEFINED(LCLQT) or DEFINED(LCLQT5)) and not (DEFINED(DARWIN) or DEFINED(MSWINDOWS)))}
{$IF DEFINED(LCLGTK2) or ((DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)) and not (DEFINED(DARWIN) or DEFINED(MSWINDOWS)))}
procedure ScreenFormEvent(Self, Sender: TObject; Form: TCustomForm);
{$IF DEFINED(LCLGTK2)}
@ -521,7 +524,7 @@ begin
ClassName:= Form.ClassName;
gtk_window_set_role(PGtkWindow(Form.Handle), PAnsiChar(ClassName));
end;
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
var
ClassName: WideString;
begin
@ -623,7 +626,7 @@ begin
end;
end;
{$ELSE}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLGTK2) or DEFINED(DARWIN)}
{$IF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6) or DEFINED(LCLGTK2) or DEFINED(DARWIN)}
var
Handler: TMethod;
{$ENDIF}
@ -650,7 +653,7 @@ begin
Handler.Data:= MainForm;
Handler.Code:= @ActiveFormChangedHandler;
Screen.AddHandlerActiveFormChanged(TScreenFormEvent(Handler), True);
{$ELSEIF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLGTK2) or DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
Handler.Data:= MainForm;
Handler.Code:= @ScreenFormEvent;
ScreenFormEvent(MainForm, MainForm, MainForm);

View file

@ -48,6 +48,9 @@ uses
{$IFDEF LCLQT5}
, qt5, qtwidgets
{$ENDIF}
{$IFDEF LCLQT6}
, qt6, qtwidgets
{$ENDIF}
{$IFDEF LCLCOCOA}
, CocoaAll
{$ENDIF}
@ -233,7 +236,7 @@ begin
end;
{$ELSEIF DEFINED(LCLGTK) or DEFINED(LCLGTK2)}
ParentWin := HWND(GetFixedWidget(Pointer(ParentWin)));
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
ParentWin := HWND(TQtWidget(ParentWin).GetContainerWidget);
{$ENDIF}
end;
@ -313,7 +316,7 @@ end;
procedure TWlxModule.UnloadModule;
begin
{$IF NOT (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLGTK2))}
{$IF NOT (DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6) or DEFINED(LCLGTK2))}
{$IF (not DEFINED(LINUX)) or ((FPC_VERSION > 2) or ((FPC_VERSION=2) and (FPC_RELEASE >= 5)))}
if FModuleHandle <> 0 then
FreeLibrary(FModuleHandle);
@ -413,7 +416,7 @@ begin
else DestroyWindow(FPluginWindow)
{$ELSEIF DEFINED(LCLGTK) or DEFINED(LCLGTK2)}
else gtk_widget_destroy(PGtkWidget(FPluginWindow));
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
else QWidget_Destroy(QWidgetH(FPluginWindow));
{$ENDIF}
finally
@ -478,7 +481,7 @@ procedure TWlxModule.SetFocus;
begin
{$IF DEFINED(MSWINDOWS)}
Windows.SetFocus(FPluginWindow);
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
QWidget_setFocus(QWidgetH(FPluginWindow));
{$ELSEIF DEFINED(LCLGTK2)}
gtk_widget_grab_focus(PGtkWidget(FPluginWindow));
@ -497,7 +500,7 @@ begin
MoveWindow(FPluginWindow, Left, Top, Right - Left, Bottom - Top, True);
{$ELSEIF DEFINED(LCLWIN32)}
MoveWindow(FPluginWindow, Left, Top, Right - Left, Bottom - Top, True);
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5)}
{$ELSEIF DEFINED(LCLQT) or DEFINED(LCLQT5) or DEFINED(LCLQT6)}
QWidget_move(QWidgetH(FPluginWindow), Left, Top);
QWidget_resize(QWidgetH(FPluginWindow), Right - Left, Bottom - Top);
{$ELSEIF DEFINED(LCLGTK2)}