diff --git a/lcl/interfaces/qt/qtobjects.pas b/lcl/interfaces/qt/qtobjects.pas index be87fa1cb9..7eb1986ced 100644 --- a/lcl/interfaces/qt/qtobjects.pas +++ b/lcl/interfaces/qt/qtobjects.pas @@ -353,6 +353,20 @@ type FormatCount: integer; Formats: PClipboardFormat): boolean; end; + { TQtTimer } + + TQtTimer = class(TQtObject) + private + FCallbackFunc: TFNTimerProc; + FId: Integer; + FAppObject: QObjectH; + public + constructor CreateTimer(Interval: integer; const TimerFunc: TFNTimerProc; App: QObjectH); virtual; + destructor Destroy; override; + public + function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override; + end; + procedure TQColorToColorRef(const AColor: TQColor; out AColorRef: TColorRef); procedure ColorRefToTQColor(const AColorRef: TColorRef; var AColor:TQColor); procedure DebugRegion(const msg: string; Rgn: QRegionH); @@ -2021,5 +2035,69 @@ begin end; end; +{ TQtTimer } + +{------------------------------------------------------------------------------ + Function: TQtTimer.CreateTimer + Params: None + Returns: Nothing + ------------------------------------------------------------------------------} +constructor TQtTimer.CreateTimer(Interval: integer; + const TimerFunc: TFNTimerProc; App: QObjectH); +begin + FAppObject := App; + + FCallbackFunc := TimerFunc; + + TheObject := QTimer_create(App); + + QTimer_setInterval(QTimerH(TheObject), Interval); + + AttachEvents; + + // start timer and get ID + QTimer_start(QTimerH(TheObject), Interval); + FId := QTimer_timerId(QTimerH(TheObject)); + + {$ifdef VerboseQt} + WriteLn('TQtTimer.CreateTimer: Interval = ', Interval, ' ID = ', FId); + {$endif} +end; + +{------------------------------------------------------------------------------ + Function: TQtTimer.Destroy + Params: None + Returns: Nothing + ------------------------------------------------------------------------------} +destructor TQtTimer.Destroy; +begin + {$ifdef VerboseQt} + WriteLn('TQtTimer.CreateTimer: Destroy. ID = ', FId); + {$endif} + + FCallbackFunc := nil; + inherited Destroy; +end; + +{------------------------------------------------------------------------------ + Function: TQtTimer.EventFilter + Params: None + Returns: Nothing + ------------------------------------------------------------------------------} +function TQtTimer.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; +begin + Result := False; + + if QEvent_type(Event) = QEventTimer then + begin + Result := True; + + QEvent_accept(Event); + + if Assigned(FCallbackFunc) then + FCallbackFunc; + end; +end; + end. diff --git a/lcl/interfaces/qt/qtwidgets.pas b/lcl/interfaces/qt/qtwidgets.pas index 2c14d6c759..b569196b35 100644 --- a/lcl/interfaces/qt/qtwidgets.pas +++ b/lcl/interfaces/qt/qtwidgets.pas @@ -238,20 +238,6 @@ type procedure Text(retval: PWideString); end; - { TQtTimer } - - TQtTimer = class(TQtObject) - private - FCallbackFunc: TFNTimerProc; - FId: Integer; - FAppObject: QObjectH; - public - constructor CreateTimer(Interval: integer; const TimerFunc: TFNTimerProc; App: QObjectH); virtual; - destructor Destroy; override; - public - function EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; override; - end; - { TQtCheckBox } TQtCheckBox = class(TQtAbstractButton) @@ -2782,70 +2768,6 @@ begin QLabel_text(QLabelH(Widget), retval); end; -{ TQtTimer } - -{------------------------------------------------------------------------------ - Function: TQtTimer.CreateTimer - Params: None - Returns: Nothing - ------------------------------------------------------------------------------} -constructor TQtTimer.CreateTimer(Interval: integer; - const TimerFunc: TFNTimerProc; App: QObjectH); -begin - FAppObject := App; - - FCallbackFunc := TimerFunc; - - TheObject := QTimer_create(App); - - QTimer_setInterval(QTimerH(TheObject), Interval); - - AttachEvents; - - // start timer and get ID - QTimer_start(QTimerH(TheObject), Interval); - FId := QTimer_timerId(QTimerH(TheObject)); - - {$ifdef VerboseQt} - WriteLn('TQtTimer.CreateTimer: Interval = ', Interval, ' ID = ', FId); - {$endif} -end; - -{------------------------------------------------------------------------------ - Function: TQtTimer.Destroy - Params: None - Returns: Nothing - ------------------------------------------------------------------------------} -destructor TQtTimer.Destroy; -begin - {$ifdef VerboseQt} - WriteLn('TQtTimer.CreateTimer: Destroy. ID = ', FId); - {$endif} - - FCallbackFunc := nil; - inherited Destroy; -end; - -{------------------------------------------------------------------------------ - Function: TQtTimer.EventFilter - Params: None - Returns: Nothing - ------------------------------------------------------------------------------} -function TQtTimer.EventFilter(Sender: QObjectH; Event: QEventH): Boolean; cdecl; -begin - Result := False; - - if QEvent_type(Event) = QEventTimer then - begin - Result := True; - - QEvent_accept(Event); - - if Assigned(FCallbackFunc) then - FCallbackFunc; - end; -end; - { TQtCheckBox } function TQtCheckBox.CreateWidget(const AParams: TCreateParams): QWidgetH;