* 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.
* harbour/include/hbgtinfo.ch
+ added HB_GTI_ONLINE - Is terminal connected?
* harbour/src/rtl/hbproces.c
! fixed MS-Windows version of hb_fsProcessRun() to unlock HVM stack
when thread is waiting for child process
* harbour/include/hbthread.h
* harbour/src/vm/thread.c
+ added internal functions hb_threadStateClone() and hb_threadStart()
* modified code to use new functions
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
+ added public function hb_vmThreadStart() which creates new thread
with HVM stack
+ added protection against executing hb_vmThreadRelease() for
not registered thread state
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
! Fixed: wrong event was being fired instead of relevant one.
* contrib/hbqt/qtcore/hbqt_pointer.cpp
! Fixed: a memory leak.
* contrib/hbssl/x509.c
+ Enable feature which is fixed with newer (1.0.0) openssl
version. It's now enable for 1.0.0 final and newer, I did
only test it with 1.0.0d.
* contrib/hbrun/hbrun.prg
! Fixed to not crash due to corrupted .hrb leftover files next to hbrun executable.
* src/compiler/hbusage.c
! typo in e-mail address
* contrib/hbqt/hbqt_common.hbm
+ qt autodetection on beos
* config/postinst.hbs
* ld config -> linux only
; [Tamas Tevesz]
* harbour/src/rtl/hbrandom.c
! fixed double number calculation for random values by removing
some wrong trick with epsilon value. rand() function returns
numbers in range [0,RAND_MAX] (inclusive) so can give RAND_MAX+1
different results and this is the correct divisor to map rand()
results to real range [0,1) ( 0 <= n < 1 )
* contrib/hbqt/qtcore/hbqt_init.cpp
! Fixed: one remaining warning - arguments.
* contrib/hbxbp/xbpbrowse.prg
! Fixed: slot "commitData(QWidget*)" was not working.
It is hack on PRG level and is scheduled to be shifted to C++.
* contrib/hbqt/hbmk2_qt.hbs
% Deleted now unnecessary .prg wrapper generation logic.
* Moved .qth processing to "pre_c" phase.
! Deleted HB_FUNC_EXTERN for constructor now declared locally.
! Added constructor to symbol table.
* contrib/3rd/sqlite3/sqlite3.hbp
* contrib/hbbz2/3rd/bz2/bz2.hbp
* contrib/hbexpat/3rd/expat/expat.hbp
* contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
* contrib/hblzf/3rd/liblzf/lzf.hbp
* contrib/hbmlzo/3rd/minilzo/minilzo.hbp
* contrib/hbmzip/3rd/minizip/minizip.hbp
* contrib/hbmxml/3rd/minixml/mxml.hbp
* contrib/hbxdiff/3rd/libxdiff/xdiff.hbp
+ Added -pic option to 3rd party libs. This switch will
make them use -pic when creating their static libs,
which allows to link them to contrib dynlibs when
using HB_BUILD_CONTRIB_DYN=yes.
* contrib/hbwin/tests/dlg.prg
* Minor formatting.
* contrib/hbqt/qtcore/hbqt_misc.prg
+ Added and experimental function scheduled to be removed.
* contrib/hbqt/qtcore/hbqtcore.hbx
* contrib/hbqt/qtdesigner/hbqtdesigner.hbx
* contrib/hbqt/qtgui/hbqtgui.hbx
* contrib/hbqt/qtnetwork/hbqtnetwork.hbx
* contrib/hbqt/qtuitools/hbqtuitools.hbx
* contrib/hbqt/qtwebkit/hbqtwebkit.hbx
* contrib/hbqt/hbmk2_qt.hbs
+ Implemented: removed the need of any PRG wrapper to Q*Class() calls.
Shifted to C++ level.
NOTE: still corresponding blank .prg(s) are created inside .hbmk
folders. I could not follow the logic to remove them from build
process, Viktor ?
* harbour/src/common/hbtrace.c
! use hb_getenv_buffer() instead of hb_getenv() to not allocate
memory when trace system is activated and added protection
against recursive calls.
* harbour/src/common/hbprintf.c
! use internal function _hb_strnlen() instead of hb_strnlen()
to avoid recursive calls in Harbour trace system
* contrib/hbqt/hbmk2_qt.hbs
! Fix to prev.
; QUESTION: What is the reason that the constructor code
is manually written for each class, instead of
being automatically generated?
Can it be also autogenerated?