* 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/go-bottom.png
+ contrib/hbide/resources/go-down.png
+ contrib/hbide/resources/go-first.png
+ contrib/hbide/resources/go-jump.png
+ contrib/hbide/resources/go-last.png
+ contrib/hbide/resources/go-next.png
+ contrib/hbide/resources/go-prev.png
+ contrib/hbide/resources/go-top.png
+ contrib/hbide/resources/go-up.png
+ contrib/hbide/resources/hilight-all.png
+ contrib/hbide/resources/updown.ui
+ contrib/hbide/resources/updown.uic
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
! An important fix.
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idetools.prg
+ Extended: in addition to next/previous buttons to naviagte
occurances of selected text, three more buttons are added:
"first", "last", occurance and "highlight all" occurances.
+ Implemented: macros parsing in "Parameters" list of
"Tools and Utilities" protocol. Currently following macros
are parsed:
{source_fullname} => full sourcename of current edit instance
{source_name} => mere name of current edit instance
{source_path} => only path of source in current edit instance
{%MY_ENV_VAR%} => result of hb_GetEnv( "MY_ENV_VAR" )
C:\temp\mycopy.bat {source_fullname} {source_path}\mysource.bkp
=>
C:\temp\mycopy.bat C:\harbour\contrib\hbide\hbide.prg C:\harbour\contrib\hbide\mysource.bkp
( assuming that current editor is containe hbide.prg )
* 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/hbqt_hbqplaintextedit.cpp
! Minor.
* contrib/hbide/resources/buildsource.png
+ Icon for "Build Source" action.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
+ Implemeted: to compile a source, source is not saved
if in modified state. Action was already defined but inactive.
+ Implemented: to build a source, current defined environment is
used and build process stays in the folder where source resides.
Also source is not saved. hbIDE attempts to executable it also.
Action defines a new icon on the top-toolbar and also an entry
into the "Build" menu.
% Few more fixes in selections and find processes.
NOTE: new setup is also uploaded on my site.
* 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/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/idedocks.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/ideshortcuts.prg
* contrib/hbide/idesources.prg
* contrib/hbxbp/hbpprocess.prg
! Fixed error when double-click on build output was causing GPF
if no editor tab is in focus, i.e., Welcome tabs are visible.
- Removed some loggings.
% Reworked how build commands are called. Now only one batch file
is sent to the process engine to fire and rest is contained
into that batch file. It probably may solve *nix issue where
a .sh is not executed or any other command with long list of params.
* 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/THbQtUI.prg
+ Added more hbqt.ch defined constants.
* contrib/hbide/resources/searchreplace.ui
* contrib/hbide/resources/searchreplace.uic
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
+ Enabled again other way of "Search/Replace" invokable by Ctrl+Sh+F.
This opens the dialog at the bottom of editing area. This is exactly
the same as it is implemented in Qt Creator also.
! Fixed to always show up the right-dock widgets when invoked.
* 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/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/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/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/hbqt/THbQtUI.prg
! Miss of prev commit.
* contrib/hbide/idefindreplace.prg
! A nasty fix.
* contrib/hbide/ideharbourhelp.prg
+ Implemented: text file viewer "as is" if it does not contain
any function's documentation. In Harbour's /doc* tree
there are many files without NANFORUM tags.
* contrib/hbide/resources/docviewgenerator.ui
* contrib/hbide/resources/docviewgenerator.uic
* contrib/hbide/resources/environments.ui
* contrib/hbide/resources/environments.uic
* contrib/hbide/resources/finddialog.uic
* contrib/hbide/resources/findinfiles.uic
* contrib/hbide/resources/findinfilesex.ui
* contrib/hbide/resources/findinfilesex.uic
* contrib/hbide/resources/findsource.uic
* contrib/hbide/resources/mainwindow.uic
* contrib/hbide/resources/projectproperties.uic
* contrib/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
* contrib/hbide/resources/searchreplace.ui
* contrib/hbide/resources/searchreplace.uic
* contrib/hbide/resources/searchreplacepanel.ui
* contrib/hbide/resources/searchreplacepanel.uic
* contrib/hbide/resources/selectionlist.uic
* contrib/hbide/resources/selectproject.uic
* contrib/hbide/resources/skeletons.ui
* contrib/hbide/resources/skeletons.uic
* contrib/hbide/resources/themes.uic
* contrib/hbide/resources/themesex.ui
* contrib/hbide/resources/themesex.uic
! A thourough uniform naming protocol adapted.
+ contrib/hbide/resources/harbourhelp.png
+ contrib/hbide/resources/projectstree.png
+ contrib/hbide/resources/richtext.png
+ contrib/hbide/resources/syntaxhiliter.png
+ contrib/hbide/resources/tabs.png
* contrib/hbide/resources/blockcomment.png
+ contrib/hbide/resources/codeskeletons.png
* contrib/hbide/resources/dc_function.png
+ Added more images.
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added slots for QDockWidget().
* contrib/hbqt/THbQtUI.prg
! Refined destructor.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idethemes.prg
+ This commit is mainly uplifts and rationlizes the menus,
toolbars, and docking widgets plus a big consideration of
parent child relationship is achieved.
* Implemented: right-side toolbar which contains the toggle
icons for docking widgets. The same functionality is available
also in <Docks> main-menu option.
* Menu options are reworked and all actions pertaining to docking
widgets are removed from there. The same is applied to
top-toolbar also. All actions pertaining to block operations
are cornered at the left-side toolbar. Thus menus, toolbars are
in perfect synchronization.
* Harbour-help is now loaded on demand. Only when help icon is
toggled on the right-toolbar.
* hbIDE icon is changed as I committed before. No one forwarded
his opinions, so I assume it is appropriate image.
; NOTE: This commit now presents hbIDE to the external world
with almost-profession look and feel, so we can spread the word.
; This commit is with heavy changes so regression is possible.
Please speak-out if you find something weired.
+ contrib/hbide/resources/dc_delete.png
+ contrib/hbide/resources/dc_down.png
+ contrib/hbide/resources/dc_folder.png
+ contrib/hbide/resources/dc_function.png
+ contrib/hbide/resources/dc_home.png
+ contrib/hbide/resources/dc_left.png
+ contrib/hbide/resources/dc_plus.png
+ contrib/hbide/resources/dc_print.png
+ contrib/hbide/resources/dc_quit.png
+ contrib/hbide/resources/dc_refresh.png
+ contrib/hbide/resources/dc_right.png
+ contrib/hbide/resources/dc_textdoc.png
+ contrib/hbide/resources/dc_textdocument.png
+ contrib/hbide/resources/dc_up.png
+ contrib/hbide/resources/docviewgenerator.ui
+ contrib/hbide/resources/docviewgenerator.uic
* contrib/hbide/resources/help.png
+ contrib/hbide/resources/searchreplace.ui
+ contrib/hbide/resources/searchreplace.uic
+ Added few more images and redefined a prev one.
* contrib/hbqt/THbQtUI.prg
+ Added some more hbqt.ch defined constants in the engine.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideharbourhelp.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
+ Implemented an html viewer for Harbour's documentation .txt
files with slots to make it a "writer" too if it fits the purpose.
! Reimplemented the "Search-Replace" user interface and working.
A work-in-progrss which I will explain later.
; Harbour Documentation Viewer - How to Invoke
* Close any docking pane is visible at the right panel.
* Point to <Docks> option on <Main Menu> and click on
<Document Viewer>
* A right-side "Document Viewer" window will appear.
* Provide Harbour's installation root path in
"Harbour Installation Root:" field, i.e., C:\harbour
* OR alternatively, you can choose one by clicking
"Harbour Installation Root Path" icon on the right of
field.
* Click "Refresh" icon on the toolbar of "Document Viewer"
window" only once and wait a couple of seconds.
* "Contents" tab will be populated with /doc and /doc/en
folders.
* Double-click on one to expand - you will be able to
view .txt file names.
* Double-click on some .txt node, wait a couple of seconds,
and you will be able to see "functions" nodes.
* Double-click on the function's node and you will be
presented with html display in the "View" tab on the right.
* Navigate other tabs on the right, you will understand the
contents.
* Next time hbIDE will remember Harbour's installation root path.
* :( On exit expect to receive a GPF, investigating.
Right now only "Viewer" part is ready per preliminary stages.
I have a lot of ideas on my drawing-board and would like to
hear your opinions. Basic components to write a document are
also in place, but I need to gather more info and what else
can be included.
In the next several days I will be focussing on this tool.
Bacco and Vailton, please bear with me, as this interface
is the basic requirement of hbIDE which I had kept postponed
till now. A stand alone viewer and writer has its own purpose,
space, and audience.
+ contrib/hbide/resources/closetab.png
+ contrib/hbide/resources/down.png
+ contrib/hbide/resources/minus.png
+ contrib/hbide/resources/previous.png
+ contrib/hbide/resources/up.png
* contrib/hbide/resources/searchreplacepanel.ui
* contrib/hbide/resources/searchreplacepanel.uic
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idefindreplace.prg
+ Implemented ( partial ) extended search/replace panel like Qt itself.
This can be activated via <Edit><Find / Replace Ex> or Ctrl+Sh+F.
The panel is anchored beneth editor area and above status-bar,
or above any other dock-widget at the bottom area is open.
It implements incremental search with visual color differentiation.
Try typing in some text to find. Still other buttons are inactive.
It may take a day to synchronize everything.
This implementation adds another value to "Find/Replace".
Ctrl+F implementation is there as is. You can take advantage of both.
+ 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.
+ contrib/hbide/resources/blockcomment.png
+ contrib/hbide/resources/environments.ui
+ contrib/hbide/resources/environments.uic
+ contrib/hbide/resources/findinfilesex.ui
+ contrib/hbide/resources/findinfilesex.uic
+ contrib/hbide/resources/projectpropertiesex.ui
+ contrib/hbide/resources/projectpropertiesex.uic
+ contrib/hbide/resources/streamcomment.png
+ contrib/hbide/resources/themesex.ui
+ contrib/hbide/resources/themesex.uic
* contrib/hbqt/THbQtUI.prg
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/idethemes.prg
+ This commit implements all other windows ( except Find/Replace )
opened as a docked-window of the main-frame. This facilitates
a greater control over the various actions together. This is a
major change in the interface, please update your notes.
Find/Replace window is scheduled to be contained in separate panel
at the bottom of the editor area, right on top of the "Output Console",
as is implemented in Qt Creator itself. Please express your opinions.
The above should have been the way since begining, but you know,
programming skills are polished with time.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idestylesheets.prg
+ Started left-hand toolbar(s) to present visual interactions for
a number of hidden actions. A work-in-progress.
* contrib/hbqt/THbQtUI.prg
! Fixed object destruction sequence per latest changes in HbQtUI() class.
* contrib/gtwvg/wvgscrlb.prg
! Defined method :configure() as VIRTUAL.
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
+ Added class variable :block which can be set with qEdit:hbSetEventBlock( bBlock ).
I did not set it via the constructor as it is implementation specific.
The goal was to capture mouse or other events which are consumed by
parent class itself and are not forwarded to the widget. At present
it is used to inform double-click event to qEdit and is scheduled
to be extended.
* contrib/hbqt/hbqt_misc.prg
+ Added method :from(), synonymous to :configure() to avoid grasping confusion.
Now both syntaxes are supported:
qCursor := QTextCursor():configure( qEdit:textCursor() )
qCursor := QTextCursor():from( qEdit:textCursor() )
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
+ Project Management: enabled "Launch Parameters" which are supplied to the
executable if "Launch..." is selected with build
or otherwise.
: supressed auto expansion of "Current Project" at startup.
Was a constant cause of annoyance if the project tree
been fairly large.
+ Docking Windows: reworked to occupy proper corners.
Please delete idesettings.ini.
! Find_Replace Dialog: set to find from begining if "Find What" is changed.
! Code Skeletons: fixed to not append blank lines while called.
: selection menu appears at the current cursor coordinates.
+ Editor: double-click on some word place the selection in copy buffer in case
that word is selected. This feature I always wished-for in xMate.
+ Editor: highly .prg code suited indentation engine. It comprise so many
factors to explain. Please test. I feel you will be really happy.
Also let me know what else can be implemented. Code is now
under my grasp and probably more ideas are already building up.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idesources.prg
+ Implemented multiple views.
How it works:
* Select "New..." from drop-down menu of "Views" combo-box in toolbar.
* An input dialog opens, provide a useful name,
keep it "one word" if possible
* Press <ENTER> or click "Ok", a blank edit area will come-up.
* Make ususal operations to add/delete/move sources.
* You must be able to see view's name in the status-bar in blue.
* Thus created "view" name will appear in the drop-down list.
* To switch to another view, select it from same drop-down.
* To verify, come out of the hbIDE and re-enter.
* Voila, you have the "views" created.
* "Main" view or say "root" view is always present.
;Please report if anything is missing or could be better.
* 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/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
+ Implemented <Delete Line Ctrl+Del> - Current Line
<Indent Right Ctrl+Tab> - Selected Lines
<Indent Right Shift+Ctrl+Tab> - Selected Lines
Indenting is exercised on selected lines with "one" column at a time.
Vailton, can you create icons for above?
* contrib/hbide/resources/findinfiles.ui
* contrib/hbide/resources/findinfiles.uic
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
! Fixed for RegEx to be compiled with case sensivity.
BTW, hb_regEx( compiledRegExp, cString, lCaseSensitive, ... )
does not honor <lCaseSensitive> attribute. Only
hb_compRegEx() honors.
+ Implemented to remember last find folder and search expression.
* contrib/hbide/resources/findinfiles.ui
* contrib/hbide/resources/findinfiles.uic
* contrib/hbqt/qtgui/QSizePolicy.cpp
* contrib/hbqt/qth/QSizePolicy.qth
* contrib/hbqt/THbQtUI.prg
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
+ Added more info in "Results".
! Core normalization.
+ Implemented RegEx search.
I am not good at this engine, please test.
% Changed TODO => DONE in one entry in ChangeLog.
* contrib/hbide/resources/findinfiles.ui
* contrib/hbide/resources/findinfiles.uic
* contrib/hbqt/THbQtUI.prg
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
+ Implemented "Search" option activated via "Search" toolbar icon.
This implementation presents a dialog to select any number of
available "Projects", one "Folder", and "Opened Tabs" in any
combination".
The results are presented in within-the-dialog edit window
in a nicely colored and formatted way. This editor also provides
for "Select All", "Copy", "Clear", "Print", "Find...",
"Zoom In/Out" and some more ( to be activated ) options.
These options are visible in context menu activated with
right-clicking inside the "Results" editor.
This implemetation also facilitates multiple instances of the
"Search" dialogs carrying on the operation at the same time.
Double-click on any line will open an edit-tab in the main editing
area, cursor will be positioned highlighted on the "Expression"
string, keeping the focus in "Results" editor only.
Normal usage is carrying the expected actions but I must be
ignoring something important. Please test.
Please forward any suggessions you think will make it more useful.
; TODO: Regex implementation.
Regex for multiple lines.
Including sub-folders.
Including sub-projects.
"Replace" implementation ( I am exploring how it can be safest )
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/iderequests.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/resources/projectproperties.ui
+ contrib/hbide/resources/finddialog.uic
+ contrib/hbide/resources/findinfiles.uic
+ contrib/hbide/resources/findsource.uic
+ contrib/hbide/resources/mainwindow.uic
+ contrib/hbide/resources/projectproperties.uic
+ contrib/hbide/resources/selectionlist.uic
+ contrib/hbide/resources/selectproject.uic
+ contrib/hbide/resources/themes.uic
* contrib/hbqt/hbqt.ch
* contrib/hbqt/qtgui/QLabel.cpp
* contrib/hbqt/qtgui/QSizePolicy.cpp
* contrib/hbqt/qtgui/QSpacerItem.cpp
* contrib/hbqt/qth/QLabel.qth
* contrib/hbqt/qth/QSizePolicy.qth
* contrib/hbqt/qth/QSpacerItem.qth
* contrib/hbqt/THbQtUI.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpwindow.prg
+ This commit implements .uic files generated
via uic.exe of Qt distribution given a .ui file.
And hence eliminated the wooping cargo of QtUiTools.lib
which consumes arount 23+ MB over and above of application load.
All the dialogs/windows used in hbIDE are fully functional.
This implementation is in parallel of previous one and
either can be used. The difference in syntax is ( and as used in hbIDE )
#ifdef HBIDE_USE_UIC
oDlg := HbQtUI():new( ::oIDE:resPath + "selectproject.uic", ::oDlg:oWidget ):build()
#else
oDlg := HbQtUI():new( ::oIDE:resPath + "selectproject.ui", ::oDlg:oWidget ):create()
#endif
To take advantage of this feature you need to compile hbIDE
with -dHBIDE_USE_UIC. You can examine the task manager for memory
usage, with and without -dHBIDE_USE_UIC.
Please note that this implementation is not 100% complete.
I could synchronize the dialogs of hbIDE only. Though most of the
code is good for daily-use widgets still we need to add some
more functionality into the code. But it is simple. Mainly
we be needing more constants included in hash to convert
string defines to numeric representation.
Please test and report any issues.
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_hbslots.cpp
+ contrib/hbqt/qth/HBQMainWindow.qth
* contrib/hbqt/tests/demoqt.prg
* contrib/hbxbp/hbpprocess.prg
* contrib/hbxbp/xbp3state.prg
* contrib/hbxbp/xbpbrowse.prg
* contrib/hbxbp/xbpcheckbox.prg
* contrib/hbxbp/xbpcombobox.prg
* contrib/hbxbp/xbpdialog.prg
* contrib/hbxbp/xbpfiledialog.prg
* contrib/hbxbp/xbpfontdialog.prg
* contrib/hbxbp/xbphtmlviewer.prg
* contrib/hbxbp/xbplistbox.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbpprintdialog.prg
* contrib/hbxbp/xbprtf.prg
* contrib/hbxbp/xbpscrollbar.prg
* contrib/hbxbp/xbpsle.prg
* contrib/hbxbp/xbpspinbutton.prg
* contrib/hbxbp/xbpstatusbar.prg
* contrib/hbxbp/xbptabpage.prg
* contrib/hbxbp/xbptoolbar.prg
* contrib/hbxbp/xbptreeview.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idethemes.prg
! This commit has cleaned Qt wrappers not to
hold any GC collectible pointer inside. Events
and Slots protocol is completely re-structured.
% Improved HB_TRACE() logs. Now Qt wrappers can be
generated with relevant filter if env variable
HBQT_BUILD_TR_LEVEL=HB_TR_ALWAYS|ERROR|etc
defalt being TR_LEVEL_DEBUG. The formatting is
also improved.
% Signals are fired with exact same parametres
found in Qt documentation. Eearlier first parameter
was object pointer followed by slots's parameters.
This facilitates for the speed and better code
maintenance.
! Intensive debugging has shown that - operator new() -
is always called from cpp stub generated by hbMK2
but for operater delete(), behavior is inconsistent.
All classes derived from QObject() never call delete()
in the stub, some classes, which Qt defines as "on the
stack" call our stub and hence memory is released.
Perhaps this is the main reason, I cannot get back
all the momory if another dialog is opened and closed.
All claases which are derived from Qt class, viz., HbQ*
are released properly. Looking at this behavior it
comes to mind if all classes are sub-classed? A very
huge job nevertheless which I may take later.
* contrib/hbqt/qtcore/*.cpp
* contrib/hbqt/qtgui/*.cpp
* contrib/hbqt/qtnetwork/*.cpp
;NOTE : Regression is possible. Please report any issues.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/resources/findinfiles.ui
+ Started implementation of "Find in Files" option.
Just to have a glimpse what components it will contain,
click on "Search" button along-side "Find" buttons.
It is not working but it may prompt you which feature
I missed to include. Just play.
* contrib/hbxbp/Makefile
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
+ contrib/hbxbp/hbpqtui.prg
- contrib/hbxbp/xbpqtuiloader.prg
% Renamed XbpQtUiLoader() class to HbpQtUI()
This is Harbour extension to Xbase++ class framework.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/resources/projectproperties.ui
% Changed <Main Menu> prompts:
+ <Environments> in <Project>
- <Options> => <Setup>
- <Codecs> => <Setup> <Codecs>
! Separated the <Define Environments> dialog from <Project Properties>
And added a menu option in <Projects> main-menu prompt.
+ Implemented to load xMate's Project file (.xhp) when a new project
is created. Can be invoked via a push button on top-right corner of
<General> tab.
* contrib/hbide/idefindreplace.prg
! Fixed: error when find operation was unsuccessful.
* contrib/hbxbp/xbp.ch
+ Added HBXBP_DBG( HB_TR_ALWAYS,... )
* contrib/hbxbp/xbppushbutton.prg
+ Behavior: if focus is set on the object, then its property is
changed to autodefault() which means the button will be highlighted
with additional border to indicate that it can be activated
with "Return" press. However this property does not work in
buttons if XbpDialog() is the parent.
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbxbp/xbpdialog.prg
+ Implemented: XbpDialog():maxButton, :minButton
QUESTION: which instance variable controls the resizing behavior?
* contrib/hbxbp/xbpsle.prg
+ Added: callback slot :returnPressed.
oSle1:returnPressed := {|| SetAppFocus( oSle2 ) }
This facilitates the TAB behavior which navigating the SLE's.
This effectively also means you can control the SLE's like
ReadModal(). Just validate the SLE (oGet) and move to
another SLE or any other part.
Angel, your observation will matter.
* 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.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idethemes.prg
! Fixed: to ensure that next invocation correctly sets the last
working codec. [ Marco Bra ]
! Fixed: to correctly dispay the last line nos while inserting
or deleting bottom lines. [ Marco Bra ]
! Enabled HBQT_RELEASE_WITH_DELETE protocol for hbIDE.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesources.prg
+ Implemented various actions on current editing window
honoring splitted windows indivisually, i.e., Find/Replace,
Goto, Function activated via Function List, etc., etc.
Though I have attempted resonable debugging but still
for sure I must have left undesirable, please report.
+ Thoroughly overhauled "Editor Tab" management, more elegant
and encapsulated.
* contrib/hbide/hbide.hbp
* 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/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/projects/hbide.hbi
+ contrib/hbide/resources/insert-datetime.png
+ contrib/hbide/resources/insert-external-file.png
+ contrib/hbide/resources/insert-procname.png
+ contrib/hbide/resources/readonly.png
* contrib/hbide/resources/tabreadonly.png
* contrib/hbxbp/xbpqtuiloader.prg
A lot of changes are in effect including the patch
sent by Vailton. The code is in the middle of restructing
phase and may take several days to finish. Till the I request
you all to bear with me and may expect some bumps too.
Please do not update this code until I finish preliminaries.
To sumup this commit includes:
! Thourough reclassification of classes and separation of
code fragments in a way that not two developers collide
with each other. One may takeup one segment and the other another.
+ Used hbide_* namespace and have changed almost every function.
+ Implemented, though not in a way I wanted, building a project
via Qt's process classes. You will see a refreshing difference.
+ A major breakthrough in XbpQtUiLoader() class implementation.
Now you can access the child widgets of a .ui component per
this syntax:
oUI:qObj[ "checkMatchCase" ]:setChecked( .t. )
=>
oUI:q_checkMatchCase:seChecked( .t. )
^^
just prefix object name with "q_" ( Q + Underscore ).
This greatly simmplifies coding and allows to exploit child
widgets as real-time objects.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
+ contrib/hbide/idedocks.prg
+ Added new file separating the code building docking widgets.
Another round of reforms, more follows.
* contrib/hbide/idefindreplace.prg
! Minor.