* 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/setup.ui
+ contrib/hbide/resources/setup.uic
+ New dialog to hold setup and ini information - in the making.
* contrib/hbide/hbide.prg
! "Output Console" made hidded even if at previous run it was visible.
* contrib/hbide/ideactions.prg
+ New menu option <Setup><hbIDE Setup> to invoke Setup dialog.
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
! Fixed error reported by few which appears randomely
and I could not reproduce.
* contrib/hbide/idesaveload.prg
+ Added class IdeSetup() - in the making.
* 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/hbide/resources/curlinehilight.png
! Some refinement though not sufficient yet.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbide/ideedit.prg
! More optimization and behavioral changes is selected text.
Still litte more work to be done.
* contrib/hbide/idesaveload.prg
! Reintroduced "settings.ide" .ini like file, placed along
hbide.ini", to hold Qt written hbIDE settings. This reversal
is triggered by the fact that, under unknown circumstances,
Qt just mangles the hbIDE.ini contents to a level that a lot of
information it stores is lost. This has happened to me many
times after the settings info was made to be retained in
hbIDE.ini itself. Please do not change it until I come up
with the way to read and write byte arrays per Qt.
Below is the little snapshot what Qt inserts some info
inside existing other text not meant for "idesettings" keyword:
=================================
[FIND]
find_1=setselection
find_2="imagesfind_3=images/"
find_4=":/\r\nfind_5=ShowCaretAtCurrentPosition\r\nfind_6=moveExtendsSelection\r\nfind_7=oDlg\r\nfind_8[ MORE LIKE IT ] +
,,,,,\r\n \r\n[General]\r\n \r\n"
[ ALL OTHER SECTIONS BELOW MANGLED AS ABOVE ]
[General]
hbidesettings="@ByteArray( [ PLUS MORE, IT IS CORRECT ]
=================================
* 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/hbide/idesaveload.prg
+ Implemented: hbIDE data files to be saved/retrieved in
system folders if hbide.ini with path is not supplied
on the command-line. The following algorythm is used:
FUNCTION hbide_getIniPath( cHbideIni )
LOCAL cPath, cIni
IF empty( cHbideIni )
IF ! hb_FileExists( cIni := hb_dirBase() + "hbide.ini" )
#if defined( __PLATFORM__WINDOWS )
cPath := hbide_DirAddPathSep( GetEnv( "APPDATA" ) ) + "hbide\"
#elif defined( __PLATFORM_UNIX )
cPath := hbide_DirAddPathSep( GetEnv( "HOME" ) ) + ".hbide/"
#endif
IF ! hb_dirExists( cPath )
MakeDir( cPath )
ENDIF
cIni := cPath + "hbide.ini"
ENDIF
ELSE
cIni := cHbideIni
ENDIF
RETURN cIni
This change makes hbIDE to be able to run on any system
installed via an installer where a writable folder is expected
to write to application data.
Thanks Viktor for the actual code and guidance.
* 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/hbxbp/hbpprocess.prg
+ Implemented ::lDetached functionality to execute a process independent
from application's process.
* contrib/hbide/resources/toolsutilities.ui
* contrib/hbide/resources/toolsutilities.uic
* contrib/hbide/hbide.hbp
+ Added ideshortcuts.prg
* contrib/hbide/hbide.prg
* contrib/hbide/ideenviron.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
+ contrib/hbide/ideshortcuts.prg
+ Started "Public Methods" which will lead to define shortcuts by the user.
* contrib/hbide/idethemes.prg
* contrib/hbide/idetools.prg
* contrib/hbide/idewizard.prg
+ Reworked : from bottom up, the "Tools and Utilities" protcol.
Now it is possible to execute any type of file. It also
opens the door to host any language specific projects inside hbIDE.
DETAILS: http://hbide.vouch.info/ ( Topid: Tools and Utilities ).
* 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.
* src/rtl/hbini.prg
* Deleted several unnecessary empty lines at EOF.
* INSTALL
* Minor.
* include/dbinfo.ch
* Formatting.
+ include/hb.ch
* include/Makefile
+ Added Harbour header which #includes commonly used in
applications.
It also enables us to easily extend standard set of macros
and constants.
* contrib/hbide/idesaveload.prg
* "hbide.set" -> "hbidewnd.ini". At least it uses standard
extension. Still wrong solution and a remaining TOFIX.
* 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/hbide/resources/harbour_splash.png
* contrib/hbide/resources/themesex.ui
* contrib/hbide/resources/themesex.uic
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idethemes.prg
+ Splash screen popping up at the startup before main
window is displayed. Your comments are welcome.
! Enabled menu options which were accidentally got disabled some
time back, do not remember - why.
! Themes: centralized "Set as Default" option in "Images" dialog.
Removed from <Setup> menu option.
! Some more rationalizations.
* 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/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/skeletons.ui
* contrib/hbide/resources/skeletons.uic
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
+ Implemented "Invert Case" feature.
% All operations applied on selected text do not remove selections.
However "undo/redo" does not respect selections.
+ Added <Docks> main-menu option which presents toggling feature
for all implemented docked windows. It facilitates clubbing
all toggle actions at one convenient place.
+ Implemented "Code Skeletons".
How to write
============
* Click <Docks> main-menu option and select <Code Skeletons>.
* "Code Skeletons" window will open at the right-docking area.
* Close other docks if open to make room for its components.
* Click <Add New> button, a dialog will appear requesting a "Name".
* Enter recognizable name for this skeleton, i.e., "DO CASE 3",
where "3" will represent that this case statement contains 3
iterations of CASE statement. It is just an example, follow
your way of recognitions.
* After you click <ok> the name will appear in "Identity" list-box.
* Start writing in "Code Snippet" editor, like:
DO CASE
CASE x ==
CASE x ==
CASE x ==
ENDCASE
* After you are done with it, click <Update>.
* Repeat the process for some other skeletons.
* Do not forget to click <Update> even after slightest modification.
This will ensure that your skeleton is always in order.
* If you wish to change the name, click on that "Name" in
"Identity" list-box and click <Rename>, follow next process.
Click <Update> to save permanently.
* <Delete> is not working yet.
* Navigate the skeletons by clicking on the prompts; you will
find the attached code in the editor below.
How to Call
===========
* While in the editor tab, position your editing cursor at
desired column.
* Press Ctrl+K, a context menu will appear near left-upper part
of the editing tab containing all skeletons you wrote.
* Use arrow-up/down keys to desired skeleton and press <Enter>.
* The code skeleton will be inserted in the source aligned
to the column you started with. The cursor will be anchored
on the same place.
* Alternativly you can use mouse, but keyboard navigation is
simple in this context.
* Note that alignment and indent of inserted code skeleton is
perfect to starting column.
Note: Your suggessions are welcome to enhance this feature.
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/qtgui/filelist.mk
+ contrib/hbqt/qtgui/QPlainTextDocumentLayout.cpp
+ contrib/hbqt/qtgui/TQPlainTextDocumentLayout.prg
+ contrib/hbqt/qth/QPlainTextDocumentLayout.qth
+ Added one more class.
+ contrib/hbide/resources/skeletons.ui
+ contrib/hbide/resources/skeletons.uic
+ Added widget definition to hold user input for "code skeletons".
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idethemes.prg
+ Prepared to fetch "Code Skeletons" from the user which will be
made available to be inserted into the source being edited.
To have a preview as to what will go inside the implementation,
click on "{}" icon on the toolbar.
! Fixed not to load whole document and highlight when hbIDE is
terminated. This reduces termination time to bare minimum.
+ Implemented "Convert Single Quotes to Double" and its reverse,
accessible from <Edit><Block...> main-menu options. First select the
part of the source you want to apply these options, then click
on relevant menu option. A toolbar implementation will be better
which I am looking into how it can be presented in an aesthetic way.
! Fixed many more artifacts.
; NOTE: Regression is possible, please report issues, if any.
* 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.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.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/hbqt/hbqt_destruct.cpp
+ Added .prg callable hbqt_QMainWindow_saveSettings() and
hbqt_QMainWindow_restSettings(). These two functions are
essential to save and restore last hbIDE interface exactly
in the same state it was closed last. This I could not achieve
via pure .prg code.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idesaveload.prg
+ Implemented restoring exact geometry of main window plus
all the docking windows plus toolbars. hbIDE creates
idesettings.ini in the folder returned by hb_dirBase().
Note that idesettings.ini is not a windows .ini format
and please do not try to change even a single byte of its
contents.
+ Implemented splitting any source into multiple windows.
This implementation allows you to edit different parts of
same source simultaneously. This feature allows you to split
window horizontally or vertically. You can split many times.
This feature can be activated as such:
1. Right-click somewhere in the editing tab
2. Context menu will be displayed, point to <Split> item
3. Select from "Split Horiz..." etc.
Please report any functionality which may be incorporated hereunder.
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
+ Added QList<QObject *>listObj member.
There was no guard against an object connected
more than once for the same slot. That's why menu
and toolbar actions were being executed twice.
* contrib/hbqt/qtcore/QSettings.cpp
* contrib/hbqt/qtcore/TQSettings.prg
* contrib/hbqt/qth/QSettings.qth
! Added missing static functions.
* contrib/hbxbp/xbpmenubar.prg
! Extended guard against invalid QAction.
* contrib/hbxbp/xbpwindow.prg
! QPoint() was being accessed without initialization.
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idesaveload.prg
! Fixes to execution of menu and toolbar events twice.
! Some more artifacts set right.
* contrib/hbide/projects/hbide.hbi
! Deleted hard-coded -o directive, no longer needed.
! Project paths are now shown without meta-dat.
* contrib/hbide/resources/projectproperties.ui
! Changed components background behavior not to use gradients.
Now it is plain vanila white.
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
! Another round of reforms. And I am almost done with them. But wait...
! Started implementation of .env concept. What was missing from
hbIDE => hbMK2 were the shell commands minimum necessary to
let hbMK2 engine take control of. Now it can be done via
QProcess:setEnvironment() call. I have left under the commented
code in ideprojmanager.prg:
/* Mechanism to supply environment variables to called process */
/* I do not know nixes but assume that Qt must be issueing proper */
/* shell command for the target OS to set them. */
/* If I am not wrong, HBMK2 can have these variables alread set */
/* and hence developer can choose any compiler of his choice. */
/* */
/* Actually, this was the intension in hbIDE.env I commited in IDE root */
I am been able to compile/link/execute hbIDE.exe after setting ( WinXP )
qListSets := QStringList():new()
qListSets:append( "HB_WITH_QT=c:\qt\4.5.3\lib" )
::qProcess:setEnvironment( qListSets )
just before triggering the process.
Your input is desired as I know nothing about make system.
! Fixed many artifacts difficult to jot-down.
+ Implemented not to load any source until brought forward for view.
This has increased the loading speed extremely fast and always
consistent in timing. This feature was hanging on my drawing board
since begining.
This effectively means that sessions with any number of source tabs
will not pose speed panelty.
TODO: Syntax highlighting is a slow process, to speed-up.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
! Next round of reforms, stay patient.
! Implemented to hold last working project.
! Fixed to not generate error if an open project is tried
to reopen.
! Many small artifacts correctd.
* 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/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbslots.cpp
- Deleted old method of slots/events handling.
* contrib/hbide/idethemes.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
% Using hb_FileExists() instead of File().
! Fixed to not force lowercase on filenames.
/*
This commint is from Vailton Renato and applied as is
Please set me right if something is omitted.
Changes are written below as published on DL.
*/
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.env
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/resources/hb-16x16.png
+ contrib/hbide/resources/hb-32x32.png
+ contrib/hbide/resources/list-developers.png
+ contrib/hbide/resources/list-users.png
+ contrib/hbide/resources/new2.png
+ contrib/hbide/resources/project.png
+ contrib/hbide/resources/vr-16x16.png
! isValidText() some more valid extensions added
! editSource() message appears if the file open is not supported.
! loadIni()
Implemented support for RecentFiles & RECENTPROJECTS sections.
Optimized support for section names regardless of case used.
Enhanced with SWITCH instead of CASE.
Optimized initialization oide:Aini regardless of the amount
expected items in the INI file.
Implemented a basic validation to ignore invalid
sections in the INI file.
+ Added a few new icons for the menu of the application.
! FILE > recent files -> implementation done.
! FILE > recent projects -> implementation done.
! FILE > SAVE AND EXIT -> implementation done.
! FILE > OPEN -> supports opening multiple files
! FILE > REVERT -> implementation done.
+ findEditByFileName() - new method to Find an item in a
Edits[] based on the file name passed as argument.
+ findEditByID() - new method to Find an item in
aEdits[] based on the ID passed as argument.
+ HbIde:closeAllSources() -> implementation done.
! HbIde:closeSource() -> rewritten to support the closeAllSources() method
+ HbIde:closeAllOther() -> implementation done.
+ HbIde:saveSourceAs() -> implementation done.
+ HbIde:updateTitleBar() -> New method to updates the title bar of the
main window, indicating the project and the current filename.
+ HELP > About - implementation done.
+ HELP > Harbour on line - implementation done.
+ HELP > HB Users Mailing - implementation done.
+ HELP > HB Developers Mailing - implementation done.
+ EDIT menu items were attached to the existing options
in ::executeAction()
! IdeFindReplace:show() -> Detect if current edit has any selected text.
! hbide now displays the text "Untitled XX" on creating a new file.
NOTE: Something is not right because when I click the close
button to close the main window and he asks me if I want
to save the files and when I click CANCEL it has to abort
the process and not close the system as it is occurring.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idesaveload.prg
* contrib/hbide/idethemes.prg
+ contrib/hbide/resources/selectionlist.ui
* contrib/hbide/resources/themes.ui
! Changed the way .ppo is presented. Now a new modeless
window displays .ppo source and thus you have more control
over comaprison with original source. You can keep as many
such .ppo windows on the screen.
+ Implemented Editor Themes.
HBIDE provides 5 default themes, along the lines of xMate, viz.,
1. Classic
2. City Lights
3. Evening Glamour
4. Sand Storm
with a few changes, and
5. Pritpal's Favourite.
Themes interface provides for changing the existing themes
as well as constructing a new one based on any exiting themes.
Then user can save them in hbide.hbt file.
HBIDE always loads default 5 themes as above then,
HBIDE looks for hbide.hbt in the same folder where it is.
If it finds one, it attempts to load it. In the loading
process it will merge the duplicate themes, including the
default ones. It means, if you modify an existing default
theme and then save it in hbide.hbt, at next invocation
default theme will be overwritten and your changes are
reflected. But if the name of the theme is changed you have
yours plus default both themes available.
Default theme is "Pritpal's Favourite" which will be applied
to any source file opened. You can override it by applying
new theme to it. Right click on <Editors Tree><_any_source_file_>
and select "Apply Theme" and finally select from a list of
themes presented in a list box by double clicking onto one
of choice. Next time you open HBIDE thus souce will be
applied the last theme selected.
You can re-define various labels on the Themes Dialog including
drop-down list items of different parts of the sources.
Just examine hbide.hbt and change the values of dialog elements.
Differences from xMate implementation:
1. Theme can be applied to indivisual source separately.
2. Theme elements can have <Italic>, <Bold> and <Underline>
attributes.
3. Themes can be copied and re-defined for n numbers.
TODO: To apply themes per project.
To implement some missing parts of source, such as,
background color of selections, etc.
You are encouraged to test this implementation. I will be
more than happy to implement descent thoughts you can imagine.
* contrib/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/hbide/hbide.hbp
* contrib/hbide/hbide.prg
+ contrib/hbide/idesaveload.prg
+ Added new file separating the code for loading configuration.
Another round of reforms, more follows.