summaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2014-06-28 17:07:08 +0200
committerPetr Mrázek <peterix@gmail.com>2014-06-28 17:07:08 +0200
commite8731c5d013e67ee0153d5a49b38b0e914d14aa0 (patch)
treeab3611681ec35ea8f10aa7b9a7770c1356b3ef22 /gui
parent30b1f5e5cf935689fc628e37016e650655153d00 (diff)
downloadMultiMC-e8731c5d013e67ee0153d5a49b38b0e914d14aa0.tar
MultiMC-e8731c5d013e67ee0153d5a49b38b0e914d14aa0.tar.gz
MultiMC-e8731c5d013e67ee0153d5a49b38b0e914d14aa0.tar.lz
MultiMC-e8731c5d013e67ee0153d5a49b38b0e914d14aa0.tar.xz
MultiMC-e8731c5d013e67ee0153d5a49b38b0e914d14aa0.zip
Turn screenshot management into a page.
Diffstat (limited to 'gui')
-rw-r--r--gui/ConsoleWindow.cpp17
-rw-r--r--gui/MainWindow.cpp29
-rw-r--r--gui/dialogs/ScreenshotDialog.cpp78
-rw-r--r--gui/dialogs/ScreenshotDialog.h40
-rw-r--r--gui/dialogs/ScreenshotDialog.ui110
-rw-r--r--gui/pagedialog/PageDialog.cpp1
-rw-r--r--gui/pages/BasePage.h4
7 files changed, 11 insertions, 268 deletions
diff --git a/gui/ConsoleWindow.cpp b/gui/ConsoleWindow.cpp
index ac3752c5..d4ce1581 100644
--- a/gui/ConsoleWindow.cpp
+++ b/gui/ConsoleWindow.cpp
@@ -24,7 +24,6 @@
#include <gui/Platform.h>
#include <gui/dialogs/CustomMessageBox.h>
#include <gui/dialogs/ProgressDialog.h>
-#include "dialogs/ScreenshotDialog.h"
#include "logic/net/PasteUpload.h"
#include "logic/icons/IconList.h"
@@ -174,22 +173,6 @@ void ConsoleWindow::on_closeButton_clicked()
void ConsoleWindow::on_btnScreenshots_clicked()
{
- ScreenshotList *list = new ScreenshotList(proc->instance());
- Task *task = list->load();
- ProgressDialog prog(this);
- prog.exec(task);
- if (!task->successful())
- {
- CustomMessageBox::selectable(this, tr("Failed to load screenshots!"),
- task->failReason(), QMessageBox::Warning)->exec();
- return;
- }
- ScreenshotDialog dialog(list, this);
- if (dialog.exec() == ScreenshotDialog::Accepted)
- {
- CustomMessageBox::selectable(this, tr("Done uploading!"), dialog.message(),
- QMessageBox::Information)->exec();
- }
}
void ConsoleWindow::setMayClose(bool mayclose)
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index e5c7dbb1..bee250c4 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -63,7 +63,6 @@
#include "gui/dialogs/UpdateDialog.h"
#include "gui/dialogs/EditAccountDialog.h"
#include "gui/dialogs/NotificationDialog.h"
-#include "dialogs/ScreenshotDialog.h"
#include "gui/ConsoleWindow.h"
#include "pagedialog/PageDialog.h"
@@ -969,6 +968,12 @@ void MainWindow::on_actionEditInstance_triggered()
ShowPageDialog(m_selectedInstance, this);
}
+void MainWindow::on_actionScreenshots_triggered()
+{
+ ShowPageDialog(m_selectedInstance, this, "screenshots");
+}
+
+
void MainWindow::on_actionManageAccounts_triggered()
{
AccountListDialog dialog(this);
@@ -1510,25 +1515,3 @@ void MainWindow::checkSetDefaultJava()
MMC->settings()->set("JavaPath", QString("java"));
}
}
-
-void MainWindow::on_actionScreenshots_triggered()
-{
- if (!m_selectedInstance)
- return;
- ScreenshotList *list = new ScreenshotList(m_selectedInstance);
- Task *task = list->load();
- ProgressDialog prog(this);
- prog.exec(task);
- if (!task->successful())
- {
- CustomMessageBox::selectable(this, tr("Failed to load screenshots!"),
- task->failReason(), QMessageBox::Warning)->exec();
- return;
- }
- ScreenshotDialog dialog(list, this);
- if (dialog.exec() == ScreenshotDialog::Accepted)
- {
- CustomMessageBox::selectable(this, tr("Done uploading!"), dialog.message(),
- QMessageBox::Information)->exec();
- }
-}
diff --git a/gui/dialogs/ScreenshotDialog.cpp b/gui/dialogs/ScreenshotDialog.cpp
deleted file mode 100644
index a88c8dfd..00000000
--- a/gui/dialogs/ScreenshotDialog.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-#include "ScreenshotDialog.h"
-#include "ui_ScreenshotDialog.h"
-
-#include <QModelIndex>
-#include <QMutableListIterator>
-
-#include "ProgressDialog.h"
-#include "CustomMessageBox.h"
-#include "logic/net/NetJob.h"
-#include "logic/screenshots/ImgurUpload.h"
-#include "logic/screenshots/ImgurAlbumCreation.h"
-#include "logic/tasks/SequentialTask.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;
-}
-
-QString ScreenshotDialog::message() const
-{
- return tr("<a href=\"https://imgur.com/a/%1\">Visit album</a><br/>Delete hash: %2 (save "
- "this if you want to be able to edit/delete the album)")
- .arg(m_imgurAlbum->id(), m_imgurAlbum->deleteHash());
-}
-
-QList<ScreenshotPtr> ScreenshotDialog::selected() const
-{
- QList<ScreenshotPtr> list;
- QList<ScreenshotPtr> first = m_list->screenshots();
- for (QModelIndex index : ui->listView->selectionModel()->selectedRows())
- {
- list.append(first.at(index.row()));
- }
- return list;
-}
-
-void ScreenshotDialog::on_uploadBtn_clicked()
-{
- m_uploaded = selected();
- if (m_uploaded.isEmpty())
- {
- done(NothingDone);
- return;
- }
- SequentialTask *task = new SequentialTask(this);
- NetJob *job = new NetJob("Screenshot Upload");
- for (auto shot : m_uploaded)
- {
- job->addNetAction(ImgurUpload::make(shot));
- }
- NetJob *albumTask = new NetJob("Imgur Album Creation");
- albumTask->addNetAction(m_imgurAlbum = ImgurAlbumCreation::make(m_uploaded));
- task->addTask(NetJobPtr(job));
- task->addTask(NetJobPtr(albumTask));
- ProgressDialog prog(this);
- if (prog.exec(task) == QDialog::Accepted)
- {
- accept();
- }
- else
- {
- CustomMessageBox::selectable(this, tr("Failed to upload screenshots!"),
- tr("Unknown error"), QMessageBox::Warning)->exec();
- reject();
- }
-}
-
-void ScreenshotDialog::on_deleteBtn_clicked()
-{
- m_list->deleteSelected(this);
-}
diff --git a/gui/dialogs/ScreenshotDialog.h b/gui/dialogs/ScreenshotDialog.h
deleted file mode 100644
index 29dd6765..00000000
--- a/gui/dialogs/ScreenshotDialog.h
+++ /dev/null
@@ -1,40 +0,0 @@
-#pragma once
-
-#include <QDialog>
-#include "logic/screenshots/ScreenshotList.h"
-
-class ImgurAlbumCreation;
-
-namespace Ui
-{
-class ScreenshotDialog;
-}
-
-class ScreenshotDialog : public QDialog
-{
- Q_OBJECT
-
-public:
- explicit ScreenshotDialog(ScreenshotList *list, QWidget *parent = 0);
- ~ScreenshotDialog();
-
- enum
- {
- NothingDone = 0x42
- };
-
- QString message() const;
- QList<ScreenshotPtr> selected() const;
-
-private
-slots:
- void on_uploadBtn_clicked();
-
- void on_deleteBtn_clicked();
-
-private:
- Ui::ScreenshotDialog *ui;
- ScreenshotList *m_list;
- QList<ScreenshotPtr> m_uploaded;
- std::shared_ptr<ImgurAlbumCreation> m_imgurAlbum;
-};
diff --git a/gui/dialogs/ScreenshotDialog.ui b/gui/dialogs/ScreenshotDialog.ui
deleted file mode 100644
index eb3dafba..00000000
--- a/gui/dialogs/ScreenshotDialog.ui
+++ /dev/null
@@ -1,110 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>ScreenshotDialog</class>
- <widget class="QDialog" name="ScreenshotDialog">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>470</width>
- <height>300</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Screenshot Manager</string>
- </property>
- <property name="windowIcon">
- <iconset resource="../../resources/multimc/multimc.qrc">
- <normaloff>:/icons/multimc/scalable/apps/multimc.svg</normaloff>:/icons/multimc/scalable/apps/multimc.svg</iconset>
- </property>
- <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="resizeMode">
- <enum>QListView::Adjust</enum>
- </property>
- <property name="viewMode">
- <enum>QListView::IconMode</enum>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QPushButton" name="uploadBtn">
- <property name="text">
- <string>Upload</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="deleteBtn">
- <property name="text">
- <string>Delete</string>
- </property>
- </widget>
- </item>
- <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>
- </layout>
- </item>
- </layout>
- </widget>
- <resources>
- <include location="../../resources/multimc/multimc.qrc"/>
- </resources>
- <connections>
- <connection>
- <sender>closeBtn</sender>
- <signal>clicked()</signal>
- <receiver>ScreenshotDialog</receiver>
- <slot>reject()</slot>
- <hints>
- <hint type="sourcelabel">
- <x>315</x>
- <y>272</y>
- </hint>
- <hint type="destinationlabel">
- <x>271</x>
- <y>258</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/gui/pagedialog/PageDialog.cpp b/gui/pagedialog/PageDialog.cpp
index 4db5cd28..56bdfd14 100644
--- a/gui/pagedialog/PageDialog.cpp
+++ b/gui/pagedialog/PageDialog.cpp
@@ -159,6 +159,7 @@ void PageDialog::showPage(int row)
m_pageStack->setCurrentIndex(m_currentPage->stackIndex);
m_header->setText(m_currentPage->displayName());
m_iconHeader->setIcon(m_currentPage->icon());
+ m_currentPage->opened();
}
else
{
diff --git a/gui/pages/BasePage.h b/gui/pages/BasePage.h
index bba4996d..09af3a59 100644
--- a/gui/pages/BasePage.h
+++ b/gui/pages/BasePage.h
@@ -37,6 +37,10 @@ public:
{
return QString();
}
+ virtual void opened()
+ {
+
+ }
int stackIndex = -1;
int listIndex = -1;
};