File: jsresult.cpp

package info (click to toggle)
minitube 3.9.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 8,600 kB
  • sloc: cpp: 19,800; xml: 68; sh: 18; makefile: 11
file content (39 lines) | stat: -rw-r--r-- 1,162 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "jsresult.h"

QJSValue JSResult::setData(QJSValue value) {
    qDebug() << "Success" << value.toString();

    if (isSignalConnected(QMetaMethod::fromSignal(&JSResult::json))) {
        if (value.isObject()) {
            auto doc = QJsonDocument::fromVariant(value.toVariant());
            if (doc.isEmpty()) {
                qDebug() << value.toString();
                emit error("Cannot parse JSON");
                return QJSValue();
            }
            emit json(doc);
        }
    }

    if (isSignalConnected(QMetaMethod::fromSignal(&JSResult::string))) {
        qDebug() << "Emitting string signal";
        if (value.isUndefined() || value.isNull())
            emit string(QString());
        else
            emit string(value.toString());
    }

    // This object has JavascriptOwnership
    // But it is deleted very late by the JS engine
    deleteLater();

    return QJSValue();
}

QJSValue JSResult::setError(QJSValue value) {
    QString message = value.toString();
    qWarning() << "Error" << message;
    qDebug() << value.property("stack").toString().splitRef('\n');
    emit error(message);
    return QJSValue();
}