#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_uploadBtn_clicked() { QList screenshots = selected(); if (screenshots.isEmpty()) { done(NothingDone); return; } NetJob *job = new NetJob("Screenshot Upload"); for (ScreenShot *shot : screenshots) { job->addNetAction(ScreenShotUpload::make(shot)); } m_uploaded = screenshots; ProgressDialog prog(this); if (prog.exec(job) == QDialog::Accepted) { accept(); } else { CustomMessageBox::selectable(this, tr("Failed to upload screenshots!"), tr("Unknown error"), QMessageBox::Warning)->exec(); reject(); } }