* contrib/hbqt/hbmk2_qt.hbs
* Whitespace.
* include/harbour.hbx
* src/rtl/hbdoc.prg
* tests/stripdoc.hbs
* Added __HBDOC_FILTEROUT( <cFile> ) -> <cFile> internal
function to strip all NG doc content from a file and
return the stripped file.
* contrib/hbide/idedocwriter.prg
+ Use core __HBDOC_TOSOURCE() to generate NG doc source.
(just build tested)
; TOFIX: idedocwriter.prg and ideharbourhelp.prg
still makes direct reference to NG doc physical
format. Pls change these to use __HBDOC_* functions.
* contrib/hbide/idemain.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idebrowse.prg
+ Added: slots to use once RDDAds is linked with hbIDE.
( As per __HBDYNLOAD__RDDADS__ ).
* contrib/hbide/ideharbourhelp.prg
+ Implemented: to honor .hbd files.
.hbd files are looked into Harbour's root path and if
found, are used by "Documentation Viewer" other
standard .txt files are processed in /doc OR /doc/en
folders anywhere under the root folder.
HBGD seems to be missing from .hbd compilation.
* contrib/hbide/idemain.prg
+ Minor to prev. Now possible to build hbide with RDDADS
if 'set HB_DYNLOAD_RDDADS=yes' is used prior to build.
It's not supported, endorsed or even planned for this release,
IOW don't send me reports if it doesn't work.
* contrib/hbide/hbide.hbp
* contrib/hbide/idemain.prg
- Disabled RDDADS dynamic load. It requires further work
and brainstorm, which in turn requires interested contributors.
Delayed to the future, after stable release.
* contrib/hbide/idemain.prg
* contrib/hbide/hbide.hbp
+ Loading rddads lib dynamically in HBIDE.
One will need rddads-21.dll built for this and places in the
same dir as hbide (that's where it's generated). You can
build rddads-21.dll using HB_BUILD_CONTRIB_DYN=yes.
; TOFIX: Get the dynamic lib name right for non-win platforms.
Pbly some core functions will be needed for that.
* contrib/hbxbp/hbpprocess.prg
! Reworked: how command line parameters are passed to the appln.
* contrib/hbide/idebrowse.prg
! Fixed: Goto() usage was broken in ideDBU ( result of strict
parameter checking introduced lately ).
* contrib/hbide/ideharbourhelp.prg
! Tried: yet another time to cover case sensitivity in
"Document Viewer".
* contrib/hbide/idetools.prg
! Tweaked: to pass application parameters for new protocol.
* contrib/make.hbs
* contrib/hbide/idemisc.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbrun/hbrun.prg
* config/postinst.hbs
* bin/hb3rdpat.hbs
* Using new filename handling functions from core.
% Deleted redundant local copies of these functions.
* utils/hbmk2/hbmk2.prg
+ REQUESTing new filename handling function till they are
used in hbmk2 too.
; TODO: Make the switch in hbmk2 too.
* src/rtl/hbfilehi.prg
% Minor optimization, cleanups.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* Cleaned PathProc() to have the name PathMakeAbsolute().
Deleted duplicate copies under different names.
* src/rtl/dirdrive.c
+ Added HB_DIRCREATE(), which is same as MAKEDIR() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
+ Added HB_DIRDELETE(), which is same as DIRREMOVE() C5.3 function,
but it's always available, not just when HB_COMPAT_C53 is enabled.
* contrib/hbnetio/tests/netiotst.prg
* contrib/hbnetio/tests/netiot03.prg
* contrib/hbfimage/tests/fitest.prg
* contrib/hbide/idesaveload.prg
* utils/hbmk2/hbmk2.prg
* utils/hbrun/hbrun.prg
* tests/wcecon.prg
* tests/flink.prg
* bin/hb3rdpat.hbs
* examples/hbdoc2/gentpl.prg
* Replaced MakeDir() with universally available hb_DirCreate().
; TODO: same in config/postinst.hbs (delayed to avoid a million
false bug reports)
* src/rtl/Makefile
+ src/rtl/hbfilehi.prg
+ Added generic file/dir/path handling functions.
They are taken from hbmk2 code, added parameter checking,
did two minor change to DirBuild() to be generic,
renamed to have HB_ prefix.
Please note the parameter list and any details are
subject to change yet, IOW these APIs are not yet finalized:
hb_cwd() -> <cPath>
hb_PathNormalize( <cPath> ) -> <cPath>
hb_PathMakeAbsolute( <cPathRel>, <cPathAbs> ) -> <cPath>
hb_PathMakeRelative( <cPathBase>, <cPathTarget>, <lForceRelative> ) -> <cPath>
hb_DirAddPathSep( <cDir> ) -> <cDir>
hb_DirDelPathSep( <cDir> ) -> <cDir>
hb_DirBuild( <cDir> ) -> <lSuccess>
hb_DirUnbuild( <cDir> ) -> <lSuccess>
hb_FNameDirGet( <cFileName> ) -> <cDir>
hb_FNameNameGet( <cFileName> ) -> <cName>
hb_FNameNameExtGet( <cFileName> ) -> <cNameExt>
hb_FNameExtGet( <cFileName> ) -> <cExt>
hb_FNameExtDef( <cFileName>, <cDefExt> ) -> <cFileName>
hb_FNameExtSet( <cFileName>, <cExt> ) -> <cFileName>
hb_FNameDirExtSet( <cFileName>, <cDirNew>, <cExtNew> ) -> <cFileName>
; TODO: Review, clean interface.
; TODO: Use these functions in .hbs files, utils, hbide.
* include/harbour.hbx
* Updated.
* utils/hbmk2/hbmk2.prg
* One internal function renamed.
* contrib/hbide/idemisc.prg
! Applied FN_FromArray() fix to the copy in HBIDE.
; QUESTION: Should we make some of these file manipulation
functions part of core (possibly with
reorganized names)? These are generally useful,
and some of them are not trivial, some others
are often used, and all of them generic:
Some possible candidates from hbmk2:
hb_pwd()
PathNormalize( ... )
PathMakeAbsolute( ... )
PathMakeRelative( ... )
PathSepToSelf( ... )
DirAddPathSep( ... )
DirDelPathSep( ... )
DirBuild( ... )
DirUnbuild( ... )
FNameDirGet( ... )
FNameDirExtSet( ... )
FNameNameGet( ... )
FNameNameExtGet( ... )
FNameExtGet( ... )
FNameExtDef( ... )
FNameExtSet( ... )
FNameEscape( ... )
* contrib/hbide/ideformat.prg
! Provided: to view formatted results of select text.
Now if "Selected Text" checkbox is checked then only
selected source is supplied for the formatting.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
! Fixed to initialize pText value to avoid GPF when reaching hb_strfree(),
if non-string parameter is passed instead of string type.
Pls review, test, etc.
* contrib/hbide/hbide.hbp
! Added static libs required for embedded Harbour compiler.
* contrib/make.hbs
+ Defined _HB_BUILD_=yes to tell .hbp files we're building
for a Harbour build.
* contrib/hbnetio/utils/hbnetio/hbnetioc.hbp
* contrib/hbformat/utils/hbformat.hbp
+ Tweak to not build in -shared mode when directly building
the .hbp file (and not as part of Harbour build).
* contrib/hbnetio/utils/hbnetioq/hbnetioq.hbp
* contrib/hbide/hbide.hbp
+ Added tweak to build in shared mode when building as
part of Harbour build. This will make the distro size
noticeably smaller.
* contrib/hbnetio/utils/hbnetio/netiosrv.prg
* contrib/hbnetio/utils/hbnetio/netiocon.prg
+ Show server config feature converted to client-server.
- contrib/hbformat/utils/hbformac.c
+ contrib/hbformat/hbformac.c
* contrib/hbformat/utils/hbformat.hbp
* contrib/hbformat/hbformat.hbp
! Moved back this C level helper function to lib.
* Renamed RF_FILEREAD() to __HBFORMAT_FILEREAD()
* contrib/hbformat/utils/hbformat.prg
* contrib/hbformat/hbformat.prg
* hbformat.ini reference moved to cmdline wrapper level.
* Formatting.
* contrib/hbide/ideformat.prg
* Changed to use hbformat lib class, instead of local copy
paste copy.
- contrib/hbide/thbformt.prg
* contrib/hbide/hbide.hbp
- Deleted local copy paste (+ mods) copy of hbformat class code.
; TODO: Pritpal, please reapply your changes (except formatting)
to hbformat lib code.
+ contrib/hbide/format.ui
+ Added: dock-widget populated .ui to manage code formatting.
* contrib/hbide/setup.ui
+ Added: <Setup><hbIDE Setup><Formatting> page which contains slots
to define hbFormat specific settings ( work-in-progress ).
* contrib/hbide/hbide.hbp
+ Added: ideformat.prg
: thbformt.prg
: format.ui
* contrib/hbide/ideactions.prg
+ Implemented: <Edit><Format><Format Source> menu prompt which
invokes "Formatting" dock-widget at the right hosting all
attributes of a tearable dock-widget as usual.
* contrib/hbide/idedocks.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
+ contrib/hbide/ideformat.prg
+ Added: "Formatting Manger" class to handle formatting steps.
+ contrib/hbide/thbformt.prg
+ Added: Stripped version of utils/hbformat/hbFormat.prg which
will be placed as a lib in contrib/hbformat once its functionality
gets matured. I have added few more methods which are scheduled
to be implemented in hbIDE interface. As of current, its
working is exactly the same as original taking use of default
swtches.
hbIDE will now onwards be able to format sources on the fly and
with visual interface to present the formatted source for review
before swapping it into current editing instance. Right now it just
displays the source for review. I will be waiting groups comments
before proceeding which direction it should take.
Also note that currently formatting is done with default switches.
Slots are arranged in <setup><Formatting> page. In the coming days
those will come into effect. Placeholder will be hbide.ini itself
instead of hbformat.ini.
Please go through the process quickly and let me know if interface
needs any improvements.
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
! Modified: the behaviour of XbpDialog():close callback slot.
It was returning logical while it was supposed to return nothing.
Now it is responsibility of the programmer to handle xbeP_Close
event in its main event loop and act according to the context
of :close callback slot.
* contrib/hbide/ideactions.prg
+ Added: <Find in Files> option in <Edit> menu.
* contrib/hbide/idedocks.prg
! Changed: XbpDialog():close block to post to a set/get function
hbide_setClose().
* contrib/hbide/idemain.prg
! Trapped: value of hbide_setClose() before actually closing hbIDE.
* contrib/hbide/idemisc.prg
+ Added: set/get function hbide_setClose().
* contrib/hbide/findinfilesex.ui
! .rc => .txt
* contrib/hbide/idefindreplace.prg
+ Included: all text files defined per <Setup><Fonts><Text file extensions>
for "Find in Files" to be searched along other pre defined file types.
This is also valid for files included in projects per -3rd= option.
First commit in year 2011 - Wish all Harbourians a Rewarding New Year.
* src/rtl/hbsocket.c
! hb_socketSetReuseAddr() changed on win platforms to use
SO_EXCLUSIVEADDRUSE instead of SO_REUSEADDR. See http://paste.lisp.org/display/59751.
Rough patch, maybe the logic isn't applied to the right place,
maybe extra win version checks are required, please test it
and patch it further if needed.
* src/rtl/hbinet.c
* s_inetBind() changed back to call hb_socketSetReuseAddr() also
on win platforms.
* contrib/hbwin/tests/testole.prg
+ Added shortcut creation example.
* contrib/hbide/idemisc.prg
! Fixed HBIDE_PATHNORMALIZED() to _never_ lowercase passed
filename. As discussed very long time ago, such behavior
is not portable. For comparison purposes HB_FILEMATCH()
should be used, for other purposes _no_ change should be
done by hbide in filename casing. Ever.
This is brute force fix only applied to low-level code.
It will cause regressions on the higher level, which have
to be fixed.
; TODO: Delete this second parameter from all calls, now
the value is ignored.
; TOFIX: Review all
HBIDE_PATHNORMALIZED() and
HBIDE_PATHNORMALIZED( p, .T. )
calls if they are used in comparison context and change
caller code to use HB_FILEMATCH().
; TOFIX: All current code which uses LOWER()/UPPER() to
"normalize" filename before comparison with '=='
operator should also be changed to HB_FILEMATCH().
(except for cases where extension is used in the
sense of file type).
; TOFIX: Rest of cases where LOWER()/UPPER() is applied to
filenames.
! Fixed HBIDE_PATHFILE() to never uppercase drive letter.
It's not strictly required since all so far known systems
supporting drive letter are case insensitive, but it's
nevertheless not the job of hbide to reformat pathnames.
* contrib/hbide/ideactions.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
! Fixed some code to use HB_FILEMATCH() instead of unconditional
uppercasing/lowercasing. Please review and finish this modification,
there might be more hidden places and might have overlooked anything
in this patch.
* contrib/hbqt/qtcore/hbqt.h
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
+ contrib/hbqt/qtcore/hbqt_registersignals.cpp
* contrib/hbqt/qtcore/hbqtcore.hbc
* contrib/hbqt/qtcore/hbqtcore.hbm
* contrib/hbqt/qtcore/hbqtcore.hbx
* contrib/hbqt/qtgui/g/QApplication.cpp
+ contrib/hbqt/qtgui/hbqt_registersignals.cpp
* contrib/hbqt/qtgui/hbqtgui.hbm
* contrib/hbqt/qtgui/hbqtgui.hbx
+ contrib/hbqt/qtnetwork/hbqt_registersignals.cpp
* contrib/hbqt/qtnetwork/hbqtnetwork.hbm
* contrib/hbqt/qtnetwork/hbqtnetwork.hbx
+ Implemented: module specific signal/slots mechanism.
Now each module contains its own signals. The basic
patch was forwarded by Viktor, cheer him.
* contrib/hbide/idemain.prg
+ Added: REQUEST __HBQT_REGISTERCORECALLBACKS
REQUEST __HBQT_REGISTERGUICALLBACKS
REQUEST __HBQT_REGISTERNETWORKCALLBACKS
I know this is a hack and can be removed once this new protocol
is fine tuned, so, so long.
* contrib/hbide/projectpropertiesex.ui
% Rearranged: tab names in accordance with new Project Management.
* contrib/hbide/hbide.hbp
! Loaded in hbIDE, added hbide.ch, and saved.
* contrib/hbide/idemain.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
+ Implemented: in-demand-since-begining feature to contain
anciallary files within the project tree but still keeping
compatibility with hbMK2. Also to have single project
file with all its contents intact, for GUI and command line
interface.
It is how it is achieved: a .hbp is loaded in HBP tab "as is"
except stripping the header part which is readded when the
project is saved. The header part is comprised of :
#
# $Id$
#
-3rd=hbide_* contents.
Rest whole of the on-disk contents of .hbp are made available
for editing. When a source is added via Add button, it is checked
if it is a compilable source. If not then "-3rd=file=" + filename
is added at the bottom.
Compilable sources are recognized by extention:
".c,.cpp,.prg,.hbs,.rc,.res,.hbm,.hbc,.qrc,.ui"
If any is missing, please shout.
TODO: user defined list of extentions for this purpose.
The project tree is now more organized and is listed sorted
on extention and filename. User can easily locate the source
of interest and click to bring it into the editor.
Please test extensively, I might have left new bugs for sure.
* contrib/hbide/idehome.prg
! Corrected: paths to be shown in original case in "Stats" tab.
It fixes the wrong representation of paths in *nix systems.
* contrib/hbqt/qtgui/hbqtgui.ch
+ Added: more constants.
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.h
% Reverted: back to signals previous protocol until new is mature enough.
* contrib/hbqt/qtcore/hbqtcore.hbx
* contrib/hbqt/qtgui/hbqtgui.hbx
* contrib/hbqt/qtnetwork/hbqtnetwork.hbx
* contrib/hbqt/qtuitools/hbqtuitools.hbx
* Re-generated.
* contrib/hbqt/qt*/g/*.prg
* Re-generated after effected changes in hbqtgen.prg.
* contrib/hbqt/qtgui/qth/QMainWindow.qth
! More children detached.
* contrib/hbide/idedocks.prg
! A small fix.
* contrib/hbide/ideprojmanager.prg
! Fixed: Launching a project from main-menu was generating a RTE
when there was no project defined, repoted by Frank.
* contrib/hbide/idemisc.prg
+ Applied: patch from Viktor. Now .hbm files are available inside
list of project files and it also become part of the .hbp if that
is written back on disk plus for editing purposes.
* contrib/hbide/idebrowse.prg
% Changed: one signal to new format.
* contrib/hbide/idemain.prg
% Changed: instance variables to local ones.
* contrib/hbxbp/hbpprocess.prg
% Changed: one signal to new format.
* contrib/hbxbp/xbpbrowse.prg
% Changed: one signal to new format.
* contrib/hbxbp/xbpspinbutton.prg
! Destroy() was misbehaving.
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.h
+ Implemented: Francesco's signal/slot mechanism over older one.
It is a big leap forward, please cheer Francesco Perillo.
TODO: changing signal definitions to exactly that of Qt itself.
It is a challenging job and needs a real concentration.
* contrib/hbxbp/hbxbp.hbc
* contrib/hbide/hbide.hbp
* Moved inclusion of hbqtuitools from hbxbp to hbide.
Dynamic QUiLoader shall only be needed if app explicitly
requires loading .ui/.uic files dynamically.
; TOFIX: Separate dynamic ui loader code from static one
(pbly HbQtUi class needs to be split into two
parts)
* contrib/hbide/idemain.prg
+ Reenabled puller code, because external scripts may need it.
* contrib/hbide/idemain.prg
% Do not link all HBXBP classes. It's not required now that .ui
files are compiled to .prg at build time.
This will make hbide slightly smaller.
* contrib/hbide/idemain.prg
% Do not link all GUI classes. It's not required now that .ui
files are compiled to .prg at build time.
This will make hbide slightly smaller.
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* Renamed QT license file (now shows "LGPL").
+ Added uic.exe and rcc.exe to Windows unified build.
+ Added QT implibs for mingw compiler.
; It means that now default Windows unified package can
be used to create QT apps without installing QT package
separately. Please someone verify this is in compliance
with LGPL QT license.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
- Removed support for compatibility setting HB_QT_MOC_BIN.
+ Will now autodetect uic/rcc/moc if present next to hbmk2
(only on win/os2 systems). This will be the case when
using unified Windows package. Only lightly tested.
* contrib/hbide/idemisc.prg
* contrib/hbide/idemain.prg
* contrib/hbide/hbide.ch
* Cleaned/optimized loading of UI.
- Deleted reference to HbQtUi() so that the static lib
QtUiTools is not required to build hbide. (it was not
actively used anyway)
; TOFIX: QUiLoader class should be moved to a separated lib
from hbqtgui.
* contrib/hbqt/qtcore/hbqt_pointer.cpp
* contrib/hbqt/qtcore/hbqt_hbqslots.cpp
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
* contrib/hbqt/qtcore/hbqt_misc.prg
* contrib/hbqt/utils/hbqtgen.prg
* Renamed HBQT_PTR() -> __HBQT_PTR().
(HBQT_PTR() still present and can be renamed once sources were regenerated)
* Renamed QT_[SLOTS|EVENTS]_*() -> __HBQT_[SLOTS|EVENTS]_*()
This also fixes the problem where these were missing from .hbx file.
* Renamed HBQT_ERROR() -> __HBQT_ERROR().
+ Added NOTE about contradiction where :hasValidPointer() will never
return .T. for valid objects created with <class>FromPointer() call.
Another reason to drop this object instantiation method.
+ Added more TODO/NOTE/TOFIX text.
* contrib/hbqt/qtcore/hbqtcore.hbx
* contrib/hbqt/qtnetwork/hbqtnetwork.hbx
* Refreshed.
* contrib/hbqt/tests/dialogqt.prg
* contrib/hbide/plugins/hbide_script_qtgui.hbs
* QT_[SLOTS|EVENTS]_*() -> __HBQT_[SLOTS|EVENTS]_*()
; QUESTION: Should these examples changed to use :connect()/:disconnect()?