Exemple #1
0
QString upload(PuushFile file) {
    QDateTime time = QDateTime::currentDateTime();
    QList<FormField> formData = {
        textField("k", settings.apiKey.toUtf8()),
        textField("z", "poop"),
        dataField("f", file.name, file.data)
    };

    QHttpMultiPart *form = createForm(formData);
    QNetworkReply *reply = apiCall("/api/up", form);

    if (!reply)
        return QString();

    QString replyText = QString::fromUtf8(reply->readAll());
    QStringList replyParts = replyText.split(',');

    if (replyParts.length() < 3) {
        if (!replyParts.isEmpty()) {
            if (replyParts.first() == "-2")
                trayicon->showMessage(QObject::tr("Upload error."), QObject::tr("Server rejected request."), QSystemTrayIcon::Critical);
            else if (replyParts.first() == "-1")
                trayicon->showMessage(QObject::tr("Upload error."), QObject::tr("Server error."), QSystemTrayIcon::Critical);
            else
                trayicon->showMessage(QObject::tr("Upload error."), QObject::tr("Unknown server error."), QSystemTrayIcon::Critical);
        } else {
            trayicon->showMessage(QObject::tr("Upload error."), QObject::tr("Empty response."), QSystemTrayIcon::Critical);
        }
        return QString();
    }

    recent.prepend({replyParts.at(2).toInt(), time, replyParts.at(1), file.name});
    setupMenu();

    QString url = replyParts.at(1);

    trayicon->showMessage(QObject::tr("Upload successful."), url, QSystemTrayIcon::Information, 5000);

    if (settings.onPuushActions & Settings::PlaySound)
        playSound("qrc:/notify.wav");
    if (settings.onPuushActions & Settings::CopyLink)
        setClipboardText(url);
    if (settings.onPuushActions & Settings::OpenInBrowser)
        QDesktopServices::openUrl(url);

    return url;
}
IDataField DataTableWidget::dataField(int ARow, const QString &AVar) const
{
	return dataField(ARow,FDataForms->fieldIndex(AVar,FTable.columns));
}
IDataField DataTableWidget::currentField() const
{
	return dataField(currentRow(),currentColumn());
}