* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
! Done: pairing of #ifdef|#if - #endif.
With this commit pair highlighting is complete until someone
points to which escaped my knowledge.
* contrib/hbide/console.prg
! Fixed: at some unknown states Console UI Designer was GPFing.
This seems to be the two event loops clashing somewhere.
Jope it should behave properly now.
* contrib/hbxbp/window.prg
* Activated: QEvent_Resize signal be manipulated per Xbase++ docs.
* contrib/hbxbp/dialog.prg
! Fixed: the way a XbpDialog() was assigned :drawingArea()
(a.k.a. centralWidget()) via a .ui file.
+ contrib/hbide/resources/dictionary.png
+ contrib/hbide/resources/launch_r.png
* contrib/hbide/hbide.qrc
* contrib/hbide/actions.prg
* contrib/hbide/functions.prg
* contrib/hbide/main.prg
+ Implemented: creation of .tag file usable as a dictionary.
The activation is :
<Project Tree><Projact Name><Right-Click><Create .tag Dictionary>
Dictionary will be created in same folder where .hbp resides
having same name with extention .tag. Thus created tags are not
populated in the existing list of tags.
* contrib/hbide/docks.prg
* Changed: placement of Selected-text toolbar in stream-selection-mode
to position itself on one line above the current selected row if
selection is performed bottom-up. For bottom-down process, position
is at one line below the current row.
* contrib/hbide/hbide.qrc
+ contrib/hbide/resources/stringify.png
* contrib/hbide/docks.prg
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
+ Implementd: Stringify a selection.
The activation is via "Stringify" icon ( added new ) next to
"Double to Single Quotes" icon on editing-instance top toolbar
or Selected-text toolbar.
The behavior:
Column-selection Mode :
Simply Superb
Anyway Excellent
Left Blanks
Starts Here and Ends Longer
=>
"Simply Superb"
"Anyway Excellent"
" Left Blanks"
"Starts Here and Ends Longer"
Stream-selection Mode:
Multi-line - No quotes
Single-line|word - no trimming at the right.
This is a Long text and a part will be Selected.
^^^^^ - Selection
>
This is a "Long "text and a part will be Selected.
* contrib/hbide/dict.prg
* contrib/hbide/functions.prg
* contrib/hbide/saveload.prg
+ Added: to load HbIDE created {project_name}.tag files
for "Dictionaries" implementation.The options earlier were
.hbx, .dic, .txt. It will save you a lot of time to create
disctionaries manually.
* contrib/hbqt/qtgui/hbqt_init.cpp
! Fixed: QTableWidgetItem => QTableWidgetItem*
Was breaking QTableWidget() signals which used QTableWidgetItem* argument.
* contrib/hbide/main.prg
% Changed: the theme for the code fregment editors.
! Fixed: a small glich where only first window-full of source
was being highlighted.
* contrib/hbide/editor.prg
* contrib/hbide/main.prg
+ Implemented: display of code fragment of an identifier
in a separate window. This small display editor is powered
with syntax highliting, opens new window 10/20 pixels away
in x/y coordinates with same window size of the last opened.
There is no limit to the open windows. These windows have
Qt_Sheet attribute set, so will always remain floated
on top of the main window.
To activate:
1. Bring into display <Functions List> docking window.
2. Right-click on the identifier the display is sought.
3. From the context menu, select <Show Code Fragment>.
4. Adjust the position and size of the window.
5. Next window will open 10/20 pixels away from this window.
This is a productivity tool. At times we need reference from
other functions and switch forth and back in the editing instances.
With this feature you can keep frequently referenced identifier,
i.e., function/method/class/procedure within viweing without
leaving the current editing instance.
* harbour/src/rtl/fstemp.c
! added yet another protection against buffer overflow
% eliminated redundant code
* harbour/include/hbvmpub.h
* harbour/include/hberrors.h
* harbour/src/compiler/hbgenerr.c
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/genc.c
+ added new warning message:
STATIC Function '????' defined but never used
It's enabled by -w2 and higher.
The idea was inspired by recent modification in xHarbour but
implementation is completely different. BTW I cannot even make
this warning working in xHarbour.
* harbour/src/rtl/cdpdet.prg
! disabled static functions which are unused in different builds
* harbour/src/debug/debugger.prg
! removed unused function StripUntil()
* harbour/utils/hbmk2/hbmk2.prg
! compile hbmk_COMP_Setup() and FindInSamePath() static functions
only for platforms were they are used
! commented out unused static functions: ArrayJoinNoClone(),
AAddNewAtTop(), DepTreeToList()
! commented out unused static functions:
rtlnk_libtrans(), rtlnk_filetrans()
Looks that this functionality is not longer supported.
TOFIX: re-enable it or remove this code and document that automatic
translation for libraries and files defined in Clipper .lank
files is not longer supported~.
* harbour/src/rdd/usrrdd/rdds/arrayrdd.prg
* harbour/contrib/hbtip/cgi.prg
* harbour/contrib/hbide/hbqreportsmanager.prg
* harbour/contrib/hbide/actions.prg
* harbour/contrib/hbide/console.prg
* harbour/contrib/hbide/themes.prg
* harbour/contrib/hbide/editor.prg
* harbour/contrib/hbxbp/browse.prg
* harbour/contrib/hbmysql/tmysql.prg
* harbour/contrib/hbsms/sms.prg
* harbour/contrib/xhb/hterrsys.prg
! commented out unused static functions - please review the code
; Warning: I tested only Linux builds. Please check other builds and
disable unused static functions in the rest of code.
* harbour/src/rtl/fstemp.c
! added protection against possible buffer overflow
* enable mkstemps() for GLIBC 2.12 and higher
* harbour/src/compiler/harbour.y
! added missing ';' at the end of C code - newer bisons
do not add them automatically
* contrib/hbxbp/listbox.prg
+ Extended: method :addItem( cText, qImage ) in XbpListBox() class.
This is Harbour extension, Xbase++ does not accepts <qImage>.
+ contrib/hbide/resources/dc_class.png
+ contrib/hbide/resources/dc_method.png
+ contrib/hbide/resources/dc_procedure.png
* contrib/hbide/docks.prg
* contrib/hbide/editor.prg
* contrib/hbide/hbide.qrc
* contrib/hbide/main.prg
* contrib/hbide/misc.prg
* contrib/hbide/tags.prg
+ Added: icons to represent the type of identifier in <Functions List>.
The following four types are considered:
1. Class 2. Method 3. Procedure 4. Function
STATIC FUNCTION/PROCEDURE is considered normal FUNCTION/PROCEDURE.
* contrib/hbide/docks.prg
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
* contrib/hbide/hbide.qrc
+ contrib/hbide/resources/align_at.png
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
+ Implemented: aligning a selected-text fragment (column-selection mode)
to a contained string. The activation is selected-text toolbar icon
<Align At...>. This activation presents a input dialog to provide
string to align-at. The following illustration will make it clear:
abc := 212
bcdefg := 323
a := 413
xyzab := 33
=>
Select above lines with column-selection mode
Clock on <Align At...> icon
Type ":=" in the input dialog
=>
abc := 212
bcdefg := 323
a := 413
xyzab := 33
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
+ Pair-matching of DO CASE/ENDCASE and DO WHILE/ENDDO.
* contrib/hbide/docks.prg
* contrib/hbide/hbqtoolbar.prg
* contrib/hbide/saveload.prg
* contrib/hbide/setup.ui
+ Implemented: <Setup><HbIDE Setup><General><Show Selection Toolbar>.
This toggle the selected-text toolbar to appear as soon as
selection process starts.
+ Enhanced: Selected-text toolbar orientation for column-selection mode.
It is now verutical and is positioned 30 pixels to the right of
selected rectangle. Also toolbar never leaves the top and bottom
edges of editing-instance's viewport.
* contrib/hbide/docks.prg
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
! Refined: selected-text's in-line toolbar; its positioning and
the actions which bring it up and hide. Now toolbar has title-bar
and X button, and is positioned in the center of the
editing-instance horizintally. Vertical it follows the cursor
position but one line down.
* contrib/hbide/docks.prg
* contrib/hbide/edit.prg
* contrib/hbide/main.prg
+ Implemented: in-place toolbar of actions belonging to selected text.
The moment selection of text is initiatiated, either via keyboard
or mouse, a highlighted toolbar will follow the current cursor
position containing actions pertaining to selected text. The toolbar
will hide itself as soon as selection process is over. This seems
to be natural as such but opinions are welcome. Also I foresee
some other attributes which can be implemented on this protocol,
which may follow in next commits.
* harbour/contrib/make.hb
* enable concurrent compilation of contrib projects when -j<n>
GNU make switch is used. It reduced compilation time of clean
Harbour SVN tree in my system from 5m:16s to 2m:30s
Please review me. I do not know if chose good place to enable it.
* harbour/src/3rd/tiff/LICENSE
! fixed EOLs and set svn:eol-style to native
* harbour/src/3rd/tiff/tiff.dif
* rediffed with
hbmk2 ../../../bin/3rdpatch.hb -rediff
* harbour/include/hbapicls.h
* harbour/src/vm/classes.c
+ added new C function:
PHB_ITEM hb_objGetVarPtr( PHB_ITEM pObject, PHB_DYNS pVarMsg );
it returns pointer to object instance variable
* harbour/src/rtl/tclass.prg
* cleand parameter name
* harbour/contrib/hbmisc/spd.c
* removed unnecessary comment for older version which didn't use
hb_snprintf()
* formatting
* harbour/contrib/hbmxml/3rd/minixml/config.h
% use hb_snprintf() and hb_vsnprintf() instead of local emulation
based on CRTL sprintf()
* harbour/include/hbdefs.h
+ added HB_PF64 definition - it's printf format for HB_[UI]64 type
* harbour/src/3rd/tiff/print.c
* harbour/src/3rd/tiff/tiffconf.h
! use HB_PF64 instead of PFLL
* harbour/src/3rd/tiff/tiffconf.h
+ added TIFF_FILE_HANDLE definition
* harbour/src/3rd/tiff/tiffio.h
! use TIFF_FILE_HANDLE
* harbour/src/3rd/tiff/dirread.c
! fixed typo in TIFF_UINT32_MAX definition
* harbour/src/3rd/tiff/Makefile
! enabled fcntl.h in *unix builds
* harbour/src/3rd/tiff/tiff.dif
* updated
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
* Optimizations: pair-matching of Harbour control structures
shifted to C++ level and made in-line, no need to click
on the keywords. Pairs are highlighted while navigaing the
source. This is spontaneous.
! Tab key to behave differently while in column-selection mode.
Before tab spaces were inserted at the last column selected,
now it is first column selected, which is the normal behavor.
% While in selection mode, pair-matching is disabled, giving
us speed advantage.
- Removed: PRG block call on QEvent_MouseButtonPress.
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
! Refined: the way bookmarks were published. Now line-area's
background is painted with the same color that of bookmark
line, instead of inreasing the width of line-area and painting
a rectangle at the left side. This had two unwanted effects:
1. A flicker of entire editing area,
2. Selection of text by mouse was leaving a weired trail sometimes.
* contrib/hbide/dict.prg
* contrib/hbide/edit.prg
* contrib/hbide/themes.prg
+ Implemented: The concept of <User-Dictionaries> for sake of
syntax highlighting and case conversion while editing a
source. User has the ability to pull keywords from :
a. standard text file (.txt),
b. Harbour's symbol collection mechanism knows
as .hbx files,
c. a text file with the extension .dic (xMate),
d. or any other type of text file ( be careful ).
Dictionaries can be kept activated/deactivated.
The following attributes can be assigned to the keywords:
1. Bold
2. Italic
3. Underlined
4. Text Color
5. Back Color
6. Case Sensitivity : from coloring point of view
Keywords can be attributed to be converted to:
1. As is typed by the user
2. Upper-cased
3. Lower-cased
4. As published in the dictionary.
All changes in the dictionary management are reflective
in next run of HbIDE. The changes cannot be made effective inline.
; This commit completes a long-standing and much requested feature.
* contrib/hbide/actions.prg
- Removed: some options which cannot be implemented, at least
from here.
* contrib/hbide/dict.prg
* contrib/hbide/saveload.prg
* contrib/hbide/setup.ui
* contrib/hbide/themes.prg
+ Advanced: User-Dictionaries.
* contrib/hbide/dict.prg
+ Added: line number to the Book-Mark button's tooltip.
* contrib/hbide/edit.prg
* contrib/hbide/saveload.prg
+ Advanced: the user-interface elements needed to implement
User-Dictionaries, still a work-in-progress.
* contrib/hbide/docks.prg
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
+ Implemented: tooltip on BookMark Buttons.
The tooltip content will be the source line over which
visited bookmark is installed. With many bookmarks active,
one tends to forget which belongs to what and where one
wants to jump. This is very handy visual element in those
situations.
* contrib/hbide/edit.prg
! Refined: Alignment of assigment opertaor ":=" on previous lines
starting at the same indent position. Now object:variable :=
is also honoured. For example:
oError:severity := ES_ERROR
oError:args :=.
=>
oError:severity := ES_ERROR
oError:args :=.
* harbour/include/hbgtinfo.ch
+ added new hb_gtInfo() action: HB_GTI_UNITRANS
It allows to set translation table for UNICODE characters
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/src/rtl/gtwvt/gtwvt.h
+ added support for HB_GTI_UNITRANS - due to limited support
for unicode vlaues in MS-Windows raster fonts it's necessary
for some custom fonts.
* harbour/src/rtl/tpersist.prg
+ implemented 2-nd parameter <lIgnoreErrors> in ::LoadFromFile()
and ::LoadFromText() methods
* harbour/src/rtl/cdpapi.c
* indenting
* contrib/hbqt/hbmk2_qt.hb
! Fixed: the treatment of html compliant ->setToolTip( calls.
It has been tedius because it went unnoticed due to Qt versions
where they always keep on changing the string treatment.
This fixes issue reported on users list.
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
! Reinstated: execution of Mouse events to PRG level. These events
cannot be catched with our existing event handeller, probably
Qt does not propogate them to the widget in QPlainTextEdit().
* contrib/hbide/edit.prg
+ Implemented: <Setup><HbIDE Setup><Intelli-sense><Align Operator := to Prev Lines>
If activated you will experience the following behavior:
IF lThis
abc := 200 /* . == editing cursor */
bcdefghijk :=.
ENDIF
=>
IF lThis
abc := 200
bcdefghijk :=.
ENDIF
You continue:
IF lThis
abc := 200
bcdefghijk := 3044
x :=.
ENDIF
=>
IF lThis
abc := 200
bcdefghijk := 3044
x :=.
ENDIF
+ contrib/hbqt/tests/browarray.prg
+ Added: an array browser which also allows to add data rows
to the existing array. This facilitates the understanding
of HBQAbstractItemModel()'s internal working. This commit
answers to many question posted in the mailing-list and
also directed to my mail-box.
* contrib/hbide/edit.prg
! Fixed: a nasty side-effect of pair-matching; weired editing behaviour.
Now another click will clear the matching but keeping the cursor
position at its previous row/column. You may need to click twice
to place cursor at desired position if matched/pair is active.
* contrib/hbide/edit.prg
+ Added: class/endclass, function|procedure|method/return to control
structures list, for the purpose of highlighting pairs.
! Refined: the cuursor position exactly where it should been after
highlight operation.
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
* Called: <block> on QEvent::MouseButtonPress. For unknown reasons
this event is not being received on PRG level with current
mechanism [TOBE: investigated].
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
+ Implemented: highlighting matching control structure.
The supported matches are:
if/endif; do while/enddo; do case/endcase; switch/endswitch; for/next
; HOWTO: click on any control strucure keyword as above, this and
its matching pair will be highlighted. Next click will clear the
previous one and initiate the new match. Any key will clear the
current match.
* contrib/hbide/edit.prg
* contrib/hbide/editor.prg
% Optimized: collection of variables:
a) longer than 3 characters,
b) variable is collected if space,coma,collon " ,:" follows it.
+ Started: matching of control structures, a work-in-progress.