Example #1
0
ConsoleItem *constructLogItemTree(ConsoleItem *parent, const QVariant &result,
                                     const QString &key = QString())
{
    if (!result.isValid())
        return 0;

    ConsoleItem *item = new ConsoleItem(parent);
    if (result.type() == QVariant::Map) {
        if (key.isEmpty())
            item->setText(QLatin1String("Object"));
        else
            item->setText(key + QLatin1String(" : Object"));

        QMapIterator<QString, QVariant> i(result.toMap());
        while (i.hasNext()) {
            i.next();
            ConsoleItem *child = constructLogItemTree(item, i.value(), i.key());
            if (child)
                item->insertChild(child, true);
        }
    } else if (result.type() == QVariant::List) {
        if (key.isEmpty())
            item->setText(QLatin1String("List"));
        else
            item->setText(QString(QLatin1String("[%1] : List")).arg(key));
        QVariantList resultList = result.toList();
        for (int i = 0; i < resultList.count(); i++) {
            ConsoleItem *child = constructLogItemTree(item, resultList.at(i),
                                                          QString::number(i));
            if (child)
                item->insertChild(child, true);
        }
    } else if (result.canConvert(QVariant::String)) {
        item->setText(result.toString());
    } else {
        item->setText(QLatin1String("Unknown Value"));
    }

    return item;
}
Example #2
0
void QmlConsoleModel::evaluate(const QString &expression)
{
    QmlConsoleManager *manager = qobject_cast<QmlConsoleManager *>(QmlConsoleManager::instance());
    if (manager) {
        if (manager->d->scriptEvaluator) {
            QmlConsoleModel::qmlConsoleItemModel()->appendEditableRow();
            manager->d->scriptEvaluator->evaluateScript(expression);
        } else {
            QVariant result = manager->d->scriptEngine->evaluate(expression).toVariant();
            ConsoleItem *root = manager->rootItem();
            ConsoleItem *item = constructLogItemTree(root, result);
            if (item) {
                QmlConsoleModel::qmlConsoleItemModel()->appendEditableRow();
                manager->printToConsolePane(item);
            }
        }
    }
}
Example #3
0
void QmlConsoleModel::evaluate(const QString &expression)
{
    QmlConsoleManager *manager = qobject_cast<QmlConsoleManager *>(QmlConsoleManager::instance());
    if (manager) {
        if (manager->d->scriptEvaluator) {
            QmlConsoleModel::qmlConsoleItemModel()->appendEditableRow();
            manager->d->scriptEvaluator->evaluateScript(expression);
        } else {
            ConsoleItem *root = manager->rootItem();
            ConsoleItem *item = constructLogItemTree(
                        root, QCoreApplication::translate("QmlJSTools::Internal::QmlConsoleModel",
                                                          "Can only evaluate during a QML debug session."));
            if (item) {
                QmlConsoleModel::qmlConsoleItemModel()->appendEditableRow();
                manager->printToConsolePane(item);
            }
        }
    }
}