Commit Graph

13 Commits

Author SHA1 Message Date
Pritpal Bedi
dd31e942eb 2010-07-15 18:54 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* 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
    ! Changed: the space character not to terminate the code completion dialog.
      It is needed for commands to be selected at next level.

  + contrib/hbide/plugins/hbide_script_rdds.prg
    + Added a dummy script to supply the required info
      for different actions of an RDD operation if another 
      RDD is linked with hbIDE. DBFCDX and DBFNTX are 
      linked by default.
      To make this feature functional, this dummy script has 
      to be popiulated with real-time code and be copied inside
      "resources" folder with another name prefixed as:
         hbide_persist_myrdd.prg
      A complete example will be published in the meantime.

  * contrib/hbide/hbide.prg
  * contrib/hbide/idebrowse.prg
  * contrib/hbide/ideplugins.prg
    + Implemented: persistent record/order/rowpos/colpos 
      of ideDBU views. Now tables are opened in the same 
      state of last run.

    + Totally reworked table-management engine. Now supports 
      external RDDs if linked which take effect automatically 
      for database operations, i.e., /rdds/exists/select/open;
      more actions will follow.
2010-07-16 02:05:41 +00:00
Pritpal Bedi
5aed11e87b 2010-07-11 19:29 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/hbide.hbp
    - Deleted: ideprotos.prg

  - contrib/hbide/plugins/example_gui.hbs
  + contrib/hbide/plugins/hbide_script_qtgui.hbs
    + Added: the prefix "hbide_script_" to hbide callable script files.

  - contrib/hbide/plugins/savebackup.hbs
  + contrib/hbide/plugins/hbide_plugin_savebackup.hbs
    + Added: the prefix "hbide_plugin_" to hbIDE plugin files.

  + contrib/hbide/resources/file-open.png
  * contrib/hbide/hbide.qrc
    + Added: one more image for tool-buttons on "Files" page of "Setup".

  * contrib/hbide/editor.ui
  * contrib/hbide/environments.ui
  * contrib/hbide/setup.ui
    % Modified and Added: some of the components.

  * contrib/hbide/hbide.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/ideenviron.prg
  * contrib/hbide/ideharbourhelp.prg
  * contrib/hbide/idehbprotos.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideplugins.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/ideskeletons.prg
  * contrib/hbide/idesources.prg
  * contrib/hbide/idethemes.prg
    + Implemented: hbIDE installation independent paths to hold 
      various files and components. Now only hbide.ini reference is 
      required to load all other parameters pointing to next 
      needed locations for various components. It also effectively
      means that hbIDE can be distributed as stand alone single 
      executable ( if linked statically with Qt ) or only with 
      Qt's run-time .dlls. hbIDE now makes no assumptions itself.
      User has to furnish few infos, though, interfaced at a single point.

      The Interface to hold information : <Setup><Files>
 
      The Paths and Files Interpretation:

         0. hbide.ini Path                  - File - Cmd Line: APPDATA|HOME/hbide
         1. Harbour's Root Path             - Path - No Assumptions: should be provided
         2. Hbmk2 Executable Location       - File - Default: hb_getenv("HBIDE_DIR_HBMK2")/hbmk2
         3. Resources [Plugins,Scripts,etc] - Path - Default: _Path_of_hbIDE_ini_
         4. Temporary Files                 - Path - Reserved: TODO
         5. Environments [.env]             - File - Default: _Path_of_hbIDE_ini_dot_env
         6. Keyboard Mappings [.scu]        - File - Default: _Path_of_hbIDE_ini_dot_scu
         7. Code Snippets [.skl]            - File - Default: _Path_of_hbIDE_ini_dot_skl
         8. Syntax Highlighter Themes [.hbt]- File - Default: _Path_of_hbIDE_ini_dot_hbt

      The interface provides for a quick editing of .env.skl.hbt files in-place.
      Interface also provides for viewing facility of hbide.ini file.
 
      Plugins and scripts have gone prefix and usage changes:

         1. _Path_to_Resources/hbide_auto_*.hbs|prg are automatically executed
            just after hbIDE appears on the screen.

         2. _Path_to_Resources/hbide_plugin_*.prg|hbs|hrb can be defined to be 
            executed as per previous instructions.
 
         3. _Path_to_Resources/hbide_protos_* are automatically loaded for 
            code completion lists leading to proto-tips. [New - details below]

    + Implemented: auto loading of code completion lists and proto-tips.
      Any file as hbide_protos_SOMENAME_with_or_without_extention placed in 
      _Resources_ folder will be automatically loaded at startup. These files 
      are plain text files. The following rules apply:

         1. Each proto must be placed on one line.
         2. Blank lines are permissible.
         3. Commands can be placed on multiple lines, 
            each line ending with ";" except the last one, like:
               COPY [TO <(f)>] [SDF] [FIELDS <fields,...>] ;
                    [FOR <for>] [WHILE <while>] [NEXT <next>] ;
                    [RECORD <rec>] [<rest:REST>] [ALL] [CODEPAGE <cp>]
         4. Functions must be opened with a brace without any preceeding space:
               MyFunction ( abd, cde, efg )  =>  Wrong
               MyFunction( abd, cde, efg )   =>  Right

      I must be omitting some more facts which may have been changed|removed.
      Also regression is possible, please make few tests and report back if 
      something went weired.
