#include "ScreenshotDialog.h" #include "ui_ScreenshotDialog.h" #include #include #include "ProgressDialog.h" #include "CustomMessageBox.h" #include "logic/net/NetJob.h" #include "logic/net/ScreenshotUploader.h" ScreenshotDialog::ScreenshotDialog(ScreenshotList *list, QWidget *parent) : QDialog(parent), ui(new Ui::ScreenshotDialog), m_list(list) { ui->setupUi(this); ui->listView->setModel(m_list); } ScreenshotDialog::~ScreenshotDialog() { delete ui; } QList ScreenshotDialog::uploaded() const { return m_uploaded; } QList ScreenshotDialog::selected() const { QList list; QList first = m_list->screenshots(); for (QModelIndex index : ui->listView->selectionModel()->selectedRows()) { list.append(first.at(index.row())); } return list; } void ScreenshotDialog::on_buttonBox_accepted() { QList screenshots = selected(); if (screenshots.isEmpty()) { done(NothingDone); return; } NetJob *job = new NetJob("Screenshot Upload"); for (ScreenShot *shot : screenshots) { qDebug() << shot->file; job->addNetAction(ScreenShotUpload::make(shot)); } ProgressDialog prog(this); prog.exec(job); connect(job, &NetJob::failed, [this] { CustomMessageBox::selectable(this, tr("Failed to upload screenshots!"), tr("Unknown error"), QMessageBox::Warning)->exec(); reject(); }); m_uploaded = screenshots; connect(job, &NetJob::succeeded, this, &ScreenshotDialog::accept); }