Commit Graph

13079 Commits

Author SHA1 Message Date
Przemyslaw Czerpak
2b2967a314 2010-01-07 10:27 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbvmpub.h
    * minor formatting

  * harbour/contrib/hbnetio/netio.h
  * harbour/contrib/hbnetio/netiosrv.c
    + added new PRG function:
         NETIO_RPCFUNC( <pConnectionSocket> [, <sFuncSym> ] ) -> NIL
      which allows to set user filter for RPC calls. <sFuncSym> is executed
      on each RPC request instead of requested function and receives as
      first parameter requested function symbol then function parameters.
      A simple wrapper may look like:
            static function rpc_filter( sFunc, ... )
               ? "DO", sFunc:name, "WITH", ...
            return sFunc:exec( ... )
      and can be activated by:
            netio_rpcfunc( pConnectionSocket, @rpc_filter() )
      When NETIO_RPCFUNC() is called without valid function symbol then
      existing user RPC filter is cleared. Please remember that setting
      user RPC filter does not automatically enable RPC support for
      given connection socket. RPC support has to be enabled by NETIO_RPC()
      function or by 4-th parameter of NETIO_LISTEN() socket.
2010-01-07 09:27:40 +00:00
Pritpal Bedi
83adc213d0 2010-01-06 18:57 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/ideactions.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idestylesheets.prg
    ! Fixed few more artifacts.
    ! Recent Files and Projects Menu was growing crazy, 
      was a result of not deleting the menu item in XbpMenu() class.
      More attention is required yet.

    ! Fixed Viktor's reported bug.

  * contrib/hbxbp/xbpmenubar.prg
    ! Fixed a very bad type, copy/paste syndrome.
2010-01-07 02:58:58 +00:00
Pritpal Bedi
c420adb7a3 2010-01-06 17:53 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/ideprojmanager.prg
    ! Small fix to prev.
2010-01-07 01:52:03 +00:00
Pritpal Bedi
aaa1edf572 2010-01-06 17:10 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* 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.
2010-01-07 01:33:15 +00:00
Viktor Szakats
f2ba094a9e 2010-01-07 01:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbwin/Makefile
  - contrib/hbwin/win_err.c
  + contrib/hbwin/wapi_err.c
  * contrib/hbwin/hbwin.h
  * contrib/hbwin/hbwapi.h
  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/wapi_winuser.c
  * contrib/hbwin/wapi_winbase_mutex.c
    * Naming cleanup of recent change.
2010-01-07 00:41:10 +00:00
Viktor Szakats
c6ef8c62bb 2010-01-07 00:52 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbwin/win_err.c
  * contrib/hbwin/hbwin.h
  * contrib/hbwin/wapi_winbase_mutex.c
    * Changed low-level hbwin_SetLastError() to accept lasterror 
      as parameter.

  * contrib/hbwin/wapi_winbase.c
  * contrib/hbwin/wapi_winuser.c
    + Added internal handling of GetLastError(). This fixes lost
      GetLastError() values with apps linked with MT HVM.
      [ I didn't review wapi_commctrl.c, but some lazy checking
        on MSDN showed that these are generally not setting GetLastError(). ]
    * WAPI_GETSCROLLRANGE() now set ref params even in case of failure.
    ; TODO: Do some final renaming and rearrangement on the low-level.

  * contrib/hbwin/wapi_winbase_mutex.c
    * Formatting.
2010-01-06 23:59:16 +00:00
Viktor Szakats
2cc8ef44d5 2010-01-06 23:53 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbwin/win_err.c
    ! Fixed GetLastError() in MT mode.

  * utils/hbmk2/hbmk2.prg
    % nSize++ -> nSize = 1

  * contrib/hbide/hbide.hbp
    ! Typo in comment.
2010-01-06 22:54:39 +00:00
Viktor Szakats
24bc432079 2010-01-06 22:26 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    ! Fixed instructions for .deb binary build.

  * contrib/hbide/hbide.hbp
    + Comment extended.

  * utils/hbmk2/hbmk2.prg
    + Comment extended.

  * config/globsh.mk
    ! Fixed typos in nt clean commands.
      [TOMERGE 2.0]

  * ChangeLog
    + Added TOMERGE 2.0 to prev entry.
