I've just checked further and the fix is quite simple
and obvious, so I can make it.
The other comment is that maybe there is no need to
make any sort of hack to check for "Q" or "HB" in the
beginning of class name, but simply check whether
:pPtr member exists and retrieve it if it does. Low
level code check for required object pointer type
anyway, so there is no need to add these slow and
error-prone checks on the higher level.
Here is a non-optimal/pseudo version of this method:
(optimal could be done in C probably)
---
FUNCTION hbqt_ptr( xParam )
IF hb_isObject( xParam ) .AND. ;
__objHasMsg( xParam, "PPTR" ) // we need something which doesn't RTE on
missing msg and which check for variable.
RETURN xParam:pPtr
ENDIF
RETURN xParam
---
(I assumed XHB stuff is already removed from here)
Same thing could be rewritten in C probably, for
smoother/faster results.
Brgds,
Viktor
On 2009 Dec 17, at 17:11, Viktor Szakáts wrote:
> Hi Pritpal,
>
> I've checked and there is a problem with this commit.
>
> It hard-wires XBP functionality (which I've removed
> once already) to HBQT lib.
>
> We should avoid that for several obvious reasons.
> Can you fix it to not require this hack?
>
> Brgds,
> Viktor
>
> On 2009 Dec 17, at 12:04, [email protected] wrote:
>
>> Revision: 13275
>>
>> http://harbour-project.svn.sourceforge.net/harbour-project/?rev=13275&view=rev
>> Author: vouchcac
>> Date: 2009-12-17 11:04:37 +0000 (Thu, 17 Dec 2009)
>>
>> Log Message:
>> -----------
>> 2009-12-17 02:06 UTC-0800 Pritpal Bedi ([email protected])
>> * contrib/hbqt/filelist.mk
>> + contrib/hbqt/hbqt_misc.prg
>>
>> * contrib/hbqt/generator/hbqtgen.prg
>>
>> * contrib/hbqt/qtcore/TQAbstractItemModel.prg
>> * contrib/hbqt/qtcore/TQAbstractListModel.prg
>> * contrib/hbqt/qtcore/TQAbstractTableModel.prg
>> * contrib/hbqt/qtcore/TQBitArray.prg
>> * contrib/hbqt/qtcore/TQByteArray.prg
>> * contrib/hbqt/qtcore/TQCoreApplication.prg
>> * contrib/hbqt/qtcore/TQDataStream.prg
>> * contrib/hbqt/qtcore/TQDate.prg
>> * contrib/hbqt/qtcore/TQDateTime.prg
>> * contrib/hbqt/qtcore/TQDir.prg
>> * contrib/hbqt/qtcore/TQEvent.prg
>> * contrib/hbqt/qtcore/TQEventLoop.prg
>> * contrib/hbqt/qtcore/TQFile.prg
>> * contrib/hbqt/qtcore/TQFileInfo.prg
>> * contrib/hbqt/qtcore/TQIODevice.prg
>> * contrib/hbqt/qtcore/TQLatin1Char.prg
>> * contrib/hbqt/qtcore/TQLatin1String.prg
>> * contrib/hbqt/qtcore/TQLine.prg
>> * contrib/hbqt/qtcore/TQLineF.prg
>> * contrib/hbqt/qtcore/TQList.prg
>> * contrib/hbqt/qtcore/TQLocale.prg
>> * contrib/hbqt/qtcore/TQMimeData.prg
>> * contrib/hbqt/qtcore/TQModelIndex.prg
>> * contrib/hbqt/qtcore/TQObject.prg
>> * contrib/hbqt/qtcore/TQPoint.prg
>> * contrib/hbqt/qtcore/TQPointF.prg
>> * contrib/hbqt/qtcore/TQProcess.prg
>> * contrib/hbqt/qtcore/TQRect.prg
>> * contrib/hbqt/qtcore/TQRectF.prg
>> * contrib/hbqt/qtcore/TQRegExp.prg
>> * contrib/hbqt/qtcore/TQResource.prg
>> * contrib/hbqt/qtcore/TQSignalMapper.prg
>> * contrib/hbqt/qtcore/TQSize.prg
>> * contrib/hbqt/qtcore/TQSizeF.prg
>> * contrib/hbqt/qtcore/TQStringList.prg
>> * contrib/hbqt/qtcore/TQTextBoundaryFinder.prg
>> * contrib/hbqt/qtcore/TQTextCodec.prg
>> * contrib/hbqt/qtcore/TQTextDecoder.prg
>> * contrib/hbqt/qtcore/TQTextEncoder.prg
>> * contrib/hbqt/qtcore/TQTextStream.prg
>> * contrib/hbqt/qtcore/TQThread.prg
>> * contrib/hbqt/qtcore/TQTime.prg
>> * contrib/hbqt/qtcore/TQTimer.prg
>> * contrib/hbqt/qtcore/TQTranslator.prg
>> * contrib/hbqt/qtcore/TQUiLoader.prg
>> * contrib/hbqt/qtcore/TQUrl.prg
>> * contrib/hbqt/qtcore/TQVariant.prg
>> * contrib/hbqt/qtgui/TQAbstractButton.prg
>> * contrib/hbqt/qtgui/TQAbstractItemDelegate.prg
>> * contrib/hbqt/qtgui/TQAbstractItemView.prg
>> * contrib/hbqt/qtgui/TQAbstractPrintDialog.prg
>> * contrib/hbqt/qtgui/TQAbstractProxyModel.prg
>> * contrib/hbqt/qtgui/TQAbstractScrollArea.prg
>> * contrib/hbqt/qtgui/TQAbstractSlider.prg
>> * contrib/hbqt/qtgui/TQAbstractSpinBox.prg
>> * contrib/hbqt/qtgui/TQAbstractTextDocumentLayout.prg
>> * contrib/hbqt/qtgui/TQAction.prg
>> * contrib/hbqt/qtgui/TQActionGroup.prg
>> * contrib/hbqt/qtgui/TQApplication.prg
>> * contrib/hbqt/qtgui/TQBitmap.prg
>> * contrib/hbqt/qtgui/TQBoxLayout.prg
>> * contrib/hbqt/qtgui/TQBrush.prg
>> * contrib/hbqt/qtgui/TQButtonGroup.prg
>> * contrib/hbqt/qtgui/TQCalendarWidget.prg
>> * contrib/hbqt/qtgui/TQCheckBox.prg
>> * contrib/hbqt/qtgui/TQClipboard.prg
>> * contrib/hbqt/qtgui/TQColor.prg
>> * contrib/hbqt/qtgui/TQColorDialog.prg
>> * contrib/hbqt/qtgui/TQComboBox.prg
>> * contrib/hbqt/qtgui/TQCommandLinkButton.prg
>> * contrib/hbqt/qtgui/TQCommonStyle.prg
>> * contrib/hbqt/qtgui/TQCompleter.prg
>> * contrib/hbqt/qtgui/TQConicalGradient.prg
>> * contrib/hbqt/qtgui/TQContextMenuEvent.prg
>> * contrib/hbqt/qtgui/TQCursor.prg
>> * contrib/hbqt/qtgui/TQDateEdit.prg
>> * contrib/hbqt/qtgui/TQDateTimeEdit.prg
>> * contrib/hbqt/qtgui/TQDesktopWidget.prg
>> * contrib/hbqt/qtgui/TQDial.prg
>> * contrib/hbqt/qtgui/TQDialog.prg
>> * contrib/hbqt/qtgui/TQDirModel.prg
>> * contrib/hbqt/qtgui/TQDockWidget.prg
>> * contrib/hbqt/qtgui/TQDoubleSpinBox.prg
>> * contrib/hbqt/qtgui/TQDragEnterEvent.prg
>> * contrib/hbqt/qtgui/TQDragLeaveEvent.prg
>> * contrib/hbqt/qtgui/TQDragMoveEvent.prg
>> * contrib/hbqt/qtgui/TQDropEvent.prg
>> * contrib/hbqt/qtgui/TQErrorMessage.prg
>> * contrib/hbqt/qtgui/TQFileDialog.prg
>> * contrib/hbqt/qtgui/TQFileIconProvider.prg
>> * contrib/hbqt/qtgui/TQFileSystemModel.prg
>> * contrib/hbqt/qtgui/TQFocusEvent.prg
>> * contrib/hbqt/qtgui/TQFocusFrame.prg
>> * contrib/hbqt/qtgui/TQFont.prg
>> * contrib/hbqt/qtgui/TQFontComboBox.prg
>> * contrib/hbqt/qtgui/TQFontDatabase.prg
>> * contrib/hbqt/qtgui/TQFontDialog.prg
>> * contrib/hbqt/qtgui/TQFontInfo.prg
>> * contrib/hbqt/qtgui/TQFontMetrics.prg
>> * contrib/hbqt/qtgui/TQFontMetricsF.prg
>> * contrib/hbqt/qtgui/TQFormLayout.prg
>> * contrib/hbqt/qtgui/TQFrame.prg
>> * contrib/hbqt/qtgui/TQGradient.prg
>> * contrib/hbqt/qtgui/TQGridLayout.prg
>> * contrib/hbqt/qtgui/TQGroupBox.prg
>> * contrib/hbqt/qtgui/TQHBoxLayout.prg
>> * contrib/hbqt/qtgui/TQHeaderView.prg
>> * contrib/hbqt/qtgui/TQHelpEvent.prg
>> * contrib/hbqt/qtgui/TQIcon.prg
>> * contrib/hbqt/qtgui/TQImage.prg
>> * contrib/hbqt/qtgui/TQImageReader.prg
>> * contrib/hbqt/qtgui/TQImageWriter.prg
>> * contrib/hbqt/qtgui/TQInputContext.prg
>> * contrib/hbqt/qtgui/TQInputDialog.prg
>> * contrib/hbqt/qtgui/TQInputEvent.prg
>> * contrib/hbqt/qtgui/TQInputMethodEvent.prg
>> * contrib/hbqt/qtgui/TQItemSelection.prg
>> * contrib/hbqt/qtgui/TQItemSelectionModel.prg
>> * contrib/hbqt/qtgui/TQKeyEvent.prg
>> * contrib/hbqt/qtgui/TQKeySequence.prg
>> * contrib/hbqt/qtgui/TQLabel.prg
>> * contrib/hbqt/qtgui/TQLayout.prg
>> * contrib/hbqt/qtgui/TQLayoutItem.prg
>> * contrib/hbqt/qtgui/TQLCDNumber.prg
>> * contrib/hbqt/qtgui/TQLinearGradient.prg
>> * contrib/hbqt/qtgui/TQLineEdit.prg
>> * contrib/hbqt/qtgui/TQListView.prg
>> * contrib/hbqt/qtgui/TQListWidget.prg
>> * contrib/hbqt/qtgui/TQListWidgetItem.prg
>> * contrib/hbqt/qtgui/TQMainWindow.prg
>> * contrib/hbqt/qtgui/TQMatrix.prg
>> * contrib/hbqt/qtgui/TQMenu.prg
>> * contrib/hbqt/qtgui/TQMenuBar.prg
>> * contrib/hbqt/qtgui/TQMessageBox.prg
>> * contrib/hbqt/qtgui/TQMouseEvent.prg
>> * contrib/hbqt/qtgui/TQMoveEvent.prg
>> * contrib/hbqt/qtgui/TQMovie.prg
>> * contrib/hbqt/qtgui/TQPageSetupDialog.prg
>> * contrib/hbqt/qtgui/TQPaintDevice.prg
>> * contrib/hbqt/qtgui/TQPainter.prg
>> * contrib/hbqt/qtgui/TQPainterPath.prg
>> * contrib/hbqt/qtgui/TQPaintEvent.prg
>> * contrib/hbqt/qtgui/TQPalette.prg
>> * contrib/hbqt/qtgui/TQPen.prg
>> * contrib/hbqt/qtgui/TQPicture.prg
>> * contrib/hbqt/qtgui/TQPixmap.prg
>> * contrib/hbqt/qtgui/TQPlainTextEdit.prg
>> * contrib/hbqt/qtgui/TQPolygon.prg
>> * contrib/hbqt/qtgui/TQPolygonF.prg
>> * contrib/hbqt/qtgui/TQPrintDialog.prg
>> * contrib/hbqt/qtgui/TQPrintEngine.prg
>> * contrib/hbqt/qtgui/TQPrinter.prg
>> * contrib/hbqt/qtgui/TQPrintPreviewDialog.prg
>> * contrib/hbqt/qtgui/TQProgressBar.prg
>> * contrib/hbqt/qtgui/TQProgressDialog.prg
>> * contrib/hbqt/qtgui/TQPushButton.prg
>> * contrib/hbqt/qtgui/TQRadialGradient.prg
>> * contrib/hbqt/qtgui/TQRadioButton.prg
>> * contrib/hbqt/qtgui/TQRegion.prg
>> * contrib/hbqt/qtgui/TQResizeEvent.prg
>> * contrib/hbqt/qtgui/TQScrollArea.prg
>> * contrib/hbqt/qtgui/TQScrollBar.prg
>> * contrib/hbqt/qtgui/TQSessionManager.prg
>> * contrib/hbqt/qtgui/TQSizeGrip.prg
>> * contrib/hbqt/qtgui/TQSizePolicy.prg
>> * contrib/hbqt/qtgui/TQSlider.prg
>> * contrib/hbqt/qtgui/TQSound.prg
>> * contrib/hbqt/qtgui/TQSpacerItem.prg
>> * contrib/hbqt/qtgui/TQSpinBox.prg
>> * contrib/hbqt/qtgui/TQSplashScreen.prg
>> * contrib/hbqt/qtgui/TQSplitter.prg
>> * contrib/hbqt/qtgui/TQStandardItem.prg
>> * contrib/hbqt/qtgui/TQStandardItemModel.prg
>> * contrib/hbqt/qtgui/TQStatusBar.prg
>> * contrib/hbqt/qtgui/TQStringListModel.prg
>> * contrib/hbqt/qtgui/TQStyle.prg
>> * contrib/hbqt/qtgui/TQStyledItemDelegate.prg
>> * contrib/hbqt/qtgui/TQStyleFactory.prg
>> * contrib/hbqt/qtgui/TQStyleHintReturn.prg
>> * contrib/hbqt/qtgui/TQStyleHintReturnMask.prg
>> * contrib/hbqt/qtgui/TQStyleHintReturnVariant.prg
>> * contrib/hbqt/qtgui/TQStyleOption.prg
>> * contrib/hbqt/qtgui/TQStyleOptionButton.prg
>> * contrib/hbqt/qtgui/TQStyleOptionComboBox.prg
>> * contrib/hbqt/qtgui/TQStyleOptionComplex.prg
>> * contrib/hbqt/qtgui/TQStyleOptionDockWidget.prg
>> * contrib/hbqt/qtgui/TQStyleOptionFocusRect.prg
>> * contrib/hbqt/qtgui/TQStyleOptionFrame.prg
>> * contrib/hbqt/qtgui/TQStyleOptionGroupBox.prg
>> * contrib/hbqt/qtgui/TQStyleOptionHeader.prg
>> * contrib/hbqt/qtgui/TQStyleOptionMenuItem.prg
>> * contrib/hbqt/qtgui/TQStyleOptionProgressBar.prg
>> * contrib/hbqt/qtgui/TQStyleOptionSizeGrip.prg
>> * contrib/hbqt/qtgui/TQStyleOptionSlider.prg
>> * contrib/hbqt/qtgui/TQStyleOptionSpinBox.prg
>> * contrib/hbqt/qtgui/TQStyleOptionTab.prg
>> * contrib/hbqt/qtgui/TQStyleOptionTabBarBase.prg
>> * contrib/hbqt/qtgui/TQStyleOptionTabWidgetFrame.prg
>> * contrib/hbqt/qtgui/TQStyleOptionTitleBar.prg
>> * contrib/hbqt/qtgui/TQStyleOptionToolBar.prg
>> * contrib/hbqt/qtgui/TQStyleOptionToolBox.prg
>> * contrib/hbqt/qtgui/TQStyleOptionToolButton.prg
>> * contrib/hbqt/qtgui/TQStyleOptionViewItem.prg
>> * contrib/hbqt/qtgui/TQStylePainter.prg
>> * contrib/hbqt/qtgui/TQSyntaxHighlighter.prg
>> * contrib/hbqt/qtgui/TQSystemTrayIcon.prg
>> * contrib/hbqt/qtgui/TQTabBar.prg
>> * contrib/hbqt/qtgui/TQTableView.prg
>> * contrib/hbqt/qtgui/TQTableWidget.prg
>> * contrib/hbqt/qtgui/TQTableWidgetItem.prg
>> * contrib/hbqt/qtgui/TQTableWidgetSelectionRange.prg
>> * contrib/hbqt/qtgui/TQTabWidget.prg
>> * contrib/hbqt/qtgui/TQTextBlock.prg
>> * contrib/hbqt/qtgui/TQTextBlockFormat.prg
>> * contrib/hbqt/qtgui/TQTextBlockGroup.prg
>> * contrib/hbqt/qtgui/TQTextBrowser.prg
>> * contrib/hbqt/qtgui/TQTextCharFormat.prg
>> * contrib/hbqt/qtgui/TQTextCursor.prg
>> * contrib/hbqt/qtgui/TQTextDocument.prg
>> * contrib/hbqt/qtgui/TQTextDocumentFragment.prg
>> * contrib/hbqt/qtgui/TQTextDocumentWriter.prg
>> * contrib/hbqt/qtgui/TQTextEdit.prg
>> * contrib/hbqt/qtgui/TQTextFormat.prg
>> * contrib/hbqt/qtgui/TQTextFragment.prg
>> * contrib/hbqt/qtgui/TQTextFrame.prg
>> * contrib/hbqt/qtgui/TQTextFrameFormat.prg
>> * contrib/hbqt/qtgui/TQTextImageFormat.prg
>> * contrib/hbqt/qtgui/TQTextInlineObject.prg
>> * contrib/hbqt/qtgui/TQTextItem.prg
>> * contrib/hbqt/qtgui/TQTextLayout.prg
>> * contrib/hbqt/qtgui/TQTextLength.prg
>> * contrib/hbqt/qtgui/TQTextLine.prg
>> * contrib/hbqt/qtgui/TQTextListFormat.prg
>> * contrib/hbqt/qtgui/TQTextObject.prg
>> * contrib/hbqt/qtgui/TQTextOption.prg
>> * contrib/hbqt/qtgui/TQTextTableFormat.prg
>> * contrib/hbqt/qtgui/TQTimeEdit.prg
>> * contrib/hbqt/qtgui/TQToolBar.prg
>> * contrib/hbqt/qtgui/TQToolBox.prg
>> * contrib/hbqt/qtgui/TQToolButton.prg
>> * contrib/hbqt/qtgui/TQTransform.prg
>> * contrib/hbqt/qtgui/TQTreeView.prg
>> * contrib/hbqt/qtgui/TQTreeWidget.prg
>> * contrib/hbqt/qtgui/TQTreeWidgetItem.prg
>> * contrib/hbqt/qtgui/TQValidator.prg
>> * contrib/hbqt/qtgui/TQVBoxLayout.prg
>> * contrib/hbqt/qtgui/TQWheelEvent.prg
>> * contrib/hbqt/qtgui/TQWidget.prg
>> * contrib/hbqt/qtgui/TQWidgetAction.prg
>> * contrib/hbqt/qtgui/TQWidgetItem.prg
>> * contrib/hbqt/qtgui/TQWindowsStyle.prg
>> * contrib/hbqt/qtgui/TQWizard.prg
>> * contrib/hbqt/qtgui/TQWizardPage.prg
>> * contrib/hbqt/qtnetwork/TQFtp.prg
>> * contrib/hbqt/qtnetwork/TQHttp.prg
>> * contrib/hbqt/qtnetwork/TQHttpRequestHeader.prg
>> * contrib/hbqt/qtnetwork/TQHttpResponseHeader.prg
>> * contrib/hbqt/qtnetwork/TQNetworkRequest.prg
>>
>> * contrib/hbide/hbide.prg
>>
>> + Implemented to avoid use of QT_PTROF() and QT_PTROFXBP() macros.
>> The functionality is transparent and accepts HBQT and HBXBP objects
>> as is.
>>
>> TODO: Method SomeQtClass:new( ... )
>> ::pPtr := QSomeClass( ... )
>> In above construct it is not known how many parameters
>> are of type pointer and otherwise and how, if resolved,
>> be forwarded to Qt wrapper with (...) syntax.
>>
>> Modified Paths:
>> --------------
>> trunk/harbour/ChangeLog
>> trunk/harbour/contrib/hbide/hbide.prg
>> trunk/harbour/contrib/hbqt/filelist.mk
>> trunk/harbour/contrib/hbqt/generator/hbqtgen.prg
>>
>> Added Paths:
>> -----------
>> trunk/harbour/contrib/hbqt/hbqt_misc.prg
>>
>>
>> This was sent by the SourceForge.net collaborative development platform, the
>> world's largest Open Source development site.
>> _______________________________________________
>> Harbour mailing list (attachment size limit: 40KB)
>> [email protected]
>> http://lists.harbour-project.org/mailman/listinfo/harbour
>
_______________________________________________
Harbour mailing list (attachment size limit: 40KB)
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour