* contrib/hbqt/qtgui/hbqtgui.ch
+ Added: QFormLayout_* constants.
* contrib/hbqt/qtgui/qth/QWidget.qth
! Modified: :setParent( QWidget * w ) => :setParent( QWidget * w = 0 )
It is undocumented change but perhaps Qt has ommitted. Works fine.
So to set the parent of a widget to nil is now easier.
* contrib/hbqt/hbmk2_qt.hbs
! Code cleanup.
! Minor formatting.
! zimproved handelling of default parameters.
; ROUND # 1: More to follow.
* contrib/hbqt/hbmk2_qt.hbs
! Optimized: hb_itemReturn( hb_stackSelfItem() );
is now inserted at the end of multi-functions methods.
It will produce significantly reduced .cpp in size.
* contrib/hbqt/qtgui/hbqt_hbqgraphicsscene.cpp
* contrib/hbqt/qtgui/hbqt_hbqtableview.cpp
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
! Minor: class object encapsulated in new item.
* contrib/hbqt/qtcore/hbqt_pointer.cpp
! Minor optimization.
* contrib/hbqt/qtgui/qth/QBrush.qth
+ Added: some HBQT_TYPE_ constants which cannot be included
when generated auto.
* contrib/hbqt/qtgui/qth/QPainter.qth
! Started: to rewrite manually all classes as current
engine is not good enough to do it auto.
* contrib/hbide/hbqreportsmanager.prg
! Achieved: Reports Manager is reworking again.
* contrib/hbqt/hbmk2_qt.hbs
! Changed the way constant HBQT_TYPE_Q*Class was constructed.
Now Q*Class name is taken alone is submitted to hb_crc32().
* harbour/src/vm/itemapi.c
! fixed compilation in MT mode with some C compilers using
HB_STACK_TLS_PRELOAD
* updated also hb_itemParamStore() function to set NIL to item passed
by reference when is called with NULL pItem parameter.
* harbour/src/vm/itemapi.c
* set NIL to item passed by reference when hb_itemParamStoreForward()
or hb_itemParamStoreRelease() is called with NULL pItem parameter.
* harbour/contrib/hbnetio/netiosrv.c
! fixed possible memory leak when
NETIO_SRVSTATUS( ..., NETIO_SRVINFO_PEERADDRESS, ... )
is called without 3-rd parameter passed by reference
* harbour/examples/gtwvw/gtwvw.c
* replaced repeated TONE code with hb_gt_winapi_tone()
+ added MOUSE_GETPOS() method
* harbour/examples/gtwvw/wvwtbar.c
! fixed to compile with Harbour
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/idedocks.prg
* contrib/hbqt/qtgui/hbqt_hbqgraphicsitem.cpp
! Minors.
* contrib/hbqt/qtgui/qth/QPainter.qth
! Rewritten: manually :fillrect() which does not overload
proper method with same number and types of arguments.
TOFIX: hbmk2_qt.hbs to entertain this construct.
* contrib/hbqt/hbmk2_qt.hbs
* contrib/hbqt/qtcore/hbqt.h
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/qth/HBQEvents.qth
* contrib/hbqt/qtcore/qth/HBQSlots.qth
* contrib/hbqt/qtgui/hbqt_hbqabstractitemmodel.cpp
* contrib/hbqt/qtgui/hbqt_hbqgraphicsitem.cpp
* contrib/hbqt/qtgui/hbqt_hbqgraphicsscene.cpp
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/qtgui/hbqt_hbqtableview.cpp
* contrib/hbqt/qtgui/qth/HBQAbstractItemModel.qth
* contrib/hbqt/qtgui/qth/HBQGraphicsItem.qth
* contrib/hbqt/qtgui/qth/HBQGraphicsScene.qth
* contrib/hbqt/qtgui/qth/HBQPlainTextEdit.qth
* contrib/hbqt/qtgui/qth/HBQTableView.qth
! Fixed: implemented correct GC memory collection. Thanks to Przemek
to have shown me the way.
! Fixed: some code has been changed
PLEASE be sure to do a full "make clean" before compiling
* contrib/gtwvg/tests/demowvg.prg
* contrib/gtwvg/tests/wvgmodal.prg
* contrib/gtwvg/tests/wvgtbrowser.prg
* contrib/gtwvg/tests/wvgutilities.prg
! Fixed: many artifacts which got broken with GT changes
in a couple of years.
+ Added: a menu option which to execute a modal Harbour Gt
window on top of a GUI window.
+ contrib/gtwvg/tests/demowvg1.prg
+ Added: a highly simplified demo for beginners to understand
the underlying concepts how GUI controls can be exploited
with CUI output. Press F2 which navigaing the GETS.
This demo used GTWVG's inbuilt GUI controls handelling
mechanism instead of devising one's own.
This mechanism was introduced in GTWVG mush later
that demowvg.prg was written. In future I will try to
rewrite the demowvg.prg with in-built protocol.
* utils/hbmk2/hbmk2.prg
+ Continue if there were no input files specified. This
can be useful in some situations.
* Show warning about no input files only when -info option is used.
+ Consider resource files as valid input files when showing
above warning.
* src/rtl/gtwin/gtwin.c
% Replaced kbd modifier readout with a more efficient
version. It contains hack required to make core
low-level function to work correctly with win consoles.
Patch co-developed with Przemek.
* contrib/hbtip/sendmail.prg
! Implemented fix to enclose attachment filenames in
dbl quotes as suggested by George Frehner.
Pls test.
* contrib/hbtip/mail.prg
* Formatting.
* harbour/include/hbgtinfo.ch
! fixed wrong decimal value defined for HB_GTI_KBD_RALT.
* translated HB_GTI_KBD_* values from decimal to hex numbers
to avoid such mistakes in the future.
* contrib/hbide/idebrowse.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideprojmanager.prg
! Optimized: destructors.
* contrib/hbxbp/xbpwindow.prg
! Minor.
* contrib/hbqt/qtcore/qth/QStringList.qth
! Uncommented: many methods, commented one.
* contrib/hbqt/hbmk2_qt.hbs
+ Implemented: QList< * > generating a list of Harbour objects.
Now no more raw pointers generated with hb_retptr() in hbQT.
Please review and test.
WARNING: third party libs should check their sources to
entertain this change.
* src/rtl/gtwin/gtwin.c
- Fully disabled palette setting feature due to bad side effects
reported by Mindaugas.
Maybe it could be reenabled in some cases, pls refine it if you
need this feature. Pls also retest, I have a hard time replicating
this side-effect on my system.
* INSTALL
* Updated. mingw tdm 4.5.2 works fine again.
* examples/hbdoc2/gentpl.prg
! Fixed typo reported on users' list by Emmer.
* harbour/src/rtl/hbznet.c
% use Z_PARTIAL_FLUSH instead of Z_SYNC_FLUSH in hb_znetFlush()
It should reduce a little bit the size of compressed data stream.
* harbour/include/hbapi.h
* harbour/src/rtl/hbrandom.c
added new C functions which fills memory block with random values:
void hb_random_block( void * data, HB_SIZE len )
this function should be used with "good enough" random generator
so in the future it may be changed to use internally sth different
then rand().
* harbour/src/vm/thread.c
* pacified minor warning
* harbour/src/rtl/hbproces.c
! fixed one HB_TRUE wrongly used instead of TRUE
* minor simplification
* harbour/include/hbgtinfo.ch
* harbour/src/rtl/hbgtcore.c
+ added HB_GTI_VERSION - it returns version information just like
hb_gtVersion() - usually the same but can be different in some
multilevel GTs, i.e. when different GT drivers are used locally
and remotely.
* harbour/include/inkey.ch
* harbour/src/rtl/hbgtcore.c
+ added HB_K_CONNECT and HB_K_DISCONNECT inkey codes.
They can be used to signal that remote terminal is connected or
diconnected.
* harbour/tests/gtkeys.prg
+ added HB_K_* keycodes
* harbour/contrib/hbnetio/netiosrv.c
* removed unnecessary casting
* contrib/hbqt/hbmk2_qt.hbs
! Code clean-up.
! Restrored: how the obejcet is addressed in methods.
NOTE: Do not change.
* contrib/hbqt/qtcore/hbqt_misc.prg
! Restored: :disconnect().
! Connect was generating error it obejct was freed prior to execution.
* contrib/hbqt/qtcore/qth/QMimeData.qth
* contrib/hbqt/qtgui/qth/QDropEvent.qth
* contrib/hbqt/qtgui/qth/QGraphicsSceneDragDropEvent.qth
! Fixed: some manual code which was not taking use of new protocol.
* contrib/hbqt/qtgui/hbqt_hbqgraphicsitem.cpp
* contrib/hbqt/qtgui/hbqt_hbqgraphicsscene.cpp
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
! Changed: hbqt_create_object() => hbqt_create_objectGC()
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
! Changed: the behaviour of oQObject:connect().
Now if called next time, it will replace the original codeblock.
This is important in certain situations.
! Fixed: potential memory leak.
* contrib/hbqt/qtcore/hbqt_misc.prg
! Introduced: DESTRUCTOR _destroy() which explictly destroys
singals and slots prior to destroying the object. [ Francessco ].
This renderes calling oQObject:disconnect() useless.
Now there is no more GPF on hbIDE. Please build for
different OS's and report on the list.
; TODO: remove :disconnect calls from hbXBP and hbIDE.
* contrib/hbqt/qtcore/hbqt_init.cpp
* contrib/hbqt/qtgui/hbqt_init.cpp
! Transferred logic of destructors from core to gui.
The whole lot should be in one source. We cannot
control the order of execution of _init_ functions.
Francessco, take care of these changes.
NOTE: now hbIDE enters, used with all flavours, exits
without GPF. The remaining issue is to control
memory leaks. Francessco is working onto that.
* contrib/hbide/idebrowse.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesources.prg
! Connect/disconnect per current implementation.
* contrib/hbide/idemain.prg
! Put to more stress test at exit by destroying all objects
explictly.
* contrib/hbqt/qtgui/THbQtUI.prg
! Destructor more rationalized.
* contrib/hbxbp/xbp3state.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpcheckbox.prg
* contrib/hbxbp/xbpcombobox.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbphtmlviewer.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbppushbutton.prg
* contrib/hbxbp/xbpradiobutton.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpscrollbar.prg
* contrib/hbxbp/xbpsle.prg
* contrib/hbxbp/xbpspinbutton.prg
* contrib/hbxbp/xbptabpage.prg
* contrib/hbxbp/xbptoolbar.prg
* contrib/hbxbp/xbptreeview.prg
* contrib/hbxbp/xbpwindow.prg
! Restored: :disconnect() method.
Without disconnecting events/slots object does not get
destroyed. The reason is :__pSlots and :__pEvents holds
reference to self which needs to be released before
object itself is released, a cyclical phenomena.
* contrib/hbqt/qtgui/qth/QBoxLayout.qth
* contrib/hbqt/qtgui/qth/QLayout.qth
* contrib/hbqt/qtgui/qth/QMainWindow.qth
* contrib/hbqt/qtgui/qth/QTableWidget.qth
* contrib/hbqt/qtgui/qth/QTreeWidget.qth
! Fixed: detached objects. Hopefully hbIDE should exit clean
if just entered and exited. However, if some dialog using
.ui (.uic) files, it is still broken.
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/qtcore/hbqt_misc.prg
* contrib/hbqt/qtgui/hbqt_init.cpp
! FIXED: GPF at exit and sometimes along running application.
Harbourearns, it is day to cheer.
* harbour/src/rtl/filesys.c
! added protection for potentially unfinished due to signal
interrupt close() operation in *nix systems in hb_fsClose()
function
* use hb_fsClose() instead of close() to be sure that the operation
is completed in *nix systems
* return NULL for DosToWinHandle( FS_ERROR )
; TODO: add protection against signal interrupting to all hb_fs*()
functions which may need it.
* harbour/src/rtl/hbproces.c
* use hb_fsClose() instead of close() to be sure that the operation
is completed in *nix systems
! Do not inherit ends of pipe handles in MS-Windows builds of
hb_fsProcessOpen()
! Added missing CloseHandle( hProcess ) in MS-Windows builds of
hb_fsProcessRun()
; QUESTION: Does hb_fsProcessRun() work correctly in MS-Windows builds?
I've just noticed that I used WaitForMultipleObjects()
WIN API function with unnamed pipe handles and I cannot
find any information in MSDN that this is legal operation.
* contrib/hbqt/qtcore/hbqt_init.cpp
* contrib/hbqt/qtcore/qth/filelist.hbm
+ contrib/hbqt/qtcore/qth/QChildEvent.qth
* contrib/hbqt/qtgui/hbqt_init.cpp
* contrib/hbqt/qtgui/hbqtgui.hbx
* contrib/hbqt/qtgui/qth/filelist.hbm
+ contrib/hbqt/qtgui/qth/QActionEvent.qth
+ contrib/hbqt/qtgui/qth/QFileOpenEvent.qth
+ contrib/hbqt/qtgui/qth/QHoverEvent.qth
* contrib/hbqt/qtgui/qth/QMoveEvent.qth
* contrib/hbqt/qtgui/qth/QPaintEvent.qth
+ contrib/hbqt/qtgui/qth/QShortcutEvent.qth
+ Added: more events specific classes.
* contrib/hbqt/hbmk2_qt.hbs
! Rationalized code fragments.
- Deleted: meta object checking as it is now handelled by the generator.
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
! Rationalized: catching the event.
NOTE: hb_itemNew() should not be called here. The function
returns a hb_stackReturnItem(). Object is already contained
in .prg variable in user application and will be auto
destructed when out of scope.