2010-01-06 21:27:33 +00:00
Viktor Szakats
7fb88b37b0 2010-01-06 21:12 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* mpkg_tgz.sh
    ! Fixed to detect case when tar is mapped to bsdtar
      (such is the case on Snow Leopard). Use slightly modified
      tar command in this case.
      Please review.
    ; TOFIX?: Unpacking stub script always uses 'tar', maybe this
              needs to be fixed, although current command should
              work on Snow Leopard.
    - Deleted comment no longer valid.

  * utils/hbmk2/hbmk2.prg
    ! Fixed C++ memory manager override to handle zero size memory
      request and added protection when free operations are called
      with NULL. Thanks Istvan Bisz and Przemek for input.
2010-01-06 20:13:24 +00:00
Przemyslaw Czerpak
0d4b626818 2010-01-06 17:15 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/hbznet.c
    ! do not use DEF_MEM_LEVEL to avoid potential problems when <zutil.h>
      is not available

  * harbour/contrib/hbnetio/netio.h
  * harbour/contrib/hbnetio/netiocli.c
  * harbour/contrib/hbnetio/netiosrv.c
    + implemented RPC in HBNETIO protocol
    + added the following client functions:
      check if function/procedure exists on the server side:
         NETIO_PROCEXISTS( <cProcName> ) -> <lExists>
      execute function/procedure on server the side,
      do not wait for confirmation:
         NETIO_PROCEXEC( <cProcName> [, <params,...>] ) -> <lSent>
      execute function/procedure on the server side and wait for
      confirmation:
         NETIO_PROCEXECW( <cProcName> [, <params,...>] ) -> <lExecuted>
      execute function on the server side and wait for its return value:
         NETIO_FUNCEXEC( <cFuncName> [, <params,...>] ) -> <xFuncRetVal>
      All above functions use default connection set by NETIO_CONNECT()
      for RPCs but it's also possible to specify server address and port
      in <cProcName>/<cFuncName> just like in <cFileName> parameter in RDD
      functions, i.e.:
         NETIO_PROCEXISTS( "192.168.0.1:10005:MYFUNC" )
    + added new server side functions to enable/disable/check RPC support:
         NETIO_RPC( <pListenSocket> | <pConnectionSocket> [, <lEnable> ] )
               -> <lEnabled>
      if RPC is enabled for listen socket then connection sockets inherit
      this setting.
    + added 4-th parameter <lRPC> to NETIO_LISTEN() function. .T. enable
      RPC support in returned listen socket which is later inherited by
      connection sockets
    * changed protocol version ID - current NETIO clients and servers
      cannot be used with old code

  * harbour/contrib/hbnetio/utils/netiosrv.prg
    * added option to enable RPC support in NETIO server

   If you want to make some test then you can execute netiosrv with
   non empty 4-th parameter as server, i.e.:
      ./netiosrv "" "" "" 1
   and try this code as client:

      proc main()
         // pass server address to netio_connect() for non localhost tests
         ? "NETIO_CONNECT():", netio_connect()
         ?
         ? "DATE() function is supported:", netio_procexists( "DATE" )
         ? "QOUT() function is supported:", netio_procexists( "DATE" )
         ? "HB_DATETIME() function is supported:", ;
           netio_procexists( "HB_DATETIME" )
         ?
         ? netio_procexec( "QOUT", repl( "=", 50 ) )
         ? netio_procexec( "QOUT", "This is RPC TEST", date(), hb_datetime() )
         ? netio_procexecw( "QOUT", repl( "=", 50 ) )
         ? 
         ? "SERVER DATE:", netio_funcexec( "DATE" )
         ? "SERVER TIME:", netio_funcexec( "TIME" )
         ? "SERVER DATETIME:", netio_funcexec( "HB_DATETIME" )
         ?
         ? netio_funcexec( "upper", "hello world !!!" )
      return

   Please remember that only functions linked with server are available.
   If you want to enabled all core functions in netiosrv then please
   uncomment this line in netiosrv.prg:
      REQUEST __HB_EXTERN__


   Have a fun with a new toy. I hope that many Harbour user will find it
   very interesting. Please only be careful !!!. This feature allows to
   execute remotely _ANY_ code on the server side. _NEVER_ leave open ports
   with RPC support for untrusted access.
