Skip to content

Commit 24dd249

Browse files
committed
release 6.2.6
1 parent 0cba5ab commit 24dd249

File tree

9 files changed

+66
-33
lines changed

9 files changed

+66
-33
lines changed

.github/workflows/test4update.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ name: Test4Updates Qt6
55
on:
66
schedule:
77
# This is UTC in crontab format, minutes hours etc....
8-
- cron: '35 10,22 * * *'
8+
- cron: '35 10 * * *'
9+
# - cron: '35 10,22 * * *' # no, twice a day is silly, I cannot respond that quickly.
910
#workflow_dispatch
1011

1112
# issues:

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,31 +15,31 @@ README
1515

1616

1717

18-
**NOTE : If you have libraries installed earlier than November 25, earlier than libqt6pas6_6.2.2-2_amd64.deb then you MUST remove the old before installing the new ones (if and only if you need the new ones). See below section Names and Numbering.**
18+
**NOTE : If you have libraries installed earlier than November 25, 2022, earlier than libqt6pas6_6.2.2-2_amd64.deb then you MUST remove the old before installing the new ones (if and only if you need the new ones). See below section Names and Numbering.**
1919

2020

2121

2222
Download packaged libraries (Debs, RPMs and a tar ball) for x86_64 from https://github.com/davidbannon/libqt6pas/releases/latest
2323

2424

2525

26-
The packages should work on distributions like Ubuntu 21.10, Fedora 35 and RH EL9. Note that ones like Debian Bullseye, Ubuntu 20.04 for example will not work with these libraries, their official repos do not have Qt6. In paractis, you need a Qt6 6.2.3 and GLibc 2.34 or later. But there are no guarantees folks !
26+
The packages should work on distributions like Ubuntu 21.10, Fedora 35 and RH EL9 and Debian Bookworm. Note that ones like Ubuntu 20.04 for example will not work with these libraries, their official repos do not have Qt6. In practise, you need a Qt6 6.2.3 and GLibc 2.34 or later. But there are no guarantees folks ! Bookworm appears to have settled on Qt6 6.4.2
2727

2828

2929

30-
Its possible libraries pacman and for arm and arm64 will appear in the not too distant future.
30+
Its possible that libraries for pacman and for arm and arm64 will appear here if there seems a demand.
3131

3232

3333

34-
libqt6pas is an interface between Lazarus and the Qt5 libraries. Not all Qt6 functions are available, only those necessary for Lazarus functionality. See https://wiki.freepascal.org/Qt6_Interface
34+
libqt6pas is an interface between Lazarus and the Qt6 libraries. Not all Qt6 functions are available, only those necessary for Lazarus functionality. See https://wiki.freepascal.org/Qt6_Interface
3535

3636

3737

3838
This is an unofficial copy of the libqt6pas code from the Lazarus Main (aka Trunk, master). It is very new, should be regarded as experimental but does appear to work ! At some point in time, the distros will catch up and, if you can, you should use a distro distributed verion of the library. However, its possible that the libraries here will often be ahead of your distro.
3939

4040

4141

42-
The code here will never be ahead of that in the Lazarus trunk but will track it, superficially tested as changes are made to the relevant content in Lazarus Main.
42+
The code here will never be ahead of that inthe Lazarus trunk but will track it, superficially tested as changes are made to the relevant content in Lazarus Main.
4343

4444

4545

@@ -137,7 +137,7 @@ Upload the packages, do the git stuff !
137137

138138

139139

140-
**Another Approach (Experimental)**
140+
**Another Approach, in fact, how its donw now !**
141141
--------
142142
By using an experimental PPA we can install Qt6.2.2 (not 6.2.3) on a U2004 so, avoid the dreaded libc and get a Qt6 almost exactly as Zeljko want. So far, seems to work. This model is a credit to **salvadorbs** who worked out how to do this as a github action.
143143

@@ -149,20 +149,20 @@ By using an experimental PPA we can install Qt6.2.2 (not 6.2.3) on a U2004 so, a
149149

