SEXP qt_qtext_QGraphicsItem(SEXP item) { QGraphicsItem *i = unwrapQGraphicsItem(item, QGraphicsItem); QGraphicsTextItem *textitem = qgraphicsitem_cast<QGraphicsTextItem *>(i); if (textitem) return qstring2sexp(textitem->toPlainText()); else return qstring2sexp(QString("")); }
bool qvariant_into_vector(QVariant variant, SEXP v, int index) { if (!isVector(v)) error("Setting vector element from QVariant: not a vector"); switch(TYPEOF(v)) { case RAWSXP: RAW(v)[index] = variant.value<unsigned char>(); break; case LGLSXP: LOGICAL(v)[index] = variant.value<bool>(); break; case REALSXP: REAL(v)[index] = variant.value<double>(); break; case INTSXP: { SEXP levels; if ((levels = getAttrib(v, R_LevelsSymbol)) != R_NilValue) { QString qstr = variant.value<QString>(); int level = 0; for (int i = 0; i < length(levels); i++) if (qstr == CHAR(STRING_ELT(levels, i))) level = i + 1; if (level == 0) return(false); INTEGER(v)[index] = level; } else INTEGER(v)[index] = variant.value<int>(); break; } case STRSXP: SET_STRING_ELT(v, index, qstring2sexp(variant.value<QString>())); break; case VECSXP: SET_VECTOR_ELT(v, index, to_sexp(variant)); break; default: error("Setting vector element from QVariant: unhandled vector type"); } return(true); }
SEXP qt_qtext_QLineEdit(SEXP x) { return qstring2sexp(unwrapQObject(x, QLineEdit)->text()); }
SEXP qt_qtext_QLabel(SEXP x) { return qstring2sexp(unwrapQObject(x, QLabel)->text()); }
SEXP qt_qtext_QAbstractButton(SEXP x) { return qstring2sexp(unwrapQObject(x, QAbstractButton)->text()); }
SEXP to_sexp(QVariant variant) { SEXP ans = NULL; switch(variant.type()) { case QMetaType::Void: ans = R_NilValue; break; case QMetaType::UChar: ans = ScalarRaw(variant.value<unsigned char>()); break; case QMetaType::Bool: ans = ScalarLogical(variant.value<bool>()); break; case QMetaType::Int: case QMetaType::UInt: case QMetaType::Long: case QMetaType::Short: case QMetaType::UShort: ans = ScalarInteger(variant.value<int>()); break; case QMetaType::Double: case QMetaType::LongLong: case QMetaType::ULong: case QMetaType::ULongLong: case QMetaType::Float: ans = ScalarReal(variant.value<double>()); break; case QMetaType::QChar: case QMetaType::Char: case QMetaType::QString: ans = qstring2sexp(variant.value<QString>()); break; case QMetaType::QByteArray: ans = to_sexp(variant.value<QByteArray>()); break; case QMetaType::VoidStar: ans = wrapPointer(variant.value<void *>()); break; case QMetaType::QObjectStar: ans = ptr_to_sexp(variant.value<QObject *>(), SmokeType(qt_Smoke, "QObject")); break; case QMetaType::QWidgetStar: ans = ptr_to_sexp(variant.value<QWidget *>(), SmokeType(qt_Smoke, "QWidget")); break; case QMetaType::QCursor: ans = QVARIANT_TO_SEXP(variant, QCursor); break; case QMetaType::QDate: ans = QVARIANT_TO_SEXP(variant, QDate); break; case QMetaType::QSize: ans = QVARIANT_TO_SEXP(variant, QSize); case QMetaType::QSizeF: ans = QVARIANT_TO_SEXP(variant, QSizeF); break; case QMetaType::QTime: ans = QVARIANT_TO_SEXP(variant, QTime); break; case QMetaType::QVariantList: ans = to_sexp(variant.value<QVariantList>(), SmokeType(qt_Smoke, "QList<QVariant>")); break; case QMetaType::QPolygon: ans = QVARIANT_TO_SEXP(variant, QPolygon); break; case QMetaType::QColor: ans = QVARIANT_TO_SEXP(variant, QColor); break; case QMetaType::QRectF: ans = QVARIANT_TO_SEXP(variant, QRectF); break; case QMetaType::QRect: ans = QVARIANT_TO_SEXP(variant, QRect); break; case QMetaType::QLine: ans = QVARIANT_TO_SEXP(variant, QLine); break; case QMetaType::QTextLength: ans = QVARIANT_TO_SEXP(variant, QTextLength); break; case QMetaType::QStringList: ans = to_sexp(variant.value<QStringList>(), SmokeType(qt_Smoke, "QStringList")); break; case QMetaType::QVariantMap: ans = to_sexp(variant.value<QVariantMap>(), SmokeType(qt_Smoke, "QMap<QString,QVariant>")); break; case QMetaType::QVariantHash: ans = to_sexp(variant.value<QVariantHash>(), SmokeType(qt_Smoke, "QHash<QString,QVariant>")); break; case QMetaType::QIcon: ans = QVARIANT_TO_SEXP(variant, QIcon); break; case QMetaType::QPen: ans = QVARIANT_TO_SEXP(variant, QPen); break; case QMetaType::QLineF: ans = QVARIANT_TO_SEXP(variant, QLineF); break; case QMetaType::QTextFormat: ans = QVARIANT_TO_SEXP(variant, QTextFormat); break; case QMetaType::QPoint: ans = QVARIANT_TO_SEXP(variant, QPoint); break; case QMetaType::QPointF: ans = QVARIANT_TO_SEXP(variant, QPointF); break; case QMetaType::QUrl: ans = QVARIANT_TO_SEXP(variant, QUrl); break; case QMetaType::QRegExp: ans = QVARIANT_TO_SEXP(variant, QRegExp); break; case QMetaType::QDateTime: ans = QVARIANT_TO_SEXP(variant, QDateTime); break; case QMetaType::QPalette: ans = QVARIANT_TO_SEXP(variant, QPalette); break; case QMetaType::QFont: ans = QVARIANT_TO_SEXP(variant, QFont); break; case QMetaType::QBrush: ans = QVARIANT_TO_SEXP(variant, QBrush); break; case QMetaType::QRegion: ans = QVARIANT_TO_SEXP(variant, QRegion); break; case QMetaType::QBitArray: ans = QVARIANT_TO_SEXP(variant, QBitArray); break; case QMetaType::QImage: ans = QVARIANT_TO_SEXP(variant, QImage); break; case QMetaType::QKeySequence: ans = QVARIANT_TO_SEXP(variant, QKeySequence); break; case QMetaType::QSizePolicy: ans = QVARIANT_TO_SEXP(variant, QSizePolicy); break; case QMetaType::QPixmap: ans = QVARIANT_TO_SEXP(variant, QPixmap); break; case QMetaType::QLocale: ans = QVARIANT_TO_SEXP(variant, QLocale); break; case QMetaType::QBitmap: ans = QVARIANT_TO_SEXP(variant, QBitmap); break; case QMetaType::QMatrix: /* obsolete */ ans = QVARIANT_TO_SEXP(variant, QMatrix); break; #if QT_VERSION >= 0x40300 case QMetaType::QTransform: ans = QVARIANT_TO_SEXP(variant, QTransform); break; #endif #if QT_VERSION >= 0x40600 case QMetaType::QMatrix4x4: ans = QVARIANT_TO_SEXP(variant, QMatrix4x4); break; case QMetaType::QVector2D: ans = QVARIANT_TO_SEXP(variant, QVector2D); break; case QMetaType::QVector3D: ans = QVARIANT_TO_SEXP(variant, QVector3D); break; case QMetaType::QVector4D: ans = QVARIANT_TO_SEXP(variant, QVector4D); break; case QMetaType::QQuaternion: ans = QVARIANT_TO_SEXP(variant, QQuaternion); break; #endif case QMetaType::User: break; default: error("Converting from QVariant: unhandled Qt type"); } if (!ans) error("Converting from QVariant: Qt type not yet implemented"); return ans; }