src/gui/widgets/qabstractspinbox.cpp File Reference

#include <qplatformdefs.h>
#include <private/qabstractspinbox_p.h>
#include <private/qdatetime_p.h>
#include <qabstractspinbox.h>
#include <qapplication.h>
#include <qclipboard.h>
#include <qdatetime.h>
#include <qdatetimeedit.h>
#include <qevent.h>
#include <qmenu.h>
#include <qpainter.h>
#include <qpalette.h>
#include <qstyle.h>
#include <qdebug.h>
#include <limits.h>
#include "moc_qabstractspinbox.cpp"

Include dependency graph for qabstractspinbox.cpp:

Go to the source code of this file.

Defines

#define QASBDEBUG   if (false) qDebug

Functions

QVariant operator+ (const QVariant &arg1, const QVariant &arg2)
QVariant operator- (const QVariant &arg1, const QVariant &arg2)
QVariant operator * (const QVariant &arg1, double multiplier)
double operator/ (const QVariant &arg1, const QVariant &arg2)

Variables

static const int thresholdTime = 500


Define Documentation

#define QASBDEBUG   if (false) qDebug

Definition at line 51 of file qabstractspinbox.cpp.

Referenced by QAbstractSpinBoxPrivate::interpret().


Function Documentation

QVariant operator * ( const QVariant arg1,
double  multiplier 
)

Definition at line 1823 of file qabstractspinbox.cpp.

References QDateTime::date(), QVariant::DateTime, QVariant::Double, int, QVariant::Int, QDATETIMEEDIT_DATE_MIN, QDATETIMEEDIT_TIME_MIN, QDateTime::time(), QVariant::toDateTime(), QVariant::toDouble(), QVariant::toInt(), and QVariant::type().

01824 {
01825     QVariant ret;
01826 
01827     switch (arg1.type()) {
01828     case QVariant::Int: ret = QVariant((int)(arg1.toInt() * multiplier)); break;
01829     case QVariant::Double: ret = QVariant(arg1.toDouble() * multiplier); break;
01830     case QVariant::DateTime: {
01831         double days = QDATETIMEEDIT_DATE_MIN.daysTo(arg1.toDateTime().date()) * multiplier;
01832         int daysInt = (int)days;
01833         days -= daysInt;
01834         long msecs = (long)((QDATETIMEEDIT_TIME_MIN.msecsTo(arg1.toDateTime().time()) * multiplier)
01835                             + (days * (24 * 3600 * 1000)));
01836         ret = QDateTime(QDate().addDays(int(days)), QTime().addMSecs(msecs));
01837         break;
01838     }
01839     default: ret = arg1; break;
01840     }
01841 
01842     return ret;
01843 }

Here is the call graph for this function:

QVariant operator+ ( const QVariant arg1,
const QVariant arg2 
)

Definition at line 1763 of file qabstractspinbox.cpp.

01764 {
01765     QVariant ret;
01766     if (arg1.type() != arg2.type())
01767         qWarning("QAbstractSpinBox: Internal error: Different types (%s vs %s) (%s:%d)",
01768                  arg1.typeName(), arg2.typeName(), __FILE__, __LINE__);
01769     switch (arg1.type()) {
01770     case QVariant::Int: ret = QVariant(arg1.toInt() + arg2.toInt()); break;
01771     case QVariant::Double: ret = QVariant(arg1.toDouble() + arg2.toDouble()); break;
01772     case QVariant::DateTime: {
01773         QDateTime a2 = arg2.toDateTime();
01774         QDateTime a1 = arg1.toDateTime().addDays(QDATETIMEEDIT_DATETIME_MIN.daysTo(a2));
01775         a1.setTime(a1.time().addMSecs(QTime().msecsTo(a2.time())));
01776         ret = QVariant(a1);
01777     }
01778     default: break;
01779     }
01780     return ret;
01781 }

QVariant operator- ( const QVariant arg1,
const QVariant arg2 
)

Definition at line 1789 of file qabstractspinbox.cpp.

References QDateTime::addDays(), QTime::addMSecs(), QDateTime::addSecs(), QVariant::DateTime, QDateTime::daysTo(), QVariant::Double, QVariant::Int, QTime::msec(), qMax(), qWarning(), QDateTime::secsTo(), QDateTime::setTime(), QDateTime::time(), QVariant::toDateTime(), QVariant::toDouble(), QVariant::toInt(), QVariant::type(), and QVariant::typeName().

01790 {
01791     QVariant ret;
01792     if (arg1.type() != arg2.type())
01793         qWarning("QAbstractSpinBox: Internal error: Different types (%s vs %s) (%s:%d)",
01794                  arg1.typeName(), arg2.typeName(), __FILE__, __LINE__);
01795     switch (arg1.type()) {
01796     case QVariant::Int: ret = QVariant(arg1.toInt() - arg2.toInt()); break;
01797     case QVariant::Double: ret = QVariant(arg1.toDouble() - arg2.toDouble()); break;
01798     case QVariant::DateTime: {
01799         QDateTime a1 = arg1.toDateTime();
01800         QDateTime a2 = arg2.toDateTime();
01801         int days = a2.daysTo(a1);
01802         int secs = a2.secsTo(a1);
01803         int msecs = qMax(0, a1.time().msec() - a2.time().msec());
01804         if (days < 0 || secs < 0 || msecs < 0) {
01805             ret = arg1;
01806         } else {
01807             QDateTime dt = a2.addDays(days).addSecs(secs);
01808             if (msecs > 0)
01809                 dt.setTime(dt.time().addMSecs(msecs));
01810             ret = QVariant(dt);
01811         }
01812     }
01813     default: break;
01814     }
01815     return ret;
01816 }

Here is the call graph for this function:

double operator/ ( const QVariant arg1,
const QVariant arg2 
)

Definition at line 1847 of file qabstractspinbox.cpp.

References QVariant::DateTime, QVariant::Double, QVariant::Int, QDATETIMEEDIT_DATE_MIN, QDATETIMEEDIT_TIME_MIN, QDateTime::time(), QVariant::toDate(), QVariant::toDateTime(), QVariant::toDouble(), QVariant::toInt(), and QVariant::type().

01848 {
01849     double a1 = 0;
01850     double a2 = 0;
01851 
01852     switch (arg1.type()) {
01853     case QVariant::Int:
01854         a1 = (double)arg1.toInt();
01855         a2 = (double)arg2.toInt();
01856         break;
01857     case QVariant::Double:
01858         a1 = arg1.toDouble();
01859         a2 = arg2.toDouble();
01860         break;
01861     case QVariant::DateTime:
01862         a1 = QDATETIMEEDIT_DATE_MIN.daysTo(arg1.toDate());
01863         a2 = QDATETIMEEDIT_DATE_MIN.daysTo(arg2.toDate());
01864         a1 += (double)QDATETIMEEDIT_TIME_MIN.msecsTo(arg1.toDateTime().time()) / (long)(3600 * 24 * 1000);
01865         a2 += (double)QDATETIMEEDIT_TIME_MIN.msecsTo(arg2.toDateTime().time()) / (long)(3600 * 24 * 1000);
01866     default: break;
01867     }
01868 
01869     return (a1 != 0 && a2 != 0) ? (a1 / a2) : 0.0;
01870 }

Here is the call graph for this function:


Variable Documentation

const int thresholdTime = 500 [static]

Definition at line 45 of file qabstractspinbox.cpp.

Referenced by QAbstractSpinBox::changeEvent(), and QAbstractSpinBoxPrivate::init().


Generated on Thu Mar 15 13:46:58 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1