150150
* sudo apt install qt6-base-dev build-essential libgl1-mesa-dev rpm lintian devscripts vim
151151

152-
* Then, pull down a git copy of this repo into ~/Pascal
152+
* Then, pull down (or refresh) a git copy of this repo into ~/Pascal (ie /home/$USER/Pascal/libqt6pas)
153153

154-
* Run the script, qt6update.bash in the above, ~/Pascal/cbindings/package/scripts - it will update the ~/Pascal/libqt6pas source tree (if necessary).
154+
* Run the script, qt6update.bash in the above, ~/Pascal/cbindings/package/scripts directory from the user's home dir. This will update the ~/Pascal/libqt6pas source tree (if necessary).
155155

156156
* cd down into the ~/Pascal/libqt6pas/cbindings and run qmake6; make to build the library, slow !
157157

158158
* cd down into packages and run the script package-lib, it should build the packages for you.
159159

160160

161161

162-
Now, push the changes you made to the source earlier up to github, create a new release page and git it an appropriate version tag. Upload the files.
162+
Now, push the changes you made to the source earlier back up to github, create a new release page and git it an appropriate version tag. Upload the files.
163+
163164

164165

165-
Must update every 60 days to keep workflow running.
166166

167167

168168

README.note

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@
1010

1111
<bold>Please Note :</bold> you probably don't need these files unless you are using Lazarus Main and Qt6. Several LTS distros will not have a viable Qt6 at present.
1212

13-
<bold>NOTE : If you have libraries installed earlier than November 25, earlier than libqt6pas6_6.2.2-2_amd64.deb then you MUST remove the old before installing the new ones (if and only if you need the new ones). See below section Names and Numbering.</bold>
13+
<bold>NOTE : If you have libraries installed earlier than November 25, 2022, earlier than libqt6pas6_6.2.2-2_amd64.deb then you MUST remove the old before installing the new ones (if and only if you need the new ones). See below section Names and Numbering.</bold>
1414

1515
Download packaged libraries (Debs, RPMs and a tar ball) for x86_64 from https://github.com/davidbannon/libqt6pas/releases/latest
1616

17-
The packages should work on distributions like Ubuntu 21.10, Fedora 35 and RH EL9. Note that ones like Debian Bullseye, Ubuntu 20.04 for example will not work with these libraries, their official repos do not have Qt6. In paractis, you need a Qt6 6.2.3 and GLibc 2.34 or later. But there are no guarantees folks !
17+
The packages should work on distributions like Ubuntu 21.10, Fedora 35 and RH EL9 and Debian Bookworm. Note that ones like Ubuntu 20.04 for example will not work with these libraries, their official repos do not have Qt6. In practise, you need a Qt6 6.2.3 and GLibc 2.34 or later. But there are no guarantees folks ! Bookworm appears to have settled on Qt6 6.4.2
1818

19-
Its possible libraries pacman and for arm and arm64 will appear in the not too distant future.
19+
Its possible that libraries for pacman and for arm and arm64 will appear here if there seems a demand.
2020

21-
libqt6pas is an interface between Lazarus and the Qt5 libraries. Not all Qt6 functions are available, only those necessary for Lazarus functionality. See https://wiki.freepascal.org/Qt6_Interface
21+
libqt6pas is an interface between Lazarus and the Qt6 libraries. Not all Qt6 functions are available, only those necessary for Lazarus functionality. See https://wiki.freepascal.org/Qt6_Interface
2222

2323
This is an unofficial copy of the libqt6pas code from the Lazarus Main (aka Trunk, master). It is very new, should be regarded as experimental but does appear to work ! At some point in time, the distros will catch up and, if you can, you should use a distro distributed verion of the library. However, its possible that the libraries here will often be ahead of your distro.
2424

