* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idetools.prg
+ Remodelled: ::aINI - hbide.ini variables container.
It is now encapsulated in a object - ::aINI => ::oINI.
This implementation has made this construct extendible to
any extent. Earlier it was a real mess to add one more
option on top of the existing one.
* contrib/hbide/resources/curlinehilight.png
+ contrib/hbide/resources/horzruler.png
* contrib/hbide/resources/togglelinenumber.png
* contrib/hbide/resources/toolsutilities.ui
* contrib/hbide/resources/toolsutilities.uic
* contrib/hbide/resources/setup.ui
* contrib/hbide/resources/setup.uic
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/qth/QTableWidget.qth
- contrib/hbqt/qth/HBQSyntaxHighLighter.qth
+ contrib/hbqt/qth/HBQSyntaxHighlighter.qth
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/doc/en/class_hbqsyntaxhighlighter.txt
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/QTableWidget.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qtgui/HBQSyntaxHighlighter.cpp
* contrib/hbqt/qtgui/THBQSyntaxHighlighter.prg
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
+ contrib/hbide/idedict.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
% Widened padding for menubar prompts to show up at a proper distance.
+ Controlled "RETURN" keyword not to jump to first indentation place,
with env variable - HBIDE_RETURN_ATBEGINING=yes. Scheduled to be
included in "Setup" interface.
+ Allowed hbIDE execution with any text type file. It was accepting .PRG.CPP only.
+ Broadened the scope of keyword coloring for any case, mixed or absolute.
It was all lower or all upper previously.
+ Prepared ground for user defined keywords through user dictionaries.
+ Added new flags in "Setup" dialog ( yet not active ).
Please have a look into the contents of different pages and
let me know what else can qualify to be included therein.
+ More macro for Tools parameter - ${source_fullname_less_ext}
% Tools & Utilities dialog made modeless. At times it is desirable
to execute a tool multiple times and also to gather output logs.
+ Tools & Utilities dialog now remembers its last opened position.
+ Implemented: user-configurable 5 toolbars which can be populated
through Tool & Utilities interface. Invoke "Tools & Utilities"
interface and play with the toolbars. You will find it really
rewarding. I am also trying to find a way to hook
"Kayboard Mappings" macros to be included under this interface.
Your input is welcome. I will write the help in about a week,
but interface is straight enough to grab/grasp/use.
+ Implemented: to switch on/off horizontal ruler.
+ Implemented: to remember the last settings for next run for
Horizontal Ruler, Line Numbers display and Current Line highlighting.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
+ Implemented: interface to find next/previous occurance of selected
text in the current editing instance.
The moment some text is selected in the editor, two tool-buttons will
automatically show-up on the lower-right corner of the editing window
to facilitate you execute "find" operation for selected text up or down.
Buttons will disappear where there is no more selected text.
The feature was requested by Antonio Linares.
* contrib/hbqt/generator/hbqtgen.prg
! A minor fix, no effect on sources.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
+ Added more PRG callable methods.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idedocwriter.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: selection "persistancy" controllable programatically"
Ctrl+F11 is designated for this task. A slot in "Keyboard Mappings"
is also provided. By default persistant selection is disabled and
hence behaves exectly like it was before persistancy and more natural
like other editors. Ctrl+F11 toggles it on/off and if switched on,
behaviour will follow the implemenation just before this commit.
If selection mode is activated programatically, behavior remains
the same as before. Please test, bumps are expected.
% Some major artifacts how cursor should behave after paste, etc.
+ Implemented: document writer is now capable to pulls the existing
help body and correctly reinstates the changes. This implies that
for your sources help it can be used in real-time. Please test
and post if you find difficulties.
TODO: the same behavior with disk files.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
% Shifted: all actions which operate on editing instance, to
the micro levels. This implies that ::IdeEdit() object can be
used independent of interface constraints and hence becomes
eligible to be included in hbXBP as a HBP class.
This also implies that hbIDEMap can be manipulated through
Keyboard Mappings macros the same way as main editing instance
with the exception that it cannot be editied. For example,
you can call ::zoom( nPointSizeORKey ) to adjust its size.
You can also use Ctrl+C to copy and can use block operations.
+ Added: <Edit><Format><Replace Spaces with Tabs> option. Tabs
are set to stop at same distance of 3 characters which
makes it possible to modify sources with/without tabs but
with same visual display.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: proper hbIDEMap protocol. Now you can keep open
"Source Thumbnail" dock and keep on clicking the tabs. Current
source map will be displayed inside.
hbIDEMap Features:
1. hbIDEMap carries highlighted code lines which are visible
in main editing instance window. Navigaing the editor also
changes highlighted area corresponding to main instance.
2. All keyboard mappings are active in the map also which implies
that you can exercise copy operations which can be pasted
in the current code, a very useful feature.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
! Fixed: selected text when viewed in a narrow window and
using horizontal scrollbars was showing incorrectly.
+ Implemented: current source's thumbnail view.
It is presented in a right-hand docking widget which
can be activated via <View> menu. it is almost identical with
current editor but with a significant difference that
it is loaded from the disk whenever the dock is brought to view.
It contains smaller font and is entirely idependent
of main editing instance.
It is just a quick commit. Refinement will follow.
Please submit your suggestions.
Re-compile hbQT alongwith hbIDE.
* contrib/hbide/hbide.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idetags.prg
+ Implemented: Context-menu option "Goto Function" looks
for the function/method in the current source first,
and if found, jumps to that, otherwise it rellies on
tagging. It implies that functions in current source
are always can be reached with "Goto Function" option
which operates on word under cursor.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Prepared to handle three modes of selections programatically.
F11 Line Selection is broken currently.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/idedocwriter.prg
% Guarded against inserting help if "readonly" flag is ON.
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Added: navigational methods plus methods pertaining to
line operations into public API. Naviagable methods are :
::up(), ::down(), ::pageUp(), ::pageDown(), ::goTop(),
::goBottom(), ::right(), ::left(), ::end(), ::home(),
::panEnd(), ::panHome().
//
These methods can be used in combination with selection modes.
+ Grouped: public methods list by category which is displayed
under visually distinguished colors. Now it is easy to find
a method of interest easily. Before it was a literal mess.
* contrib/hbide/resources/tabreadonly.png
! Changed: to reflect clearly visible readonly status.
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
+ Implemented: <MainMenu><Edit><Switch ReadOnly Mode> plus
file's "readonly" attribute obtained by hb_fGetAttr() == 33
( please correct me if it is not OK on all systems ).
"Switch ReadOnly Mode" toggles the readonly status of the
current source in focus only if on disk attribute is normal.
ReadOnly status is permanent if disk attribute equals 33 and
cannot be toggled.
While in readonly mode, cut/paste/alter operation are suspened,
only copy operation is supported. Copy can be performed with
mouse and keyboard both and all three modes are available.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
! Fixed: the artifacts reported by Mindaugas and Itamar.
! Optimized: C++ code.
! Fixed: many other artifacts, i.e., status-bar panel was wrongly
reporting selection mode.
Mindaugas, can you please test again ?
* contrib/hbide/plugins/savebackup.hrb
* contrib/hbide/plugins/savebackup.prg
! Fine tuned to receive correct number of parameters.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
+ Added Icon: Toggle current Line Highlight in "Lines" toolbar.
Public API method is ::toggleCurrentLineHilight().
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideenviron.prg
! Reverted: line edits font - monospace to GUI.
* contrib/hbide/ideobject.prg
* contrib/hbide/ideplugins.prg
! tuned to send oIDE and cVer as first and second
argument to {plugin}_init( oIde, cVer ).
* contrib/hbide/ideprojmanager.prg
! Reverted: line edits font - monospace to GUI.
* contrib/hbide/ideshortcuts.prg
+ Public Method - ::toggleCurrentLineHilight().
Toggles displaying current line in distinct color.
* contrib/hbide/idethemes.prg
+ Activated: Selection Background slot.
It facilitates to control the color of selections per theme basis.
+ Prepared to toggle matching braces mode - both vs single.
"Setup" dialog will contain its place holder.
% Fixed many other artifacts coming into way, and possibly
might have broken a few ones, please report.
+ contrib/hbide/plugins
+ contrib/hbide/plugins/savebackup.hrb
+ contrib/hbide/plugins/savebackup.prg
+ Source and corresponding .hrb ( -gh ) plugin.
In practice .prg is never required for this purpose.
The source accompanying here is for demonstration purposes
which exposes elements to comprehend.
+ contrib/hbide/resources/selectionline.png
+ Image to be activated when "Line" selection mode is on.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/hbide.hbp
+ Added ideplugin.prg
* contrib/hbide/idethemes.prg
+ Added more keywords for syntax-highlighting.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
+ contrib/hbide/ideplugins.prg
+ Priliminary commit to handle plugins.
* contrib/hbide/ideshortcuts.prg
+ Implemented: a very simple yet powerful interface to hook plugins.
The idea got polished with Francesco Perillo's description of the thought.
Creating a hbIDE plugin
=======================
A .hrb ( compiled with -gh as the minimum ), i.e., savebackup.prg,
having two mandatory functions:
1. hrb_file_name_without_extension_plus_underscrore_plus_INIT()
savebackup_INIT( ... ) -> TRUE/FALSE
2. hrb_file_name_without_extension_plus_underscrore_plus_EXEC()
savebackup_EXEC( oIde, ... ) -> xValue
savebackup_INIT() will be used to establish hand-shake and it must
return a logical indicating success or failure. Currently it is
called with "1.0" as version no but is scheduled to be enhanced
in future.
If hand-shake is successful, means, savebackup_INIT( ... ) returns
with TRUE, savebackup_EXEC( oIde, ... ) is called as per user
request. oIDE is sent as the first argument followed by user supplied
arguments. Within this function in .hrb, all action takes place.
User can write n number of functions withing the same source but
all other functions will always be STATIC ones.
The whole hbIDE object is passed with each execution and hence
user is having utmost control over what he wants to accomplish.
Location of the Plugin
======================
All plugins ( .hrb ) must reside within "plugins" sub-folder from hbIDE.exe
location. The location is determined with return value of
hb_dirBase() + hb_osPathSeparator() + "plugins" + hb_osPathSeparator().
Loading Plugins
===============
At startup hbIDE looks into "plugins" folder for all .hrb files.
It then tries to establish hand-shake with them. If successful, a
handle is retained in static array. When an execution request is
encountered, this static array is searched for and
savebackup_EXEC( oIDE, ... ) is called and return value is passed
back to the caller macro.
Executing Plugins in hbIDE
==========================
A public method ::execPlugin( cPlugin, ... ) is implemented under
"Keyboard Mappings". ::execPlugin is called with plugin name, which
essentially is the .hrb file name. So in demo example, it is
"savebackup". Final expression would be like :
::execPlugin( "savebackup", "saveas" )
Here "saveas" is the identifier which is used in this demo to invoke
STATIC FUNCTION savebackup_saveAs( oIde )
Author of plugin has to decide how and what he would like to pass
what and in how many. So simply build a macro to call a plugin
with parameters, that's it.
I am hopeful that you, brilliant programmers, with help extending hbIDE
to an amazing levels. Send your critics to the list to enrich this thought.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Added more public methods and default macros.
* contrib/hbide/idethemes.prg
+ Implemented: persistent blocks per all three modes; stream, column and line.
This follows xMate footsteps but enhanced to suit any scenarion. By xMate
footsteps, I mean, blocks are streamed to clipboard when cut/copied/pasted
as per the standard rules. Enhancement describes that blocks cut/copied
as such are subject to be pasted in the same format as are copied. Last
cut/copy operation is pasted and if clipboard contain data which matches
last cut/copy action within from hbIDE, its format is used to paste; but
if it is alien text then "stream" is applied by default.
Block remain persistent until another selection action is not initiated or
is explicitly cleared with Sh+F11. There is no need to use any other key
to make it persistent.
Cut/copy operation can be carried on any time after block is visible.
This effectively empowers hbIDE for a variety of applications. One
block per source can remain active for entire duration of that instance.
Just click on required instance and activate copy operation. Go anywhere
on another instance and carry a paste operation. Thus blocks are movable
across instances and are also available for external clipboard operations.
All supported actions on blocks are now fully functional for all three flavours.
You will really like "Indents" action on column selections. Now more actions
can be defined for blocks, so please submit your requests supported with
use-case.
In the coming days on-line documentation to explore this feature will be
posted at http://hbide.vouch.info, stay tuned.
Please forward your suggessions or bug reports. It was such a complex logic
that for sure I found it extremely difficult to carry all debug operations,
so your input will be of immense value.
* contrib/hbqt/THbQtUI.prg
+ Added functionality for "WhatsThis" feature of Qt.
- contrib/hbide/resources/projectproperties.ui
- contrib/hbide/resources/projectproperties.uic
- Deleted: no longer required dialog.
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
* contrib/hbide/resources/shortcuts.ui
* contrib/hbide/resources/shortcuts.uic
% Shifted: tooltips to WhatsThis slot. Shift+F1 key is the
universal key to activate it. Alternatively "?" icon appears
on the left of "X" button in titlebat; press it and move over
the dialog; where "WhatsThis" will be defined, cursor will
change its shape and click there, tooltip like popup will open.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/hbide.hbp
+ contrib/hbide/ideedit.prg
+ Added: new source file which contains code to handle
editing window at the micro level. It was going unmanageable
in single file due to heavy changed needed for future.
* contrib/hbide/ideeditor.prg
- IdeEdit() class moved to ideedit.prg.
+ Implemented: base protocol to keep all the three variants of
selections, viz., stream, column and line, persistant. It is a
work in progress and may be some features of "cut" may not be
working as expected yet.
Please play with it a little and tell me about the artifacts
it must respect to.
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
! Removed: close button on "Stats" panel.
+ Implemented: line selection mode. Designated key is F11.
It is still a work in progress but a working prototype is there and
currently selection is available and paste behaves the standard way.
Mindagaus, please explore as the artifacts are OK.
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/hbqt_errorsys.prg
+ Error trace copied to clipboard, requested by Massimo.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: persistent blocks and cut/copy/paste operations
across files and locations within the same file.
Persistance: block remains intact untill another block marking
operation is initiated. Any other editing actions can be carried
as normal outside of the block boundaries. One block per source is
permitted.
Keyboard Mappings can be redefined for
CTRL+ X.Cut C.Copy V.Paste Z.Undo Y.Redo A.SelectAll
Those macros will be honored in block cut/copy/paste actions as well.
* contrib/hbxbp/xbptabpage.prg
+ Started work to make context menu alive.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/idethemes.prg
+ Implemented: almost all menu/toolbar actions to public API.
Probably this will allow the user to configure hbIDE to
the behavior he is used to.
+ Implemented: close button on the right-hand corner of editing tabs.
Clicking it closes the current editing instance in focus.
+ Added: more Harbour keywords to color engine, OR, AND, SELF.
! Included: some more options in the main menu which were
available on toolbars only.
! Cleaned some redundant code.
* contrib/hbxbp/xbptoolbar.prg
! Issued: setWindowaTitle() for main menubar.
+ contrib/hbide/resources/keyboardmappings.png
+ Icon for "keyboard Mappings" menu option.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideshortcuts.prg
+ Implemented: almost all the docks can be placed on any of the areas.
Exception is "Output Console" which is only dockable to top or bottom.
+ Main toolbar and statusbar featured to toggle. Statusbar, however is
session dependant, i.e., is not saved for next run.
! Many artifacts fixed for Search/Replace engine, all the three variants.
! "Exppression" edit fixed to respect "Enter" key press to start searching.
! More artifacts I must be forgetting.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbide/ideeditor.prg
+ Implemented: much-awaited and extremely-required feature - block copy/paste.
This implementation closely follows xMate's footsteps and is highly optimized,
having maximum tasks carried through .prg code. Probably this opens up
hbIDE to wider audience. This has been the most difficult feature so far,
and has consumed an entire week with intensive schedule.
Here is how it should be used:
Activation:
Clicking on the "Toggle Selection Mode" top-toolbar icon.
It must appear depressed after activation.
Selection Process:
Keyboard : Shift + Navigation Keys ( Left, Right, Up, down, PgUp, PgDn, Home, End ).
Mouse : Mouse-move while left-button pressed ( Only available for visible text ).
Copy : Ctrl+C ( text is also available on the clip-board )
Paste : Ctrl+V ( text only copied through Ctrl+C while in "Column Selection" mode ).
Inserts : Position cursor at first line and column,
Press Shift+Down arraow upto some ending row,
A thin-vertical-line should appear follwoing your cursor path,
Start typing any characters,
Any other navigation key will end this sesion,
Backspace key can be used to deleted previous characters.
If block is already selected, visible through color differentiation,
typing any charcter(s) will merely fill the selection with it,
Deletes : Select the text with Shift+Navigation Keys,
Press "Del".
It is highly possible that some of the artifacts may have gone not exactly like
xMate, so please report back. Also note that selections left-to-right are known
for accuracy, right-to-left may not produce accurate results. Other thing to
note is that horizontal scrolling has not been possible, so if your text goes
beyond right-edge of the window and you have a need to copy it, then first zoom-in
to brought it into viewport, then start selection process. Vertical length does
not matter. However with mouse you can only select a window-full of text.
xMate does not support column-selection with mouse.
* contrib/hbxbp/xbplistbox.prg
+ setItemColorFG( nIndex, aRGB )
* contrib/hbide/ideeditor.prg
+ Implemented: current function the cursor is navigating
highlighted in the Functions List.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/resources/environ.ui
* contrib/hbide/resources/environ.uic
+ started: dialog to capture build environment settings for different
language compilers on line with xMate. Dialog can be seen via
Menubar->Projects->Environments. Please note that this menu option
is subject to change in future. It is just for bird's eyeview.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Fix to handle space key when code completion popup is visible.
* contrib/hbide/ideeditor.prg
! Corresponding fix to above one.
* contrib/hbide/idethemes.prg
+ Added more Harbour keywords to be distinguished in color.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideshortcuts.prg
! Fixed few artifacts belonging to function prototype display
as tooltip and code completion behavior.
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idesources.prg
+ Implemented: save/restrore of bookmarks.
Now editing instances will be opened containing bookmarks
which were placed in previous successful exit. This is
valid for bookmarks in primarary window of editing instance, i.e.,
no split window is taken account of.
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QLayout.qth
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbxbp/hbpprocess.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpstatic.prg
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/idetools.prg
+ This commit includes Francesco Perillo's patch, after applying some
formatting and leaving what did not worked.
+ Includes Istvan's concept of child detachment, but not made active still.
- Deleted many objects which were created in early days of hbIDE development.
+ Changed the way QApplication's init/exit procedures were implemented.
Now the behavior is accurate.
+ Applied some more control over object destruction placement.
+ Plus a lot of optimizations I cannot jot down exactly.
Basically, this commit aims at locating the GPF at exit. Now instead of
GPF, we receive two RTE's at the end, if exiting hbIDE at the quick
succession. But if you have worked into it for few seconds, it exits
normally. Please test.
David, the QPixmap bug in hbXBP on OS2 was a bug in hbXBP and is fixed.
You can test it again to verify if I am correct.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Little formatting.
* contrib/hbxbp/xbpdialog.prg
+ Added :removeEventFilter() on destruction.
* contrib/hbide/resources/environments.ui
* contrib/hbide/resources/environments.uic
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
* contrib/hbide/resources/shortcuts.ui
* contrib/hbide/resources/shortcuts.uic
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idehome.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
! Removed keyboard shortcuts from menu items.
! Attempted fix on nixes when project folder is not created before
definition is saved.
! Dialog control labels: Exit => Close.
! More fixes to detect the executable from linker output ( still not perfect ).
! Changed the way project is launched. hope it will be useful for *nixes.
+ Implemented user-defined keyboard macros with following functionality:
New : whatever definition is typed-in the relevant fields is validated
with existing ones and if unique is appended at the end of list.
The macro is also validated for compilation.
Set : current hilighted macro is redefined from values from fields
after duplicate validation. The macro is also validated for compilation.
Test : Attempts to compile the macro as a block and reports back if
successful or not. It just compiles but not evaluates.
delete : deletes the highlighted macro after confirmation.
Load : loads macros from a disk-file and merges them with existing ones.
In case of duplicacy, last loaded macro is retained.
Save : Saves the macros in hbide.scu disk-file in hb_serialize()d form.
Save As: Saves the macros in a disk-file with any name but with .scu extension.
Any change is visible instantly,
Unless <Save> is clicked, current loaded macros are not saved on disk.
This allows to use temporary created macros for current session.
More info at http://hbide.vouch.info/ ( Topic: Keyboard Mappings )
* contrib/hbide/ideobject.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/ideprojmanager.prg
! Replaced static hbide_dbg() function call with HB_TRACE( HB_TR_ALWAYS, ... )
calls. This should also fix excessive permanently enabled debug
messages when using HBIDE. Pls keep it that way.
BTW, probably HB_TR_ALWAYS should be changed to some lower priority.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Removed some debug calls.
+ contrib/hbide/resources/shortcuts.ui
+ contrib/hbide/resources/shortcuts.uic
+ Added shortcuts interface widget.
* contrib/hbide/resources/themesex.ui
* contrib/hbide/resources/themesex.uic
! Fixed some resizing issues when objects were appearing at
dis-proportioned locations.
* contrib/hbide/hbide.hbp
* 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/ideshortcuts.prg
* contrib/hbide/idetools.prg
* contrib/hbide/idewizard.prg
* contrib/hbide/resources/check.png
+ Implemented: interface to define keyborad shortcuts.
This implementation is like xMate and provides a powerful
mechanism to write developer-friendly code to simulate
exact same behavior he/she might be adept to other editors.
The development is under progress, just play with its interface
and let me know if some more elements can be added.
More on http://hbide.vouch.info/ ( Topic: Keyboard Mappings )
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! Optimization and LineNumbers area refinements.
* contrib/hbide/hbide.hbp
+ contrib/hbide/hbide.ico
+ Added icon for windows builds.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
! Some dialogs made static instead of locals.
! Line number area of editor instances is now optimized to
not show empty space at the left if no "Book Mark" is employed.
! Few more optimizations.
* contrib/hbide/resources/panel_8.png
+ contrib/hbide/resources/toolsutilities.ui
+ contrib/hbide/resources/toolsutilities.uic
+ Added one more dialog to interface "Tools & Utilities" implementation.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idedocwriter.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/ideskeletons.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
+ Implemented: "Tools & Utilities" option.
It can be invoked via a new top-toolbar icon with two components,
1) Click the icon itself to define a tool,
2) Select from icon's drop-down list to execute.
The execution is also available from within its interface <Execute> button.
! Reworked: "Panels" interface. Now it is a toolbar icon with drop-down menu.
This interface is much-more elegant and effective in operations.
+ Implemented: auto-saving a source in the background.
Legend: after every minute the contents of the source are inspected,
if the source is modified, it is saved with ".tmp" extension
concating after its original name. c:\x\my.prg => c:\x\my.prg.tmp
if application exits normally, theis temp file is deleted,
the same is done with every "SAve" invocation.
if at next run, this file is detected, it is asked to replace the
original one.
+ Introduced: again, the animated controls, i.e., gradients on the menus, toolbars, etc,
but are controlled via "Toggle Animation" option in the "View" sub-menu of main menu.
This implementation is not made persistent, need to hera from you.
! Removed: "Always_On_Top" flag of Harbour Splash Screen. It was causing that in case
of startup error, or info rendering, user was unable to view the same.
. Back to the pavilion, after a tiring outing. So I could not compile
all the changes I did before leaving, so please be patient if something goes weired.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
+ contrib/hbide/ideskeletons.prg
+ Reworked and greatly enhanced "snippets->skeletons" management.
How it works:
=============
1. Creating of skelton is as before with same interface.
2. In addition, the selected text in the current editor
can be saved as a skeleton via "Save as Skeleton..."
option in right-click context menu. A "Name" will be
asked via a modal input edit dialog.
3. A new "Skeletons" tree-view is implemented at the Left-hand
docking area which displays all skeletons by name.
4. Hovering cursor over the name node shows up the body of
skeleton as a tooltip, very handy.
5. Double-click on the node in tree-view will insert the
skeleton text at the current cursor position.
6. Alternatively, as before, menu can be activated via CTRL+K.
7. Skeletons body now supports meta data as follows:
---
DO WHILE .T.
IF cVar == "<-PROMPT>"
xVar := <-DtoC( Date() )>
ENDIF
<-CUR>
EXIT
ENDDO
---
You can see there are 3 occurances of <-*> token.
<-PROMPT> will execute an input dialog and the resultant
string will be inserted here.
<-DtoC( Date() )> will evaluate the expression, which in
this case, - "03/18/2010" - will be inserted. This means
any valid Harbour expression which returns a string
can be designated as meta-expression.
<-CUR> will position the cursor at this place.
This is what I thought it should behave.
Please let me know it anything else can make it more productive.
* contrib/hbxbp/xbptreeview.prg
! Added :tooltipText instance variable to manage tooltips.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/resources/docwriter.ui
* contrib/hbide/resources/docwriter.uic
! Reworked "Projects" and "Editors" tree.
Now the indentation is reduced, visual elements are added,
long paths are shifted inside tooltips, nodes are sorted.
! "Editors" tree now displays the panel icon on which this source
is hosted. A very handy and useful implementation.
These tree-views will remain stationary for the rest of hbIDE
development cycle, i.e., there will bo no change whatsoever
on these components.
! Many other artifacts corrected while working with the production
projects myself. Probably now you may try, at least, for real-time
use.
+ Setup a dedicated web-presence of hbIDE
http://hbide.vouch.info/
Please remain in tough with these pages as contents will keep on
posted with every available spare time.
+ contrib/hbide/resources/arguments.png
+ contrib/hbide/resources/description.png
* contrib/hbide/resources/docviewgenerator.ui
* contrib/hbide/resources/docviewgenerator.uic
+ contrib/hbide/resources/docwriter.png
+ contrib/hbide/resources/docwriter.ui
+ contrib/hbide/resources/docwriter.uic
+ contrib/hbide/resources/editstree.png
+ contrib/hbide/resources/example.png
+ contrib/hbide/resources/helpdoc.png
+ contrib/hbide/resources/load_1.png
+ contrib/hbide/resources/load_2.png
+ contrib/hbide/resources/load_3.png
+ contrib/hbide/resources/panel_8.png
+ contrib/hbide/resources/projtree.png
* contrib/hbide/resources/tabs.png
+ contrib/hbide/resources/tests.png
* contrib/hbide/resources/togglelinenumber.png
+ contrib/hbide/resources/unload_1.png
+ Added more images, refind few.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! More artifacts corrected.
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added more slots.
* contrib/hbxbp/xbptoolbar.prg
! Provided the "objectName" TO main toolbar.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
+ contrib/hbide/idedocwriter.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
! Corrected many artifacts, so many that cannot be mensioned precisely.
+ Implemented: basic documentation writer.
Documentation Writer
--------------------
1. Click on "Documentation Writer" icon on the right-toolbar,
2. Open some source in the editor,
3. Position cursor somewhere inside a function body,
4. Click on "Load from current function" icon on the
top-toolbar of "Document Writer" widget,
5. Look at the contents, few fields will be auto filled
with various info from current function,
6. Complete the other fields with relevent information,
7.1 Click on "Save the documentation with current function",
.2 Look at the function body in the editor,
The NANFORUM compliant documentation will be inserted
at the top of function's prototype.
8.1 Click on "Save written/updated documentation" icon,
and provide the filename to save on disk,
.2 Copy such generated .txt in /harbour/doc/en,
.3 Open "Harbour Document Viewer" and you should be viweing
newly written documentation there.
.4 Such generated file is ready to be uploaded to SVN,
just send it to the list and group will decide if it needs
something extra.
It is a quick way to generate help. You can keep the documentation
in your sources or can create a tree like Harbour's. I know
there is a lot more to be done in this tool, but at least group
can start using it.
My humble request is: start writing the documentation. I will polish
this tool in coming week, so be assured that everything which need
be done will be done. You cooperation is more important than this tool.
;TODO: Loading existing doc and merging it back after edits, on disk.
Loading doc from source file and replacing old with new one.
And many more, plus, whatever you will demand.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/resources/themesex.ui
* contrib/hbide/resources/themesex.uic
* contrib/hbide/ideeditor.prg
* contrib/hbide/idethemes.prg
+ Reimplemented "Themes".
* Now it is possible to change current line and line area background
colors. Also synchronized the current colors for these areas
with rest of the theme.
* Now you can apply a particular theme globally to all tabs.
* Made easy the way GUI elements are presented, it is more intuitive.
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/ideobject.prg
+ Implemented "Code Completion" feature.
How it works:
1. Load prototype tags in "Projects Functions Lookup".
2. Activate some editor tab.
3. Start typing a function proto.
4. After 3 characters a popup will appear beneth the cursor.
5. Select from the list, by mouse or use navigation keys.
6. Prototype will be there in the editor exactly with
same cases your prototype is defined.
Input is welcome.
* contrib/hbide/resources/funclist.ui
* contrib/hbide/resources/funclist.uic
! Shifted "Projects Selection" list downwards.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
! Reworked behavior of function's prototype display as tooltip.
Now it stays there until you press ")", i.e., a function call is
made complete. If you move the cursor anywhere in the editor,
the tooltip will disappear, and will reappear when cursor
will be past the "(" opening brace. The same holds true
if you play with another widget. Tooltip has a suspended
and active behavior.
! Changed the behavior of "line numbers" display in the editor tabs.
Now it is active for all the tabs on all the panels. The icon
at the left will visualize as active or passive accordingly.
! Corrected behavior of navigation in "Editor tabs" also as
par with behavior in "Projects Tree".
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added more slots for QTableWidget().
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/doc/en/class_hbqplaintextedit.txt
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
+ Added method hbShowPrototype().
! All existing methods prefixed with "hb".
Please update your code if it relies on HBQPlaintTextEdit().
* contrib/hbqt/THbQtUI.prg
! More optimization in destructor.
* contrib/hbide/resources/environments.ui
* contrib/hbide/resources/environments.uic
* contrib/hbide/resources/selectionlist.ui
* contrib/hbide/resources/selectionlist.uic
! Simplified grid layouts.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idefindreplace.prg
+ contrib/hbide/idefunctions.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idethemes.prg
+ Implemented: next step of "intellisense" by way of tagging
the functions prototypes. For its realization, added one
more docking widget containing controls to execute
required actions which can be activated via right-toolbar icon.
+ Rearranged icons on the right-toolbar as per logical
distribution. The same scheme is applied in "View" menu.
+ Implemented one more panel in statusbar to show current theme.
! Simplified editor-tabs methods for more grandalurity.
This commit implements next level of intellisense.
How it works:
1. Click on "ffn" icon on the right-toolbar or select
"Projects Functions Lookup" in "View" menu.
2. In the opened dock-widget, click on "Mark Projects" button.
3. On the top of widget, a list of all projects loaded will appear.
4. Click in the little check boxes left to the project titles.
You can choose n number of combinations.
5. Click on "Re-Tag" button, if this is the first time you are
tagging project(s), or "Load Tags" if you already have tagged before.
6. Keep a watch on right-corner of "Syntax" box, it will show the
running commentary.
7. After a while the table above will be populated with function info:
Name Type Line Project Source.
8. Type some alphabets in the top-most edit control. It will
position the function matching the typed characters in the table.
9. Double-click on some function in the table, it will be opened
in the editor.
Now the "intellisense" part, above was basic mechanism to gather contents:
1. Type in the editor a function name which you think must have made up
in the exercise carried above. The moment you will type "(" a nicely
formatted tooltip, displying the prototype of this function will
appear beneth the caret position. The prototype will remain there for
10 seconds ( finding a way how it can be controlled the way I want ).
2. Position editor caret somewhere in some function characters and
activate context menu with right click. Select "Goto Function" option.
It will open the underlying source with cursor positioned on the
function proto. Siultaneously, the function will be made current
in the table in "Projects Functions Lookup" widget.
More is on the way, please forward shortcomings of above mechanism.
NOTE: A point to cheer, this commit do not produce GPF at exit.
==== It is tested with mingw 4.4.0. However, MSVC 8.0 still generates.
+ contrib/hbide/resources/fl_c.png
+ contrib/hbide/resources/fl_dll.png
+ contrib/hbide/resources/fl_exe.png
+ contrib/hbide/resources/fl_ini.png
+ contrib/hbide/resources/fl_lib.png
+ contrib/hbide/resources/fl_prg.png
+ contrib/hbide/resources/fl_res.png
+ contrib/hbide/resources/fl_txt.png
* contrib/hbide/resources/hb-16x16.png
* contrib/hbide/resources/hb-32x32.png
* contrib/hbide/resources/hbide.png
+ contrib/hbide/resources/hbidesplashwatermark.png
+ contrib/hbide/resources/panel_2.png
+ contrib/hbide/resources/panel_3.png
+ contrib/hbide/resources/panel_4.png
+ contrib/hbide/resources/panel_5.png
+ contrib/hbide/resources/panel_6.png
+ contrib/hbide/resources/panel_7.png
+ contrib/hbide/resources/source_c.png
+ contrib/hbide/resources/source_cpp.png
+ contrib/hbide/resources/source_h.png
+ contrib/hbide/resources/source_o.png
+ contrib/hbide/resources/source_prg.png
+ contrib/hbide/resources/source_res.png
+ contrib/hbide/resources/source_txt.png
+ contrib/hbide/resources/source_unknown.png
+ Added more images for user interface.
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
- Removed xMate ".xhp" project loading icon.
* contrib/hbxbp/xbpwindow.prg
! Commented out "resize" event as it was hanging the
applications without any graspable reason. Will be
investigated deeply in future.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idehome.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
+ contrib/hbide/idethemes.prg
! This commit corrects/fixes issues reported by Viktor.
Please scratch them again. I might have missed a couple
of them.
+ Implemented: A root panel called "Stats" containing,
presently, "Welcome" and "FAQ's" tabs, detailed below.
Now hbIDE has a mechanism to hold as many informative
slots as the development will demand in future.
<Welcome>: It holds the exiting "Projects" information:
Title Type Sources Last_Modified Location
The field <Title> is a link to open detailed view of its
contents which contain fields:
Source Type Size Last_Modified Location
Clicking on a <Source> opens it in the editor under "Main" panel.
<Home> icon is added in the top-toolbar next to <Exit> icon
which leads you to <Stats> panel holding <Welcome> and <FAQs> tabs.
Projects -> Detail -> Source : backward navigation is enabled
through context menu withing browser. The options within thus
context menu has <Print> option which leads to print preview
dialog and eventually to printing on the paper.
<FAQs>: This holds short questions and answers as per the
industry standards. I could put only two of them still.
Please forward the ones you consider should go to this list.
! Changed: main window icon as previous one was not giving a
strong impression to be remember for long.
! Loading/Opening a project: now offers .hbp or .xhp options.
.xhp is converted to .hbp and is written to disk and project
is loaded as usual. This should be a one-time process.
! Click on function list now position the clicked function
in the center of the editor.
! IdeSettings.ini is now hbide.set and is saved where hbide.ini
is residing. The change is name was nessary as to avoid
wrong impression of .ini nature as a text file. It is binary
by nature.
! Many more artifacts which I tend to forget, please bear it
with my age.
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/THbQtUI.prg
! A massive effort to stream-line GPF at exit.
At least now I know that it is caused by the way
QLayout has relation with parent and children both.
To some extent I am been able to cover it, but not
completely, at least till now.
* contrib/hbxbp/xbptreeview.prg
+ Implemented tooltip and changed the way context menu is fired.
- contrib/hbide/projects/hbide.hbi
! Totally abandoned .hbi project protocol.
* contrib/hbide/resources/environments.ui
* contrib/hbide/resources/environments.uic
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
* contrib/hbide/resources/themesex.ui
* contrib/hbide/resources/themesex.uic
! Simplified layouts to cover GPFs at exit.
* contrib/hbide/hbide.hbp
+ Added ideenviron.prg.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
+ contrib/hbide/ideenviron.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idethemes.prg
+ Restructured project management.
+ Implemented: .hbp as project definition protocol.
Exploited -3rd= token to keep hbIDE specific data.
Now you can open any existing .hbp and build it
out of the box. You must have set the build env
beforehand OR take use of hbIDE's .env protocol.
+ Implemented: relative paths. The relative paths are
are computed downwards and from .hbp location.
Upper level paths still remain absolute. If your
projects structure is well thought of, then this
feature means this project tree is transferable
across different OS's and drives.
The relative paths posed many difficulties. The
facts had to be resolved while search operations,
while opening the files from Project Tree, and more.
Now all are in perfect syncronization.
+ Managed: .hbp filters on source level and are
handelled transparently. In Project Tree source
is shown without filters. Search operations are
also transparent. So, an entry like:
{msvc|bcc}vouch/scandocument.prg
is respected by hbIDE.
! The other changes:
- Project Properties dialogs contents.
It is now very simple to understand and manage.
- Concept of meta-data is eliminated.
- The output executable is automatically recognized
from linker output. So "Destination folder" is
kept for only "Launch" option which, in fact, does
not know where executable is located. "Build & Launch"
and "Rebuild & Launch" options do not look for
"Destination folder" at all.
- Project location is always pulled from .hbp file.
It is not retained anywhere to make the project
portable.
- Many more facts I cannot recollect at present.
; TODO: {hbmk2} slot in hbide.env protocol to pass
command-line parameters.
; NOTE: delete hbide.ini, idesettings.ini, all .hbi's
and start with clean state.
Regression is highly possible and I am eager
to hear from you. This commit is just for
stramlining project management, though there
few other features implemented less important
to mention.
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideharbourhelp.prg
+ Implemented: auto activating and displaying the function's documentation
you have currently finished typing opening brace. This feature
is activated only when you have initialized the documentation
browser by clicking on the "H" icon on the right toolbar.
I am open to hear what other features can be implemented in this context.
This itself is a big productivity boost.
+ contrib/hbide/resources/searchreplacepanel.ui
+ contrib/hbide/resources/searchreplacepanel.uic
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idestylesheets.prg
+ Prepared to use panel instead of "Replace/Find" dialog.
! Vaiables name uniformity for docking widgets.
! Simplification and centralization of creation of "Docking" widgets.
% Fixed to not crash when "Find in Files" was not called before exit.
; Press CTRL+F and see a panel appearing inbetween editor and statusbar.
This widget has to be matured a little and will facilitate that
search and replace action will never hide any part of the
editing area. A final ( uptil now ) reform in user-interface.