2010-07-12 04:41:12 +00:00
Pritpal Bedi
8592af5e5b 2010-07-06 12:46 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/ideedit.prg
    ! .hbs extension treated as .prg for editing operations 
      and syntax highlighting.

  * contrib/hbide/ideeditor.prg
    ! .hbs extension treated as a source.

  * contrib/hbide/ideplugins.prg
    ! deleted redundant code.

  * contrib/hbide/ideprojmanager.prg
    ! Enabled to compile a source and run it without any project 
      definition ( Reported by Antonio Linares ).

  * contrib/hbide/idesaveload.prg
    ! Included .hbs as valid text file extension.
2010-07-06 19:52:42 +00:00
Pritpal Bedi
798bdbb490 2010-07-06 00:51 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/idebrowse.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideplugins.prg
  * contrib/hbide/idesaveload.prg
    + Implemented: drg/drop support in "Projects" tree.
      Now you can drop .hbp project files onto it.

    % Fixed: RTE when a table was being opened twice.
      Now an alert message is flashed to this effect.

    ! Fixed: right-side dock widgets visibility behavior.
      Before next clicked dock was hidden under the tabs and 
      user had to click again on the tab.
2010-07-06 07:58:14 +00:00
Pritpal Bedi
827cb234db 2010-07-05 15:05 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/hbide.prg
  * contrib/hbide/idebrowse.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideplugins.prg
    + Implemented: drag and drop support at two points:
        1. When a valid text file supported by hbIDE 
           is dragged and dropped on editor widget.
        2. When a .dbf file is dropped on ideDBU widget.

      Please feel free to extend your comments.
2010-07-05 22:15:06 +00:00
Pritpal Bedi
dc8dbd7b7b 2010-07-04 15:48 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/ideplugins.prg
    + Extended auto execuable scripts to have .hbs extension 
      besides .prg.
2010-07-04 22:51:59 +00:00
Pritpal Bedi
683038d42e 2010-07-04 15:18 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/idemisc.prg
    + #include "hbextern.ch"

  * contrib/hbide/ideplugins.prg
  * contrib/hbide/hbide.prg
    + Implemented: execution of auto scripts.
      Any .prg placed in /plugins folder with "auto_" prefix,
         f.e., /harbour/contrib/hbide/plugins/auto_setenv.prg 
      will be executed just after hbIDE dialog is made visible.
      hbIDE itself is passed as only parameter sent to the 
      script. The idea is to allow developers of miscllaneous
      GUI libraries to setup their own environment variables.
      Another aspect of this feature could be changing the 
      behavior of hbIDE itself through its various component
      objects, though it may need some more API functions.
      An idea which can be extended and offers developers 
      greater control over the affairs.

    ! Modified last commit's missing entry.

2010-07-04 14:17 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
    ! Fixed: horizontal selection where background color was 
      missed by a couple of pixels to the left.    

  * contrib/hbide/idefindreplace.prg
    ! Fixed to not "find" twice if "Return" is pressed.

  * contrib/hbide/ideedit.prg
2010-07-04 22:31:25 +00:00
Viktor Szakats
45492b8cd9 2010-06-29 13:13 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbide/ideplugins.prg
    + Added support for .hbs extension (handled similarly as .prg).
      The logic is very fuzzy here, it could be greatly simplified
      like it is in hbrun or hbmk2. I don't understand why hbide
      is trying to guess the filename, shouldn't it be the basic
      input parameter? or even better the result of a DIRECTORY()
      scan, as we've discussed?

  * contrib/hbide/plugins/savebackup.prg
    - Deleted .ch header reference to make it work as source 
      code plugin.

  - contrib/hbide/plugins/savebackup.hrb
    - Delete prebuilt .hrb. It's better to use the source version
      by default.
