* harbour/src/rtl/gtwvt/gtwvt.c
! fixed possible double font freeing in non UNICODE builds
* harbour/contrib/hbwin/win_misc.c
+ added prg function WIN_UNICODE() which returns logical value
indicating if UNICODE macro was used or not
* harbour/utils/hbrun/hbrun.prg
! fixed typo in my last commit - Thanks to Frank Van Nuffel for
information about the problem
+ harbour/src/lang/msgsv.c
+ harbour/src/lang/msgsvwin.c
+ added Swedish language modules by Klas Engwall
(borrowed from xHarbour with some small modifications - please verify)
* harbour/utils/hbrun/hbrun.prg
+ extended error message so it reports more precisely the problem
with user command.
+ use -n2 instead of -n for user command compilation
It allows to use:
DO <proc> [WITH <args,...>]
when <proc>.prg contains code without explicit startup procedure.
% removed useless hbrun_DirAddPathSep() - hb_FNameMerge() automatically
adds directory separator if necessary.
! changed the order of locating files without extension so files in
local directory are not hidden by file in PATH or hb_baseDir()
! interrupt execution when given .hbs or .prg file cannot be cleanly
compiled.
! generate error when file passed as in parameters cannot be found.
! do not strip quote characters from PATHs in *nix builds.0
! use in DOS builds "~harbour" instead of ".harbour" as directory name
for hbrun history file.
; Possible TODO: add function:
HB_FNameCheck( <cFileName> ) -> <lNameOK>
which will check if <cFileName> is correct and can be used
with given file system. <cFileName> should contain full path
so it can be verified with correct file system. Such extension
should eliminate code which disable unconditionally long file
names in all DOS builds.
* contrib/hbxbp/xbplistbox.prg
! Changed: the way context menu was being fired.
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.h
+ Added: Francesco Perillo's new SIGNAL/SLOT mechanism.
It is guarded against #ifdef __PRITPAL__ which is defined
by default in hbqt_hbqslots.h. To switch over to new
mechanism, simply comment out #define __PRITPAL__ and
recompile hbQT. Once all slots will be working, sections
covered under __PRITPAL__ will be removed. This way
we can test new protocol whosoever wants to investigate
insides.
* utils/hbmk2/hbmk2.prg
+ Added MS-DOS compiler (djgpp) detection when used on *nix platform
in cross-compile scenario.
BTW I've also found that I had already implemented win and wce
autodetection based on global.mk, so it' supposed to work. Please
test it.
* config/global.mk
- Deleted a variable not used anymore.
* contrib/hbide/hbqreportsmanager.prg
* contrib/hbide/idebrowse.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
* contrib/hbqt/qtcore/hbqt.h
* contrib/hbqt/qtcore/hbqt_misc.prg
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/qth/HBQEvents.qth
* contrib/hbqt/qtcore/qth/HBQSlots.qth
* contrib/hbqt/qtcore/qth/HBQString.qth
* contrib/hbqt/qtcore/qth/QAbstractEventDispatcher.qth
* contrib/hbqt/qtcore/qth/QAbstractItemModel.qth
* contrib/hbqt/qtcore/qth/QMetaObject.qth
* contrib/hbqt/qtcore/qth/QMetaType.qth
* contrib/hbqt/qtgui/qth/QBitmap.qth
* contrib/hbqt/qtgui/qth/QBrush.qth
* contrib/hbqt/qtgui/qth/QColor.qth
* contrib/hbqt/qtgui/qth/QComboBox.qth
* contrib/hbqt/qtgui/qth/QWidget.qth
* contrib/hbqt/qtgui/THbQtUI.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbptabpage.prg
* contrib/hbxbp/xbptreeview.prg
* contrib/hbqt/utils/hbqtgen.prg
! Changed: massively to produce optimized and 0 fault
tolerant code.
* contrib/hbqt/qt*/*.cpp, *.prg, *.txt
* Re-generated, whichever fall into above changes.
This commit addresses a lot of issues:
1. Parameters checking is now mandatory. You have to supply
the correct number of parameters. No defaults are assumed.
PLUS you need to supply correct type of parameter.
2. PRG class representation is changed.
Now you can get fairly good documentation from looking
at the class declaration. You will never have to refer
the method body which has no meaning as such.
Here is a snippet:
METHOD itemAbove // ( oQTreeWidgetItem ) -> oQTreeWidgetItem
METHOD itemAt // ( oQPoint ) -> oQTreeWidgetItem
// ( nX, nY ) -> oQTreeWidgetItem
METHOD itemBelow // ( oQTreeWidgetItem ) -> oQTreeWidgetItem
METHOD itemWidget // ( oQTreeWidgetItem, nColumn ) -> oQWidget
METHOD openPersistentEditor // ( oQTreeWidgetItem, nColumn ) -> NIL
The methods with variable number and type of parameters
are shown beneth first call.
3. Accordingly, class_*.txt documentation is also updated.
4. A method call now never accepts a pointer, only an
hbQT object. This fixes one/half of the issue - one sided.
TODO: fix sending raw pointers to PRG code from C++ code.
:-)) hbIDE is up and running with all its glory, no GPFs.
Some regression would be possible but you will have
RTE popping up, so easily fixable.
* utils/hbmk2/hbmk2.prg
+ Added workaround for mingw compiler problem where it
tends to leave zero byte long objects in cases when the
build process gets (manually) aborted.
Please check it and report any potential performace
problems (hbmk2 needs to read the objects' size from
the directory listing). Maybe we will need a Harbour
function which returns both timestamp and size in one
call.
* contrib/hbodbc/todbc.prg
- Deleted 'FROM HBCLASS' from class declarations.
Thanks to Manu for the report.
* contrib/hbxpp/dbfuncsx.prg
+ Added XPP_DBUSEAREA() which emulates non-Clipper compatible
behavior of Xbase++ DBUSEAREA() implementation.
Based on code and information sent by Shum
* contrib/gtwvg/wvgwing.c
! Fixed compilation in newer BCC versions (6.3).
Fix suggested by YD0DKL
* package/winuni/mpkg_win_uni.bat
+ Added copyright msg.
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.rc
* Changed to use plain number for icons, instead of 'ICONn' name
to ease addressing them in some situations.
; INCOMPATIBLE: If you used
hb_GTInfo( HB_GTI_ICONRES, "ICONn" )
to set app icon at runtime, change it to:
hb_GTInfo( HB_GTI_ICONRES, n )
* contrib/hbqt/qtgui/g/TQFormLayout.prg
* contrib/hbqt/qtgui/g/TQGraphicsItem.prg
* contrib/hbqt/qtgui/g/TQPainter.prg
* contrib/hbqt/qtnetwork/g/TQHttp.prg
! Re-generated.
* contrib/hbqt/utils/hbqtgen.prg
! Tweaked to generate proper SWITCH statements if multi methods
contain more than one Q*Class objects. Only 4 classes are
reported to have this combination. So it will be unlikely
that any one will have three objects to compare with.
* contrib/hbqt/qtcore/hbqt_misc.prg
% Optimized HbQtObjectHandler:connect() and HbQtObjectHandler:disconnect()
! Type in error msg text in hbqt_error()
% Deleted unnecessary headers.
* contrib/hbpre.hbm
* Turned off -trace by default. You can now turn on with HB_BUILD_VERBOSE=yes
* 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.