From a3531b7d4d086ae03a98465174a38dfb74ad3899 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Mon, 12 Jul 2010 16:09:49 +0000 Subject: [PATCH] 2010-07-12 09:06 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbide/idesources.prg ! Fixed: "Save As..." had gone disabled with another fix. + contrib/hbqt/qtcore/HBQAbstractItemModel.cpp + contrib/hbqt/qtcore/THBQAbstractItemModel.prg + Added: missing files from previous commit. * contrib/hbxbp/xbpdialog.prg ! Minor. --- harbour/ChangeLog | 11 ++ harbour/contrib/hbide/idesources.prg | 3 +- .../hbqt/qtcore/HBQAbstractItemModel.cpp | 184 ++++++++++++++++++ .../hbqt/qtcore/THBQAbstractItemModel.prg | 91 +++++++++ harbour/contrib/hbxbp/xbpdialog.prg | 9 +- 5 files changed, 293 insertions(+), 5 deletions(-) create mode 100644 harbour/contrib/hbqt/qtcore/HBQAbstractItemModel.cpp create mode 100644 harbour/contrib/hbqt/qtcore/THBQAbstractItemModel.prg diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 7606506ac1..d11cea808d 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,17 @@ The license applies to all entries newer than 2009-04-28. */ +2010-07-12 09:06 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbide/idesources.prg + ! Fixed: "Save As..." had gone disabled with another fix. + + + contrib/hbqt/qtcore/HBQAbstractItemModel.cpp + + contrib/hbqt/qtcore/THBQAbstractItemModel.prg + + Added: missing files from previous commit. + + * contrib/hbxbp/xbpdialog.prg + ! Minor. + 2010-07-12 15:05 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * contrib/xhb/xhbat.c * Renamed HB_SIZE/HB_ISIZ variables. diff --git a/harbour/contrib/hbide/idesources.prg b/harbour/contrib/hbide/idesources.prg index f5901ca6cb..86498d86bd 100644 --- a/harbour/contrib/hbide/idesources.prg +++ b/harbour/contrib/hbide/idesources.prg @@ -216,7 +216,8 @@ METHOD IdeSourcesManager:saveSource( nTab, lCancel, lAs ) nIndex := ::qTabWidget:indexOf( oEdit:oTab:oWidget ) cSource := oEdit:sourceFile - IF !Empty( oEdit:sourceFile ) .AND. oEdit:lLoaded .AND. oEdit:qDocument:isModified() + // IF !Empty( oEdit:sourceFile ) .AND. oEdit:lLoaded .AND. oEdit:qDocument:isModified() + IF lAs .OR. empty( oEdit:sourceFile ) .OR. ( oEdit:lLoaded .AND. oEdit:qDocument:isModified() ) lNew := Empty( cSource ) .OR. lAs IF lNew diff --git a/harbour/contrib/hbqt/qtcore/HBQAbstractItemModel.cpp b/harbour/contrib/hbqt/qtcore/HBQAbstractItemModel.cpp new file mode 100644 index 0000000000..67c2f47409 --- /dev/null +++ b/harbour/contrib/hbqt/qtcore/HBQAbstractItemModel.cpp @@ -0,0 +1,184 @@ +/* + * $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://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 "../hbqt.h" + +/*----------------------------------------------------------------------*/ +#if QT_VERSION >= 0x040500 +/*----------------------------------------------------------------------*/ + +#include + +#include +#include "../hbqt_hbqabstractitemmodel.h" + + +/* + * + * + */ + +typedef struct +{ + QPointer< HBQAbstractItemModel > ph; + bool bNew; + QT_G_FUNC_PTR func; + int type; +} QGC_POINTER_HBQAbstractItemModel; + +QT_G_FUNC( hbqt_gcRelease_HBQAbstractItemModel ) +{ + HBQAbstractItemModel * ph = NULL ; + QGC_POINTER_HBQAbstractItemModel * p = ( QGC_POINTER_HBQAbstractItemModel * ) Cargo; + + if( p && p->bNew && p->ph ) + { + ph = p->ph; + if( ph ) + { + const QMetaObject * m = ( ph )->metaObject(); + if( ( QString ) m->className() != ( QString ) "QObject" ) + { + HB_TRACE( HB_TR_DEBUG, ( "ph=%p %p YES_rel_HBQAbstractItemModel /.\\ ", (void*) ph, (void*) p->ph ) ); + delete ( p->ph ); + HB_TRACE( HB_TR_DEBUG, ( "ph=%p %p YES_rel_HBQAbstractItemModel \\./ ", (void*) ph, (void*) p->ph ) ); + p->ph = NULL; + } + else + { + HB_TRACE( HB_TR_DEBUG, ( "ph=%p NO__rel_HBQAbstractItemModel ", ph ) ); + p->ph = NULL; + } + } + else + { + HB_TRACE( HB_TR_DEBUG, ( "ph=%p DEL_rel_HBQAbstractItemModel : Object already deleted!", ph ) ); + p->ph = NULL; + } + } + else + { + HB_TRACE( HB_TR_DEBUG, ( "ph=%p PTR_rel_HBQAbstractItemModel : Object not created with new=true", ph ) ); + p->ph = NULL; + } +} + +void * hbqt_gcAllocate_HBQAbstractItemModel( void * pObj, bool bNew ) +{ + QGC_POINTER_HBQAbstractItemModel * p = ( QGC_POINTER_HBQAbstractItemModel * ) hb_gcAllocate( sizeof( QGC_POINTER_HBQAbstractItemModel ), hbqt_gcFuncs() ); + + new( & p->ph ) QPointer< HBQAbstractItemModel >( ( HBQAbstractItemModel * ) pObj ); + p->bNew = bNew; + p->func = hbqt_gcRelease_HBQAbstractItemModel; + p->type = QT_TYPE_HBQAbstractItemModel; + + if( bNew ) + { + HB_TRACE( HB_TR_DEBUG, ( "ph=%p _new_HBQAbstractItemModel under p->pq", pObj ) ); + } + else + { + HB_TRACE( HB_TR_DEBUG, ( "ph=%p NOT_new_HBQAbstractItemModel", pObj ) ); + } + return p; +} + +HB_FUNC( QT_HBQABSTRACTITEMMODEL ) +{ + HBQAbstractItemModel * pObj = NULL; + + pObj = new HBQAbstractItemModel( ( PHB_ITEM ) hb_param( 1, HB_IT_BLOCK ) ) ; + + hb_retptrGC( hbqt_gcAllocate_HBQAbstractItemModel( ( void * ) pObj, true ) ); +} + +/* + * void reset() + */ +HB_FUNC( QT_HBQABSTRACTITEMMODEL_RESET ) +{ + HBQAbstractItemModel * p = hbqt_par_HBQAbstractItemModel( 1 ); + if( p ) + ( p )->reset(); + else + { + HB_TRACE( HB_TR_DEBUG, ( "............................... F=QT_HBQABSTRACTITEMMODEL_RESET FP=( p )->reset(); p is NULL" ) ); + } +} + +/* + * QModelIndex index( int row, int column, const QModelIndex & parent = QModelIndex() ) const + */ +HB_FUNC( QT_HBQABSTRACTITEMMODEL_INDEX ) +{ + HBQAbstractItemModel * p = hbqt_par_HBQAbstractItemModel( 1 ); + if( p ) + hb_retptrGC( hbqt_gcAllocate_QModelIndex( new QModelIndex( ( p )->index( hb_parni( 2 ), hb_parni( 3 ), ( HB_ISPOINTER( 4 ) ? *hbqt_par_QModelIndex( 4 ) : QModelIndex() ) ) ), true ) ); + else + { + HB_TRACE( HB_TR_DEBUG, ( "............................... F=QT_HBQABSTRACTITEMMODEL_INDEX FP=hb_retptrGC( hbqt_gcAllocate_QModelIndex( new QModelIndex( ( p )->index( hb_parni( 2 ), hb_parni( 3 ), ( HB_ISPOINTER( 4 ) ? *hbqt_par_QModelIndex( 4 ) : QModelIndex() ) ) ), true ) ); p is NULL" ) ); + } +} + + +/*----------------------------------------------------------------------*/ +#endif /* #if QT_VERSION >= 0x040500 */ +/*----------------------------------------------------------------------*/ diff --git a/harbour/contrib/hbqt/qtcore/THBQAbstractItemModel.prg b/harbour/contrib/hbqt/qtcore/THBQAbstractItemModel.prg new file mode 100644 index 0000000000..86b787cd0f --- /dev/null +++ b/harbour/contrib/hbqt/qtcore/THBQAbstractItemModel.prg @@ -0,0 +1,91 @@ +/* + * $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://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 HBQAbstractItemModel INHERIT HbQtObjectHandler, QAbstractItemModel + + METHOD new( ... ) + + METHOD reset() + METHOD index( nRow, nColumn, pParent ) + + ENDCLASS + + +METHOD HBQAbstractItemModel:new( ... ) + LOCAL p + FOR EACH p IN { ... } + hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) ) + NEXT + ::pPtr := Qt_HBQAbstractItemModel( ... ) + RETURN Self + + +METHOD HBQAbstractItemModel:reset() + RETURN Qt_HBQAbstractItemModel_reset( ::pPtr ) + + +METHOD HBQAbstractItemModel:index( nRow, nColumn, pParent ) + RETURN Qt_HBQAbstractItemModel_index( ::pPtr, nRow, nColumn, hbqt_ptr( pParent ) ) + diff --git a/harbour/contrib/hbxbp/xbpdialog.prg b/harbour/contrib/hbxbp/xbpdialog.prg index e8c2400762..f6aa44cc59 100644 --- a/harbour/contrib/hbxbp/xbpdialog.prg +++ b/harbour/contrib/hbxbp/xbpdialog.prg @@ -218,9 +218,9 @@ METHOD XbpDialog:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible ) ::connectWindowEvents() // - ::connectEvent( ::pWidget, QEvent_Close , {|e| ::execEvent( QEvent_Close , e ) } ) - ::connectEvent( ::pWidget, QEvent_WindowActivate , {|e| ::execEvent( QEvent_WindowActivate , e ) } ) - ::connectEvent( ::pWidget, QEvent_WindowDeactivate, {|e| ::execEvent( QEvent_WindowDeactivate, e ) } ) + ::connectEvent( ::pWidget, QEvent_Close , {|e| ::execEvent( QEvent_Close , e ) } ) + ::connectEvent( ::pWidget, QEvent_WindowActivate , {|e| ::execEvent( QEvent_WindowActivate , e ) } ) + ::connectEvent( ::pWidget, QEvent_WindowDeactivate , {|e| ::execEvent( QEvent_WindowDeactivate , e ) } ) RETURN Self @@ -270,6 +270,7 @@ METHOD XbpDialog:execEvent( nEvent, pEvent ) HB_SYMBOL_UNUSED( pEvent ) DO CASE + CASE nEvent == QEvent_WindowActivate SetAppEvent( xbeP_SetDisplayFocus, NIL, NIL, Self ) @@ -378,7 +379,7 @@ METHOD XbpDialog:getFrameState() METHOD XbpDialog:menuBar() IF !( hb_isObject( ::oMenu ) ) - ::oMenu := XbpMenuBar():New( self ):create() + XbpMenuBar():New( self ):create() ENDIF RETURN ::oMenu