summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTasuku Suzuki <tasuku.suzuki@nokia.com>2011-03-21 14:13:16 (GMT)
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2011-03-21 14:13:16 (GMT)
commit84a342eea111f0a1da8fd0c417362aae2b851e56 (patch)
tree9ca77440d6503412408b5111d293dea088b8ffda /src
parent55650943492ff00d086bc76039212ce8438ee203 (diff)
downloadQt-84a342eea111f0a1da8fd0c417362aae2b851e56.zip
Qt-84a342eea111f0a1da8fd0c417362aae2b851e56.tar.gz
Qt-84a342eea111f0a1da8fd0c417362aae2b851e56.tar.bz2
Fix compilation with QT_NO_
Merge-request: 1132 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/plugin/qelfparser_p.cpp2
-rw-r--r--src/corelib/plugin/qelfparser_p.h2
-rw-r--r--src/declarative/qml/qdeclarativeimport.cpp8
-rw-r--r--src/declarative/qml/qdeclarativesqldatabase.cpp6
-rw-r--r--src/gui/image/qpnghandler.cpp2
-rw-r--r--src/gui/itemviews/qabstractitemview.cpp5
-rw-r--r--src/gui/itemviews/qabstractitemview.h2
-rw-r--r--src/gui/kernel/qwidget.cpp5
-rw-r--r--src/gui/util/qflickgesture.cpp44
-rw-r--r--src/gui/util/qscroller.cpp33
-rw-r--r--src/gui/util/qscroller.h6
-rw-r--r--src/gui/util/qscroller_p.h9
-rw-r--r--src/gui/widgets/qabstractscrollarea.cpp2
-rw-r--r--src/gui/widgets/qcombobox.cpp2
-rw-r--r--src/gui/widgets/qmainwindowlayout.cpp4
-rw-r--r--src/gui/widgets/qmainwindowlayout_p.h4
-rw-r--r--src/network/socket/qabstractsocketengine_p.h6
-rw-r--r--src/network/socket/qhttpsocketengine.cpp2
-rw-r--r--src/network/socket/qhttpsocketengine_p.h2
-rw-r--r--src/network/socket/qnativesocketengine.cpp5
-rw-r--r--src/network/socket/qnativesocketengine_p.h6
-rw-r--r--src/network/socket/qnativesocketengine_unix.cpp3
-rw-r--r--src/network/socket/qsocks5socketengine.cpp2
-rw-r--r--src/network/socket/qsocks5socketengine_p.h2
-rw-r--r--src/network/socket/qudpsocket.cpp4
-rw-r--r--src/network/socket/qudpsocket.h2
-rw-r--r--src/plugins/bearer/connman/qofonoservice_linux.cpp5
-rw-r--r--src/plugins/bearer/connman/qofonoservice_linux_p.h6
-rw-r--r--src/script/api/qscriptengine.cpp6
29 files changed, 176 insertions, 11 deletions
diff --git a/src/corelib/plugin/qelfparser_p.cpp b/src/corelib/plugin/qelfparser_p.cpp
index fc5b0d9..198c6d7 100644
--- a/src/corelib/plugin/qelfparser_p.cpp
+++ b/src/corelib/plugin/qelfparser_p.cpp
@@ -41,6 +41,7 @@
#include "qelfparser_p.h"
+#ifndef QT_NO_LIBRARY
#if defined (Q_OF_ELF) && defined(Q_CC_GNU)
#include "qlibrary_p.h"
@@ -236,3 +237,4 @@ int QElfParser::parse(const char *dataStart, ulong fdlen, const QString &library
QT_END_NAMESPACE
#endif // defined(Q_OF_ELF) && defined(Q_CC_GNU)
+#endif // QT_NO_LIBRARY
diff --git a/src/corelib/plugin/qelfparser_p.h b/src/corelib/plugin/qelfparser_p.h
index 163d2c1..3ccce10 100644
--- a/src/corelib/plugin/qelfparser_p.h
+++ b/src/corelib/plugin/qelfparser_p.h
@@ -56,6 +56,7 @@
#include <qendian.h>
#include <qglobal.h>
+#ifndef QT_NO_LIBRARY
#if defined (Q_OF_ELF) && defined(Q_CC_GNU)
QT_BEGIN_NAMESPACE
@@ -102,5 +103,6 @@ public:
QT_END_NAMESPACE
#endif // defined(Q_OF_ELF) && defined(Q_CC_GNU)
+#endif // QT_NO_LIBRARY
#endif // QELFPARSER_P_H
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
index 7a1234d..e8d593f 100644
--- a/src/declarative/qml/qdeclarativeimport.cpp
+++ b/src/declarative/qml/qdeclarativeimport.cpp
@@ -722,6 +722,7 @@ QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e)
// Search order is applicationDirPath(), $QML_IMPORT_PATH, QLibraryInfo::ImportsPath
+#ifndef QT_NO_SETTINGS
QString installImportsPath = QLibraryInfo::location(QLibraryInfo::ImportsPath);
#if defined(Q_OS_SYMBIAN)
@@ -748,6 +749,9 @@ QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e)
#else
addImportPath(installImportsPath);
#endif
+
+#endif // QT_NO_SETTINGS
+
// env import paths
QByteArray envImportPath = qgetenv("QML_IMPORT_PATH");
if (!envImportPath.isEmpty()) {
@@ -1014,6 +1018,7 @@ bool QDeclarativeImportDatabase::importPlugin(const QString &filePath, const QSt
if (qmlImportTrace())
qDebug().nospace() << "QDeclarativeImportDatabase::importPlugin: " << uri << " from " << filePath;
+#ifndef QT_NO_LIBRARY
QFileInfo fileInfo(filePath);
const QString absoluteFilePath = fileInfo.absoluteFilePath();
@@ -1065,6 +1070,9 @@ bool QDeclarativeImportDatabase::importPlugin(const QString &filePath, const QSt
}
return true;
+#else
+ return false;
+#endif
}
diff --git a/src/declarative/qml/qdeclarativesqldatabase.cpp b/src/declarative/qml/qdeclarativesqldatabase.cpp
index 207fb57..4ed2bba 100644
--- a/src/declarative/qml/qdeclarativesqldatabase.cpp
+++ b/src/declarative/qml/qdeclarativesqldatabase.cpp
@@ -309,8 +309,10 @@ static QScriptValue qmlsqldatabase_change_version(QScriptContext *context, QScri
if (ok) {
context->thisObject().setProperty(QLatin1String("version"), to_version, QScriptValue::ReadOnly);
+#ifndef QT_NO_SETTINGS
QSettings ini(qmlsqldatabase_databaseFile(db.connectionName(),engine) + QLatin1String(".ini"), QSettings::IniFormat);
ini.setValue(QLatin1String("Version"), to_version);
+#endif
}
return engine->undefinedValue();
@@ -355,6 +357,7 @@ static QScriptValue qmlsqldatabase_read_transaction(QScriptContext *context, QSc
*/
static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEngine *engine)
{
+#ifndef QT_NO_SETTINGS
qmlsqldatabase_initDatabasesPath(engine);
QSqlDatabase database;
@@ -418,6 +421,9 @@ static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEng
}
return result;
+#else
+ return engine->undefinedValue();
+#endif // QT_NO_SETTINGS
}
void qt_add_qmlsqldatabase(QScriptEngine *engine)
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp
index a9aad51..7e0355a 100644
--- a/src/gui/image/qpnghandler.cpp
+++ b/src/gui/image/qpnghandler.cpp
@@ -492,8 +492,10 @@ bool Q_INTERNAL_WIN_NO_THROW QPngHandlerPrivate::readPngImage(QImage *outImage)
outImage->setDotsPerMeterX(png_get_x_pixels_per_meter(png_ptr,info_ptr));
outImage->setDotsPerMeterY(png_get_y_pixels_per_meter(png_ptr,info_ptr));
+#ifndef QT_NO_IMAGE_TEXT
for (int i = 0; i < readTexts.size()-1; i+=2)
outImage->setText(readTexts.at(i), readTexts.at(i+1));
+#endif
state = ReadingEnd;
png_read_end(png_ptr, end_info);
diff --git a/src/gui/itemviews/qabstractitemview.cpp b/src/gui/itemviews/qabstractitemview.cpp
index 291ec6e..d671496 100644
--- a/src/gui/itemviews/qabstractitemview.cpp
+++ b/src/gui/itemviews/qabstractitemview.cpp
@@ -194,6 +194,8 @@ void QAbstractItemViewPrivate::checkMouseMove(const QPersistentModelIndex &index
}
}
+#ifndef QT_NO_GESTURES
+
// stores and restores the selection and current item when flicking
void QAbstractItemViewPrivate::_q_scrollerStateChanged()
{
@@ -225,6 +227,7 @@ void QAbstractItemViewPrivate::_q_scrollerStateChanged()
}
}
+#endif // QT_NO_GESTURES
/*!
\class QAbstractItemView
@@ -1661,7 +1664,9 @@ bool QAbstractItemView::viewportEvent(QEvent *event)
break;
case QEvent::ScrollPrepare:
executeDelayedItemsLayout();
+#ifndef QT_NO_GESTURES
connect(QScroller::scroller(d->viewport), SIGNAL(stateChanged(QScroller::State)), this, SLOT(_q_scrollerStateChanged()), Qt::UniqueConnection);
+#endif
break;
default:
diff --git a/src/gui/itemviews/qabstractitemview.h b/src/gui/itemviews/qabstractitemview.h
index 20cfb87..f11f209 100644
--- a/src/gui/itemviews/qabstractitemview.h
+++ b/src/gui/itemviews/qabstractitemview.h
@@ -359,7 +359,9 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_modelDestroyed())
Q_PRIVATE_SLOT(d_func(), void _q_layoutChanged())
Q_PRIVATE_SLOT(d_func(), void _q_headerDataChanged())
+#ifndef QT_NO_GESTURES
Q_PRIVATE_SLOT(d_func(), void _q_scrollerStateChanged())
+#endif
friend class QTreeViewPrivate; // needed to compile with MSVC
friend class QAccessibleItemRow;
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index adb5fe1..159a2ad 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -366,9 +366,12 @@ QWindowSurface *QWidgetPrivate::createDefaultWindowSurface()
Q_Q(QWidget);
QWindowSurface *surface;
+#ifndef QT_NO_PROPERTIES
if (q->property("_q_DummyWindowSurface").toBool()) {
surface = new QDummyWindowSurface(q);
- } else {
+ } else
+#endif
+ {
if (QApplicationPrivate::graphicsSystem())
surface = QApplicationPrivate::graphicsSystem()->createWindowSurface(q);
else
diff --git a/src/gui/util/qflickgesture.cpp b/src/gui/util/qflickgesture.cpp
index 8baca07..fdd2a95 100644
--- a/src/gui/util/qflickgesture.cpp
+++ b/src/gui/util/qflickgesture.cpp
@@ -75,6 +75,7 @@ static QMouseEvent *copyMouseEvent(QEvent *e)
QMouseEvent *me = static_cast<QMouseEvent *>(e);
return new QMouseEvent(me->type(), QPoint(0, 0), me->globalPos(), me->button(), me->buttons(), me->modifiers());
}
+#ifndef QT_NO_GRAPHICSVIEW
case QEvent::GraphicsSceneMousePress:
case QEvent::GraphicsSceneMouseRelease:
case QEvent::GraphicsSceneMouseMove: {
@@ -103,6 +104,7 @@ static QMouseEvent *copyMouseEvent(QEvent *e)
return copy;
#endif
}
+#endif // QT_NO_GRAPHICSVIEW
default:
return 0;
}
@@ -265,6 +267,7 @@ protected:
if (mouseTarget) {
sendingEvent = true;
+#ifndef QT_NO_GRAPHICSVIEW
QGraphicsItem *grabber = 0;
if (mouseTarget->parentWidget()) {
if (QGraphicsView *gv = qobject_cast<QGraphicsView *>(mouseTarget->parentWidget())) {
@@ -281,12 +284,14 @@ protected:
qFGDebug() << "QFG: ungrabbing" << grabber;
grabber->ungrabMouse();
}
+#endif // QT_NO_GRAPHICSVIEW
if (me) {
QMouseEvent copy(me->type(), mouseTarget->mapFromGlobal(me->globalPos()), me->globalPos(), me->button(), me->buttons(), me->modifiers());
qt_sendSpontaneousEvent(mouseTarget, &copy);
}
+#ifndef QT_NO_GRAPHICSVIEW
if (grabber && (flags & RegrabMouseAfterwards)) {
// GraphicsView Mouse Handling Workaround #2:
// we need to re-grab the mouse after sending a faked mouse
@@ -296,6 +301,7 @@ protected:
qFGDebug() << "QFG: re-grabbing" << grabber;
grabber->grabMouse();
}
+#endif
sendingEvent = false;
}
}
@@ -357,10 +363,12 @@ QFlickGestureRecognizer::QFlickGestureRecognizer(Qt::MouseButton button)
*/
QGesture *QFlickGestureRecognizer::create(QObject *target)
{
+#ifndef QT_NO_GRAPHICSVIEW
QGraphicsObject *go = qobject_cast<QGraphicsObject*>(target);
if (go && button == Qt::NoButton) {
go->setAcceptTouchEvents(true);
}
+#endif
return new QFlickGesture(target, button);
}
@@ -389,7 +397,9 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
return Ignore; // nothing to do without a scroller?
QWidget *receiverWidget = qobject_cast<QWidget *>(d->receiver);
+#ifndef QT_NO_GRAPHICSVIEW
QGraphicsObject *receiverGraphicsObject = qobject_cast<QGraphicsObject *>(d->receiver);
+#endif
// this is only set for events that we inject into the event loop via sendEvent()
if (PressDelayHandler::instance()->shouldEventBeIgnored(event)) {
@@ -398,7 +408,9 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
}
const QMouseEvent *me = 0;
+#ifndef QT_NO_GRAPHICSVIEW
const QGraphicsSceneMouseEvent *gsme = 0;
+#endif
const QTouchEvent *te = 0;
QPoint globalPos;
@@ -415,6 +427,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
globalPos = me->globalPos();
}
break;
+#ifndef QT_NO_GRAPHICSVIEW
case QEvent::GraphicsSceneMousePress:
case QEvent::GraphicsSceneMouseRelease:
case QEvent::GraphicsSceneMouseMove:
@@ -425,6 +438,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
globalPos = gsme->screenPos();
}
break;
+#endif
case QEvent::TouchBegin:
case QEvent::TouchEnd:
case QEvent::TouchUpdate:
@@ -466,7 +480,11 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
break;
}
- if (!me && !gsme && !te) // Neither mouse nor touch
+ if (!me
+#ifndef QT_NO_GRAPHICSVIEW
+ && !gsme
+#endif
+ && !te) // Neither mouse nor touch
return Ignore;
// get the current pointer position in local coordinates.
@@ -502,6 +520,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
}
break;
+#ifndef QT_NO_GRAPHICSVIEW
case QEvent::GraphicsSceneMousePress:
if (gsme && gsme->button() == button && gsme->buttons() == button) {
point = gsme->scenePos();
@@ -529,6 +548,7 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
inputType = QScroller::InputMove;
}
break;
+#endif
case QEvent::TouchBegin:
inputType = QScroller::InputPress;
@@ -568,12 +588,14 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
if (QWidget *w = qobject_cast<QWidget *>(as->target())) {
scrollerRegion = QRect(w->mapToGlobal(QPoint(0, 0)), w->size());
+#ifndef QT_NO_GRAPHICSVIEW
} else if (QGraphicsObject *go = qobject_cast<QGraphicsObject *>(as->target())) {
if (go->scene() && !go->scene()->views().isEmpty()) {
foreach (QGraphicsView *gv, go->scene()->views())
scrollerRegion |= gv->mapFromScene(go->mapToScene(go->boundingRect()))
.translated(gv->mapToGlobal(QPoint(0, 0)));
}
+#endif
}
// active scrollers always have priority
if (scrollerRegion.contains(globalPos))
@@ -588,8 +610,10 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
if (inputType) {
if (QWidget *w = qobject_cast<QWidget *>(d->receiver))
point = w->mapFromGlobal(point.toPoint());
+#ifndef QT_NO_GRAPHICSVIEW
else if (QGraphicsObject *go = qobject_cast<QGraphicsObject *>(d->receiver))
point = go->mapFromScene(point);
+#endif
// inform the scroller about the new event
scroller->handleInput(inputType, point, monotonicTimer.elapsed());
@@ -602,7 +626,11 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
// Consume all mouse events while dragging or scrolling to avoid nasty
// side effects with Qt's standard widgets.
- if ((me || gsme) && scrollerIsActive)
+ if ((me
+#ifndef QT_NO_GRAPHICSVIEW
+ || gsme
+#endif
+ ) && scrollerIsActive)
result |= ConsumeEventHint;
// The only problem with this approach is that we consume the
@@ -610,7 +638,11 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
// have to fake a MouseRelease "somewhere" to not mess with the internal
// states of Qt's widgets (a QPushButton would stay in 'pressed' state
// forever, if it doesn't receive a MouseRelease).
- if (me || gsme) {
+ if (me
+#ifndef QT_NO_GRAPHICSVIEW
+ || gsme
+#endif
+ ) {
if (!scrollerWasDragging && !scrollerWasScrolling && scrollerIsActive)
PressDelayHandler::instance()->scrollerBecameActive();
else if (scrollerWasScrolling && (scroller->state() == QScroller::Dragging || scroller->state() == QScroller::Inactive))
@@ -622,7 +654,9 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
} else {
switch (event->type()) {
case QEvent::MouseButtonPress:
+#ifndef QT_NO_GRAPHICSVIEW
case QEvent::GraphicsSceneMousePress:
+#endif
if (scroller->state() == QScroller::Pressed) {
int pressDelay = int(1000 * scroller->scrollerProperties().scrollMetric(QScrollerProperties::MousePressEventDelay).toReal());
if (pressDelay > 0) {
@@ -639,7 +673,9 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
break;
case QEvent::MouseMove:
+#ifndef QT_NO_GRAPHICSVIEW
case QEvent::GraphicsSceneMouseMove:
+#endif
if (PressDelayHandler::instance()->isDelaying())
result |= ConsumeEventHint;
// fall through
@@ -647,7 +683,9 @@ QGestureRecognizer::Result QFlickGestureRecognizer::recognize(QGesture *state,
result |= scrollerIsActive ? TriggerGesture : Ignore;
break;
+#ifndef QT_NO_GRAPHICSVIEW
case QEvent::GraphicsSceneMouseRelease:
+#endif
case QEvent::MouseButtonRelease:
if (PressDelayHandler::instance()->released(event, scrollerWasDragging || scrollerWasScrolling, scrollerIsActive))
result |= ConsumeEventHint;
diff --git a/src/gui/util/qscroller.cpp b/src/gui/util/qscroller.cpp
index ac5607c..9c2d24d 100644
--- a/src/gui/util/qscroller.cpp
+++ b/src/gui/util/qscroller.cpp
@@ -192,6 +192,7 @@ static qreal progressForValue(const QEasingCurve &curve, qreal value)
}
+#ifndef QT_NO_ANIMATION
class QScrollTimer : public QAbstractAnimation
{
public:
@@ -230,6 +231,7 @@ private:
bool ignoreUpdate;
int skip;
};
+#endif // QT_NO_ANIMATION
/*!
\class QScroller
@@ -376,6 +378,7 @@ void QScroller::setScrollerProperties(const QScrollerProperties &sp)
}
}
+#ifndef QT_NO_GESTURES
/*!
Registers a custom scroll gesture recognizer, grabs it for the \a
@@ -426,11 +429,12 @@ Qt::GestureType QScroller::grabGesture(QObject *target, ScrollerGestureType scro
widget->grabGesture(sp->recognizerType);
if (scrollGestureType == TouchGesture)
widget->setAttribute(Qt::WA_AcceptTouchEvents);
-
+#ifndef QT_NO_GRAPHICSVIEW
} else if (QGraphicsObject *go = qobject_cast<QGraphicsObject*>(target)) {
if (scrollGestureType == TouchGesture)
go->setAcceptTouchEvents(true);
go->grabGesture(sp->recognizerType);
+#endif // QT_NO_GRAPHICSVIEW
}
return sp->recognizerType;
}
@@ -469,9 +473,10 @@ void QScroller::ungrabGesture(QObject *target)
if (target->isWidgetType()) {
QWidget *widget = static_cast<QWidget *>(target);
widget->ungrabGesture(sp->recognizerType);
-
+#ifndef QT_NO_GRAPHICSVIEW
} else if (QGraphicsObject *go = qobject_cast<QGraphicsObject*>(target)) {
go->ungrabGesture(sp->recognizerType);
+#endif
}
QGestureRecognizer::unregisterRecognizer(sp->recognizerType);
@@ -479,6 +484,8 @@ void QScroller::ungrabGesture(QObject *target)
sp->recognizer = 0;
}
+#endif // QT_NO_GESTURES
+
/*!
\internal
*/
@@ -496,9 +503,11 @@ QScroller::QScroller(QObject *target)
QScroller::~QScroller()
{
Q_D(QScroller);
+#ifndef QT_NO_GESTURES
QGestureRecognizer::unregisterRecognizer(d->recognizerType);
// do not delete the recognizer. The QGestureManager is doing this.
d->recognizer = 0;
+#endif
QScrollerPrivate::allScrollers.remove(d->target);
QScrollerPrivate::activeScrollers.remove(this);
@@ -562,6 +571,7 @@ QPointF QScroller::pixelPerMeter() const
Q_D(const QScroller);
QPointF ppm = d->pixelPerMeter;
+#ifndef QT_NO_GRAPHICSVIEW
if (QGraphicsObject *go = qobject_cast<QGraphicsObject *>(d->target)) {
QTransform viewtr;
//TODO: the first view isn't really correct - maybe use an additional field in the prepare event?
@@ -576,6 +586,7 @@ QPointF QScroller::pixelPerMeter() const
ppm.ry() /= QLineF(p0, py).length();
}
}
+#endif // QT_NO_GRAPHICSVIEW
return ppm;
}
@@ -869,8 +880,10 @@ void QScroller::setSnapPositionsY(qreal first, qreal interval)
QScrollerPrivate::QScrollerPrivate(QScroller *q, QObject *_target)
: target(_target)
+#ifndef QT_NO_GESTURES
, recognizer(0)
, recognizerType(Qt::CustomGesture)
+#endif
, state(QScroller::Inactive)
, firstScroll(true)
, pressTimestamp(0)
@@ -879,7 +892,9 @@ QScrollerPrivate::QScrollerPrivate(QScroller *q, QObject *_target)
, snapIntervalX(0.0)
, snapFirstY(-1.0)
, snapIntervalY(0.0)
+#ifndef QT_NO_ANIMATION
, scrollTimer(new QScrollTimer(this))
+#endif
, q_ptr(q)
{
connect(target, SIGNAL(destroyed(QObject*)), this, SLOT(targetDestroyed()));
@@ -919,7 +934,9 @@ const char *QScrollerPrivate::inputName(QScroller::Input input)
void QScrollerPrivate::targetDestroyed()
{
+#ifndef QT_NO_ANIMATION
scrollTimer->stop();
+#endif
delete q_ptr;
}
@@ -945,7 +962,9 @@ void QScrollerPrivate::timerTick()
}
}
+#ifndef QT_NO_ANIMATION
scrollTimer->stop();
+#endif
}
/*!
@@ -1436,11 +1455,13 @@ bool QScrollerPrivate::prepareScrolling(const QPointF &position)
if (QWidget *w = qobject_cast<QWidget *>(target))
setDpiFromWidget(w);
+#ifndef QT_NO_GRAPHICSVIEW
if (QGraphicsObject *go = qobject_cast<QGraphicsObject *>(target)) {
//TODO: the first view isn't really correct - maybe use an additional field in the prepare event?
if (go->scene() && !go->scene()->views().isEmpty())
setDpiFromWidget(go->scene()->views().first());
}
+#endif
if (state == QScroller::Scrolling) {
recalcScrollingSegments();
@@ -1690,7 +1711,9 @@ void QScrollerPrivate::setState(QScroller::State newstate)
switch (newstate) {
case QScroller::Inactive:
+#ifndef QT_NO_ANIMATION
scrollTimer->stop();
+#endif
// send the last scroll event (but only after the current state change was finished)
if (!firstScroll)
@@ -1700,7 +1723,9 @@ void QScrollerPrivate::setState(QScroller::State newstate)
break;
case QScroller::Pressed:
+#ifndef QT_NO_ANIMATION
scrollTimer->stop();
+#endif
oldVelocity = releaseVelocity;
releaseVelocity = QPointF(0, 0);
@@ -1708,12 +1733,16 @@ void QScrollerPrivate::setState(QScroller::State newstate)
case QScroller::Dragging:
dragDistance = QPointF(0, 0);
+#ifndef QT_NO_ANIMATION
if (state == QScroller::Pressed)
scrollTimer->start();
+#endif
break;
case QScroller::Scrolling:
+#ifndef QT_NO_ANIMATION
scrollTimer->start();
+#endif
break;
}
diff --git a/src/gui/util/qscroller.h b/src/gui/util/qscroller.h
index a026be4..1599c7d 100644
--- a/src/gui/util/qscroller.h
+++ b/src/gui/util/qscroller.h
@@ -55,8 +55,10 @@ QT_MODULE(Gui)
class QWidget;
class QScrollerPrivate;
class QScrollerProperties;
+#ifndef QT_NO_GESTURES
class QFlickGestureRecognizer;
class QMouseFlickGestureRecognizer;
+#endif
class Q_GUI_EXPORT QScroller : public QObject
{
@@ -94,9 +96,11 @@ public:
static QScroller *scroller(QObject *target);
static const QScroller *scroller(const QObject *target);
+#ifndef QT_NO_GESTURES
static Qt::GestureType grabGesture(QObject *target, ScrollerGestureType gestureType = TouchGesture);
static Qt::GestureType grabbedGesture(QObject *target);
static void ungrabGesture(QObject *target);
+#endif
static QList<QScroller *> activeScrollers();
@@ -139,7 +143,9 @@ private:
Q_DISABLE_COPY(QScroller)
Q_DECLARE_PRIVATE(QScroller)
+#ifndef QT_NO_GESTURES
friend class QFlickGestureRecognizer;
+#endif
};
QT_END_NAMESPACE
diff --git a/src/gui/util/qscroller_p.h b/src/gui/util/qscroller_p.h
index fb2b257..8c5f2e7 100644
--- a/src/gui/util/qscroller_p.h
+++ b/src/gui/util/qscroller_p.h
@@ -69,10 +69,13 @@
QT_BEGIN_NAMESPACE
+#ifndef QT_NO_GESTURES
class QFlickGestureRecognizer;
+#endif
+#ifndef QT_NO_ANIMATION
class QScrollTimer;
-
+#endif
class QScrollerPrivate : public QObject
{
Q_OBJECT
@@ -152,8 +155,10 @@ public:
// non static
QObject *target;
QScrollerProperties properties;
+#ifndef QT_NO_GESTURES
QFlickGestureRecognizer *recognizer;
Qt::GestureType recognizerType;
+#endif
// scroller state:
@@ -194,7 +199,9 @@ public:
QElapsedTimer monotonicTimer;
QPointF releaseVelocity; // the starting velocity of the scrolling state
+#ifndef QT_NO_ANIMATION
QScrollTimer *scrollTimer;
+#endif
QScroller *q_ptr;
};
diff --git a/src/gui/widgets/qabstractscrollarea.cpp b/src/gui/widgets/qabstractscrollarea.cpp
index 7460f32..f948af9 100644
--- a/src/gui/widgets/qabstractscrollarea.cpp
+++ b/src/gui/widgets/qabstractscrollarea.cpp
@@ -1386,6 +1386,7 @@ bool QAbstractScrollAreaPrivate::canStartScrollingAt( const QPoint &startPos )
{
Q_Q(QAbstractScrollArea);
+#ifndef QT_NO_GRAPHICSVIEW
// don't start scrolling when a drag mode has been set.
// don't start scrolling on a movable item.
if (QGraphicsView *view = qobject_cast<QGraphicsView *>(q)) {
@@ -1397,6 +1398,7 @@ bool QAbstractScrollAreaPrivate::canStartScrollingAt( const QPoint &startPos )
if (childItem && (childItem->flags() & QGraphicsItem::ItemIsMovable))
return false;
}
+#endif
// don't start scrolling on a QAbstractSlider
if (qobject_cast<QAbstractSlider *>(q->viewport()->childAt(startPos))) {
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index b5dda5a..d63ccfb 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -705,11 +705,13 @@ void QComboBoxPrivateContainer::hideEvent(QHideEvent *)
{
emit resetButton();
combo->update();
+#ifndef QT_NO_GRAPHICSVIEW
// QGraphicsScenePrivate::removePopup closes the combo box popup, it hides it non-explicitly.
// Hiding/showing the QComboBox after this will unexpectedly show the popup as well.
// Re-hiding the popup container makes sure it is explicitly hidden.
if (QGraphicsProxyWidget *proxy = graphicsProxyWidget())
proxy->hide();
+#endif
}
void QComboBoxPrivateContainer::mousePressEvent(QMouseEvent *e)
diff --git a/src/gui/widgets/qmainwindowlayout.cpp b/src/gui/widgets/qmainwindowlayout.cpp
index 6bc07e1..d4afe07 100644
--- a/src/gui/widgets/qmainwindowlayout.cpp
+++ b/src/gui/widgets/qmainwindowlayout.cpp
@@ -73,6 +73,10 @@
# include <private/qt_cocoa_helpers_mac_p.h>
#endif
+#ifdef QT_NO_DOCKWIDGET
+extern QMainWindowLayout *qt_mainwindow_layout(const QMainWindow *window);
+#endif
+
#ifdef Q_DEBUG_MAINWINDOW_LAYOUT
# include <QTextStream>
#endif
diff --git a/src/gui/widgets/qmainwindowlayout_p.h b/src/gui/widgets/qmainwindowlayout_p.h
index 2a44432..20aca61 100644
--- a/src/gui/widgets/qmainwindowlayout_p.h
+++ b/src/gui/widgets/qmainwindowlayout_p.h
@@ -70,12 +70,12 @@
//#define Q_DEBUG_MAINWINDOW_LAYOUT
-#ifdef Q_DEBUG_MAINWINDOW_LAYOUT
+#if defined(Q_DEBUG_MAINWINDOW_LAYOUT) && !defined(QT_NO_DOCKWIDGET)
QT_BEGIN_NAMESPACE
class QTextStream;
Q_GUI_EXPORT void qt_dumpLayout(QTextStream &qout, QMainWindow *window);
QT_END_NAMESPACE
-#endif // Q_DEBUG_MAINWINDOW_LAYOUT
+#endif // Q_DEBUG_MAINWINDOW_LAYOUT && !QT_NO_DOCKWIDGET
#ifdef Q_WS_MAC
// Forward defs to make avoid including Carbon.h (faster compile you know ;).
diff --git a/src/network/socket/qabstractsocketengine_p.h b/src/network/socket/qabstractsocketengine_p.h
index c00b6d7..ee6dad6 100644
--- a/src/network/socket/qabstractsocketengine_p.h
+++ b/src/network/socket/qabstractsocketengine_p.h
@@ -61,7 +61,9 @@ QT_BEGIN_NAMESPACE
class QAuthenticator;
class QAbstractSocketEnginePrivate;
+#ifndef QT_NO_NETWORKINTERFACE
class QNetworkInterface;
+#endif
class QNetworkProxy;
class QAbstractSocketEngineReceiver {
@@ -121,12 +123,14 @@ public:
virtual qint64 write(const char *data, qint64 len) = 0;
#ifndef QT_NO_UDPSOCKET
+#ifndef QT_NO_NETWORKINTERFACE
virtual bool joinMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &iface) = 0;
virtual bool leaveMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &iface) = 0;
virtual QNetworkInterface multicastInterface() const = 0;
virtual bool setMulticastInterface(const QNetworkInterface &iface) = 0;
+#endif // QT_NO_NETWORKINTERFACE
virtual qint64 readDatagram(char *data, qint64 maxlen, QHostAddress *addr = 0,
quint16 *port = 0) = 0;
@@ -134,7 +138,7 @@ public:
quint16 port) = 0;
virtual bool hasPendingDatagrams() const = 0;
virtual qint64 pendingDatagramSize() const = 0;
-#endif
+#endif // QT_NO_UDPSOCKET
virtual qint64 bytesToWrite() const = 0;
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp
index 6a025f2..df06a46 100644
--- a/src/network/socket/qhttpsocketengine.cpp
+++ b/src/network/socket/qhttpsocketengine.cpp
@@ -240,6 +240,7 @@ qint64 QHttpSocketEngine::write(const char *data, qint64 len)
}
#ifndef QT_NO_UDPSOCKET
+#ifndef QT_NO_NETWORKINTERFACE
bool QHttpSocketEngine::joinMulticastGroup(const QHostAddress &,
const QNetworkInterface &)
{
@@ -267,6 +268,7 @@ bool QHttpSocketEngine::setMulticastInterface(const QNetworkInterface &)
QLatin1String("Operation on socket is not supported"));
return false;
}
+#endif // QT_NO_NETWORKINTERFACE
qint64 QHttpSocketEngine::readDatagram(char *, qint64, QHostAddress *,
quint16 *)
diff --git a/src/network/socket/qhttpsocketengine_p.h b/src/network/socket/qhttpsocketengine_p.h
index 2ecd708..361ef5c 100644
--- a/src/network/socket/qhttpsocketengine_p.h
+++ b/src/network/socket/qhttpsocketengine_p.h
@@ -102,12 +102,14 @@ public:
qint64 write(const char *data, qint64 len);
#ifndef QT_NO_UDPSOCKET
+#ifndef QT_NO_NETWORKINTERFACE
bool joinMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &interface);
bool leaveMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &interface);
QNetworkInterface multicastInterface() const;
bool setMulticastInterface(const QNetworkInterface &iface);
+#endif // QT_NO_NETWORKINTERFACE
qint64 readDatagram(char *data, qint64 maxlen, QHostAddress *addr = 0,
quint16 *port = 0);
diff --git a/src/network/socket/qnativesocketengine.cpp b/src/network/socket/qnativesocketengine.cpp
index 56c1716..7c9911a 100644
--- a/src/network/socket/qnativesocketengine.cpp
+++ b/src/network/socket/qnativesocketengine.cpp
@@ -647,6 +647,8 @@ int QNativeSocketEngine::accept()
return d->nativeAccept();
}
+#ifndef QT_NO_NETWORKINTERFACE
+
/*!
\since 4.8
*/
@@ -682,7 +684,6 @@ QNetworkInterface QNativeSocketEngine::multicastInterface() const
return d->nativeMulticastInterface();
}
-
/*! \since 4.8 */
bool QNativeSocketEngine::setMulticastInterface(const QNetworkInterface &iface)
{
@@ -692,6 +693,8 @@ bool QNativeSocketEngine::setMulticastInterface(const QNetworkInterface &iface)
return d->nativeSetMulticastInterface(iface);
}
+#endif // QT_NO_NETWORKINTERFACE
+
/*!
Returns the number of bytes that are currently available for
reading. On error, -1 is returned.
diff --git a/src/network/socket/qnativesocketengine_p.h b/src/network/socket/qnativesocketengine_p.h
index 074dd1a..d2ccb21 100644
--- a/src/network/socket/qnativesocketengine_p.h
+++ b/src/network/socket/qnativesocketengine_p.h
@@ -101,7 +101,9 @@ union qt_sockaddr {
};
class QNativeSocketEnginePrivate;
+#ifndef QT_NO_NETWORKINTERFACE
class QNetworkInterface;
+#endif
class Q_AUTOTEST_EXPORT QNativeSocketEngine : public QAbstractSocketEngine
{
@@ -124,12 +126,14 @@ public:
int accept();
void close();
+#ifndef QT_NO_NETWORKINTERFACE
bool joinMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &iface);
bool leaveMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &iface);
QNetworkInterface multicastInterface() const;
bool setMulticastInterface(const QNetworkInterface &iface);
+#endif
qint64 bytesAvailable() const;
@@ -245,12 +249,14 @@ public:
bool nativeBind(const QHostAddress &address, quint16 port);
bool nativeListen(int backlog);
int nativeAccept();
+#ifndef QT_NO_NETWORKINTERFACE
bool nativeJoinMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &iface);
bool nativeLeaveMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &iface);
QNetworkInterface nativeMulticastInterface() const;
bool nativeSetMulticastInterface(const QNetworkInterface &iface);
+#endif
qint64 nativeBytesAvailable() const;
bool nativeHasPendingDatagrams() const;
diff --git a/src/network/socket/qnativesocketengine_unix.cpp b/src/network/socket/qnativesocketengine_unix.cpp
index c819659..091b285 100644
--- a/src/network/socket/qnativesocketengine_unix.cpp
+++ b/src/network/socket/qnativesocketengine_unix.cpp
@@ -615,6 +615,7 @@ int QNativeSocketEnginePrivate::nativeAccept()
return acceptedDescriptor;
}
+#ifndef QT_NO_NETWORKINTERFACE
static bool multicastMembershipHelper(QNativeSocketEnginePrivate *d,
int how6,
@@ -780,6 +781,8 @@ bool QNativeSocketEnginePrivate::nativeSetMulticastInterface(const QNetworkInter
return (::setsockopt(socketDescriptor, IPPROTO_IP, IP_MULTICAST_IF, &v, sizeof(v)) != -1);
}
+#endif // QT_NO_NETWORKINTERFACE
+
qint64 QNativeSocketEnginePrivate::nativeBytesAvailable() const
{
int nbytes = 0;
diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp
index ab3d260..10a2695 100644
--- a/src/network/socket/qsocks5socketengine.cpp
+++ b/src/network/socket/qsocks5socketengine.cpp
@@ -1545,6 +1545,7 @@ qint64 QSocks5SocketEngine::write(const char *data, qint64 len)
}
#ifndef QT_NO_UDPSOCKET
+#ifndef QT_NO_NETWORKINTERFACE
bool QSocks5SocketEngine::joinMulticastGroup(const QHostAddress &,
const QNetworkInterface &)
{
@@ -1573,6 +1574,7 @@ bool QSocks5SocketEngine::setMulticastInterface(const QNetworkInterface &)
QLatin1String("Operation on socket is not supported"));
return false;
}
+#endif // QT_NO_NETWORKINTERFACE
qint64 QSocks5SocketEngine::readDatagram(char *data, qint64 maxlen, QHostAddress *addr,
quint16 *port)
diff --git a/src/network/socket/qsocks5socketengine_p.h b/src/network/socket/qsocks5socketengine_p.h
index b85fd62..9492d45 100644
--- a/src/network/socket/qsocks5socketengine_p.h
+++ b/src/network/socket/qsocks5socketengine_p.h
@@ -92,12 +92,14 @@ public:
qint64 write(const char *data, qint64 len);
#ifndef QT_NO_UDPSOCKET
+#ifndef QT_NO_NETWORKINTERFACE
bool joinMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &interface);
bool leaveMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &interface);
QNetworkInterface multicastInterface() const;
bool setMulticastInterface(const QNetworkInterface &iface);
+#endif // QT_NO_NETWORKINTERFACE
qint64 readDatagram(char *data, qint64 maxlen, QHostAddress *addr = 0,
quint16 *port = 0);
diff --git a/src/network/socket/qudpsocket.cpp b/src/network/socket/qudpsocket.cpp
index 6a62b12..97a5466 100644
--- a/src/network/socket/qudpsocket.cpp
+++ b/src/network/socket/qudpsocket.cpp
@@ -338,6 +338,8 @@ bool QUdpSocket::bind(quint16 port, BindMode mode)
return bind(QHostAddress::Any, port, mode);
}
+#ifndef QT_NO_NETWORKINTERFACE
+
/*!
\since 4.8
@@ -444,6 +446,8 @@ void QUdpSocket::setMulticastInterface(const QNetworkInterface &iface)
d->socketEngine->setMulticastInterface(iface);
}
+#endif // QT_NO_NETWORKINTERFACE
+
/*!
Returns true if at least one datagram is waiting to be read;
otherwise returns false.
diff --git a/src/network/socket/qudpsocket.h b/src/network/socket/qudpsocket.h
index 82266cb..7502349 100644
--- a/src/network/socket/qudpsocket.h
+++ b/src/network/socket/qudpsocket.h
@@ -77,6 +77,7 @@ public:
bool bind(quint16 port, BindMode mode);
// ### Qt 5: Merge the bind functions
+#ifndef QT_NO_NETWORKINTERFACE
bool joinMulticastGroup(const QHostAddress &groupAddress);
bool joinMulticastGroup(const QHostAddress &groupAddress,
const QNetworkInterface &iface);
@@ -86,6 +87,7 @@ public:
QNetworkInterface multicastInterface() const;
void setMulticastInterface(const QNetworkInterface &iface);
+#endif
bool hasPendingDatagrams() const;
qint64 pendingDatagramSize() const;
diff --git a/src/plugins/bearer/connman/qofonoservice_linux.cpp b/src/plugins/bearer/connman/qofonoservice_linux.cpp
index 2a22280..e3fb2c6 100644
--- a/src/plugins/bearer/connman/qofonoservice_linux.cpp
+++ b/src/plugins/bearer/connman/qofonoservice_linux.cpp
@@ -53,6 +53,8 @@
#include "qofonoservice_linux_p.h"
+#ifndef QT_NO_BEARERMANAGEMENT
+#ifndef QT_NO_DBUS
QT_BEGIN_NAMESPACE
static QDBusConnection dbusConnection = QDBusConnection::systemBus();
@@ -938,3 +940,6 @@ void QOfonoSmsInterface::sendMessage(const QString &to, const QString &message)
}
QT_END_NAMESPACE
+
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
diff --git a/src/plugins/bearer/connman/qofonoservice_linux_p.h b/src/plugins/bearer/connman/qofonoservice_linux_p.h
index 4db08f5..af54ba0 100644
--- a/src/plugins/bearer/connman/qofonoservice_linux_p.h
+++ b/src/plugins/bearer/connman/qofonoservice_linux_p.h
@@ -65,6 +65,9 @@
#include <QtDBus/QDBusContext>
#include <QMap>
+#ifndef QT_NO_BEARERMANAGEMENT
+#ifndef QT_NO_DBUS
+
#define OFONO_SERVICE "org.ofono"
#define OFONO_MANAGER_INTERFACE "org.ofono.Manager"
#define OFONO_MANAGER_PATH "/"
@@ -331,4 +334,7 @@ Q_SIGNALS:
QT_END_NAMESPACE
+#endif // QT_NO_DBUS
+#endif // QT_NO_BEARERMANAGEMENT
+
#endif //QOFONOSERVICE_H
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index ceb1b03..a3a965e 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -779,6 +779,8 @@ JSC::JSValue JSC_HOST_CALL functionVersion(JSC::ExecState *exec, JSC::JSObject*,
return JSC::JSValue(exec, 1);
}
+#ifndef QT_NO_TRANSLATION
+
static JSC::JSValue JSC_HOST_CALL functionQsTranslate(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
static JSC::JSValue JSC_HOST_CALL functionQsTranslateNoOp(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
static JSC::JSValue JSC_HOST_CALL functionQsTr(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
@@ -917,6 +919,7 @@ JSC::JSValue JSC_HOST_CALL functionQsTrIdNoOp(JSC::ExecState *, JSC::JSObject*,
return JSC::jsUndefined();
return args.at(0);
}
+#endif // QT_NO_TRANSLATION
static JSC::JSValue JSC_HOST_CALL stringProtoFuncArg(JSC::ExecState*, JSC::JSObject*, JSC::JSValue, const JSC::ArgList&);
@@ -3486,12 +3489,15 @@ void QScriptEngine::installTranslatorFunctions(const QScriptValue &object)
if (!jscObject || !jscObject.isObject())
jscObject = d->globalObject();
// unsigned attribs = JSC::DontEnum;
+
+#ifndef QT_NO_TRANSLATION
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 5, JSC::Identifier(exec, "qsTranslate"), QScript::functionQsTranslate));
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 2, JSC::Identifier(exec, "QT_TRANSLATE_NOOP"), QScript::functionQsTranslateNoOp));
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 3, JSC::Identifier(exec, "qsTr"), QScript::functionQsTr));
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "QT_TR_NOOP"), QScript::functionQsTrNoOp));
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "qsTrId"), QScript::functionQsTrId));
JSC::asObject(jscObject)->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "QT_TRID_NOOP"), QScript::functionQsTrIdNoOp));
+#endif
glob->stringPrototype()->putDirectFunction(exec, new (exec)JSC::NativeFunctionWrapper(exec, glob->prototypeFunctionStructure(), 1, JSC::Identifier(exec, "arg"), QScript::stringProtoFuncArg));
}