summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-07-07 00:02:04 +0200
committerPetr Mrázek <peterix@gmail.com>2014-07-07 00:02:04 +0200
commitd934e6483190d7d173051380c62bc040911b42cd (patch)
treefe8a09797a23d324b13d5b3d08ffe9b1aaf55459
parent15775bd30a3269adece8272badaee70823d64ec6 (diff)
downloadMultiMC-d934e6483190d7d173051380c62bc040911b42cd.tar
MultiMC-d934e6483190d7d173051380c62bc040911b42cd.tar.gz
MultiMC-d934e6483190d7d173051380c62bc040911b42cd.tar.lz
MultiMC-d934e6483190d7d173051380c62bc040911b42cd.tar.xz
MultiMC-d934e6483190d7d173051380c62bc040911b42cd.zip
Tweak the response to successful uploads (screenshots, log pastes)
The url will now be shown as link, put into the clipboard AND opened in a browser. At the same time. To avoid losing the URL.
-rw-r--r--gui/pages/LogPage.cpp15
-rw-r--r--gui/pages/ScreenshotsPage.cpp10
-rw-r--r--logic/net/PasteUpload.cpp5
-rw-r--r--logic/net/PasteUpload.h11
4 files changed, 35 insertions, 6 deletions
diff --git a/gui/pages/LogPage.cpp b/gui/pages/LogPage.cpp
index dd088862..a9e32cc2 100644
--- a/gui/pages/LogPage.cpp
+++ b/gui/pages/LogPage.cpp
@@ -6,6 +6,8 @@
#include "ui_LogPage.h"
#include "logic/net/PasteUpload.h"
#include <QScrollBar>
+#include <QtGui/QClipboard>
+#include <QtGui/QDesktopServices>
QString LogPage::displayName()
{
@@ -56,6 +58,19 @@ void LogPage::on_btnPaste_clicked()
CustomMessageBox::selectable(this, "Upload failed", paste->failReason(),
QMessageBox::Critical)->exec();
}
+ else
+ {
+ QString link = paste->pasteLink();
+ QClipboard *clipboard = QApplication::clipboard();
+ clipboard->setText(link);
+ QDesktopServices::openUrl(link);
+ CustomMessageBox::selectable(
+ this, tr("Upload finished"),
+ tr("The <a href=\"%1\">link to the uploaded log</a> has been opened in the default browser and placed in your clipboard.")
+ .arg(link),
+ QMessageBox::Information)->exec();
+ }
+ delete paste;
}
void LogPage::writeColor(QString text, const char *color, const char * background)
diff --git a/gui/pages/ScreenshotsPage.cpp b/gui/pages/ScreenshotsPage.cpp
index 466b3c19..ff4f0099 100644
--- a/gui/pages/ScreenshotsPage.cpp
+++ b/gui/pages/ScreenshotsPage.cpp
@@ -11,6 +11,8 @@
#include <QLineEdit>
#include <QtGui/qevent.h>
#include <QtGui/QPainter>
+#include <QtGui/QClipboard>
+#include <QtGui/QDesktopServices>
#include <pathutils.h>
@@ -333,11 +335,15 @@ void ScreenshotsPage::on_uploadBtn_clicked()
}
else
{
+ auto link = QString("https://imgur.com/a/%1").arg(imgurAlbum->id());
+ QClipboard *clipboard = QApplication::clipboard();
+ clipboard->setText(link);
+ QDesktopServices::openUrl(link);
CustomMessageBox::selectable(
this, tr("Upload finished"),
- tr("<a href=\"https://imgur.com/a/%1\">Visit album</a><br/>Delete hash: %2 (save "
+ tr("The <a href=\"%1\">link to the uploaded album</a> has been opened in the default browser and placed in your clipboard.<br/>Delete hash: %2 (save "
"this if you want to be able to edit/delete the album)")
- .arg(imgurAlbum->id(), imgurAlbum->deleteHash()),
+ .arg(link, imgurAlbum->deleteHash()),
QMessageBox::Information)->exec();
}
}
diff --git a/logic/net/PasteUpload.cpp b/logic/net/PasteUpload.cpp
index ec0b2c60..ccd7dc48 100644
--- a/logic/net/PasteUpload.cpp
+++ b/logic/net/PasteUpload.cpp
@@ -77,9 +77,8 @@ bool PasteUpload::parseResult(QJsonDocument doc)
QLOG_ERROR() << "paste.ee reported error:" << QString(object.value("error").toString());
return false;
}
- // FIXME: not the place for GUI things.
- QString pasteUrl = object.value("paste").toObject().value("link").toString();
- QDesktopServices::openUrl(pasteUrl);
+ m_pasteLink = object.value("paste").toObject().value("link").toString();
+ m_pasteID = object.value("paste").toObject().value("id").toString();
return true;
}
diff --git a/logic/net/PasteUpload.h b/logic/net/PasteUpload.h
index 55cfabf4..0ddc8cef 100644
--- a/logic/net/PasteUpload.h
+++ b/logic/net/PasteUpload.h
@@ -10,7 +10,14 @@ class PasteUpload : public Task
public:
PasteUpload(QWidget *window, QString text);
virtual ~PasteUpload(){};
-
+ QString pasteLink()
+ {
+ return m_pasteLink;
+ }
+ QString pasteID()
+ {
+ return m_pasteID;
+ }
protected:
virtual void executeTask();
@@ -19,6 +26,8 @@ private:
QString m_text;
QString m_error;
QWidget *m_window;
+ QString m_pasteID;
+ QString m_pasteLink;
std::shared_ptr<QNetworkReply> m_reply;
public
slots: