* contrib/hbqt/qth/QApplication.qth
* Minor optimizations.
% One static var deleted.
; TOFIX/TOCHECK: argv/argc usage.
* contrib/hbqt/qtgui/QApplication.cpp
* contrib/hbqt/hbqt_garbage.h
* Regenerated.
* contrib/hbxbp/xbpgeneric.prg
- Deleted unused statics.
; TOFIX: HBQT has an irregularity which I couldn't find a
reason yet. It maintains a pointer to QApplication
in a static variable on C level, plus every HBQT
app maintains a copy of the QApp object in a .prg
level STATIC var. Both are inited using C/prg
level init/exit functions.
* INSTALL
+ Added OS/2 to QT supported platforms.
* harbour.spec
+ Merged lib and static subpackages into main one.
hbmk2 requires that both dynamic and static libs (namely hbcplr)
are present for successful linking.
Please test and comment, I can revert old version in
case of any problems.
* contrib/hbqt/filelist.mk
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbslots.cpp
- contrib/hbqt/hbqt_hbevents2.cpp
- contrib/hbqt/hbqt_hbslots2.cpp
* Merged new EVENTS/SLOTS implementation with old one,
removing all existing redundancies and fixing double
definition of low-level classes.
* contrib/hbqt/generator/hbqtgen.prg
! Fixed formatting for one generated headder.
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/qth/QApplication.qth
+ Moved HB_QT declaration to QApplication.
* contrib/hbqt/qtgui/QApplication.cpp
* Regenerated.
* contrib/hbqt/qtgui/QTextCursor.cpp
* contrib/hbqt/qtgui/TQTextCursor.prg
* contrib/hbqt/qtgui/QSyntaxHighlighter.cpp
* contrib/hbqt/qtgui/TQSyntaxHighlighter.prg
* Changed after regeneration.
(Someone pbly changed these files without .qth,
or run older generator, or didn't run generator
after modifying .qth)
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
! Fixed warning.
* Formatting.
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbqmainwindow.cpp
% GC callbacks made 'static'.
* contrib/hbqt/detect.mk
* contrib/hbxbp/Makefile
+ Enabled for OS/2.
* contrib/hbqt/hbqt_hbqmainwindow.cpp
- Deleted mutex handling. (was commented for while with no
problems reported)
* contrib/hbwin/Makefile
* contrib/hbwin/hbwin.h
* contrib/hbwin/hbwapi.h
+ contrib/hbwin/win_err.c
* contrib/hbwin/wapi_winbase.c
+ Added hbwin_SetLastError(), hbwin_GetLastError()
low-level functions to save/get GetLastError() values.
This is required to preserve win lasterror value on .prg
level. The reason we need this is because TlsGetValue()
(called internally by Harbour core) is overwriting this
value. Thanks to Xavi for research.
* contrib/hbwin/wapi_winbase_mutex.c
! Fixed to use hbwin_SetLastError().
; TODO: Call hbwin_SetLastError() after _all_ winapi
calls which modify lasterror value.
Until then, WAPI_GETLASTERROR() is broken.
* contrib/hbwin/hbwinole.h
+ Added self-guard.
/*
This commint is from Vailton Renato and applied as is
Please set me right if something is omitted.
Changes are written below as published on DL.
*/
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.env
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/resources/hb-16x16.png
+ contrib/hbide/resources/hb-32x32.png
+ contrib/hbide/resources/list-developers.png
+ contrib/hbide/resources/list-users.png
+ contrib/hbide/resources/new2.png
+ contrib/hbide/resources/project.png
+ contrib/hbide/resources/vr-16x16.png
! isValidText() some more valid extensions added
! editSource() message appears if the file open is not supported.
! loadIni()
Implemented support for RecentFiles & RECENTPROJECTS sections.
Optimized support for section names regardless of case used.
Enhanced with SWITCH instead of CASE.
Optimized initialization oide:Aini regardless of the amount
expected items in the INI file.
Implemented a basic validation to ignore invalid
sections in the INI file.
+ Added a few new icons for the menu of the application.
! FILE > recent files -> implementation done.
! FILE > recent projects -> implementation done.
! FILE > SAVE AND EXIT -> implementation done.
! FILE > OPEN -> supports opening multiple files
! FILE > REVERT -> implementation done.
+ findEditByFileName() - new method to Find an item in a
Edits[] based on the file name passed as argument.
+ findEditByID() - new method to Find an item in
aEdits[] based on the ID passed as argument.
+ HbIde:closeAllSources() -> implementation done.
! HbIde:closeSource() -> rewritten to support the closeAllSources() method
+ HbIde:closeAllOther() -> implementation done.
+ HbIde:saveSourceAs() -> implementation done.
+ HbIde:updateTitleBar() -> New method to updates the title bar of the
main window, indicating the project and the current filename.
+ HELP > About - implementation done.
+ HELP > Harbour on line - implementation done.
+ HELP > HB Users Mailing - implementation done.
+ HELP > HB Developers Mailing - implementation done.
+ EDIT menu items were attached to the existing options
in ::executeAction()
! IdeFindReplace:show() -> Detect if current edit has any selected text.
! hbide now displays the text "Untitled XX" on creating a new file.
NOTE: Something is not right because when I click the close
button to close the main window and he asks me if I want
to save the files and when I click CANCEL it has to abort
the process and not close the system as it is occurring.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idethemes.prg
+ contrib/hbide/resources/selectionlist.ui
* contrib/hbide/resources/themes.ui
! Changed the way .ppo is presented. Now a new modeless
window displays .ppo source and thus you have more control
over comaprison with original source. You can keep as many
such .ppo windows on the screen.
+ Implemented Editor Themes.
HBIDE provides 5 default themes, along the lines of xMate, viz.,
1. Classic
2. City Lights
3. Evening Glamour
4. Sand Storm
with a few changes, and
5. Pritpal's Favourite.
Themes interface provides for changing the existing themes
as well as constructing a new one based on any exiting themes.
Then user can save them in hbide.hbt file.
HBIDE always loads default 5 themes as above then,
HBIDE looks for hbide.hbt in the same folder where it is.
If it finds one, it attempts to load it. In the loading
process it will merge the duplicate themes, including the
default ones. It means, if you modify an existing default
theme and then save it in hbide.hbt, at next invocation
default theme will be overwritten and your changes are
reflected. But if the name of the theme is changed you have
yours plus default both themes available.
Default theme is "Pritpal's Favourite" which will be applied
to any source file opened. You can override it by applying
new theme to it. Right click on <Editors Tree><_any_source_file_>
and select "Apply Theme" and finally select from a list of
themes presented in a list box by double clicking onto one
of choice. Next time you open HBIDE thus souce will be
applied the last theme selected.
You can re-define various labels on the Themes Dialog including
drop-down list items of different parts of the sources.
Just examine hbide.hbt and change the values of dialog elements.
Differences from xMate implementation:
1. Theme can be applied to indivisual source separately.
2. Theme elements can have <Italic>, <Bold> and <Underline>
attributes.
3. Themes can be copied and re-defined for n numbers.
TODO: To apply themes per project.
To implement some missing parts of source, such as,
background color of selections, etc.
You are encouraged to test this implementation. I will be
more than happy to implement descent thoughts you can imagine.
* contrib/hbqt/tests/demoqt.prg
+ Changed to use new EVENTS/SLOTS layout.
These are currently two STATIC vars, may be better to
add :events / :slots to oWnd and keep them tied to windows,
or threads. It's difficult to find out from current usage.
; Please test.
* contrib/hbqt/filelist.mk
+ contrib/hbqt/hbqt_hbslots2.cpp
+ contrib/hbqt/hbqt_hbevents2.cpp
+ Added new implementation of slots and events.
This fixes potential leaks in old implementation by
moving HB_EVENTS, HB_SLOTS low level per-thread
structures to .prg level and adding proper GC destructors
to them.
To use the new interface in .prg level code, following changes
will have to be applied:
1. Adding new :events, :slots holder variables to .prg level.
2. Init these holder variables with QT_EVENTS_NEW() and QT_SLOTS_NEW().
3. Make these conversions:
QT_CONNECT_EVENT( ... ) -> QT_EVENTS_CONNECT( p, ... )
QT_DISCONNECT_EVENT( ... ) -> QT_EVENTS_DISCONNECT( p, ... )
QT_CONNECT_SIGNAL( ... ) -> QT_SLOTS_CONNECT( p, ... )
QT_DISCONNECT_SIGNAL( ... ) -> QT_SLOTS_DISCONNECT( p, ... )
QT_GETEVENTFILTER() -> QT_EVENTS_PTR( p ) (there is a TOFIX here for the future)
4. Delete these calls:
QT_EVENTS_DESTROY()
QT_SLOTS_DESTROY()
; Pritpal, can you please review this method?
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt.h
% Memory allocation internals made static.
* contrib/hbqt/tests/demoqt.prg
! Possible fix for leaks in this .prg code.
Added these two calls before exit:
QT_EVENTS_DESTROY()
QT_SLOTS_DESTROY()
* contrib/hbqt/filelist.mk
- contrib/hbqt/hbqt_events.h
+ contrib/hbqt/hbqt_hbevents.h
- contrib/hbqt/hbqt_events.cpp
+ contrib/hbqt/hbqt_hbevents.cpp
- contrib/hbqt/hbqt_slots.h
+ contrib/hbqt/hbqt_hbslots.h
- contrib/hbqt/hbqt_slots.cpp
+ contrib/hbqt/hbqt_hbslots.cpp
* Renamed Events class to HBEvents.
* Renamed Slots class to HBSlots.
* src/vm/fm.c
% Deleted unnecessary guard added in prev commit.
* src/vm/fm.c
+ Overriding some additional C++ memory allocation operators
to cover the full set required by QT, according to this document:
http://doc.trolltech.com/4.5/qt-performance.html#alternative-memory-allocation
; Please report if it causes problem in other areas, also
retest HBQT memory allocation after change.
* src/vm/fm.c
! Fixed to not display "Warning, memory allocated but not released"
message for non-fmstat builds.
! Fixed to display "Memory allocated but not released: none" message
(without 'warning' sign) when built with fmstat and there was no
unrelease blocks.
* /src/vm/fm.c
* Not adequate defitions of the subsequent CRT functions for the MinGW implemetations:
#ifndef USE_DL_PREFIX
#define dlcalloc calloc
#define dlfree free
#define dlmalloc malloc
...
#endif /* USE_DL_PREFIX */
The malloc/free CRT functions should'nt be redefined in this way.
* The mesage: "Warning, memory allocated but not released..." is sent on request (//INFO cmdarg).
* contrib/hbqt/hbqt.h
+ Will now fail with forced compiler error if used with
QT libs older than 4.5.0.
* package/winuni/mpkg_win_uni_extra_copy.bat
* Formatting.
* config/global.mk
% Applied optimization sent by Tamas Tevesz.
% Applied little further optimization.
* One variable renamed.
- Deleted checking for MAKE_381 when using 3.81 features.
Now 3.81 is the minimum required so there is no point.
* contrib/hbide/hbide.prg
! Don't add binary extensions to target names.
It will be added by hbmk2 automatically and properly
according to target platform/compiler.
! Don't add .exe extension to hbmk2 executable name.
* harbour.spec
! Modified this line:
%define hb_lflag export HB_USER_LDFLAGS="${CC_HB_USER_LDFLAGS} %{?_with_static:-static}"
to this:
%define hb_lflag export HB_USER_LDFLAGS=
_with_static is later converted to HB_BUILD_SHARED setting which is right.
* Formatting.
* config/global.mk
% Applied little optimization from Tamas Tevesz.
* contrib/hbide/idemisc.prg
+ hbide_PathProc()
This function can combine relative paths together so it's
the key to avoid macros dealing with placing paths to their
intended location. It can replace current method of
<IdeSrc> = hb_dirBase(). F.e.:
hbide_PathProc( "src/mysource_in_project.prg", "projects_dir/" ) ->
"projects_dir/src/mysource_in_project.prg"
hbide_PathProc( "projects/myproject.hbi", hb_dirBase() ) ->
"C:/harbour/contrib/hbide/projects/myproject.hbi"
Please use it.
; TOFIX: Since hbide seems to intend to support a hbrun-like
command prompt, maybe it's a good idea to prefix all
public functions with hbide_, otherwise there will
be problems when name collision occurs with user code.
If this is not the goal, we can leave it.
* INSTALL
* Clean Linux .rpm section, added full install commands just
like for Ubuntu, added qt45-devel, added more description.
(not tested, I don't have .rpm based distro)
* config/global.mk
! Fixed debian package manager detection, as suggest by
Tamas Tevesz.
* config/global.mk
+ Added rudamentary package manager detection (so far for
darwin and linux). Please extend. This will allow to make
proper dependency checking in detect.mk.
* mpkg_rpm.sh
* Sorted '-with' checks.
+ Added freeimage and cairo enabler logic (none tested)
* INSTALL
- Deleted gtk2-devel from instructions.
+ Added freeimage-devel and cairo-devel to rpm pkg list.
(none tested)
* contrib/hbide/projects/hbide.hbi
! Deleted .exe extension from output name for portability.
! Fixed -workdir option to also have ${hb_plat} macro for portability.
; Pls remember that hbide is meant to be a portable tool.
; TOFIX: Delete -workdir option altogether. Not needed.
; TOFIX: Hard-wired dir C:\qt\2009.01\qt\lib should be stored in
SVN.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
+ contrib/hbide/idethemes.prg
* contrib/hbide/resources/themes.ui
+ Added class to save/load themes, a work-in-progress.
You can just play with user interface. More to come soon.
* harbour/contrib/rddads/ads1.c
! fixed softseek seeklast behavior in case seek positions at EOF
* added additional ADS function return value check in seek operation
* harbour/include/hbextcdp.ch
* harbour/include/hbextlng.ch
* harbour/src/lang/Makefile
- harbour/src/lang/msghr437.c
+ harbour/src/lang/msghr646.c
- harbour/src/codepage/cphr437.c
+ harbour/src/codepage/cphr646.c
* renamed HR437 CP and LANG modules to HR646 (CROSCII / ISO-646-YU)
* harbour/include/hbextcdp.ch
* harbour/include/hbextlng.ch
* harbour/src/codepage/Makefile
- harbour/src/lang/msgsl437.c
+ harbour/src/lang/msgsl646.c
- harbour/src/codepage/cpsl437.c
+ harbour/src/codepage/cpsl646.c
* renamed CL437 CP and LANG modules to CL646 (SLOSCII / ISO-646-YU)
* harbour/src/lang/msghriso.c
! fixed language ID
+ harbour/src/codepage/cphr646.c
* harbour/src/codepage/cphr852.c
* harbour/src/codepage/cphrwin.c
+ harbour/src/codepage/cpsl646.c
* harbour/src/codepage/cpsliso.c
* harbour/src/codepage/cpslwin.c
* harbour/src/codepage/cpsl852.c
! changed the collation order so X and Y characters are sorted before Z
It's CL5.2 ntxcro.obj compatible behavior. Now HR646 and SL646 Harbour
CPs can be used to share data with Clipper application linked with
ntxcro.obj.
* harbour/include/hbextcdp.ch
* harbour/src/codepage/Makefile
+ harbour/src/codepage/cphriso.c
+ added HRISO (ISO-8859-2) Harbour CP module
Please test all these modifications.
[TOMERGE 2.0]
* harbour/src/nortl/nortl.c
! added hb_xtraced()
* harbour/src/common/hbstr.c
* do not fill unused part of buffer with '\0' bytes in
hb_strncpy(), hb_strncpyLower(), hb_strncpyUpper(),
hb_strncpyUpperTrim(), hb_strncpyTrim()
* harbour/src/common/hbtrace.c
% small optimization in building Unicode OutputDebugString() message
* harbour/src/codepage/Makefile
* harbour/include/hbapicdp.h
+ harbour/src/codepage/ucyuscii.c
+ added YUSCII unicode table
* harbour/src/codepage/cphr437.c
* harbour/src/codepage/cpsl437.c
! fixed unicode table used in HR437 and SL437 Harbour CPs.
It's not CP-437 but YUSCII
- removed my old note "TOFIX: is it really CP-437?"
TOFIX: change Harbour names of above CPs, i.e. to HRYU and SLYU
* harbour/src/codepage/uckam.c
* removed TOFIX note I forgot to remove when committed correct
Kamenicky Unicode table.
* harbour/src/codepage/uckoi8.c
* harbour/src/codepage/uc857.c
* harbour/src/codepage/uc1250.c
* harbour/src/codepage/uc1254.c
* harbour/src/codepage/uc866.c
* harbour/src/codepage/uc850.c
* harbour/src/codepage/uc1251.c
* harbour/src/codepage/ucmaz.c
* harbour/src/codepage/uc1252.c
* harbour/src/codepage/uc8859_1.c
* harbour/src/codepage/uc88591b.c
* harbour/src/codepage/uc852.c
* harbour/src/codepage/uc737.c
* harbour/src/codepage/uc1253.c
* harbour/src/codepage/uc1257.c
* harbour/src/codepage/uc8859_2.c
* updated some of my old copyright messages
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idestylesheets.prg
+ Applied the patch submitted by Vailton Renato with some omissions, thanks.
1. I do like xMate's build* icons and "gotoline" icon
which depics the meaning of action properly, just update them to
have more colors.
2. Toolbar must not be clutted with so many options.
For this purpose we have menus.
* contrib/hbide/resources/*.png
! Some new and some refined imaged from Vailton.
* contrib/hbxbp/xbpmenubar.prg
! Removed default style-sheet application which has to be
done at .prg level with oXbp:setStyleSheet().
* contrib/hbxbp/xbptoolbar.prg
! Fix to adjust toolbar button size with :imageHeight and :imageWidth.
* harbour/include/hbapi.h
* harbour/src/common/hbprintf.c
+ added new function 'int hb_printf_params( const char * format )' which
returns number of parameters necessary for format string
* harbour/src/common/hbtrace.c
* added protection against recursive calls when number of parameters
used by HB_TRACE message us bigger then 16 and fm.c module was compiled
with HB_TR_DEBUG macro
% use the same number of characters for unicode and byte string buffers
% use common memory area (union) for unicode and byte messages to reduce
C stack usage
Please test these modifications in real MS-Windows systems.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idemisc.prg
+ Applied Vailton's patch. It sets the menu's in right perspective.
Actions will follow shortly.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
+ contrib/hbide/idesaveload.prg
+ Added new file separating the code for loading configuration.
Another round of reforms, more follows.