mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: Qt 6 widgetset support (fixes #402)
This commit is contained in:
parent
0fa7d382e0
commit
ee8b06ae53
12 changed files with 74 additions and 55 deletions
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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) + '.' +
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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)}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue