From 96f4cf7305c217dc9c341ae472d993082bffc037 Mon Sep 17 00:00:00 2001 From: ArsenArsen Date: Sun, 21 May 2017 12:08:30 +0200 Subject: [PATCH] Fix Pictures folder missing sometimes and saving failing because of it --- uploaders/uploadersingleton.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/uploaders/uploadersingleton.cpp b/uploaders/uploadersingleton.cpp index ed44d1a..4711c3d 100644 --- a/uploaders/uploadersingleton.cpp +++ b/uploaders/uploadersingleton.cpp @@ -8,7 +8,14 @@ #include #include -UploaderSingleton::UploaderSingleton() : QObject() { +UploaderSingleton::UploaderSingleton() +: QObject(), saveDir(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation)) { + if (QStandardPaths::writableLocation(QStandardPaths::PicturesLocation).isEmpty()) { + qFatal() << "Cannot determine location for pictures"; + } + if (!saveDir.exists()) { + saveDir.mkpath(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation)); + } QDir configDir(QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation)); configDir.mkpath("KShare/uploaders"); configDir.cd("KShare/uploaders"); @@ -49,8 +56,7 @@ void UploaderSingleton::upload(QPixmap *pixmap) { if (settings::settings().contains("fileFormat")) { QString format = settings::settings().value("fileFormat").toString(); if (!format.isEmpty()) { - pixmap->save(QDir(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation)).absoluteFilePath(formatter::format(format) + ".png"), - "PNG"); + pixmap->save(saveDir.absoluteFilePath(formatter::format(format) + ".png"), "PNG"); } } uploaders.value(uploader)->doUpload(pixmap);