2010-01-06 16:16:22 +00:00
Pritpal Bedi
53f0ff2643 2010-01-06 00:21 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideprojmanager.prg
    ! Many artifacts corrected.
    ! Build process is now very satisfying if selected an 
      option with right-click on project node in Project Tree window.
    ! Diabled gradients in any window. Is it ok to fine tune
      the windows with plain colors ?
2010-01-06 08:31:20 +00:00
Viktor Szakats
f3b1c88d4e 2010-01-06 08:33 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    + Added HB_TR_OUTPUT to DEBUG section.
2010-01-06 07:39:28 +00:00
Przemyslaw Czerpak
86c9511f2f 2010-01-06 07:27 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtwin/gtwin.c
    + added support for HB_GTI_ISUNICODE

  * harbour/include/hbapifs.h
    * added missing 'extern' in some declarations

  * harbour/include/hbzlib.ch
    + added HB_ZLIB_STRATEGY_* constants
    + added HB_ZLIB_COMPRESSION_DISABLE

  * harbour/include/Makefile
  + harbour/include/hbznet.h
  * harbour/include/hbextern.ch
  * harbour/src/rtl/Makefile
  * harbour/src/rtl/hbinet.c
  + harbour/src/rtl/hbznet.c
    + added support for ZLIB compression in stream sockets.
    + added .prg function:
         HB_INETCOMPRESS( <pSocket>, [<nCompressionLevel>], [<nStrategy>] )
      which enables ZLIB compression for given HB_INET*() socket.
      <pSocket> is a socket created by one of HB_INET*() functions
      <nCompressionLevel> is compression factor between 1 (fastest) and
                          9 (best) (see HB_ZLIB_COMPRESSION_*)
                          0 (none) disable compression on output data
                          but decompression is still working.
      <nStrategy> is used to tune compression algorithm,
                  see HB_ZLIB_STRATEGY_*
      The compression must be enabled on both connection sides, i.e.
      on the server side:
         conn := hb_inetAccept( sock )
         hb_inetCompress( conn )
      and on the client side:
         sock := hb_inetConnect( cServer, nPort )
         hb_inetCompress( sock )
      in the same moment but it's not necessary to enable it at the
      beginning of connection. It can be done later, i.e. when both
      sides agree to enable connection using some custom protocol.
      The compression has effect only on stream connections, i.e.
      TCP and it's ignored in datagram connections like UDP.
      This function can be executed more then once changing the compression
      parameters but it causes that all data in readahead decompression
      buffer is discarded. When called with HB_ZLIB_COMPRESSION_DISABLE
      as <nCompressionLevel> then support for stream compression is removed
      and sockets works again in raw mode.
      The compression level and strategy do not have to be the same on both
      connection sides. Each side can chose the best settings for data it's
      going to send.

      This code was written in a way which allows to easy implement
      alternative compression methods or other extensions like encryption
      in existing HB_INET*() sockets also by non core code. The public C
      functions declared in hbznet.h allows to use this extension with raw
      harbour sockets two.
2010-01-06 06:27:38 +00:00
Pritpal Bedi
ea6051c7cd 2010-01-05 19:01 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbxbp/tests/demoxbp.prg
    ! Changed to HBQT_SET_RELEASE_METHOD( HBQT_RELEASE_WITH_DELETE )

  * contrib/hbide/hbide.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/idemisc.prg
  * contrib/hbide/ideprojmanager.prg
    ! Another round of reforms.
      Vailton, I had to delete some of your code causing the recursions.
      Please note that never ever you should call the methods like
      a->b->a. Please check the code and its usability as per 
      your line-of-thinking. More refinements are under-way.
