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, vouch...@users.sourceforge.net 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 (prit...@vouchcac.com) >> * 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) >> Harbour@harbour-project.org >> http://lists.harbour-project.org/mailman/listinfo/harbour > _______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour