* contrib/hbqt/generator/qt45.qtp
+ contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QPlainTextEdit.qth
* contrib/hbqt/qtgui/filelist.mk
* contrib/hbqt/qtgui/QApplication.cpp
* contrib/hbqt/qtgui/QPlainTextEdit.cpp
+ contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
+ contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/filelist.mk
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_garbage.h
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
+ Added HBQPlainTextEdit() class which implements some constructs
which were not possible in pure prg code. The underlying code has
been borrowed from TextEdit.c of QWriter - a work of
Gancov Kostya <kossne@mail.ru>, a big thank you. The code has been
extensively formatted and changed to adopt to Harbour standards.
The direct benefits by adopting this class are:
:
* Current line highlighting is absolutely ok now.
* Line numbers display is extremely fast and optimized.
* Book-marks are shown at the left of line-numbers.
* Parenthesis matching is absolutely delightful.
* To Upper/Lower implementation is accurate spanning many lines.
* Stream commenting is made possible.
* Book-marks management is smooth.
In IDE book-marks are implemented in different way than
most IDE's offer. Here is the description:
* Click on "Toggle Mark" icon on the toolbar.
* A small dot will appear on the left of current line.
* Look at status-bar, a small colored pushbutton will appear.
* Navigate the document as usual.
* Click on the colored push button staying in statusbar.
* The editing cursor will stay at book-mark represented by
that colored button and current line will appear highlighted
with the same color as that of button.
* Navigate to another location and click again on "Toggle Mark" icon.
* A new dot and one more colored button will appear in the statusbar.
* You can create 6 book marks as such and all will have different colors.
* You can click on any of desired usage.
* To delete a book-mark click on the button then "Toggle Mark"
* One button at the right will disappear.
* All tabs will contain their own book-marks.
* And every split window will have its own.
* Navigating different tabs or split windows will rearrange the
buttons according to its own settings.
; QUESTION : Is it worth the effort to save book-marks settings for next session?
* contrib/hbtip/sendmail.prg
! Applied set of HB_SENDMAIL() patches sent by Francesco Perillo:
- nTimeOut defaults to 10 seconds
- check for actually receiving "250 " to EHLO and not waiting for timeout
- don't wait for timeout
- check for actually receiving "250 " to HELO and not waiting for timeout
[TOMERGE 2.0]
* contrib/hbwin/wapi_wingdi.c
+ Added TODO to WAPI_SELECTOBJECT() to implement reference counting
when assigning an GC collected object to another one (DC).
Any idea how to do this properly?
* contrib/hbwin/wapi_winuser.c
+ Added WAPI_GETSYSTEMMETRICS().
* contrib/hbwin/hbwin.ch
+ Added WIN_SM_* constants for WAPI_GETSYSTEMMETRICS()..
* contrib/hbwin/wapi_winuser.c
* contrib/hbwin/wapi_shellapi.c
- Deleted unnecessary Windows headers.
* contrib/hbwin/win_dlg.c
+ WAPI_PRINTDLGDC() now sets owner window for better
results (f.e. in GTWVT it will block clicking on
app window and newer style printer dialog will be presented)
* contrib/hbwin/win_prn1.c
* Minor.
* harbour/src/rtl/gtxwc/gtxwc.c
+ added support for independent CP setting for BOX and normal characters
* disabled Clipper VGA compatible memory buffer in GTXWC default
settings to keep information about character sets (box vs normal)
+ added support for HB_GTI_BOXCP
* src/rtl/memoedit.prg
! Fixed to not return edited memoedit buffer if :Saved
flag is false. This patch is meant to fix sf.net bug #2936334.
Again such a huge bug I wonder no one noticed it so far.
MEMOEDIT() is the remaining last dark corners of Harbour RTL
(maybe with AChoice()) which is not fully C5.x compatible,
and it's a heap of patches and hacks to give answer to
reported problems.
Eventually some concerned MEMOEDIT() user will have to rework
it like we did with GET/TBROWSE to give a proper fix to all
reported issues.
(F.e. in TEditor() there is a bug where chars are stuffed to
the wrong position if initially we position cursor after EOL.
Try by deleting text.txt in attached example.)
Please test, review, fixme, look also for regressions.
+ Added initial support for ME_PAST Xbase++ event. Please test,
I didn't make any testing against Xbase++.
* contrib/hbwin/wapi_wingdi.c
+ WAPI_SELECTOBJECT() got support for HBRUSH.
* contrib/hbwin/win_prn1.c
+ Added two TOFIX comments to serious security holes and potential
GPFs to bitmap handling functions. Enough to load a malformed or
corrupted .bmp file to exploit it.
Any takers for fixing them?
* contrib/hbide/idemisc.prg
* Two STATIC variables prefixed with 's_'
* harbour/contrib/hbct/video.c
! fixed compilation for compilers using 'char' as unsigned type
* harbour/contrib/hbmzip/hbmzip.c
! fixed to work with HB_FATTR
* harbour/contrib/hbnetio/netiocli.c
* pacified BCC warning
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
+ Implemented: Formatting - <Format Braces>
; These formatting actions are initiated from the fact that
code examples scattered on the net about Qt examples are
written in such a way that I was unable to grasp the contents.
I found it usual to include such functionality into hbIDE.
Hopefully it will be useful to all.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idesaveload.prg
+ Implemented: Formatting - <Replace Tabs with Spaces>
<Remove Trailing Spaces>
This can be achieved via Mainmenu <Edit><Format...> option.
! New: Find/Replace: Current selelcted text in "Find what:" control
in selected state.
% Changed: The way hbide.ini is loaded.
cHbideIni := hb_argv( 0 )
IF empty( cHbideIni )
IF file( "hbide.ini" )
cHbideIni := "hbide.ini"
ELSE
cHbideIni := hb_dirBase() + "hbide.ini"
ENDIF
ENDIF
oIde:cProjIni := cHbideIni
! Improved qTextDocument:isModified() handelling.
; TO CONSIDER: QPlainTextEdit() class by itself is not providing
enough methods to have finest of the editing experience.
So, it may be necessary to subclass it for extended features.
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/readme.txt
+ added new client side function:
NETIO_DECODE( [@]<cFullName>, [@<cServer>], [@<nPort>], [@<nTimeOut>], ;
[@<cPasswd>], [@<nCompressionLevel>], [@<nStrategy>] )
-> <lDecoded>
Decode connection parameters from <cFullName> and default settings.
Return .T. if <cFullName> contains any connection settings.
<cFullName> should not contain "net:" prefix.
* harbour/src/rtl/itemseri.c
+ added support for hash array flags and default value serialization
Warning: before this modification hash arrays were always restored
with binary sorting with default auto assign setting and
without any default value and resorted if necessary. Now
only non binary hash arrays are resorted what may cause
problems for hash arrays not using binary sorting serialized
by old code and restored by the current one. In such case
it's necessary to restore original flags manually using
hb_h*() functions to force resorting.
- removed my TODO note:
"extended hash format with default value and hash flags"
* INSTALL
+ Added new item to TROUBLESHOOTING section describing
common problem when native executables are forgotten to be
rebuilt, and causing error in cross-build.
This typically causes problems when compiler/pp/hbmk2 get
new feature.
* contrib/hbwin/win_tprn.prg
! Deleted trace msg left there by mistake.
* contrib/hbwin/hbwin.ch
+ Added WIN_*_QUALITY constants.
* config/global.mk
+ Displaying HB_BIN_COMPILE even if explicitly specified by user.
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
! More improved syntax highlighting, specially in quoted strings.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idethemes.prg
+ Ctrl+D - Duplicate Line.
! Improved current line highlighting.
But seems some more work is required.
! Tried to disable zooming in line numbers area but seems
Qt has it by default. In edit area zooming is now made available
via toolbar icons only.
* contrib/hbwin/wapi_wingdi.c
! Guarded for ! HB_OS_WIN_CE.
(mingwarm compiles it, but poccarm doesn't)
Maybe to focus on important things, we should drop
POCC support altogether?
* contrib/hbwin/win_tprn.prg
* WIN_DELETEDC() calls deleted. 'hDC := NIL' is enough.
* contrib/hbwin/Makefile
+ contrib/hbwin/wapi_alloc.c
* contrib/hbwin/win_prn1.c
+ Moved hbwapi_* low-level object handling functions to
separate WAPI source.
* WIN_DELETEDC() converted to compatibility stub, it
will no longer release the handle.
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
* contrib/hbwin/win_dll.c
% Deleted '#if defined( HB_OS_WIN )' guards.
(we can readd them for extra safety, but in this case
they should be readded consistently for all source files)
% Deleted '! defined( __RSXNT__ )' guards
RSXNT is not supported a dead compiler since long.
% Deleted '! defined( __CYGWIN__ )' guards.
It compiles with current Cygwin, if someone is interested
in older versions, pls send build results.
* contrib/hbwin/Makefile
+ contrib/hbwin/wapi_wingdi.c
+ Added experimental WAPI wrappers for Windows GDI printing
functions also found in win_prn1.c.
This is partially to avoid the legacy interface which
is a combination of WIN_* functions and Harbour class.
Which may seem to make thing more complicated at first,
but IME it provides a much cleaner interface, as you
only have to adapt to MSDN docs.
It's also a test bed for structure passing in WAPI
situations. I've used hashes as the best looking
solution, but even this has some things left to solve
(like handling string types and returning values).
Anyway it's a food for thought.
* contrib/hbwin/hbwin.ch
+ Added WIN_DMORIENT_* constants.
* contrib/hbwin/win_prn1.c
! Fixed to not accept raw pointers where HDC or HPEN is
expected. I've added this feature last year, without
making special mention of it in ChangeLog, so it was
a double-mistake.
* Minor cleanups (hb_retnl() vs hb_retni())
% Optimization in WIN_SETBKMODE().
* harbour/contrib/hbcairo/pdf.c
* harbour/contrib/hbcairo/png.c
* updated harbour level functions to be available, but return error
result, if it is not supported by some version of cairo library
* harbour/contrib/hbcairo/image.c
* comment typo
* contrib/hbwin/win_tprn.prg
* contrib/hbwin/win_prn1.c
+ WIN_CREATEFONT() extended with 10th parameter which makes
it possible to switch to raw height/width specification.
This is crucial for precise positioning using integer
parameters. Not very elegant parameter, but this class
and low-level interface is already extremely hacky so this
won't really make it any worse.
+ WIN_PRN():SetFont() extended with lManualSize option which
maps to above 10th parameter.
* contrib/hbwin/tests/testprn.prg
+ Added some text on the solution for overwritten underline
problem described in test program.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
+ Started : auto indentation and keyword capitalization.
; Please test and forward your suggessions.
* utils/hbmk2/hbmk2.prg
+ Allowing -hbdyn and -shared option together.
Absolutely not tested combination, so it may need further
development to make it usable.
! Fixed bad typo in .c stub enabler logic, which have
added .c stub also to libs/dynlibs when -main option
was used (plus some other rare cases)
! Fixed gcc linker option order in -hbdyn mode.
; Please test.
* harbour/contrib/hbwin/win_prn1.c
! fixed missing dmFields assignment - please test if this fix does
not change the behavior of printer dialog window when :AskProperties
is set to .T. - thanks to Chen for information
* harbour/src/pp/ppcore.c
* pacified BCC warning
* harbour/src/compiler/harbour.yyc
* harbour/src/compiler/harbour.yyh
* regenerated with patched bison to pacify BCC warnings
* harbour/include/hbwinuni.h
+ added HB_ITEMCOPYSTR() macro
* harbour/src/common/hbwince.c
* redirected Beep() to MessageBeep() - it does not allow to set
time and duration but should generate some default system voice
signal - please test the results with real devices using WinCE/
Win Mobile
TODO: New MinGW support LockFileEx() and UnlockFileEx() but they are
part of coredll6 library not coredll. I guess it's designed to
use with Windows Mobile 6.x. Add compile and link time support
for it.
TODO: Add link time support for MinGWCE and non ARM processors.
New MinGWCE supports x86 compatible Intel CPUs for pocket devices.
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbslots.cpp
! HB_TRUE/FALSE <=> true/false.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
! Updated to manage split windows properly.
Presently the behavior is as such:
Horizontal Split - Top row is columns are splitted
Vertical Split - More row is added at the bottom.
Delete Splitted Window - Focus is always shifted to
main edit window. i.e., parent of all.
Please comment.
* src/vm/extrap.c
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvgwin.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
+ Using HBTEXT() macro on 2nd parameter of GetProcAddress()
in _all_ cases. This can't hurt, but it's useful to never
forget it for WinCE targets/branches.
Recent change got also simplified after this.
Pls review me.
* src/common/hbwince.c
- Deleted definition of FreeResource(). It's noe used anywhere
in Harbour, and its declaration was also missing.
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_destruct.cpp
- Deleted no longer used macros: hbqt_ret_*().
+ Added TOFIX to hbqt_par_*() where essentially the GC
pointer type checking is completely worked around, which
makes it easy to create GPFs by passing wrong pointer
type to functions. Probably its unavoidable to introduce
parameter validation to HBQT wrappers. Such validation
could decide which types are accepted (f.e. objects and
parent objects, whether NULL is accepted or rejected).
If not accepted a proper RTE should be thrown instead
of letting the app GPF.
+ Added two TOFIXes where low-level parameter
retrieving function returns NULL.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idethemes.prg
! Updated to honor latest changes.
+ Added: ZoomIn, ZoomOut feature, currently via toolbar.
! Fixed: open dialog respecting last opened path.
! Fixed: to display codec in the statusbar at the startup.
! Fixed: context menu gpf'ing if no prompt is selected.
+ Prepared: to allow extended book-"Mark" feature.
+ Prepared: to handle extended syntax highlighting.
! More artifacts I must be missing.
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
* contrib/hbqt/qth/HBQTextBlockUserData.qth
* contrib/hbqt/qth/QAbstractItemModel.qth
* contrib/hbqt/qth/QSyntaxHighlighter.qth
* contrib/hbqt/qth/QTableView.qth
+ contrib/hbqt/qth/HBQTableView.qth
+ contrib/hbqt/qth/HBDbfModel.qth
+ contrib/hbqt/qth/HBQSyntaxHighLighter.qth
+ Separated parts to auto/static generation.
+ contrib/hbqt/qth/HBEvents.qth
+ contrib/hbqt/qth/HBSlots.qth
+ Prepared to bring Events/Slots management on OO level.
Stll not activated as I have some technical issues on
c++ level. Just a matter of time...
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/generator/qt45.qtp
+ This commit is generally towards separation of static/auto
generated parts of classes which has been hanging in for
manual updates to the structures indivisually if changes
were made effective overhaul.
* contrib/hbqt/qtcore/*
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtnetwork/*
* include/hbcompdf.h
* src/compiler/cmdcheck.c
* src/compiler/hbmain.c
* src/compiler/hbcomp.c
* src/compiler/hbopt.c
* src/compiler/hbusage.c
* src/compiler/hbgenerr.c
+ Added options to control error/warning output format/style
in Harbour, to make it possible to switch to formats which
are handled by popular IDEs, like Eclipse, Code::Blocks.
Currently these are supported:
-ge[0]: Clipper compatible (default)
-ge1: "IDE friendly". Mimics the one submitted by Lorenzo
for Eclipse.
The goal is to cover the most IDEs with the less options,
so please test them to reach this optimum.
* harbour/src/common/hbwince.c
- removed LocalLock()/LocalUnlock()/LocalHandle() function wrappers
for WinCE builds - we do not use these functions in current code
* harbour/contrib/xhb/xhw32prn.prg
- removed commented :AskProperties - it's already implemented in
WIN_PRN class
* harbour/include/hbapi.h
* harbour/src/common/hbver.c
+ added BOOL hb_iswin9x( void ) C function
* harbour/src/rtl/version.c
+ added HB_OSISWIN9X() PRG function
* harbour/src/rtl/gttone.c
% simplified the code using hb_iswin9x() function
TODO: Check if WinCE support WinNT file IO functions and if yes then
replace in src/rtl/filesys.c 'if( hb_iswinnt() )' with
'if( !hb_iswin9x() )'
* harbour/contrib/hbwin/win_tprn.prg
* harbour/contrib/hbwin/win_prn1.c
+ added ::AskProperties in WIN_PRN class
If it is assigned .t. prior to calling ::Create(), a DocumentProperties
dialog is displayed. By Budyanto Dj. borrowed from xHarbour.
NOTE: this modification does not contain win9x hack present in
xHarbour. Please make tests and update this code if necessary
* contrib/hbwin/win_prn1.c
* contrib/hbwin/hbwapi.h
+ Added public functions to return and retrieve HDC and HPEN
handles. This makes it possible to use these in 3rd party
code and other parts of hbwin lib. F.e. to create pure
wrappers for GDI functions.
+ win_prn1.c now uses hbwapi_ret_*() functions to return
HDC and HPEN handles.
* Renamed static GC related functions.
! WIN_SETPEN() fixed to retrieve pointer from _2nd_ param.
(it was 1st previously, pls review me)
! WIN_SETPEN() fixed to not allocate new GC pointer if
an existing GC pointer was passed as 2nd parameter.
(please review me)
* contrib/hbwin/mapi.c
* contrib/hbwin/wapi_commctrl.c
! Fixed to compile with Cygwin.
[TOMERGE 2.0]
* contrib/hbwin/win_prn1.c
- Deleted unnecessary winspool.h header.
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
- Deleted winspool.h header for LCC compiler.
We don't support LCC compiler in Harbour.
! Cleaned windows.h inclusion.
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* Formatting.
+ TOFIX added to use GC collected pointers.
* harbour/include/dbinfo.ch
* harbour/include/hbrdddbf.h
* harbour/src/rdd/dbf1.c
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* renamed DB_DBFLOCK_XHB64 => DB_DBFLOCK_HB64
* harbour/contrib/hbwin/win_tprn.prg
* updated some comments and formatting
* harbour/contrib/xhb/Makefile
+ harbour/contrib/xhb/xhw32prn.prg
+ added WIN32PRN class, it inherits from WIN_PRN class hiding some
differences between Harbour and xHarbour in paper size setting and
separated horizontal and vertical alignment setting
* contrib/hbwin/win_tprn.prg
! Using constant.
* Minor formatting/cleanup.
* contrib/hbhpdf/harupdf.c
! HPDF_Page_GetMiterLimit() fixed to return double instead of long.
As suggested by Saulius.
[TOMERGE 2.0]
* Formatting.
* contrib/hbwin/hbwin.ch
+ Added HB_WINFONT_* constants for WIN_ENUMFONTS() returned
array positions.
+ Now possible to disable legacy defintions by defining
HB_WIN_NO_LEGACY. This paves the way to include this file
in .c files.
* contrib/hbwin/win_prn1.c
! WIN_ENUMFONTS() fixed to return empty array (instead of NIL)
in error cases.
* contrib/hbwin/win_reg.prg
* contrib/hbwin/win_os.prg
* contrib/hbwin/win_tprn.prg
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/hbwin.h
* contrib/hbwin/hbwin.ch
* contrib/hbwin/tests/testprn.prg
* contrib/hbwin/tests/testcom1.prg
* contrib/hbwin/tests/testcom2.prg
* contrib/hbwin/tests/testreg.prg
* contrib/hbwin/tests/testmapi.prg
* contrib/hbwin/win_com.c
* contrib/hbwin/win_prn1.c
* MM_TO_INCH macro moved from hbwin.ch to win_tprn.prg.
(INCOMPATIBLE is someone happened to use this in app code)
+ Prefixed all Windows constants with WIN_ in hbwin.ch.
+ Prefixed all hbwin specific constants with HB_ in hbwin.ch.
+ Retained all old legacy / deprecated hbwin.ch constants
for compatibility. Users are encourages to use the new
ones, as the old ones will be deleted in the future.
* Changed WIN_MULDIV() to use hb_retni() (instead of hb_retnl())
* WIN_MULDIV() renamed to WAPI_MULDIV() and moved
to wapi source. (INCOMPATIBLE, although it's unlikely anyone
is using WIN_MULDIV() so I didn't keep it.)
+ Added some additional printing related Windows constants.
+ Added comments to hbwin.ch saying which constant is used
in which WIN_*() function.
* HB_WIN_MAPI_* constants renamed to WIN_MAPI_*.
(I haven't dealt with compatibility as this is brand new
functions with not much users yet)
+ Marked all hbwin.ch deprecated macros with HB_LEGACY_LEVEL3
! Fixed to use hbwin.ch constants in few remaining places in testprn.prg
; Now it's possible to include hbwin.ch in .c files.
; QUESTION: Why RGB_* color constants aren't using pure colors?
If there is no special reason, I think it should be
changed to pure ones (with 0xFF components).
* src/compiler/hbgenerr.c
* Formatting.