~brendan-donegan/checkbox/legacy-release

« back to all changes in this revision

Viewing changes to checkbox-gui/gui-engine/gui-engine.cpp

"automatic merge by tarmac [r=sylvain-pineau][bug=][author=brendan-donegan]"

Show diffs side-by-side

added added

removed removed

Lines of Context:
2082
2082
    return reply;
2083
2083
}
2084
2084
 
 
2085
QString GuiEngine::SendDataViaTransport(const QString &transport, \
 
2086
                                        const QString &url, \
 
2087
                                        const QString &option_list, \
 
2088
                                        const QString &data)
 
2089
{
 
2090
    QDBusInterface iface(PBBusName, \
 
2091
                         PBObjectPathName, \
 
2092
                         PBInterfaceName, \
 
2093
                         QDBusConnection::sessionBus());
 
2094
    if (!iface.isValid()) {
 
2095
        qDebug() << "Could not connect to " << PBInterfaceName;
 
2096
        return QString("Could not connect to " + PBInterfaceName);
 
2097
    }
 
2098
 
 
2099
    QDBusReply<QString> reply = \
 
2100
            iface.call("SendDataViaTransport", \
 
2101
                       QVariant::fromValue<QString>(transport), \
 
2102
                       QVariant::fromValue<QString>(url), \
 
2103
                       QVariant::fromValue<QString>(option_list), \
 
2104
                       QVariant::fromValue<QString>(data));
 
2105
    if (!reply.isValid()) {
 
2106
        qDebug() << "Error: " << reply.error();
 
2107
        return QString("Error: " + reply.error().message());
 
2108
    }
 
2109
    return reply;                          
 
2110
}
 
2111
 
 
2112
const QString GuiEngine::SendSubmissionViaCertificationTransport( \
 
2113
        const QString &submission_path,
 
2114
        const QString &secure_id,
 
2115
        const bool submit_to_hexr)
 
2116
{
 
2117
    QDBusInterface iface(PBBusName, \
 
2118
                         PBObjectPathName, \
 
2119
                         PBInterfaceName, \
 
2120
                         QDBusConnection::sessionBus());
 
2121
    if (!iface.isValid()) {
 
2122
        qDebug() << "Could not connect to " << PBInterfaceName;
 
2123
        return QString("Could not connect to " + PBInterfaceName);
 
2124
    }
 
2125
 
 
2126
 
 
2127
    QDBusReply<QStringList> reply = iface.call("GetAllTransports");
 
2128
    if (!reply.isValid()) {
 
2129
        qDebug() << "Error: " << reply.error();
 
2130
        return QString("Error: " + reply.error().message());
 
2131
    }
 
2132
    if (!reply.value().contains("certification")) {
 
2133
        return QString("'certification' is not a supported transport");
 
2134
    }
 
2135
 
 
2136
    // Read submission file
 
2137
    QFile submissionFile(submission_path);
 
2138
    QByteArray submissionData;
 
2139
    if (submissionFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
 
2140
        submissionData = submissionFile.readAll();
 
2141
        submissionFile.close();
 
2142
    }
 
2143
    else {
 
2144
        qDebug() << "Could not read " << submission_path;
 
2145
        return QString("Could not read " + submission_path);
 
2146
    }
 
2147
 
 
2148
    QStringList options;
 
2149
    options << QString("secure_id=" + secure_id);
 
2150
    options << QString("submit_to_hexr=" + QString::number(submit_to_hexr));
 
2151
 
 
2152
    return SendDataViaTransport("certification", \
 
2153
            "https://certification.canonical.com/submissions/submit/", \
 
2154
            options.join(','), \
 
2155
            submissionData);
 
2156
}
 
2157
 
2085
2158
void GuiEngine::CatchallIOLogGeneratedSignalsHandler(QDBusMessage /*msg*/)
2086
2159
{
2087
2160
    /* TODO - This could be used for updating a live display of the IO Log