diff options
author | robotbrain <robotbrainify@gmail.com> | 2014-02-24 17:40:05 -0500 |
---|---|---|
committer | robotbrain <robotbrainify@gmail.com> | 2014-02-24 17:40:05 -0500 |
commit | 55e21737dd7d30c1922615c575384b41cc77985f (patch) | |
tree | 47a9ddc3431698ac21c1e963f20fe886a56b1b3d | |
parent | da33fa4090b4510267d06b3fd3ec439ff563b80e (diff) | |
download | MultiMC-55e21737dd7d30c1922615c575384b41cc77985f.tar MultiMC-55e21737dd7d30c1922615c575384b41cc77985f.tar.gz MultiMC-55e21737dd7d30c1922615c575384b41cc77985f.tar.lz MultiMC-55e21737dd7d30c1922615c575384b41cc77985f.tar.xz MultiMC-55e21737dd7d30c1922615c575384b41cc77985f.zip |
Deleting screenshots. Needs fixing.
-rw-r--r-- | gui/ConsoleWindow.ui | 2 | ||||
-rw-r--r-- | gui/MainWindow.ui | 2 | ||||
-rw-r--r-- | gui/dialogs/ScreenshotDialog.cpp | 7 | ||||
-rw-r--r-- | gui/dialogs/ScreenshotDialog.h | 5 | ||||
-rw-r--r-- | gui/dialogs/ScreenshotDialog.ui | 9 | ||||
-rw-r--r-- | logic/lists/ScreenshotList.cpp | 36 | ||||
-rw-r--r-- | logic/lists/ScreenshotList.h | 2 |
7 files changed, 56 insertions, 7 deletions
diff --git a/gui/ConsoleWindow.ui b/gui/ConsoleWindow.ui index e50fb520..344cf74d 100644 --- a/gui/ConsoleWindow.ui +++ b/gui/ConsoleWindow.ui @@ -52,7 +52,7 @@ <item> <widget class="QPushButton" name="btnScreenshots"> <property name="text"> - <string>Upload Screenshots</string> + <string>Manage Screenshots</string> </property> </widget> </item> diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui index 67625ac8..2bd8ec22 100644 --- a/gui/MainWindow.ui +++ b/gui/MainWindow.ui @@ -532,7 +532,7 @@ </action> <action name="actionScreenshots"> <property name="text"> - <string>Upload Screenshots</string> + <string>Manage Screenshots</string> </property> <property name="toolTip"> <string><html><head/><body><p>View and upload screenshots for this instance</p></body></html></string> diff --git a/gui/dialogs/ScreenshotDialog.cpp b/gui/dialogs/ScreenshotDialog.cpp index 3b4af5e5..c62e1d52 100644 --- a/gui/dialogs/ScreenshotDialog.cpp +++ b/gui/dialogs/ScreenshotDialog.cpp @@ -2,7 +2,7 @@ #include "ui_ScreenshotDialog.h" #include <QModelIndex> -#include <QDebug> +#include <QMutableListIterator> #include "ProgressDialog.h" #include "CustomMessageBox.h" @@ -71,3 +71,8 @@ void ScreenshotDialog::on_uploadBtn_clicked() reject(); } } + +void ScreenshotDialog::on_deleteBtn_clicked() +{ + m_list->deleteSelected(this); +} diff --git a/gui/dialogs/ScreenshotDialog.h b/gui/dialogs/ScreenshotDialog.h index ac1494d6..a406d1fe 100644 --- a/gui/dialogs/ScreenshotDialog.h +++ b/gui/dialogs/ScreenshotDialog.h @@ -24,16 +24,17 @@ public: }; QString message() const; + QList<ScreenShot *> selected() const; private slots: void on_uploadBtn_clicked(); + void on_deleteBtn_clicked(); + private: Ui::ScreenshotDialog *ui; ScreenshotList *m_list; QList<ScreenShot *> m_uploaded; std::shared_ptr<ImgurAlbumCreation> m_imgurAlbum; - - QList<ScreenShot *> selected() const; }; diff --git a/gui/dialogs/ScreenshotDialog.ui b/gui/dialogs/ScreenshotDialog.ui index 9e4bd6f0..4e42a548 100644 --- a/gui/dialogs/ScreenshotDialog.ui +++ b/gui/dialogs/ScreenshotDialog.ui @@ -11,7 +11,7 @@ </rect> </property> <property name="windowTitle"> - <string>Screenshots</string> + <string>Screenshot Manager</string> </property> <property name="windowIcon"> <iconset resource="../../resources/multimc/multimc.qrc"> @@ -72,6 +72,13 @@ </property> </widget> </item> + <item> + <widget class="QPushButton" name="deleteBtn"> + <property name="text"> + <string>Delete</string> + </property> + </widget> + </item> </layout> </item> </layout> diff --git a/logic/lists/ScreenshotList.cpp b/logic/lists/ScreenshotList.cpp index 6969549c..9f4ce6b5 100644 --- a/logic/lists/ScreenshotList.cpp +++ b/logic/lists/ScreenshotList.cpp @@ -1,7 +1,11 @@ #include "ScreenshotList.h" +#include "gui/dialogs/ScreenshotDialog.h" #include <QDir> #include <QIcon> +#include <QList> +#include "gui/dialogs/ProgressDialog.h" +#include "gui/dialogs/CustomMessageBox.h" ScreenshotList::ScreenshotList(BaseInstance *instance, QObject *parent) : QAbstractListModel(parent), m_instance(instance) @@ -15,7 +19,7 @@ int ScreenshotList::rowCount(const QModelIndex &) const QVariant ScreenshotList::data(const QModelIndex &index, int role) const { - if (!index.isValid()) + if (index.row() >= m_screenshots.size() || index.row() < 0) return QVariant(); switch (role) @@ -76,3 +80,33 @@ void ScreenshotLoadTask::executeTask() m_list->loadShots(m_results); emitSucceeded(); } +void ScreenshotList::deleteSelected(ScreenshotDialog *dialog) +{ + auto screens = dialog->selected(); + if (screens.isEmpty()) + { + return; + } + beginResetModel(); + QList<ScreenShot *>::const_iterator it; + for (it = screens.cbegin(); it != screens.cend(); it++) + { + ScreenShot *shot = *it; + if (!QFile(shot->file).remove()) + { + CustomMessageBox::selectable(dialog, tr("Error!"), + tr("Failed to delete screenshots!"), + QMessageBox::Warning)->exec(); + break; + } + } + ProgressDialog refresh(dialog); + Task *t = load(); + if (refresh.exec(t) != QDialog::Accepted) + { + CustomMessageBox::selectable(dialog, tr("Error!"), + tr("Unable to refresh list: %1").arg(t->failReason()), + QMessageBox::Warning)->exec(); + } + endResetModel(); +} diff --git a/logic/lists/ScreenshotList.h b/logic/lists/ScreenshotList.h index 1d3e73ca..8e512ace 100644 --- a/logic/lists/ScreenshotList.h +++ b/logic/lists/ScreenshotList.h @@ -43,6 +43,8 @@ public: return m_instance; } + void deleteSelected(class ScreenshotDialog *dialog); + signals: public |