2010-01-06 03:05:20 +00:00
Viktor Szakats
dc7a864b3b 2010-01-06 01:29 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    * Minor update to prev.
2010-01-06 00:30:32 +00:00
Viktor Szakats
90334476e5 2010-01-06 01:24 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    + Added new section: 7. DEBUGGING OPTIONS
      So far covered: tracing, memory statistics, valgrind and codeguard.
      I'd like to ask our experts to review and if needed extend 
      these informations (send me suggestions and I'll update it).

  * bin/postinst.bat
    + Enabling -debug option on shared tool hbmk2 builds if HB_BUILD_DEBUG=yes.

  * contrib/hbide/ideactions.prg
    ! Typo.
2010-01-06 00:27:55 +00:00
Viktor Szakats
5be3b56876 2010-01-05 20:35 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbide/projects/hbide.hbi
    ! Deleted windows and local environment specific hbmk2
      options, plus a few ones which are automatically pulled anyway
      via hbqt.hbc (which is in turn pulled by hbxbp.hbc).
      Please set HB_WITH_QT to make it find the QT libs. This is
      the universal method.
2010-01-05 19:36:34 +00:00
Viktor Szakats
55849c23a9 2010-01-05 20:23 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/detect.mk
    + Will now verify if HB_QT_MOC_BIN is pointing to an existing filename.
      If not, an error message will be shown, trying to make it clear how 
      to set it up properly. Many users like to set the dir only, which 
      makes the build process fail.

  * contrib/hbide/hbide.prg
    + Switched to HBQT_RELEASE_WITH_DELETE as suggested by Istvan Bisz.

  * contrib/hbqt/generator/hbqtgen.prg
    * Minor cosmetic.
2010-01-05 19:25:17 +00:00
Viktor Szakats
bf7a794d98 2010-01-05 19:13 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Added disctinctive static text which is always linked in
      when C++ mm override is active. This makes it easy to
      verify if C++ mm override is activated in an executable.

  * ChangeLog
    ! Fixed messed text in latest hbmk2 changes.

2010-01-05 18:48 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
  * utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + Added support for C++ input files. Now C++ files will be compiled
      in a separate pass where native C++ compiler is used, which
      means that C++ compilation mode is now enforced by using .cpp
      extension. This also means that it's now possible to build
      mixed mode projects with both C and C++ input files.
      In general, this feature makes -cpp option unnecessary, its
      only purpose now is to override default mode.
    + Added option to override standard C++ memory management functions
      with Harbour ones.
         Enable with option: -hbcppmm (cmdline) or hbcppmm=yes (in .hbc files)
      NOTE1: Suggestions for better names are welcome.
      NOTE2: hbide will now crash with mingw if this option is enabled.
             Any idea why?
    ; Please test.
2010-01-05 18:16:14 +00:00
Viktor Szakats
1cf66dcc83 2010-01-05 18:48 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.pt_BR.po
  * utils/hbmk2/hbmk2.hu_HU.po
  * utils/hbmk2/hbmk2.prg
    + Added support for C++ input files. Now C++ files will be compiled
      in a separate pass where native C++ compiler is used, which
      means that C++ compilation mode is now enforced by using .cpp
      extension. This also means that it's now possible to build
      mixed mode projects with both C and C++ input files.
      Enable with option: -hbcppmm (cmdline) or hbcppmm=yes (in .hbc files)
         NOTE: Suggestions for better names are welcome.
      In general, this feature makes -cpp option unnecessary, its
      only purpose now is to override default mode.
    ; Please test.

  * utils/hbmk2/hbmk2.prg
    - Deleted support for link-related macros in C compilation phase,
      these weren't used anymore inside current hbmk2, so it seems safe,
      but it's possible nevertheless that it will cause regressions in
      some exotic use cases.

  * utils/hbmk2/hbmk2.prg
    ! Fixed parsing -warn option on the commandline and .hbm/.hbp files.
      [TOMERGE 2.0]

  * contrib/hbqt/generator/hbmk.hbm
    ! Deleted xhb lib. It's not required and was probably added for
      "outdebug" stuff.

  * contrib/hbqt/hbqt.hbc
  * contrib/hbqt/hbqts.hbc
  * contrib/gtqtc/gtqtcs.hbc
  * contrib/gtqtc/gtqtc.hbc
    + Added hbcppmm=yes option. This will force C++ memory allocation
      functions to be overridden by Harbour mm functions.

  * src/vm/fm.c
    - Deleted C++ memory allocation functions. This feature now
      lives inside hbmk2, and it now doesn't require whole Harbour
      to be built in C++ mode.

  * contrib/hbqt/*
    * Regenerated.
2010-01-05 18:04:12 +00:00
Viktor Szakats
2ab6d95353 2010-01-05 14:54 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbct/dummy.c
    + Added dummy stubs for all CT functions which are not yet
      implemented in Harbour. This file is intentionally not 
      built, because a link-time error is better than a runtime 
      one, anyhow we could convert them to real dummies emulating 
      error behavior and add them to build process.

  * contrib/hbqt/generator/hbqtgen.prg
    % Optimization to parameter list ptr conversion loop.
    ; TODO: Regenerate QT sources.
2010-01-05 13:55:59 +00:00
Przemyslaw Czerpak
c02e6f1616 2010-01-05 14:03 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbct/video.c
    % use hb_gtColorToN() function instead of own code to decode Clipper
      color in VGAPALETTE()
    ! added protection against possible transfer buffer overflow in
      SETFONT() function
    ! return -2 when SETFONT() is not implemented

    TODO: clean these functions, add support for other DOS compilers,
          add some missing functions and redirect few of them like
          VGAPALETTE() to hb_gtInfo() in non DOS builds

  * harbour/src/rtl/hbgtcore.c
    ! fixed missing ';' => CHR( 13 ) translation in __KEYBOARD() function
      [TOMERGE 2.0]
2010-01-05 13:03:37 +00:00
Pritpal Bedi
24e67cf403 2010-01-05 02:59 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* 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.
2010-01-05 11:15:07 +00:00
Przemyslaw Czerpak
6dfe3f612f 2010-01-05 03:51 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapicdp.h
    * removed unused in current code HB_CODEPAGE_INIT() macro
2010-01-05 02:52:14 +00:00
Pritpal Bedi
39acc696b6 2010-01-04 16:28 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* 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
  * contrib/hbide/idesaveload.prg
  * contrib/hbide/idestylesheets.prg
  * contrib/hbide/idethemes.prg
    ! Another round of reforms.
    + Implemented visual reflection of current project tree 
      node and current editing tab tab.
    + Implemented default theme get/set, check the menu <Options>.
2010-01-05 02:38:03 +00:00
Przemyslaw Czerpak
6e527f2ed1 2010-01-05 02:39 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/common/hbtrace.c
    ! fixed casting for C++ mode in my recent modification
2010-01-05 01:39:48 +00:00
Pritpal Bedi
ccb74db573 2010-01-04 16:28 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* 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.
2010-01-05 00:30:15 +00:00
Viktor Szakats
cbe60a6ebd 2010-01-05 00:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/tests/demoqt.prg
    + Added hbqt_errorsys().

  * contrib/hbxbp/xbpgeneric.prg
    + Calling hbqt_errorsys() on startup.

  * contrib/hbide/hbide.prg
    - Deleted call to hbqt_errorsys(). It's now done by hbxbp.
2010-01-04 23:41:23 +00:00
Pritpal Bedi
9763a39bf8 2010-01-04 14:31 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/ideobject.prg
  * contrib/hbide/ideprojmanager.prg
  * contrib/hbide/idethemes.prg
    ! Continued reforms.
    ! Menu options are working again.
2010-01-04 22:32:59 +00:00
Viktor Szakats
330c17d8e0 2010-01-04 23:28 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
    + Will now ignore hbdebug and hbcplr static Harbour libs when 
      creating dynamic binaries, if these libs are not present.
2010-01-04 22:29:07 +00:00
Przemyslaw Czerpak
70b39211bb 2010-01-04 19:01 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/ChangeLog
    ! fixed typo in my recent ChangeLog entry

  * harbour/src/vm/fm.c
    % minor simplification

  * harbour/src/common/hbtrace.c
    ! fixed possible recursive call reported by Istvan
2010-01-04 18:02:29 +00:00
Viktor Szakats
973275223a 2010-01-04 18:39 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbgd/hbgd.hbc
   + examples/httpsrv/modulesg.hbp
   * examples/httpsrv/uhttpdgd.hbp
   * examples/httpsrv/readme.txt
     * Merged gd linking logic from uhttpdgd.hbp to hbgd.hbc.
       (contains little hack, too) (untested)
     + Added .hbp file to build GD enabled modules.
     * Modified readme to reflect above change.
     + Changed .hbp files to use hbgd.hbc and hbct.hbc to 
       build with hbgd and hbct libs. This is much better 
       method, since hbmk2 will locate them automatically 
       plus set header path as well.
2010-01-04 17:42:28 +00:00
Pritpal Bedi
d0ce5ac81d 2010-01-04 08:33 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/resources/selectionlist.ui
    ! A little less-height window.

  * contrib/hbide/ideeditor.prg
  * contrib/hbxbp/xbpmenubar.prg
  * contrib/hbxbp/xbpprintdialog.prg
  * contrib/hbxbp/xbpwindow.prg
    % Fixed calls to removed Qt functions.
2010-01-04 16:36:06 +00:00
Viktor Szakats
8755fb80e3 2010-01-04 15:56 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbide/idethemes.prg
  * contrib/hbide/ideeditor.prg
  * contrib/hbide/hbide.prg
  * contrib/hbide/ideactions.prg
  * contrib/hbide/ideprojmanager.prg
    ! Reapplied my File() -> hb_FileExists() pacth.

      Please note that it's not my favourite pass-time to 
      find out which of my changes were overwritten and such 
      practice pretty much defeats the purpose of version 
      tracking systems like SVN altogther. It's committers
      job to properly resolve conflicts, unless there is
      as advance request for commit-stop.
      Since it's also not very efficient for me to refix all
      future File() usages to hb_FileExists(), it would
      be much more beneficiary for the whole project if coding 
      practices like that would be adopted by other developers
      and taken care of in future updates. Thanks in advance.
2010-01-04 14:58:36 +00:00
Przemyslaw Czerpak
c8e91323cd 2010-01-04 13:10 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtxwc/gtxwc.c
    ! cleaned a little bit hack with euro sign support
    + added optional support for input respecting locale settings
      To enable it it's necessary to recompile GTXWC with HB_XWC_USE_LOCALE
      macro. It can be done globally using
         export UH_USER_CFLAGS=-DHB_XWC_USE_LOCALE
      and recompiling Harbour core code.
      When enabled GTXWC initialize locale at startup (LC_CTYPE only) what
      enable national keyboard layout support in default input context
      (XLookupString()). Current Harbour core code does not use any
      <ctype.h> functions so enabling locale should not effect user
      national settings in HVM.
      Please test.
2010-01-04 12:11:08 +00:00
Pritpal Bedi
9c0bf52ee1 2010-01-04 01:58 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* 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.
2010-01-04 10:15:18 +00:00
Viktor Szakats
166273b0dd 2010-01-03 21:19 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* 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.
2010-01-03 20:23:24 +00:00
Pritpal Bedi
d53f6a2d8b 2010-01-03 11:57 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbxbp/xbpbrowse.prg
  * contrib/hbxbp/xbpwindow.prg
    % Normalized some left-overs.
2010-01-03 19:59:32 +00:00
Pritpal Bedi
47ca2eac6c 2010-01-03 09:22 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.prg
  * contrib/hbide/idedocks.prg
  * contrib/hbide/ideeditor.prg
    % Qt_Connect_Signal( ... ) => Qt_Slots_Connect( ::pSlots, ... )
    % Qt_Connect_Events( ... ) => Qt_Events_Connect( ::pEvents, ... )
         And reverse of it.

  * contrib/hbxbp/xbpbrowse.prg
  * contrib/hbxbp/xbpdialog.prg
  * contrib/hbxbp/xbpgeneric.prg
  * contrib/hbxbp/xbplistbox.prg
  * contrib/hbxbp/xbpqtuiloader.prg
  * contrib/hbxbp/xbpsle.prg
  * contrib/hbxbp/xbpspinbutton.prg
  * contrib/hbxbp/xbptreeview.prg
  * contrib/hbxbp/xbpwindow.prg
    % Qt_Connect_Signal( ... ) => Qt_Slots_Connect( ::pSlots, ... )
    % Qt_Connect_Events( ... ) => Qt_Events_Connect( ::pEvents, ... )
         And reverse of it.

    Viktor, you may delete the previous implementation.
2010-01-03 17:32:43 +00:00
Viktor Szakats
87e26037c0 2010-01-03 14:07 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/qth/QApplication.qth
    * Minor optimizations.
    % One static var deleted.
    ; TOFIX/TOCHECK: argv/argc usage.

  * contrib/hbqt/qtgui/QApplication.cpp
  * contrib/hbqt/hbqt_garbage.h
    * Regenerated.

  * contrib/hbxbp/xbpgeneric.prg
    - Deleted unused statics.
    ; TOFIX: HBQT has an irregularity which I couldn't find a
             reason yet. It maintains a pointer to QApplication
             in a static variable on C level, plus every HBQT
             app maintains a copy of the QApp object in a .prg
             level STATIC var. Both are inited using C/prg
             level init/exit functions.
2010-01-03 13:08:07 +00:00
Viktor Szakats
d2c818eab8 2010-01-03 13:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* ChangeLog
    ! Fixed accindentally committed corrupted file in prev commit.
      (unclean system shutdowns due to hangs)

  * contrib/hbqt/tests/demoqt.prg
    * Variable rename.
2010-01-03 12:43:59 +00:00
Viktor Szakats
74ed8d750b 2010-01-03 13:24 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* INSTALL
    + Added OS/2 to QT supported platforms.

  * harbour.spec
    + Merged lib and static subpackages into main one.
      hbmk2 requires that both dynamic and static libs (namely hbcplr)
      are present for successful linking.
      Please test and comment, I can revert old version in 
      case of any problems.

  * contrib/hbqt/filelist.mk
  * contrib/hbqt/hbqt_hbevents.cpp
  * contrib/hbqt/hbqt_hbslots.cpp
  - contrib/hbqt/hbqt_hbevents2.cpp
  - contrib/hbqt/hbqt_hbslots2.cpp
    * Merged new EVENTS/SLOTS implementation with old one,
      removing all existing redundancies and fixing double
      definition of low-level classes.
2010-01-03 12:28:25 +00:00
Pritpal Bedi
c846812f85 2010-01-03 03:00 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbide/hbide.prg
    ! Applied Vailton's patch posted as diff.
2010-01-03 11:02:26 +00:00
Viktor Szakats
bfa271d4e5 2010-01-03 11:00 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/generator/hbqtgen.prg
    ! Fixed formatting for one generated headder.

  * contrib/hbqt/hbqt_hbqmainwindow.cpp
  * contrib/hbqt/qth/QApplication.qth
    + Moved HB_QT declaration to QApplication.

  * contrib/hbqt/qtgui/QApplication.cpp
    * Regenerated.

  * contrib/hbqt/qtgui/QTextCursor.cpp
  * contrib/hbqt/qtgui/TQTextCursor.prg
  * contrib/hbqt/qtgui/QSyntaxHighlighter.cpp
  * contrib/hbqt/qtgui/TQSyntaxHighlighter.prg
    * Changed after regeneration.
      (Someone pbly changed these files without .qth,
      or run older generator, or didn't run generator
      after modifying .qth)

  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
    ! Fixed warning.
    * Formatting.

  * contrib/hbqt/hbqt_hbqtableview.cpp
  * contrib/hbqt/hbqt_hbqmainwindow.cpp
    % GC callbacks made 'static'.

  * contrib/hbqt/detect.mk
  * contrib/hbxbp/Makefile
    + Enabled for OS/2.

  * contrib/hbqt/hbqt_hbqmainwindow.cpp
    - Deleted mutex handling. (was commented for while with no
      problems reported)

  * contrib/hbwin/Makefile
  * contrib/hbwin/hbwin.h
  * contrib/hbwin/hbwapi.h
  + contrib/hbwin/win_err.c
  * contrib/hbwin/wapi_winbase.c
    + Added hbwin_SetLastError(), hbwin_GetLastError()
      low-level functions to save/get GetLastError() values.
      This is required to preserve win lasterror value on .prg
      level. The reason we need this is because TlsGetValue()
      (called internally by Harbour core) is overwriting this
      value. Thanks to Xavi for research.

  * contrib/hbwin/wapi_winbase_mutex.c
    ! Fixed to use hbwin_SetLastError().
    ; TODO: Call hbwin_SetLastError() after _all_ winapi
            calls which modify lasterror value.
            Until then, WAPI_GETLASTERROR() is broken.

  * contrib/hbwin/hbwinole.h
    + Added self-guard.
2010-01-03 10:03:50 +00:00
Pritpal Bedi
0f880a0256 2010-01-02 22:47 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
/* 
      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.
2010-01-03 07:01:18 +00:00
Pritpal Bedi
b2c2f608f8 2010-01-02 19:31 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* 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.
2010-01-03 04:04:43 +00:00
Pritpal Bedi
da7ae88ea1 2010-01-02 19:31 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbxbp/xbpfiledialog.prg
    ! An important fix.
2010-01-03 03:31:22 +00:00
Pritpal Bedi
0eb2d9da15 2010-01-02 19:26 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
  * contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
  * contrib/hbqt/qtgui/TQSyntaxHighlighter.prg
  * contrib/hbqt/qth/QSyntaxHighlighter.qth
    + Added more functions to manage highlighting properly.
2010-01-03 03:29:33 +00:00
Viktor Szakats
49a9d3bc10 2010-01-03 02:32 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/tests/demoqt.prg
    + Changed to use new EVENTS/SLOTS layout.
      These are currently two STATIC vars, may be better to
      add :events / :slots to oWnd and keep them tied to windows,
      or threads. It's difficult to find out from current usage.
    ; Please test.
2010-01-03 01:32:49 +00:00
Viktor Szakats
d8c13f3251 2010-01-03 02:11 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbqt/filelist.mk
  + contrib/hbqt/hbqt_hbslots2.cpp
  + contrib/hbqt/hbqt_hbevents2.cpp
    + Added new implementation of slots and events.
      This fixes potential leaks in old implementation by
      moving HB_EVENTS, HB_SLOTS low level per-thread
      structures to .prg level and adding proper GC destructors
      to them.
      To use the new interface in .prg level code, following changes
      will have to be applied:
        1. Adding new :events, :slots holder variables to .prg level.
        2. Init these holder variables with QT_EVENTS_NEW() and QT_SLOTS_NEW().
        3. Make these conversions:
            QT_CONNECT_EVENT( ... )     -> QT_EVENTS_CONNECT( p, ... )
            QT_DISCONNECT_EVENT( ... )  -> QT_EVENTS_DISCONNECT( p, ... )
            QT_CONNECT_SIGNAL( ... )    -> QT_SLOTS_CONNECT( p, ... )
            QT_DISCONNECT_SIGNAL( ... ) -> QT_SLOTS_DISCONNECT( p, ... )
            QT_GETEVENTFILTER()         -> QT_EVENTS_PTR( p ) (there is a TOFIX here for the future)
        4. Delete these calls:
            QT_EVENTS_DESTROY()
            QT_SLOTS_DESTROY()
    ; Pritpal, can you please review this method?

  * contrib/hbqt/hbqt_hbdbfmodel.cpp
  * contrib/hbqt/hbqt.h
    % Memory allocation internals made static.
2010-01-03 01:13:53 +00:00