From d3d6aa1bde1b1a2c2ee62cfaa4d9cee6121485a3 Mon Sep 17 00:00:00 2001 From: ArsenArsen Date: Sun, 2 Jul 2017 22:31:27 +0200 Subject: [PATCH] Add saving location change option, OAuth2 bugfix --- settingsdialog.cpp | 6 ++++ settingsdialog.hpp | 3 +- settingsdialog.ui | 53 ++++++++++++++++++++--------- uploaders/customuploader.cpp | 2 +- uploaders/default/imguruploader.cpp | 4 +-- uploaders/uploadersingleton.cpp | 20 ++++++++--- 6 files changed, 64 insertions(+), 24 deletions(-) diff --git a/settingsdialog.cpp b/settingsdialog.cpp index 5e1d17e..0bd498b 100644 --- a/settingsdialog.cpp +++ b/settingsdialog.cpp @@ -4,6 +4,7 @@ #include "ui_settingsdialog.h" #include +#include #include #include #include @@ -62,6 +63,7 @@ SettingsDialog::SettingsDialog(QWidget *parent) : QDialog(parent), ui(new Ui::Se ui->quickMode->setChecked(settings::settings().value("quickMode", false).toBool()); ui->hideToTray->setChecked(settings::settings().value("hideOnClose", true).toBool()); ui->captureCursor->setChecked(settings::settings().value("captureCursor", true).toBool()); + ui->saveLocation->setCurrentIndex(settings::settings().value("saveLocation", 1).toInt()); for (int i = 0; i < (int)formats::Recording::None; i++) { ui->formatBox->addItem(formats::recordingFormatName(static_cast(i))); } @@ -153,3 +155,7 @@ void SettingsDialog::on_pushButton_clicked() { a->setAttribute(Qt::WA_DeleteOnClose); a->show(); } + +void SettingsDialog::on_saveLocation_currentIndexChanged(int index) { + settings::settings().setValue("saveLocation", index); +} diff --git a/settingsdialog.hpp b/settingsdialog.hpp index 38ecbfe..7029fed 100644 --- a/settingsdialog.hpp +++ b/settingsdialog.hpp @@ -17,7 +17,7 @@ public: ~SettingsDialog(); void setScheme(QString scheme); -public slots: +private slots: void on_uploaderList_clicked(const QModelIndex &); void on_uploaderList_doubleClicked(const QModelIndex &); void on_delay_valueChanged(double arg1); @@ -32,6 +32,7 @@ public slots: void on_nameScheme_textChanged(const QString &arg1); void newUploader(Uploader *u); void uploaderChanged(QString newName); + void on_saveLocation_currentIndexChanged(int index); private: Ui::SettingsDialog *ui; diff --git a/settingsdialog.ui b/settingsdialog.ui index 3c2bc63..0906c3d 100644 --- a/settingsdialog.ui +++ b/settingsdialog.ui @@ -7,7 +7,7 @@ 0 0 483 - 470 + 530 @@ -17,21 +17,21 @@ - + Quick mode (mouse release screenshots) - + Delay before taking a screenshot - + In seconds @@ -44,7 +44,7 @@ - + @@ -54,31 +54,31 @@ - + + + + Encoder settings - + Still image format - - - - + Recording format - + Capture cursor @@ -102,21 +102,21 @@ - + Pressing <X> hides to tray - + -1 - + Open settings directory @@ -130,7 +130,7 @@ - + Qt::Horizontal @@ -140,6 +140,27 @@ + + + + File save location + + + + + + + + Pictures folder + + + + + Screenshots folder (In your user folder) + + + + diff --git a/uploaders/customuploader.cpp b/uploaders/customuploader.cpp index 84973d6..0582c5d 100644 --- a/uploaders/customuploader.cpp +++ b/uploaders/customuploader.cpp @@ -19,7 +19,7 @@ using formats::recordingFormatMIME; using std::runtime_error; void error(QString absFilePath, QString err) { - throw runtime_error((QString("Invalid file: ").append(absFilePath) + ": " + err).toStdString()); + throw runtime_erraor((QString("Invalid file: ").append(absFilePath) + ": " + err).toStdString()); } CustomUploader::CustomUploader(QString absFilePath) { diff --git a/uploaders/default/imguruploader.cpp b/uploaders/default/imguruploader.cpp index f9114b8..7103215 100644 --- a/uploaders/default/imguruploader.cpp +++ b/uploaders/default/imguruploader.cpp @@ -64,8 +64,8 @@ void ImgurUploader::doUpload(QByteArray byteArray, QString format) { if (settings::settings().contains("imgur/expire") // && settings::settings().contains("imgur/refresh") // && settings::settings().contains("imgur/access")) { - QDateTime loltheseguysIminacallwithareretarded = settings::settings().value("imgur/expire").toDateTime(); - if (loltheseguysIminacallwithareretarded.msecsTo(QDateTime::currentDateTimeUtc()) < 0) { + QDateTime expireTime = settings::settings().value("imgur/expire").toDateTime(); + if (QDateTime::currentDateTimeUtc() > expireTime) { new SegfaultWorkaround(byteArray, this, mime); } else handleSend("Bearer " + settings::settings().value("imgur/access").toString(), mime, byteArray); diff --git a/uploaders/uploadersingleton.cpp b/uploaders/uploadersingleton.cpp index 359d232..44b9c8e 100644 --- a/uploaders/uploadersingleton.cpp +++ b/uploaders/uploadersingleton.cpp @@ -13,11 +13,23 @@ #include #include -UploaderSingleton::UploaderSingleton() -: QObject(), saveDir(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation)) { - if (QStandardPaths::writableLocation(QStandardPaths::PicturesLocation).isEmpty()) { - qFatal("Cannot determine location for pictures"); +UploaderSingleton::UploaderSingleton() : QObject() { + switch (settings::settings().value("saveLocation", 1).toInt()) { + case 0: + saveDir = QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); + if (QStandardPaths::writableLocation(QStandardPaths::PicturesLocation).isEmpty()) { + qFatal("Cannot determine location for pictures"); + } + break; + case 1: + if (QStandardPaths::writableLocation(QStandardPaths::HomeLocation).isEmpty()) { + qFatal("Cannot determine location of your home directory"); + } + saveDir = QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/Screenshots"; + default: + break; } + if (!saveDir.exists()) { if (!saveDir.mkpath(".")) { qFatal("Could not create the path %s to store images in!", saveDir.absolutePath().toLocal8Bit().constData());