* harbour/contrib/sddmy/sddmy.c
* be more valgrind friendly
* harbour/contrib/rddsdd/sqlmix.c
! fixed GPF bug: MIXKEY should not be reused in another tag
! fixed memory leak
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/hbqt_misc.prg
+ Finished C implementation of HBQT_PTR().
; Please review.
- Deleted old .prg implementation of HBQT_PTR().
* harbour/include/hbapirdd.h
* harbour/src/rdd/workarea.c
+ added new 5-th parameter with pointer to super table ID to
<RDD>_GETFUNCTABLE() function
+ added new C function hb_rddInheritEx() which allows to retrieve
super RDD ID during registration.
+ added new C function:
HB_BOOL hb_rddIsDerivedFrom( HB_USHORT uiRddID,
HB_USHORT uiSupperRddID );
which returns HB_TRUE if one of uiRddID ancestors is uiSupperRddID
* harbour/src/rdd/dbf1.c
* harbour/src/rdd/delim1.c
* harbour/src/rdd/sdf1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/usrrdd/usrrdd.c
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
* harbour/src/rdd/usrrdd/rdds/dbtcdx.prg
* harbour/src/rdd/usrrdd/rdds/fptcdx.prg
* harbour/src/rdd/usrrdd/rdds/hscdx.prg
* harbour/src/rdd/usrrdd/rdds/vfpcdx.prg
* harbour/src/rdd/usrrdd/rdds/logrdd.prg
* harbour/src/rdd/usrrdd/rdds/rlcdx.prg
* harbour/src/rdd/usrrdd/rdds/smtcdx.prg
* harbour/contrib/rddbmcdx/bmdbfcdx.c
* harbour/contrib/rddsql/sqlbase.c
* harbour/contrib/rddsql/sqlmix.c
* harbour/contrib/rddads/adsx.c
* harbour/contrib/rddads/ads1.c
* respect new parameter in <RDD>_GETFUNCTABLE() and use
hb_rddInheritEx() instead of hb_rddInherit()
* harbour/contrib/rddads/ads1.c
* use hb_rddIsDerivedFrom() to recognize RDDs which inherits from
one of ADS* RDDs.
It should resolve some problems with ADS*X RDDs and help to simplify
ADS*X RDDs code.
Please test it and update ADS*X code removing some code which is
not longer necessary.
* contrib/hbqt/qtwebkit/g/TQWebSecurityOrigin.prg
* contrib/hbqt/qtwebkit/g/TQWebSettings.prg
* contrib/hbqt/qtwebkit/g/TQWebView.prg
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/hbqtoolbar.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idebrowse.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idedocwriter.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/ideskeletons.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
! Adopted to latest changes.
* contrib/hbxbp/hbpprocess.prg
* contrib/hbxbp/xbp3state.prg
* contrib/hbxbp/xbpappevent.prg
* contrib/hbxbp/xbpbitmap.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpcheckbox.prg
* contrib/hbxbp/xbpclipboard.prg
* contrib/hbxbp/xbpcombobox.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbpfontdialog.prg
* contrib/hbxbp/xbphtmlviewer.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbpmle.prg
* contrib/hbxbp/xbpprintdialog.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/xbpstatic.prg
* contrib/hbxbp/xbpstatusbar.prg
* contrib/hbxbp/xbptabpage.prg
* contrib/hbxbp/xbptoolbar.prg
* contrib/hbxbp/xbptreeview.prg
* contrib/hbxbp/xbpwindow.prg
* Adopted to latest changes.
* contrib/hbqt/tests/demoqt.prg
* Adopted to latest changes.
* contrib/hbqt/utils/hbqtgen.prg
+ Implemented: many-t-one class method call on PRG level.
NOTES: this implementation is a leap forward in the evolution of hbQT.
Now any method call returns the Harbour compatible type.
It means any Qt method call which is expected to return a
hbQT object was returning a pointer to the object, now returns
a hbQT class object instance instead.
So, the code like this:
qCursor := QTextCursor():from( qDoc:textCursor() )
=>
qCursor := qDoc:textCursor()
And this implementation is exactly like Qt itself
where you can pass the return object directly as an
argument to the another method call.
pw := iif( abs( ::pen():widthF() ) > 0, abs( ::pen():widthF() ), 1 )
See hbIDE code to review how it is simplified by now.
WARNING: regression is highly possible and may be hbIDE become
unstable for some time.
3rd party libraries: adopt new code to your advantage.
Many things are incompatible now.
+ Added to the list of contributors:
Carlos Bacco (carlosbacco gmail.com)
Francesco Perillo (fperillo gmail.com)
Istvan Bisz (istvan.bisz t-online.hu)
Tamas Tevesz (ice extreme.hu)
(I accept recommendation about who else should be added,
it's be a while I updated this list)
* contrib/hbide/ideparseexpr.c
% Using hb_parldef().
* harbour/include/hbcom.ch
+ added new error constant value: HB_COM_ERR_IO
* harbour/src/rtl/hbcom.c
+ added translation for some important OS error code
in *nix builds
+ added translation ERROR_TIMEOUT -> HB_COM_ERR_TIMEOUT
in Windows build.
TODO: check real error codes for it and also for other
operations like opening the same port more then
once and add valid translations
; TODO: add some basic trnaslation for OS2 error codes.
HB_COM_ERR_TIMEOUT seems to be most important for portable
programs.
* harbour/include/hbcom.ch
* updated few comments
* harbour/include/hbapicom.h
* harbour/src/rtl/hbcom.c
+ added new C function:
HB_FHANDLE hb_comGetDeviceHandle( int iPort );
* small cleanup in OS2 flow control setting
* harbour/src/rtl/hbcomhb.c
+ added new PRG function
HB_COMGETDEVICEHANDLE( nPort ) --> nHandle | F_ERROR
* modified HB_COMFLOWCONTROL() to not change existing flow control
when 3-rd parameter is missing:
HB_COMFLOWCONTROL( nPort, @nOldFlow [, nNewFlow] ) --> lSuccess
* harbour/contrib/hbmzip/hbmzip.c
! fixed date setting in HB_ZIPFILECREATE()
* utils/hbmk2/hbmk2.prg
* config/global.mk
* INSTALL
! HB_BUILD_NAME/-build= no longer supports pathseps (backslash/fwdslash)
(it would need costly solution to resolve compilation of
hbrun.rc, maybe more. It's also "cleaner" this way, since the
dir structure is not altered)
* utils/hbmk2/hbmk2.prg
+ Harbour environment autodetection will now work if pathseps
are present in HB_BUILD_NAME/-build= setting.
(so now it's in sync with Harbour build in this regard)
* contrib/hbqt/qtcore/qth/QFile.qth
* contrib/hbqt/qtcore/qth/QIODevice.qth
* contrib/hbqt/qtcore/qth/QResource.qth
* contrib/hbqt/qtgui/qth/QBrush.qth
* contrib/hbqt/qtgui/qth/QColor.qth
* contrib/hbqt/qtgui/qth/QFormLayout.qth
* contrib/hbqt/qtgui/qth/QIcon.qth
* contrib/hbqt/qtgui/qth/QImage.qth
* contrib/hbqt/qtgui/qth/QMainWindow.qth
* contrib/hbqt/qtgui/qth/QMenu.qth
* contrib/hbqt/qtgui/qth/QMenuBar.qth
* contrib/hbqt/qtgui/qth/QPainter.qth
* contrib/hbqt/qtgui/qth/QPainterPath.qth
* contrib/hbqt/qtgui/qth/QPixmap.qth
* contrib/hbqt/qtgui/qth/QWidget.qth
+ Normalized as much as possible.
In some cases almost 100%.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbplistbox.prg
- Changed: calls postfixed with "_1" and family methods.
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/idebrowse.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
- Changed: calls postfixed with "_1" and family methods.
Nothing else is looked into yet.
* contrib/hbqt/qtcore/hbqt_misc.prg
+ Added one more method :valtypes()
* contrib/hbqt/utils/hbqtgen.prg
+ Implemented: resolving parameters and calling
many-to-one methods at PRG level. It is extremely
complex composition but has been achieved to the point where,
at least, hbIDE is build properly and is running.
Many more points needs to be addressed but that I
will undertake after a couple of days.
REGRESSION is highly possible and reporting
will be extremely helpful to further fine-tune the
concept. Goal is to bring everything on PRG code.
* contrib/hbqt/qt*/g/*.cpp;*.prg,*.txt
* Re-generated.
* contrib/hbmzip/hbmzip.c
! Fixed potential GPF in HB_ZIPDELETEFILE() and HB_UNZIPFILEINFO()
Report and patch by Leandro Damasio. Thanks.
* INSTALL
- Deleted actual example value from HB_QTPOSTFIX. Users were setting
this unnecessarily thinking they need it. The minority how really
need this will know what this is about anyway.
* harbour/src/pp/ppcore.c
+ added new PP directive:
#warning <*msg*>
* harbour/include/hbclass.ch
* use #warning instead of #error for class method declaration mismatch
(enabled by -w3 compiler switch)
* harbour/contrib/hbwin/olecore.c
! fixed to return assigned value instead of 1-st parameter when more
then one parameter is used in code like:
object:_name( param, value )
* harbour/contrib/hbwin/hbolesrv.c
! fixed updating of OLE object reference counter used by
DllCanUnloadNow()
* harbour/contrib/hbwin/olecore.c
+ added possibility to use more than one parameter in property put
call. This allows to make a workaround for non-existant Harbour
language syntax:
object.name(param) = value
Workaround syntax:
object._name(param, value)
+ added comment documenting OLE automation behaviour for various
VBScript sentences
+ harbour/contrib/hbwin/tests/pdfcreat.prg
+ added sample code for producing .pdf documents using OLE and PDFCreator
* contrib/hbqt/qtgui/qth/QBoxLayout.qth
* contrib/hbqt/qtgui/qth/QComboBox.qth
* contrib/hbqt/qtgui/qth/QDrag.qth
* contrib/hbqt/qtgui/qth/QGridLayout.qth
* contrib/hbqt/qtgui/qth/QLayout.qth
* contrib/hbqt/qtgui/qth/QListWidget.qth
* contrib/hbqt/qtgui/qth/QTableWidget.qth
* contrib/hbqt/qtgui/qth/QTabWidget.qth
* contrib/hbqt/qtgui/qth/QToolBar.qth
* contrib/hbqt/qtgui/qth/QTreeWidget.qth
* contrib/hbqt/qtgui/qth/QTreeWidgetItem.qth
* contrib/hbqt/qtgui/qth/QWidget.qth
- Deleted all occurances where a widget was detached from
GC cycle. Now it is done automatically by the generator.
To flag an argument to detach, prototype body is post-fixed
with [*D=n*] where "n" is the ordinal position of the
argument as seen in the prototype body.
* contrib/hbqt/utils/hbqtgen.prg
+ A thoughly simplified, artionalized, object based
implementation. It is now easily possible to extend
it with many more constructs.
WARNING: though this implementation produces the
working code but I have not re-generated sources
because a lot more is still on my drawing-board.
You can generate sources but only at your local
end. DO NOT UPDATE SVN.
* harbour/include/hbapicom.h
* harbour/src/rtl/hbcom.c
+ added public C function: void hb_comSetError( int iPort, int iError )
* harbour/src/rtl/hbcomhb.c
+ added PRG function: HB_COMSETERROR( nPort, nError ) --> NIL
* harbour/src/rtl/hbsocket.c
* minor formatting
* harbour/config/doc.mk
* harbour/config/postinst.hbs
* harbour/contrib/make.hbs
* do not install documentation files when HB_INSTALL_DOC=no
* harbour/config/postinst.hbs
! do not install .hbl files for core utils when HB_BUILD_PARTS=lib
+ added support for HB_INSTALL_SCRIPT executed after install step.
It allows to extract some variables set by our GNU make system,
i.e. it's used to retrieve HB_CCPREFIX in win/wince .spec files.
* harbour/package/harbour-win.spec.in
* use HB_INSTALL_DOC=no to disable DOC file installation
* generate hb{w|ce}mk2 scripts as wrappers to hbmk2 with cross
build settings so it can be easy used used by users to create
Windows/WindowsCE binaries.
Temporary solution until we will not have something more general.
* contrib/hbqt/qtgui/g/QMenu.cpp
* Re-generated.
* contrib/hbqt/qtgui/qth/QMenu.qth
! A try to fix error reported on some builds.
I am not sure if this is the cause but let us try.
* contrib/hbqt/qtgui/doc/en/class_qpainter.txt
* contrib/hbqt/qtgui/doc/en/class_qpainterpath.txt
* contrib/hbqt/qtgui/g/QPainter.cpp
* contrib/hbqt/qtgui/g/QPainterPath.cpp
* contrib/hbqt/qtgui/g/TQPainter.prg
* contrib/hbqt/qtgui/g/TQPainterPath.prg
* Re-generated.
* contrib/hbqt/qtgui/qth/QPainter.qth
! Implemented remaining methods - many-to-one.
NOTE: :fillRect() with Qt_BrushStyle is omitted.
This omission goes in favour of Qt_GlbalColor
because fill with a color is mostly used call.
* contrib/hbqt/qtgui/qth/QPainterPath.qth
+ Implemented: many-to-one method synchronization.
* contrib/hbide/hbqreportsmanager.prg
! Modified to honor above changes.
WARNING: 3rd Party Developers - Please revisit your printing functions.
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/idemisc.prg
* contrib/hbqt/qtgui/doc/en/class_qpainter.txt
* contrib/hbqt/qtgui/g/QPainter.cpp
* contrib/hbqt/qtgui/g/TQPainter.prg
* contrib/hbqt/qtgui/qth/QPainter.qth
+ Implemented: all multiple entry functions of QPainter() class
under single function call. Only exception is :fillRect()
which accepts similar parameters for different overloadings.
+ contrib/hbqt/qtcore/g/THBQEvents.prg
+ contrib/hbqt/qtcore/g/THBQSlots.prg
+ Missings from prev commit of Viktor.
* contrib/hbqt/qtgui/doc/en/class_qpainter.txt
* contrib/hbqt/qtgui/g/QPainter.cpp
* contrib/hbqt/qtgui/g/TQPainter.prg
* contrib/hbqt/qtgui/qth/QPainter.qth
+ More streamlined many-to-one function calls.
Still a work in progress.
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idesaveload.prg
+ Implemented: Harbour level codepage protocol.
Please make experiments.
WARNING: you may need to re-select appropriate
codepage from <MainMenu><Setup><Codepages> menu option
before saving any source. Better would be - select
codepage as above and exit hbIDE, reenter.