2010-06-29 11:14:22 +00:00
Pritpal Bedi
580ed68ee0 2010-06-27 19:34 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/toolsutilities.ui
    + Added "Plugin" "Init at startup" slots.

  * contrib/hbqt/hbqt_hbslots.cpp
    + Deactivated: one tracelog entry.

  * contrib/hbide/hbide.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideedit.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideplugins.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idethemes.prg
  * contrib/hbide/idetools.prg

    % Fixed: docking widgets had stopped to be resizable.

    + Enhanced: plugins are now supported in .prg format also.

    + REQUESTed all hbQT and hbXBP classes for scripts to be 
      completely functional.

    + Added: "Plugins" combo-box and "Init at startup" checkbox in 
      "Tools & Utilities" dialog below to "Command Line Parameters".
      If "Init at startup" checkbox is checked then this plugin 
      is initialized at startup. Such defined plugins can be placed 
      on user-defined toolbars and can be executed directly from 
      there. 

      "Parameters" editbox can hold the parameters passed to the plugin.
      The format of such parameters is like command line but with one 
      difference that string parameter are enclosed in double quotes and 
      separated by spaces. For example: "open" 100 100 700 500.

    + Initialized: plugins at the startup which are flagged as such 
      through  "Tools & Utilities" interface. It facilitate to hook
      user defined parameters, object tweakings, etc at the startup.
      For example, user can setup compiler and or build environment
      with hb_setEnv() functions.
  
    + Top-Toolbar icon "Run as Script". This option allow you to run 
      source of current editing instance as a script. It is especially 
      handy to debug isolated dialogs etc on the fly. Below is an 
      example to test a dialog:

         FUNCTION Main()
            LOCAL oDlg
            LOCAL nT := 10, nL := 10, nW := 300, nH := 200

            oDlg := QDialog():new()
            oDlg:move( nT, nL )
            oDlg:resize( nW, nH )

            oDlg:exec()

            RETURN NIL
     
      NOTE: no preprocessor is available, so all variable must be self contained.

      Preceived, thoughtof, tested, by Antonio Linares, thanks.
