Pritpal, thanks

I need a basic code sample to test hbqt, without use of QInputContext,
QWidget, just to know if hbqt-qt461 for OS/2 will run

Something as minidemoqt.prg  :-)

This is not possible without QWidget class.
QWidget is the parent of all GUI classes.
This is the object tree :

QObject, QPaintDevice
  QWidget
     All Other GUI Widgets - menus, buttons, etc

So I need to resolve it in base class first,
then probably everything will built properly.


Please do the following:

0. QApplication.cpp -> HB_FUNC( QT_QWIDGET_INPUTCONTEXT )
      Comment it out.
Done

1. QWidget.cpp -> HB_FUNC( QT_QWIDGET_INPUTCONTEXT )
      Comment it out.
Done

2. Also commentout corresponding methods in
   TQApplication and TQWidget.
Done

3. Drop QInputContext.cpp and TQInputContext.prg from filelist.mk
Done

Compile hbQT. Do it compiles then ? If yes, we have the solution
already,

Compiling hbqtgui fail with QWidget.cpp, as expected, with:
----------------------
gcc   -I. -I../../../../../../include -Zomf -Wall -W -O3
-DHB_LEGACY_TYPES_OFF  -IE:\qt4\include -IE:\qt4\include/QtCore
-IE:\qt4\include/QtGui -DHB_FM_STATISTICS_OFF -oQWidget.o -c
../../../QWidget.cpp
../../../QWidget.cpp: In function 'void
HB_FUN_QT_QWIDGET_ACCESSIBLEDESCRIPTION()':
../../../QWidget.cpp:196: error: 'class QWidget' has no member named
'accessibleDescription'
../../../QWidget.cpp: In function 'void HB_FUN_QT_QWIDGET_ACCESSIBLENAME()':
../../../QWidget.cpp:204: error: 'class QWidget' has no member named
'accessibleName'
../../../QWidget.cpp: In function 'void
HB_FUN_QT_QWIDGET_SETACCESSIBLEDESCRIPTION()':
../../../QWidget.cpp:968: error: 'class QWidget' has no member named
'setAccessibleDescription'
../../../QWidget.cpp: In function 'void
HB_FUN_QT_QWIDGET_SETACCESSIBLENAME()':
../../../QWidget.cpp:976: error: 'class QWidget' has no member named
'setAccessibleName'
make[1]: *** [QWidget.o] Error 1
----------------------

So I used:

QWidget.cpp
===========
/*DAVID:
HB_FUNC( QT_QWIDGET_ACCESSIBLEDESCRIPTION )
{
   hb_retc( hbqt_par_QWidget( 1
)->accessibleDescription().toAscii().data() );
}
*/
/*DAVID:
HB_FUNC( QT_QWIDGET_ACCESSIBLENAME )
{
   hb_retc( hbqt_par_QWidget( 1 )->accessibleName().toAscii().data() );
}
*/
/*DAVID:
HB_FUNC( QT_QWIDGET_SETACCESSIBLEDESCRIPTION )
{
   hbqt_par_QWidget( 1 )->setAccessibleDescription( QWidget::tr(
hb_parc( 2 ) ) );
}
*/
/*DAVID:
HB_FUNC( QT_QWIDGET_SETACCESSIBLENAME )
{
   hbqt_par_QWidget( 1 )->setAccessibleName( QWidget::tr( hb_parc( 2 ) ) );
}
*/


TQWidget.prg
===========
//DAVID:   METHOD  accessibleDescription()
//DAVID:   METHOD  accessibleName()
//DAVID:   METHOD  setAccessibleDescription( cDescription )
//DAVID:   METHOD  setAccessibleName( cName )
/*DAVID:
METHOD QWidget:accessibleDescription()
   RETURN Qt_QWidget_accessibleDescription( ::pPtr )
*/

/*DAVID:
METHOD QWidget:accessibleName()
   RETURN Qt_QWidget_accessibleName( ::pPtr )
*/
/*DAVID:
METHOD QWidget:setAccessibleDescription( cDescription )
   RETURN Qt_QWidget_setAccessibleDescription( ::pPtr, cDescription )
*/

