Screenshot fixes, move some code around, fix some stuff
This commit is contained in:
@ -42,6 +42,8 @@ ConsoleWindow::ConsoleWindow(MinecraftProcess *mcproc, QWidget *parent)
|
||||
connect(mcproc, SIGNAL(launch_failed(BaseInstance *)), this,
|
||||
SLOT(onLaunchFailed(BaseInstance *)));
|
||||
|
||||
connect(ui->btnScreenshots, &QPushButton::clicked, this, &ConsoleWindow::uploadScreenshots);
|
||||
|
||||
restoreState(
|
||||
QByteArray::fromBase64(MMC->settings()->get("ConsoleWindowState").toByteArray()));
|
||||
restoreGeometry(
|
||||
@ -52,6 +54,7 @@ ConsoleWindow::ConsoleWindow(MinecraftProcess *mcproc, QWidget *parent)
|
||||
auto icon = MMC->icons()->getIcon(iconKey);
|
||||
setWindowIcon(icon);
|
||||
m_trayIcon = new QSystemTrayIcon(icon, this);
|
||||
// TODO add screenshot upload as a menu item in the tray icon
|
||||
QString consoleTitle = tr("Console window for ") + name;
|
||||
m_trayIcon->setToolTip(consoleTitle);
|
||||
setWindowTitle(consoleTitle);
|
||||
|
@ -51,6 +51,7 @@ private:
|
||||
|
||||
signals:
|
||||
void isClosing();
|
||||
void uploadScreenshots();
|
||||
|
||||
public
|
||||
slots:
|
||||
|
@ -49,6 +49,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="btnScreenshots">
|
||||
<property name="text">
|
||||
<string>Upload Screenshots</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
|
@ -1235,6 +1235,7 @@ void MainWindow::launchInstance(BaseInstance *instance, AuthSessionPtr session)
|
||||
|
||||
console = new ConsoleWindow(proc);
|
||||
connect(console, SIGNAL(isClosing()), this, SLOT(instanceEnded()));
|
||||
connect(console, &ConsoleWindow::uploadScreenshots, this, &MainWindow::on_actionScreenshots_triggered);
|
||||
|
||||
proc->setLogin(session);
|
||||
proc->launch();
|
||||
@ -1516,34 +1517,15 @@ void MainWindow::on_actionScreenshots_triggered()
|
||||
return;
|
||||
}
|
||||
ScreenshotDialog dialog(list, this);
|
||||
if (dialog.exec() == QDialog::Accepted)
|
||||
if (dialog.exec() == ScreenshotDialog::Accepted)
|
||||
{
|
||||
QList<ScreenShot *> screenshots = dialog.selected();
|
||||
if (screenshots.size() == 0)
|
||||
return;
|
||||
NetJob *job = new NetJob("Screenshot Upload");
|
||||
for (ScreenShot *shot : screenshots)
|
||||
job->addNetAction(ScreenShotUpload::make(shot));
|
||||
ProgressDialog prog2(this);
|
||||
prog2.exec(job);
|
||||
connect(job, &NetJob::failed, [this]
|
||||
QStringList urls;
|
||||
for (ScreenShot *shot : dialog.uploaded())
|
||||
{
|
||||
CustomMessageBox::selectable(this, tr("Failed to upload screenshots!"),
|
||||
tr("Unknown error"), QMessageBox::Warning)->exec();
|
||||
});
|
||||
connect(job, &NetJob::succeeded, [this, screenshots]
|
||||
{ screenshotsUploaded(screenshots); });
|
||||
urls << QString("<a href=\"" + shot->url + "\">Image %s</a>")
|
||||
.arg(QString::number(shot->imgurIndex));
|
||||
}
|
||||
CustomMessageBox::selectable(this, tr("Done uploading!"), urls.join("\n"),
|
||||
QMessageBox::Information)->exec();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::screenshotsUploaded(QList<ScreenShot *> screenshots)
|
||||
{
|
||||
QStringList urls;
|
||||
for (ScreenShot *shot : screenshots)
|
||||
{
|
||||
urls << QString("<a href=\"" + shot->url + "\">Image %s</a>")
|
||||
.arg(QString::number(shot->imgurIndex));
|
||||
}
|
||||
CustomMessageBox::selectable(this, tr("Done uploading!"), urls.join("\n"),
|
||||
QMessageBox::Information)->exec();
|
||||
}
|
||||
|
@ -170,8 +170,6 @@ slots:
|
||||
|
||||
void reloadStatus();
|
||||
|
||||
void screenshotsUploaded(QList<class ScreenShot*> screenshots);
|
||||
|
||||
/*!
|
||||
* Runs the DownloadUpdateTask and installs updates.
|
||||
*/
|
||||
|
@ -1,6 +1,13 @@
|
||||
#include "ScreenshotDialog.h"
|
||||
#include "ui_ScreenshotDialog.h"
|
||||
#include "QModelIndex"
|
||||
|
||||
#include <QModelIndex>
|
||||
#include <QDebug>
|
||||
|
||||
#include "ProgressDialog.h"
|
||||
#include "CustomMessageBox.h"
|
||||
#include "logic/net/NetJob.h"
|
||||
#include "logic/net/ScreenshotUploader.h"
|
||||
|
||||
ScreenshotDialog::ScreenshotDialog(ScreenshotList *list, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
@ -16,7 +23,12 @@ ScreenshotDialog::~ScreenshotDialog()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
QList<ScreenShot*> ScreenshotDialog::selected()
|
||||
QList<ScreenShot *> ScreenshotDialog::uploaded() const
|
||||
{
|
||||
return m_uploaded;
|
||||
}
|
||||
|
||||
QList<ScreenShot*> ScreenshotDialog::selected() const
|
||||
{
|
||||
QList<ScreenShot*> list;
|
||||
QList<ScreenShot*> first = m_list->screenshots();
|
||||
@ -26,3 +38,29 @@ QList<ScreenShot*> ScreenshotDialog::selected()
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
void ScreenshotDialog::on_buttonBox_accepted()
|
||||
{
|
||||
QList<ScreenShot *> 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);
|
||||
}
|
||||
|
@ -18,12 +18,21 @@ public:
|
||||
explicit ScreenshotDialog(ScreenshotList *list, QWidget *parent = 0);
|
||||
~ScreenshotDialog();
|
||||
|
||||
QList<ScreenShot *> selected();
|
||||
enum
|
||||
{
|
||||
NothingDone = 0x42
|
||||
};
|
||||
|
||||
QList<ScreenShot *> uploaded() const;
|
||||
|
||||
private
|
||||
slots:
|
||||
void on_buttonBox_accepted();
|
||||
|
||||
private:
|
||||
Ui::ScreenshotDialog *ui;
|
||||
ScreenshotList *m_list;
|
||||
QList<ScreenShot *> m_uploaded;
|
||||
|
||||
QList<ScreenShot *> selected() const;
|
||||
};
|
||||
|
@ -66,22 +66,6 @@
|
||||
<include location="../../resources/multimc/multimc.qrc"/>
|
||||
</resources>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>ScreenshotDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
|
Reference in New Issue
Block a user