25-
The code here will never be ahead of that in the Lazarus trunk but will track it, superficially tested as changes are made to the relevant content in Lazarus Main.
25+
The code here will never be ahead of that inthe Lazarus trunk but will track it, superficially tested as changes are made to the relevant content in Lazarus Main.
2626

2727
Bug reports about the library itself should be submitted to the normal Lazarus bug tracking system, https://gitlab.com/groups/freepascal.org/lazarus/-/issues
2828

@@ -76,25 +76,25 @@ Then copy the resulting library back somewhere where it can be used on build the
7676
Upload the packages, do the git stuff !
7777

7878

79-
<size:large><bold>Another Approach (Experimental)</bold></size:large>
79+
<size:large><bold>Another Approach, in fact, how its donw now !</bold></size:large>
8080
By using an experimental PPA we can install Qt6.2.2 (not 6.2.3) on a U2004 so, avoid the dreaded libc and get a Qt6 almost exactly as Zeljko want. So far, seems to work. This model is a credit to <bold>salvadorbs</bold> who worked out how to do this as a github action.
8181
<list><list-item dir="ltr">Build a U2004 VM, bring it up to date</list-item></list>
8282
<list><list-item dir="ltr">Add the Qt6.2.2 PPA -</list-item></list>
8383
<list><list-item dir="ltr">sudo add-apt-repository ppa:okirby/qt6-backports; sudo apt update;</list-item></list>
8484
<list><list-item dir="ltr">sudo apt install qt6-base-dev build-essential libgl1-mesa-dev rpm lintian devscripts vim</list-item></list>
85-
<list><list-item dir="ltr">Then, pull down a git copy of this repo into ~/Pascal</list-item></list>
86-
<list><list-item dir="ltr">Run the script, qt6update.bash in the above, ~/Pascal/cbindings/package/scripts - it will update the ~/Pascal/libqt6pas source tree (if necessary).</list-item></list>
85+
<list><list-item dir="ltr">Then, pull down (or refresh) a git copy of this repo into ~/Pascal (ie /home/$USER/Pascal/libqt6pas)</list-item></list>
86+
<list><list-item dir="ltr">Run the script, qt6update.bash in the above, ~/Pascal/cbindings/package/scripts directory from the user's home dir. This will update the ~/Pascal/libqt6pas source tree (if necessary).</list-item></list>
8787
<list><list-item dir="ltr">cd down into the ~/Pascal/libqt6pas/cbindings and run qmake6; make to build the library, slow !</list-item></list>
8888
<list><list-item dir="ltr">cd down into packages and run the script package-lib, it should build the packages for you.</list-item></list>
8989

90-
Now, push the changes you made to the source earlier up to github, create a new release page and git it an appropriate version tag. Upload the files.
90+
Now, push the changes you made to the source earlier back up to github, create a new release page and git it an appropriate version tag. Upload the files.
9191

9292

9393

9494

9595
</note-content></text>
96-
<last-change-date>2022-12-22T22:05:52.2319659+11:00</last-change-date>
97-
<last-metadata-change-date>2022-12-22T22:05:52.2319659+11:00</last-metadata-change-date>
96+
<last-change-date>2023-06-14T17:42:11.7527471+10:00</last-change-date>
97+
<last-metadata-change-date>2023-06-14T17:42:11.7527471+10:00</last-metadata-change-date>
9898
<create-date>2022-11-08T13:46:34.2510486+11:00</create-date>
9999
<cursor-position>1</cursor-position>
100100
<selection-bound-position>1</selection-bound-position>

cbindings/Qt6Pas.pro

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111

1212

13-
# Binding Release Version 6.2.5 against Qt6 6.2 LTS release.
13+
# Binding Release Version 6.2.6 against Qt6 6.2 LTS release.
1414

15-
win32:VERSION = 6.2.5.0
16-
else:VERSION = 6.2.5
15+
win32:VERSION = 6.2.6.0
16+
else:VERSION = 6.2.6
1717
VER_MAJ = 6
1818
VER_MIN = 2
19-
VER_PAT = 5
19+
VER_PAT = 6
2020
win32:VERSION_PE_HEADER = 6.2
2121

2222
QT += gui printsupport

cbindings/qt62.pas

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2565,6 +2565,9 @@ function QTranslator_load(handle: QTranslatorH; filename: PWideString; directory
25652565
function QTranslator_load(handle: QTranslatorH; locale: QLocaleH; filename: PWideString; prefix: PWideString = nil; directory: PWideString = nil; suffix: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QTranslator_load2';
25662566
function QTranslator_load(handle: QTranslatorH; data: PByte; len: Integer; directory: PWideString = nil): Boolean; cdecl; external Qt6PasLib name 'QTranslator_load3';
25672567

2568+
type
2569+
QTimer_timeout_Event = procedure () of object cdecl;
2570+
25682571
function QTimer_Create(parent: QObjectH = nil): QTimerH; cdecl; external Qt6PasLib name 'QTimer_Create';
25692572
procedure QTimer_Destroy(handle: QTimerH); cdecl; external Qt6PasLib name 'QTimer_Destroy';
25702573
function QTimer_isActive(handle: QTimerH): Boolean; cdecl; external Qt6PasLib name 'QTimer_isActive';
@@ -2578,14 +2581,13 @@ procedure QTimer_setSingleShot(handle: QTimerH; singleShot: Boolean); cdecl; ext
25782581
function QTimer_isSingleShot(handle: QTimerH): Boolean; cdecl; external Qt6PasLib name 'QTimer_isSingleShot';
25792582
procedure QTimer_singleShot(msec: Integer; receiver: QObjectH; member: PAnsiChar); cdecl; external Qt6PasLib name 'QTimer_singleShot';
25802583
procedure QTimer_singleShot(msec: Integer; timerType: QtTimerType; receiver: QObjectH; member: PAnsiChar); cdecl; external Qt6PasLib name 'QTimer_singleShot2';
2584+
procedure QTimer_singleShot(msec: Integer; timeoutEvent: QTimer_timeout_Event); cdecl; external Qt6PasLib name 'QTimer_singleShot3';
2585+
procedure QTimer_singleShot(msec: Integer; context: QObjectH; timeoutEvent: QTimer_timeout_Event); cdecl; external Qt6PasLib name 'QTimer_singleShot4';
25812586
procedure QTimer_start(handle: QTimerH; msec: Integer); cdecl; external Qt6PasLib name 'QTimer_start';
25822587
procedure QTimer_start(handle: QTimerH); cdecl; external Qt6PasLib name 'QTimer_start2';
25832588
procedure QTimer_stop(handle: QTimerH); cdecl; external Qt6PasLib name 'QTimer_stop';
25842589

25852590

2586-
type
2587-
QTimer_timeout_Event = procedure () of object cdecl;
2588-
25892591

25902592
function QAbstractEventDispatcher_instance(thread: QThreadH = nil): QAbstractEventDispatcherH; cdecl; external Qt6PasLib name 'QAbstractEventDispatcher_instance';
25912593
function QAbstractEventDispatcher_processEvents(handle: QAbstractEventDispatcherH; flags: QEventLoopProcessEventsFlags): Boolean; cdecl; external Qt6PasLib name 'QAbstractEventDispatcher_processEvents';

cbindings/src/qthread_c.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//******************************************************************************
2-
// Copyright (c) 2005-2013 by Jan Van hijfte
2+
// Copyright (c) 2005-2023 by Jan Van hijfte, Željan Rikalo
33
//
44
// See the included file COPYING.TXT for details about the copyright.
55
//
@@ -111,6 +111,21 @@ bool QThread_wait(QThreadH handle, unsigned long time)
111111
return (bool) ((QThread *)handle)->wait(time);
112112
}
113113

114+
bool QThread_isInterruptionRequested(QThreadH handle)
115+
{
116+
return (bool) ((QThread *)handle)->isInterruptionRequested();
117+
}
118+
119+
void QThread_requestInterruption(QThreadH handle)
120+
{
121+
((QThread *)handle)->requestInterruption();
122+
}
123+
124+
int QThread_loopLevel(QThreadH handle)
125+
{
126+
return (int) ((QThread *)handle)->loopLevel();
127+
}
128+
114129
void QThread_sleep(unsigned long AnonParam1)
115130
{
116131
QThread::sleep(AnonParam1);

cbindings/src/qthread_c.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//******************************************************************************
2-
// Copyright (c) 2005-2013 by Jan Van hijfte
2+
// Copyright (c) 2005-2023 by Jan Van hijfte, Željan Rikalo
33
//
44
// See the included file COPYING.TXT for details about the copyright.
55
//
@@ -35,6 +35,9 @@ C_EXPORT void QThread_start(QThreadH handle, QThread::Priority AnonParam1);
3535
C_EXPORT void QThread_terminate(QThreadH handle);
3636
C_EXPORT void QThread_quit(QThreadH handle);
3737
C_EXPORT bool QThread_wait(QThreadH handle, unsigned long time);
38+
C_EXPORT bool QThread_isInterruptionRequested(QThreadH handle);
39+
C_EXPORT void QThread_requestInterruption(QThreadH handle);
40+
C_EXPORT int QThread_loopLevel(QThreadH handle);
3841
C_EXPORT void QThread_sleep(unsigned long AnonParam1);
3942
C_EXPORT void QThread_msleep(unsigned long AnonParam1);
4043
C_EXPORT void QThread_usleep(unsigned long AnonParam1);

cbindings/src/qtimer_c.cpp

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//******************************************************************************
2-
// Copyright (c) 2005-2013 by Jan Van hijfte
2+
// Copyright (c) 2005-2023 by Jan Van hijfte, Željan Rikalo
33
//
44
// See the included file COPYING.TXT for details about the copyright.
55
//
@@ -76,6 +76,16 @@ void QTimer_singleShot2(int msec, Qt::TimerType timerType, const QObjectH receiv
7676
QTimer::singleShot(msec, timerType, (const QObject*)receiver, member);
7777
}
7878

79+
void QTimer_singleShot3(int msec, void (*TimeoutEvent)())
80+
{
81+
QTimer::singleShot(msec, TimeoutEvent);
82+
}
83+
84+
void QTimer_singleShot4(int msec, const QObjectH context, void (*TimeoutEvent)())
85+
{
86+
QTimer::singleShot(msec, (const QObject*)context, TimeoutEvent);
87+
}
88+
7989
void QTimer_start(QTimerH handle, int msec)
8090
{
8191
((QTimer *)handle)->start(msec);

cbindings/src/qtimer_c.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//******************************************************************************
2-
// Copyright (c) 2005-2013 by Jan Van hijfte
2+
// Copyright (c) 2005-2023 by Jan Van hijfte, Željan Rikalo
33
//
44
// See the included file COPYING.TXT for details about the copyright.
55
//
@@ -28,6 +28,8 @@ C_EXPORT void QTimer_setSingleShot(QTimerH handle, bool singleShot);
2828
C_EXPORT bool QTimer_isSingleShot(QTimerH handle);
2929
C_EXPORT void QTimer_singleShot(int msec, const QObjectH receiver, const char* member);
3030
C_EXPORT void QTimer_singleShot2(int msec, Qt::TimerType timerType, const QObjectH receiver, const char* member);
31+
C_EXPORT void QTimer_singleShot3(int msec, void (*TimeoutEvent)());
32+
C_EXPORT void QTimer_singleShot4(int msec, const QObjectH context, void (*TimeoutEvent)());
3133
C_EXPORT void QTimer_start(QTimerH handle, int msec);
3234
C_EXPORT void QTimer_start2(QTimerH handle);
3335
C_EXPORT void QTimer_stop(QTimerH handle);

0 commit comments

Comments
 (0)