diff --git a/harbour/ChangeLog b/harbour/ChangeLog
index c1ef37781d..088d769d77 100644
--- a/harbour/ChangeLog
+++ b/harbour/ChangeLog
@@ -16,6 +16,90 @@
The license applies to all entries newer than 2009-04-28.
*/
+2010-09-28 09:43 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
+ * contrib/hbqt/qtwebkit/g/TQWebSecurityOrigin.prg
+ * contrib/hbqt/qtwebkit/g/TQWebSettings.prg
+ * contrib/hbqt/qtwebkit/g/TQWebView.prg
+
+ * contrib/hbide/hbqreportsmanager.prg
+ * contrib/hbide/hbqtoolbar.prg
+ * contrib/hbide/ideactions.prg
+ * contrib/hbide/idebrowse.prg
+ * contrib/hbide/idedocks.prg
+ * contrib/hbide/idedocwriter.prg
+ * contrib/hbide/ideedit.prg
+ * contrib/hbide/ideeditor.prg
+ * contrib/hbide/idefindreplace.prg
+ * contrib/hbide/idefunctions.prg
+ * contrib/hbide/ideharbourhelp.prg
+ * contrib/hbide/idemisc.prg
+ * contrib/hbide/ideprojmanager.prg
+ * contrib/hbide/idesaveload.prg
+ * contrib/hbide/ideshortcuts.prg
+ * contrib/hbide/ideskeletons.prg
+ * contrib/hbide/idethemes.prg
+ * contrib/hbide/idetools.prg
+ ! Adopted to latest changes.
+
+ * contrib/hbxbp/hbpprocess.prg
+ * contrib/hbxbp/xbp3state.prg
+ * contrib/hbxbp/xbpappevent.prg
+ * contrib/hbxbp/xbpbitmap.prg
+ * contrib/hbxbp/xbpbrowse.prg
+ * contrib/hbxbp/xbpcheckbox.prg
+ * contrib/hbxbp/xbpclipboard.prg
+ * contrib/hbxbp/xbpcombobox.prg
+ * contrib/hbxbp/xbpdialog.prg
+ * contrib/hbxbp/xbpfiledialog.prg
+ * contrib/hbxbp/xbpfontdialog.prg
+ * contrib/hbxbp/xbphtmlviewer.prg
+ * contrib/hbxbp/xbplistbox.prg
+ * contrib/hbxbp/xbpmenubar.prg
+ * contrib/hbxbp/xbpmle.prg
+ * contrib/hbxbp/xbpprintdialog.prg
+ * contrib/hbxbp/xbppushbutton.prg
+ * contrib/hbxbp/xbpradiobutton.prg
+ * contrib/hbxbp/xbprtf.prg
+ * contrib/hbxbp/xbpscrollbar.prg
+ * contrib/hbxbp/xbpsle.prg
+ * contrib/hbxbp/xbpspinbutton.prg
+ * contrib/hbxbp/xbpstatic.prg
+ * contrib/hbxbp/xbpstatusbar.prg
+ * contrib/hbxbp/xbptabpage.prg
+ * contrib/hbxbp/xbptoolbar.prg
+ * contrib/hbxbp/xbptreeview.prg
+ * contrib/hbxbp/xbpwindow.prg
+ * Adopted to latest changes.
+
+ * contrib/hbqt/tests/demoqt.prg
+ * Adopted to latest changes.
+
+ * contrib/hbqt/utils/hbqtgen.prg
+ + Implemented: many-t-one class method call on PRG level.
+
+ NOTES: this implementation is a leap forward in the evolution of hbQT.
+ Now any method call returns the Harbour compatible type.
+ It means any Qt method call which is expected to return a
+ hbQT object was returning a pointer to the object, now returns
+ a hbQT class object instance instead.
+
+ So, the code like this:
+ qCursor := QTextCursor():from( qDoc:textCursor() )
+ =>
+ qCursor := qDoc:textCursor()
+ And this implementation is exactly like Qt itself
+ where you can pass the return object directly as an
+ argument to the another method call.
+ pw := iif( abs( ::pen():widthF() ) > 0, abs( ::pen():widthF() ), 1 )
+
+ See hbIDE code to review how it is simplified by now.
+
+ WARNING: regression is highly possible and may be hbIDE become
+ unstable for some time.
+
+ 3rd party libraries: adopt new code to your advantage.
+ Many things are incompatible now.
+
2010-09-28 09:14 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbqt/qtgui/qth/QDesktopServices.qth
* contrib/hbqt/qtgui/qth/QGraphicsScene.qth
diff --git a/harbour/contrib/hbide/hbqreportsmanager.prg b/harbour/contrib/hbide/hbqreportsmanager.prg
index c0ff820919..760d28b696 100644
--- a/harbour/contrib/hbide/hbqreportsmanager.prg
+++ b/harbour/contrib/hbide/hbqreportsmanager.prg
@@ -197,7 +197,7 @@ CLASS HbqReportsManager
DATA qByte
DATA qMime
DATA qPix
- DATA pAct
+ DATA qAct
DATA qShapesMenu
DATA aShapesAct INIT array( NUM_SHAPES )
@@ -263,30 +263,24 @@ METHOD HbqReportsManager:create( qParent )
/* Toolbar */
::buildToolbar()
- //::qLayout:addWidget_1( ::qToolbar:oWidget , 0, 0, 1, 2 )
::qLayout:addWidget( ::qToolbar:oWidget , 0, 0, 1, 2 )
::buildToolbarAlign()
- //::qLayout:addWidget_1( ::qToolbarAlign:oWidget , 1, 0, 1, 2 )
::qLayout:addWidget( ::qToolbarAlign:oWidget , 1, 0, 1, 2 )
/* Toolbar left */
::buildToolbarLeft()
- //::qLayout:addWidget_1( ::qToolbarL:oWidget , 2, 0, 2, 1 )
::qLayout:addWidget( ::qToolbarL:oWidget , 2, 0, 2, 1 )
/* ::qTabBar */
::buildTabBar()
- //::qLayout:addWidget_1( ::qTabBar , 2, 1, 1, 1 )
::qLayout:addWidget( ::qTabBar , 2, 1, 1, 1 )
/* Stacked widget */
::buildStacks()
- //::qLayout:addWidget_1( ::qStack , 3, 1, 1, 1 )
::qLayout:addWidget( ::qStack , 3, 1, 1, 1 )
/* StatusBar */
::buildStatusBar()
- //::qLayout:addWidget_1( ::qStatus , 4, 0, 1, 2 )
::qLayout:addWidget( ::qStatus , 4, 0, 1, 2 )
/* Document manipulation interface */
@@ -430,7 +424,7 @@ METHOD HbqReportsManager:buildDesignReport()
/*----------------------------------------------------------------------*/
METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 )
- LOCAL qEvent, qMime, qItem, i, qList, cFile, nArea, aStruct, cAlias, cPath, qRC, qAct, qIcon, cType
+ LOCAL qEvent, qMime, qItem, i, qList, cFile, nArea, aStruct, cAlias, cPath, qRC, qIcon, cType
SWITCH cEvent
CASE "graphicsScene_block"
@@ -459,16 +453,16 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 )
CASE p == QEvent_GraphicsSceneDragLeave
CASE p == QEvent_GraphicsSceneDrop
- qMime := QMimeData():from( qEvent:mimeData() )
+ qMime := qEvent:mimeData()
IF qMime:hasFormat( "application/x-qabstractitemmodeldatalist" )
IF p2[ 1 ] == "DataTree"
IF p2[ 2 ] != p2[ 3 ]
- ::addField( p2[ 2 ], p2[ 3 ], QPointF():from( qEvent:scenePos() ), NIL )
+ ::addField( p2[ 2 ], p2[ 3 ], qEvent:scenePos(), NIL )
ENDIF
ENDIF
ELSEIF qMime:hasFormat( "application/x-toolbaricon" )
- ::addObject( qMime:html(), QPointF():from( qEvent:scenePos() ), NIL )
+ ::addObject( qMime:html(), qEvent:scenePos(), NIL )
ELSEIF qMime:hasFormat( "application/x-menuitem" )
cType := qMime:html()
@@ -485,10 +479,10 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 )
CASE "Diagonal Line Right"; cType := "LineDR" ; EXIT
CASE "Diagonal Line Left" ; cType := "LineDL" ; EXIT
ENDSWITCH
- ::addObject( cType, QPointF():from( qEvent:scenePos() ), NIL )
+ ::addObject( cType, qEvent:scenePos(), NIL )
ELSEIF qMime:hasUrls()
- qList := QStringList():from( qMime:hbUrlList() )
+ qList := qMime:hbUrlList()
FOR i := 0 TO qList:size() - 1
cFile := ( QUrl( qList:at( i ) ) ):toLocalFile()
@@ -534,22 +528,21 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 )
EXIT
CASE "QEvent_MouseMoveMenu"
- IF empty( ::qPos ) .OR. empty( ::pAct ) .OR. hbqt_isEmptyQtPointer( ::pAct )
+ IF empty( ::qPos ) .OR. empty( ::qAct ) .OR. ! ::qAct:isValidObject()
EXIT
ENDIF
qEvent := QMouseEvent():from( p )
- qRC := QRect():from( ( QRect( ::qPos:x() - 5, ::qPos:y() - 5, 10, 10 ) ):normalized() )
+ qRC := QRect( ::qPos:x() - 5, ::qPos:y() - 5, 10, 10 ):normalized()
IF qRC:contains( qEvent:pos() )
- qAct := QAction():from( ::pAct )
- qIcon := QIcon( qAct:icon() )
+ qIcon := QIcon( ::qAct:icon() )
- ::qByte := QByteArray( qAct:text() )
+ ::qByte := QByteArray( ::qAct:text() )
::qMime := QMimeData()
::qMime:setData( "application/x-menuitem", ::qByte )
- ::qMime:setHtml( qAct:text() )
+ ::qMime:setHtml( ::qAct:text() )
::qPix := QPixmap( qIcon:pixmap( 16,16 ) )
@@ -563,7 +556,7 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 )
ENDIF
::qDrag := NIL
::qPos := NIL
- ::pAct := NIL
+ ::qAct := NIL
EXIT
CASE "QEvent_MouseReleaseMenu"
::qDrag := NIL
@@ -572,8 +565,8 @@ METHOD HbqReportsManager:execEvent( cEvent, p, p1, p2 )
EXIT
CASE "QEvent_MousePressMenu"
qEvent := QMouseEvent():from( p )
- ::qPos := QPoint():from( qEvent:pos() )
- ::pAct := ::qShapesMenu:actionAt( qEvent:pos() )
+ ::qPos := qEvent:pos()
+ ::qAct := ::qShapesMenu:actionAt( qEvent:pos() )
EXIT
CASE "buttonShapes_clicked"
@@ -675,7 +668,7 @@ METHOD HbqReportsManager:openReport()
qFileDlg:setNameFilter( "HB Reports (*.hqr)" )
IF qFileDlg:exec() == 1
- qList := QStringList():from( qFileDlg:selectedFiles() )
+ qList := qFileDlg:selectedFiles()
cFile := qList:at( 0 )
IF !empty( cFile ) .AND. lower( right( cFile, 4 ) ) == ".hqr"
::loadReport( cFile )
@@ -701,7 +694,7 @@ METHOD HbqReportsManager:saveReport( lSaveAs )
qFileDlg:setNameFilter( "HB Reports (*.hqr)" )
IF qFileDlg:exec() == 1
- qList := QStringList():from( qFileDlg:selectedFiles() )
+ qList := qFileDlg:selectedFiles()
cFile := qList:at( 0 )
hb_fNameSplit( cFile, , , @cExt )
IF empty( cExt )
@@ -768,8 +761,8 @@ METHOD HbqReportsManager:buildReportStream()
n := a_:__enumIndex()
IF hb_hHasKey( ::hItems, a_[ 3 ] )
oWidget := ::hItems[ a_[ 3 ] ]:oWidget
- qPos := QPointF():from( oWidget:scenePos() )
- qTran := QTransform():from( oWidget:transform() )
+ qPos := oWidget:scenePos()
+ qTran := oWidget:transform()
a_[ 5 ] := { { 0, 0, oWidget:width(), oWidget:height() }, ;
{ qPos:x(), qPos:y() }, ;
@@ -1073,7 +1066,7 @@ METHOD HbqReportsManager:zoom( nMode )
/*----------------------------------------------------------------------*/
METHOD HbqReportsManager:contextMenuScene( p1 )
- LOCAL qMenu, qEvent, pAct
+ LOCAL qMenu, qEvent, qAct
qEvent := QGraphicsSceneContextMenuEvent():from( p1 )
@@ -1081,9 +1074,8 @@ METHOD HbqReportsManager:contextMenuScene( p1 )
qMenu:addAction( "Refresh" )
qMenu:addAction( "Zoom+" )
- pAct := qMenu:exec( qEvent:screenPos() )
- IF ! hbqt_isEmptyQtPointer( pAct )
- SWITCH ( QAction():configure( pAct ) ):text()
+ IF ( qAct := qMenu:exec( qEvent:screenPos() ) ):isValidObject()
+ SWITCH qAct:text()
CASE "Refresh"
EXIT
CASE "Zoom+"
@@ -1096,7 +1088,7 @@ METHOD HbqReportsManager:contextMenuScene( p1 )
/*----------------------------------------------------------------------*/
METHOD HbqReportsManager:contextMenuItem( p1, p2 )
- LOCAL qMenu, qEvent, pAct
+ LOCAL qMenu, qEvent, qAct
HB_SYMBOL_UNUSED( p2 )
@@ -1106,9 +1098,8 @@ METHOD HbqReportsManager:contextMenuItem( p1, p2 )
qMenu:addAction( "Cut" )
qMenu:addAction( "Copy" )
- pAct := qMenu:exec( qEvent:screenPos() )
- IF ! hbqt_isEmptyQtPointer( pAct )
- SWITCH ( QAction():configure( pAct ) ):text()
+ IF ( qAct := qMenu:exec( qEvent:screenPos() ) ):isValidObject()
+ SWITCH qAct:text()
CASE "Cut"
EXIT
CASE "Copy"
@@ -1337,7 +1328,7 @@ METHOD HbqReportsManager:execMenuShapes()
qBtn := ::qToolbarL:getItem( "Shapes" )
//
- qPos := QPoint():from( ::qToolbarL:mapToGlobal( qBtn:pos() ) )
+ qPos := ::qToolbarL:mapToGlobal( qBtn:pos() )
qPos:setX( qPos:x() + qBtn:width() / 2 )
qPos:setY( qPos:y() + qBtn:height() / 2 )
@@ -1519,14 +1510,14 @@ METHOD HbqReportsManager:printPreview( qPrinter )
qPrinter := QPrinter()
qInfo := QPrinterInfo( "QPrinter", qPrinter )
- qList := QList():from( qInfo:availablePrinters() )
+ qList := qInfo:availablePrinters()
FOR i := 0 TO qList:size() - 1
- qStr := QPrinterInfo():from( qList:at( i ) )
+ qStr := qList:at( i )
//HB_TRACE( HB_TR_ALWAYS, qList:at( i ), valtype( qList:at( i ) ), qStr:printerName() )
NEXT
qPrinter:setOutputFormat( QPrinter_PdfFormat )
qPrinter:setOrientation( ::qScene:orientation() )
- qPrinter:setPaperSize( QRectF():from( ::qScene:paperRect() ):size() )
+ qPrinter:setPaperSize( ::qScene:pageSize() )
// qPrinter:setFullPage( .t. )
qDlg := QPrintPreviewDialog( qPrinter, ::qView )
@@ -1557,15 +1548,15 @@ METHOD HbqReportsManager:printReport( qPrinter )
qPainter := QPainter()
qPainter:begin( qPrinter )
- qPainter:setWindow( QRectF():from( ::qScene:paperRect() ) )
+ qPainter:setWindow( ::qScene:paperRect() )
qPainter:setViewPort( 0, 0, qPrinter:width(), qPrinter:height() )
FOR EACH a_ IN ::aObjects
IF hb_hHasKey( ::hItems, a_[ 3 ] )
oHqrObject := ::hItems[ a_[ 3 ] ]
- qRectF := QRectF():from( oHqrObject:geometry() )
+ qRectF := oHqrObject:geometry()
qRectF := QRectF( TO_MMS( qRectF:x() ), TO_MMS( qRectF:y() ), TO_MMS( qRectF:width() ), TO_MMS( qRectF:height() ) )
- qT := QTransform():from( oHqrObject:transform() )
+ qT := oHqrObject:transform()
//HB_TRACE( HB_TR_ALWAYS, qT:m11(), qT:m12(), qT:m13(), qT:m21(), qT:m22(), qT:m23(), qT:m31(), qT:m32(), qT:m33() )
qT:translate( 0,0 )
qPainter:resetMatrix()
@@ -1811,8 +1802,9 @@ METHOD HqrGraphicsItem:execEvent( cEvent, p, p1, p2 )
::oRM:objectSelected( Self )
CASE p == 21017
- qPainter := QPainter():from( p1 )
- qRect := QRectF():from( p2 )
+ //qPainter := QPainter():from( p1 )
+ qPainter := HB_QPainter():from( p1 )
+ qRect := HB_QRectF():from( p2 )
::draw( qPainter, qRect )
CASE p == QEvent_GraphicsSceneContextMenu
@@ -2084,7 +2076,7 @@ METHOD HqrGraphicsItem:setGeometry( ... )
LOCAL qRectF, qPos, a_:= hb_aParams()
SWITCH len( a_ )
CASE 0
- qPos := QPointF():from( ::oWidget:pos() )
+ qPos := ::oWidget:pos()
RETURN QRectF( qPos:x(), qPos:y(), ::width(), ::height() )
CASE 1
IF hb_isObject( a_[ 1 ] )
@@ -2110,7 +2102,7 @@ METHOD HqrGraphicsItem:setPos( ... )
LOCAL a_:= hb_aParams()
SWITCH len( a_ )
CASE 0
- RETURN QPointF():from( ::oWidget:pos() )
+ RETURN ::oWidget:pos()
CASE 1
IF hb_isObject( a_[ 1 ] )
::oWidget:setPos( a_[ 1 ] )
@@ -2122,7 +2114,7 @@ METHOD HqrGraphicsItem:setPos( ... )
::update()
EXIT
ENDSWITCH
- RETURN QPointF():from( ::oWidget:pos() )
+ RETURN ::oWidget:pos()
/*----------------------------------------------------------------------*/
@@ -2425,7 +2417,7 @@ METHOD HqrGraphicsItem:drawGradient( qPainter, qRect )
METHOD HqrGraphicsItem:drawBarcode( qPainter, qRect )
LOCAL fl, clr, rc, w, x, i, cCode
- rc := QRectF():from( qRect:adjusted( 5, 5, -10, -10 ) )
+ rc := qRect:adjusted( 5, 5, -10, -10 )
cCode := fetchBarString( ::text() )
@@ -2463,7 +2455,7 @@ METHOD HqrGraphicsItem:drawImage( qPainter, qRect )
sh := 0
IF drawTextType == HBQT_GRAPHICSITEM_TEXT_DRAW_ABOVE .OR. ::drawTextType == HBQT_GRAPHICSITEM_TEXT_DRAW_BELOW
- textH = QFontMetricsF():from( qPainter:font() ):height()
+ textH = qPainter:font():pixelSize()
ENDIF
qPix := QPixmap( ::pixmap() )
@@ -2473,7 +2465,7 @@ METHOD HqrGraphicsItem:drawImage( qPainter, qRect )
qPainter:drawRect( qRect )
ELSE
img := QImage( 0, 0 )
- point := QPointF():from( qRect:topLeft() )
+ point := qRect:topLeft()
cx := 0; cy := 0; cw := qPix:width(); ch := qPix:height()
SWITCH paintType
@@ -2557,7 +2549,7 @@ METHOD HqrGraphicsItem:drawChart( qPainter, qRect )
LOCAL m_barsIdentation := 1.0 / UNIT
LOCAL nColorFactor := 1.7
- qFMetrix := QFontMetrics():from( qPainter:fontMetrics() )
+ qFMetrix := qPainter:fontMetrics()
nFHeight := qFMetrix:height()
IF empty( ::xData )
@@ -2568,8 +2560,8 @@ METHOD HqrGraphicsItem:drawChart( qPainter, qRect )
aadd( ::xData, { "Mangoes", 095.0, rmgr_generateNextColor() } )
ENDIF
- maxpv := 0
- minnv := 0
+ maxpv := 0
+ minnv := 0
aeval( ::xData, {|e_| iif( e_[ 2 ] < 0, minnv := min( minnv, e_[ 2 ] ), NIL ), iif( e_[ 2 ] > 0, maxpv := max( maxpv, e_[ 2 ] ), NIL ) } )
absMaxVal := maxpv - minnv
@@ -2591,7 +2583,7 @@ METHOD HqrGraphicsItem:drawChart( qPainter, qRect )
ENDIF
pw := iif( abs( ::pen():widthF() ) > 0, abs( ::pen():widthF() ), 1 )
- rc := QRectF():from( qRect:adjusted( pw / 2, pw / 2, -pw, -pw ) )
+ rc := qRect:adjusted( pw / 2, pw / 2, -pw, -pw )
f := 2
chartStep := ( 10.0 ^ ( len( substr( cMaxVal, 1, nDec - 1 ) ) - 1 ) ) / f
@@ -2630,7 +2622,7 @@ METHOD HqrGraphicsItem:drawChart( qPainter, qRect )
NEXT
qPainter:drawLine( rc:x() + maxLabelWidth + 1 / UNIT / 4, rc:y(), rc:x() + maxLabelWidth + 1 / UNIT / 4, rc:y() + qRect:height() )
- rc := QRectF():from( rc:adjusted( maxLabelWidth + 1 / UNIT / 4, 0, 0, 0 ) )
+ rc := rc:adjusted( maxLabelWidth + 1 / UNIT / 4, 0, 0, 0 )
ENDIF
IF m_showGrid
@@ -2641,7 +2633,7 @@ METHOD HqrGraphicsItem:drawChart( qPainter, qRect )
NEXT
ENDIF
- rc := QRectF():from( rc:adjusted( 0, nFHeight / 2, 0, 0 ) )
+ rc := rc:adjusted( 0, nFHeight / 2, 0, 0 )
x := m_barsIdentation
barWidth := ( rc:width() - m_barsIdentation * ( len( ::xData ) + 1 ) ) / len( ::xData )
py := maxHeight / maxVal
diff --git a/harbour/contrib/hbide/hbqtoolbar.prg b/harbour/contrib/hbide/hbqtoolbar.prg
index a1af3c8dd2..9a50f97c77 100644
--- a/harbour/contrib/hbide/hbqtoolbar.prg
+++ b/harbour/contrib/hbide/hbqtoolbar.prg
@@ -166,8 +166,7 @@ METHOD HbqToolbar:execEvent( cEvent, p, p1 )
EXIT
CASE "QEvent_MouseMove"
- qRC := QRect():from( ( QRect( ::qPos:x() - 5, ::qPos:y() - 5, 10, 10 ) ):normalized() )
-
+ qRC := QRect( ::qPos:x() - 5, ::qPos:y() - 5, 10, 10 ):normalized()
IF qRC:contains( qEvent:pos() )
::qByte := QByteArray( ::hItems[ p1 ]:objectName() )
@@ -182,9 +181,7 @@ METHOD HbqToolbar:execEvent( cEvent, p, p1 )
::qDrag:setPixmap( ::qPix )
::qDrag:setHotSpot( QPoint( 15,15 ) )
::qDrag:setDragCursor( ::qPix, Qt_MoveAction )
-
::qDropAction := ::qDrag:exec( Qt_MoveAction )
-
::qDrag := NIL
::qPos := NIL
::hItems[ p1 ]:setChecked( .f. )
@@ -193,12 +190,11 @@ METHOD HbqToolbar:execEvent( cEvent, p, p1 )
EXIT
CASE "QEvent_MouseRelease"
-HB_TRACE( HB_TR_ALWAYS, "QEvent_MouseRelease" )
::qDrag := NIL
EXIT
CASE "QEvent_MousePress"
- ::qPos := QPoint():from( qEvent:pos() )
+ ::qPos := qEvent:pos()
EXIT
CASE "buttonNew_clicked"
@@ -228,7 +224,7 @@ METHOD HbqToolbar:addWidget( cName, qWidget )
/*----------------------------------------------------------------------*/
METHOD HbqToolbar:addToolButton( cName, cDesc, cImage, bAction, lCheckable, lDragEnabled )
- LOCAL oButton, qAction
+ LOCAL oButton
STATIC nID := 0
@@ -253,13 +249,7 @@ METHOD HbqToolbar:addToolButton( cName, cDesc, cImage, bAction, lCheckable, lDra
IF hb_isBlock( bAction )
oButton:connect( "clicked()", bAction )
ENDIF
- #if 1
- qAction := QWidgetAction( ::oWidget )
- qAction:setDefaultWidget( oButton )
- ::oWidget:addAction( qAction )
- #else
::oWidget:addWidget( oButton )
- #endif
::hItems[ cName ] := oButton
RETURN oButton
diff --git a/harbour/contrib/hbide/ideactions.prg b/harbour/contrib/hbide/ideactions.prg
index 52bba44bf7..6906c72598 100644
--- a/harbour/contrib/hbide/ideactions.prg
+++ b/harbour/contrib/hbide/ideactions.prg
@@ -115,7 +115,7 @@ METHOD IdeActions:destroy()
LOCAL qAction
FOR EACH qAction IN ::hActions
- qAction:pPtr := NIL
+ qAction := NIL
NEXT
RETURN Self
diff --git a/harbour/contrib/hbide/idebrowse.prg b/harbour/contrib/hbide/idebrowse.prg
index 4ca30629e8..d886bc7bdc 100644
--- a/harbour/contrib/hbide/idebrowse.prg
+++ b/harbour/contrib/hbide/idebrowse.prg
@@ -225,7 +225,7 @@ METHOD IdeBrowseManager:getPanelsInfo()
aAttr[ TBL_RECORD ] := hb_ntos( oBrw:recNo() )
aAttr[ TBL_CURSOR ] := hb_ntos( oBrw:nCursorType )
IF !hb_isObject( aSub[ SUB_GEOMETRY ] )
- aSub[ SUB_GEOMETRY ] := QRect():from( aSub[ SUB_WINDOW ]:geometry() )
+ aSub[ SUB_GEOMETRY ] := aSub[ SUB_WINDOW ]:geometry()
ENDIF
aAttr[ TBL_GEOMETRY ] := hb_ntos( aSub[ SUB_GEOMETRY ]:x() ) + " " + hb_ntos( aSub[ SUB_GEOMETRY ]:y() ) + " " + ;
hb_ntos( aSub[ SUB_GEOMETRY ]:width() ) + " " + hb_ntos( aSub[ SUB_GEOMETRY ]:height() )
@@ -308,23 +308,19 @@ METHOD IdeBrowseManager:create( oIde )
/* Toolbar */
::buildToolbar()
- //::qLayout:addWidget_1( ::qToolbar, 0, 0, 1, 2 )
::qLayout:addWidget( ::qToolbar, 0, 0, 1, 2 )
/* Toolbar left */
::buildLeftToolbar()
- //::qLayout:addWidget_1( ::qToolbarL, 1, 0, 1, 1 )
::qLayout:addWidget( ::qToolbarL, 1, 0, 1, 1 )
/* Stacked widget */
::qStack := QStackedWidget()
- //::qLayout:addWidget_1( ::qStack , 1, 1, 1, 1 )
::qLayout:addWidget( ::qStack , 1, 1, 1, 1 )
/* StatusBar */
::qStatus := QStatusBar()
::qStatus:setSizeGripEnabled( .f. )
- //::qLayout:addWidget_1( ::qStatus , 2, 0, 1, 2 )
::qLayout:addWidget( ::qStatus , 2, 0, 1, 2 )
/* */
@@ -462,7 +458,7 @@ METHOD IdeBrowseManager:addPanel( cPanel )
METHOD IdeBrowseManager:addPanelsMenu( cPanel )
LOCAL qAct
- ( qAct := QAction():from( ::qPanelsMenu:addAction( cPanel ) ) ):setIcon( hbide_image( "panel_7" ) )
+ ( qAct := ::qPanelsMenu:addAction( cPanel ) ):setIcon( hbide_image( "panel_7" ) )
qAct:connect( "triggered(bool)", {|| ::setPanel( cPanel ) } )
aadd( ::aPanelsAct, qAct )
@@ -503,9 +499,9 @@ METHOD IdeBrowseManager:execEvent( cEvent, p, p1 )
CASE "dockDbu_dropEvent"
qEvent := QDropEvent():from( p )
- qMime := QMimeData():from( qEvent:mimeData() )
+ qMime := qEvent:mimeData()
IF qMime:hasUrls()
- qList := QStringList():from( qMime:hbUrlList() )
+ qList := qMime:hbUrlList()
FOR i := 0 TO qList:size() - 1
qUrl := QUrl( qList:at( i ) )
hb_fNameSplit( qUrl:toLocalFile(), @cPath, @cTable, @cExt )
@@ -763,13 +759,13 @@ METHOD IdeBrowseManager:populateFieldData()
LOCAL nRow, qItm
IF ( nRow := ::qStruct:q_tableFields:currentRow() ) >= 0
- qItm := QTableWidgetItem():from( ::qStruct:q_tableFields:item( nRow, 1 ) )
+ qItm := ::qStruct:q_tableFields:item( nRow, 1 )
::qStruct:q_editName:setText( qItm:text() )
- qItm := QTableWidgetItem():from( ::qStruct:q_tableFields:item( nRow, 2 ) )
+ qItm := ::qStruct:q_tableFields:item( nRow, 2 )
::qStruct:q_comboType:setCurrentIndex( ascan( {"Character", "Numeric", "Date", "Logical" }, qItm:text() ) - 1 )
- qItm := QTableWidgetItem():from( ::qStruct:q_tableFields:item( nRow, 3 ) )
+ qItm := ::qStruct:q_tableFields:item( nRow, 3 )
::qStruct:q_editSize:setText( qItm:text() )
- qItm := QTableWidgetItem():from( ::qStruct:q_tableFields:item( nRow, 4 ) )
+ qItm := ::qStruct:q_tableFields:item( nRow, 4 )
::qStruct:q_editDec:setText( qItm:text() )
ENDIF
@@ -838,8 +834,8 @@ METHOD IdeBrowseManager:buildUiStruct()
::qStruct:connect( QEvent_Close, {|| ::execEvent( "dbStruct_closeEvent" ) } )
oTbl := ::qStruct:q_tableFields
- QHeaderView():from( oTbl:verticalHeader() ):hide()
- QHeaderView():from( oTbl:horizontalHeader() ):stretchLastSection( .t. )
+ oTbl:verticalHeader():hide()
+ oTbl:horizontalHeader():stretchLastSection( .t. )
oTbl:setAlternatingRowColors( .t. )
oTbl:setColumnCount( len( hdr_ ) )
oTbl:setShowGrid( .t. )
@@ -1102,7 +1098,7 @@ METHOD IdeBrowseManager:updateIndexMenu( oBrw )
aIndex := ::oCurPanel:getIndexInfo( oBrw )
FOR EACH cIndex IN aIndex
- qAct := QAction():from( ::qIndexMenu:addAction( cIndex ) )
+ qAct := ::qIndexMenu:addAction( cIndex )
qAct:connect( "triggered(bool)", hbide_getMenuBlock( ::oCurPanel, oBrw, cIndex ) )
aadd( ::aIndexAct, qAct )
NEXT
@@ -1232,7 +1228,7 @@ METHOD IdeBrowsePanel:setViewStyle( nStyle )
ENDIF
IF ::nViewStyle == HBPMDI_STYLE_MAXIMIZED
- qObj := QMdiSubWindow():from( ::activeSubWindow() )
+ qObj := ::activeSubWindow()
FOR EACH a_ IN ::aBrowsers
a_[ 2 ]:setWindowState( Qt_WindowNoState )
NEXT
@@ -1250,7 +1246,7 @@ METHOD IdeBrowsePanel:setViewStyle( nStyle )
::qWidget:tileSubWindows()
EXIT
CASE HBPMDI_STYLE_MAXIMIZED
- qObj := QMdiSubWindow():from( ::activeSubWindow() )
+ qObj := ::activeSubWindow()
FOR EACH a_ IN ::aBrowsers
a_[ 2 ]:setWindowState( Qt_WindowMaximized )
NEXT
@@ -1276,7 +1272,7 @@ METHOD IdeBrowsePanel:tileVertically()
LOCAL qObj, qVPort, nH, nT, nW, a_
qObj := ::activeSubWindow()
- qVPort := QWidget():from( ::viewport() )
+ qVPort := ::viewport()
nH := qVPort:height() / len( ::aBrowsers )
nW := qVPort:width()
nT := 0
@@ -1293,7 +1289,7 @@ METHOD IdeBrowsePanel:tileHorizontally()
LOCAL qObj, qVPort, nH, nT, nW, nL, a_
qObj := ::activeSubWindow()
- qVPort := QWidget():from( ::viewport() )
+ qVPort := ::viewport()
nH := qVPort:height()
nW := qVPort:width() / len( ::aBrowsers )
nT := 0
@@ -1315,7 +1311,7 @@ METHOD IdeBrowsePanel:tilesZoom( nMode )
nT := 0
FOR EACH a_ IN ::aBrowsers
qMdi := a_[ 2 ]
- qRect := QRect():from( qMdi:geometry() )
+ qRect := qMdi:geometry()
nH := qRect:height() + ( nMode * ( qRect:height() / 4 ) )
qMdi:setGeometry( QRect( 0, nT, qRect:width(), nH ) )
nT += nH
@@ -1324,7 +1320,7 @@ METHOD IdeBrowsePanel:tilesZoom( nMode )
nL := 0
FOR EACH a_ IN ::aBrowsers
qMdi := a_[ 2 ]
- qRect := QRect():from( qMdi:geometry() )
+ qRect := qMdi:geometry()
nW := qRect:width() + ( nMode * ( qRect:width() / 4 ) )
qMdi:setGeometry( QRect( nL, 0, nW, qRect:height() ) )
nL += nW
@@ -1341,7 +1337,7 @@ METHOD IdeBrowsePanel:saveGeometry()
LOCAL a_
IF ::nViewStyle == HBPMDI_STYLE_ORGANIZED
FOR EACH a_ IN ::aBrowsers
- a_[ SUB_GEOMETRY ] := QRect():from( a_[ SUB_WINDOW ]:geometry() )
+ a_[ SUB_GEOMETRY ] := a_[ SUB_WINDOW ]:geometry()
NEXT
ENDIF
RETURN Self
@@ -1438,7 +1434,7 @@ METHOD IdeBrowsePanel:addBrowser( aInfo )
IF empty( oBrw:oBrw )
RETURN Self
ENDIF
- aadd( ::aBrowsers, { oBrw:nID, oBrw:qMdi, QRect():from( oBrw:qMdi:geometry() ), oBrw, NIL } )
+ aadd( ::aBrowsers, { oBrw:nID, oBrw:qMdi, oBrw:qMdi:geometry(), oBrw, NIL } )
::oManager:updateIndexMenu( oBrw )
RETURN Self
diff --git a/harbour/contrib/hbide/idedocks.prg b/harbour/contrib/hbide/idedocks.prg
index 23ccc81253..b4a2d5db02 100644
--- a/harbour/contrib/hbide/idedocks.prg
+++ b/harbour/contrib/hbide/idedocks.prg
@@ -286,23 +286,17 @@ METHOD IdeDocks:buildDialog()
IF ::oIde:lCurEditsMdi
::buildMdiToolbar()
- //::qLayout:addWidget_1( ::qMdiToolbar:oWidget , 0, 0, 1, 2 )
::qLayout:addWidget( ::qMdiToolbar:oWidget , 0, 0, 1, 2 )
::buildMdiToolbarLeft()
- //::qLayout:addWidget_1( ::qMdiToolbarL:oWidget , 1, 0, 1, 1 )
::qLayout:addWidget( ::qMdiToolbarL:oWidget , 1, 0, 1, 1 )
::buildStackedWidget()
- //::qLayout:addWidget_1( ::oStackedWidget:oWidget, 1, 1, 1, 1 )
::qLayout:addWidget( ::oStackedWidget:oWidget, 1, 1, 1, 1 )
::buildSearchReplaceWidget()
- //::qLayout:addWidget_1( ::oSearchReplace:oUI , 2, 0, 1, 2 )
::qLayout:addWidget( ::oSearchReplace:oUI , 2, 0, 1, 2 )
ELSE
::buildStackedWidget()
- //::qLayout:addWidget_1( ::oStackedWidget:oWidget, 0, 0, 1, 1 )
::qLayout:addWidget( ::oStackedWidget:oWidget, 0, 0, 1, 1 )
::buildSearchReplaceWidget()
- //::qLayout:addWidget_1( ::oSearchReplace:oUI , 1, 0, 1, 1 )
::qLayout:addWidget( ::oSearchReplace:oUI , 1, 0, 1, 1 )
ENDIF
@@ -429,10 +423,10 @@ METHOD IdeDocks:buildSystemTray()
::oSys:setIcon( hbide_image( "hbide" ) )
::oSys:connect( "activated(QSystemTrayIcon::ActivationReason)", {|p| ::execEvent( "qSystemTrayIcon_activated", p ) } )
- ::oIde:oSysMenu := QMenu() // ::oDlg:oWidget )
- ::qAct1 := QAction():from( ::oSysMenu:addAction( hbide_image( "fullscreen" ), "&Show" ) )
+ ::oIde:oSysMenu := QMenu()
+ ::qAct1 := ::oSysMenu:addAction( hbide_image( "fullscreen" ), "&Show" )
::oSysMenu:addSeparator()
- ::qAct2 := QAction():from( ::oSysMenu:addAction( hbide_image( "exit" ), "&Exit" ) )
+ ::qAct2 := ::oSysMenu:addAction( hbide_image( "exit" ), "&Exit" )
::qAct1:connect( "triggered(bool)", {|| ::execEvent( "qSystemTrayIcon_show" ) } )
::qAct2:connect( "triggered(bool)", {|| ::execEvent( "qSystemTrayIcon_close" ) } )
@@ -602,9 +596,9 @@ METHOD IdeDocks:execEvent( cEvent, p, p1 )
CASE "editWidget_dropEvent"
qEvent := QDropEvent():from( p )
- qMime := QMimeData():from( qEvent:mimeData() )
+ qMime := qEvent:mimeData()
IF qMime:hasUrls()
- qList := QStringList():from( qMime:hbUrlList() )
+ qList := qMime:hbUrlList()
FOR i := 0 TO qList:size() - 1
qUrl := QUrl( qList:at( i ) )
IF hbide_isValidText( qUrl:toLocalFile() )
@@ -622,9 +616,9 @@ HB_TRACE( HB_TR_DEBUG, "projectTree_dragEnterEvent" )
CASE "projectTree_dropEvent"
HB_TRACE( HB_TR_DEBUG, "projectTree_dropEvent" )
qEvent := QDropEvent():from( p )
- qMime := QMimeData():from( qEvent:mimeData() )
+ qMime := qEvent:mimeData()
IF qMime:hasUrls()
- qList := QStringList():from( qMime:hbUrlList() )
+ qList := qMime:hbUrlList()
FOR i := 0 TO qList:size() - 1
qUrl := QUrl( qList:at( i ) )
IF hbide_sourceType( qUrl:toLocalFile() ) == ".hbp"
@@ -723,7 +717,7 @@ METHOD IdeDocks:restState( nMode )
METHOD IdeDocks:stackMaximized()
LOCAL qObj, qMdi
- qObj := QMdiSubWindow():from( ::oStackedWidget:activeSubWindow() )
+ qObj := ::oStackedWidget:activeSubWindow()
FOR EACH qMdi IN ::oIde:aMdies
qMdi:setWindowState( Qt_WindowMaximized )
NEXT
@@ -742,7 +736,7 @@ METHOD IdeDocks:stackZoom( nMode )
nT := 0
FOR EACH qMdi IN ::oIde:aMdies
IF ::aViewsInfo[ qMdi:__enumIndex(), 1 ] != "Stats"
- qRect := QRect():from( qMdi:geometry() )
+ qRect := qMdi:geometry()
nH := qRect:height() + ( nMode * ( qRect:height() / 4 ) )
qMdi:setGeometry( QRect( 0, nT, qRect:width(), nH ) )
nT += nH
@@ -752,7 +746,7 @@ METHOD IdeDocks:stackZoom( nMode )
nL := 0
FOR EACH qMdi IN ::oIde:aMdies
IF ::aViewsInfo[ qMdi:__enumIndex(), 1 ] != "Stats"
- qRect := QRect():from( qMdi:geometry() )
+ qRect := qMdi:geometry()
nW := qRect:width() + ( nMode * ( qRect:width() / 4 ) )
qMdi:setGeometry( QRect( nL, 0, nW, qRect:height() ) )
nL += nW
@@ -770,8 +764,8 @@ METHOD IdeDocks:stackHorizontally()
::restState( 0 )
qArea := ::oStackedWidget
- qObj := QMdiSubWindow():from( qArea:activeSubWindow() )
- qVPort := QWidget():from( qArea:viewport() )
+ qObj := qArea:activeSubWindow()
+ qVPort := qArea:viewport()
nH := qVPort:height()
nW := qVPort:width() / ( len( ::oIde:aMdies ) - 1 )
nT := 0
@@ -795,8 +789,8 @@ METHOD IdeDocks:stackVertically()
::restState( 0 )
qArea := ::oStackedWidget
- qObj := QMdiSubWindow():from( qArea:activeSubWindow() )
- qVPort := QWidget():from( qArea:viewport() )
+ qObj := qArea:activeSubWindow()
+ qVPort := qArea:viewport()
nH := qVPort:height() / ( len( ::oIde:aMdies ) - 1 )
nW := qVPort:width()
nT := 0
@@ -830,7 +824,7 @@ METHOD IdeDocks:savePanelsGeometry()
LOCAL a_, n
FOR EACH a_ IN ::aViewsInfo
IF ( n := ascan( ::oIde:aMdies, {|o| o:objectName() == a_[ 1 ] } ) ) > 0
- a_[ 2 ] := QRect():from( ::oIde:aMdies[ n ]:geometry() )
+ a_[ 2 ] := ::oIde:aMdies[ n ]:geometry()
ENDIF
NEXT
RETURN Self
@@ -1346,7 +1340,7 @@ METHOD IdeDocks:buildToolBarPanels()
IF empty( a_ )
::qTBarDocks:addSeparator()
ELSE
- qAct := QAction():from( a_[ 1 ]:oWidget:toggleViewAction() )
+ qAct := a_[ 1 ]:oWidget:toggleViewAction()
qAct:setIcon( hbide_image( a_[ 2 ] ) )
::qTBarDocks:addAction( qAct )
aadd( ::aBtnDocks, qAct )
@@ -1616,12 +1610,12 @@ METHOD IdeDocks:outputDoubleClicked( lSelected )
LOCAL cSource, nLine
IF lSelected
- qCursor := QTextCursor():configure( ::oOutputResult:oWidget:textCursor() )
- cText := QTextBlock():configure( qCursor:block() ):text()
+ qCursor := ::oOutputResult:oWidget:textCursor()
+ cText := qCursor:block():text()
IF hbide_parseFNfromStatusMsg( cText, @cSource, @nLine, .T. )
IF ::oSM:editSource( cSource, 0, 0, 0, NIL, NIL, .f., .t. )
- qCursor := QTextCursor():configure( ::oIde:qCurEdit:textCursor() )
+ qCursor := ::oIde:qCurEdit:textCursor()
nLine := iif( nLine < 1, 0, nLine - 1 )
qCursor:setPosition( 0 )
diff --git a/harbour/contrib/hbide/idedocwriter.prg b/harbour/contrib/hbide/idedocwriter.prg
index b53f89dac1..2cc78093d6 100644
--- a/harbour/contrib/hbide/idedocwriter.prg
+++ b/harbour/contrib/hbide/idedocwriter.prg
@@ -652,7 +652,7 @@ METHOD IdeDocWriter:saveInFunction()
MsgBox( "Source is modified, anyway proceeding.", "Documentation Save Alert" )
ENDIF
- qCursor := QTextCursor():from( oEdit:qEdit:textCursor() )
+ qCursor := oEdit:qEdit:textCursor()
qCursor:beginEditBlock()
::removeDocHelp( nCurLine, oEdit )
diff --git a/harbour/contrib/hbide/ideedit.prg b/harbour/contrib/hbide/ideedit.prg
index 58e7c83554..3f5b483160 100644
--- a/harbour/contrib/hbide/ideedit.prg
+++ b/harbour/contrib/hbide/ideedit.prg
@@ -205,7 +205,7 @@ CLASS IdeEdit INHERIT IdeObject
METHOD setLineNumbersBkColor( nR, nG, nB )
METHOD setCurrentLineColor( nR, nG, nB )
- METHOD getCursor() INLINE QTextCursor():from( ::qEdit:textCursor() )
+ METHOD getCursor() INLINE ::qEdit:textCursor()
METHOD find( cText, nPosFrom )
METHOD refresh()
METHOD isModified() INLINE ::oEditor:qDocument:isModified()
@@ -280,7 +280,6 @@ METHOD IdeEdit:create( oIde, oEditor, nMode )
::qEdit:setLineWrapMode( QTextEdit_NoWrap )
::qEdit:ensureCursorVisible()
::qEdit:setContextMenuPolicy( Qt_CustomContextMenu )
-// ::qEdit:installEventFilter( ::pEvents )
::qEdit:setTabChangesFocus( .f. )
::setFont()
@@ -429,83 +428,84 @@ METHOD IdeEdit:connectEditSignals( oEdit )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:execEvent( nMode, oEdit, p, p1 )
- LOCAL pAct, qAct, n, qEdit, oo, qCursor, cProto, nRows, nCols, cAct
+ LOCAL qAct, n, qEdit, oo, qCursor, cProto, nRows, nCols, cAct
HB_SYMBOL_UNUSED( p1 )
qEdit := oEdit:qEdit
- qCursor := QTextCursor():configure( qEdit:textCursor() )
+ qCursor := qEdit:textCursor()
oEdit:nCurLineNo := qCursor:blockNumber()
SWITCH nMode
CASE customContextMenuRequested
- QAction():from( ::oEM:aActions[ 17, 2 ] ):setEnabled( !empty( qCursor:selectedText() ) )
+ //::oEM:aActions[ 17, 2 ]:setEnabled( !empty( qCursor:selectedText() ) )
+ ::oEM:aActions[ 17, 2 ]:setEnabled( !empty( qCursor:selectedText() ) )
n := ascan( ::oEditor:aEdits, {|o| o == oEdit } )
- QAction():from( ::oEM:aActions[ 18, 2 ] ):setEnabled( len( ::oEditor:aEdits ) == 0 .OR. ::oEditor:nSplOrient == -1 .OR. ::oEditor:nSplOrient == 1 )
- QAction():from( ::oEM:aActions[ 19, 2 ] ):setEnabled( len( ::oEditor:aEdits ) == 0 .OR. ::oEditor:nSplOrient == -1 .OR. ::oEditor:nSplOrient == 2 )
- QAction():from( ::oEM:aActions[ 21, 2 ] ):setEnabled( n > 0 )
+ ::oEM:aActions[ 18, 2 ]:setEnabled( len( ::oEditor:aEdits ) == 0 .OR. ::oEditor:nSplOrient == -1 .OR. ::oEditor:nSplOrient == 1 )
+ ::oEM:aActions[ 19, 2 ]:setEnabled( len( ::oEditor:aEdits ) == 0 .OR. ::oEditor:nSplOrient == -1 .OR. ::oEditor:nSplOrient == 2 )
+ ::oEM:aActions[ 21, 2 ]:setEnabled( n > 0 )
- pAct := ::oEM:qContextMenu:exec( qEdit:mapToGlobal( p ) )
- IF !hbqt_isEmptyQtPointer( pAct )
- qAct := QAction():configure( pAct )
- cAct := strtran( qAct:text(), "&", "" )
- SWITCH cAct
- CASE "Split Horizontally"
- ::oEditor:split( 1, oEdit )
- EXIT
- CASE "Split Vertically"
- ::oEditor:split( 2, oEdit )
- EXIT
- CASE "Close Split Window"
- IF n > 0 /* 1 == Main Edit */
- ::oUpDn:oUI:setParent( ::oEditor:oEdit:qEdit )
- oo := ::oEditor:aEdits[ n ]
- hb_adel( ::oEditor:aEdits, n, .t. )
- oo:destroy( .f. )
- ::oEditor:qCqEdit := ::oEditor:qEdit
- ::oEditor:qCoEdit := ::oEditor:oEdit
- ::oIde:manageFocusInEditor()
- ENDIF
- EXIT
- CASE "Save as Skeleton..."
- ::oSK:saveAs( ::getSelectedText() )
- EXIT
- CASE "Apply Theme"
- ::oEditor:applyTheme()
- EXIT
- CASE "Goto Function"
- ::gotoFunction()
- EXIT
- CASE "Cut"
- IF ::oIde:lCurEditsMdi
- ::cut()
- ENDIF
- EXIT
- CASE "Copy"
- IF ::oIde:lCurEditsMdi
- ::copy()
- ENDIF
- EXIT
- CASE "Paste"
- IF ::oIde:lCurEditsMdi
- ::paste()
- ENDIF
- EXIT
- CASE "Undo"
- IF ::oIde:lCurEditsMdi
- ::undo()
- ENDIF
- EXIT
- CASE "Redo"
- IF ::oIde:lCurEditsMdi
- ::redo()
- ENDIF
- EXIT
- ENDSWITCH
+ IF ! ( qAct := ::oEM:qContextMenu:exec( qEdit:mapToGlobal( p ) ) ):isValidObject()
+ RETURN Self
ENDIF
+
+ cAct := strtran( qAct:text(), "&", "" )
+ SWITCH cAct
+ CASE "Split Horizontally"
+ ::oEditor:split( 1, oEdit )
+ EXIT
+ CASE "Split Vertically"
+ ::oEditor:split( 2, oEdit )
+ EXIT
+ CASE "Close Split Window"
+ IF n > 0 /* 1 == Main Edit */
+ ::oUpDn:oUI:setParent( ::oEditor:oEdit:qEdit )
+ oo := ::oEditor:aEdits[ n ]
+ hb_adel( ::oEditor:aEdits, n, .t. )
+ oo:destroy( .f. )
+ ::oEditor:qCqEdit := ::oEditor:qEdit
+ ::oEditor:qCoEdit := ::oEditor:oEdit
+ ::oIde:manageFocusInEditor()
+ ENDIF
+ EXIT
+ CASE "Save as Skeleton..."
+ ::oSK:saveAs( ::getSelectedText() )
+ EXIT
+ CASE "Apply Theme"
+ ::oEditor:applyTheme()
+ EXIT
+ CASE "Goto Function"
+ ::gotoFunction()
+ EXIT
+ CASE "Cut"
+ IF ::oIde:lCurEditsMdi
+ ::cut()
+ ENDIF
+ EXIT
+ CASE "Copy"
+ IF ::oIde:lCurEditsMdi
+ ::copy()
+ ENDIF
+ EXIT
+ CASE "Paste"
+ IF ::oIde:lCurEditsMdi
+ ::paste()
+ ENDIF
+ EXIT
+ CASE "Undo"
+ IF ::oIde:lCurEditsMdi
+ ::undo()
+ ENDIF
+ EXIT
+ CASE "Redo"
+ IF ::oIde:lCurEditsMdi
+ ::redo()
+ ENDIF
+ EXIT
+ ENDSWITCH
EXIT
@@ -602,7 +602,7 @@ METHOD IdeEdit:execKeyEvent( nMode, nEvent, p, p1 )
SWITCH nEvent
CASE QEvent_KeyPress
- qEvent := QKeyEvent():configure( p )
+ qEvent := QKeyEvent():from( p )
key := qEvent:key()
kbm := qEvent:modifiers()
@@ -768,7 +768,7 @@ STATIC FUNCTION hbide_setQCursor( qEdit, q_ )
qEdit:setTextCursor( qCursor )
qCursor:endEditBlock()
ELSE
- qCursor := QTextCursor():from( qEdit:textCursor() )
+ qCursor := qEdit:textCursor()
qCursor:beginEditBlock()
RETURN { qCursor, qCursor:blockNumber(), qCursor:columnNumber() }
ENDIF
@@ -941,7 +941,7 @@ METHOD IdeEdit:pasteBlockContents( nMode )
ENDIF
nPasteMode := iif( empty( nPasteMode ), selectionMode_stream, nPasteMode )
- qCursor := QTextCursor():from( ::qEdit:textCursor() )
+ qCursor := ::qEdit:textCursor()
nCol := qCursor:columnNumber()
qCursor:beginEditBlock()
@@ -1000,7 +1000,7 @@ METHOD IdeEdit:insertBlockContents( aCord )
cKey := chr( XbpQKeyEventToAppEvent( aCord[ 7 ] ) )
- qCursor := QTextCursor():from( ::qEdit:textCursor() )
+ qCursor := ::qEdit:textCursor()
qCursor:beginEditBlock()
IF nW == 0
@@ -1046,7 +1046,7 @@ METHOD IdeEdit:deleteBlockContents( aCord )
nSelMode := aCord[ 5 ]
- qCursor := QTextCursor():from( ::qEdit:textCursor() )
+ qCursor := ::qEdit:textCursor()
qCursor:beginEditBlock()
nW := nR - nL
@@ -1586,7 +1586,7 @@ METHOD IdeEdit:relayMarkButtons()
METHOD IdeEdit:setNewMark()
LOCAL qCursor, nBlock, n
- IF !( qCursor := QTextCursor():configure( ::qEdit:textCursor() ) ):isNull()
+ IF !( qCursor := ::qEdit:textCursor() ):isNull()
nBlock := qCursor:blockNumber() + 1
IF ( n := ascan( ::aBookMarks, nBlock ) ) > 0
@@ -1664,7 +1664,7 @@ METHOD IdeEdit:findEx( cText, nFlags, nStart )
IF ( lFound := ::qEdit:find( cText, nFlags ) )
::qEdit:centerCursor()
- qCursor := QTextCursor():from( ::qEdit:textCursor() ) //::getCursor()
+ qCursor := ::qEdit:textCursor()
::qEdit:hbSetSelectionInfo( { qCursor:blockNumber(), qCursor:columnNumber() - len( cText ), ;
qCursor:blockNumber(), qCursor:columnNumber(), 1, .t., .f. } )
@@ -1685,10 +1685,10 @@ METHOD IdeEdit:unHighlight()
::isHighLighted := .f.
qCursor := ::getCursor()
nPos := qCursor:position()
- lModified := QTextDocument():configure( ::qEdit:document() ):isModified()
+ lModified := ::qEdit:document():isModified()
::qEdit:undo()
IF ! lModified
- QTextDocument():configure( ::qEdit:document() ):setModified( .f. )
+ ::qEdit:document():setModified( .f. )
::oEditor:setTabImage( ::qEdit )
ENDIF
qCursor:setPosition( nPos )
@@ -1710,18 +1710,18 @@ METHOD IdeEdit:highlightAll( cText )
::isHighLighted := .t.
qDoc := ::oEditor:qDocument
- lModified := QTextDocument():configure( ::qEdit:document() ):isModified()
+ lModified := ::qEdit:document():isModified()
qCur := ::getCursor()
qCur:beginEditBlock()
qCursor := QTextCursor( "QTextDocument", qDoc )
- qFormat := QTextCharFormat():from( qCursor:charFormat() )
+ qFormat := qCursor:charFormat()
qFormatHL := qFormat
qFormatHL:setBackground( QBrush( "QColor", QColor( Qt_yellow ) ) )
DO WHILE .t.
- qCursor := QTextCursor():from( qDoc:find( cText, qCursor, 0 ) )
+ qCursor := qDoc:find( cText, qCursor, 0 )
IF qCursor:isNull()
EXIT
ENDIF
@@ -1730,7 +1730,7 @@ METHOD IdeEdit:highlightAll( cText )
qCur:endEditBlock()
IF ! lModified
- QTextDocument():configure( ::qEdit:document() ):setModified( .f. )
+ ::qEdit:document():setModified( .f. )
::oEditor:setTabImage( ::qEdit )
ENDIF
@@ -1849,7 +1849,7 @@ METHOD IdeEdit:printPreview()
METHOD IdeEdit:paintRequested( pPrinter )
LOCAL qPrinter
- qPrinter := QPrinter():configure( pPrinter )
+ qPrinter := QPrinter():from( pPrinter )
::qEdit:print( qPrinter )
RETURN Self
@@ -1858,7 +1858,7 @@ METHOD IdeEdit:paintRequested( pPrinter )
METHOD IdeEdit:formatBraces()
LOCAL qDoc, cText
- qDoc := QTextDocument():configure( ::qEdit:document() )
+ qDoc := ::qEdit:document()
IF !( qDoc:isEmpty() )
qDoc:setUndoRedoEnabled( .f. )
@@ -1905,7 +1905,7 @@ METHOD IdeEdit:formatBraces()
METHOD IdeEdit:removeTrailingSpaces()
LOCAL qDoc, cText, a_, s
- qDoc := QTextDocument():from( ::qEdit:document() )
+ qDoc := ::qEdit:document()
IF !( qDoc:isEmpty() )
qDoc:setUndoRedoEnabled( .f. )
cText := qDoc:toPlainText()
@@ -1925,7 +1925,7 @@ METHOD IdeEdit:removeTrailingSpaces()
METHOD IdeEdit:tabs2spaces()
LOCAL qDoc, cText, cSpaces
- qDoc := QTextDocument():configure( ::qEdit:document() )
+ qDoc := ::qEdit:document()
IF !( qDoc:isEmpty() )
cSpaces := space( ::nTabSpaces )
@@ -1944,7 +1944,7 @@ METHOD IdeEdit:tabs2spaces()
METHOD IdeEdit:spaces2tabs()
LOCAL qDoc, cText, cSpaces
- qDoc := QTextDocument():configure( ::qEdit:document() )
+ qDoc := ::qEdit:document()
IF !( qDoc:isEmpty() )
cSpaces := space( ::nTabSpaces )
@@ -1979,12 +1979,12 @@ METHOD IdeEdit:moveLine( nDirection )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:getText()
- RETURN QTextCursor():from( ::qEdit:textCursor() ):selectedText()
+ RETURN ::qEdit:textCursor():selectedText()
/*----------------------------------------------------------------------*/
METHOD IdeEdit:getWord( lSelect )
- LOCAL cText, qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ LOCAL cText, qCursor := ::qEdit:textCursor()
DEFAULT lSelect TO .F.
@@ -2000,7 +2000,7 @@ METHOD IdeEdit:getWord( lSelect )
METHOD IdeEdit:goto( nLine )
LOCAL nRows, qGo
- LOCAL qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ LOCAL qCursor := ::qEdit:textCursor()
IF empty( nLine )
nRows := ::qEdit:blockCount()
@@ -2030,7 +2030,7 @@ METHOD IdeEdit:goto( nLine )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:getLine( nLine, lSelect )
- LOCAL cText, qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ LOCAL cText, qCursor := ::qEdit:textCursor()
DEFAULT nLine TO qCursor:blockNumber() + 1
DEFAULT lSelect TO .F.
@@ -2051,17 +2051,17 @@ METHOD IdeEdit:getLine( nLine, lSelect )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:getColumnNo()
- RETURN QTextCursor():from( ::qEdit:textCursor() ):columnNumber() + 1
+ RETURN ::qEdit:textCursor():columnNumber() + 1
/*----------------------------------------------------------------------*/
METHOD IdeEdit:getLineNo()
- RETURN QTextCursor():from( ::qEdit:textCursor() ):blockNumber() + 1
+ RETURN ::qEdit:textCursor():blockNumber() + 1
/*----------------------------------------------------------------------*/
METHOD IdeEdit:insertSeparator( cSep )
- LOCAL qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ LOCAL qCursor := ::qEdit:textCursor()
IF empty( cSep )
cSep := ::cSeparator
@@ -2083,7 +2083,7 @@ METHOD IdeEdit:insertText( cText )
LOCAL qCursor, nL, nB
IF hb_isChar( cText ) .AND. !Empty( cText )
- qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ qCursor := ::qEdit:textCursor()
nL := len( cText )
nB := qCursor:position() + nL
@@ -2108,8 +2108,8 @@ METHOD IdeEdit:handlePreviousWord( lUpdatePrevWord )
qEdit := ::qEdit
- qCursor := QTextCursor():configure( qEdit:textCursor() )
- qTextBlock := QTextBlock():configure( qCursor:block() )
+ qCursor := qEdit:textCursor()
+ qTextBlock := qCursor:block()
cText := qTextBlock:text()
nCol := qCursor:columnNumber()
IF ( substr( cText, nCol - 1, 1 ) == " " )
@@ -2187,10 +2187,10 @@ METHOD IdeEdit:findLastIndent()
LOCAL qCursor, qTextBlock, cText, cWord
LOCAL nSpaces := 0
- qCursor := QTextCursor():configure( ::qEdit:textCursor() )
- qTextBlock := QTextBlock():configure( qCursor:block() )
+ qCursor := ::qEdit:textCursor()
+ qTextBlock := qCursor:block()
- qTextBlock := QTextBlock():configure( qTextBlock:previous() )
+ qTextBlock := qTextBlock:previous()
DO WHILE .t.
IF !( qTextBlock:isValid() )
EXIT
@@ -2204,7 +2204,7 @@ METHOD IdeEdit:findLastIndent()
EXIT
ENDIF
ENDIF
- qTextBlock := QTextBlock():configure( qTextBlock:previous() )
+ qTextBlock := qTextBlock:previous()
ENDDO
RETURN nSpaces
@@ -2217,7 +2217,7 @@ METHOD IdeEdit:handleCurrentIndent()
IF ::lIndentIt
::lIndentIt := .f.
IF ( nSpaces := ::findLastIndent() ) > 0
- qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ qCursor := ::qEdit:textCursor()
qCursor:insertText( space( nSpaces ) )
ENDIF
ENDIF
@@ -2258,8 +2258,8 @@ METHOD IdeEdit:loadFuncHelp()
LOCAL qEdit, qCursor, qTextBlock, cText, cWord, nCol, cPro
qEdit := ::qEdit
- qCursor := QTextCursor():configure( qEdit:textCursor() )
- qTextBlock := QTextBlock():configure( qCursor:block() )
+ qCursor := qEdit:textCursor()
+ qTextBlock := qCursor:block()
cText := qTextBlock:text()
nCol := qCursor:columnNumber()
cWord := hbide_getPreviousWord( cText, nCol )
@@ -2369,7 +2369,7 @@ METHOD IdeEdit:parseCodeCompletion( cSyntax )
/*----------------------------------------------------------------------*/
METHOD IdeEdit:completeCode( p )
- LOCAL qCursor := QTextCursor():from( ::qEdit:textCursor() )
+ LOCAL qCursor := ::qEdit:textCursor()
LOCAL cWord
qCursor:movePosition( QTextCursor_Left )
diff --git a/harbour/contrib/hbide/ideeditor.prg b/harbour/contrib/hbide/ideeditor.prg
index 1447b92913..5e3cb6f476 100644
--- a/harbour/contrib/hbide/ideeditor.prg
+++ b/harbour/contrib/hbide/ideeditor.prg
@@ -225,7 +225,7 @@ METHOD IdeEditsManager:create( oIde )
aadd( ::aActions, { "Apply Theme" , ::qContextMenu:addAction( "Apply Theme" ) } )
aadd( ::aActions, { "Save as Skltn", ::qContextMenu:addAction( "Save as Skeleton..." ) } )
- ::qContextSub := QMenu():configure( ::qContextMenu:addMenu( "Split" ) )
+ ::qContextSub := ::qContextMenu:addMenu( "Split" )
//
aadd( ::aActions, { "Split H" , ::qContextSub:addAction( "Split Horizontally" ) } )
aadd( ::aActions, { "Split V" , ::qContextSub:addAction( "Split Vertically" ) } )
@@ -316,8 +316,8 @@ METHOD IdeEditsManager:updateCompleter()
::qCompModel:setStringList( ::qProtoList )
::qCompleter:setModel( ::qCompModel )
::qCompleter:setCompletionMode( QCompleter_PopupCompletion )
- ( QListView():from( ::qCompleter:popup() ) ):setAlternatingRowColors( .t. )
- ( QListView():from( ::qCompleter:popup() ) ):setFont( QFont( "Courier New", 8 ) )
+ ::qCompleter:popup():setAlternatingRowColors( .t. )
+ ::qCompleter:popup():setFont( QFont( "Courier New", 8 ) )
::qCompleter:connect( "activated(QString)", {|p| ::execEvent( "qcompleter_activated", p ) } )
@@ -374,7 +374,6 @@ METHOD IdeEditsManager:removeSourceInTree( cSourceFile )
METHOD IdeEditsManager:addSourceInTree( cSourceFile, cView )
LOCAL cPath, cFile, cExt, oItem
- //LOCAL oGrand := ::oOpenedSources
LOCAL oParent := ::oOpenedSources
IF Empty( cSourceFile )
@@ -382,21 +381,6 @@ METHOD IdeEditsManager:addSourceInTree( cSourceFile, cView )
ENDIF
hb_fNameSplit( cSourceFile, @cPath, @cFile, @cExt )
- #if 0
- cPathA := hbide_pathNormalized( cPath )
-
-array2table(
- IF ( n := ascan( ::aEditorPath, {|e_| e_[ 2 ] == cPathA } ) ) == 0
- oParent := oGrand:addItem( cPath )
- aadd( ::aProjData, { oParent, "Editor Path", oGrand, cPathA, cSourceFile } )
- aadd( ::aEditorPath, { oParent, cPathA } )
- ELSE
- oParent := ::aEditorPath[ n,1 ]
- ENDIF
-
- aadd( ::aProjData, { oParent:addItem( cFile + cExt ), "Opened Source", oParent, ;
- cSourceFile, hbide_pathNormalized( cSourceFile ) } )
- #endif
oItem := oParent:addItem( cFile + cExt )
oItem:tooltipText := cSourceFile
@@ -451,7 +435,7 @@ METHOD IdeEditsManager:getTabCurrent()
IF !empty( ::qTabWidget )
qTab := ::qTabWidget:currentWidget()
- nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } )
+ nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab:pPtr ) } )
ENDIF
RETURN nTab
@@ -462,8 +446,8 @@ METHOD IdeEditsManager:getDocumentCurrent()
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
qTab := ::qTabWidget:currentWidget()
- IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
- RETURN QTextDocument():configure( ::aTabs[ nTab, TAB_OEDITOR ]:document() )
+ IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab:pPtr ) } ) ) > 0
+ RETURN ::aTabs[ nTab, TAB_OEDITOR ]:document()
ENDIF
ENDIF
@@ -476,7 +460,7 @@ METHOD IdeEditsManager:getEditObjectCurrent()
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
qTab := ::qTabWidget:currentWidget()
- IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
+ IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab:pPtr ) } ) ) > 0
RETURN ::aTabs[ nTab, TAB_OEDITOR ]:qCoEdit
ENDIF
ENDIF
@@ -490,7 +474,7 @@ METHOD IdeEditsManager:getEditCurrent()
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
qTab := ::qTabWidget:currentWidget()
- IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
+ IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab:pPtr ) } ) ) > 0
RETURN ::aTabs[ nTab, TAB_OEDITOR ]:qCqEdit
ENDIF
ENDIF
@@ -504,7 +488,7 @@ METHOD IdeEditsManager:getEditorCurrent()
IF !empty( ::qTabWidget ) .AND. ::qTabWidget:count() > 0
qTab := ::qTabWidget:currentWidget()
- IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab ) } ) ) > 0
+ IF ( nTab := ascan( ::aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ TAB_OTAB ]:oWidget:pPtr, qTab:pPtr ) } ) ) > 0
RETURN ::aTabs[ nTab, TAB_OEDITOR ]
ENDIF
ENDIF
@@ -514,12 +498,12 @@ METHOD IdeEditsManager:getEditorCurrent()
/*----------------------------------------------------------------------*/
METHOD IdeEditsManager:getEditorByIndex( nIndex ) /* Index is 0 based */
- LOCAL pTab, a_
+ LOCAL qTab, a_
IF hb_isNumeric( nIndex ) .AND. nIndex >= 0 .AND. nIndex < ::qTabWidget:count()
- pTab := ::qTabWidget:widget( nIndex )
+ qTab := ::qTabWidget:widget( nIndex )
FOR EACH a_ IN ::aTabs
- IF !empty( a_[ TAB_OTAB ] ) .AND. hbqt_IsEqualGcQtPointer( a_[ TAB_OTAB ]:oWidget:pPtr, pTab )
+ IF !empty( a_[ TAB_OTAB ] ) .AND. hbqt_IsEqualGcQtPointer( a_[ TAB_OTAB ]:oWidget:pPtr, qTab:pPtr )
RETURN ::aTabs[ a_:__enumIndex(), TAB_OEDITOR ]
ENDIF
NEXT
@@ -1028,7 +1012,7 @@ METHOD IdeEditsManager:printPreview()
METHOD IdeEditsManager:paintRequested( pPrinter )
LOCAL qPrinter
- qPrinter := QPrinter():configure( pPrinter )
+ qPrinter := QPrinter():from( pPrinter )
::qCurEdit:print( qPrinter )
RETURN Self
@@ -1357,12 +1341,12 @@ METHOD IdeEditor:create( oIde, cSourceFile, nPos, nHPos, nVPos, cTheme, cView, a
::oEdit:qEdit:connect( "updateRequest(QRect,int)", {|| ::scrollThumbnail() } )
- ::qDocument := QTextDocument():configure( ::qEdit:document() )
+ ::qDocument := ::qEdit:document()
IF ::cType != "U"
::qHiliter := ::oTH:SetSyntaxHilighting( ::oEdit:qEdit, @::cTheme )
ENDIF
- ::qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ ::qCursor := ::qEdit:textCursor()
/* Populate Tabs Array */
aadd( ::aTabs, { ::oTab, Self } )
@@ -1549,17 +1533,17 @@ METHOD IdeEditor:reload()
METHOD IdeEditor:setDocumentProperties()
LOCAL qCursor
- qCursor := QTextCursor():configure( ::qEdit:textCursor() )
+ qCursor := ::qEdit:textCursor()
IF !( ::lLoaded ) /* First Time */
::qEdit:setPlainText( ::prepareBufferToLoad( hb_memoread( ::sourceFile ) ) )
qCursor:setPosition( ::nPos )
::qEdit:setTextCursor( qCursor )
- QScrollBar():configure( ::qEdit:horizontalScrollBar() ):setValue( ::nHPos )
- QScrollBar():configure( ::qEdit:verticalScrollBar() ):setValue( ::nVPos )
+ ::qEdit:horizontalScrollBar():setValue( ::nHPos )
+ ::qEdit:verticalScrollBar():setValue( ::nVPos )
- QTextDocument():configure( ::qEdit:document() ):setModified( .f. )
+ ::qEdit:document():setModified( .f. )
::qTabWidget:setTabIcon( ::qTabWidget:indexOf( ::oTab:oWidget ), ;
hbide_image( iif( ::lReadOnly, "tabreadonly", "tabunmodified" ) ) )
@@ -1662,8 +1646,8 @@ METHOD IdeEditor:dispEditInfo( qEdit )
DEFAULT qEdit TO ::qEdit
- qDocument := QTextDocument():configure( qEdit:document() )
- qCursor := QTextCursor():configure( qEdit:textCursor() )
+ qDocument := qEdit:document()
+ qCursor := qEdit:textCursor()
s := "Line "+ hb_ntos( qCursor:blockNumber() + 1 ) + " of " + ;
hb_ntos( qDocument:blockCount() ) + ""
@@ -1758,8 +1742,8 @@ METHOD IdeEditor:scrollThumbnail()
LOCAL qScroll
IF ::lLoaded .AND. ::oSourceThumbnailDock:oWidget:isVisible() .AND. !empty( ::qThumbnail )
- qScroll := QScrollBar():configure( ::oEdit:qEdit:verticalScrollBar() )
- QScrollBar():configure( ::qThumbnail:qEdit:verticalScrollBar() ):setValue( qScroll:value() )
+ qScroll := ::oEdit:qEdit:verticalScrollBar()
+ ::qThumbnail:qEdit:verticalScrollBar():setValue( qScroll:value() )
::oEdit:qEdit:hbGetViewportInfo()
@@ -1908,7 +1892,7 @@ STATIC FUNCTION hbide_qtDesigner()
oEdt := QDesignerFormEditorInterface( ::oDlg:oWidget )
HB_TRACE( HB_TR_DEBUG, 1 )
- oWM := QDesignerFormWindowManagerInterface():from( oEdt:formWindowManager() )
+ oWM := oEdt:formWindowManager()
HB_TRACE( HB_TR_DEBUG, 2 )
oWM:createFormWindow( ::oQScintillaDock:oWidget )
HB_TRACE( HB_TR_DEBUG, 3 )
diff --git a/harbour/contrib/hbide/idefindreplace.prg b/harbour/contrib/hbide/idefindreplace.prg
index 695208cd53..f6ffc3860b 100644
--- a/harbour/contrib/hbide/idefindreplace.prg
+++ b/harbour/contrib/hbide/idefindreplace.prg
@@ -98,10 +98,10 @@ METHOD IdeUpDown:position()
IF !empty( qEdit := ::oEM:getEditCurrent() )
::oUI:setParent( qEdit )
- qHSBar := QScrollBar():from( qEdit:horizontalScrollBar() )
- qVSBar := QScrollBar():from( qEdit:verticalScrollBar() )
+ qHSBar := qEdit:horizontalScrollBar()
+ qVSBar := qEdit:verticalScrollBar()
- qRect := QRect():from( qEdit:geometry() )
+ qRect := qEdit:geometry()
::oUI:move( qRect:width() - ::oUI:width() - iif( qVSBar:isVisible(), qVSBar:width() , 0 ), ;
qRect:height() - ::oUI:height() - iif( qHSBar:isVisible(), qHSBar:height(), 0 ) )
@@ -279,13 +279,13 @@ METHOD IdeSearchReplace:create( oIde )
::oUI:q_buttonReplace:setEnabled( i == 2 ), ;
iif( i == 2, ::oUI:q_frameReplace:show(), ::oUI:q_frameReplace:hide() ) } )
- ::qFindLineEdit := QLineEdit():from( ::oUI:q_comboFind:lineEdit() )
+ ::qFindLineEdit := ::oUI:q_comboFind:lineEdit()
::qFindLineEdit:setFocusPolicy( Qt_StrongFocus )
::qFindLineEdit:setStyleSheet( "background-color: white;" )
::qFindLineEdit:connect( "textChanged(QString)", {|cText| ::setFindString( cText ) } )
::qFindLineEdit:connect( "returnPressed()" , {|| ::find( ::cFind ) } )
- ::qReplLineEdit := QLineEdit():from( ::oUI:q_comboReplace:lineEdit() )
+ ::qReplLineEdit := ::oUI:q_comboReplace:lineEdit()
::qReplLineEdit:setFocusPolicy( Qt_StrongFocus )
::qReplLineEdit:setStyleSheet( "background-color: white;" )
@@ -320,10 +320,10 @@ METHOD IdeSearchReplace:find( cText, lBackward )
::nCurDirection := iif( lBackward, QTextDocument_FindBackward, 0 )
IF len( cText ) > 0
- qCursor := QTextCursor():configure( ::qCurEdit:textCursor() )
+ qCursor := ::qCurEdit:textCursor()
IF ::oUI:q_checkRegEx:isChecked()
- qDoc := QTextDocument():from( ::qCurEdit:document() )
+ qDoc := ::qCurEdit:document()
qReg := QRegExp()
qReg:setPattern( cText )
qReg:setCaseSensitivity( iif( ::oUI:q_checkMatchCase:isChecked(), Qt_CaseSensitive, Qt_CaseInsensitive ) )
@@ -331,7 +331,7 @@ METHOD IdeSearchReplace:find( cText, lBackward )
nFlags += ::nCurDirection
nFlags += iif( ::oUI:q_checkWhole:isChecked(), QTextDocument_FindWholeWords, 0 )
- qCur := QTextCursor():from( qDoc:find_1( qReg, qCursor, nFlags ) )
+ qCur := qDoc:find( qReg, qCursor, nFlags )
lFound := ! qCur:isNull()
IF lFound
::qCurEdit:setTextCursor( qCur )
@@ -382,7 +382,7 @@ METHOD IdeSearchReplace:setFindString( cText )
RETURN .f.
ENDIF
- qCursor := QTextCursor():configure( ::qCurEdit:textCursor() )
+ qCursor := ::qCurEdit:textCursor()
IF ::oUI:q_radioTop:isChecked()
nPos := qCursor:position()
qCursor:setPosition( 0 )
@@ -408,7 +408,7 @@ METHOD IdeSearchReplace:setFindString( cText )
METHOD IdeSearchReplace:startFromTop()
LOCAL qCursor
- qCursor := QTextCursor():configure( ::qCurEdit:textCursor() )
+ qCursor := ::qCurEdit:textCursor()
qCursor:setPosition( 0 )
::qCurEdit:setTextCursor( qCursor )
@@ -487,7 +487,7 @@ METHOD IdeFindReplace:create( oIde )
::oUI:q_comboReplaceWith:setEnabled( p == 0 ), ;
iif( p == 1, ::oUI:q_buttonReplace:setEnabled( .f. ), NIL ) } )
- ::qLineEdit := QLineEdit():configure( ::oUI:q_comboFindWhat:lineEdit() )
+ ::qLineEdit := ::oUI:q_comboFindWhat:lineEdit()
RETURN Self
@@ -531,7 +531,7 @@ METHOD IdeFindReplace:replaceSelection( cReplWith )
DEFAULT cReplWith TO ""
- qCursor := QTextCursor():configure( ::qCurEdit:textCursor() )
+ qCursor := ::qCurEdit:textCursor()
IF qCursor:hasSelection() .and. !empty( cBuffer := qCursor:selectedText() )
nL := len( cBuffer )
nB := qCursor:position() - nL
@@ -554,7 +554,7 @@ METHOD IdeFindReplace:replace()
LOCAL nFound
IF !empty( ::qCurEdit )
- cReplWith := QLineEdit():configure( ::oUI:q_comboReplaceWith:lineEdit() ):text()
+ cReplWith := ::oUI:q_comboReplaceWith:lineEdit():text()
::replaceSelection( cReplWith )
IF ::oUI:q_checkGlobal:isChecked()
@@ -585,7 +585,7 @@ METHOD IdeFindReplace:onClickFind()
IF ::oUI:q_radioEntire:isChecked()
::oUI:q_radioFromCursor:setChecked( .t. )
- qCursor := QTextCursor():configure( ::qCurEdit:textCursor() )
+ qCursor := ::qCurEdit:textCursor()
nPos := qCursor:position()
qCursor:setPosition( 0 )
@@ -616,7 +616,7 @@ METHOD IdeFindReplace:onClickFind()
METHOD IdeFindReplace:find( lWarn )
LOCAL nFlags
- LOCAL cText := QLineEdit():configure( ::oUI:q_comboFindWhat:lineEdit() ):text()
+ LOCAL cText := ::oUI:q_comboFindWhat:lineEdit():text()
LOCAL lFound := .f.
DEFAULT lWarn TO .t.
@@ -639,7 +639,7 @@ METHOD IdeFindReplace:updateFindReplaceData( cMode )
LOCAL cData
IF cMode == "find"
- cData := QLineEdit():configure( ::oUI:q_comboFindWhat:lineEdit() ):text()
+ cData := ::oUI:q_comboFindWhat:lineEdit():text()
IF !empty( cData )
IF ascan( ::oINI:aFind, {|e| e == cData } ) == 0
hb_ains( ::oINI:aFind, 1, cData, .t. )
@@ -649,7 +649,7 @@ METHOD IdeFindReplace:updateFindReplaceData( cMode )
//
::oDK:setStatusText( SB_PNL_SEARCH, cData )
ELSE
- cData := QLineEdit():configure( ::oUI:q_comboReplaceWith:lineEdit() ):text()
+ cData := ::oUI:q_comboReplaceWith:lineEdit():text()
IF !empty( cData )
IF ascan( ::oINI:aReplace, cData ) == 0
hb_ains( ::oINI:aReplace, 1, cData, .t. )
@@ -806,7 +806,7 @@ METHOD IdeFindInFiles:buildUI()
::oUI:q_checkListOnly:setChecked( .t. )
::oUI:q_checkPrg:setChecked( .t. )
- qLineEdit := QLineEdit():configure( ::oUI:q_comboExpr:lineEdit() )
+ qLineEdit := ::oUI:q_comboExpr:lineEdit()
IF !empty( ::oEM )
IF !empty( cText := ::oEM:getSelectedText() )
qLineEdit:setText( cText )
@@ -853,7 +853,7 @@ METHOD IdeFindInFiles:buildUI()
::oUI:q_editResults :connect( "copyAvailable(bool)" , {|l| ::execEvent( "editResults", l ) } )
::oUI:q_editResults :connect( "customContextMenuRequested(QPoint)", {|p| ::execEvent( "editResults-contextMenu", p ) } )
- ::qEditFind := QLineEdit():from( ::oUI:q_comboExpr:lineEdit() )
+ ::qEditFind := ::oUI:q_comboExpr:lineEdit()
::qEditFind:connect( "returnPressed()", {|| ::execEvent( "buttonFind" ) } )
RETURN Self
@@ -899,7 +899,7 @@ METHOD IdeFindInFiles:execEvent( cEvent, p )
IF !empty( cPath )
::oIde:cLastFileOpenPath := cPath
- qLineEdit := QLineEdit():configure( ::oUI:q_comboFolder:lineEdit() )
+ qLineEdit := ::oUI:q_comboFolder:lineEdit()
qLineEdit:setText( cPath )
IF ascan( ::oINI:aFolders, {|e| e == cPath } ) == 0
hb_ains( ::oINI:aFolders, 1, cPath, .t. )
@@ -924,14 +924,14 @@ METHOD IdeFindInFiles:execEvent( cEvent, p )
CASE "editResults"
IF p .AND. ! ::lNotDblClick
- qCursor := QTextCursor():configure( ::oUI:q_editResults:textCursor() )
+ qCursor := ::oUI:q_editResults:textCursor()
nInfo := qCursor:blockNumber() + 1
IF nInfo <= len( ::aInfo ) .AND. ::aInfo[ nInfo, 1 ] == -2
cSource := ::aInfo[ nInfo, 2 ]
::oSM:editSource( cSource, 0, 0, 0, NIL, NIL, .f., .t. )
- qCursor := QTextCursor():configure( ::oIde:qCurEdit:textCursor() )
+ qCursor := ::oIde:qCurEdit:textCursor()
qCursor:setPosition( 0 )
qCursor:movePosition( QTextCursor_Down, QTextCursor_MoveAnchor, ::aInfo[ nInfo, 3 ] - 1 )
qCursor:movePosition( QTextCursor_Right, QTextCursor_MoveAnchor, ::aInfo[ nInfo, 4 ] - 1 )
@@ -950,9 +950,9 @@ METHOD IdeFindInFiles:execEvent( cEvent, p )
/*----------------------------------------------------------------------*/
METHOD IdeFindInFiles:execContextMenu( p )
- LOCAL nLine, qCursor, qMenu, pAct, qAct, cAct, cFind
+ LOCAL nLine, qCursor, qMenu, qAct, cAct, cFind
- qCursor := QTextCursor():configure( ::oUI:q_editResults:textCursor() )
+ qCursor := ::oUI:q_editResults:textCursor()
nLine := qCursor:blockNumber() + 1
IF nLine <= len( ::aInfo )
@@ -975,9 +975,7 @@ METHOD IdeFindInFiles:execContextMenu( p )
qMenu:addAction( "Zoom In" )
qMenu:addAction( "Zoom Out" )
- pAct := qMenu:exec( ::oUI:q_editResults:mapToGlobal( p ) )
- IF !hbqt_isEmptyQtPointer( pAct )
- qAct := QAction():configure( pAct )
+ IF ( qAct := qMenu:exec( ::oUI:q_editResults:mapToGlobal( p ) ) ):isValidObject()
cAct := qAct:text()
SWITCH cAct
@@ -1277,7 +1275,7 @@ METHOD IdeFindInFiles:showLog( nType, cMsg, aLines )
DEFAULT cMsg TO ""
cMsg := hbide_convertHtmlDelimiters( cMsg )
- qCursor := QTextCursor():configure( ::oUI:q_editResults:textCursor() )
+ qCursor := ::oUI:q_editResults:textCursor()
SWITCH nType
diff --git a/harbour/contrib/hbide/idefunctions.prg b/harbour/contrib/hbide/idefunctions.prg
index 451c4091f6..6b88853fbb 100644
--- a/harbour/contrib/hbide/idefunctions.prg
+++ b/harbour/contrib/hbide/idefunctions.prg
@@ -201,9 +201,9 @@ METHOD IdeFunctions:buildHeader()
qFnt := QFont( "Courier New" )
oTbl:setFont( qFnt )
- QHeaderView():from( oTbl:verticalHeader() ):hide()
+ oTbl:verticalHeader():hide()
- qHdr := QHeaderView():from( oTbl:horizontalHeader() )
+ qHdr := oTbl:horizontalHeader()
qHdr:stretchLastSection( .t. )
oTbl:setColumnCount( 1 )
diff --git a/harbour/contrib/hbide/ideharbourhelp.prg b/harbour/contrib/hbide/ideharbourhelp.prg
index 3d3f5b071a..d559ad5f07 100644
--- a/harbour/contrib/hbide/ideharbourhelp.prg
+++ b/harbour/contrib/hbide/ideharbourhelp.prg
@@ -105,7 +105,7 @@ CLASS IdeDocFunction
DATA cOneliner INIT ""
DATA cStatus INIT ""
DATA cPlatforms INIT ""
- DATA cSeaAlso INIT ""
+ DATA cSeeAlso INIT ""
DATA cVersion INIT ""
DATA cInherits INIT ""
DATA cExternalLink INIT ""
@@ -489,7 +489,7 @@ METHOD IdeHarbourHelp:execEvent( nMode, p, p1 )
CASE "buttonUp_clicked"
IF ::nCurInHist > 1 .AND. ::nCurInHist <= len( ::aHistory )
- IF !empty( qTWItem := ::oUI:q_treeDoc:itemAbove( ::oUI:q_treeDoc:currentItem( 0 ) ) )
+ IF ( qTWItem := ::oUI:q_treeDoc:itemAbove( ::oUI:q_treeDoc:currentItem( 0 ) ) ):isValidObject()
::oUI:q_treeDoc:setCurrentItem( qTWItem, 0 )
ENDIF
ENDIF
@@ -512,7 +512,7 @@ METHOD IdeHarbourHelp:execEvent( nMode, p, p1 )
CASE "treeCategory_itemSelectionChanged"
qTWItem := ::oUI:q_treeCategory:currentItem()
- n := ascan( ::aCategory, {|e_| hbqt_IsEqualGcQtPointer( e_[ 5 ]:pPtr, qTWItem ) } )
+ n := ascan( ::aCategory, {|e_| hbqt_IsEqualGcQtPointer( e_[ 5 ]:pPtr, qTWItem:pPtr ) } )
IF n > 0
IF ::aCategory[ n, 5 ]:childCount() == 0
::oUI:q_treeDoc:setCurrentItem( ::aCategory[ n, 4 ], 0 )
@@ -521,7 +521,7 @@ METHOD IdeHarbourHelp:execEvent( nMode, p, p1 )
EXIT
CASE "treeDoc_itemSelectionChanged"
- qTWItem := QTreeWidgetItem():from( ::oUI:q_treeDoc:currentItem() )
+ qTWItem := ::oUI:q_treeDoc:currentItem()
cText := qTWItem:text( 0 )
IF ( n := ascan( ::aNodes, {|e_| e_[ 5 ] == cText } ) ) > 0
@@ -571,7 +571,6 @@ METHOD IdeHarbourHelp:populateIndexedSelection()
IF !empty( ::aNodes )
IF !empty( qItem := ::oUI:q_listIndex:currentItem() )
- qItem := QListWidgetItem():from( qItem )
cText := qItem:text()
IF ( n := ascan( ::aFunctions, {|e_| e_[ 2 ] == cText } ) ) > 0
::oUI:q_treeDoc:setCurrentItem( ::aFunctions[ n, 4 ] )
@@ -844,7 +843,7 @@ METHOD IdeHarbourHelp:pullDefinitions( acBuffer )
IF ! lIsFunc
LOOP // It is a fake line not within $DOC$ => $END$ block
ENDIF
- s := substr( s, 9 )
+ s := substr( s, 8 )
SWITCH nPart
CASE DOC_FUN_BEGINS
@@ -892,7 +891,7 @@ METHOD IdeHarbourHelp:pullDefinitions( acBuffer )
oFunc:cPlatForms := alltrim( s )
EXIT
CASE DOC_FUN_SEEALSO
- oFunc:cSeaAlso := alltrim( s )
+ oFunc:cSeeAlso := alltrim( s )
EXIT
CASE DOC_FUN_SEEALSO
oFunc:cVersion := alltrim( s )
@@ -1172,7 +1171,22 @@ METHOD IdeHarbourHelp:buildView( oFunc )
IF !empty( oFunc:cInherits )
aadd( aHtm, x + "Inherits" + y )
- aadd( aHtm, v + oFunc:cInherits + w )
+ a_:= hb_aTokens( oFunc:cInherits, "," )
+ IF !empty( a_ )
+ aadd( aHtm, "
| " )
+ FOR EACH s IN a_
+ s := alltrim( s )
+ IF ( n := at( "(", s ) ) > 0
+ s1 := substr( s, 1, n-1 )
+ ELSE
+ s1 := s
+ ENDIF
+ aadd( aHtm, '' + s + "" + ;
+ iif( s:__enumIndex() == len( a_ ), "", ", " ) )
+ NEXT
+ aadd( aHtm, " |
" )
+ ENDIF
+ //aadd( aHtm, v + oFunc:cInherits + w )
aadd( aHtm, z )
ENDIF
#if 0
@@ -1223,7 +1237,8 @@ METHOD IdeHarbourHelp:buildView( oFunc )
aadd( aHtm, v + s + w )
aadd( aHtm, z )
ENDIF
- a_:= hb_atokens( oFunc:cSeaAlso, "," )
+HB_TRACE( HB_TR_ALWAYS, 12100, oFunc:cSeeAlso )
+ a_:= hb_atokens( oFunc:cSeeAlso, "," )
IF !empty( a_ )
aadd( aHtm, x + "SeeAlso" + y )
aadd( aHtm, "| " )
diff --git a/harbour/contrib/hbide/idemisc.prg b/harbour/contrib/hbide/idemisc.prg
index 553af8637b..f8db10915f 100644
--- a/harbour/contrib/hbide/idemisc.prg
+++ b/harbour/contrib/hbide/idemisc.prg
@@ -138,8 +138,7 @@ FUNCTION hbide_setProjectTitle( cTitle )
/*----------------------------------------------------------------------*/
FUNCTION hbide_execPopup( aPops, aqPos, qParent )
- LOCAL i, qPop, qPoint, qAct, cAct, xRet, pAct, a_, qSub, b_
- LOCAL qSub_:={}
+ LOCAL i, qPop, qPoint, qAct, cAct, xRet, a_, qSub, b_, qSub_:={}
qPop := QMenu( iif( hb_isObject( qParent ), qParent, NIL ) )
qPop:setStyleSheet( GetStyleSheet( "QMenuPop", hbide_setIde():nAnimantionMode ) )
@@ -168,11 +167,9 @@ FUNCTION hbide_execPopup( aPops, aqPos, qParent )
IF hb_isArray( aqPos )
qPoint := QPoint( aqPos[ 1 ], aqPos[ 2 ] )
ELSE
- qPoint := QPoint():configure( qParent:mapToGlobal( aqPos ) )
+ qPoint := qParent:mapToGlobal( aqPos )
ENDIF
- pAct := qPop:exec( qPoint )
- IF !hbqt_isEmptyQtPointer( pAct )
- qAct := QAction():configure( pAct )
+ IF ( qAct := qPop:exec( qPoint ) ):isValidObject()
cAct := qAct:text()
FOR EACH a_ IN aPops
IF hb_isObject( a_[ 1 ] )
@@ -195,7 +192,6 @@ FUNCTION hbide_execPopup( aPops, aqPos, qParent )
ENDIF
NEXT
ENDIF
-
qPop := NIL
HB_SYMBOL_UNUSED( xRet )
RETURN cAct
@@ -234,7 +230,7 @@ FUNCTION hbide_showWarning( cMsg, cInfo, cTitle, qParent )
LOCAL oMB
DEFAULT cTitle TO "Information"
- DEFAULT qParent TO SetAppWindow():pWidget
+ DEFAULT qParent TO SetAppWindow():oWidget
oMB := QMessageBox()
oMB:setText( cMsg )
@@ -261,7 +257,7 @@ FUNCTION hbide_getYesNo( cMsg, cInfo, cTitle )
oMB:setInformativeText( cInfo )
ENDIF
oMB:setIcon( QMessageBox_Information )
- oMB:setParent( SetAppWindow():pWidget )
+ oMB:setParent( SetAppWindow():oWidget )
oMB:setWindowFlags( Qt_Dialog )
oMB:setWindowTitle( cTitle )
oMB:setStandardButtons( QMessageBox_Yes + QMessageBox_No )
@@ -281,7 +277,7 @@ FUNCTION hbide_getYesNoCancel( cMsg, cInfo, cTitle )
oMB:setInformativeText( cInfo )
ENDIF
oMB:setIcon( QMessageBox_Information )
- oMB:setParent( SetAppWindow():pWidget )
+ oMB:setParent( SetAppWindow():oWidget )
oMB:setWindowFlags( Qt_Dialog )
oMB:setWindowTitle( cTitle )
oMB:setStandardButtons( QMessageBox_Yes + QMessageBox_No + QMessageBox_Cancel )
@@ -1301,8 +1297,6 @@ FUNCTION hbide_fetchADate( qParent, cTitle, cPrompt, dDefault )
DEFAULT cTitle TO "A Date Value"
DEFAULT cPrompt TO "What"
- //pSlots := hbxbp_getSlotsPtr()
-
oUI := hbide_getUI( "fetchdate", qParent )
oUI:setWindowTitle( cTitle )
@@ -1315,20 +1309,16 @@ FUNCTION hbide_fetchADate( qParent, cTitle, cPrompt, dDefault )
oUI:q_editDate:setDate( qDate )
ENDIF
- //Qt_Slots_connect( pSlots, oUI:q_buttonOk , "clicked()", {|| oUI:done( 1 ) } )
oUI:q_buttonOk:connect( "clicked()", {|| oUI:done( 1 ) } )
- //Qt_Slots_connect( pSlots, oUI:q_buttonOk , "clicked()", {|| oUI:done( 1 ) } )
oUI:q_buttonCancel:connect( "clicked()", {|| oUI:done( 0 ) } )
nRet := oUI:exec()
- //Qt_Slots_disconnect( pSlots, oUI:q_buttonOk )
oUI:q_buttonOk:disconnect( "clicked()" )
- //Qt_Slots_disconnect( pSlots, oUI:q_buttonCancel )
oUI:q_buttonCancel:disconnect( "clicked()" )
IF nRet == 1
- qDate := QDate():from( oUI:q_editDate:date() )
+ qDate := oUI:q_editDate:date()
RETURN stod( strzero( qDate:year(), 4 ) + strzero( qDate:month(),2 ) + strzero( qDate:day(), 2 ) )
ENDIF
diff --git a/harbour/contrib/hbide/ideprojmanager.prg b/harbour/contrib/hbide/ideprojmanager.prg
index b3e0ff9bb8..e182253d43 100644
--- a/harbour/contrib/hbide/ideprojmanager.prg
+++ b/harbour/contrib/hbide/ideprojmanager.prg
@@ -1518,10 +1518,10 @@ METHOD IdeProjManager:finished( nExitCode, nExitStatus, oProcess )
::oOutputResult:find( ::cIfError )
::oOutputResult:SelBold := .T.
- qDoc := QTextDocument():from( ::oOutputResult:document() )
+ qDoc := ::oOutputResult:document()
FOR n := 0 TO qDoc:blockCount() - 1
- IF ::cIfError == QTextBlock():from( qDoc:findBlockByNumber( n ) ):text()
- qCursor := QTextCursor():from( qDoc:find_2( ::cIfError ) )
+ IF ::cIfError == qDoc:findBlockByNumber( n ):text()
+ qCursor := qDoc:find( ::cIfError )
::oOutputResult:setTextCursor( qCursor )
EXIT
ENDIF
diff --git a/harbour/contrib/hbide/idesaveload.prg b/harbour/contrib/hbide/idesaveload.prg
index 1ac2a95757..59d39f9987 100644
--- a/harbour/contrib/hbide/idesaveload.prg
+++ b/harbour/contrib/hbide/idesaveload.prg
@@ -349,7 +349,7 @@ METHOD IdeINI:save( cHbideIni )
nTabs := ::oIde:qTabWidget:count()
FOR n := 1 TO nTabs
pTab := ::oIde:qTabWidget:widget( n - 1 )
- nTab := ascan( ::oIde:aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ 1 ]:oWidget:pPtr, pTab ) } )
+ nTab := ascan( ::oIde:aTabs, {|e_| hbqt_IsEqualGcQtPointer( e_[ 1 ]:oWidget:pPtr, pTab:pPtr ) } )
oEdit := ::oIde:aTabs[ nTab, TAB_OEDITOR ]
IF !Empty( oEdit:sourceFile ) .AND. !( ".ppo" == lower( oEdit:cExt ) )
@@ -746,9 +746,9 @@ FUNCTION hbide_restSettings( oIde )
/*----------------------------------------------------------------------*/
FUNCTION hbide_getEditInfoAsString( oEdit )
- LOCAL qHScr := QScrollBar():configure( oEdit:qEdit:horizontalScrollBar() )
- LOCAL qVScr := QScrollBar():configure( oEdit:qEdit:verticalScrollBar() )
- LOCAL qCursor := QTextCursor():configure( oEdit:qEdit:textCursor() )
+ LOCAL qHScr := oEdit:qEdit:horizontalScrollBar()
+ LOCAL qVScr := oEdit:qEdit:verticalScrollBar()
+ LOCAL qCursor := oEdit:qEdit:textCursor()
LOCAL cBMarks := hbide_nArray2string( oEdit:oEdit:aBookMarks )
RETURN hbide_pathNormalized( oEdit:sourceFile, .f. ) + "," + ;
@@ -1185,7 +1185,7 @@ METHOD IdeSetup:retrieve()
s := ""
FOR i := 1 TO ::oUI:q_listTextExt:count()
- qItm := QListWidgetItem():from( ::oUI:q_listTextExt:item( i - 1 ) )
+ qItm := ::oUI:q_listTextExt:item( i - 1 )
s += "." + qItm:text() + ","
NEXT
s := substr( s, 1, len( s ) - 1 )
@@ -1357,7 +1357,7 @@ METHOD IdeSetup:execEvent( cEvent, p, p1 )
qFontDlg:setCurrentFont( qFont )
nOK := qFontDlg:exec()
IF nOK == 1
- qFont := QFont():from( qFontDlg:currentFont() )
+ qFont := qFontDlg:currentFont()
::oUI:q_editFontName:setText( qFont:family() )
::oUI:q_editPointSize:setText( hb_ntos( qFont:pointSize() ) )
@@ -1384,7 +1384,7 @@ METHOD IdeSetup:execEvent( cEvent, p, p1 )
EXIT
CASE "treeWidget_itemSelectionChanged"
- qItem := QTreeWidgetItem():from( ::oUI:q_treeWidget:currentItem() )
+ qItem := ::oUI:q_treeWidget:currentItem()
IF ( nIndex := ascan( ::aTree, qItem:text() ) ) > 0
::oUI:q_stackedWidget:setCurrentIndex( nIndex - 1 )
ENDIF
@@ -1558,7 +1558,7 @@ METHOD IdeSetup:execEvent( cEvent, p, p1 )
EXIT
CASE "buttonThmSav_clicked"
IF ( n := ::oUI:q_listThemes:currentRow() ) > -1
- ::oINI:aAppThemes[ n + 1 ] := QListWidgetItem():from( ::oUI:q_listThemes:currentItem() ):text() + "," + ;
+ ::oINI:aAppThemes[ n + 1 ] := ::oUI:q_listThemes:currentItem():text() + "," + ;
::fetchThemeColorsString()
ENDIF
EXIT
@@ -1844,8 +1844,8 @@ METHOD IdeSetup:buildKeywords()
oTbl := ::oUI:q_tableVar
- QHeaderView():from( oTbl:verticalHeader() ):hide()
- QHeaderView():from( oTbl:horizontalHeader() ):stretchLastSection( .t. )
+ oTbl:verticalHeader():hide()
+ oTbl:horizontalHeader():stretchLastSection( .t. )
oTbl:setAlternatingRowColors( .t. )
oTbl:setColumnCount( len( hdr_ ) )
@@ -1910,12 +1910,12 @@ METHOD IdeSetup:setBaseColor()
oApp := QApplication()
- ::qOrgPalette := QPalette():from( oApp:palette() )
+ ::qOrgPalette := oApp:palette()
qColor := QColor( Qt_red )
qBrush := QBrush( "QColor", qColor )
- qPalette := QPalette():from( oApp:palette() )
+ qPalette := oApp:palette()
qPalette:setBrush( QPalette_Window, qBrush )
qPalette:setColor( QPalette_Window, qColor )
qPalette:setColor( QPalette_Base, qColor )
diff --git a/harbour/contrib/hbide/ideshortcuts.prg b/harbour/contrib/hbide/ideshortcuts.prg
index b7cacfde29..30a5d825eb 100644
--- a/harbour/contrib/hbide/ideshortcuts.prg
+++ b/harbour/contrib/hbide/ideshortcuts.prg
@@ -562,8 +562,8 @@ METHOD IdeShortcuts:buildUI()
::oUI:oWidget:connect( QEvent_Close, {|| ::oIde:oINI:cShortcutsDialogGeometry := hbide_posAndSize( ::oUI:oWidget ) } )
oTbl := ::oUI:q_tableMacros /* Build Table Header */
- QHeaderView():from( oTbl:verticalHeader() ):hide()
- QHeaderView():from( oTbl:horizontalHeader() ):stretchLastSection( .t. )
+ oTbl:verticalHeader():hide()
+ oTbl:horizontalHeader():stretchLastSection( .t. )
oTbl:setAlternatingRowColors( .t. )
oTbl:setColumnCount( len( hdr_ ) )
oTbl:setShowGrid( .t. )
diff --git a/harbour/contrib/hbide/ideskeletons.prg b/harbour/contrib/hbide/ideskeletons.prg
index c7de2625d2..64e669a4c8 100644
--- a/harbour/contrib/hbide/ideskeletons.prg
+++ b/harbour/contrib/hbide/ideskeletons.prg
@@ -184,12 +184,12 @@ METHOD IdeSkeletons:execEvent( cEvent, p )
EXIT
CASE "buttonRename_clicked"
- qItem := QListWidgetItem():configure( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
qItem:setText( ::rename( qItem:text() ) )
EXIT
CASE "buttonDelete_clicked"
- qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
::delete( qItem:text() )
EXIT
@@ -205,12 +205,12 @@ METHOD IdeSkeletons:execEvent( cEvent, p )
EXIT
CASE "buttonUpdate_clicked"
- qItem := QListWidgetItem():configure( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
::save( qItem:text(), ::oUI:q_editCode:toPlainText() )
EXIT
CASE "listNames_itemSelectionChanged"
- qItem := QListWidgetItem():configure( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
cName := qItem:text()
IF ( n := ascan( ::aSkltns, {|e_| e_[ 1 ] == cName } ) ) > 0
::oUI:q_editCode:setPlainText( ::aSkltns[ n, 2 ] )
@@ -328,10 +328,10 @@ METHOD IdeSkeletons:postSkeleton( cSkeleton )
/*----------------------------------------------------------------------*/
METHOD IdeSkeletons:selectByMenuAndPostText( qEdit )
- LOCAL cText, qCursor, qRect, qMenu, qAct, pAct, a_
+ LOCAL cText, qCursor, qRect, qMenu, qAct, a_
IF !empty( ::aSkltns )
- qCursor := QTextCursor():from( qEdit:textCursor() )
+ qCursor := qEdit:textCursor()
/* Look for if a macro is executed */
qCursor:select( QTextCursor_WordUnderCursor )
@@ -342,17 +342,14 @@ METHOD IdeSkeletons:selectByMenuAndPostText( qEdit )
::postText( qEdit, ::getText( cText ) )
ELSE
- qRect := QRect():from( qEdit:cursorRect( qCursor ) )
+ qRect := qEdit:cursorRect( qCursor )
qMenu := QMenu( qEdit )
FOR EACH a_ IN ::aSkltns
qMenu:addAction( a_[ 1 ] )
NEXT
- pAct := qMenu:exec( qEdit:mapToGlobal( QPoint( qRect:x(), qRect:y() ) ) )
- IF !hbqt_isEmptyQtPointer( pAct )
- qAct := QAction():from( pAct )
-
+ IF ( qAct := qMenu:exec( qEdit:mapToGlobal( QPoint( qRect:x(), qRect:y() ) ) ) ):isValidObject()
IF !empty( cText := ::getText( qAct:text() ) )
::postText( qEdit, cText )
ENDIF
@@ -452,7 +449,7 @@ METHOD IdeSkeletons:getText( cSkeleton )
METHOD IdeSkeletons:postText( qEdit, cText )
LOCAL s, a_, nCol, nPos, nRowCur, nColCur, n
- LOCAL qCursor := QTextCursor():from( qEdit:textCursor() )
+ LOCAL qCursor := qEdit:textCursor()
::nPosCursor := NIL
::aMetas := { { "", "" } }
diff --git a/harbour/contrib/hbide/idethemes.prg b/harbour/contrib/hbide/idethemes.prg
index da9ecd422d..7630dc2cfd 100644
--- a/harbour/contrib/hbide/idethemes.prg
+++ b/harbour/contrib/hbide/idethemes.prg
@@ -664,7 +664,7 @@ METHOD IdeThemes:updateColor()
oDlg:setCurrentColor( qColor )
oDlg:exec()
- qColor:configure( oDlg:currentColor() )
+ qColor := oDlg:currentColor()
::aThemes[ ::nCurTheme, 2, ::nCurItem, 2, THM_ATR_R ] := qColor:red()
::aThemes[ ::nCurTheme, 2, ::nCurItem, 2, THM_ATR_G ] := qColor:green()
@@ -751,12 +751,12 @@ METHOD IdeThemes:selectThemeProc( nMode, p )
DO CASE
CASE nMode == 1
- qModalIndex := QModelIndex():configure( p )
+ qModalIndex := QModelIndex():from( p )
::cSelTheme := ::aThemes[ qModalIndex:row() + 1, 1 ]
::oSL:done( 1 )
CASE nMode == 2
- qModalIndex := QModelIndex():configure( ::oSL:qObj[ "listOptions" ]:currentIndex() )
+ qModalIndex := ::oSL:qObj[ "listOptions" ]:currentIndex()
::cSelTheme := ::aThemes[ qModalIndex:row() + 1, 1 ]
::oSL:done( 1 )
diff --git a/harbour/contrib/hbide/idetools.prg b/harbour/contrib/hbide/idetools.prg
index 051d96b3f8..0a9d4c1013 100644
--- a/harbour/contrib/hbide/idetools.prg
+++ b/harbour/contrib/hbide/idetools.prg
@@ -266,8 +266,8 @@ METHOD IdeToolsManager:show()
hdr_:= { { "Img", 30 }, { "Tool", 218 } }
oTbl := ::oUI:q_tableButtons
//
- QHeaderView():from( oTbl:verticalHeader() ):hide()
- QHeaderView():from( oTbl:horizontalHeader() ):stretchLastSection( .t. )
+ oTbl:verticalHeader():hide()
+ oTbl:horizontalHeader():stretchLastSection( .t. )
oTbl:setAlternatingRowColors( .t. )
oTbl:setColumnCount( len( hdr_ ) )
oTbl:setShowGrid( .t. )
@@ -332,7 +332,7 @@ METHOD IdeToolsManager:execEvent( cMode, p )
::oUI:q_listToolbars:setCurrentRow( p )
EXIT
CASE "listNames_itemSelectionChanged"
- qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
cName := qItem:text()
IF ( nIndex := ascan( aTools, {|e_| e_[ 1 ] == cName } ) ) > 0
::ini2Controls( nIndex )
@@ -346,7 +346,7 @@ METHOD IdeToolsManager:execEvent( cMode, p )
EXIT
CASE "buttonDelete_clicked"
IF ::oUI:q_listNames:currentRow() >= 0
- qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
cName := qItem:text()
IF ( nIndex := ascan( aTools, {|e_| e_[ 1 ] == cName } ) ) > 0
hb_adel( ::oINI:aTools, nIndex, .t. )
@@ -363,7 +363,7 @@ METHOD IdeToolsManager:execEvent( cMode, p )
IF ! ::lExecuting
::lExecuting := .t.
IF ::oUI:q_listNames:currentRow() >= 0
- qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
::execTool( qItem:text() )
ENDIF
::lExecuting := .f.
@@ -379,7 +379,7 @@ METHOD IdeToolsManager:execEvent( cMode, p )
EXIT
CASE "buttonUpdate_clicked"
IF ( nRow := ::oUI:q_listNames:currentRow() ) >= 0
- qItem := QListWidgetItem():from( ::oUI:q_listNames:currentItem() )
+ qItem := ::oUI:q_listNames:currentItem()
cName := qItem:text()
IF ( nIndex := ascan( aTools, {|e_| e_[ 1 ] == cName } ) ) > 0
@@ -644,7 +644,7 @@ METHOD IdeToolsManager:buildToolsButton()
::qToolsMenu := QMenu()
::qToolsMenu:setStyleSheet( GetStyleSheet( "QMenuPop", ::nAnimantionMode ) )
FOR EACH a_ IN ::aTools
- qAct := QAction():from( ::qToolsMenu:addAction( a_[ 1 ] ) )
+ qAct := ::qToolsMenu:addAction( a_[ 1 ] )
qAct:connect( "triggered(bool)", {|| ::execTool( a_[ 1 ] ) } )
aadd( ::aAct, qAct )
NEXT
@@ -684,7 +684,7 @@ METHOD IdeToolsManager:buildPanelsButton()
METHOD IdeToolsManager:addPanelsMenu( cPrompt )
LOCAL qAct
- qAct := QAction():from( ::qPanelsMenu:addAction( cPrompt ) )
+ qAct := ::qPanelsMenu:addAction( cPrompt )
qAct:setIcon( ::oDK:getPanelIcon( cPrompt ) )
qAct:connect( "triggered(bool)", {|| ::oDK:setView( cPrompt ) } )
aadd( ::aPanelsAct, qAct )
diff --git a/harbour/contrib/hbqt/qtwebkit/g/TQWebSecurityOrigin.prg b/harbour/contrib/hbqt/qtwebkit/g/TQWebSecurityOrigin.prg
index 8406a7c1ac..f910ef8096 100644
--- a/harbour/contrib/hbqt/qtwebkit/g/TQWebSecurityOrigin.prg
+++ b/harbour/contrib/hbqt/qtwebkit/g/TQWebSecurityOrigin.prg
@@ -12,9 +12,7 @@
* Harbour Project source code:
* QT wrapper main header
*
- * Copyright 2009-2010 Pritpal Bedi
- *
- * Copyright 2009 Marcos Antonio Gambeta
+ * Copyright 2009-2010 Pritpal Bedi
* www - http://harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
@@ -58,6 +56,40 @@
*
*/
/*----------------------------------------------------------------------*/
+/* C R E D I T S */
+/*----------------------------------------------------------------------*/
+/*
+ * Marcos Antonio Gambeta
+ * for providing first ever prototype parsing methods. Though the current
+ * implementation is diametrically different then what he proposed, still
+ * current code shaped on those footsteps.
+ *
+ * Viktor Szakats
+ * for directing the project with futuristic vision;
+ * for designing and maintaining a complex build system for hbQT, hbIDE;
+ * for introducing many constructs on PRG and C++ levels;
+ * for streamlining signal/slots and events management classes;
+ *
+ * Istvan Bisz
+ * for introducing QPointer<> concept in the generator;
+ * for testing the library on numerous accounts;
+ * for showing a way how a GC pointer can be detached;
+ *
+ * Francesco Perillo
+ * for taking keen interest in hbQT development and peeking the code;
+ * for providing tips here and there to improve the code quality;
+ * for hitting bulls eye to describe why few objects need GC detachment;
+ *
+ * Carlos Bacco
+ * for implementing HBQT_TYPE_Q*Class enums;
+ * for peeking into the code and suggesting optimization points;
+ *
+ * Przemyslaw Czerpak
+ * for providing tips and trick to manipulate HVM internals to the best
+ * of its use and always showing a path when we get stuck;
+ * A true tradition of a MASTER...
+*/
+/*----------------------------------------------------------------------*/
#include "hbclass.ch"
@@ -116,5 +148,5 @@ METHOD QWebSecurityOrigin:setDatabaseQuota( nQuota )
METHOD QWebSecurityOrigin:allOrigins()
- RETURN Qt_QWebSecurityOrigin_allOrigins( ::pPtr )
+ RETURN HB_QList():from( Qt_QWebSecurityOrigin_allOrigins( ::pPtr ) )
diff --git a/harbour/contrib/hbqt/qtwebkit/g/TQWebSettings.prg b/harbour/contrib/hbqt/qtwebkit/g/TQWebSettings.prg
index 589e185f7d..dc194237cd 100644
--- a/harbour/contrib/hbqt/qtwebkit/g/TQWebSettings.prg
+++ b/harbour/contrib/hbqt/qtwebkit/g/TQWebSettings.prg
@@ -12,9 +12,7 @@
* Harbour Project source code:
* QT wrapper main header
*
- * Copyright 2009-2010 Pritpal Bedi
- *
- * Copyright 2009 Marcos Antonio Gambeta
+ * Copyright 2009-2010 Pritpal Bedi
* www - http://harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
@@ -58,6 +56,40 @@
*
*/
/*----------------------------------------------------------------------*/
+/* C R E D I T S */
+/*----------------------------------------------------------------------*/
+/*
+ * Marcos Antonio Gambeta
+ * for providing first ever prototype parsing methods. Though the current
+ * implementation is diametrically different then what he proposed, still
+ * current code shaped on those footsteps.
+ *
+ * Viktor Szakats
+ * for directing the project with futuristic vision;
+ * for designing and maintaining a complex build system for hbQT, hbIDE;
+ * for introducing many constructs on PRG and C++ levels;
+ * for streamlining signal/slots and events management classes;
+ *
+ * Istvan Bisz
+ * for introducing QPointer<> concept in the generator;
+ * for testing the library on numerous accounts;
+ * for showing a way how a GC pointer can be detached;
+ *
+ * Francesco Perillo
+ * for taking keen interest in hbQT development and peeking the code;
+ * for providing tips here and there to improve the code quality;
+ * for hitting bulls eye to describe why few objects need GC detachment;
+ *
+ * Carlos Bacco
+ * for implementing HBQT_TYPE_Q*Class enums;
+ * for peeking into the code and suggesting optimization points;
+ *
+ * Przemyslaw Czerpak
+ * for providing tips and trick to manipulate HVM internals to the best
+ * of its use and always showing a path when we get stuck;
+ * A true tradition of a MASTER...
+*/
+/*----------------------------------------------------------------------*/
#include "hbclass.ch"
@@ -150,7 +182,7 @@ METHOD QWebSettings:testAttribute( nAttribute )
METHOD QWebSettings:userStyleSheetUrl()
- RETURN Qt_QWebSettings_userStyleSheetUrl( ::pPtr )
+ RETURN HB_QUrl():from( Qt_QWebSettings_userStyleSheetUrl( ::pPtr ) )
METHOD QWebSettings:clearIconDatabase()
@@ -158,7 +190,7 @@ METHOD QWebSettings:clearIconDatabase()
METHOD QWebSettings:globalSettings()
- RETURN Qt_QWebSettings_globalSettings( ::pPtr )
+ RETURN HB_QWebSettings():from( Qt_QWebSettings_globalSettings( ::pPtr ) )
METHOD QWebSettings:iconDatabasePath()
@@ -166,7 +198,7 @@ METHOD QWebSettings:iconDatabasePath()
METHOD QWebSettings:iconForUrl( pUrl )
- RETURN Qt_QWebSettings_iconForUrl( ::pPtr, hbqt_ptr( pUrl ) )
+ RETURN HB_QIcon():from( Qt_QWebSettings_iconForUrl( ::pPtr, hbqt_ptr( pUrl ) ) )
METHOD QWebSettings:maximumPagesInCache()
@@ -206,5 +238,5 @@ METHOD QWebSettings:setWebGraphic( nType, pGraphic )
METHOD QWebSettings:webGraphic( nType )
- RETURN Qt_QWebSettings_webGraphic( ::pPtr, nType )
+ RETURN HB_QPixmap():from( Qt_QWebSettings_webGraphic( ::pPtr, nType ) )
diff --git a/harbour/contrib/hbqt/qtwebkit/g/TQWebView.prg b/harbour/contrib/hbqt/qtwebkit/g/TQWebView.prg
index 80dfe2bcf7..febf5ef1fa 100644
--- a/harbour/contrib/hbqt/qtwebkit/g/TQWebView.prg
+++ b/harbour/contrib/hbqt/qtwebkit/g/TQWebView.prg
@@ -12,9 +12,7 @@
* Harbour Project source code:
* QT wrapper main header
*
- * Copyright 2009-2010 Pritpal Bedi
- *
- * Copyright 2009 Marcos Antonio Gambeta
+ * Copyright 2009-2010 Pritpal Bedi
* www - http://harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
@@ -58,6 +56,40 @@
*
*/
/*----------------------------------------------------------------------*/
+/* C R E D I T S */
+/*----------------------------------------------------------------------*/
+/*
+ * Marcos Antonio Gambeta
+ * for providing first ever prototype parsing methods. Though the current
+ * implementation is diametrically different then what he proposed, still
+ * current code shaped on those footsteps.
+ *
+ * Viktor Szakats
+ * for directing the project with futuristic vision;
+ * for designing and maintaining a complex build system for hbQT, hbIDE;
+ * for introducing many constructs on PRG and C++ levels;
+ * for streamlining signal/slots and events management classes;
+ *
+ * Istvan Bisz
+ * for introducing QPointer<> concept in the generator;
+ * for testing the library on numerous accounts;
+ * for showing a way how a GC pointer can be detached;
+ *
+ * Francesco Perillo
+ * for taking keen interest in hbQT development and peeking the code;
+ * for providing tips here and there to improve the code quality;
+ * for hitting bulls eye to describe why few objects need GC detachment;
+ *
+ * Carlos Bacco
+ * for implementing HBQT_TYPE_Q*Class enums;
+ * for peeking into the code and suggesting optimization points;
+ *
+ * Przemyslaw Czerpak
+ * for providing tips and trick to manipulate HVM internals to the best
+ * of its use and always showing a path when we get stuck;
+ * A true tradition of a MASTER...
+*/
+/*----------------------------------------------------------------------*/
#include "hbclass.ch"
@@ -114,11 +146,11 @@ METHOD QWebView:findText( cSubString, nOptions )
METHOD QWebView:history()
- RETURN Qt_QWebView_history( ::pPtr )
+ RETURN HB_QWebHistory():from( Qt_QWebView_history( ::pPtr ) )
METHOD QWebView:icon()
- RETURN Qt_QWebView_icon( ::pPtr )
+ RETURN HB_QIcon():from( Qt_QWebView_icon( ::pPtr ) )
METHOD QWebView:isModified()
@@ -126,41 +158,34 @@ METHOD QWebView:isModified()
METHOD QWebView:load( ... )
- LOCAL p, aP, nP, aV := {}
- aP := hb_aParams()
- nP := len( aP )
- ::valtypes( aP, aV )
- FOR EACH p IN { ... }
- hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) )
- NEXT
- DO CASE
- CASE nP == 3
+ SWITCH PCount()
+ CASE 3
DO CASE
- CASE aV[ 1 ] $ "PO" .AND. aV[ 2 ] $ "N" .AND. aV[ 3 ] $ "PO"
- // void load ( const QNetworkRequest & request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray & body = QByteArray() )
- // PO p QNetworkRequest, N n QNetworkAccessManager::Operation, PO p QByteArray
+ CASE hb_isObject( hb_pvalue( 1 ) ) .AND. hb_isNumeric( hb_pvalue( 2 ) ) .AND. hb_isObject( hb_pvalue( 3 ) )
RETURN Qt_QWebView_load_1( ::pPtr, ... )
ENDCASE
- CASE nP == 1
+ EXIT
+ CASE 1
DO CASE
- CASE aV[ 1 ] $ "PO"
- // void load ( const QUrl & url )
- // PO p QUrl
- RETURN Qt_QWebView_load( ::pPtr, ... )
- // void load ( const QNetworkRequest & request, QNetworkAccessManager::Operation operation = QNetworkAccessManager::GetOperation, const QByteArray & body = QByteArray() )
- // PO p QNetworkRequest, N n QNetworkAccessManager::Operation, PO p QByteArray
- // RETURN Qt_QWebView_load_1( ::pPtr, ... )
+ CASE hb_isObject( hb_pvalue( 1 ) )
+ SWITCH __objGetClsName( hb_pvalue( 1 ) )
+ CASE "QURL"
+ RETURN Qt_QWebView_load( ::pPtr, ... )
+ CASE "QNETWORKREQUEST"
+ RETURN Qt_QWebView_load_1( ::pPtr, ... )
+ ENDSWITCH
ENDCASE
- ENDCASE
- RETURN NIL
+ EXIT
+ ENDSWITCH
+ RETURN hbqt_error()
METHOD QWebView:page()
- RETURN Qt_QWebView_page( ::pPtr )
+ RETURN HB_QWebPage():from( Qt_QWebView_page( ::pPtr ) )
METHOD QWebView:pageAction( nAction )
- RETURN Qt_QWebView_pageAction( ::pPtr, nAction )
+ RETURN HB_QAction():from( Qt_QWebView_pageAction( ::pPtr, nAction ) )
METHOD QWebView:selectedText()
@@ -192,7 +217,7 @@ METHOD QWebView:setZoomFactor( nFactor )
METHOD QWebView:settings()
- RETURN Qt_QWebView_settings( ::pPtr )
+ RETURN HB_QWebSettings():from( Qt_QWebView_settings( ::pPtr ) )
METHOD QWebView:textSizeMultiplier()
@@ -208,7 +233,7 @@ METHOD QWebView:triggerPageAction( nAction, lChecked )
METHOD QWebView:url()
- RETURN Qt_QWebView_url( ::pPtr )
+ RETURN HB_QUrl():from( Qt_QWebView_url( ::pPtr ) )
METHOD QWebView:zoomFactor()
diff --git a/harbour/contrib/hbqt/tests/demoqt.prg b/harbour/contrib/hbqt/tests/demoqt.prg
index 7095ba684d..4ea44c8aac 100644
--- a/harbour/contrib/hbqt/tests/demoqt.prg
+++ b/harbour/contrib/hbqt/tests/demoqt.prg
@@ -162,7 +162,7 @@ FUNCTION xReleaseMemory( aObj )
LOCAL i
FOR i := 1 TO len( aObj )
IF hb_isObject( aObj[ i ] )
- aObj[ i ]:pPtr := 1
+ aObj[ i ] := NIL
ELSEIF hb_isArray( aObj[ i ] )
xReleaseMemory( aObj[ i ] )
ENDIF
@@ -240,17 +240,17 @@ STATIC FUNCTION Build_MenuBar( oWnd )
oActNew:connect( "triggered(bool)", {|w,l| FileDialog( "New" , w, l ) } )
oMenu1:addAction( oActNew )
- oActOpen := QAction():from( oMenu1:addAction( "open.png", "&Open" ) )
+ oActOpen := oMenu1:addAction( "open.png", "&Open" )
oActOpen:connect( QT_EVE_TRIGGERED_B, {|w,l| FileDialog( "Open" , w, l ) } )
oMenu1:addSeparator()
- oActSave := QAction():from( oMenu1:addAction( "save.png", "&Save" ) )
+ oActSave := oMenu1:addAction( "save.png", "&Save" )
oActSave:connect( QT_EVE_TRIGGERED_B, {|w,l| FileDialog( "Save" , w, l ) } )
oMenu1:addSeparator()
- oActExit := QAction():from( oMenu1:addAction( "E&xit" ) )
+ oActExit := oMenu1:addAction( "E&xit" )
oActExit:connect( QT_EVE_TRIGGERED_B, {|| s_qApp:quit() } )
oMenuBar:addMenu( oMenu1 )
@@ -258,31 +258,31 @@ STATIC FUNCTION Build_MenuBar( oWnd )
oMenu2 := QMenu()
oMenu2:setTitle( "&Dialogs" )
- oActColors := QAction():from( oMenu2:addAction( "&Colors" ) )
+ oActColors := oMenu2:addAction( "&Colors" )
oActColors:connect( QT_EVE_TRIGGERED_B, {|w,l| Dialogs( "Colors", w, l ) } )
- oActFonts := QAction():from( oMenu2:addAction( "&Fonts" ) )
+ oActFonts := oMenu2:addAction( "&Fonts" )
oActFonts:connect( QT_EVE_TRIGGERED_B, {|w,l| Dialogs( "Fonts", w, l ) } )
oMenu2:addSeparator()
- oActPgSetup := QAction():from( oMenu2:addAction( "&PageSetup" ) )
+ oActPgSetup := oMenu2:addAction( "&PageSetup" )
oActPgSetup:connect( QT_EVE_TRIGGERED_B, {|w,l| Dialogs( "PageSetup", w, l ) } )
- oActPreview := QAction():from( oMenu2:addAction( "P&review" ) )
+ oActPreview := oMenu2:addAction( "P&review" )
oActPreview:connect( QT_EVE_TRIGGERED_B, {|w,l| Dialogs( "Preview", w, l ) } )
oMenu2:addSeparator()
- oActWiz := QAction():from( oMenu2:addAction( "&Wizard" ) )
+ oActWiz := oMenu2:addAction( "&Wizard" )
oActWiz:connect( QT_EVE_TRIGGERED_B, {|w,l| Dialogs( "Wizard", w, l ) } )
- oActWeb := QAction():from( oMenu2:addAction( "W&ebPage" ) )
+ oActWeb := oMenu2:addAction( "W&ebPage" )
oActWeb:connect( QT_EVE_TRIGGERED_B, {|w,l| Dialogs( "WebPage", w, l ) } )
oMenu2:addSeparator()
- oActOther := QAction():from( oMenu2:addAction( "&Another Dialog" ) )
+ oActOther := oMenu2:addAction( "&Another Dialog" )
oActOther:connect( QT_EVE_TRIGGERED_B, {|| ExecOneMore() } )
oMenuBar:addMenu( oMenu2 )
@@ -601,7 +601,6 @@ STATIC FUNCTION Dialogs( cType )
oDlg := QWebView()
oUrl := QUrl()
oUrl:setUrl( "http://www.harbour.vouch.info" )
- QT_QWebView_SetUrl( oDlg:pPtr, oUrl:pPtr )
oDlg:setWindowTitle( "Harbour-QT Web Page Navigator" )
oDlg:exec()
#endif
@@ -631,12 +630,12 @@ FUNCTION ShowInSystemTray( oWnd )
oMenuSys := QMenu( oWnd )
oMenuSys:setTitle( "&File" )
- oActShow := QAction():from( oMenuSys:addAction( "new.png" , "&Show" ) )
+ oActShow := oMenuSys:addAction( "new.png" , "&Show" )
oActShow:connect( QT_EVE_TRIGGERED_B, {|| oWnd:show() } )
oMenuSys:addSeparator()
- oActHide := QAction():from( oMenuSys:addAction( "new.png" , "&Show" ) )
+ oActHide := oMenuSys:addAction( "new.png" , "&Show" )
oActHide:connect( QT_EVE_TRIGGERED_B, {|| oWnd:hide() } )
oSys := QSystemTrayIcon( oWnd )
diff --git a/harbour/contrib/hbqt/utils/hbqtgen.prg b/harbour/contrib/hbqt/utils/hbqtgen.prg
index 4771e12a2c..1f2c1dd2fd 100644
--- a/harbour/contrib/hbqt/utils/hbqtgen.prg
+++ b/harbour/contrib/hbqt/utils/hbqtgen.prg
@@ -1063,28 +1063,15 @@ METHOD HbQtSource:buildClass()
IF "..." $ oMtd:cMtdDef /* reworked at c++ level - embed as is */
aadd( txt_, "" )
aadd( txt_, "METHOD " + ::cWidget + ":" + oMtd:cMtdDef )
- aadd( txt_, " LOCAL p" )
- aadd( txt_, " FOR EACH p IN { ... }" )
- aadd( txt_, " hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) )" )
- aadd( txt_, " NEXT" )
- aadd( txt_, " RETURN " + oMtd:cMtdCall )
+ hbide_addReturnMethod( txt_, oMtd, ::cWidget, 3, 1, .f., .f., 0, NIL )
aadd( txt_, "" )
ELSEIF lClub .AND. oMtd:nSiblings > 0 /* has more calls with same name */
aadd( txt_, "" )
aadd( txt_, "METHOD " + ::cWidget + ":" + oMtd:cHBFunc + "( ... )" )
- aadd( txt_, " LOCAL p, aP, nP, aV := {}" )
- aadd( txt_, " aP := hb_aParams()" )
- aadd( txt_, " nP := len( aP )" )
- aadd( txt_, " ::valtypes( aP, aV )" )
- aadd( txt_, " FOR EACH p IN { ... }" )
- aadd( txt_, " hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) )" )
- aadd( txt_, " NEXT" )
- //
a_:= hbide_pullSameMethods( oMtd:cFun, ::aMethods, ::cWidget )
aeval( a_, {|e| aadd( txt_, e ) } )
- //
- aadd( txt_, " RETURN NIL" )
+ aadd( txt_, " RETURN hbqt_error()" )
aadd( txt_, "" )
ELSEIF lClub .AND. oMtd:isSibling /* is another call with same name handedlled previously - do nothing */
@@ -1093,7 +1080,7 @@ METHOD HbQtSource:buildClass()
ELSE /* as usual */
aadd( txt_, "" )
aadd( txt_, "METHOD " + ::cWidget + ":" + oMtd:cMtdDef )
- aadd( txt_, " RETURN " + oMtd:cMtdCall )
+ hbide_addReturnMethod( txt_, oMtd, ::cWidget, 3, 1, .f., .f., 0, NIL )
aadd( txt_, "" )
ENDIF
@@ -1113,7 +1100,8 @@ METHOD HbQtSource:buildClass()
/*----------------------------------------------------------------------*/
STATIC FUNCTION hbide_pullSameMethods( cFun, aMethods, cWidget )
- LOCAL i, oMtd, a_:={}, b_:={}, c_:={}, nArgs, n, txt_:={}, cSpc, cCrc, lFirst, nMtds
+ LOCAL i, oMtd, a_:={}, b_:={}, c_:={}, nArgs, n, txt_:={}
+ LOCAL cSpc, cCrc, lFirst, nMtds, nTySame, lInIf
FOR EACH oMtd IN aMethods
IF oMtd:cFun == cFun
@@ -1129,7 +1117,7 @@ STATIC FUNCTION hbide_pullSameMethods( cFun, aMethods, cWidget )
/* Build the structure number of parameters wise */
FOR EACH nArgs IN b_
- aadd( c_, { nArgs, {} } )
+ aadd( c_, { nArgs, {}, {}, {} } )
n := len( c_ )
FOR EACH oMtd IN a_
IF oMtd:nArgs == nArgs
@@ -1156,69 +1144,127 @@ STATIC FUNCTION hbide_pullSameMethods( cFun, aMethods, cWidget )
NEXT
cSpc := " "
- aadd( txt_, cSpc + "DO CASE" )
+ aadd( txt_, cSpc + "SWITCH PCount()" )
FOR EACH b_ IN c_
n := b_[ 1 ]
a_:= b_[ 2 ]
- aadd( txt_, cSpc + "CASE nP == " + hb_ntos( n ) )
- cCrc := "xxx"
- nMtds := 0
+ aadd( txt_, cSpc + "CASE " + hb_ntos( n ) ) /* number of parameters */
+ cCrc := "xxx"
+ nMtds := 0
+ lInIf := .f.
+ nTySame := 0
IF n > 0
lFirst := .t.
- aadd( txt_, cSpc + cSpc + "DO CASE" )
+ aadd( txt_, cSpc + cSpc + "DO CASE" ) /* type of parameters */
ENDIF
FOR EACH oMtd IN a_
IF n > 0
IF cCrc != TY( oMtd, n )
- cCrc := TY( oMtd, n )
- nMtds := 0
+ cCrc := TY( oMtd, n )
+ nMtds := 0
+ nTySame := 0
+ aeval( a_, {|o| iif( TY( o,n ) == cCrc, nTySame++, NIL ) } )
+ lInIf := oMtd:nArgQCast > 0 .AND. oMtd:nArgQCast <= n .AND. nTySame > 1
IF ! lFirst
lFirst := .t.
aadd( txt_, cSpc + cSpc + "ENDCASE" )
ENDIF
-
aadd( txt_, cSpc + cSpc + "CASE " + TY_TYPES( oMtd,n ) )
ENDIF
ENDIF
nMtds++
- hbide_addReturnMethod( txt_, oMtd, cWidget, iif( n == 0, 6, 9 ), nMtds )
+ hbide_addReturnMethod( txt_, oMtd, cWidget, iif( n == 0, 6, 9 ), nMtds, .t., lInIf, nTySame, n )
NEXT
IF n > 0
aadd( txt_, cSpc + cSpc + "ENDCASE" )
+ aadd( txt_, cSpc + cSpc + "EXIT" )
ENDIF
NEXT
- aadd( txt_, cSpc + "ENDCASE" )
+ aadd( txt_, cSpc + "ENDSWITCH" )
RETURN txt_
/*----------------------------------------------------------------------*/
-STATIC FUNCTION hbide_addReturnMethod( txt_, oM, cWidget, nInd, nCount )
- LOCAL s, cFun, sp := space( nInd )
+STATIC FUNCTION hbide_addReturnMethod( txt_, oM, cWidget, nInd, nCount, lClubbed, lInIf, nTySame, nArgToCheck )
+ LOCAL cFun, sp := space( nInd )
LOCAL cRetCast := oM:oRet:cCast
+ LOCAL cPostFix := "" // " // " + oM:cProto
+ LOCAL cPreFix
+
+ DEFAULT lInIf TO .f.
+ DEFAULT nTySame TO 0
+ DEFAULT nArgToCheck TO oM:nArgs
+
+ // cPreFix := "FOR EACH p IN { ... } ; hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) ) ; NEXT ; "
+ cPreFix := ""
- aadd( txt_, sp + " " + "// " + oM:cProto )
- IF !empty( s := hbide_methodInfo( oM ) )
- aadd( txt_, sp + " " + "// " + s )
- ENDIF
IF ! ( "::" $ cRetCast ) .AND. ;
! ( "<" $ cRetCast ) .AND. ;
! ( cRetCast $ "QString,QRgb" ) .AND. ;
( left( cRetCast, 1 ) == "Q" .OR. left( cRetCast, 3 ) == "HBQ" )
- cFun := cRetCast + "():from( " + "Qt_" + cWidget + "_" + oM:cHBFunc + "( ::pPtr, ... )" + " )"
+ IF lClubbed
+ cFun := "HB_" + cRetCast + "():from( " + "Qt_" + cWidget + "_" + oM:cHBFunc + "( ::pPtr, ... )" + " )"
+ ELSE
+ cFun := "HB_" + cRetCast + "():from( " + oM:cMtdCall + " )"
+ ENDIF
+
+ ELSEIF ( "<" $ cRetCast )
+ IF lClubbed
+ cFun := "HB_" + "QList" + "():from( " + "Qt_" + cWidget + "_" + oM:cHBFunc + "( ::pPtr, ... )" + " )"
+ ELSE
+ cFun := "HB_" + "QList" + "():from( " + oM:cMtdCall + " )"
+ ENDIF
- /* Workable but then code needs to be changed - defer for now*/
- //cFun := cRetCast + "( " + "Qt_" + cWidget + "_" + oM:cHBFunc + "( ::pPtr, ... )" + " )"
ELSE
- cFun := "Qt_" + cWidget + "_" + oM:cHBFunc + "( ::pPtr, ... )"
+ IF lClubbed
+ cFun := "Qt_" + cWidget + "_" + oM:cHBFunc + "( ::pPtr, ... )"
+ ELSE
+ cFun := oM:cMtdCall
+ ENDIF
ENDIF
- s := sp + iif( nCount > 1, "// ", "" ) + "RETURN " + cFun
- aadd( txt_, s )
- IF nCount > 1
- HB_TRACE( HB_TR_ALWAYS, s ) /* needed to refine the engine further */
+
+ IF nTySame > 0 .AND. lInIf
+ HB_TRACE( HB_TR_ALWAYS, oM:nArgQCast, oM:nArgs )
+
+ IF oM:nArgQCast == 0
+ aadd( txt_, sp + "// " + "RETURN " + cFun + cPostFix )
+ HB_TRACE( HB_TR_ALWAYS, "// RETURN " + cFun + cPostFix ) /* needed to refine the engine further */
+ IF nTySame > 1 .AND. nCount == nTySame
+ aadd( txt_, sp + "ENDSWITCH" )
+ ENDIF
+ RETURN NIL
+ ENDIF
+
+ IF nTySame > 1 .AND. nCount == 1
+ aadd( txt_, sp + "SWITCH __objGetClsName( hb_pvalue( " + hb_ntos( oM:nArgQCast ) + " ) )" )
+ ENDIF
+ IF nTySame > 1
+ aadd( txt_, sp + "CASE " + '"' + upper( oM:hArgs[ oM:nArgQCast ]:cCast ) + '"' )
+ aadd( txt_, sp + " " + cPrefix + "RETURN " + cFun + cPostFix )
+ ELSE
+ aadd( txt_, sp + "IF __objGetClsName( hb_pvalue( " + hb_ntos( oM:nArgQCast ) + " ) ) == " + '"' + upper( oM:hArgs[ oM:nArgQCast ]:cCast ) + '"' )
+ aadd( txt_, sp + " " + cPrefix + "RETURN " + cFun + cPostFix )
+ aadd( txt_, sp + "ENDIF" )
+ ENDIF
+ IF nTySame > 1 .AND. nCount == nTySame
+ aadd( txt_, sp + "ENDSWITCH" )
+ ENDIF
+ ELSE
+ IF nCount > 1
+ aadd( txt_, sp + "// " + "RETURN " + cFun + cPostFix )
+ HB_TRACE( HB_TR_ALWAYS, "// RETURN " + cFun + cPostFix ) /* needed to refine the engine further */
+ ELSE
+ IF "..." $ cFun
+ aadd( txt_, sp + cPrefix + "RETURN " + cFun + cPostFix )
+ ELSE
+ aadd( txt_, sp + "RETURN " + cFun + cPostFix )
+ ENDIF
+ ENDIF
ENDIF
+
RETURN NIL
/*----------------------------------------------------------------------*/
@@ -1234,10 +1280,30 @@ STATIC FUNCTION hbide_methodInfo( oMtd )
/*----------------------------------------------------------------------*/
+STATIC FUNCTION hbide_paramCheckStr( cType, nArg )
+
+ SWITCH cType
+ CASE "PO"
+ CASE "P"
+ CASE "X"
+ RETURN "hb_isObject( hb_pvalue( " + hb_ntos( nArg ) + " ) )"
+ CASE "PCO"
+ RETURN "( hb_isObject( hb_pvalue( " + hb_ntos( nArg ) + " ) ) .OR. hb_isChar( hb_pvalue( " + hb_ntos( nArg ) + " ) ) )"
+ CASE "N"
+ RETURN "hb_isNumeric( hb_pvalue( " + hb_ntos( nArg ) + " ) )"
+ CASE "L"
+ RETURN "hb_isLogical( hb_pvalue( " + hb_ntos( nArg ) + " ) )"
+ CASE "C"
+ RETURN "hb_isChar( hb_pvalue( " + hb_ntos( nArg ) + " ) )"
+ ENDSWITCH
+ RETURN ""
+
+/*----------------------------------------------------------------------*/
+
STATIC FUNCTION TY_TYPES( oM, nArgs )
LOCAL i, s := ""
FOR i := 1 TO nArgs
- s += "aV[ " + hb_ntos( i ) + ' ] $ "' + oM:hArgs[ i ]:cTypeHB + '"' + " .AND. "
+ s += hbide_paramCheckStr( oM:hArgs[ i ]:cTypeHB, i ) + " .AND. "
NEXT
IF " .AND. " $ s
s := substr( s, 1, len( s ) - 7 )
@@ -1262,7 +1328,7 @@ METHOD HbQtSource:buildDocument()
hb_HKeepOrder( hEntry, .T. )
- n := ascan( ::cls_, {|e_| left( lower( e_[ 1 ] ), 7 ) == "inherit" .and. !empty( e_[ 2 ] ) } )
+ n := ascan( ::cls_, {|e_| left( lower( e_[ 1 ] ), 7 ) $ "inherits" .and. !empty( e_[ 2 ] ) } )
cInherits := iif( n > 0, ::cls_[ n, 2 ], "" )
cLib := FNameGetName( ::cProFile )
@@ -1277,7 +1343,6 @@ METHOD HbQtSource:buildDocument()
hEntry[ "SYNTAX" ] := ""
hEntry[ "SYNTAX" ] += " " + ::cWidget + "( ... )" + hb_eol()
hEntry[ "SYNTAX" ] += " " + ::cWidget + "():from( pPtr_OR_oObj_of_type_" + ::cWidget +" )" + hb_eol()
- hEntry[ "SYNTAX" ] += " " + ::cWidget + "():configure( pPtr_OR_oObj_of_type_" + ::cWidget +" )"
hEntry[ "ARGUMENTS" ] := ""
hEntry[ "RETURNS" ] := " " + "An instance of the object of type " + ::cWidget
hEntry[ "METHODS" ] := ""
@@ -1317,8 +1382,7 @@ METHOD HbQtSource:buildDocument()
hEntry[ "FILES" ] += " " + "C++ wrappers : " + "contrib/hbqt" + iif( Empty( cLib ), "", "/" + cLib ) + "/" + ::cWidget + ".cpp" + hb_eol()
hEntry[ "FILES" ] += " " + "Library : " + "hb" + cLib
hEntry[ "SEEALSO" ] := ""
- * hEntry[ "SEEALSO" ] += " " + iif( Empty( cInherits ), "", cInherits + ", " ) + QT_WEB + QT_VER + "/" + lower( ::cWidget ) + ".html" + hb_eol()
- hEntry[ "SEEALSO" ] += " " + cInherits
+ hEntry[ "SEEALSO" ] += " " + iif( empty( cInherits ), "", cInherits + "()" )
cFile := ::cPathDoc + hb_ps() + "en" + hb_ps() + "class_" + lower( ::cWidget ) + ".txt"
@@ -1622,6 +1686,19 @@ METHOD HbQtSource:parseProto( cProto, fBody_ )
oMtd:nArgsReal := oMtd:nArgs - oMtd:nArgsOpt
+ FOR EACH oArg IN oMtd:hArgs
+ IF left( oArg:cCast, 1 ) == "Q" .OR. left( oArg:cCast, 3 ) == "HBQ"
+ oMtd:nArgQCast := oArg:__enumIndex()
+ EXIT
+ ENDIF
+ NEXT
+ FOR EACH oArg IN oMtd:hArgs
+ IF oArg:cTypeHB $ "PO"
+ oMtd:nArgHBObj := oArg:__enumIndex()
+ EXIT
+ ENDIF
+ NEXT
+
IF right( oMtd:cParas, 2 ) == ", "
oMtd:cParas := substr( oMtd:cParas, 1, len( oMtd:cParas ) - 2 )
oMtd:cDocs := substr( oMtd:cDocs , 1, len( oMtd:cDocs ) - 2 )
@@ -1820,6 +1897,8 @@ CLASS HbqtMethod
DATA aPre INIT {}
DATA nHBIdx
+ DATA nArgQCast INIT 0 // First argument position of type Q*Class
+ DATA nArgHBObj INIT 0 // First argument position of type Q*Class
DATA oRet
DATA nArgs INIT 0 // Number of arguments contained
@@ -2094,9 +2173,7 @@ STATIC FUNCTION BuildCopyrightText( txt_, nMode, cProFile )
aadd( txt_, " * Harbour Project source code:" )
aadd( txt_, " * QT wrapper main header" )
aadd( txt_, " * " )
- aadd( txt_, " * Copyright 2009-2010 Pritpal Bedi " )
- aadd( txt_, " * " )
- aadd( txt_, " * Copyright 2009 Marcos Antonio Gambeta " )
+ aadd( txt_, " * Copyright 2009-2010 Pritpal Bedi " )
aadd( txt_, " * www - http://harbour-project.org" )
aadd( txt_, " * " )
aadd( txt_, " * This program is free software; you can redistribute it and/or modify" )
@@ -2140,6 +2217,40 @@ STATIC FUNCTION BuildCopyrightText( txt_, nMode, cProFile )
aadd( txt_, " *" )
aadd( txt_, " */" )
aadd( txt_, "/*----------------------------------------------------------------------*/" )
+ aadd( txt_, "/* C R E D I T S */" )
+ aadd( txt_, "/*----------------------------------------------------------------------*/" )
+ aadd( txt_, "/* " )
+ aadd( txt_, " * Marcos Antonio Gambeta" )
+ aadd( txt_, " * for providing first ever prototype parsing methods. Though the current" )
+ aadd( txt_, " * implementation is diametrically different then what he proposed, still" )
+ aadd( txt_, " * current code shaped on those footsteps." )
+ aadd( txt_, " * " )
+ aadd( txt_, " * Viktor Szakats" )
+ aadd( txt_, " * for directing the project with futuristic vision; " )
+ aadd( txt_, " * for designing and maintaining a complex build system for hbQT, hbIDE;" )
+ aadd( txt_, " * for introducing many constructs on PRG and C++ levels;" )
+ aadd( txt_, " * for streamlining signal/slots and events management classes;" )
+ aadd( txt_, " * " )
+ aadd( txt_, " * Istvan Bisz" )
+ aadd( txt_, " * for introducing QPointer<> concept in the generator;" )
+ aadd( txt_, " * for testing the library on numerous accounts;" )
+ aadd( txt_, " * for showing a way how a GC pointer can be detached;" )
+ aadd( txt_, " * " )
+ aadd( txt_, " * Francesco Perillo" )
+ aadd( txt_, " * for taking keen interest in hbQT development and peeking the code;" )
+ aadd( txt_, " * for providing tips here and there to improve the code quality;" )
+ aadd( txt_, " * for hitting bulls eye to describe why few objects need GC detachment;" )
+ aadd( txt_, " * " )
+ aadd( txt_, " * Carlos Bacco" )
+ aadd( txt_, " * for implementing HBQT_TYPE_Q*Class enums;" )
+ aadd( txt_, " * for peeking into the code and suggesting optimization points;" )
+ aadd( txt_, " * " )
+ aadd( txt_, " * Przemyslaw Czerpak" )
+ aadd( txt_, " * for providing tips and trick to manipulate HVM internals to the best" )
+ aadd( txt_, " * of its use and always showing a path when we get stuck;" )
+ aadd( txt_, " * A true tradition of a MASTER..." )
+ aadd( txt_, "*/ " )
+ aadd( txt_, "/*----------------------------------------------------------------------*/" )
aadd( txt_, "" )
IF nMode == 0
IF !( FNameGetName( cProFile ) == "qtcore" )
@@ -2202,7 +2313,7 @@ STATIC FUNCTION DispLogo()
cHlp += "" + hb_eol()
cHlp += "Harbour Source Generator for QT " + HBRawVersion() + hb_eol()
- cHlp += "Copyright (c) 2009, Pritpal Bedi " + hb_eol()
+ cHlp += "Copyright (c) 2009, Pritpal Bedi " + hb_eol()
cHlp += "http://harbour-project.org/" + hb_eol()
cHlp += "" + hb_eol()
diff --git a/harbour/contrib/hbxbp/hbpprocess.prg b/harbour/contrib/hbxbp/hbpprocess.prg
index ae293ba645..3876b33625 100644
--- a/harbour/contrib/hbxbp/hbpprocess.prg
+++ b/harbour/contrib/hbxbp/hbpprocess.prg
@@ -218,16 +218,16 @@ METHOD HbpProcess:start( cShellCmd )
IF ::lDetached
IF !empty( ::qStrList )
- ::qProcess:startDetached_1( ::cShellCmd, ::qStrList )
+ ::qProcess:startDetached( ::cShellCmd, ::qStrList )
ELSE
- ::qProcess:startDetached_2( ::cShellCmd )
+ ::qProcess:startDetached( ::cShellCmd )
ENDIF
::qProcess:waitForStarted()
ELSE
IF !empty( ::qStrList )
::qProcess:start( ::cShellCmd, ::qStrList )
ELSE
- ::qProcess:start_1( ::cShellCmd )
+ ::qProcess:start( ::cShellCmd )
ENDIF
ENDIF
diff --git a/harbour/contrib/hbxbp/xbp3state.prg b/harbour/contrib/hbxbp/xbp3state.prg
index 3b2b23a340..db9ceb66b5 100644
--- a/harbour/contrib/hbxbp/xbp3state.prg
+++ b/harbour/contrib/hbxbp/xbp3state.prg
@@ -141,8 +141,7 @@ METHOD Xbp3State:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, l
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QCheckBox()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := QCheckBox():from( pQtObject )
ENDIF
diff --git a/harbour/contrib/hbxbp/xbpappevent.prg b/harbour/contrib/hbxbp/xbpappevent.prg
index b29b822276..c6c9e6c122 100644
--- a/harbour/contrib/hbxbp/xbpappevent.prg
+++ b/harbour/contrib/hbxbp/xbpappevent.prg
@@ -171,10 +171,9 @@ STATIC FUNCTION hbqt_QTranslateKeyKP( kbm, key, shiftkey, altkey, controlkey, ;
FUNCTION XbpQKeyEventToAppEvent( pEvent )
LOCAL c := 0
- LOCAL key, kbm, txt, x
- LOCAL oKeyEvent := QKeyEvent()
+ LOCAL key, kbm, txt, x, oKeyEvent
- oKeyEvent:pPtr := pEvent
+ oKeyEvent := QKeyEvent():from( pEvent )
key := oKeyEvent:key()
kbm := oKeyEvent:modifiers()
diff --git a/harbour/contrib/hbxbp/xbpbitmap.prg b/harbour/contrib/hbxbp/xbpbitmap.prg
index f5f5964eea..0c8e57f892 100644
--- a/harbour/contrib/hbxbp/xbpbitmap.prg
+++ b/harbour/contrib/hbxbp/xbpbitmap.prg
@@ -157,7 +157,7 @@ METHOD XbpBitmap:loadFile( cImageFileName )
::cImageFileName := cImageFileName
- lSuccess := ::oWidget:load( cImageFileName, 0, Qt_AutoColor )
+ lSuccess := ::oWidget:load( cImageFileName )
RETURN lSuccess
diff --git a/harbour/contrib/hbxbp/xbpbrowse.prg b/harbour/contrib/hbxbp/xbpbrowse.prg
index 005aae225c..df2557beab 100644
--- a/harbour/contrib/hbxbp/xbpbrowse.prg
+++ b/harbour/contrib/hbxbp/xbpbrowse.prg
@@ -491,33 +491,33 @@ METHOD XbpBrowse:destroy()
NEXT
IF !empty( ::oModelIndex )
- ::oModelIndex:pPtr := 0
+ ::oModelIndex := NIL
ENDIF
- ::oHScrollBar:pPtr := 0
- ::oVScrollBar:pPtr := 0
+ ::oHScrollBar := NIL
+ ::oVScrollBar := NIL
- ::oLeftView:pPtr := 0
- ::oLeftDbfModel:pPtr := 0
- ::oLeftVHeaderView:pPtr := 0
- ::oLeftHeaderView:pPtr := 0
- ::oLeftFooterView:pPtr := 0
- ::oLeftFooterModel:pPtr := 0
+ ::oLeftView := NIL
+ ::oLeftDbfModel := NIL
+ ::oLeftVHeaderView := NIL
+ ::oLeftHeaderView := NIL
+ ::oLeftFooterView := NIL
+ ::oLeftFooterModel := NIL
- ::oRightView:pPtr := 0
- ::oRightHeaderView:pPtr := 0
- ::oRightDbfModel:pPtr := 0
- ::oRightFooterView:pPtr := 0
- ::oRightFooterModel:pPtr := 0
+ ::oRightView := NIL
+ ::oRightHeaderView := NIL
+ ::oRightDbfModel := NIL
+ ::oRightFooterView := NIL
+ ::oRightFooterModel := NIL
- ::oTableView:pPtr := 0
- ::oVHeaderView:pPtr := 0
- ::oDbfModel:pPtr := 0
+ ::oTableView := NIL
+ ::oVHeaderView := NIL
+ ::oDbfModel := NIL
- ::oFooterView:pPtr := 0
- ::oFooterModel:pPtr := 0
+ ::oFooterView := NIL
+ ::oFooterModel := NIL
- ::oGridLayout:pPtr := 0
+ ::oGridLayout := NIL
::oGridLayout := NIL
::oFooterModel := NIL
@@ -572,12 +572,10 @@ METHOD XbpBrowse:buildLeftFreeze()
::oLeftView:setSelectionBehavior( iif( ::cursorMode == XBPBRW_CURSOR_ROW, QAbstractItemView_SelectRows, QAbstractItemView_SelectItems ) )
//
/* Veritical Header because of Performance boost */
- ::oLeftVHeaderView := QHeaderView()
- ::oLeftVHeaderView:configure( ::oLeftView:verticalHeader() )
+ ::oLeftVHeaderView := ::oLeftView:verticalHeader()
::oLeftVHeaderView:hide()
/* Horizontal Header Fine Tuning */
- ::oLeftHeaderView := QHeaderView()
- ::oLeftHeaderView:configure( ::oLeftView:horizontalHeader() )
+ ::oLeftHeaderView := ::oLeftView:horizontalHeader()
::oLeftHeaderView:setHighlightSections( .F. )
::oLeftDbfModel := HBQAbstractItemModel( {|t,role,x,y| ::supplyInfo( 151, t, role, x, y ) } )
@@ -624,12 +622,10 @@ METHOD XbpBrowse:buildRightFreeze()
::oRightView:setSelectionBehavior( iif( ::cursorMode == XBPBRW_CURSOR_ROW, QAbstractItemView_SelectRows, QAbstractItemView_SelectItems ) )
//
/* Veritical Header because of Performance boost */
- oVHdr := QHeaderView()
- oVHdr:configure( ::oRightView:verticalHeader() )
+ oVHdr := ::oRightView:verticalHeader()
oVHdr:hide()
/* Horizontal Header Fine Tuning */
- ::oRightHeaderView := QHeaderView()
- ::oRightHeaderView:configure( ::oRightView:horizontalHeader() )
+ ::oRightHeaderView := ::oRightView:horizontalHeader()
::oRightHeaderView:setHighlightSections( .F. )
::oRightDbfModel := HBQAbstractItemModel( {|t,role,x,y| ::supplyInfo( 161, t, role, x, y ) } )
@@ -705,13 +701,11 @@ METHOD XbpBrowse:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oVScrollBar:connect( "sliderReleased()" , {|i| ::execSlot( __ev_vertscroll_sliderreleased__, i ) } )
/* Veritical Header because of Performance boost */
- ::oVHeaderView := QHeaderView()
- ::oVHeaderView:configure( ::oTableView:verticalHeader() )
+ ::oVHeaderView := ::oTableView:verticalHeader()
::oVHeaderView:hide()
/* Horizontal Header Fine Tuning */
- ::oHeaderView := QHeaderView()
- ::oHeaderView:configure( ::oTableView:horizontalHeader() )
+ ::oHeaderView := ::oTableView:horizontalHeader()
::oHeaderView:setHighlightSections( .F. )
//
::oHeaderView:connect( "sectionPressed(int)" , {|i | ::execSlot( __ev_columnheader_pressed__, i ) } )
@@ -744,25 +738,11 @@ METHOD XbpBrowse:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::buildRightFreeze()
/* Place all widgets in a Grid Layout */
- ::oGridLayout := QGridLayout( ::pWidget )
+ ::oGridLayout := QGridLayout( ::oWidget )
::oGridLayout:setContentsMargins( 0,0,0,0 )
::oGridLayout:setHorizontalSpacing( 0 )
::oGridLayout:setVerticalSpacing( 0 )
/* Rows */
-#if 0
- ::oGridLayout:addWidget_1( ::oLeftView , 0, 0, 1, 1 )
- ::oGridLayout:addWidget_1( ::oLeftFooterView , 1, 0, 1, 1 )
- //
- ::oGridLayout:addWidget_1( ::oTableView , 0, 1, 1, 1 )
- ::oGridLayout:addWidget_1( ::oFooterView , 1, 1, 1, 1 )
- //
- ::oGridLayout:addWidget_1( ::oRightView , 0, 2, 1, 1 )
- ::oGridLayout:addWidget_1( ::oRightFooterView, 1, 2, 1, 1 )
- //
- ::oGridLayout:addWidget_1( ::oHScrollBar , 2, 0, 1, 3 )
- /* Columns */
- ::oGridLayout:addWidget_1( ::oVScrollBar , 0, 3, 2, 1 )
-#else
::oGridLayout:addWidget( ::oLeftView , 0, 0, 1, 1 )
::oGridLayout:addWidget( ::oLeftFooterView , 1, 0, 1, 1 )
//
@@ -775,7 +755,7 @@ METHOD XbpBrowse:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oGridLayout:addWidget( ::oHScrollBar , 2, 0, 1, 3 )
/* Columns */
::oGridLayout:addWidget( ::oVScrollBar , 0, 3, 2, 1 )
-#endif
+
IF ::visible
::show()
ENDIF
@@ -784,11 +764,11 @@ METHOD XbpBrowse:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oFooterView:hide()
/* Viewport */
- ::oViewport:configure( ::oTableView:viewport() )
+ ::oViewport := ::oTableView:viewport()
::oWidget:connect( QEvent_Resize, {|| ::execSlot( __ev_frame_resized__ ) } )
- qRect := QRect():from( ::oWidget:geometry() )
+ qRect := ::oWidget:geometry()
::oWidget:setGeometry( qRect )
/* Handle the delegate */
@@ -817,7 +797,7 @@ METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 )
DO CASE
CASE nEvent == __ev_contextMenuRequested__
- oPoint := QPoint():from( ::oTableView:mapToGlobal( p1 ) )
+ oPoint := ::oTableView:mapToGlobal( p1 )
::hbContextMenu( { oPoint:x(), oPoint:y() } )
CASE nEvent == __editor_commitData__
@@ -868,10 +848,11 @@ METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 )
::oTableView:setFocus()
CASE nEvent == __ev_mousepress__
- oMouseEvent := QMouseEvent():configure( p1 )
+ oMouseEvent := QMouseEvent():from( p1 )
oPoint := QPoint( oMouseEvent:x(), oMouseEvent:y() )
- ::oModelIndex:configure( ::oTableView:indexAt( oPoint ) )
+// ::oModelIndex:configure( ::oTableView:indexAt( oPoint ) )
+ ::oModelIndex := ::oTableView:indexAt( oPoint )
IF ::oModelIndex:isValid() /* Reposition the record pointer */
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, ( ::oModelIndex:row() + 1 ) - ::rowPos, Self )
@@ -887,13 +868,13 @@ METHOD XbpBrowse:execSlot( nEvent, p1, p2, p3 )
ENDIF
CASE nEvent == __ev_xbpBrw_itemSelected__
- oMouseEvent := QMouseEvent():configure( p1 )
+ oMouseEvent := QMouseEvent():from( p1 )
IF oMouseEvent:button() == Qt_LeftButton
SetAppEvent( xbeBRW_ItemSelected, NIL, NIL, Self )
ENDIF
CASE nEvent == __ev_wheel__
- oWheelEvent := QWheelEvent():configure( p1 )
+ oWheelEvent := QWheelEvent():from( p1 )
IF oWheelEvent:orientation() == Qt_Vertical
IF oWheelEvent:delta() > 0
SetAppEvent( xbeBRW_Navigate, XBPBRW_Navigate_Skip, -1, Self )
diff --git a/harbour/contrib/hbxbp/xbpcheckbox.prg b/harbour/contrib/hbxbp/xbpcheckbox.prg
index b2ed0f20d6..62cb1cb0b4 100644
--- a/harbour/contrib/hbxbp/xbpcheckbox.prg
+++ b/harbour/contrib/hbxbp/xbpcheckbox.prg
@@ -132,9 +132,7 @@ METHOD XbpCheckBox:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams,
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QCheckBox()
- ::oWidget:pPtr := pQtObject
-
+ ::oWidget := QCheckBox():from( pQtObject )
ENDIF
RETURN Self
diff --git a/harbour/contrib/hbxbp/xbpclipboard.prg b/harbour/contrib/hbxbp/xbpclipboard.prg
index 3de250e6d0..2f0edba91a 100644
--- a/harbour/contrib/hbxbp/xbpclipboard.prg
+++ b/harbour/contrib/hbxbp/xbpclipboard.prg
@@ -167,7 +167,7 @@ METHOD XbpClipBoard:open()
METHOD XbpClipBoard:queryFormats()
LOCAL aFormats := {}
LOCAL cText := ::oWidget:text()
- LOCAL qImage := QImage():from( ::oWidget:image() )
+ LOCAL qImage := ::oWidget:image()
IF !empty( cText )
aadd( aFormats, XBPCLPBRD_TEXT )
diff --git a/harbour/contrib/hbxbp/xbpcombobox.prg b/harbour/contrib/hbxbp/xbpcombobox.prg
index 56f9ff8eb1..ffd309f50c 100644
--- a/harbour/contrib/hbxbp/xbpcombobox.prg
+++ b/harbour/contrib/hbxbp/xbpcombobox.prg
@@ -140,10 +140,9 @@ METHOD XbpComboBox:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oWidget := QComboBox( ::pParent )
- ::oWidget:setModel( QAbstractItemModel():from( ::xbpListBox:model() ) )
+ ::oWidget:setModel( ::xbpListBox:model() )
::oWidget:setView( ::xbpListBox:oWidget )
::oWidget:setLineEdit( ::xbpSLE:oWidget )
- //::oWidget:setLineEdit( ::XbpSLE:oWidget:pPtr )
::oWidget:setEditable( ::xbpSLE:editable )
::oWidget:setFrame( ::xbpSLE:border )
@@ -166,15 +165,13 @@ METHOD XbpComboBox:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams,
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QComboBox()
- ::oWidget:pPtr := pQtObject
-
+ ::oWidget := QComboBox():from( pQtObject )
ELSE
::oSLE := XbpSLE():new():create( ::oParent, ::oOwner, ::aPos, ::aSize, ::aPresParams, ::lVisible )
::oLB := XbpListBox():new():create( ::oParent, ::oOwner, ::aPos, ::aSize, ::aPresParams, ::lVisible )
::oWidget := QComboBox( ::pParent )
- ::oWidget:setModel( QAbstractItemModel():from( ::xbpListBox:model() ) )
+ ::oWidget:setModel(::xbpListBox:model() )
::oWidget:setView( ::xbpListBox:oWidget )
::oWidget:setLineEdit( ::xbpSLE:oWidget )
::oWidget:setEditable( ::xbpSLE:editable )
diff --git a/harbour/contrib/hbxbp/xbpdialog.prg b/harbour/contrib/hbxbp/xbpdialog.prg
index b0c36991b8..bd6ebe7f1e 100644
--- a/harbour/contrib/hbxbp/xbpdialog.prg
+++ b/harbour/contrib/hbxbp/xbpdialog.prg
@@ -208,7 +208,7 @@ METHOD XbpDialog:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
ENDIF
/* Install Event Loop per Dialog Basis */
- ::oEventLoop := QEventLoop( ::pWidget )
+ ::oEventLoop := QEventLoop( ::oWidget )
hbxbp_SetEventLoop( ::oEventLoop )
/* Instal Event Filter */
@@ -244,7 +244,7 @@ METHOD XbpDialog:destroy()
hbxbp_SetEventLoop( NIL )
::oEventLoop:exit( 0 )
- ::oEventLoop:pPtr := NIL
+ ::oEventLoop := NIL
::oMenu := NIL
IF ::isViaQtObject
diff --git a/harbour/contrib/hbxbp/xbpfiledialog.prg b/harbour/contrib/hbxbp/xbpfiledialog.prg
index 067ef2774e..fbea99a8bc 100644
--- a/harbour/contrib/hbxbp/xbpfiledialog.prg
+++ b/harbour/contrib/hbxbp/xbpfiledialog.prg
@@ -276,7 +276,7 @@ METHOD XbpFileDialog:extractFileNames( lAllowMultiple )
DEFAULT lAllowMultiple TO .F.
- oFiles := QStringList():configure( ::oWidget:selectedFiles() )
+ oFiles := ::oWidget:selectedFiles()
FOR i := 1 TO oFiles:size()
aadd( f_, oFiles:at( i-1 ) )
NEXT
diff --git a/harbour/contrib/hbxbp/xbpfontdialog.prg b/harbour/contrib/hbxbp/xbpfontdialog.prg
index 8eeb1be397..5883266198 100644
--- a/harbour/contrib/hbxbp/xbpfontdialog.prg
+++ b/harbour/contrib/hbxbp/xbpfontdialog.prg
@@ -319,7 +319,7 @@ METHOD XbpFontDialog:XbpFontObject()
LOCAL oXbp
::oFont := QFont()
- ::oFont:pPtr := ::oWidget:currentFont()
+ ::oFont := ::oWidget:currentFont()
oXbp := XbpFont():new()
@@ -496,8 +496,8 @@ METHOD XbpFont:configure( cFontName )
METHOD XbpFont:destroy()
- ::oFontInfo:pPtr := NIL
- ::oWidget:pPtr := 0
+ ::oFontInfo := NIL
+ ::oWidget := NIL
RETURN NIL
@@ -505,8 +505,8 @@ METHOD XbpFont:destroy()
METHOD XbpFont:_destroy()
- ::oFontInfo:pPtr := NIL
- ::oWidget:pPtr := 0
+ ::oFontInfo := NIL
+ ::oWidget := NIL
RETURN NIL
diff --git a/harbour/contrib/hbxbp/xbphtmlviewer.prg b/harbour/contrib/hbxbp/xbphtmlviewer.prg
index 42e9c210e1..65f07244b0 100644
--- a/harbour/contrib/hbxbp/xbphtmlviewer.prg
+++ b/harbour/contrib/hbxbp/xbphtmlviewer.prg
@@ -187,8 +187,7 @@ METHOD XbpHTMLViewer:destroy()
::oWidget:stop()
::disconnect()
IF !empty( ::oURL )
- ::oURL:pPtr := NIL
- ::oURL := NIL
+ ::oURL := NIL
ENDIF
::sl_beforeNavigate := NIL
::sl_navigateComplete := NIL
diff --git a/harbour/contrib/hbxbp/xbplistbox.prg b/harbour/contrib/hbxbp/xbplistbox.prg
index 71a23c9cf3..915265f070 100644
--- a/harbour/contrib/hbxbp/xbplistbox.prg
+++ b/harbour/contrib/hbxbp/xbplistbox.prg
@@ -234,8 +234,7 @@ METHOD XbpListBox:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams,
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QListView()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := pQtObject
ENDIF
RETURN Self
@@ -328,25 +327,12 @@ METHOD XbpListBox:configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible
METHOD XbpListBox:destroy()
::clear()
-
::xbpWindow:destroy()
RETURN NIL
/*----------------------------------------------------------------------*/
-METHOD XbpListBox:addItem( cItem )
- LOCAL qItm := QListWidgetItem()
-
- qItm:setText( cItem )
- //::oWidget:addItem_1( qItm )
- ::oWidget:addItem( qItm )
- aadd( ::aItems, qItm )
-
- RETURN len( ::aItems )
-
-/*----------------------------------------------------------------------*/
-
METHOD XbpListBox:clear()
LOCAL qItm
@@ -356,14 +342,26 @@ METHOD XbpListBox:clear()
qItm := NIL
NEXT
::aItems := {}
- ::oWidget:clear()
-
+ IF ::oWidget:isValidObject()
+ ::oWidget:clear()
+ ENDIF
::connectAll()
RETURN .t.
/*----------------------------------------------------------------------*/
+METHOD XbpListBox:addItem( cItem )
+ LOCAL qItm := QListWidgetItem()
+
+ qItm:setText( cItem )
+ ::oWidget:addItem( qItm )
+ aadd( ::aItems, qItm )
+
+ RETURN len( ::aItems )
+
+/*----------------------------------------------------------------------*/
+
METHOD XbpListBox:delItem( nIndex )
IF hb_isNumeric( nIndex ) .AND. nIndex > 0 .AND. nIndex <= len( ::aItems )
diff --git a/harbour/contrib/hbxbp/xbpmenubar.prg b/harbour/contrib/hbxbp/xbpmenubar.prg
index c3386e5038..e736732436 100644
--- a/harbour/contrib/hbxbp/xbpmenubar.prg
+++ b/harbour/contrib/hbxbp/xbpmenubar.prg
@@ -201,7 +201,7 @@ METHOD xbpMenuBar:hbCreateFromQtPtr( oParent, aPresParams, lVisible, pQtObject )
IF hb_isPointer( pQtObject )
::oWidget := QMenuBar()
- ::oWidget:pPtr := pQtObject
+ ::oWidget:pPtr := hbqt_ptr( pQtObject )
ENDIF
@@ -254,7 +254,6 @@ METHOD xbpMenuBar:delItem( aItem )
::disConnect( aItem[ 5 ], "hovered()" )
ENDIF
::oWidget:removeAction( aItem[ 5 ] )
- aItem[ 5 ]:pPtr := NIL
aItem[ 5 ] := NIL
ENDIF
@@ -279,9 +278,9 @@ METHOD xbpMenuBar:placeItem( xCaption, bAction, nStyle, nAttrb, nMode, nPos )
DO CASE
CASE cType == "U" .OR. empty( xCaption ) .OR. nStyle == XBPMENUBAR_MIS_SEPARATOR
IF lInsert
- oAction := QAction():configure( ::oWidget:insertSeparator() )
+ oAction := ::oWidget:insertSeparator()
ELSE
- QAction():configure( ::oWidget:addSeparator() )
+ ::oWidget:addSeparator()
ENDIF
aItem := { QMF_SEPARATOR, 0, 0, NIL, oAction }
diff --git a/harbour/contrib/hbxbp/xbpmle.prg b/harbour/contrib/hbxbp/xbpmle.prg
index b9a0bee03a..02081b85ef 100644
--- a/harbour/contrib/hbxbp/xbpmle.prg
+++ b/harbour/contrib/hbxbp/xbpmle.prg
@@ -191,9 +191,7 @@ METHOD XbpMLE:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVis
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QPlainTextEdit()
- ::oWidget:pPtr := pQtObject
-
+ ::oWidget := QPlainTextEdit():from( pQtObject )
ENDIF
RETURN Self
@@ -221,7 +219,7 @@ METHOD XbpMLE:clear()
METHOD XbpMLE:copyMarked()
LOCAL qCursor, cText
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
cText := qCursor:selectedText()
::oWidget:copy()
@@ -233,7 +231,7 @@ METHOD XbpMLE:copyMarked()
METHOD XbpMLE:cutMarked()
LOCAL qCursor, cText
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
cText := qCursor:selectedText()
::oWidget:cut()
@@ -245,7 +243,7 @@ METHOD XbpMLE:cutMarked()
METHOD XbpMLE:deleteMarked()
LOCAL qCursor, cText
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
cText := qCursor:selectedText()
qCursor:removeSelectedText()
::oWidget:setTextCursor( qCursor )
@@ -257,7 +255,7 @@ METHOD XbpMLE:deleteMarked()
METHOD XbpMLE:delete( nPos, nChars )
LOCAL qCursor, cText
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
qCursor:setPosition( nPos )
qCursor:movePosition( QTextCursor_Right, QTextCursor_KeepAnchor, nChars )
cText := qCursor:selectedText()
@@ -287,7 +285,7 @@ METHOD XbpMLE:queryFirstChar()
METHOD XbpMLE:queryMarked()
LOCAL qCursor, a_
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
IF qCursor:hasSelection()
a_:= { qCursor:selectionStart(), qCursor:selectionEnd() }
ELSE
@@ -310,7 +308,7 @@ METHOD XbpMLE:setMarked( aStartEnd )
LOCAL qCursor, cText
IF hb_isArray( aStartEnd ) .AND. len( aStartEnd ) == 2 .AND. aStartEnd[ 1 ] >= 0 .AND. aStartEnd[ 2 ] > aStartEnd[ 1 ]
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
qCursor:setPosition( aStartEnd[ 1 ] )
qCursor:movePosition( QTextCursor_Right, QTextCursor_KeepAnchor, aStartEnd[ 2 ] - aStartEnd[ 1 ] )
cText := qCursor:selectedText()
@@ -328,7 +326,7 @@ METHOD XbpMLE:insert( nPos, cString )
LOCAL qCursor
IF hb_isChar( cString )
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
IF hb_isNumeric( nPos ) .AND. nPos >= 0
qCursor:setPosition( nPos )
ENDIF
@@ -344,7 +342,7 @@ METHOD XbpMLE:insert( nPos, cString )
METHOD XbpMLE:charFromLine( nLine )
LOCAL qCursor, nPos
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
IF hb_isNumeric( nLine )
qCursor:movePosition( QTextCursor_Start )
qCursor:movePosition( QTextCursor_Down, QTextCursor_MoveAnchor, nLine )
@@ -361,7 +359,7 @@ METHOD XbpMLE:charFromLine( nLine )
METHOD XbpMLE:lineFromChar( nPos )
LOCAL qCursor, nLine
- qCursor := QTextCursor():from( ::oWidget:textCursor() )
+ qCursor := ::oWidget:textCursor()
IF hb_isNumeric( nPos )
qCursor:setPosition( nPos )
nLine := qCursor:blockNumber()
@@ -374,7 +372,7 @@ METHOD XbpMLE:lineFromChar( nPos )
/*----------------------------------------------------------------------*/
METHOD XbpMLE:pos()
- RETURN QTextCursor():from( ::oWidget:textCursor() ):position()
+ RETURN ::oWidget:textCursor():position()
/*----------------------------------------------------------------------*/
diff --git a/harbour/contrib/hbxbp/xbpprintdialog.prg b/harbour/contrib/hbxbp/xbpprintdialog.prg
index abc92231e9..a467a9c3cf 100644
--- a/harbour/contrib/hbxbp/xbpprintdialog.prg
+++ b/harbour/contrib/hbxbp/xbpprintdialog.prg
@@ -125,7 +125,6 @@ METHOD XbpPrintDialog:destroy()
::aConnections := {}
ENDIF
- ::oWidget:pPtr := NIL
::oWidget := NIL
RETURN nil
@@ -167,9 +166,10 @@ METHOD XbpPrintDialog:display( oXbpPrinter )
oXbpPrinter := XbpPrinter():new()
oXbpPrinter:oWidget := QPrinter()
ENDIF
- oXbpPrinter:oWidget:pPtr := ::pPrinter
+// oXbpPrinter:oWidget:pPtr := ::pPrinter
+ oXbpPrinter:oWidget := QPrinter( ::pPrinter )
oXbpPrinter:oPrintEngine := QPrintEngine()
- oXbpPrinter:oPrintEngine:pPtr := oXbpPrinter:oWidget:printEngine()
+ oXbpPrinter:oPrintEngine := oXbpPrinter:oWidget:printEngine()
oXbpPrinter:setDevName( oXbpPrinter:oWidget:printerName() )
diff --git a/harbour/contrib/hbxbp/xbppushbutton.prg b/harbour/contrib/hbxbp/xbppushbutton.prg
index 1b0d30f5cb..7e37a80631 100644
--- a/harbour/contrib/hbxbp/xbppushbutton.prg
+++ b/harbour/contrib/hbxbp/xbppushbutton.prg
@@ -146,8 +146,7 @@ METHOD XbpPushButton:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParam
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QPushButton()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := QPushButton():from( pQtObject )
ELSE
::oWidget := QPushButton( ::oParent:oWidget )
diff --git a/harbour/contrib/hbxbp/xbpradiobutton.prg b/harbour/contrib/hbxbp/xbpradiobutton.prg
index e645d5f2f8..727a921913 100644
--- a/harbour/contrib/hbxbp/xbpradiobutton.prg
+++ b/harbour/contrib/hbxbp/xbpradiobutton.prg
@@ -132,8 +132,7 @@ METHOD XbpRadioButton:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresPara
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QRadioButton()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := QRadioButton():from( pQtObject )
ENDIF
RETURN Self
diff --git a/harbour/contrib/hbxbp/xbprtf.prg b/harbour/contrib/hbxbp/xbprtf.prg
index b3955349fe..579dfb2601 100644
--- a/harbour/contrib/hbxbp/xbprtf.prg
+++ b/harbour/contrib/hbxbp/xbprtf.prg
@@ -185,9 +185,9 @@ METHOD XbpRtf:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
ENDIF
::oParent:AddChild( SELF )
- ::oTextDocument:pPtr := ::oWidget:document()
- ::oTextCursor:pPtr := ::oWidget:textCursor()
- ::oTextCharFormat:pPtr := ::oTextCursor:charFormat()
+ ::oTextDocument := ::oWidget:document()
+ ::oTextCursor := ::oWidget:textCursor()
+ ::oTextCharFormat := ::oTextCursor:charFormat()
::postCreate()
RETURN Self
@@ -200,7 +200,7 @@ METHOD XbpRtf:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVis
IF hb_isPointer( pQtObject )
::oWidget := QTextEdit()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := pQtObject
ENDIF
@@ -217,7 +217,7 @@ METHOD XbpRtf:execSlot( cSlot, p )
CASE cSlot == "currentCharFormatChanged(QTextCharFormat)"
CASE cSlot == "cursorPositionChanged()"
- ::oTextCursor:configure( ::oWidget:textCursor() )
+ ::oTextCursor := ::oWidget:textCursor()
::oCurCursor := ::oTextCursor
CASE cSlot == "redoAvailable(bool)"
CASE cSlot == "undoAvailable(bool)"
@@ -225,7 +225,7 @@ METHOD XbpRtf:execSlot( cSlot, p )
::changed := .t. /* .f. only at save */
::change()
CASE cSlot == "selectionChanged()" /* Xbase++ Implements */
- ::oTextCursor:configure( ::oWidget:textCursor() )
+ ::oTextCursor := ::oWidget:textCursor()
::oCurCursor := ::oTextCursor
::selChange()
ENDCASE
@@ -305,8 +305,8 @@ METHOD XbpRtf:find( cSearchString, nStart, nEnd, nOptions )
HB_SYMBOL_UNUSED( nOptions )
IF hb_isChar( cSearchString )
- ::oTextDocument:pPtr := ::oWidget:document()
- ::oTextCursor:pPtr := ::oTextDocument:find_2( cSearchString )
+ ::oTextDocument := ::oWidget:document()
+ ::oTextCursor := ::oTextDocument:find( cSearchString )
::oCurCursor := ::oTextCursor
nPos := ::oTextCursor:position()
ENDIF
@@ -426,7 +426,7 @@ METHOD XbpRtf:selAlignment( ... ) // XBPRTF_ALIGN_LEFT
LOCAL oTBFormat
IF len( aP ) >= 1 .and. hb_isNumeric( aP[ 1 ] )
- oTBFormat := QTextBlockFormat():configure( ::oCurCursor:blockFormat() )
+ oTBFormat := ::oCurCursor:blockFormat()
xRet := oTBFormat:alignment()
oTBFormat:setAlignment( hbxbp_ConvertAFactFromXBP( "RTFSELALIGNMENT", aP[ 1 ] ) )
::oCurCursor:setBlockFormat( oTBFormat )
@@ -440,7 +440,7 @@ METHOD XbpRtf:selBold( ... ) // .F.
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isLogical( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
::oTextCharFormat:setFontWeight( QFont_Bold )
::oCurCursor:setCharFormat( ::oTextCharFormat )
@@ -468,7 +468,7 @@ METHOD XbpRtf:selCharOffset( ... ) // 0
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isNumeric( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
nAlign := IF( aP[ 1 ] < 0, -1, IF( aP[ 1 ] > 0, 1, 0 ) )
xRet := ::oTextCharFormat:verticalAlignment()
@@ -485,8 +485,8 @@ METHOD XbpRtf:selColor( ... )
LOCAL oBrush, nColor, oColor
LOCAL aP := hb_aParams()
- IF len( aP ) >= 1 .and. hb_isNumeric( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ IF len( aP ) >= 1 .AND. hb_isNumeric( aP[ 1 ] )
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
xRet := ::oTextCharFormat:foreground()
nColor := hbxbp_ConvertAFactFromXBP( "COLOR", aP[ 1 ] )
@@ -506,7 +506,7 @@ METHOD XbpRtf:selFont( ... ) // ""
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isObject( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
::oTextCharFormat:setFont( aP[ 1 ]:oWidget )
::oCurCursor:setCharFormat( ::oTextCharFormat )
@@ -521,7 +521,7 @@ METHOD XbpRtf:selFontName( ... ) // ""
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isChar( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
xRet := ::oTextCharFormat:fontFamily()
::oTextCharFormat:setFontFamily( aP[ 1 ] )
@@ -536,7 +536,7 @@ METHOD XbpRtf:selFontSize( ... ) // 0
LOCAL xRet := 0
LOCAL aP := hb_aParams()
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
xRet := ::oTextCharFormat:fontPointSize()
IF len( aP ) >= 1 .and. hb_isNumeric( aP[ 1 ] )
@@ -575,7 +575,7 @@ METHOD XbpRtf:selItalic( ... ) // .F.
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isLogical( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
::oTextCharFormat:setFontItalic( aP[ 1 ] )
::oCurCursor:setCharFormat( ::oTextCharFormat )
@@ -612,7 +612,7 @@ METHOD XbpRtf:selStart( ... ) // 0
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isNumeric( aP[ 1 ] )
- ::oTextCursor:pPtr := ::oWidget:textCursor()
+ ::oTextCursor := ::oWidget:textCursor()
::oCurCursor := ::oTextCursor
xRet := ::oCurCursor:position()
::oCurCursor:setPosition( aP[ 1 ] )
@@ -626,7 +626,7 @@ METHOD XbpRtf:selStrikeThru( ... ) // .F.
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isLogical( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
::oTextCharFormat:setFontStrikeOut( aP[ 1 ] )
::oCurCursor:setCharFormat( ::oTextCharFormat )
@@ -678,7 +678,7 @@ METHOD XbpRtf:selUnderline( ... ) // .F.
LOCAL aP := hb_aParams()
IF len( aP ) >= 1 .and. hb_isLogical( aP[ 1 ] )
- ::oTextCharFormat:pPtr := ::oCurCursor:charFormat()
+ ::oTextCharFormat := ::oCurCursor:charFormat()
IF ::oTextCharFormat:isValid()
::oTextCharFormat:setFontUnderline( aP[ 1 ] )
::oCurCursor:setCharFormat( ::oTextCharFormat )
@@ -727,9 +727,6 @@ METHOD XbpRtf:insertText( cText )
METHOD XbpRtf:insertImage( cImageFilename )
- //::oTextCursor:configure( ::oWidget:textCursor() )
- //::oCurCursor := ::oTextCursor
-
::oCurCursor:insertImage( cImageFilename )
RETURN Self
diff --git a/harbour/contrib/hbxbp/xbpscrollbar.prg b/harbour/contrib/hbxbp/xbpscrollbar.prg
index 5d1ec2e108..1633eb0ed2 100644
--- a/harbour/contrib/hbxbp/xbpscrollbar.prg
+++ b/harbour/contrib/hbxbp/xbpscrollbar.prg
@@ -137,9 +137,7 @@ METHOD XbpScrollBar:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QScrollBar()
- ::oWidget:pPtr := pQtObject
-
+ ::oWidget := QScrollBar():from( pQtObject )
ENDIF
RETURN Self
diff --git a/harbour/contrib/hbxbp/xbpsle.prg b/harbour/contrib/hbxbp/xbpsle.prg
index 9fadaf3b56..6e8d235271 100644
--- a/harbour/contrib/hbxbp/xbpsle.prg
+++ b/harbour/contrib/hbxbp/xbpsle.prg
@@ -132,8 +132,7 @@ METHOD XbpSLE:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, lVis
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QLineEdit()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := QLineEdit():from( pQtObject )
ENDIF
RETURN Self
diff --git a/harbour/contrib/hbxbp/xbpspinbutton.prg b/harbour/contrib/hbxbp/xbpspinbutton.prg
index 57cd103e46..7349d7b145 100644
--- a/harbour/contrib/hbxbp/xbpspinbutton.prg
+++ b/harbour/contrib/hbxbp/xbpspinbutton.prg
@@ -173,8 +173,7 @@ METHOD XbpSpinButton:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParam
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QSpinBox()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := QSpinBox():from( pQtObject )
ENDIF
RETURN Self
diff --git a/harbour/contrib/hbxbp/xbpstatic.prg b/harbour/contrib/hbxbp/xbpstatic.prg
index 622f19e95c..10bc490527 100644
--- a/harbour/contrib/hbxbp/xbpstatic.prg
+++ b/harbour/contrib/hbxbp/xbpstatic.prg
@@ -253,65 +253,62 @@ METHOD XbpStatic:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams, l
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- DO CASE
- CASE ::type == XBPSTATIC_TYPE_TEXT
- ::oWidget := QLabel()
+ DO CASE
+ CASE ::type == XBPSTATIC_TYPE_TEXT
+ ::oWidget := QLabel():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_GROUPBOX
- ::oWidget := QGroupBox()
+ CASE ::type == XBPSTATIC_TYPE_GROUPBOX
+ ::oWidget := QGroupBox():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_RAISEDBOX
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_RAISEDBOX
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_RECESSEDBOX
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_RECESSEDBOX
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_RAISEDRECT
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_RAISEDRECT
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_RECESSEDRECT
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_RECESSEDRECT
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_FGNDFRAME // rectangle in foreground color, not filled
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_FGNDFRAME // rectangle in foreground color, not filled
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_BGNDFRAME
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_BGNDFRAME
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_FGNDRECT
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_FGNDRECT
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_BGNDRECT
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_BGNDRECT
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_HALFTONERECT
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_HALFTONERECT
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_HALFTONEFRAME
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_HALFTONEFRAME
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_RAISEDLINE
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_RAISEDLINE
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_RECESSEDLINE
- ::oWidget := QFrame()
+ CASE ::type == XBPSTATIC_TYPE_RECESSEDLINE
+ ::oWidget := QFrame():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_ICON
- ::oWidget := QLabel()
+ CASE ::type == XBPSTATIC_TYPE_ICON
+ ::oWidget := QLabel():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_SYSICON
- ::oWidget := QLabel()
+ CASE ::type == XBPSTATIC_TYPE_SYSICON
+ ::oWidget := QLabel():from( pQtObject )
- CASE ::type == XBPSTATIC_TYPE_BITMAP
- ::oWidget := QLabel()
+ CASE ::type == XBPSTATIC_TYPE_BITMAP
+ ::oWidget := QLabel():from( pQtObject )
- OTHERWISE
- ::oWidget := QFrame()
-
- ENDCASE
-
- ::oWidget:pPtr := pQtObject
+ OTHERWISE
+ ::oWidget := QFrame():from( pQtObject )
+ ENDCASE
ENDIF
RETURN Self
@@ -345,7 +342,7 @@ METHOD XbpStatic:configure( oParent, oOwner, aPos, aSize, aPresParams, lVisible
/*----------------------------------------------------------------------*/
METHOD XbpStatic:setCaption( xCaption, cDll )
- LOCAL oStyle, pPixmap, oIcon, oPixmap
+ LOCAL oStyle, oIcon, oPixmap
HB_SYMBOL_UNUSED( cDll )
@@ -379,38 +376,34 @@ METHOD XbpStatic:setCaption( xCaption, cDll )
::oWidget:setPixmap( QPixmap( ::caption ):scaled( ::aSize[ 1 ], ::aSize[ 2 ] ) )
CASE ::type == XBPSTATIC_TYPE_SYSICON
- oPixmap := QPixmap()
- oIcon := QIcon()
- oStyle := QStyle()
- oStyle:pPtr := QApplication():style()
+ oStyle := QApplication():style()
DO CASE
CASE ::caption == XBPSTATIC_SYSICON_ICONINFORMATION
- oIcon:pPtr := oStyle:standardIcon( QStyle_SP_MessageBoxInformation )
+ oIcon := oStyle:standardIcon( QStyle_SP_MessageBoxInformation )
CASE ::caption == XBPSTATIC_SYSICON_ICONQUESTION
- oIcon:pPtr := oStyle:standardIcon( QStyle_SP_MessageBoxQuestion )
+ oIcon := oStyle:standardIcon( QStyle_SP_MessageBoxQuestion )
CASE ::caption == XBPSTATIC_SYSICON_ICONERROR
- oIcon:pPtr := oStyle:standardIcon( QStyle_SP_MessageBoxCritical )
+ oIcon := oStyle:standardIcon( QStyle_SP_MessageBoxCritical )
CASE ::caption == XBPSTATIC_SYSICON_ICONWARNING
- oIcon:pPtr := oStyle:standardIcon( QStyle_SP_MessageBoxWarning )
+ oIcon := oStyle:standardIcon( QStyle_SP_MessageBoxWarning )
OTHERWISE
/* It is a Harbour Extension - you have 60+ icons to display
* Check hbqtgui.ch : #define QStyle_SP_* constants
*/
- oIcon:pPtr := oStyle:standardIcon( ::caption )
+ oIcon := oStyle:standardIcon( ::caption )
ENDCASE
/* Harbour can also implement if icon be displayed scaled or proportionate
*/
- oPixmap:pPtr := oIcon:pixmap( ::aSize[ 1 ], ::aSize[ 2 ] )
- pPixmap := oPixmap:scaled( ::aSize[ 1 ], ::aSize[ 2 ] )
+ oPixmap := oIcon:pixmap( ::aSize[ 1 ], ::aSize[ 2 ] ):scaled( ::aSize[ 1 ], ::aSize[ 2 ] )
- ::oWidget:setPixmap( pPixmap )
+ ::oWidget:setPixmap( oPixmap )
ENDCASE
ENDIF
diff --git a/harbour/contrib/hbxbp/xbpstatusbar.prg b/harbour/contrib/hbxbp/xbpstatusbar.prg
index b24eba72ea..10a20a4259 100644
--- a/harbour/contrib/hbxbp/xbpstatusbar.prg
+++ b/harbour/contrib/hbxbp/xbpstatusbar.prg
@@ -144,9 +144,7 @@ METHOD XbpStatusBar:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QStatusBar()
- ::oWidget:pPtr := pQtObject
-
+ ::oWidget := QStatusBar():from( pQtObject )
ENDIF
RETURN Self
@@ -178,7 +176,6 @@ METHOD XbpStatusBar:destroy()
FOR EACH obj IN ::aItems
::oWidget:removeWidget( obj )
obj:oParent := NIL
- obj:oWidget:pPtr := NIL
obj := NIL
NEXT
::aItems := {}
diff --git a/harbour/contrib/hbxbp/xbptabpage.prg b/harbour/contrib/hbxbp/xbptabpage.prg
index ad107b0b9d..a2f1de9f0f 100644
--- a/harbour/contrib/hbxbp/xbptabpage.prg
+++ b/harbour/contrib/hbxbp/xbptabpage.prg
@@ -139,7 +139,7 @@ METHOD XbpTabPage:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oWidget:setContextMenuPolicy( Qt_CustomContextMenu )
::oWidget:setObjectName( "Tab_Page" )
- oPar:oWidget:addTab( ::pWidget, ::caption )
+ oPar:oWidget:addTab( ::oWidget, ::caption )
::setPosAndSize()
IF ::visible
@@ -157,8 +157,7 @@ METHOD XbpTabPage:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams,
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QWidget()
- ::oWidget:pPtr := pQtObject
+ ::oWidget := QWidget():from( pQtObject )
ENDIF
@@ -319,9 +318,10 @@ METHOD XbpTabWidget:execSlot( cSlot, p )
LOCAL iIndex
IF hb_isPointer( p )
- qPoint := QPoint():from( ::oWidget:mapToGlobal( p ) )
+ qPoint := ::oWidget:mapToGlobal( p )
qApp := QApplication()
- pWidget := QWidget():from( qApp:widgetAt( qPoint ) )
+ pWidget := qApp:widgetAt( qPoint )
+
iIndex := ascan( ::aChildren, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, pWidget:pPtr ) } ) - 1
HB_TRACE( HB_TR_DEBUG, "iIndex", iIndex, pWidget:objectName() )
ELSE
@@ -331,7 +331,7 @@ HB_TRACE( HB_TR_DEBUG, "iIndex", iIndex, pWidget:objectName() )
IF !empty( ::aChildren ) .and. iIndex >= 0 .and. iIndex < len( ::aChildren )
qTab := ::oWidget:widget( iIndex )
- IF ( nIndex := ascan( ::aChildren, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, qTab ) } ) ) > 0
+ IF ( nIndex := ascan( ::aChildren, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, qTab:pPtr ) } ) ) > 0
oTab := ::aChildren[ nIndex ]
DO CASE
diff --git a/harbour/contrib/hbxbp/xbptoolbar.prg b/harbour/contrib/hbxbp/xbptoolbar.prg
index ad1d433ef2..d821b70db6 100644
--- a/harbour/contrib/hbxbp/xbptoolbar.prg
+++ b/harbour/contrib/hbxbp/xbptoolbar.prg
@@ -199,7 +199,7 @@ METHOD XbpToolbar:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams,
IF hb_isPointer( pQtObject )
::oWidget := QToolBar()
- ::oWidget:pPtr := pQtObject
+ ::oWidget:pPtr := hbqt_ptr( pQtObject )
ENDIF
@@ -217,7 +217,6 @@ METHOD XbpToolbar:destroy()
::disConnect( oBtn:oAction, "triggered(bool)" )
- oBtn:oAction:pPtr := NIL
oBtn:oAction := NIL
ELSE
aItem := NIL
diff --git a/harbour/contrib/hbxbp/xbptreeview.prg b/harbour/contrib/hbxbp/xbptreeview.prg
index ec22a34010..4ee7fb86e5 100644
--- a/harbour/contrib/hbxbp/xbptreeview.prg
+++ b/harbour/contrib/hbxbp/xbptreeview.prg
@@ -131,7 +131,6 @@ METHOD XbpTreeView:new( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
/*----------------------------------------------------------------------*/
METHOD XbpTreeView:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
- LOCAL oW
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
@@ -141,7 +140,6 @@ METHOD XbpTreeView:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oWidget:setHeaderHidden( .t. )
::oWidget:setContextMenuPolicy( Qt_CustomContextMenu )
-
#if 0
IF ::alwaysShowSelection
::style += TVS_SHOWSELALWAYS
@@ -158,9 +156,7 @@ METHOD XbpTreeView:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
::oRootItem:hTree := ::oWidget
::oRootItem:oXbpTree := self
- oW := QTreeWidgetItem()
- oW:pPtr := ::oWidget:invisibleRootItem()
- ::oRootItem:oWidget := oW
+ ::oRootItem:oWidget := ::oWidget:invisibleRootItem()
* ::oWidget:connect( "currentItemChanged(QTWItem)" , {|p1| ::execSlot( "currentItemChanged(QTWItem)", p1 ) } )
* ::oWidget:connect( "itemActivated(QTWItem)" , {|p1| ::execSlot( "itemActivated(QTWItem)" , p1 ) } )
@@ -189,9 +185,7 @@ METHOD XbpTreeView:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams,
::xbpWindow:create( oParent, oOwner, aPos, aSize, aPresParams, lVisible )
IF hb_isPointer( pQtObject )
- ::oWidget := QTreeWidget()
- ::oWidget:pPtr := pQtObject
-
+ ::oWidget := pQtObject
ENDIF
RETURN Self
@@ -199,7 +193,7 @@ METHOD XbpTreeView:hbCreateFromQtPtr( oParent, oOwner, aPos, aSize, aPresParams,
/*----------------------------------------------------------------------*/
METHOD XbpTreeView:execSlot( cSlot, p )
- LOCAL oItem, n, qPt, pNode
+ LOCAL n, qPt, qItem, oItem, qPos
IF hb_isPointer( p )
IF ( n := ascan( ::aItems, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, p ) } ) ) > 0
@@ -219,13 +213,12 @@ METHOD XbpTreeView:execSlot( cSlot, p )
CASE cSlot == "itemEntered(QTWItem)"
::oWidget:setToolTip( iif( empty( oItem:tooltipText ), oItem:caption, oItem:tooltipText ) )
CASE cSlot == "customContextMenuRequested(QPoint)"
- pNode := ::oWidget:itemAt( p )
- IF !hbqt_isEmptyQtPointer( pNode )
- qPt := QPoint():from( ::oWidget:mapToGlobal( p ) )
- IF ( n := ascan( ::aItems, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, pNode ) } ) ) > 0
- oItem := ::aItems[ n ]
- IF hb_isBlock( ::hb_contextMenu )
- eval( ::hb_contextMenu, { qPt:x(), qPt:y() }, NIL, oItem )
+ IF hb_isBlock( ::hb_contextMenu )
+ qPos := QPoint( p )
+ IF ( qItem := ::oWidget:itemAt( qPos ) ):isValidObject()
+ IF ( n := ascan( ::aItems, {|o| hbqt_IsEqualGcQtPointer( o:oWidget:pPtr, qItem:pPtr ) } ) ) > 0
+ qPt := ::oWidget:mapToGlobal( p )
+ eval( ::hb_contextMenu, { qPt:x(), qPt:y() }, NIL, ::aItems[ n ] )
ENDIF
ENDIF
ENDIF
@@ -412,7 +405,8 @@ METHOD XbpTreeViewItem:addItem( xItem, xNormalImage, xMarkedImage, xExpandedImag
oItem:xValue := xValue
ENDIF
- ::oWidget:addChild( oItem:oWidget:pPtr )
+// ::oWidget:addChild( oItem:oWidget:pPtr )
+ ::oWidget:addChild( oItem:oWidget )
aadd( ::aChilds, oItem )
aadd( oItem:aChilds, oItem )
@@ -447,11 +441,9 @@ METHOD XbpTreeViewItem:destroy()
LOCAL i
FOR i := 1 TO len( ::aChilds )
- ::aChilds[ i ]:oWidget:pPtr := NIL
+ ::aChilds[ i ]:oWidget := NIL
NEXT
-
- //::oItem:pPtr := NIL
- ::oWidget:pPtr := NIL
+ ::oWidget := NIL
RETURN NIL
@@ -486,7 +478,7 @@ METHOD XbpTreeViewItem:delItem( oItem )
IF ( n := ascan( ::aChilds, {|o| o == oItem } ) ) > 0
::oWidget:removeChild( ::aChilds[ n ]:oWidget:pPtr )
- ::aChilds[ n ]:oWidget:pPtr := NIL
+ ::aChilds[ n ]:oWidget := 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 3afd816653..1822493a46 100644
--- a/harbour/contrib/hbxbp/xbpwindow.prg
+++ b/harbour/contrib/hbxbp/xbpwindow.prg
@@ -501,13 +501,13 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent )
SWITCH ( nEvent )
CASE QEvent_MouseMove // :motion()
- oEvent := QMouseEvent():configure( pEvent )
+ oEvent := QMouseEvent():from( pEvent )
SetAppEvent( xbeM_Motion, { oEvent:x(), oEvent:y() }, NIL, self )
lRet := .f.
EXIT
CASE QEvent_MouseButtonPress // :lbClick() :mbClick() :rbClick()
// :lbDown() :mbDown() :rbDown()
- oEvent := QMouseEvent():configure( pEvent )
+ oEvent := QMouseEvent():from( pEvent )
DO CASE
CASE oEvent:button() == Qt_LeftButton
SetAppEvent( xbeM_LbDown, { oEvent:x(), oEvent:y() }, NIL, self )
@@ -519,7 +519,7 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent )
lRet := .f.
EXIT
CASE QEvent_MouseButtonRelease // :mbUp() :rbUp() :lbUp()
- oEvent := QMouseEvent():configure( pEvent )
+ oEvent := QMouseEvent():from( pEvent )
DO CASE
CASE oEvent:button() == Qt_LeftButton
SetAppEvent( xbeM_LbUp, { oEvent:x(), oEvent:y() }, NIL, self )
@@ -531,7 +531,7 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent )
lRet := .f.
EXIT
CASE QEvent_MouseButtonDblClick // :lbDblClick() :mbDblClick() :rbDblClick()
- oEvent := QMouseEvent():configure( pEvent )
+ oEvent := QMouseEvent():from( pEvent )
DO CASE
CASE oEvent:button() == Qt_LeftButton
SetAppEvent( xbeM_LbDblClick, { oEvent:x(), oEvent:y() }, NIL, self )
@@ -543,26 +543,26 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent )
lRet := .f.
EXIT
CASE QEvent_ContextMenu //
- oEvent := QContextMenuEvent():configure( pEvent )
+ oEvent := QContextMenuEvent():from( pEvent )
//SetAppEvent( xbeM_Context, { oEvent:globalX(), oEvent:globalY() }, NIL, self )
::hbContextMenu( { oEvent:globalX(), oEvent:globalY() } )
EXIT
CASE QEvent_Enter // :enter()
IF ( ::lTrack )
- oEvent := QMouseEvent():configure( pEvent )
+ oEvent := QMouseEvent():from( pEvent )
SetAppEvent( xbeM_Enter, { oEvent:x(), oEvent:y() }, NIL, self )
ENDIF
lRet := .f.
EXIT
CASE QEvent_Leave // :leave()
IF ( ::lTrack )
- oEvent := QMouseEvent():configure( pEvent )
+ oEvent := QMouseEvent():from( pEvent )
SetAppEvent( xbeM_Leave, { oEvent:x(), oEvent:y() }, NIL, self )
ENDIF
lRet := .f.
EXIT
CASE QEvent_Wheel // :wheel()
- oEvent := QWheelEvent():configure( pEvent )
+ oEvent := QWheelEvent():from( pEvent )
SetAppEvent( xbeM_Wheel, { oEvent:x(), oEvent:y() }, { oEvent:buttons(), oEvent:delta() }, self )
lRet := .f.
EXIT
@@ -575,41 +575,41 @@ METHOD XbpWindow:grabEvent( nEvent, pEvent )
lRet := .f.
EXIT
CASE QEvent_Paint // :paint()
- oEvent := QPaintEvent():configure( pEvent )
- oObj_N := QRect():configure( oEvent:rect() )
+ oEvent := QPaintEvent():from( pEvent )
+ oObj_N := oEvent:rect()
SetAppEvent( xbeP_Paint, { oObj_N:left(), oObj_N:top(), oObj_N:right(), oObj_N:bottom() }, NIL, Self )
lRet := .f.
EXIT
CASE QEvent_Move // :move()
- oEvent := QMoveEvent():configure( pEvent )
- oP0 := QPoint():configure( oEvent:oldPos() )
- oP1 := QPoint():configure( oEvent:pos() )
+ oEvent := QMoveEvent():from( pEvent )
+ oP0 := oEvent:oldPos()
+ oP1 := oEvent:pos()
SetAppEvent( xbeP_Move, { oP0:x(), oP0:y() }, { oP1:x(), oP1:y() }, Self )
lRet := .f.
EXIT
CASE QEvent_Resize // :resize()
- oEvent := QResizeEvent():configure( pEvent )
- oObj_O := QSize():configure( oEvent:oldSize() )
- oObj_N := QSize():configure( oEvent:size() )
+ oEvent := QResizeEvent():from( pEvent )
+ oObj_O := oEvent:oldSize()
+ oObj_N := oEvent:size()
SetAppEvent( xbeP_Resize, { oObj_O:width(), oObj_O:height() }, { oObj_N:width(), oObj_N:height() }, Self )
lRet := .f.
EXIT
CASE QEvent_DragEnter // :dragEnter()
- oEvent := QDragEnterEvent():configure( pEvent )
- oObj_O := QPoint():configure( oEvent:pos() )
+ oEvent := QDragEnterEvent():from( pEvent )
+ oObj_O := oEvent:pos()
SetAppEvent( xbeP_DragEnter, { oEvent:mouseButtons(), { oObj_O:x(), oObj_O:y() } }, /* oDragObj */, Self )
EXIT
CASE QEvent_DragLeave // :dragLeave()
SetAppEvent( xbeP_DragLeave, NIL, NIL, Self )
EXIT
CASE QEvent_DragMove // :dragMotion()
- oEvent := QDragEnterEvent():configure( pEvent )
- oObj_O := QPoint():configure( oEvent:pos() )
+ oEvent := QDragEnterEvent():from( pEvent )
+ oObj_O := oEvent:pos()
SetAppEvent( xbeP_DragMotion, { oEvent:mouseButtons(), { oObj_O:x(), oObj_O:y() } }, NIL, Self )
EXIT
CASE QEvent_Drop // :dragDrop()
- oEvent := QDragEnterEvent():configure( pEvent )
- oObj_O := QPoint():configure( oEvent:pos() )
+ oEvent := QDragEnterEvent():from( pEvent )
+ oObj_O := oEvent:pos()
SetAppEvent( xbeP_DragDrop, { oEvent:mouseButtons() , { oObj_O:x(), oObj_O:y() } }, /* oDragObj */, Self )
EXIT
CASE QEvent_WhatsThis // :helpRequest()
@@ -905,8 +905,7 @@ METHOD XbpWindow:setColorFG( nRGB )
IF hb_isNumeric( nRGB )
IF empty( ::oPalette )
- ::oPalette := QPalette()
- ::oPalette:pPtr := ::oWidget:palette()
+ ::oPalette := ::oWidget:palette()
ENDIF
DO CASE
|