2010-06-28 03:29:19 +00:00
Viktor Szakats
d37442fc17 2010-06-03 18:30 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/hbqt_hbqtableview.h
  * contrib/hbqt/hbqt_hbevents.h
  * contrib/hbqt/hbqt_hbdbfmodel.cpp
  * contrib/hbqt/generator/hbqtgen.prg
  * contrib/hbqt/hbqt.ch
  * contrib/hbqt/hbqt_errorsys.prg
  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
  * contrib/hbqt/tests/demoqt.prg
  * contrib/hbqt/THbQtUI.prg
  * contrib/hbqt/hbqt_hbqmainwindow.h
  * contrib/hbqt/hbqt_hbqtableview.cpp
  * contrib/hbqt/hbqt_hbevents.cpp
  * contrib/hbqt/hbqt_hbqplaintextedit.h
  * contrib/hbqt/gtqtc/gtqtc.cpp
  * contrib/hbqt/gtqtc/hbgtqtc.ch
  * contrib/hbqt/gtqtc/gtqtc.h
  * contrib/hbqt/hbqt_hbslots.h
  * contrib/hbqt/hbqt.h
  * contrib/hbqt/hbqt_hbdbfmodel.h
  * contrib/hbqt/hbqt_destruct.cpp
  * contrib/hbqt/plug_moc.prg
  * contrib/hbqt/hbqt_utils.cpp
  * contrib/hbqt/hbqt_misc.prg
  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
  * contrib/hbqt/hbqt_hbqmainwindow.cpp
  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
  * contrib/hbqt/hbqt_base.cpp
  * contrib/hbqt/hbqt_hbslots.cpp
  * contrib/hbziparc/hbziparc.prg
  * contrib/hbxbp/xbpappevent.prg
  * contrib/hbxbp/xbpsle.prg
  * contrib/hbxbp/xbplistbox.prg
  * contrib/hbxbp/xbppresspace.prg
  * contrib/hbxbp/xbpcheckbox.prg
  * contrib/hbxbp/xbpmenubar.prg
  * contrib/hbxbp/xbpradiobutton.prg
  * contrib/hbxbp/xbprtf.prg
  * contrib/hbxbp/xbpfiledialog.prg
  * contrib/hbxbp/xbpclipboard.prg
  * contrib/hbxbp/tests/demoxbp.prg
  * contrib/hbxbp/xbpbrowse.prg
  * contrib/hbxbp/xbptabpage.prg
  * contrib/hbxbp/xbpwindow.prg
  * contrib/hbxbp/xbpcombobox.prg
  * contrib/hbxbp/xbpstatusbar.prg
  * contrib/hbxbp/xbppushbutton.prg
  * contrib/hbxbp/xbpbitmap.prg
  * contrib/hbxbp/xbpprintdialog.prg
  * contrib/hbxbp/xbpprinter.prg
  * contrib/hbxbp/xbpscrollbar.prg
  * contrib/hbxbp/xbpfontdialog.prg
  * contrib/hbxbp/xbphtmlviewer.prg
  * contrib/hbxbp/xbpstatic.prg
  * contrib/hbxbp/xbptreeview.prg
  * contrib/hbxbp/hbpprocess.prg
  * contrib/hbxbp/xbpdialog.prg
  * contrib/hbxbp/xbpstyle.prg
  * contrib/hbxbp/xbptoolbar.prg
  * contrib/hbxbp/xbp3state.prg
  * contrib/hbxbp/xbpparthandler.prg
  * contrib/hbxbp/xbpspinbutton.prg
  * contrib/hbxbp/xbpdataref.prg
  * contrib/hbxbp/xbpgra.prg
  * contrib/hbxbp/xbpgeneric.prg
  * contrib/hbxbp/xbpmle.prg
  * contrib/hbblink/hbblink.ch
  * contrib/hbblink/blinker.prg
  * contrib/hbfship/secondfs.c
  * contrib/hbfship/pvalue.c
  * contrib/hbcups/hbcups.c
  * contrib/hbfoxpro/hbfoxpro.ch
  * contrib/hbfoxpro/dll.prg
  * contrib/hbcomm/tests/test.prg
  * contrib/hbcomm/hbcomm.prg
  * contrib/hbide/ideharbourhelp.prg
  * contrib/hbide/idefindreplace.prg
  * contrib/hbide/ideplugins.prg
  * contrib/hbide/ideedit.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/hbide.ch
  * contrib/hbide/idemisc.prg
  * contrib/hbide/idewizard.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/ideobject.prg
  * contrib/hbide/ideskeletons.prg
  * contrib/hbide/plugins/savebackup.prg
  * contrib/hbide/idefunctions.prg
  * contrib/hbide/iderequests.prg
  * contrib/hbide/idestylesheets.prg
  * contrib/hbide/ideenviron.prg
  * contrib/hbide/idesources.prg
  * contrib/hbide/idethemes.prg
  * contrib/hbide/idehome.prg
  * contrib/hbide/hbide.prg
  * contrib/hbide/ideshortcuts.prg
  * contrib/hbide/idetags.prg
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/idetools.prg
  * contrib/hbide/resources/hbmk2_plugin_hbide.prg
  * contrib/hbide/idedocwriter.prg
  * contrib/hbide/ideparseexpr.c
  * contrib/hbide/idedocks.prg
  * contrib/hbsms/hbsms.prg
    * Deleted 'www.' from harbour-project.org website name.
      (www.harbour-project.org -> harbour-project.org)
2010-06-03 16:33:27 +00:00
Pritpal Bedi
51f3437a79 2010-17:24 07:29 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/plugins/savebackup.hrb
  * contrib/hbide/plugins/savebackup.prg
    ! Fine tuned to receive correct number of parameters.

  * contrib/hbqt/doc/en/class_hbqplaintextedit.txt
  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
  * contrib/hbqt/hbqt_hbqplaintextedit.h
  * contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
  * contrib/hbqt/qtgui/THBQPlainTextEdit.prg
  * contrib/hbqt/qth/HBQPlainTextEdit.qth

  * contrib/hbide/hbide.prg
  * contrib/hbide/idedocks.prg
    + Added Icon: Toggle current Line Highlight in "Lines" toolbar.
      Public API method is ::toggleCurrentLineHilight().

  * contrib/hbide/ideedit.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/ideenviron.prg
    ! Reverted: line edits font - monospace to GUI.

  * contrib/hbide/ideobject.prg
  * contrib/hbide/ideplugins.prg
    ! tuned to send oIDE and cVer as first and second 
      argument to {plugin}_init( oIde, cVer ).

  * contrib/hbide/ideprojmanager.prg
    ! Reverted: line edits font - monospace to GUI.

  * contrib/hbide/ideshortcuts.prg
    + Public Method - ::toggleCurrentLineHilight().
      Toggles displaying current line in distinct color.

  * contrib/hbide/idethemes.prg
    + Activated: Selection Background slot.
      It facilitates to control the color of selections per theme basis.

    + Prepared to toggle matching braces mode - both vs single.
      "Setup" dialog will contain its place holder.

    % Fixed many other artifacts coming into way, and possibly
      might have broken a few ones, please report.
