* contrib/hbxbp/xbpgeneric.prg
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
* contrib/hbide/hbqreportsmanager.prg
! neverending cleanup of HB_TR_ALWAYS debug lines
* contrib/hbxbp/xbp.ch
* contrib/hbide/hbide.ch
+ solution to end the neverending cleanup of HB_TR_ALWAYS debug lines
; NOTE: use debug msgs as described in INSTALL
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
* Renamed QT license file (now shows "LGPL").
+ Added uic.exe and rcc.exe to Windows unified build.
+ Added QT implibs for mingw compiler.
; It means that now default Windows unified package can
be used to create QT apps without installing QT package
separately. Please someone verify this is in compliance
with LGPL QT license.
* contrib/hbqt/hbqt_hbmk2_plugin.hbs
- Removed support for compatibility setting HB_QT_MOC_BIN.
+ Will now autodetect uic/rcc/moc if present next to hbmk2
(only on win/os2 systems). This will be the case when
using unified Windows package. Only lightly tested.
* contrib/hbide/idemisc.prg
* contrib/hbide/idemain.prg
* contrib/hbide/hbide.ch
* Cleaned/optimized loading of UI.
- Deleted reference to HbQtUi() so that the static lib
QtUiTools is not required to build hbide. (it was not
actively used anyway)
; TOFIX: QUiLoader class should be moved to a separated lib
from hbqtgui.
* utils/hbmk2/hbmk2.prg
+ Added trick to filter out target lib name from input lib list -hblib
mode and to filter out target implib name from input lib list in
-hbdyn mode. This fixes problems when linking -hbdyn by speccing both
project .hbp and .hbc files. I'm still thinking of a better solution
to solve this problem.
* contrib/make.hbs
! Fixed recent bug in filter processing.
* include/hbapi.h
+ Added HB_EXPORT to hb_releaseCPU(), hb_idle*() and hb_cmdarg*() functions.
* contrib/hbide/idemisc.prg
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* Cleanup.
* 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/setup.ui
* contrib/hbide/resources/setup.uic
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
+ Implemented: OS system themes via "Setup" dialog.
Animation mode and system theme ( both settable via "Setup" )
are remembered for next run. Please do not set "macintosh" theme
on windows machines, it GPF's.
% Enhanced: "Setup" dialog with fields to hold settings for
variety of actions. Please have a look into them and propose more.
Currently only Theme and Animation mode, two actions are active
in real-time.
* 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/hbide/resources/projectpropertiesex.ui
* contrib/hbide/resources/projectpropertiesex.uic
* contrib/hbide/hbide.ch
* contrib/hbide/ideenviron.prg
* contrib/hbide/ideprojmanager.prg
+ Added: checkboxes to <Project Properties Dialog><Tab: General>
to distinguish projects belonging to specific compiler.
Current implementation passes "-xhb" switch to "hbMK2"
if "Xharbour" checkbox is checked. Other two options
will be used in future.
+ Implemented: {hbmk2} slot in hbide.env to fetch switches
which necessarily have to be supplied to hbMK2 on the
command-line only. A typical entry may look like this:
[ BCC55 xHarbour ]
{hbmk2}-ignore
{content} set HB_INC_INSTALL=C:\xharbour\include
{content} set HB_WITH_ADS=c:\dev\c5
* 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/hbide.ch
! Fixed to map CRLF to hb_osNewLine() instead of windows
specific Chr( 13 ) + Chr( 10 ).
Better would be to rename this to _EOL, and _EOL to
_CHR_LF.
* contrib/hbide/idemisc.prg
! Fixed to use <br /> instead of <br>.
* Changed one ocurrence of CRLF to Chr( 13 ) + Chr( 10 ).
* 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.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idefunctions.prg
* contrib/hbide/idesaveload.prg
+ Implemented: auto-loading the last "Re-tagged" functions
prototype. It may take some time but it is done at the
background, so user will never experience the difference.
You can start working on any other aspect of hbIDE.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
+ Reworked command-line parameters.
Now hbIDE can be invoked with either of the combination,
.ini .hbp .prg .c .cpp. Following algorithm is followed:
1 .ini has the precedance over .hbp.
2 if both are passed then .hbp will be added to the project tree,
after loading components from .ini.
3 if only .hbp is passed, then no attempt is made to save the settings.
4 if only sources are passed then all will be opened "Main" panel,
which will also be the startup panel, no project tree will be
displayed.
c:\harbour\contrib\hbide>hbide.exe hbide.hbp
c:\harbour\contrib\hbide>hbide.exe idemisc.prg idethemes.prg
c:\harbour\contrib\hbide>hbide.exe C:\dev_hbmk\hbide.ini hbide.hbp
Regression is possible, please inform any incompatibilities.
* 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/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/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/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/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/hbxbp/Makefile
* contrib/hbxbp/hbpprocess.prg
+ Implemented first HbpProcess() class ( Harbour Extension )
which is based on Qt's process management classes.
The usage concept is well defined in
/contrib/hbide/ideprojmanager.prg.
I will write the documentation at some later date.
* contrib/hbide/resources/projectproperties.ui
+ More components.
* contrib/hbide/projects/hbide.hbi
+ More info.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
! Updated to hold Development Environments concept introduced.
Read below.
- contrib/hbide/hbide.env
+ contrib/hbide/resources/hbide.env
+ The environment skeletons (working) on my machine connecting
hbIDE to hbMK2 engine. You can copy it and place it
in projects folder with suitable path amendments and
call it in hbIDE. This implementation facilitae to
generate any project on any compiler from within
single instance of hbIDE without leaving it.
Here are the implementation details:
FORMAT
======
[ BCC55 5.5.1 Command Line Tools ]
{hb_comp} bcc
{shell} cmd.exe
{ext} bat
#
{content} set HB_COMPILER=bcc
{content} set PATH=c:\harbour_dev;c:\harbour_dev\bcc\bin;C:\harbour_dev\harbour\bcc\bin;
[ MINGW 4.4.2 Windows ]
{hb_plat} win
{hb_comp} mingw
{content} set PATH=c:\mingw\bin;c:\qt\2009.03\qt\bin;
{content} set PATH=c:\harbour_dev;c:\harbour_dev\harbour\mingw\bin;%path%
{content} set HB_WITH_QT=c:\qt\2009.03\qt
...
{hb_plat} == set HB_ARCHITECTURE=
{hb_comp} == set HB_COMPILER=
{shell} == shell command to execute
{ext} == the extension of shell commands file
{content} == active contents placed in the shell commands file
Any lines with {contents} marker will form the
body of commands file. You can place remarks
preceded with # sign.
Currently {contents} are implemented, rest will take a couple of days.
PLACEHOLDER
===========
<Environments Tab> in <Project Properties> dialog but with separate
button to save this and its path information alone. Just avoided one
more dialog.
ACTIVATION
==========
Right-click on <Projects> node in "Projects" tree and select <Environments...>.
The selected environment will become the default for current session and will
be saved for next invocation until it is changed. Next build will respect
this setting.
EFFECTIVENESS
=============
Create a desktop icon pointing to hbIDE.exe and place the only parameter
poing to "hbide.env" file. You can copy it anywhere in your project tree,
amend it to suit your requirements, and just execute hbIDE on your desktop.
NOTE: you _MUST NOT_ set any compiler specific variables before invoking
hbIDE. Your working slate must be clean.
WHAT_IS_NOT_DONE
================
The bash commands and their shell invocation. But I know a lot of you
will implement that in no time.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
+ Implemented current line highliting.
Currently it is ON by default. Later when all components
will be in place then it will fall under generic category
in thought of "Setup" dialog.
+ Implemented to show number of selection characters in status-bar.
Requested by: Rodrigo Machado.
+ Implemented to retain last selected codec from the main menu
to be populated at next run. It is also displayed
in the status-bar.
; Please comment.
* 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.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
+ contrib/hbide/idesources.prg
* contrib/hbide/projects/hbide.hbi
! Next round of reforms, may be second-last,
mainly concentrating on accessing the different
components with ease.
! Some formattig and code optimizations.
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbxbp/xbptoolbar.prg
+ Implemented to accept QAction() as menu constructor.
Before only cCaption or XbpMenu() were accepted.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
! Next round of reforms.
+ Implemented IdeActions() class which forms the basis
of IDE's menus and toolbars. Now we have greater control
over the uniformity of different actions hooked into
different interface elements, i.e., menu option, toolbar
option or popup option. The same visual experience is
presented in all the three flavours.
It also implies that we can switch on/off any action
only at one place. For example, if you issue this command:
::oAC:getAction( "Save" ):setEnabled( .f. )
then the option will be grayed in any flavour of user
interaction, viz., menu, toolbar, or context menu.
The code is much cleaner and paves the way to be reloaded
with various means.
* 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.
/*
This commint is from Vailton Renato and applied as is
Please set me right if something is omitted.
Changes are written below as published on DL.
*/
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.env
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/resources/hb-16x16.png
+ contrib/hbide/resources/hb-32x32.png
+ contrib/hbide/resources/list-developers.png
+ contrib/hbide/resources/list-users.png
+ contrib/hbide/resources/new2.png
+ contrib/hbide/resources/project.png
+ contrib/hbide/resources/vr-16x16.png
! isValidText() some more valid extensions added
! editSource() message appears if the file open is not supported.
! loadIni()
Implemented support for RecentFiles & RECENTPROJECTS sections.
Optimized support for section names regardless of case used.
Enhanced with SWITCH instead of CASE.
Optimized initialization oide:Aini regardless of the amount
expected items in the INI file.
Implemented a basic validation to ignore invalid
sections in the INI file.
+ Added a few new icons for the menu of the application.
! FILE > recent files -> implementation done.
! FILE > recent projects -> implementation done.
! FILE > SAVE AND EXIT -> implementation done.
! FILE > OPEN -> supports opening multiple files
! FILE > REVERT -> implementation done.
+ findEditByFileName() - new method to Find an item in a
Edits[] based on the file name passed as argument.
+ findEditByID() - new method to Find an item in
aEdits[] based on the ID passed as argument.
+ HbIde:closeAllSources() -> implementation done.
! HbIde:closeSource() -> rewritten to support the closeAllSources() method
+ HbIde:closeAllOther() -> implementation done.
+ HbIde:saveSourceAs() -> implementation done.
+ HbIde:updateTitleBar() -> New method to updates the title bar of the
main window, indicating the project and the current filename.
+ HELP > About - implementation done.
+ HELP > Harbour on line - implementation done.
+ HELP > HB Users Mailing - implementation done.
+ HELP > HB Developers Mailing - implementation done.
+ EDIT menu items were attached to the existing options
in ::executeAction()
! IdeFindReplace:show() -> Detect if current edit has any selected text.
! hbide now displays the text "Untitled XX" on creating a new file.
NOTE: Something is not right because when I click the close
button to close the main window and he asks me if I want
to save the files and when I click CANCEL it has to abort
the process and not close the system as it is occurring.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
+ contrib/hbide/idethemes.prg
* contrib/hbide/resources/themes.ui
+ Added class to save/load themes, a work-in-progress.
You can just play with user interface. More to come soon.
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
+ Added more signal/slots.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.prg
! First step of reforms. You can expect bumps.
Please DONOT update atlease HBIDE in any way till I declare
I am done with.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/resources/projectproperties.ui
+ contrib/hbide/resources/selectproject.ui
+ Applied Vailton Renato's submitted patch with one or two fixes
and little formatting.
This patch provides the missing functionalities which I did not
concentrated on yet. Many thanks.
This patch also implies that now HBIDE will reach to its final
goal earlier than expected. Thanks Vailton, for your jumping
in the project.
To Vailton: I was having a different concept for .ppo display
in non-modal independant widget having only one edit
object. Can you change the current way of doing so.
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_slots.h
+ Added more signal/slots.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
! Improved Find/Replace functionality. Now it is usable feature
though I have to tweak it a little more. The current functionality is as:
CTRL+F or "Find" icon => Opens <Find-Replace> dialog.
CTRL+N finds next occurance of current "Find" string - always
shown in one of the panels of status-bar.
This invocation is equivalent to if you click <Find> pushbutton
of the <Find-Replace> dialog.
CTRL+R Replaces the current selection with current "Replace" string
previously entered or selected with <Replace> push button.
This invocation is equivalent to if you click <Replace> pushbutton
of the <Find-Replace> dialog.
History of <Find>/<Replace> strings is maintained and is populated
in drop-down list of respective combo-boxes.
TODO: <Global> and <Replace without prompting> features.
* contrib/hbide/hbide.ch
* contrib/hbide/ideactions.prg
* contrib/hbide/hbide.prg
+ Implemented ::goto() method. Invoke it by "Goto Line" icon.
+ Implemented save/restore position of various dialogs.
* contrib/hbide/hbide.ch
+ contrib/hbide/hbide.env
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/projects/hbide.hbi
* contrib/hbide/resources/projectproperties.ui
+ Started the possibility to switch to any compiler while building a project.
! Implemented tooltips on <Project Properties> dialog components.
+ Added one more tab <Compilers> which holds the contents of hbide.env
residing alongside hbide.exe.
NOTE: hbide.env is an experimental feature and as such name and location
of this file may change in future.
! Few more artifacts corrected.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
! Implemented <New Project> and <Load Project> prompts of
context menu of <Projects> node of <Project Tree>.
+ contrib/hbide/projects/hbide.hbi
! Demonstration project file to show the basic protocol used to
execute next compile/link actions.
This implementation includes real-time view of the resultant
.hbp file which will be supplied to HBMK2. Because, this is going
to be a proposed engine, please experiment with the interface.
Just change diffenrent components and click on <.hbp> tab page.
It will reflect what the final .hbp will be supplied to HBMK2.
I want to be sure I am not missing something.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idetags.prg
* contrib/hbide/resources/projectproperties.ui
! More near TO project properties, will be ready by tomorrow.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
! More properties honored while reloading the sessions.
Now editor tab is opened exactly in the same state it was closed.
Unluckily I am not been to move the cursor to the same position,
I do not know why QTextCursor():movePosition( nPos ) fails.
Anybody has any hint?
+ contrib/hbide/hbide.ch
+ Added new header to manage hbide constants, expected to grow fast.
* contrib/hbide/ideactions.prg
+ "New Properties" icons action changed to "Toggle Project Tree".
"Properties" dialog can be accessed via right-clicking on "Projects"
tree-node of "Projects Tree" left-pane window and selecting "Properties"
option.
* contrib/hbide/hbide.prg
+ Started managing HBIDE properties via "hbide.ini".
The order of loading hbide.ini file is :
1. Supplied as first parameter to hbide.exe ( with fully qualified path ), then
2. The start-in folder from where hbide.exe is executed, last
3. The folder where hbide.exe is resident as returned by hb_DirBase().
If hbide.ini is not located as above, new file is created on exit.
Hbide.ini holds the various elements belonging to IDE operations and
is expedted to grow in contents with further development. Right now it may
look-like as:
hbide.ini
=========
[HBIDE]
MainWindowGeometry = 135,36,1099,682,
ProjectTreeVisible = YES
ProjectTreeGeometry = 0,0,88,616,
FunctionListVisible = YES
FunctionListGeometry = 0,20,150,596,
RecentTabIndex = 0
CurrentProject =
[PROJECTS]
[FILES]
C:/harbour/contrib/hbxbp/xbpradiobutton.prg
C:/harbour/contrib/hbxbp/xbprtf.prg
C:/harbour/contrib/hbxbp/xbpstatusbar.prg
.........
Next invocation of ide will retain the location and size of the windows,
files opened, last tab in focus, state of <Project Tree> and <Functions List>
per visibility. There are a lot of notes on my drawing-board to implement.
Just for now please report back your opinions.