summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2013-09-22 18:48:42 -0700
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-23 19:38:12 +0200
commitc81d0586b5f22715ce66d0f14cf079424700358b (patch)
treebe6a224cba9598cc4dcc892c82145c3cfc2d91f3 /src
parent58b08ba40b849864ceb2c08f65b0be08ac6fa47a (diff)
De-inline virtuals of some non-exported private classes in QtGui
This is to work around a bug in GCC 4.7's link-time optimiser. Without it, linking QtOpenGL and QtPrintSupport fails because the compiler generates the code for the virtuals, including the virtual table, but not the methods. Change-Id: Idcecd51c32e6228e0eefe67f1bd630ea1f5d5da7 Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/text/qfontengine.cpp9
-rw-r--r--src/gui/text/qfontengine_p.h4
-rw-r--r--src/widgets/widgets/qtabbar.cpp12
-rw-r--r--src/widgets/widgets/qtabbar_p.h6
4 files changed, 25 insertions, 6 deletions
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 810b51b9c4..b3889a02a4 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -1880,4 +1880,13 @@ QImage QFontEngineMulti::alphaRGBMapForGlyph(glyph_t glyph, QFixed subPixelPosit
return engine(which)->alphaRGBMapForGlyph(stripped(glyph), subPixelPosition, t);
}
+QTestFontEngine::QTestFontEngine(int size)
+ : QFontEngineBox(size)
+{}
+
+QFontEngine::Type QTestFontEngine::type() const
+{
+ return TestFontEngine;
+}
+
QT_END_NAMESPACE
diff --git a/src/gui/text/qfontengine_p.h b/src/gui/text/qfontengine_p.h
index 1a6862898d..d3faef93bb 100644
--- a/src/gui/text/qfontengine_p.h
+++ b/src/gui/text/qfontengine_p.h
@@ -434,8 +434,8 @@ protected:
class QTestFontEngine : public QFontEngineBox
{
public:
- QTestFontEngine(int size) : QFontEngineBox(size) {}
- virtual Type type() const { return TestFontEngine; }
+ QTestFontEngine(int size);
+ virtual Type type() const;
};
QT_END_NAMESPACE
diff --git a/src/widgets/widgets/qtabbar.cpp b/src/widgets/widgets/qtabbar.cpp
index aa7677869c..94c85ff92b 100644
--- a/src/widgets/widgets/qtabbar.cpp
+++ b/src/widgets/widgets/qtabbar.cpp
@@ -2370,8 +2370,20 @@ void CloseButton::paintEvent(QPaintEvent *)
style()->drawPrimitive(QStyle::PE_IndicatorTabClose, &opt, &p, this);
}
+void QTabBarPrivate::Tab::TabBarAnimation::updateCurrentValue(const QVariant &current)
+{
+ priv->moveTab(priv->tabList.indexOf(*tab), current.toInt());
+}
+
+void QTabBarPrivate::Tab::TabBarAnimation::updateState(QAbstractAnimation::State, QAbstractAnimation::State newState)
+{
+ if (newState == Stopped) priv->moveTabFinished(priv->tabList.indexOf(*tab));
+}
+
QT_END_NAMESPACE
#include "moc_qtabbar.cpp"
#endif // QT_NO_TABBAR
+
+
diff --git a/src/widgets/widgets/qtabbar_p.h b/src/widgets/widgets/qtabbar_p.h
index 8c6e70b8d7..b7b6998ca3 100644
--- a/src/widgets/widgets/qtabbar_p.h
+++ b/src/widgets/widgets/qtabbar_p.h
@@ -126,11 +126,9 @@ public:
TabBarAnimation(Tab *t, QTabBarPrivate *_priv) : tab(t), priv(_priv)
{ setEasingCurve(QEasingCurve::InOutQuad); }
- void updateCurrentValue(const QVariant &current)
- { priv->moveTab(priv->tabList.indexOf(*tab), current.toInt()); }
+ void updateCurrentValue(const QVariant &current);
- void updateState(State, State newState)
- { if (newState == Stopped) priv->moveTabFinished(priv->tabList.indexOf(*tab)); }
+ void updateState(State, State newState);
private:
//these are needed for the callbacks
Tab *tab;