/*DAVID:
METHOD QWidget:setAccessibleName( cName )
   RETURN Qt_QWidget_setAccessibleName( ::pPtr, cName )
*/


and hbqtgui.lib build entirely


link demos. Those must then link properly.

If all goes fine, I will drop QInputContext alltogether.

Without above exercise, it is difficult to isolate other matters.
Logs of demos are useless as QWidget is not linked and all other
Qt world resolves around it.

So you can:
- drop QInputContext alltogether.
- Guard *Accessible* methods for OS/2 and
   #ifndef QT_NO_ACCESSIBILITY / #endif
 while "dummy QAccessible implementation in 4.6.1" can be completed


Trying to use hbqt* libs with samples/projects:
( All tests with Harbour 13976 )

demoqt.prg
==========
- It build fine
- Running it, create a small window with a three colors icon on it and
crash with (output is mixed 1,2):
----------------------
demoqt.prg:127:MAIN(): HB_TR_ALWAYS
demoqt.prg:128:MAIN(): HB_TR_ALWAYS -----------------b-----------------

Exception c0000005 at address 0x1e8af6f8


    Exception Code:C0000005
    Exception Address:1E8AF6F8
    EAX:0000002B  EBX:0050F2A0  ECX:0000002A  EDX:00000358
    ESI:029B0D64  EDI:02B5BFC0  EBP:002FED10
    CS:EIP:005B:1E8AF6F8  SS:ESP:0053:002FE7D8
    DS:0053  ES:0053  FS:150B  GS:0000
    Flags:00010202
Called from QT_QWIDGET_RESIZE(0)
Called from QMAINWINDOW:RESIZE(0) in ../../../TQWidget.prg
Called from MAIN(141) in demoqt.prg

Killed by SIGSEGV
pid=0x142b ppid=0x005e tid=0x0001 slot=0x00a2 pri=0x0200 mc=0x0001
E:\HARBOUR102\HARBOUR\CONTRIB\HBQT\TESTS\DEMOQT.EXE
PMMERGE 3:0007f6f8
cs:eip=005b:1e8af6f8      ss:esp=0053:002fe7d8      ebp=002fed10
 ds=0053      es=0053      fs=150b      gs=0000     efl=00010202
eax=0000002b ebx=0050f2a0 ecx=0000002a edx=00000358 edi=02b5bfc0
esi=029b0d64
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
----------------------


demoxbp.prg
==========
- It build fine
- Running it, create a big window with a three colors icon on it and
crash with (output is mixed 1,2):
----------------------
Exception c0000005 at address 0x1ddd69ca


    Exception Code:C0000005
    Exception Address:1DDD69CA
    EAX:00000001  EBX:02A9CE84  ECX:02A9CE8C  EDX:00000001
    ESI:00000000  EDI:02A9CE74  EBP:0039F728
    CS:EIP:005B:1DDD69CA  SS:ESP:0053:0039F710
    DS:0053  ES:0053  FS:150B  GS:0000
    Flags:00010246
Called from QPIXMAP:SCALED(0) in ../../../TQPixmap.prg
Called from XBPSTATUSBAR:SETPOINTER(0) in ../../../xbpwindow.prg
Called from BUILD_STATUSBAR(531) in demoxbp.prg
Called from BUILDADIALOG(168) in demoxbp.prg
Called from _BUILDADIALOG(107) in demoxbp.prg
Called from MAIN(98) in demoxbp.prg

Killed by SIGSEGV
pid=0x1459 ppid=0x142e tid=0x0001 slot=0x00a8 pri=0x0200 mc=0x0001
E:\HARBOUR102\HARBOUR\CONTRIB\HBXBP\TESTS\DEMOXBP.EXE
LIBC063 0:000669ca
cs:eip=005b:1ddd69ca      ss:esp=0053:0039f710      ebp=0039f728
 ds=0053      es=0053      fs=150b      gs=0000     efl=00010246
eax=00000001 ebx=02a9ce84 ecx=02a9ce8c edx=00000001 edi=02a9ce74
esi=00000000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
----------------------


demoqt.prg
==========
- Build fine
- Open a window with content
- Maximize beyond of desktop size
- Fx keys seem to work
- Output from 1,2 are:
----------------------
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::begin: Paint device returned engine == 0, type: 1
QFont::setPointSize: Point size <= 0 (0), must be greater than 0
QPainter::begin: Paint device returned engine == 0, type: 1
QFont::setPointSize: Point size <= 0 (0), must be greater than 0
QPainter::begin: Paint device returned engine == 0, type: 1
QFont::setPointSize: Point size <= 0 (0), must be greater than 0
QPainter::begin: Paint device returned engine == 0, type: 1
QFont::setPointSize: Point size <= 0 (0), must be greater than 0
----------------------


hbide project ( the BIG one ! )
===============================
- Build fine
- Open a window with content, with a lot of icons, menus, ...
- Windows resize, max, min, move, ... work fine
- Many checkboxs, actions work fine
- Many actions fails, for example "Open"
 Log file is around 800 lines, here are the bottom (1,2 mixed):
----------------------
THbQtUI.prg:0:HBQ_DBG(): HB_TR_ALWAYS DialogFind           {|o,v|
o[v]:setWindowTitle(q__tr("DialogFind", "Find and Replace", 0, "UTF8"))}
THbQtUI.prg:0:HBQ_DBG(): HB_TR_ALWAYS groupBox_2           {|o,v|
o[v]:setTitle("")}
THbQtUI.prg:0:HBQ_DBG(): HB_TR_ALWAYS groupBox_3           {|o,v|
o[v]:setTitle("")}
idemisc.prg:897:HBIDE_DBG(): HB_TR_ALWAYS C:\dev_sources\vouch\abc.prg
idemisc.prg:897:HBIDE_DBG(): HB_TR_ALWAYS
C:\harbour\contrib\hbide\projects\vouch\abc.prg

Exception c0000005 at address 0x1ddd69ca


    Exception Code:C0000005
    Exception Address:1DDD69CA
    EAX:00000001  EBX:02BF9B64  ECX:02BF9B6C  EDX:00000001
    ESI:00000000  EDI:02BF9B6C  EBP:0058DB6C
    CS:EIP:005B:1DDD69CA  SS:ESP:0053:0058DB54
    DS:0053  ES:0053  FS:150B  GS:0000
    Flags:00010246
Called from QT_QDIALOG_EXEC(0)
Called from QFILEDIALOG:EXEC(0) in ../../../TQDialog.prg
Called from XBPFILEDIALOG:OPEN(0) in ../../../xbpfiledialog.prg
Called from IDESOURCESMANAGER:SELECTSOURCE(442) in idesources.prg
Called from IDESOURCESMANAGER:OPENSOURCE(411) in idesources.prg
Called from HBIDE:EXECSOURCEACTION(720) in hbide.prg
Called from HBIDE:EXECACTION(499) in hbide.prg
Called from (b)IDEACTIONS_BUILDMAINMENU(411) in ideactions.prg
Called from XBPMENU:EXEBLOCK(0) in ../../../xbpmenubar.prg
Called from (b)XBPMENUBAR_PLACEITEM(0) in ../../../xbpmenubar.prg
Called from QT_QEVENTLOOP_PROCESSEVENTS(0)
Called from QEVENTLOOP:PROCESSEVENTS(0) in ../../../TQEventLoop.prg
Called from APPEVENT(0) in ../../../xbpgeneric.prg
Called from HBIDE:CREATE(417) in hbide.prg
Called from MAIN(110) in hbide.prg

Killed by SIGSEGV
pid=0x1439 ppid=0x142e tid=0x0001 slot=0x00a8 pri=0x0200 mc=0x0001
E:\HARBOUR102\HARBOUR\CONTRIB\HBIDE\HBIDE.EXE
LIBC063 0:000669ca
cs:eip=005b:1ddd69ca      ss:esp=0053:0058db54      ebp=0058db6c
 ds=0053      es=0053      fs=150b      gs=0000     efl=00010246
eax=00000001 ebx=02bf9b64 ecx=02bf9b6c edx=00000001 edi=02bf9b6c
esi=00000000
Process dumping was disabled, use DUMPPROC / PROCDUMP to enable it.
----------------------

So we have our firsts Harbour+os2gcc442+hbqt+qt461 applications running,
but with failures still

We are advancing :-)

David Macias



_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to