summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Dalheimer <jan@dalheimer.de>2014-02-24 10:34:51 +0100
committerJan Dalheimer <jan@dalheimer.de>2014-02-24 10:34:51 +0100
commita8811a27f78698f1ab2acad47e90f3b16274e221 (patch)
tree4986fed4712433484597e4a63a022ee5c989c337
parent226c1bdae5ec615381965b6731f6496dffa3299e (diff)
downloadMultiMC-a8811a27f78698f1ab2acad47e90f3b16274e221.tar
MultiMC-a8811a27f78698f1ab2acad47e90f3b16274e221.tar.gz
MultiMC-a8811a27f78698f1ab2acad47e90f3b16274e221.tar.lz
MultiMC-a8811a27f78698f1ab2acad47e90f3b16274e221.tar.xz
MultiMC-a8811a27f78698f1ab2acad47e90f3b16274e221.zip
Working screenshot upload
-rw-r--r--gui/MainWindow.cpp4
-rw-r--r--gui/dialogs/ScreenshotDialog.cpp15
-rw-r--r--gui/dialogs/ScreenshotDialog.h2
-rw-r--r--gui/dialogs/ScreenshotDialog.ui114
-rw-r--r--logic/lists/ScreenshotList.cpp7
-rw-r--r--logic/lists/ScreenshotList.h4
-rw-r--r--logic/net/ScreenshotUploader.cpp7
7 files changed, 84 insertions, 69 deletions
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index f79b981a..93608a0e 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -1522,8 +1522,8 @@ void MainWindow::on_actionScreenshots_triggered()
QStringList urls;
for (ScreenShot *shot : dialog.uploaded())
{
- urls << QString("<a href=\"" + shot->url + "\">Image %s</a>")
- .arg(QString::number(shot->imgurIndex));
+ urls << QString("<a href=\"" + shot->url + "\">Image %1</a>")
+ .arg(shot->timestamp.toString());
}
CustomMessageBox::selectable(this, tr("Done uploading!"), urls.join("\n"),
QMessageBox::Information)->exec();
diff --git a/gui/dialogs/ScreenshotDialog.cpp b/gui/dialogs/ScreenshotDialog.cpp
index 02764fa3..33e93162 100644
--- a/gui/dialogs/ScreenshotDialog.cpp
+++ b/gui/dialogs/ScreenshotDialog.cpp
@@ -39,7 +39,7 @@ QList<ScreenShot*> ScreenshotDialog::selected() const
return list;
}
-void ScreenshotDialog::on_buttonBox_accepted()
+void ScreenshotDialog::on_uploadBtn_clicked()
{
QList<ScreenShot *> screenshots = selected();
if (screenshots.isEmpty())
@@ -50,17 +50,18 @@ void ScreenshotDialog::on_buttonBox_accepted()
NetJob *job = new NetJob("Screenshot Upload");
for (ScreenShot *shot : screenshots)
{
- qDebug() << shot->file;
job->addNetAction(ScreenShotUpload::make(shot));
}
+ m_uploaded = screenshots;
ProgressDialog prog(this);
- prog.exec(job);
- connect(job, &NetJob::failed, [this]
+ if (prog.exec(job) == QDialog::Accepted)
+ {
+ accept();
+ }
+ else
{
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);
+ }
}
diff --git a/gui/dialogs/ScreenshotDialog.h b/gui/dialogs/ScreenshotDialog.h
index 1ca27bdd..104814f1 100644
--- a/gui/dialogs/ScreenshotDialog.h
+++ b/gui/dialogs/ScreenshotDialog.h
@@ -27,7 +27,7 @@ public:
private
slots:
- void on_buttonBox_accepted();
+ void on_uploadBtn_clicked();
private:
Ui::ScreenshotDialog *ui;
diff --git a/gui/dialogs/ScreenshotDialog.ui b/gui/dialogs/ScreenshotDialog.ui
index 7eeab859..9e4bd6f0 100644
--- a/gui/dialogs/ScreenshotDialog.ui
+++ b/gui/dialogs/ScreenshotDialog.ui
@@ -17,68 +17,82 @@
<iconset resource="../../resources/multimc/multimc.qrc">
<normaloff>:/icons/multimc/scalable/apps/multimc.svg</normaloff>:/icons/multimc/scalable/apps/multimc.svg</iconset>
</property>
- <widget class="QDialogButtonBox" name="buttonBox">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>260</y>
- <width>441</width>
- <height>31</height>
- </rect>
- </property>
- <property name="standardButtons">
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- <widget class="QListView" name="listView">
- <property name="geometry">
- <rect>
- <x>10</x>
- <y>10</y>
- <width>439</width>
- <height>241</height>
- </rect>
- </property>
- <property name="selectionMode">
- <enum>QAbstractItemView::ExtendedSelection</enum>
- </property>
- <property name="selectionBehavior">
- <enum>QAbstractItemView::SelectItems</enum>
- </property>
- <property name="iconSize">
- <size>
- <width>120</width>
- <height>90</height>
- </size>
- </property>
- <property name="flow">
- <enum>QListView::LeftToRight</enum>
- </property>
- <property name="isWrapping" stdset="0">
- <bool>true</bool>
- </property>
- <property name="viewMode">
- <enum>QListView::IconMode</enum>
- </property>
- </widget>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QListView" name="listView">
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectItems</enum>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>120</width>
+ <height>90</height>
+ </size>
+ </property>
+ <property name="flow">
+ <enum>QListView::LeftToRight</enum>
+ </property>
+ <property name="isWrapping" stdset="0">
+ <bool>true</bool>
+ </property>
+ <property name="viewMode">
+ <enum>QListView::IconMode</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="closeBtn">
+ <property name="text">
+ <string>Close</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="uploadBtn">
+ <property name="text">
+ <string>Upload</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
</widget>
<resources>
<include location="../../resources/multimc/multimc.qrc"/>
</resources>
<connections>
<connection>
- <sender>buttonBox</sender>
- <signal>rejected()</signal>
+ <sender>closeBtn</sender>
+ <signal>clicked()</signal>
<receiver>ScreenshotDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
- <x>316</x>
- <y>260</y>
+ <x>315</x>
+ <y>272</y>
</hint>
<hint type="destinationlabel">
- <x>286</x>
- <y>274</y>
+ <x>271</x>
+ <y>258</y>
</hint>
</hints>
</connection>
diff --git a/logic/lists/ScreenshotList.cpp b/logic/lists/ScreenshotList.cpp
index 0565d0a4..6969549c 100644
--- a/logic/lists/ScreenshotList.cpp
+++ b/logic/lists/ScreenshotList.cpp
@@ -1,4 +1,5 @@
#include "ScreenshotList.h"
+
#include <QDir>
#include <QIcon>
@@ -22,9 +23,9 @@ QVariant ScreenshotList::data(const QModelIndex &index, int role) const
case Qt::DecorationRole:
return QIcon(m_screenshots.at(index.row())->file);
case Qt::DisplayRole:
- return m_screenshots.at(index.row())->timestamp;
+ return m_screenshots.at(index.row())->timestamp.toString("yyyy-MM-dd HH:mm:ss");
case Qt::ToolTipRole:
- return m_screenshots.at(index.row())->timestamp;
+ return m_screenshots.at(index.row())->timestamp.toString("yyyy-MM-dd HH:mm:ss");
case Qt::TextAlignmentRole:
return (int)(Qt::AlignHCenter | Qt::AlignVCenter);
default:
@@ -68,7 +69,7 @@ void ScreenshotLoadTask::executeTask()
for (auto file : dir.entryList())
{
ScreenShot *shot = new ScreenShot();
- shot->timestamp = file.left(file.length() - 4);
+ shot->timestamp = QDateTime::fromString(file, "yyyy-MM-dd_HH.mm.ss.png");
shot->file = dir.absoluteFilePath(file);
m_results.append(shot);
}
diff --git a/logic/lists/ScreenshotList.h b/logic/lists/ScreenshotList.h
index 08c968f1..dee74807 100644
--- a/logic/lists/ScreenshotList.h
+++ b/logic/lists/ScreenshotList.h
@@ -7,10 +7,10 @@
class ScreenShot
{
public:
- QString timestamp;
+ QDateTime timestamp;
QString file;
QString url;
- int imgurIndex;
+ QString imgurIndex;
};
class ScreenshotList : public QAbstractListModel
diff --git a/logic/net/ScreenshotUploader.cpp b/logic/net/ScreenshotUploader.cpp
index 829a0815..490c74b3 100644
--- a/logic/net/ScreenshotUploader.cpp
+++ b/logic/net/ScreenshotUploader.cpp
@@ -24,7 +24,6 @@ void ScreenShotUpload::start()
m_status = Job_InProgress;
QNetworkRequest request(m_url);
request.setHeader(QNetworkRequest::UserAgentHeader, "MultiMC/5.0 (Uncached)");
- request.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
request.setRawHeader("Authorization", "Client-ID 5b97b0713fba4a3");
request.setRawHeader("Accept", "application/json");
@@ -47,7 +46,7 @@ void ScreenShotUpload::start()
multipart->append(typePart);
QHttpPart namePart;
namePart.setHeader(QNetworkRequest::ContentDispositionHeader, "form-data; name=\"name\"");
- namePart.setBody(m_shot->timestamp.toUtf8());
+ namePart.setBody(m_shot->timestamp.toString(Qt::ISODate).toUtf8());
multipart->append(namePart);
auto worker = MMC->qnam();
@@ -85,8 +84,8 @@ void ScreenShotUpload::downloadFinished()
emit failed(m_index_within_job);
return;
}
- m_shot->imgurIndex = object.value("data").toObject().value("id").toVariant().toInt();
- m_shot->url = "https://imgur.com/gallery/" + QString::number(m_shot->imgurIndex);
+ m_shot->imgurIndex = object.value("data").toObject().value("id").toString();
+ m_shot->url = object.value("data").toObject().value("link").toString();
m_status = Job_Finished;
emit succeeded(m_index_within_job);
return;