diff --git a/harbour/ChangeLog b/harbour/ChangeLog index b96155b3c8..41981777fd 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,43 @@ past entries belonging to author(s): Viktor Szakats. */ +2010-01-29 09:19 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/idefindreplace.prg + * contrib/hbide/idemisc.prg + * contrib/hbide/ideprojmanager.prg + * contrib/hbide/idethemes.prg + + * contrib/hbqt/filelist.mk + * contrib/hbqt/generator/qt45.qtp + * contrib/hbqt/hbqt.h + * contrib/hbqt/qtcore/filelist.mk + + contrib/hbqt/qtcore/QBuffer.cpp + + contrib/hbqt/qtcore/TQBuffer.prg + + contrib/hbqt/qth/QBuffer.qth + - contrib/hbqt/THbpQtUI.prg + + contrib/hbqt/THbQtUI.prg + + * contrib/hbxbp/hbpprocess.prg + * contrib/hbxbp/xbpfontdialog.prg + * contrib/hbxbp/xbpgeneric.prg + * contrib/hbxbp/xbphtmlviewer.prg + * contrib/hbxbp/xbplistbox.prg + * contrib/hbxbp/xbpmenubar.prg + * contrib/hbxbp/xbpprintdialog.prg + * contrib/hbxbp/xbpstatusbar.prg + * contrib/hbxbp/xbptoolbar.prg + * contrib/hbxbp/xbptreeview.prg + * contrib/hbxbp/xbpwindow.prg + + -+ HbpQtUI => HbQtUI. + ! Cleaned :pPtr := 0 => :pPtr := NIL + + Implemented QBuffer() class which allows to load .u + from .prg embedding or from database. + 2010-01-29 13:09 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/src/rdd/dbfcdx/dbfcdx1.c ! fixed possible unreleased lock after last modification in SIXCDX - diff --git a/harbour/contrib/hbide/hbide.prg b/harbour/contrib/hbide/hbide.prg index 95b05c43d3..508076928f 100644 --- a/harbour/contrib/hbide/hbide.prg +++ b/harbour/contrib/hbide/hbide.prg @@ -417,7 +417,7 @@ METHOD HbIde:create( cProjIni ) hbide_dbg( "After ::oDlg:destroy()", memory( 1001 ), hbqt_getMemUsed() ) hbide_dbg( "======================================================" ) - ::qCursor:pPtr := 0 + ::qCursor:pPtr := NIL ::oFont := NIL hbide_dbg( "EXITING after destroy ....", memory( 1001 ), hbqt_getMemUsed() ) diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg index ef77ad9800..1930ab4ea1 100644 --- a/harbour/contrib/hbide/ideactions.prg +++ b/harbour/contrib/hbide/ideactions.prg @@ -117,7 +117,7 @@ METHOD IdeActions:destroy() LOCAL qAction FOR EACH qAction IN ::hActions - qAction:pPtr := 0 + qAction:pPtr := NIL NEXT RETURN Self diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg index df1d6d5ee3..22b8fcb364 100644 --- a/harbour/contrib/hbide/idedocks.prg +++ b/harbour/contrib/hbide/idedocks.prg @@ -130,7 +130,7 @@ METHOD IdeDocks:buildDialog() ::oIde:oDlg := XbpDialog():new() ::oDlg:icon := ::resPath + "vr.png" // "hbide.png" ::oDlg:title := "Harbour-Qt IDE" - ::oDlg:qtObject := HbpQtUI():new( ::resPath + "mainWindow.ui" ) + ::oDlg:qtObject := HbQtUI():new( ::resPath + "mainWindow.ui" ) ::oDlg:create( , , , , , .f. ) #else ::oIde:oDlg := XbpDialog():new( , , {10,10}, {1100,700}, , .f. ) diff --git a/harbour/contrib/hbide/ideeditor.prg b/harbour/contrib/hbide/ideeditor.prg index 6adbab045d..efd3bea970 100644 --- a/harbour/contrib/hbide/ideeditor.prg +++ b/harbour/contrib/hbide/ideeditor.prg @@ -837,7 +837,7 @@ METHOD IdeEditsManager:goto() nLine := qGo:intValue() - nLine - qGo:pPtr := 0 + qGo:pPtr := NIL IF nLine < 0 qCursor:movePosition( QTextCursor_Up, QTextCursor_MoveAnchor, abs( nLine ) + 1 ) @@ -1102,20 +1102,20 @@ hbide_dbg( "IdeEditor:destroy()", 0 ) ::oEdit:destroy() IF !Empty( ::qDocument ) - ::qDocument:pPtr := 0 - ::qDocument := nil + ::qDocument:pPtr := NIL + ::qDocument := NIL ENDIF IF !Empty( ::qHiliter ) - ::qHiliter:pPtr := 0 - ::qHiliter := nil + ::qHiliter:pPtr := NIL + ::qHiliter := NIL ENDIF ::oEdit := NIL IF !Empty( ::qLayout ) - ::qLayout:pPtr := 0 - ::qLayout := nil + ::qLayout:pPtr := NIL + ::qLayout := NIL ENDIF IF ( n := ascan( ::aTabs, {|e_| e_[ TAB_OEDITOR ] == Self } ) ) > 0 diff --git a/harbour/contrib/hbide/idefindreplace.prg b/harbour/contrib/hbide/idefindreplace.prg index 8d515b5645..2b35569fd1 100644 --- a/harbour/contrib/hbide/idefindreplace.prg +++ b/harbour/contrib/hbide/idefindreplace.prg @@ -110,7 +110,7 @@ METHOD IdeFindReplace:create( oIde ) ::oIde := oIde - ::oUI := HbpQtUI():new( ::oIde:resPath + "finddialog.ui", ::oIde:oDlg:oWidget ) + ::oUI := HbQtUI():new( ::oIde:resPath + "finddialog.ui", ::oIde:oDlg:oWidget ) ::oUI:setWindowFlags( Qt_Sheet ) aeval( ::oIde:aIni[ INI_FIND ], {|e| ::oUI:q_comboFindWhat:addItem( e ) } ) @@ -130,6 +130,7 @@ METHOD IdeFindReplace:create( oIde ) ::oUI:signal( "checkListOnly", "stateChanged(int)", {|o,p| o := o, ; ::oUI:q_comboReplaceWith:setEnabled( p == 0 ), ; iif( p == 1, ::oUI:q_buttonReplace:setEnabled( .f. ), NIL ) } ) + RETURN Self /*----------------------------------------------------------------------*/ @@ -144,12 +145,12 @@ METHOD IdeFindReplace:show() ::oIde:setPosByIni( ::oUI:oWidget, FindDialogGeometry ) ::oUI:q_comboFindWhat:setFocus() + qLineEdit := QLineEdit():configure( ::oUI:q_comboFindWhat:lineEdit() ) IF !empty( cText := ::oEM:getSelectedText() ) - qLineEdit := QLineEdit():configure( ::oUI:q_comboFindWhat:lineEdit() ) qLineEdit:setText( cText ) - qLineEdit:selectAll() - //QLineEdit( ::oUI:q_comboFindWhat:lineEdit() ):setText( cText ):selectAll() ENDIF + qLineEdit:selectAll() + ::oUI:show() RETURN Self @@ -248,6 +249,8 @@ METHOD IdeFindReplace:onClickFind() ::oUI:q_buttonReplace:setEnabled( .f. ) ::oUI:q_checkGlobal:setEnabled( .f. ) ::oUI:q_checkNoPrompting:setEnabled( .f. ) + + ::oUI:q_buttonFind:setFocus_1() ENDIF RETURN Self @@ -332,7 +335,7 @@ METHOD IdeFindInFiles:create( oIde ) ::oIde := oIde - ::oUI := HbpQtUI():new( ::oIde:resPath + "findinfiles.ui", ::oIde:oDlg:oWidget ) + ::oUI := HbQtUI():new( ::oIde:resPath + "findinfiles.ui", ::oIde:oDlg:oWidget ) ::oUI:setWindowFlags( Qt_Sheet ) ::oUI:exec() diff --git a/harbour/contrib/hbide/idemisc.prg b/harbour/contrib/hbide/idemisc.prg index f748070538..ff1f08408a 100644 --- a/harbour/contrib/hbide/idemisc.prg +++ b/harbour/contrib/hbide/idemisc.prg @@ -148,7 +148,7 @@ FUNCTION hbide_execPopup( aPops, aPos, qParent ) NEXT ENDIF - qPop:pPtr := 0 + qPop:pPtr := NIL RETURN xRet diff --git a/harbour/contrib/hbide/ideprojmanager.prg b/harbour/contrib/hbide/ideprojmanager.prg index 3aa0bb9b99..5f883975fa 100644 --- a/harbour/contrib/hbide/ideprojmanager.prg +++ b/harbour/contrib/hbide/ideprojmanager.prg @@ -544,7 +544,7 @@ METHOD IdeProjManager:fetchProperties() LOCAL cLukupPng LOCAL cPrjLoc := hb_dirBase() + "projects" - ::oUI := HbpQtUI():new( ::resPath + "projectproperties.ui", ::oDlg:oWidget ) + ::oUI := HbQtUI():new( ::resPath + "projectproperties.ui", ::oDlg:oWidget ) ::oUI:q_tabWidget:removeTab( 4 ) @@ -953,7 +953,7 @@ METHOD IdeProjManager:loadXhpProject() METHOD IdeProjManager:manageEnvironments() LOCAL cLukupPng - ::oUI := HbpQtUI():new( ::resPath + "projectproperties.ui", ::oDlg:oWidget ) + ::oUI := HbQtUI():new( ::resPath + "projectproperties.ui", ::oDlg:oWidget ) cLukupPng := ::resPath + "folder.png" // @@ -1255,7 +1255,7 @@ METHOD IdeProjManager:selectCurrentProject() RETURN ::cWrkProject ENDIF - oDlg := HbpQtUI():new( ::oIDE:resPath + "selectproject.ui", ::oDlg:oWidget ) + oDlg := HbQtUI():new( ::oIDE:resPath + "selectproject.ui", ::oDlg:oWidget ) * Fill ComboBox with current project names FOR i := 1 TO Len( ::aProjects ) @@ -1618,7 +1618,7 @@ METHOD IdeProjManager:launchProject( cProject ) qProcess:setWorkingDirectory( hbide_pathToOSPath( oProject:wrkDirectory ) ) qProcess:startDetached_2( cTargetFN ) qProcess:waitForStarted() - qProcess:pPtr := 0 + qProcess:pPtr := NIL qProcess := NIL #else ::oProcess := HbpProcess():new() diff --git a/harbour/contrib/hbide/idethemes.prg b/harbour/contrib/hbide/idethemes.prg index 952aa1d126..b0de503356 100644 --- a/harbour/contrib/hbide/idethemes.prg +++ b/harbour/contrib/hbide/idethemes.prg @@ -411,7 +411,7 @@ METHOD IdeThemes:fetch() IF empty( ::oUI ) ::lCreating := .t. - ::oUI := HbpQtUI():new( ::oIde:resPath + "themes.ui", ::oIde:oDlg:oWidget ) + ::oUI := HbQtUI():new( ::oIde:resPath + "themes.ui", ::oIde:oDlg:oWidget ) ::oUI:setWindowFlags( Qt_Sheet ) ::oUI:signal( "comboThemes" , "currentIndexChanged(int)", {|o,i| ::nCurTheme := i+1, ::setTheme( i,o ) } ) @@ -586,7 +586,7 @@ METHOD IdeThemes:selectTheme() LOCAL oSL, oStrList, oStrModel, a_, nDone LOCAL pSlots := Qt_Slots_New() - oSL := HbpQtUI():new( ::oIde:resPath + "selectionlist.ui", ::oIde:oDlg:oWidget ) + oSL := HbQtUI():new( ::oIde:resPath + "selectionlist.ui", ::oIde:oDlg:oWidget ) oSL:setWindowTitle( "Available Themes" ) oStrList := QStringList():new() diff --git a/harbour/contrib/hbqt/THbpQtUI.prg b/harbour/contrib/hbqt/THbQtUI.prg similarity index 91% rename from harbour/contrib/hbqt/THbpQtUI.prg rename to harbour/contrib/hbqt/THbQtUI.prg index bc4986c0c0..fe1abc066b 100644 --- a/harbour/contrib/hbqt/THbpQtUI.prg +++ b/harbour/contrib/hbqt/THbQtUI.prg @@ -56,7 +56,7 @@ * EkOnkar * ( The LORD is ONE ) * - * Harbour Parts HbpQtUI Class + * Harbour Parts HbQtUI Class * * Pritpal Bedi * 28Jan2010 @@ -70,7 +70,7 @@ /*----------------------------------------------------------------------*/ -CLASS HbpQtUI +CLASS HbQtUI DATA pSlots DATA oWidget @@ -95,7 +95,7 @@ CLASS HbpQtUI /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:new( cFile, qParent ) +METHOD HbQtUI:new( cFile, qParent ) IF !empty( cFile ) .and. file( cFile ) hb_hCaseMatch( ::qObj, .f. ) @@ -113,7 +113,7 @@ METHOD HbpQtUI:new( cFile, qParent ) /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:destroy() +METHOD HbQtUI:destroy() LOCAL a_, qObj ::oWidget:hide() @@ -126,13 +126,12 @@ METHOD HbpQtUI:destroy() NEXT FOR EACH qObj IN ::qObj - qObj:pPtr := 0 qObj:pPtr := NIL NEXT ::oWidget:close() - ::oWidget:pPtr := 0 + ::oWidget:pPtr := NIL ::oWidget := NIL ::aEvents := NIL ::aSignals := NIL @@ -141,7 +140,7 @@ METHOD HbpQtUI:destroy() /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:event( cWidget, nEvent, bBlock ) +METHOD HbQtUI:event( cWidget, nEvent, bBlock ) IF hb_hHasKey( ::qObj, cWidget ) IF Qt_Events_Connect( ::pEvents, ::qObj[ cWidget ], nEvent, bBlock ) @@ -153,7 +152,7 @@ METHOD HbpQtUI:event( cWidget, nEvent, bBlock ) /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:signal( cWidget, cSignal, bBlock ) +METHOD HbQtUI:signal( cWidget, cSignal, bBlock ) IF hb_hHasKey( ::qObj, cWidget ) IF empty( ::pSlots ) @@ -168,7 +167,7 @@ METHOD HbpQtUI:signal( cWidget, cSignal, bBlock ) /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:loadWidgets() +METHOD HbQtUI:loadWidgets() LOCAL a_, pPtr, bBlock, x, cBlock FOR EACH a_ IN ::widgets @@ -192,7 +191,7 @@ METHOD HbpQtUI:loadWidgets() /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:loadContents( cUiFull ) +METHOD HbQtUI:loadContents( cUiFull ) LOCAL cBuffer := memoread( cUiFull ) LOCAL n, cClass, cWidget @@ -217,10 +216,20 @@ METHOD HbpQtUI:loadContents( cUiFull ) /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:loadUI( cUiFull, qParent ) +METHOD HbQtUI:loadUI( cUiFull, qParent ) LOCAL oWidget, qUiLoader, qFile, pWidget + #if 1 + LOCAL cBuffer + /* This method allows to use ui components stored in a + * database or embedded into sources as a text file stream + */ + cBuffer := hb_memoRead( cUiFull ) + qFile := QBuffer():new() + qFile:setData( cBuffer, len( cBuffer ) ) + #else qFile := QFile():new( cUiFull ) + #endif IF qFile:open( 1 ) qUiLoader := QUiLoader():new() pWidget := qUiLoader:load( qFile, qParent ) @@ -243,7 +252,7 @@ METHOD HbpQtUI:loadUI( cUiFull, qParent ) /*----------------------------------------------------------------------*/ -METHOD HbpQtUI:OnError( ... ) +METHOD HbQtUI:OnError( ... ) LOCAL cMsg, xReturn cMsg := __GetMessage() diff --git a/harbour/contrib/hbqt/filelist.mk b/harbour/contrib/hbqt/filelist.mk index 62c89fa3aa..4c458ec06f 100644 --- a/harbour/contrib/hbqt/filelist.mk +++ b/harbour/contrib/hbqt/filelist.mk @@ -26,7 +26,7 @@ CPP_SOURCES := \ PRG_SOURCES := \ hbqt_misc.prg \ hbqt_errorsys.prg \ - THbpQtUI.prg \ + THbQtUI.prg \ # Don't delete this comment, it's here to ensure empty # line above is kept intact. diff --git a/harbour/contrib/hbqt/generator/qt45.qtp b/harbour/contrib/hbqt/generator/qt45.qtp index 45c2b799a2..a5644049ca 100644 --- a/harbour/contrib/hbqt/generator/qt45.qtp +++ b/harbour/contrib/hbqt/generator/qt45.qtp @@ -41,6 +41,7 @@ QBitArray.qth QBitmap.qth QBoxLayout.qth QBrush.qth +QBuffer.qth QButtonGroup.qth QByteArray.qth QCalendarWidget.qth diff --git a/harbour/contrib/hbqt/hbqt.h b/harbour/contrib/hbqt/hbqt.h index 1b32f05e76..e6c1b61678 100644 --- a/harbour/contrib/hbqt/hbqt.h +++ b/harbour/contrib/hbqt/hbqt.h @@ -111,6 +111,7 @@ extern void * hbqt_pPtrFromItem( PHB_ITEM pObj ); #define hbqt_par_QBitmap( n ) ( ( QBitmap * ) hbqt_gcpointer( n ) ) #define hbqt_par_QBoxLayout( n ) ( ( QBoxLayout * ) hbqt_gcpointer( n ) ) #define hbqt_par_QBrush( n ) ( ( QBrush * ) hbqt_gcpointer( n ) ) +#define hbqt_par_QBuffer( n ) ( ( QBuffer * ) hbqt_gcpointer( n ) ) #define hbqt_par_QButtonGroup( n ) ( ( QButtonGroup * ) hbqt_gcpointer( n ) ) #define hbqt_par_QByteArray( n ) ( ( QByteArray * ) hbqt_gcpointer( n ) ) #define hbqt_par_QCalendarWidget( n ) ( ( QCalendarWidget * ) hbqt_gcpointer( n ) ) diff --git a/harbour/contrib/hbqt/qtcore/QBuffer.cpp b/harbour/contrib/hbqt/qtcore/QBuffer.cpp new file mode 100644 index 0000000000..d93602d4e7 --- /dev/null +++ b/harbour/contrib/hbqt/qtcore/QBuffer.cpp @@ -0,0 +1,196 @@ +/* + * $Id$ + */ + +/* -------------------------------------------------------------------- */ +/* WARNING: Automatically generated source file. DO NOT EDIT! */ +/* Instead, edit corresponding .qth file, */ +/* or the generator tool itself, and run regenarate. */ +/* -------------------------------------------------------------------- */ + +/* + * Harbour Project source code: + * QT wrapper main header + * + * Copyright 2009-2010 Pritpal Bedi + * + * Copyright 2009 Marcos Antonio Gambeta + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ + +#include "hbapi.h" +#include "../hbqt.h" + +/*----------------------------------------------------------------------*/ +#if QT_VERSION >= 0x040500 +/*----------------------------------------------------------------------*/ + +#include + +#include + + +/* + * QBuffer ( QObject * parent = 0 ) + * QBuffer ( QByteArray * byteArray, QObject * parent = 0 ) + * ~QBuffer () + */ + +typedef struct +{ + void * ph; + bool bNew; + QT_G_FUNC_PTR func; + QPointer< QBuffer > pq; +} QGC_POINTER_QBuffer; + +QT_G_FUNC( hbqt_gcRelease_QBuffer ) +{ + QGC_POINTER_QBuffer * p = ( QGC_POINTER_QBuffer * ) Cargo; + + if( p && p->bNew ) + { + if( p->ph && p->pq ) + { + const QMetaObject * m = ( ( QObject * ) p->ph )->metaObject(); + if( ( QString ) m->className() != ( QString ) "QObject" ) + { + delete ( ( QBuffer * ) p->ph ); + HB_TRACE( HB_TR_DEBUG, ( "YES_rel_QBuffer ph=%p pq=%p %i B %i KB", p->ph, (void *)(p->pq), ( int ) hb_xquery( 1001 ), hbqt_getmemused() ) ); + p->ph = NULL; + } + else + { + HB_TRACE( HB_TR_DEBUG, ( "NO__rel_QBuffer ph=%p pq=%p %i B %i KB", p->ph, (void *)(p->pq), ( int ) hb_xquery( 1001 ), hbqt_getmemused() ) ); + } + } + else + { + HB_TRACE( HB_TR_DEBUG, ( "DEL_rel_QBuffer Object already deleted!" ) ); + } + } + else + { + HB_TRACE( HB_TR_DEBUG, ( "PTR_rel_QBuffer Object not created with - new" ) ); + p->ph = NULL; + } +} + +void * hbqt_gcAllocate_QBuffer( void * pObj, bool bNew ) +{ + QGC_POINTER_QBuffer * p = ( QGC_POINTER_QBuffer * ) hb_gcAllocate( sizeof( QGC_POINTER_QBuffer ), hbqt_gcFuncs() ); + + p->ph = pObj; + p->bNew = bNew; + p->func = hbqt_gcRelease_QBuffer; + + if( bNew ) + { + new( & p->pq ) QPointer< QBuffer >( ( QBuffer * ) pObj ); + HB_TRACE( HB_TR_DEBUG, ( " _new_QBuffer ph=%p %i B %i KB", pObj, ( int ) hb_xquery( 1001 ), hbqt_getmemused() ) ); + } + return p; +} + +HB_FUNC( QT_QBUFFER ) +{ + void * pObj = NULL; + + pObj = new QBuffer() ; + + hb_retptrGC( hbqt_gcAllocate_QBuffer( pObj, true ) ); +} + +/* + * QByteArray & buffer () + */ +HB_FUNC( QT_QBUFFER_BUFFER ) +{ + hb_retptrGC( hbqt_gcAllocate_QByteArray( new QByteArray( hbqt_par_QBuffer( 1 )->buffer() ), true ) ); +} + +/* + * const QByteArray & buffer () const + */ +HB_FUNC( QT_QBUFFER_BUFFER_1 ) +{ + hb_retptrGC( hbqt_gcAllocate_QByteArray( new QByteArray( hbqt_par_QBuffer( 1 )->buffer() ), true ) ); +} + +/* + * const QByteArray & data () const + */ +HB_FUNC( QT_QBUFFER_DATA ) +{ + hb_retptrGC( hbqt_gcAllocate_QByteArray( new QByteArray( hbqt_par_QBuffer( 1 )->data() ), true ) ); +} + +/* + * void setBuffer ( QByteArray * byteArray ) + */ +HB_FUNC( QT_QBUFFER_SETBUFFER ) +{ + hbqt_par_QBuffer( 1 )->setBuffer( hbqt_par_QByteArray( 2 ) ); +} + +/* + * void setData ( const char * data, int size ) + */ +HB_FUNC( QT_QBUFFER_SETDATA ) +{ + hbqt_par_QBuffer( 1 )->setData( hbqt_par_char( 2 ), hb_parni( 3 ) ); +} + +/* + * void setData ( const QByteArray & data ) + */ +HB_FUNC( QT_QBUFFER_SETDATA_1 ) +{ + hbqt_par_QBuffer( 1 )->setData( *hbqt_par_QByteArray( 2 ) ); +} + + +/*----------------------------------------------------------------------*/ +#endif /* #if QT_VERSION >= 0x040500 */ +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbqt/qtcore/TQBuffer.prg b/harbour/contrib/hbqt/qtcore/TQBuffer.prg new file mode 100644 index 0000000000..a2472527b2 --- /dev/null +++ b/harbour/contrib/hbqt/qtcore/TQBuffer.prg @@ -0,0 +1,111 @@ +/* + * $Id$ + */ + +/* -------------------------------------------------------------------- */ +/* WARNING: Automatically generated source file. DO NOT EDIT! */ +/* Instead, edit corresponding .qth file, */ +/* or the generator tool itself, and run regenarate. */ +/* -------------------------------------------------------------------- */ + +/* + * Harbour Project source code: + * QT wrapper main header + * + * Copyright 2009-2010 Pritpal Bedi + * + * Copyright 2009 Marcos Antonio Gambeta + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ + + +#include "hbclass.ch" + + +CREATE CLASS QBuffer INHERIT HbQtObjectHandler, QIODevice + + METHOD new( ... ) + + METHOD buffer() + METHOD buffer_1() + METHOD data() + METHOD setBuffer( pByteArray ) + METHOD setData( pData, nSize ) + METHOD setData_1( pData ) + + ENDCLASS + + +METHOD QBuffer:new( ... ) + LOCAL p + FOR EACH p IN { ... } + hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) ) + NEXT + ::pPtr := Qt_QBuffer( ... ) + RETURN Self + + +METHOD QBuffer:buffer() + RETURN Qt_QBuffer_buffer( ::pPtr ) + + +METHOD QBuffer:buffer_1() + RETURN Qt_QBuffer_buffer_1( ::pPtr ) + + +METHOD QBuffer:data() + RETURN Qt_QBuffer_data( ::pPtr ) + + +METHOD QBuffer:setBuffer( pByteArray ) + RETURN Qt_QBuffer_setBuffer( ::pPtr, hbqt_ptr( pByteArray ) ) + + +METHOD QBuffer:setData( pData, nSize ) + RETURN Qt_QBuffer_setData( ::pPtr, hbqt_ptr( pData ), nSize ) + + +METHOD QBuffer:setData_1( pData ) + RETURN Qt_QBuffer_setData_1( ::pPtr, hbqt_ptr( pData ) ) + diff --git a/harbour/contrib/hbqt/qtcore/filelist.mk b/harbour/contrib/hbqt/qtcore/filelist.mk index 1719e2dfcd..c77dba6824 100644 --- a/harbour/contrib/hbqt/qtcore/filelist.mk +++ b/harbour/contrib/hbqt/qtcore/filelist.mk @@ -16,6 +16,7 @@ CPP_SOURCES := \ QAbstractListModel.cpp \ QAbstractTableModel.cpp \ QBitArray.cpp \ + QBuffer.cpp \ QByteArray.cpp \ QChar.cpp \ QCoreApplication.cpp \ @@ -72,6 +73,7 @@ PRG_SOURCES := \ TQAbstractListModel.prg \ TQAbstractTableModel.prg \ TQBitArray.prg \ + TQBuffer.prg \ TQByteArray.prg \ TQChar.prg \ TQCoreApplication.prg \ diff --git a/harbour/contrib/hbqt/qth/QBuffer.qth b/harbour/contrib/hbqt/qth/QBuffer.qth new file mode 100644 index 0000000000..2c384ddb89 --- /dev/null +++ b/harbour/contrib/hbqt/qth/QBuffer.qth @@ -0,0 +1,101 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * QT Source Generator for Harbour + * + * Copyright 2009 Pritpal Bedi + * www - http://www.harbour-project.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ +; +; Header File to Generate QT Wrapper Sources +; + + +QObject = +Inherits = QIODevice +Type = +New = + + + + + + + + + +#include + + +/* + * QBuffer ( QObject * parent = 0 ) + * QBuffer ( QByteArray * byteArray, QObject * parent = 0 ) + * ~QBuffer () + */ +HB_FUNC( QT_QBUFFER ) +{ + hb_retptr( new QBuffer() ); +} + + + + + + +QByteArray & buffer () +const QByteArray & buffer () const +const QByteArray & data () const +void setBuffer ( QByteArray * byteArray ) +void setData ( const char * data, int size ) +void setData ( const QByteArray & data ) + + + + + + + diff --git a/harbour/contrib/hbxbp/hbpprocess.prg b/harbour/contrib/hbxbp/hbpprocess.prg index d164905ab7..44b35343f0 100644 --- a/harbour/contrib/hbxbp/hbpprocess.prg +++ b/harbour/contrib/hbxbp/hbpprocess.prg @@ -291,7 +291,7 @@ METHOD HbpProcess:finish() ::qProcess:kill() // - ::qProcess:pPtr := 0 + ::qProcess:pPtr := NIL ::qProcess := NIL RETURN Self diff --git a/harbour/contrib/hbxbp/xbpfontdialog.prg b/harbour/contrib/hbxbp/xbpfontdialog.prg index 3ea7a90d97..e4a03d93b3 100644 --- a/harbour/contrib/hbxbp/xbpfontdialog.prg +++ b/harbour/contrib/hbxbp/xbpfontdialog.prg @@ -461,7 +461,7 @@ METHOD XbpFont:configure( cFontName ) METHOD XbpFont:destroy() - ::oFontInfo:pPtr := 0 + ::oFontInfo:pPtr := NIL ::oWidget:pPtr := 0 RETURN NIL diff --git a/harbour/contrib/hbxbp/xbpgeneric.prg b/harbour/contrib/hbxbp/xbpgeneric.prg index 5f2115ed80..e3123bdf36 100644 --- a/harbour/contrib/hbxbp/xbpgeneric.prg +++ b/harbour/contrib/hbxbp/xbpgeneric.prg @@ -112,7 +112,7 @@ EXIT PROCEDURE hbxbp_End() t_oAppWindow := NIL IF hb_isObject( s_oDeskTop ) - s_oDeskTop:oWidget:pPtr := 0 + s_oDeskTop:oWidget:pPtr := NIL endif /* These must never be called from here as QApplication.cpp's EXIT routine does it */ diff --git a/harbour/contrib/hbxbp/xbphtmlviewer.prg b/harbour/contrib/hbxbp/xbphtmlviewer.prg index adbf37344a..771171c516 100644 --- a/harbour/contrib/hbxbp/xbphtmlviewer.prg +++ b/harbour/contrib/hbxbp/xbphtmlviewer.prg @@ -187,7 +187,7 @@ METHOD XbpHTMLViewer:destroy() ::oWidget:stop() ::disconnect() IF !empty( ::oURL ) - ::oURL:pPtr := 0 + ::oURL:pPtr := NIL ::oURL := NIL ENDIF ::sl_beforeNavigate := NIL diff --git a/harbour/contrib/hbxbp/xbplistbox.prg b/harbour/contrib/hbxbp/xbplistbox.prg index 26997b1be8..006be47531 100644 --- a/harbour/contrib/hbxbp/xbplistbox.prg +++ b/harbour/contrib/hbxbp/xbplistbox.prg @@ -259,8 +259,8 @@ METHOD XbpListBox:configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible METHOD XbpListBox:destroy() ::disconnect() - ::oStrList:pPtr := 0 - ::oStrModel:pPtr := 0 + ::oStrList:pPtr := NIL + ::oStrModel:pPtr := NIL ::oStrList := NIL ::oStrModel := NIL diff --git a/harbour/contrib/hbxbp/xbpmenubar.prg b/harbour/contrib/hbxbp/xbpmenubar.prg index bb2d71699b..38b9f3c422 100644 --- a/harbour/contrib/hbxbp/xbpmenubar.prg +++ b/harbour/contrib/hbxbp/xbpmenubar.prg @@ -267,7 +267,7 @@ METHOD xbpMenuBar:delItem( nItemIndex ) Qt_Slots_disConnect( ::pSlots, oAction, "hovered()" ) ENDIF ::oWidget:removeAction( oAction ) - oAction:pPtr := 0 + oAction:pPtr := NIL oAction := NIL ENDIF ENDIF diff --git a/harbour/contrib/hbxbp/xbpprintdialog.prg b/harbour/contrib/hbxbp/xbpprintdialog.prg index e3dcb9b846..09ab1dae11 100644 --- a/harbour/contrib/hbxbp/xbpprintdialog.prg +++ b/harbour/contrib/hbxbp/xbpprintdialog.prg @@ -125,7 +125,7 @@ METHOD XbpPrintDialog:destroy() ::aConnections := {} ENDIF - ::oWidget:pPtr := 0 + ::oWidget:pPtr := NIL ::oWidget := NIL RETURN nil diff --git a/harbour/contrib/hbxbp/xbpstatusbar.prg b/harbour/contrib/hbxbp/xbpstatusbar.prg index 6f530ef719..7b60a98ca0 100644 --- a/harbour/contrib/hbxbp/xbpstatusbar.prg +++ b/harbour/contrib/hbxbp/xbpstatusbar.prg @@ -173,7 +173,7 @@ METHOD XbpStatusBar:destroy() IF ( nItems := Len( ::aItems ) ) > 0 FOR i := 1 TO nItems ::aItems[ i ]:oParent := NIL - ::aItems[ i ]:oWidget:pPtr := 0 + ::aItems[ i ]:oWidget:pPtr := NIL NEXT ENDIF diff --git a/harbour/contrib/hbxbp/xbptoolbar.prg b/harbour/contrib/hbxbp/xbptoolbar.prg index 414e11415a..c81dd7e215 100644 --- a/harbour/contrib/hbxbp/xbptoolbar.prg +++ b/harbour/contrib/hbxbp/xbptoolbar.prg @@ -220,7 +220,7 @@ METHOD XbpToolbar:destroy() ENDIF IF ::aItems[ i,3 ] == XBPTOOLBAR_BUTTON_DEFAULT - ::aItems[ i,2 ]:oAction:pPtr := 0 + ::aItems[ i,2 ]:oAction:pPtr := NIL ::aItems[ i,2 ]:oAction := NIL ENDIF NEXT diff --git a/harbour/contrib/hbxbp/xbptreeview.prg b/harbour/contrib/hbxbp/xbptreeview.prg index 8a85cb864c..0384792ebd 100644 --- a/harbour/contrib/hbxbp/xbptreeview.prg +++ b/harbour/contrib/hbxbp/xbptreeview.prg @@ -267,7 +267,7 @@ METHOD XbpTreeView:destroy() FOR i := len( ::aItems ) TO 1 step -1 aeval( ::aItems[ i ]:aChilds, {|e,j| e := e, ::aItems[ i ]:aChilds[ j ] := NIL } ) - ::aItems[ i ]:oWidget:pPtr := 0 + ::aItems[ i ]:oWidget:pPtr := NIL NEXT ::aItems := NIL @@ -453,12 +453,10 @@ METHOD XbpTreeViewItem:destroy() LOCAL i FOR i := 1 TO len( ::aChilds ) - ::aChilds[ i ]:pPtr := 0 ::aChilds[ i ]:pPtr := NIL NEXT - ::oItem:pPtr := 0 - ::oItem:pPtr := Nil + ::oItem:pPtr := NIL RETURN NIL @@ -493,7 +491,7 @@ METHOD XbpTreeViewItem:delItem( oItem ) IF ( n := ascan( ::aChilds, {|o| o == oItem } ) ) > 0 ::oWidget:removeChild( ::aChilds[ n ]:oWidget:pPtr ) - ::aChilds[ n ]:oWidget:pPtr := 0 + ::aChilds[ n ]:oWidget:pPtr := NIL adel( ::aChilds, n ) asize( ::aChilds, len( ::aChilds )-1 ) ENDIF diff --git a/harbour/contrib/hbxbp/xbpwindow.prg b/harbour/contrib/hbxbp/xbpwindow.prg index a7818c071b..bc1afd3dc3 100644 --- a/harbour/contrib/hbxbp/xbpwindow.prg +++ b/harbour/contrib/hbxbp/xbpwindow.prg @@ -466,7 +466,7 @@ METHOD XbpWindow:destroy() IF cXbp == "XBPDIALOG" hbxbp_SetEventLoop( NIL ) ::oEventLoop:exit( 0 ) - ::oEventLoop:pPtr := 0 + ::oEventLoop:pPtr := NIL //SetAppWindow( XbpObject():new() ) /* Can play havoc on */ ::oMenu := NIL ENDIF @@ -493,7 +493,7 @@ METHOD XbpWindow:destroy() ::qtObject:destroy() ::qtObject := NIL ENDIF - ::oWidget:pPtr := 0 + ::oWidget:pPtr := NIL ::oWidget := NIL //HBXBP_DBG( hb_threadId()," Destroy: "+pad(__ObjGetClsName( self ),12)+ IF(empty(::cargo),'',str(::cargo) ), memory( 1001 ), hbqt_getMemUsed() ) @@ -1233,9 +1233,7 @@ METHOD XbpWindow:isDerivedFrom( cClassORoObject ) /* Compares without Xbp or Wvg prefixes */ IF hb_isChar( cClassORoObject ) - IF upper( substr( cClassORoObject,4 ) ) == upper( substr( cCls,4 ) ) - lTrue := .t. - ENDIF + RETURN __clsParent( Self:classH, cClassORoObject ) ELSEIF hb_isObject( cClassORoObject ) IF upper( substr( cClassORoObject:className,4 ) ) == upper( substr( cCls,4 ) )