2012-06-14 00:31 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)

* contrib/hbqt/qtcore/hbqt_bind.cpp
    + Enabled: by default to clear all items in the global list.
       This has fixed GPF on exit under certain situations.
       DemoQt.prg is now fully functional even with multiple 
       dialogs open at once. 

  * contrib/hbqt/qtcore/hbqt_hbqevents.cpp
    + Added: protection against HVM is active or not.

  * contrib/hbqt/qtgui/hbqt_init.cpp

  * contrib/hbqt/qtgui/qth/QApplication.qth
    - Removed: unnecessary code written at early days.

  * contrib/hbxbp/xbplistbox.prg
    - Commented out: few signals not being used.
This commit is contained in:
Pritpal Bedi
2012-06-14 07:39:08 +00:00
parent c79d7b7806
commit 36d59bd735
6 changed files with 121 additions and 97 deletions

View File

@@ -16,6 +16,24 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-06-14 00:31 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbqt/qtcore/hbqt_bind.cpp
+ Enabled: by default to clear all items in the global list.
This has fixed GPF on exit under certain situations.
DemoQt.prg is now fully functional even with multiple
dialogs open at once.
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
+ Added: protection against HVM is active or not.
* contrib/hbqt/qtgui/hbqt_init.cpp
* contrib/hbqt/qtgui/qth/QApplication.qth
- Removed: unnecessary code written at early days.
* contrib/hbxbp/xbplistbox.prg
- Commented out: few signals not being used.
2012-06-13 21:03 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbqt/tests/dbfbrowser.prg
* contrib/hbqt/tests/dbfbrowserclass.prg

View File

@@ -90,7 +90,7 @@ HBQT_BIND, * PHBQT_BIND;
#define HBQT_BIND_LOCK do {
#define HBQT_BIND_UNLOCK } while( 0 );
// #define HBQT_FORCE_RELEASE_GLL
#define HBQT_FORCE_RELEASE_GLL
void hbqt_bindDelSlots( PHB_ITEM pSenderObject );
void hbqt_bindDelEvents( PHB_ITEM pSenderObject );
@@ -130,38 +130,36 @@ static void hbqt_bind_exit( void* cargo )
HB_SYMBOL_UNUSED( cargo );
PHBQT_BIND bind;
QList<PHB_ITEM> deleteIt;
HBQT_BIND_LOCK
bind = s_hbqt_binds;
while ( bind )
{
HB_TRACE( HB_TR_DEBUG, ( "Item on GLL %p %s", bind->qtObject, bind->szClassName ) );
HB_TRACE( HB_TR_DEBUG, ( "Item on GList %p %s", bind->qtObject, bind->szClassName ) );
deleteIt << bind->hbObject;
bind = bind->next;
}
HBQT_BIND_UNLOCK
#ifdef HBQT_FORCE_RELEASE_GLL
#ifdef HBQT_FORCE_RELEASE_GLL
HB_TRACE( HB_TR_DEBUG, ( "onExit before" ) );
while( ! deleteIt.isEmpty() )
{
HB_TRACE( HB_TR_DEBUG, ( "onExit check" ) );
int i = deleteIt.size() - 1;
/* check to see if PHB_ITEM is still in GLL */
if( hbqt_bindIsHbObject( ( PHB_ITEM ) deleteIt.at( i ) ) )
if( hbqt_bindIsHbObject( ( PHB_ITEM ) deleteIt.at( 0 ) ) )
{
hbqt_bindDestroyHbObject( hb_arrayFromId( NULL, deleteIt.at( 0 ) ) );
HB_TRACE( HB_TR_DEBUG, ( "onExit itemRelease" ) );
hb_itemRelease( ( PHB_ITEM ) deleteIt.at( i ) );
hb_itemRelease( ( PHB_ITEM ) deleteIt.at( 0 ) );
}
deleteIt.removeAt( i );
deleteIt.removeAt( 0 );
}
HB_TRACE( HB_TR_DEBUG, ( "onExit after" ) );
#endif
HB_TRACE( HB_TR_DEBUG, ( "Exiting with %d items on GLL", __hbqt_bindItemsInGlobalList() ) );
HB_TRACE( HB_TR_DEBUG, ( "Exiting with %d items on GList", __hbqt_bindItemsInGlobalList() ) );
}
PHB_ITEM hbqt_bindGetHbObject( PHB_ITEM pItem, void * qtObject, const char * szClassName, PHBQT_DEL_FUNC pDelFunc, int iFlags )
@@ -423,6 +421,7 @@ void hbqt_bindDestroyHbObject( PHB_ITEM pObject )
else
fDelQtObject = true;
}
HB_TRACE( HB_TR_DEBUG, ( "..............HARBOUR_DESTROY_BEGINS( %p, %i ).............. %s", bind->qtObject, bind->iFlags, bind->szClassName ) );
* bind_ptr = bind->next;
if( fDelQtObject )
@@ -430,9 +429,14 @@ void hbqt_bindDestroyHbObject( PHB_ITEM pObject )
if( bind->pDelFunc != NULL )
{
HB_TRACE( HB_TR_DEBUG, ( ".......HARBOUR_DESTROYING_ACTUAL_QT_OBJECT( %p, %i ).............. %s", bind->qtObject, bind->iFlags, bind->szClassName ) );
bind->fDeleting = true;
bind->pDelFunc( bind->qtObject, bind->iFlags );
bind->fDeleting = false;
if( hb_vmRequestReenter() )
{
bind->fDeleting = true;
bind->pDelFunc( bind->qtObject, bind->iFlags );
bind->fDeleting = false;
hb_vmRequestRestore();
}
}
}
hb_xfree( bind );
@@ -448,27 +452,31 @@ void hbqt_bindDestroyHbObject( PHB_ITEM pObject )
void hbqt_bindDestroyQtObject( void * qtObject )
{
HB_TRACE( HB_TR_DEBUG, ( "....................................QT_DESTROY_BEGINS( %p )..............", qtObject ) );
PHBQT_BIND * bind_ptr, bind;
HBQT_BIND_LOCK
bind_ptr = &s_hbqt_binds;
while( ( bind = * bind_ptr ) != NULL )
if( hb_vmRequestReenter() )
{
if( bind->qtObject == qtObject )
{
HB_TRACE( HB_TR_DEBUG, ( "........................QT_DESTROYING( %p ).....%s ... fDeleting=%s", qtObject, bind->szClassName, bind->fDeleting ? "YES" : "NO" ) );
PHBQT_BIND * bind_ptr, bind;
* bind_ptr = bind->next;
if( ! bind->fDeleting )
HBQT_BIND_LOCK
bind_ptr = &s_hbqt_binds;
while( ( bind = * bind_ptr ) != NULL )
{
if( bind->qtObject == qtObject )
{
hb_xfree( bind );
HB_TRACE( HB_TR_DEBUG, ( "........................QT_DESTROYING( %p ).....%s ... fDeleting=%s", qtObject, bind->szClassName, bind->fDeleting ? "YES" : "NO" ) );
* bind_ptr = bind->next;
if( ! bind->fDeleting )
{
hb_xfree( bind );
}
break;
}
break;
bind_ptr = &bind->next;
}
bind_ptr = &bind->next;
HBQT_BIND_UNLOCK
hb_vmRequestRestore();
}
HBQT_BIND_UNLOCK
}

View File

@@ -164,30 +164,36 @@ bool HBQEvents::eventFilter( QObject * object, QEvent * event )
{
bool stopTheEventChain = false;
if( object )
if( hb_vmRequestReenter() )
{
QEvent::Type eventtype = event->type();
if( ( int ) eventtype > 0 )
if( object )
{
int eventId = s_lstEvent.indexOf( eventtype );
QEvent::Type eventtype = event->type();
if( ( int ) eventtype > 0 )
{
int eventId = s_lstEvent.indexOf( eventtype );
if( eventId > -1 && hb_vmRequestReenter() )
{
PHB_ITEM pArray = hbqt_bindGetEvents( hbqt_bindGetHbObjectByQtObject( object ), eventtype );
if( pArray )
if( eventId > -1 )
{
PHB_ITEM pItem = hbqt_bindGetHbObject( NULL, ( void * ) event, ( s_lstCreateObj.at( eventId ) ), NULL, HBQT_BIT_NONE );
stopTheEventChain = ( bool ) hb_itemGetL( hb_vmEvalBlockV( hb_arrayGetItemPtr( pArray, 1 ), 1, pItem ) );
hb_itemRelease( pItem );
hb_itemRelease( pArray );
PHB_ITEM pArray = hbqt_bindGetEvents( hbqt_bindGetHbObjectByQtObject( object ), eventtype );
if( pArray )
{
if( hb_vmRequestQuery() == 0 )
{
PHB_ITEM pItem = hbqt_bindGetHbObject( NULL, ( void * ) event, ( s_lstCreateObj.at( eventId ) ), NULL, HBQT_BIT_NONE );
stopTheEventChain = ( bool ) hb_itemGetL( hb_vmEvalBlockV( hb_arrayGetItemPtr( pArray, 1 ), 1, pItem ) );
hb_itemRelease( pItem );
hb_itemRelease( pArray );
}
}
}
if( eventtype == QEvent::Close )
{
stopTheEventChain = true;
}
hb_vmRequestRestore();
}
if( eventtype == QEvent::Close )
{
return true;
}
}
hb_vmRequestRestore();
}
return stopTheEventChain;
}

View File

@@ -106,7 +106,7 @@ extern void hbqt_del_QTreeWidgetItem( void * pObj, int iFlags );
extern void hbqt_del_QTableWidgetItem( void * pObj, int iFlags );
extern void hbqt_del_QWidget( void * pObj, int iFlags );
extern void hbqt_del_QRect( void * pObj, int iFlags );
//
//
extern void hbqt_del_QActionEvent( void * pObj, int iFlags );
extern void hbqt_del_QContextMenuEvent( void * pObj, int iFlags );
extern void hbqt_del_QDragEnterEvent( void * pObj, int iFlags );
@@ -146,7 +146,7 @@ static void hbqt_SlotsExecQColor( PHB_ITEM * codeBlock, void ** arguments, QStri
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QColor( ( *reinterpret_cast< QColor( * ) >( arguments[ 1 ] ) ) ), "HB_QCOLOR", hbqt_del_QColor, HBQT_BIT_OWNER );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QColor( ( *reinterpret_cast< QColor( * ) >( arguments[ 1 ] ) ) ), "HB_QCOLOR", hbqt_del_QColor, HBQT_BIT_OWNER );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -158,7 +158,7 @@ static void hbqt_SlotsExecItemSelItemSel( PHB_ITEM * codeBlock, void ** argument
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QItemSelection( ( *reinterpret_cast< QItemSelection( * ) >( arguments[ 1 ] ) ) ), "HB_QITEMSELECTION", hbqt_del_QObject, HBQT_BIT_OWNER );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QItemSelection( ( *reinterpret_cast< QItemSelection( * ) >( arguments[ 1 ] ) ) ), "HB_QITEMSELECTION", hbqt_del_QObject, HBQT_BIT_OWNER );
PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, new QItemSelection( ( *reinterpret_cast< QItemSelection( * ) >( arguments[ 2 ] ) ) ), "HB_QITEMSELECTION", hbqt_del_QObject, HBQT_BIT_OWNER ) ;
hb_vmPush( p0 );
hb_vmPush( p1 );
@@ -185,7 +185,7 @@ static void hbqt_SlotsExecQFont( PHB_ITEM * codeBlock, void ** arguments, QStrin
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QFont( ( *reinterpret_cast< QFont( * ) >( arguments[ 1 ] ) ) ), "HB_QFONT", hbqt_del_QFont, HBQT_BIT_OWNER );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QFont( ( *reinterpret_cast< QFont( * ) >( arguments[ 1 ] ) ) ), "HB_QFONT", hbqt_del_QFont, HBQT_BIT_OWNER );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -209,7 +209,7 @@ static void hbqt_SlotsExecQTextBlock( PHB_ITEM * codeBlock, void ** arguments, Q
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QTextBlock( ( *reinterpret_cast< QTextBlock( * ) >( arguments[ 1 ] ) ) ), "HB_QTEXTBLOCK", hbqt_del_QTextBlock, HBQT_BIT_OWNER );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QTextBlock( ( *reinterpret_cast< QTextBlock( * ) >( arguments[ 1 ] ) ) ), "HB_QTEXTBLOCK", hbqt_del_QTextBlock, HBQT_BIT_OWNER );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -221,7 +221,7 @@ static void hbqt_SlotsExecQAbstractButton( PHB_ITEM * codeBlock, void ** argumen
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QWidget( ( QAbstractButton * ) ( arguments[ 1 ] ) ), "HB_QABSTRACTBUTTON", hbqt_del_QWidget, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QWidget( ( QAbstractButton * ) ( arguments[ 1 ] ) ), "HB_QABSTRACTBUTTON", hbqt_del_QWidget, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -233,7 +233,7 @@ static void hbqt_SlotsExecQAction( PHB_ITEM * codeBlock, void ** arguments, QStr
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QAction( ( QAction * ) ( arguments[ 1 ] ) ), "HB_QACTION", hbqt_del_QAction, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QAction( ( QAction * ) ( arguments[ 1 ] ) ), "HB_QACTION", hbqt_del_QAction, HBQT_BIT_OWNER | HBQT_BIT_QOBJECT );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -257,7 +257,7 @@ static void hbqt_SlotsExecQTreeWidgetItem( PHB_ITEM * codeBlock, void ** argumen
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -269,7 +269,7 @@ static void hbqt_SlotsExecQTreeWidgetItemInt( PHB_ITEM * codeBlock, void ** argu
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) );
hb_vmSend( 2 );
@@ -282,7 +282,7 @@ static void hbqt_SlotsExecQPrinter( PHB_ITEM * codeBlock, void ** arguments, QSt
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QPRINTER", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QPRINTER", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -294,7 +294,7 @@ static void hbqt_SlotsExecQStandardItem( PHB_ITEM * codeBlock, void ** arguments
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QSTANDARDITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QSTANDARDITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -306,7 +306,7 @@ static void hbqt_SlotsExecQListWidgetItem( PHB_ITEM * codeBlock, void ** argumen
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -318,8 +318,8 @@ static void hbqt_SlotsExecQListWidgetItemQListWidgetItem( PHB_ITEM * codeBlock,
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QLISTWIDGETITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmPush( p1 );
hb_vmSend( 2 );
@@ -333,7 +333,7 @@ static void hbqt_SlotsExecQTableWidgetItem( PHB_ITEM * codeBlock, void ** argume
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -345,8 +345,8 @@ static void hbqt_SlotsExecQTableWidgetItemQTableWidgetItem( PHB_ITEM * codeBlock
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QTABLEWIDGETITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmPush( p1 );
hb_vmSend( 2 );
@@ -360,7 +360,7 @@ static void hbqt_SlotsExecQTreeWidgetItemQTreeWidgetItem( PHB_ITEM * codeBlock,
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE );
PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QTREEWIDGETITEM", NULL, HBQT_BIT_NONE );
hb_vmPush( p0 );
hb_vmPush( p1 );
@@ -375,7 +375,7 @@ static void hbqt_SlotsExecQWidget( PHB_ITEM * codeBlock, void ** arguments, QStr
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT );
hb_vmPush( p0 );
hb_vmSend( 1 );
hb_itemRelease( p0 );
@@ -387,7 +387,7 @@ static void hbqt_SlotsExecQWidgetQWidget( PHB_ITEM * codeBlock, void ** argument
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT );
PHB_ITEM p1 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 2 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT );
hb_vmPush( p0 );
hb_vmPush( p1 );
@@ -402,7 +402,7 @@ static void hbqt_SlotsExecQWidgetInt( PHB_ITEM * codeBlock, void ** arguments, Q
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, *reinterpret_cast< void*( * ) >( arguments[ 1 ] ) , "HB_QWIDGET", NULL, HBQT_BIT_QOBJECT );
hb_vmPush( p0 );
hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) );
hb_vmSend( 2 );
@@ -414,7 +414,7 @@ static void hbqt_SlotsExecQRectInt( PHB_ITEM * codeBlock, void ** arguments, QSt
Q_UNUSED( pList );
hb_vmPushEvalSym();
hb_vmPush( codeBlock );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QRect( ( *reinterpret_cast< QRect( * ) >( arguments[ 1 ] ) ) ), "HB_QRECT", hbqt_del_QRect, HBQT_BIT_OWNER );
PHB_ITEM p0 = hbqt_bindGetHbObject( NULL, new QRect( ( *reinterpret_cast< QRect( * ) >( arguments[ 1 ] ) ) ), "HB_QRECT", hbqt_del_QRect, HBQT_BIT_OWNER );
hb_vmPush( p0 );
hb_vmPushInteger( *reinterpret_cast< int( * ) >( arguments[ 2 ] ) );
hb_vmSend( 2 );
@@ -712,6 +712,7 @@ static void hbqt_lib_exit( void * cargo )
HB_SYMBOL_UNUSED( cargo );
fIsQuitting = HB_TRUE;
s_app->exit( 0 );
delete s_app;
}
HB_FUNC( HBQT_ISACTIVEAPPLICATION )

View File

@@ -43,19 +43,8 @@ HB_EXTERN_END
HB_FUNC( QT_QAPPLICATION )
{
//__HB_RETPTRGC__( ( QApplication * ) __hbqtgui_app() );
hb_itemReturnRelease( hbqt_bindGetHbObject( NULL, ( void * ) __hbqtgui_app(), "HB_QAPPLICATION", NULL, HBQT_BIT_QOBJECT ) );
}
HB_FUNC( QT_QAPPLICATION_EXECUTE )
{
hb_retni( __hbqtgui_app()->exec() );
}
HB_FUNC( QT_QAPPLICATION_QUIT )
{
__hbqtgui_app()->quit();
}
</CODE>
<ENUMS>

View File

@@ -192,41 +192,39 @@ METHOD XbpListBox:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
METHOD XbpListBox:connect()
// ::oWidget:connect( QEvent_ContextMenu, {|e| ::grabEvent( QEvent_ContextMenu, e ) } )
::oWidget:connect( "currentItemChanged(QListWidgetItem*,QListWidgetItem*)", {|p,p1| ::execSlot( "currentItemChanged(QListWidgetItem*,QListWidgetItem*)", p, p1 ) } )
::oWidget:connect( "currentRowChanged(int)" , {|p,p1| ::execSlot( "currentRowChanged(int)" , p, p1 ) } )
::oWidget:connect( "currentTextChanged(QString)" , {|p,p1| ::execSlot( "currentTextChanged(QString)" , p, p1 ) } )
::oWidget:connect( "itemActivated(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemActivated(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "itemChanged(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemChanged(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "itemClicked(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemClicked(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "itemDoubleClicked(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemDoubleClicked(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "itemEntered(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemEntered(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "customContextMenuRequested(QPoint)" , {|p1 | ::execSlot( "customContextMenuRequested(QPoint)" , p1 ) } )
/*
::oWidget:connect( "currentItemChanged(QListWidgetItem*,QListWidgetItem*)", {|p,p1| ::execSlot( "currentItemChanged(QListWidgetItem*,QListWidgetItem*)", p, p1 ) } )
::oWidget:connect( "currentTextChanged(QString)" , {|p,p1| ::execSlot( "currentTextChanged(QString)" , p, p1 ) } )
::oWidget:connect( "itemActivated(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemActivated(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "itemChanged(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemChanged(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "itemPressed(QListWidgetItem*)" , {|p,p1| ::execSlot( "itemPressed(QListWidgetItem*)" , p, p1 ) } )
::oWidget:connect( "itemSelectionChanged()" , {|p,p1| ::execSlot( "itemSelectionChanged()" , p, p1 ) } )
::oWidget:connect( "customContextMenuRequested(QPoint)" , {|p1 | ::execSlot( "customContextMenuRequested(QPoint)" , p1 ) } )
*/
RETURN Self
/*----------------------------------------------------------------------*/
METHOD XbpListBox:disConnect()
// ::oWidget:disconnect( QEvent_ContextMenu )
::oWidget:disConnect( "currentItemChanged(QListWidgetItem*,QListWidgetItem*)" )
::oWidget:disConnect( "currentRowChanged(int)" )
::oWidget:disConnect( "currentTextChanged(QString)" )
::oWidget:disConnect( "itemActivated(QListWidgetItem*)" )
::oWidget:disConnect( "itemChanged(QListWidgetItem*)" )
::oWidget:disConnect( "itemClicked(QListWidgetItem*)" )
::oWidget:disConnect( "itemDoubleClicked(QListWidgetItem*)" )
::oWidget:disConnect( "itemEntered(QListWidgetItem*)" )
::oWidget:disconnect( "customContextMenuRequested(QPoint)" )
/*
::oWidget:disConnect( "currentItemChanged(QListWidgetItem*,QListWidgetItem*)" )
::oWidget:disConnect( "currentTextChanged(QString)" )
::oWidget:disConnect( "itemActivated(QListWidgetItem*)" )
::oWidget:disConnect( "itemChanged(QListWidgetItem*)" )
::oWidget:disConnect( "itemPressed(QListWidgetItem*)" )
::oWidget:disConnect( "itemSelectionChanged()" )
::oWidget:disconnect( "customContextMenuRequested(QPoint)" )
*/
RETURN Self
@@ -257,6 +255,7 @@ METHOD XbpListBox:getItemIndex( pItm )
METHOD XbpListBox:execSlot( cSlot, p )
LOCAL qPos, qItm, nIndex, n, qPt
HB_TRACE( HB_TR_ALWAYS, "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" )
IF cSlot == "customContextMenuRequested(QPoint)"
IF HB_ISBLOCK( ::hb_contextMenu )
@@ -285,8 +284,11 @@ METHOD XbpListBox:execSlot( cSlot, p )
::nCurSelected := p + 1
EXIT
CASE "itemClicked(QListWidgetItem*)"
HB_TRACE( HB_TR_ALWAYS, "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" )
::toggleSelected( nIndex )
HB_TRACE( HB_TR_ALWAYS, "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" )
::itemMarked()
HB_TRACE( HB_TR_ALWAYS, "MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM" )
EXIT
CASE "itemDoubleClicked(QListWidgetItem*)"
::itemSelected()