From 9d95bc58e82c65527a364906eca740151fe3301b Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 22 Oct 2012 08:30:32 +0200 Subject: De-inline some destructors in QtWidgets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Destructors should be out-of-line so that the compiler doesn't generate one per translation unit. Apart from creating more work for the compiler, it can also lead to duplicated vtables if the dtor is the first virtual function (reimplementation), and all other virtuals are inline, too. Duplicate vtables then break RTTI. In addition, having virtual dtors de-inlined allows us to add code to them in a BC way. As a final argument, this change may lead to less code app-side, since a sequence of cross-DLL calls (to member variable dtors) is replaced by a single cross-DLL call to the new out-of-line dtor. Change-Id: Ifb8c4aa992c75d61ba9ac8de5ab41d1e96b0a0b1 Reviewed-by: Stephen Kelly Reviewed-by: Friedemann Kleint Reviewed-by: Jędrzej Nowacki --- src/widgets/dialogs/qwizard.cpp | 7 ++++++ src/widgets/dialogs/qwizard.h | 1 + src/widgets/graphicsview/qgraphicsitem.cpp | 7 ++++++ src/widgets/graphicsview/qgraphicsitem.h | 1 + src/widgets/kernel/qgesture.cpp | 34 ++++++++++++++++++++++++++++++ src/widgets/kernel/qgesture.h | 5 +++++ src/widgets/kernel/qlayoutitem.cpp | 10 +++++++++ src/widgets/kernel/qlayoutitem.h | 4 ++++ src/widgets/styles/qstyleoption.cpp | 14 ++++++++++++ src/widgets/styles/qstyleoption.h | 2 ++ src/widgets/styles/qwindowscestyle.cpp | 4 ++++ src/widgets/styles/qwindowscestyle.h | 1 + src/widgets/styles/qwindowsmobilestyle.cpp | 4 ++++ src/widgets/styles/qwindowsmobilestyle.h | 1 + src/widgets/styles/qwindowsvistastyle.cpp | 7 ++++++ src/widgets/styles/qwindowsvistastyle.h | 1 + src/widgets/widgets/qcheckbox.cpp | 7 ++++++ src/widgets/widgets/qcheckbox.h | 2 +- src/widgets/widgets/qcommandlinkbutton.cpp | 7 ++++++ src/widgets/widgets/qcommandlinkbutton.h | 1 + src/widgets/widgets/qdatetimeedit.cpp | 21 ++++++++++++++++++ src/widgets/widgets/qdatetimeedit.h | 3 +++ src/widgets/widgets/qprogressbar.cpp | 7 ++++++ src/widgets/widgets/qprogressbar.h | 1 + src/widgets/widgets/qradiobutton.cpp | 7 ++++++ src/widgets/widgets/qradiobutton.h | 1 + src/widgets/widgets/qspinbox.cpp | 9 ++++++++ src/widgets/widgets/qspinbox.h | 2 ++ src/widgets/widgets/qsplitter.cpp | 7 ++++++ src/widgets/widgets/qsplitter.h | 1 + 30 files changed, 178 insertions(+), 1 deletion(-) diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp index 7f1cb09225..44518ec7d5 100644 --- a/src/widgets/dialogs/qwizard.cpp +++ b/src/widgets/dialogs/qwizard.cpp @@ -3383,6 +3383,13 @@ QWizardPage::QWizardPage(QWidget *parent) connect(this, SIGNAL(completeChanged()), this, SLOT(_q_updateCachedCompleteState())); } +/*! + Destructor. +*/ +QWizardPage::~QWizardPage() +{ +} + /*! \property QWizardPage::title \brief the title of the page diff --git a/src/widgets/dialogs/qwizard.h b/src/widgets/dialogs/qwizard.h index 2fa428f79b..9101162620 100644 --- a/src/widgets/dialogs/qwizard.h +++ b/src/widgets/dialogs/qwizard.h @@ -218,6 +218,7 @@ class Q_WIDGETS_EXPORT QWizardPage : public QWidget public: explicit QWizardPage(QWidget *parent = 0); + ~QWizardPage(); void setTitle(const QString &title); QString title() const; diff --git a/src/widgets/graphicsview/qgraphicsitem.cpp b/src/widgets/graphicsview/qgraphicsitem.cpp index c432902fc2..dd5fb29556 100644 --- a/src/widgets/graphicsview/qgraphicsitem.cpp +++ b/src/widgets/graphicsview/qgraphicsitem.cpp @@ -7575,6 +7575,13 @@ QGraphicsObject::QGraphicsObject(QGraphicsItemPrivate &dd, QGraphicsItem *parent QGraphicsItem::d_ptr->isObject = true; } +/*! + Destructor. +*/ +QGraphicsObject::~QGraphicsObject() +{ +} + /*! \reimp */ diff --git a/src/widgets/graphicsview/qgraphicsitem.h b/src/widgets/graphicsview/qgraphicsitem.h index cf9c6cf42e..0cb936bebb 100644 --- a/src/widgets/graphicsview/qgraphicsitem.h +++ b/src/widgets/graphicsview/qgraphicsitem.h @@ -563,6 +563,7 @@ class Q_WIDGETS_EXPORT QGraphicsObject : public QObject, public QGraphicsItem Q_INTERFACES(QGraphicsItem) public: explicit QGraphicsObject(QGraphicsItem *parent = 0); + ~QGraphicsObject(); #ifdef Q_NO_USING_KEYWORD const QObjectList &children() const { return QObject::children(); } diff --git a/src/widgets/kernel/qgesture.cpp b/src/widgets/kernel/qgesture.cpp index 28e3213c83..1f12d1a60d 100644 --- a/src/widgets/kernel/qgesture.cpp +++ b/src/widgets/kernel/qgesture.cpp @@ -295,6 +295,12 @@ QPanGesture::QPanGesture(QObject *parent) d_func()->gestureType = Qt::PanGesture; } +/*! + Destructor. +*/ +QPanGesture::~QPanGesture() +{ +} QPointF QPanGesture::lastOffset() const { @@ -486,6 +492,13 @@ QPinchGesture::QPinchGesture(QObject *parent) d_func()->gestureType = Qt::PinchGesture; } +/*! + Destructor. +*/ +QPinchGesture::~QPinchGesture() +{ +} + QPinchGesture::ChangeFlags QPinchGesture::totalChangeFlags() const { return d_func()->totalChangeFlags; @@ -673,6 +686,13 @@ QSwipeGesture::QSwipeGesture(QObject *parent) d_func()->gestureType = Qt::SwipeGesture; } +/*! + Destructor. +*/ +QSwipeGesture::~QSwipeGesture() +{ +} + QSwipeGesture::SwipeDirection QSwipeGesture::horizontalDirection() const { Q_D(const QSwipeGesture); @@ -732,6 +752,13 @@ QTapGesture::QTapGesture(QObject *parent) d_func()->gestureType = Qt::TapGesture; } +/*! + Destructor. +*/ +QTapGesture::~QTapGesture() +{ +} + QPointF QTapGesture::position() const { return d_func()->position; @@ -769,6 +796,13 @@ QTapAndHoldGesture::QTapAndHoldGesture(QObject *parent) d_func()->gestureType = Qt::TapAndHoldGesture; } +/*! + Destructor. +*/ +QTapAndHoldGesture::~QTapAndHoldGesture() +{ +} + QPointF QTapAndHoldGesture::position() const { return d_func()->position; diff --git a/src/widgets/kernel/qgesture.h b/src/widgets/kernel/qgesture.h index b8a719383a..0f09f209c0 100644 --- a/src/widgets/kernel/qgesture.h +++ b/src/widgets/kernel/qgesture.h @@ -118,6 +118,7 @@ class Q_WIDGETS_EXPORT QPanGesture : public QGesture public: explicit QPanGesture(QObject *parent = 0); + ~QPanGesture(); QPointF lastOffset() const; QPointF offset() const; @@ -164,6 +165,7 @@ public: public: explicit QPinchGesture(QObject *parent = 0); + ~QPinchGesture(); ChangeFlags totalChangeFlags() const; void setTotalChangeFlags(ChangeFlags value); @@ -219,6 +221,7 @@ public: enum SwipeDirection { NoDirection, Left, Right, Up, Down }; explicit QSwipeGesture(QObject *parent = 0); + ~QSwipeGesture(); SwipeDirection horizontalDirection() const; SwipeDirection verticalDirection() const; @@ -239,6 +242,7 @@ class Q_WIDGETS_EXPORT QTapGesture : public QGesture public: explicit QTapGesture(QObject *parent = 0); + ~QTapGesture(); QPointF position() const; void setPosition(const QPointF &pos); @@ -256,6 +260,7 @@ class Q_WIDGETS_EXPORT QTapAndHoldGesture : public QGesture public: explicit QTapAndHoldGesture(QObject *parent = 0); + ~QTapAndHoldGesture(); QPointF position() const; void setPosition(const QPointF &pos); diff --git a/src/widgets/kernel/qlayoutitem.cpp b/src/widgets/kernel/qlayoutitem.cpp index 5ef3c17454..7de3f47c5b 100644 --- a/src/widgets/kernel/qlayoutitem.cpp +++ b/src/widgets/kernel/qlayoutitem.cpp @@ -262,6 +262,11 @@ void QLayoutItem::setAlignment(Qt::Alignment alignment) nothing else wants the space. */ +/*! + Destructor. +*/ +QSpacerItem::~QSpacerItem() {} + /*! Changes this spacer item to have preferred width \a w, preferred height \a h, horizontal size policy \a hPolicy and vertical size @@ -290,6 +295,11 @@ void QSpacerItem::changeSize(int w, int h, QSizePolicy::Policy hPolicy, Creates an item containing the given \a widget. */ +/*! + Destructor. +*/ +QWidgetItem::~QWidgetItem() {} + /*! Destroys the QLayoutItem. */ diff --git a/src/widgets/kernel/qlayoutitem.h b/src/widgets/kernel/qlayoutitem.h index a2f60b1696..093e7fe61b 100644 --- a/src/widgets/kernel/qlayoutitem.h +++ b/src/widgets/kernel/qlayoutitem.h @@ -99,6 +99,8 @@ public: QSizePolicy::Policy hData = QSizePolicy::Minimum, QSizePolicy::Policy vData = QSizePolicy::Minimum) : width(w), height(h), sizeP(hData, vData) { } + ~QSpacerItem(); + void changeSize(int w, int h, QSizePolicy::Policy hData = QSizePolicy::Minimum, QSizePolicy::Policy vData = QSizePolicy::Minimum); @@ -124,6 +126,8 @@ class Q_WIDGETS_EXPORT QWidgetItem : public QLayoutItem public: explicit QWidgetItem(QWidget *w) : wid(w) { } + ~QWidgetItem(); + QSize sizeHint() const; QSize minimumSize() const; QSize maximumSize() const; diff --git a/src/widgets/styles/qstyleoption.cpp b/src/widgets/styles/qstyleoption.cpp index 53c1cf4559..3bc0c053b9 100644 --- a/src/widgets/styles/qstyleoption.cpp +++ b/src/widgets/styles/qstyleoption.cpp @@ -3888,6 +3888,13 @@ QStyleHintReturnMask::QStyleHintReturnMask() : QStyleHintReturn(Version, Type) { } +/*! + Destructor. +*/ +QStyleHintReturnMask::~QStyleHintReturnMask() +{ +} + /*! \enum QStyleHintReturnMask::StyleOptionType @@ -3941,6 +3948,13 @@ QStyleHintReturnVariant::QStyleHintReturnVariant() : QStyleHintReturn(Version, T { } +/*! + Destructor. +*/ +QStyleHintReturnVariant::~QStyleHintReturnVariant() +{ +} + /*! \enum QStyleHintReturnVariant::StyleOptionType diff --git a/src/widgets/styles/qstyleoption.h b/src/widgets/styles/qstyleoption.h index d88582a9f8..2625bf7256 100644 --- a/src/widgets/styles/qstyleoption.h +++ b/src/widgets/styles/qstyleoption.h @@ -709,6 +709,7 @@ public: enum StyleOptionVersion { Version = 1 }; QStyleHintReturnMask(); + ~QStyleHintReturnMask(); QRegion region; }; @@ -719,6 +720,7 @@ public: enum StyleOptionVersion { Version = 1 }; QStyleHintReturnVariant(); + ~QStyleHintReturnVariant(); QVariant variant; }; diff --git a/src/widgets/styles/qwindowscestyle.cpp b/src/widgets/styles/qwindowscestyle.cpp index 28b8e3d549..8accf18da9 100644 --- a/src/widgets/styles/qwindowscestyle.cpp +++ b/src/widgets/styles/qwindowscestyle.cpp @@ -80,6 +80,10 @@ QWindowsCEStyle::QWindowsCEStyle() : QWindowsStyle() { qApp->setEffectEnabled(Qt::UI_AnimateMenu, false); } +QWindowsCEStyle::~QWindowsCEStyle() +{ +} + void QWindowsCEStyle::drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget) const { diff --git a/src/widgets/styles/qwindowscestyle.h b/src/widgets/styles/qwindowscestyle.h index 37471b0206..606cbafd48 100644 --- a/src/widgets/styles/qwindowscestyle.h +++ b/src/widgets/styles/qwindowscestyle.h @@ -56,6 +56,7 @@ class Q_WIDGETS_EXPORT QWindowsCEStyle : public QWindowsStyle Q_OBJECT public: QWindowsCEStyle(); + ~QWindowsCEStyle(); void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; diff --git a/src/widgets/styles/qwindowsmobilestyle.cpp b/src/widgets/styles/qwindowsmobilestyle.cpp index 3242e6a35e..8ac9888659 100644 --- a/src/widgets/styles/qwindowsmobilestyle.cpp +++ b/src/widgets/styles/qwindowsmobilestyle.cpp @@ -4515,6 +4515,10 @@ QWindowsMobileStyle::QWindowsMobileStyle() : QWindowsStyle(*new QWindowsMobileSt qApp->setEffectEnabled(Qt::UI_AnimateMenu, false); } +QWindowsMobileStyle::~QWindowsMobileStyle() +{ +} + QWindowsMobileStylePrivate::QWindowsMobileStylePrivate() :QWindowsStylePrivate() { #ifdef Q_OS_WINCE diff --git a/src/widgets/styles/qwindowsmobilestyle.h b/src/widgets/styles/qwindowsmobilestyle.h index 607d201a0e..7bb7d5c260 100644 --- a/src/widgets/styles/qwindowsmobilestyle.h +++ b/src/widgets/styles/qwindowsmobilestyle.h @@ -58,6 +58,7 @@ class Q_WIDGETS_EXPORT QWindowsMobileStyle : public QWindowsStyle Q_OBJECT public: QWindowsMobileStyle(); + ~QWindowsMobileStyle(); void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; diff --git a/src/widgets/styles/qwindowsvistastyle.cpp b/src/widgets/styles/qwindowsvistastyle.cpp index 022fb93c5d..093a9f7197 100644 --- a/src/widgets/styles/qwindowsvistastyle.cpp +++ b/src/widgets/styles/qwindowsvistastyle.cpp @@ -203,6 +203,13 @@ QWindowsVistaStyle::QWindowsVistaStyle() { } +/*! + Destructor. +*/ +QWindowsVistaStyle::~QWindowsVistaStyle() +{ +} + //convert Qt state flags to uxtheme button states static int buttonStateId(int flags, int partId) { diff --git a/src/widgets/styles/qwindowsvistastyle.h b/src/widgets/styles/qwindowsvistastyle.h index 0b17881101..72950aa66d 100644 --- a/src/widgets/styles/qwindowsvistastyle.h +++ b/src/widgets/styles/qwindowsvistastyle.h @@ -57,6 +57,7 @@ class Q_WIDGETS_EXPORT QWindowsVistaStyle : public QWindowsXPStyle Q_OBJECT public: QWindowsVistaStyle(); + ~QWindowsVistaStyle(); void drawPrimitive(PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = 0) const; diff --git a/src/widgets/widgets/qcheckbox.cpp b/src/widgets/widgets/qcheckbox.cpp index 29ac80c77d..bf6593d976 100644 --- a/src/widgets/widgets/qcheckbox.cpp +++ b/src/widgets/widgets/qcheckbox.cpp @@ -216,6 +216,13 @@ QCheckBox::QCheckBox(const QString &text, QWidget *parent) setText(text); } +/*! + Destructor. +*/ +QCheckBox::~QCheckBox() +{ +} + void QCheckBox::setTristate(bool y) { Q_D(QCheckBox); diff --git a/src/widgets/widgets/qcheckbox.h b/src/widgets/widgets/qcheckbox.h index c7f33b933a..468c8717c7 100644 --- a/src/widgets/widgets/qcheckbox.h +++ b/src/widgets/widgets/qcheckbox.h @@ -61,7 +61,7 @@ class Q_WIDGETS_EXPORT QCheckBox : public QAbstractButton public: explicit QCheckBox(QWidget *parent=0); explicit QCheckBox(const QString &text, QWidget *parent=0); - + ~QCheckBox(); QSize sizeHint() const; QSize minimumSizeHint() const; diff --git a/src/widgets/widgets/qcommandlinkbutton.cpp b/src/widgets/widgets/qcommandlinkbutton.cpp index 5207241b84..11c4b411f0 100644 --- a/src/widgets/widgets/qcommandlinkbutton.cpp +++ b/src/widgets/widgets/qcommandlinkbutton.cpp @@ -302,6 +302,13 @@ QCommandLinkButton::QCommandLinkButton(const QString &text, const QString &descr d->init(); } +/*! + Destructor. +*/ +QCommandLinkButton::~QCommandLinkButton() +{ +} + /*! \reimp */ bool QCommandLinkButton::event(QEvent *e) { diff --git a/src/widgets/widgets/qcommandlinkbutton.h b/src/widgets/widgets/qcommandlinkbutton.h index 50707d82fc..ec8fd339d0 100644 --- a/src/widgets/widgets/qcommandlinkbutton.h +++ b/src/widgets/widgets/qcommandlinkbutton.h @@ -62,6 +62,7 @@ public: explicit QCommandLinkButton(QWidget *parent=0); explicit QCommandLinkButton(const QString &text, QWidget *parent=0); explicit QCommandLinkButton(const QString &text, const QString &description, QWidget *parent=0); + ~QCommandLinkButton(); QString description() const; void setDescription(const QString &description); diff --git a/src/widgets/widgets/qdatetimeedit.cpp b/src/widgets/widgets/qdatetimeedit.cpp index 8a23530283..0895c96577 100644 --- a/src/widgets/widgets/qdatetimeedit.cpp +++ b/src/widgets/widgets/qdatetimeedit.cpp @@ -218,6 +218,13 @@ QDateTimeEdit::QDateTimeEdit(const QVariant &var, QVariant::Type parserType, QWi d->init(var); } +/*! + Destructor. +*/ +QDateTimeEdit::~QDateTimeEdit() +{ +} + /*! \property QDateTimeEdit::dateTime \brief the QDateTime that is set in the QDateTimeEdit @@ -1561,6 +1568,13 @@ QTimeEdit::QTimeEdit(const QTime &time, QWidget *parent) { } +/*! + Destructor. +*/ +QTimeEdit::~QTimeEdit() +{ +} + /*! \property QTimeEdit::time \internal @@ -1630,6 +1644,13 @@ QDateEdit::QDateEdit(const QDate &date, QWidget *parent) { } +/*! + Destructor. +*/ +QDateEdit::~QDateEdit() +{ +} + /*! \property QDateEdit::date \internal diff --git a/src/widgets/widgets/qdatetimeedit.h b/src/widgets/widgets/qdatetimeedit.h index 77e038cab8..7435013bec 100644 --- a/src/widgets/widgets/qdatetimeedit.h +++ b/src/widgets/widgets/qdatetimeedit.h @@ -100,6 +100,7 @@ public: explicit QDateTimeEdit(const QDateTime &dt, QWidget *parent = 0); explicit QDateTimeEdit(const QDate &d, QWidget *parent = 0); explicit QDateTimeEdit(const QTime &t, QWidget *parent = 0); + ~QDateTimeEdit(); QDateTime dateTime() const; QDate date() const; @@ -209,6 +210,7 @@ class Q_WIDGETS_EXPORT QTimeEdit : public QDateTimeEdit public: explicit QTimeEdit(QWidget *parent = 0); explicit QTimeEdit(const QTime &time, QWidget *parent = 0); + ~QTimeEdit(); Q_SIGNALS: void userTimeChanged(const QTime &time); @@ -221,6 +223,7 @@ class Q_WIDGETS_EXPORT QDateEdit : public QDateTimeEdit public: explicit QDateEdit(QWidget *parent = 0); explicit QDateEdit(const QDate &date, QWidget *parent = 0); + ~QDateEdit(); Q_SIGNALS: void userDateChanged(const QDate &date); diff --git a/src/widgets/widgets/qprogressbar.cpp b/src/widgets/widgets/qprogressbar.cpp index b7726e7771..2bd893003d 100644 --- a/src/widgets/widgets/qprogressbar.cpp +++ b/src/widgets/widgets/qprogressbar.cpp @@ -243,6 +243,13 @@ QProgressBar::QProgressBar(QWidget *parent) d_func()->init(); } +/*! + Destructor. +*/ +QProgressBar::~QProgressBar() +{ +} + /*! Reset the progress bar. The progress bar "rewinds" and shows no progress. diff --git a/src/widgets/widgets/qprogressbar.h b/src/widgets/widgets/qprogressbar.h index 30a4863f84..a830df7a57 100644 --- a/src/widgets/widgets/qprogressbar.h +++ b/src/widgets/widgets/qprogressbar.h @@ -73,6 +73,7 @@ public: enum Direction { TopToBottom, BottomToTop }; explicit QProgressBar(QWidget *parent = 0); + ~QProgressBar(); int minimum() const; int maximum() const; diff --git a/src/widgets/widgets/qradiobutton.cpp b/src/widgets/widgets/qradiobutton.cpp index 78d53ad0e6..d4abd3389f 100644 --- a/src/widgets/widgets/qradiobutton.cpp +++ b/src/widgets/widgets/qradiobutton.cpp @@ -143,6 +143,13 @@ QRadioButton::QRadioButton(QWidget *parent) d->init(); } +/*! + Destructor. +*/ +QRadioButton::~QRadioButton() +{ +} + /*! Constructs a radio button with the given \a parent and a \a text string. diff --git a/src/widgets/widgets/qradiobutton.h b/src/widgets/widgets/qradiobutton.h index eeb029871c..dec49dd090 100644 --- a/src/widgets/widgets/qradiobutton.h +++ b/src/widgets/widgets/qradiobutton.h @@ -59,6 +59,7 @@ class Q_WIDGETS_EXPORT QRadioButton : public QAbstractButton public: explicit QRadioButton(QWidget *parent=0); explicit QRadioButton(const QString &text, QWidget *parent=0); + ~QRadioButton(); QSize sizeHint() const; QSize minimumSizeHint() const; diff --git a/src/widgets/widgets/qspinbox.cpp b/src/widgets/widgets/qspinbox.cpp index 6a11c6d88c..cb09e8bb32 100644 --- a/src/widgets/widgets/qspinbox.cpp +++ b/src/widgets/widgets/qspinbox.cpp @@ -209,6 +209,10 @@ QSpinBox::QSpinBox(QWidget *parent) d->init(); } +/*! + Destructor. +*/ +QSpinBox::~QSpinBox() {} /*! \property QSpinBox::value @@ -579,6 +583,11 @@ QDoubleSpinBox::QDoubleSpinBox(QWidget *parent) d->init(); } +/*! + Destructor. +*/ +QDoubleSpinBox::~QDoubleSpinBox() {} + /*! \property QDoubleSpinBox::value \brief the value of the spin box diff --git a/src/widgets/widgets/qspinbox.h b/src/widgets/widgets/qspinbox.h index b9475254db..889b283c2a 100644 --- a/src/widgets/widgets/qspinbox.h +++ b/src/widgets/widgets/qspinbox.h @@ -66,6 +66,7 @@ class Q_WIDGETS_EXPORT QSpinBox : public QAbstractSpinBox public: explicit QSpinBox(QWidget *parent = 0); + ~QSpinBox(); int value() const; @@ -124,6 +125,7 @@ class Q_WIDGETS_EXPORT QDoubleSpinBox : public QAbstractSpinBox Q_PROPERTY(double value READ value WRITE setValue NOTIFY valueChanged USER true) public: explicit QDoubleSpinBox(QWidget *parent = 0); + ~QDoubleSpinBox(); double value() const; diff --git a/src/widgets/widgets/qsplitter.cpp b/src/widgets/widgets/qsplitter.cpp index 18724cab19..70c493cedd 100644 --- a/src/widgets/widgets/qsplitter.cpp +++ b/src/widgets/widgets/qsplitter.cpp @@ -123,6 +123,13 @@ QSplitterHandle::QSplitterHandle(Qt::Orientation orientation, QSplitter *parent) setOrientation(orientation); } +/*! + Destructor. +*/ +QSplitterHandle::~QSplitterHandle() +{ +} + /*! Sets the orientation of the splitter handle to \a orientation. This is usually propagated from the QSplitter. diff --git a/src/widgets/widgets/qsplitter.h b/src/widgets/widgets/qsplitter.h index 147fcff0ff..2bcdc54c0e 100644 --- a/src/widgets/widgets/qsplitter.h +++ b/src/widgets/widgets/qsplitter.h @@ -141,6 +141,7 @@ class Q_WIDGETS_EXPORT QSplitterHandle : public QWidget Q_OBJECT public: explicit QSplitterHandle(Qt::Orientation o, QSplitter *parent); + ~QSplitterHandle(); void setOrientation(Qt::Orientation o); Qt::Orientation orientation() const; -- cgit v1.2.3