* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_hbqtableview.h
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqmainwindow.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/hbqt_hbdbfmodel.h
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_utils.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/qth/QVariant.qth
* contrib/hbqt/qth/QCursor.qth
* contrib/hbqt/qth/QClipboard.qth
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QCoreApplication.qth
* contrib/hbqt/qth/QImage.qth
* contrib/hbqt/qth/QUrl.qth
* contrib/hbqt/qth/QAbstractItemModel.qth
* contrib/hbqt/qth/QImageReader.qth
* contrib/hbqt/qth/QWebHistoryItem.qth
* contrib/hbqt/qth/QFont.qth
* contrib/hbqt/qth/QFontDatabase.qth
! Fixed to use '#include <QModule/QName>' format when referring
to QT headers. This is the official way and it allows to clean
the include header paths.
! Fixed to use '#include <QtCore/qglobal>' instead of
'#include <qglobal.h>' for the same reason as above.
* contrib/hbqt/hbqt.h
+ Added '#include "QtCore/QObject"' to make hbmk2 component
detection happy. This is slight hack as I didn't want to
introduce parsing of '<>' style system headers just for the
sake of QT. Anyway it's quite humble hack without side effects.
* contrib/hbqt/detect.mk
* Changed to 'QtCore/qglobal.h' as key header name used for
detection.
! Fix to header dir autodetection path on darwin platform.
(it would have caused potential problem with QT 5.x releases)
% Simplified header path list for non-darwin platforms.
+ contrib/hbqt/hbqt_common.hbm
+ contrib/hbqt/hbqt.hbp
+ contrib/hbqt/hbqts.hbp
+ contrib/hbqt/hbqtcore.hbp
+ contrib/hbqt/hbqtcores.hbp
+ contrib/hbqt/hbqtgui.hbp
+ contrib/hbqt/hbqtguis.hbp
+ contrib/hbqt/hbqtnetwork.hbp
+ contrib/hbqt/hbqtnetworks.hbp
+ Added hbmk2 make files for HBQT libs.
Features are equivalent to the GNU Make flavour.
(only tested on Windows so far)
+ contrib/hbxbp/hbxbp.hbp
+ Added hbmk2 make file for HBXBP lib.
* contrib/hbfbird/hbfbird.hbp
* contrib/hbsms/hbsms.hbp
* Use ${hb_name} instead of ${hb_dirname}.
+ Added -w3 -es3 options.
* utils/hbmk2/hbmk2.prg
+ Set pathseps to '/' in "-reqheader=' and
'-reqpkg=' header names.
- utils/hbmk2/examples/plug_moc.prg
+ contrib/hbqt/plug_moc.prg
* Moved inside hbqt lib.
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtcore/*
* Regenerated.
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_utils.cpp
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_hbslots.cpp
* Cleaned header inclusion order after adding hbapi.h to hbqt.h.
* config/os2/gcc.mk
! Fixed to use '-Wl,' trick proposed by Przemek, to forward obj list
script filename directly to linker.
This gets around the problem where gcc tries to pass expanded
scripts to subprocesses (ld) via cmdline, thus imposing a 32K
limit also to script files.
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
* contrib/hbqt/qth/HBQTextBlockUserData.qth
* contrib/hbqt/qth/QAbstractItemModel.qth
* contrib/hbqt/qth/QSyntaxHighlighter.qth
* contrib/hbqt/qth/QTableView.qth
+ contrib/hbqt/qth/HBQTableView.qth
+ contrib/hbqt/qth/HBDbfModel.qth
+ contrib/hbqt/qth/HBQSyntaxHighLighter.qth
+ Separated parts to auto/static generation.
+ contrib/hbqt/qth/HBEvents.qth
+ contrib/hbqt/qth/HBSlots.qth
+ Prepared to bring Events/Slots management on OO level.
Stll not activated as I have some technical issues on
c++ level. Just a matter of time...
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/generator/qt45.qtp
+ This commit is generally towards separation of static/auto
generated parts of classes which has been hanging in for
manual updates to the structures indivisually if changes
were made effective overhaul.
* contrib/hbqt/qtcore/*
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtnetwork/*
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbslots.cpp
+ contrib/hbqt/qth/HBQTextBlockUserData.qth
* contrib/hbqt/qth/QAbstractTextDocumentLayout.qth
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QClipboard.qth
* contrib/hbqt/qth/QComboBox.qth
* contrib/hbqt/qth/QCursor.qth
* contrib/hbqt/qth/QDragEnterEvent.qth
* contrib/hbqt/qth/QDragLeaveEvent.qth
* contrib/hbqt/qth/QDropEvent.qth
* contrib/hbqt/qth/QFocusEvent.qth
* contrib/hbqt/qth/QGradient.qth
* contrib/hbqt/qth/QKeyEvent.qth
* contrib/hbqt/qth/QLabel.qth
* contrib/hbqt/qth/QLayoutItem.qth
* contrib/hbqt/qth/QLineEdit.qth
* contrib/hbqt/qth/QMoveEvent.qth
* contrib/hbqt/qth/QPaintDevice.qth
+ contrib/hbqt/qth/QPaintEngine.qth
* contrib/hbqt/qth/QPrintEngine.qth
* contrib/hbqt/qth/QResizeEvent.qth
* contrib/hbqt/qth/QSplitter.qth
* contrib/hbqt/qth/QStandardItemModel.qth
* contrib/hbqt/qth/QStyleHintReturn.qth
* contrib/hbqt/qth/QStyleHintReturnMask.qth
* contrib/hbqt/qth/QStyleHintReturnVariant.qth
* contrib/hbqt/qth/QTextBlock.qth
* contrib/hbqt/qth/QTextCursor.qth
+ contrib/hbqt/qth/QTextList.qth
* contrib/hbqt/qth/QWheelEvent.qth
* contrib/hbqt/qth/QWidget.qth
* contrib/hbqt/tests/demoqt.prg
* contrib/hbxbp/tests/demoxbp.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbqt/qtcore/*.cpp
* contrib/hbqt/qtgui/*.cpp
* contrib/hbqt/qtnetwork/*.cpp
! This commit change some rules to parse .qth files to
prepare the wrappers to be encapsulated in hb_retptrGC
envelop. It also attempts to pin-point the spots where
mem-leak could occur. Only very few calls are left to
plain hb_retptr() which eventually will be handled
the other way.
Only delete ( Q* ) p; is retained. Other two methods are
eliminated. Demos are updated to respect it.
demoQT and demoXBP now consume very less memory when new
dialogs are opened. It means memory management has
improved with this commit. Anyhow still I can see
memory growing specially in browser navigation. As I
remember sometime in past I could manage the sonstant memory,
but now I do not remember at what stage we were on Qt.
Though all the three variants, demoQT, demoXBP, hbIDE are
working properly, still there could be regression, please test.
* contrib/hbqt/filelist.mk
+ contrib/hbqt/hbqt_hbslots2.cpp
+ contrib/hbqt/hbqt_hbevents2.cpp
+ Added new implementation of slots and events.
This fixes potential leaks in old implementation by
moving HB_EVENTS, HB_SLOTS low level per-thread
structures to .prg level and adding proper GC destructors
to them.
To use the new interface in .prg level code, following changes
will have to be applied:
1. Adding new :events, :slots holder variables to .prg level.
2. Init these holder variables with QT_EVENTS_NEW() and QT_SLOTS_NEW().
3. Make these conversions:
QT_CONNECT_EVENT( ... ) -> QT_EVENTS_CONNECT( p, ... )
QT_DISCONNECT_EVENT( ... ) -> QT_EVENTS_DISCONNECT( p, ... )
QT_CONNECT_SIGNAL( ... ) -> QT_SLOTS_CONNECT( p, ... )
QT_DISCONNECT_SIGNAL( ... ) -> QT_SLOTS_DISCONNECT( p, ... )
QT_GETEVENTFILTER() -> QT_EVENTS_PTR( p ) (there is a TOFIX here for the future)
4. Delete these calls:
QT_EVENTS_DESTROY()
QT_SLOTS_DESTROY()
; Pritpal, can you please review this method?
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt.h
% Memory allocation internals made static.
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_base.cpp
! Fixed gcFuncs() to be named hbqt_gcFuncs(). This is a
public function, please remember to prefix all public functions
to have a lib specific prefix.
; TODO: Regenerate.
* INSTALL
+ Added direct link to QT Windows 4.5.3 pkg.
* contrib/hbqt/detect.mk
* contrib/hbqt/moc.mk
+ Added my copyright.
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_hbqmainwindow.cpp
! Fixed some public C functions to hold hbqt_ prefix,
instead of using generic names.
! Added one missing 'extern' keyword.
+ Added TOFIX for QT_HBQTABLEVIEW_NAVIGATE() which
has a remaining leak of one typical type.
; TOFIX: Do the same with gcFuncs().
; TODO: Regenerate.
* contrib/hbqt/Makefile
+ Added generic support to MOC compile headers.
; If this works out well, it makes it possible to use granular
(non-monolythic) headers for 'Q_OBJECT' classes.
It's also possible to move this logic into sub-libs.
This may also mean that some hacks which were currently
employed can be solved cleanly.
Please test/review.
* contrib/hbqt/hbqt_slots.h
+ contrib/hbqt/hbqt_hbqtableview.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/qth/QTableView.qth
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/qth/QAbstractItemModel.qth
+ contrib/hbqt/hbqt_hbdrawingarea.h
* contrib/hbqt/hbqt_hbdrawingarea.cpp
+ contrib/hbqt/hbqt_hbqmainwindow.h
* contrib/hbqt/hbqt_hbqmainwindow.cpp
+ contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/qth/QSyntaxHighlighter.qth
+ contrib/hbqt/hbqt_events.h
* contrib/hbqt/hbqt_events.cpp
* Split monolithic hbqt_slots.h header to distinct
class headers.
* contrib/hbqt/generator/hbqtgen.prg
- contrib/hbqt/filelist.mk
* contrib/hbqt/Makefile
* Changed to not generate central filelist.mk.
(no dynamic files in central lib)
* config/rules.mk
- Deleted .l reference.
* contrib/hbqt/qtgui/QSyntaxHighlighter.cpp
* contrib/hbqt/qtgui/QTableView.cpp
* contrib/hbqt/qtcore/QAbstractItemModel.cpp
* Regenerated.
* contrib/hbqt/generator/hbqtgen.prg
% Changed to only save files which have indeed changed
(to avoid unnecessary rebuilds)
* contrib/hbqt/Makefile
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_slots.h
- contrib/hbqt/hbqt_hbqtdbfmodel.cpp
+ contrib/hbqt/hbqt_hbdbfmodel.cpp
- contrib/hbqt/hbqt_hbqtsyntaxhighlighter.cpp
+ contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
- contrib/hbqt/hbqt_hbqtmymainwindow.cpp
+ contrib/hbqt/hbqt_hbqmainwindow.cpp
- contrib/hbqt/hbqt_hbqtmydrawingarea.cpp
+ contrib/hbqt/hbqt_hbdrawingarea.cpp
- contrib/hbqt/hbqt_hbqttableview.cpp
+ contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/qth/QAbstractItemModel.qth
* contrib/hbqt/qth/QSyntaxHighlighter.qth
* contrib/hbqt/qth/QTableView.qth
* Following class renames done:
- HbSyntaxHighlighter -> HBQSyntaxHighlighter (HBIDE)
- HbDbfModel -> HBDbfModel (HBXBP)
- MyDrawingArea -> HBDrawingArea (UNUSED)
- MyMainWindow -> HBQMainWindow
- HbTableView -> HBQTableView (HBXBP)
; TOFIX: These classes seem to be the problematic parts of HBQT.
They violate layering, there are naming inconsistencies
(standard QT .prg level class internally refers to inherited
special Harbour class, they implement HBXBP and IDE functionality
embedded in HBQT to hack around the rule to not place .c
code in HBXBP/HBIDE, they are not using GC collected pointers,
they require mutexes which initialization isn't properly
solved, one class is nowhere used. etcect)
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbxbp/xbpdialog.prg
* Renames applied to HBXBP code.
* contrib/hbqt/qtgui/TQTableView.prg
* contrib/hbqt/qtgui/QSyntaxHighlighter.cpp
* contrib/hbqt/qtgui/QTableView.cpp
* contrib/hbqt/qtcore/TQAbstractItemModel.prg
* contrib/hbqt/qtcore/QAbstractItemModel.cpp
* Regenerated after .qth changes.