2010-05-12 00:41:24 +00:00
Pritpal Bedi
10d32ec705 2010-05-09 20:11 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.prg
  * contrib/hbide/ideplugins.prg
    % Changed: plugins are loaded on first call instead of 
      loading all plugins at startup. Now the overhead is negligible.
2010-05-10 03:14:05 +00:00
Pritpal Bedi
ba7459e2cb 2010-05-09 17:21 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
+ contrib/hbide/plugins
  + contrib/hbide/plugins/savebackup.hrb
  + contrib/hbide/plugins/savebackup.prg
    + Source and corresponding .hrb ( -gh ) plugin.
      In practice .prg is never required for this purpose.
      The source accompanying here is for demonstration purposes
      which exposes elements to comprehend.

  + contrib/hbide/resources/selectionline.png
    + Image to be activated when "Line" selection mode is on.

  * contrib/hbqt/hbqt_hbqplaintextedit.cpp
        
  * contrib/hbide/hbide.hbp
    + Added ideplugin.prg

  * contrib/hbide/idethemes.prg
    + Added more keywords for syntax-highlighting.

  * contrib/hbide/hbide.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideedit.prg
  * contrib/hbide/ideeditor.prg
  + contrib/hbide/ideplugins.prg
    + Priliminary commit to handle plugins.

  * contrib/hbide/ideshortcuts.prg
   
    + Implemented: a very simple yet powerful interface to hook plugins. 
      The idea got polished with Francesco Perillo's description of the thought.

      Creating a hbIDE plugin
      =======================
         A .hrb ( compiled with -gh as the minimum ), i.e., savebackup.prg, 
         having two mandatory functions:
         
         1. hrb_file_name_without_extension_plus_underscrore_plus_INIT()
               savebackup_INIT( ... ) -> TRUE/FALSE
         2. hrb_file_name_without_extension_plus_underscrore_plus_EXEC()
               savebackup_EXEC( oIde, ... ) -> xValue

         savebackup_INIT() will be used to establish hand-shake and it must 
         return a logical indicating success or failure. Currently it is 
         called with "1.0" as version no but is scheduled to be enhanced 
         in future.

         If hand-shake is successful, means, savebackup_INIT( ... ) returns 
         with TRUE, savebackup_EXEC( oIde, ... ) is called as per user 
         request. oIDE is sent as the first argument followed by user supplied
         arguments. Within this function in .hrb, all action takes place.
         User can write n number of functions withing the same source but  
         all other functions will always be STATIC ones. 

         The whole hbIDE object is passed with each execution and hence 
         user is having utmost control over what he wants to accomplish.
 
      Location of the Plugin
      ======================
         All plugins ( .hrb ) must reside within "plugins" sub-folder from hbIDE.exe 
         location. The location is determined with return value of 
         hb_dirBase() + hb_osPathSeparator() + "plugins" + hb_osPathSeparator().

      Loading Plugins
      ===============
         At startup hbIDE looks into "plugins" folder for all .hrb files.
         It then tries to establish hand-shake with them. If successful, a
         handle is retained in static array. When an execution request is 
         encountered, this static array is searched for and 
         savebackup_EXEC( oIDE, ... ) is called and return value is passed 
         back to the caller macro.

      Executing Plugins in hbIDE
      ==========================
         A public method ::execPlugin( cPlugin, ... ) is implemented under 
         "Keyboard Mappings". ::execPlugin is called with plugin name, which 
         essentially is the .hrb file name. So in demo example, it is 
         "savebackup". Final expression would be like : 
            ::execPlugin( "savebackup", "saveas" )
         Here "saveas" is the identifier which is used in this demo to invoke
            STATIC FUNCTION savebackup_saveAs( oIde )
         Author of plugin has to decide how and what he would like to pass
         what and in how many. So simply build a macro to call a plugin
         with parameters, that's it.
 
      I am hopeful that you, brilliant programmers, with help extending hbIDE
      to an amazing levels. Send your critics to the list to enrich this thought.
2010-05-10 01:18:04 +00:00