From 1f40697656def84eaa131d61d85c14d46df05a72 Mon Sep 17 00:00:00 2001 From: Yuriy Puchkov Date: Thu, 6 Aug 2020 20:42:58 +0300 Subject: [PATCH] Include storage type into history file name --- src/tools/imgs3/imgs3settings.cpp | 1 - src/tools/imgs3/imgs3uploader.cpp | 6 +-- src/utils/history.cpp | 43 ++++++++++++++++++++++ src/utils/history.h | 17 +++++++++ src/widgets/historywidget.cpp | 17 +++------ translations/Internationalization_ca.ts | 6 +-- translations/Internationalization_de_DE.ts | 6 +-- translations/Internationalization_es.ts | 6 +-- translations/Internationalization_fr.ts | 6 +-- translations/Internationalization_ja.ts | 6 +-- translations/Internationalization_ka.ts | 6 +-- translations/Internationalization_nl.ts | 6 +-- translations/Internationalization_pl.ts | 6 +-- translations/Internationalization_pt_br.ts | 6 +-- translations/Internationalization_ru.ts | 6 +-- translations/Internationalization_sk.ts | 6 +-- translations/Internationalization_sr.ts | 6 +-- translations/Internationalization_tr.ts | 6 +-- translations/Internationalization_uk.ts | 6 +-- translations/Internationalization_zh_CN.ts | 6 +-- translations/Internationalization_zh_TW.ts | 6 +-- 21 files changed, 116 insertions(+), 64 deletions(-) diff --git a/src/tools/imgs3/imgs3settings.cpp b/src/tools/imgs3/imgs3settings.cpp index 9fef1c02..76ac96ad 100644 --- a/src/tools/imgs3/imgs3settings.cpp +++ b/src/tools/imgs3/imgs3settings.cpp @@ -19,7 +19,6 @@ ImgS3Settings::ImgS3Settings() m_url = m_url + (m_url.length() > 0 && m_url.at(m_url.length() - 1) == "/" ? "" : "/"); settings->endGroup(); - } const QString &ImgS3Settings::credsUrl() { diff --git a/src/tools/imgs3/imgs3uploader.cpp b/src/tools/imgs3/imgs3uploader.cpp index ea5beb88..55a22e76 100644 --- a/src/tools/imgs3/imgs3uploader.cpp +++ b/src/tools/imgs3/imgs3uploader.cpp @@ -187,14 +187,14 @@ void ImgS3Uploader::handleReplyUpload(QNetworkReply *reply) { if (lastSlash >= 0) { imageName = imageName.mid(lastSlash + 1); } - imageName = m_deleteToken + "-" + imageName; History history; + imageName = history.packFileName(SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, imageName); history.save(m_pixmap, imageName); // Copy url to clipboard if required if (ConfigHandler().copyAndCloseAfterUploadEnabled()) { QApplication::clipboard()->setText(m_imageURL.toString()); - SystemNotification().sendMessage(QObject::tr("URL copied to clipboard.")); + SystemNotification().sendMessage(tr("URL copied to clipboard.")); m_success = true; close(); } else { @@ -212,7 +212,7 @@ void ImgS3Uploader::handleReplyDeleteResource(QNetworkReply *reply) { if (reply->error() == QNetworkReply::NoError) { if (ConfigHandler().copyAndCloseAfterUploadEnabled()) { m_success = true; - SystemNotification().sendMessage(QObject::tr("File is deleted from S3")); + SystemNotification().sendMessage(tr("File is deleted from S3")); close(); } } else { diff --git a/src/utils/history.cpp b/src/utils/history.cpp index ed4a46e7..c58c6d60 100644 --- a/src/utils/history.cpp +++ b/src/utils/history.cpp @@ -3,6 +3,7 @@ #include #include #include +#include History::History() @@ -48,3 +49,45 @@ const QList &History::history() { } return m_thumbs; } + +const HISTORY_FILE_NAME &History::unpackFileName(const QString &fileNamePacked) { + int nPathIndex = fileNamePacked.lastIndexOf("/"); + QStringList unpackedFileName; + if(nPathIndex == -1) { + unpackedFileName = fileNamePacked.split("-"); + } else { + unpackedFileName = fileNamePacked.mid(nPathIndex + 1).split("-"); + } + + switch (unpackedFileName.length()) { + case 3: + m_unpackedFileName.file = unpackedFileName[2]; + m_unpackedFileName.token = unpackedFileName[1]; + m_unpackedFileName.type = unpackedFileName[0]; + break; + case 2: + m_unpackedFileName.file = unpackedFileName[1]; + m_unpackedFileName.token = ""; + m_unpackedFileName.type = unpackedFileName[0]; + break; + default: + m_unpackedFileName.file = unpackedFileName[0]; + m_unpackedFileName.token = ""; + m_unpackedFileName.type = SCREENSHOT_STORAGE_TYPE_LOCAL; + break; + } + return m_unpackedFileName; +} + +const QString &History::packFileName(const QString &storageType, const QString &deleteToken, const QString &fileName) { + m_packedFileName = fileName; + if(storageType.length() > 0) { + if(deleteToken.length() > 0) { + m_packedFileName = storageType + "-" + deleteToken + "-" + m_packedFileName; + } + else { + m_packedFileName = storageType + "-" + m_packedFileName; + } + } + return m_packedFileName; +} diff --git a/src/utils/history.h b/src/utils/history.h index c1888639..fc111615 100644 --- a/src/utils/history.h +++ b/src/utils/history.h @@ -8,6 +8,16 @@ #include +#define SCREENSHOT_STORAGE_TYPE_LOCAL "" +#define SCREENSHOT_STORAGE_TYPE_S3 "s3" +#define SCREENSHOT_STORAGE_TYPE_IMGUR "imgur" + +struct HISTORY_FILE_NAME { + QString file; + QString token; + QString type; +}; + class History { public: @@ -17,9 +27,16 @@ public: const QList &history(); const QString &path(); + const HISTORY_FILE_NAME &unpackFileName(const QString &); + const QString &packFileName(const QString &, const QString &, const QString &); + private: QString m_historyPath; QList m_thumbs; + + // temporary variables + QString m_packedFileName; + HISTORY_FILE_NAME m_unpackedFileName; }; #endif // HISTORY_H diff --git a/src/widgets/historywidget.cpp b/src/widgets/historywidget.cpp index 6e15bd6e..52127e31 100644 --- a/src/widgets/historywidget.cpp +++ b/src/widgets/historywidget.cpp @@ -44,8 +44,6 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent) } void HistoryWidget::loadHistory() { - // get settings - // read history files History history = History(); QList historyFiles = history.history(); @@ -74,16 +72,11 @@ void HistoryWidget::setEmptyMessage() { void HistoryWidget::addLine(const QString &path, const QString& fileName) { QHBoxLayout *phbl = new QHBoxLayout(); QString fullFileName = path + fileName; - QString s3FileName = fileName; - // - QString deleteToken; - int nSeparatorIndex = s3FileName.indexOf("-"); - if(nSeparatorIndex >= 0) { - deleteToken = s3FileName.mid(0, nSeparatorIndex); - s3FileName = s3FileName.mid(nSeparatorIndex + 1, s3FileName.size()); - } - QString url = m_s3Settings.url() + s3FileName; + History history; + HISTORY_FILE_NAME unpackFileName = history.unpackFileName(fileName); + + QString url = m_s3Settings.url() + unpackFileName.file; // load pixmap QPixmap pixmap; @@ -136,7 +129,7 @@ void HistoryWidget::addLine(const QString &path, const QString& fileName) { buttonDelete->setIcon(QIcon(":/img/material/black/delete.svg")); buttonDelete->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT); connect(buttonDelete, &QPushButton::clicked, this, [=](){ - removeItem(phbl, fullFileName, s3FileName, deleteToken); + removeItem(phbl, fullFileName, unpackFileName.file, unpackFileName.token); }); // layout diff --git a/translations/Internationalization_ca.ts b/translations/Internationalization_ca.ts index 88e1cf9b..1d1d58fc 100644 --- a/translations/Internationalization_ca.ts +++ b/translations/Internationalization_ca.ts @@ -450,17 +450,17 @@ Press Space to open the side panel. - + Copy URL Copia l'URL - + URL copied to clipboard. L'URL s'ha copiat al porta-retalls. - + Open in browser diff --git a/translations/Internationalization_de_DE.ts b/translations/Internationalization_de_DE.ts index 923e695b..65e831a8 100644 --- a/translations/Internationalization_de_DE.ts +++ b/translations/Internationalization_de_DE.ts @@ -453,17 +453,17 @@ Drücke die Leertaste um das Seitenmenü zu öffnen. - + Copy URL URL kopieren - + URL copied to clipboard. URL kopiert. - + Open in browser diff --git a/translations/Internationalization_es.ts b/translations/Internationalization_es.ts index d69311ff..e1765ccc 100644 --- a/translations/Internationalization_es.ts +++ b/translations/Internationalization_es.ts @@ -453,17 +453,17 @@ Presiona Espacio para abrir el panel lateral. - + Copy URL Copiar URL - + URL copied to clipboard. URL copiada al portapapeles. - + Open in browser diff --git a/translations/Internationalization_fr.ts b/translations/Internationalization_fr.ts index 53b4810b..4e01c58e 100644 --- a/translations/Internationalization_fr.ts +++ b/translations/Internationalization_fr.ts @@ -453,17 +453,17 @@ Appuyer sur Espace pour ouvrir le panneau latéral. - + Copy URL Copier l'URL - + URL copied to clipboard. URL copiée dans le Presse-papier. - + Open in browser diff --git a/translations/Internationalization_ja.ts b/translations/Internationalization_ja.ts index b66c93c7..24c09fd6 100644 --- a/translations/Internationalization_ja.ts +++ b/translations/Internationalization_ja.ts @@ -453,17 +453,17 @@ Enter を押すと画面をキャプチャー。 - + Copy URL URL をコピー - + URL copied to clipboard. URL をクリップボードにコピーしました。 - + Open in browser diff --git a/translations/Internationalization_ka.ts b/translations/Internationalization_ka.ts index 32e628ec..575840fe 100644 --- a/translations/Internationalization_ka.ts +++ b/translations/Internationalization_ka.ts @@ -449,17 +449,17 @@ Press Space to open the side panel. - + Copy URL URL-ის კოპირება - + URL copied to clipboard. URL დაკოპირდა გაცვლის ბუფერში. - + Open in browser diff --git a/translations/Internationalization_nl.ts b/translations/Internationalization_nl.ts index 4eb591d6..6a372b5a 100644 --- a/translations/Internationalization_nl.ts +++ b/translations/Internationalization_nl.ts @@ -453,17 +453,17 @@ Druk op spatie om het zijpaneel te openen. - + Copy URL URL kopiëren - + URL copied to clipboard. URL gekopieerd naar klembord. - + Open in browser diff --git a/translations/Internationalization_pl.ts b/translations/Internationalization_pl.ts index 8b9b1a16..ebf2fab8 100644 --- a/translations/Internationalization_pl.ts +++ b/translations/Internationalization_pl.ts @@ -452,17 +452,17 @@ Spacja, aby pokazać panel boczny. - + Copy URL Kopiuj URL - + URL copied to clipboard. URL skopiowany do schowka. - + Open in browser diff --git a/translations/Internationalization_pt_br.ts b/translations/Internationalization_pt_br.ts index a482f1ee..67558d79 100644 --- a/translations/Internationalization_pt_br.ts +++ b/translations/Internationalization_pt_br.ts @@ -453,17 +453,17 @@ Pressione espaço abrir o painel lateral. - + Copy URL Copiar URL - + URL copied to clipboard. URL copiada para o clipboard. - + Open in browser diff --git a/translations/Internationalization_ru.ts b/translations/Internationalization_ru.ts index 16abfa0c..6bb1f6cc 100644 --- a/translations/Internationalization_ru.ts +++ b/translations/Internationalization_ru.ts @@ -465,17 +465,17 @@ Press Space to open the side panel. История скриншотов пуста - + Copy URL Скопировать URL - + URL copied to clipboard. URL скопирован в буфер обмена. - + Open in browser Открыть в браузере diff --git a/translations/Internationalization_sk.ts b/translations/Internationalization_sk.ts index ad1b3cb6..4e0e83d2 100644 --- a/translations/Internationalization_sk.ts +++ b/translations/Internationalization_sk.ts @@ -453,17 +453,17 @@ Stlačte medzerník pre otvorenie postranného panelu. - + Copy URL Kopírovať URL - + URL copied to clipboard. URL skopírovaná do schránky. - + Open in browser diff --git a/translations/Internationalization_sr.ts b/translations/Internationalization_sr.ts index e855495a..2d66a513 100644 --- a/translations/Internationalization_sr.ts +++ b/translations/Internationalization_sr.ts @@ -453,17 +453,17 @@ Press Space to open the side panel. - + Copy URL Запамти интернет адресу - + URL copied to clipboard. Интернет адреса је сачувана у привременој меморији. - + Open in browser diff --git a/translations/Internationalization_tr.ts b/translations/Internationalization_tr.ts index c3aecdf1..a77e882a 100644 --- a/translations/Internationalization_tr.ts +++ b/translations/Internationalization_tr.ts @@ -453,17 +453,17 @@ Yan paneli açmak için Boşluk tuşuna basın. - + Copy URL URL Kopyala - + URL copied to clipboard. URL panoya kopyalandı. - + Open in browser diff --git a/translations/Internationalization_uk.ts b/translations/Internationalization_uk.ts index 64f5a140..85ee98a7 100644 --- a/translations/Internationalization_uk.ts +++ b/translations/Internationalization_uk.ts @@ -465,17 +465,17 @@ Press Space to open the side panel. Історія скріншотів пуста - + Copy URL Скопіювати URL - + URL copied to clipboard. URL скопійовано до буферу обміну. - + Open in browser Відкрити у браузері diff --git a/translations/Internationalization_zh_CN.ts b/translations/Internationalization_zh_CN.ts index c92a0a6d..fc3d2850 100644 --- a/translations/Internationalization_zh_CN.ts +++ b/translations/Internationalization_zh_CN.ts @@ -454,17 +454,17 @@ Press Space to open the side panel. - + Copy URL 复制链接 - + URL copied to clipboard. 复制链接到剪贴板。 - + Open in browser diff --git a/translations/Internationalization_zh_TW.ts b/translations/Internationalization_zh_TW.ts index f1068344..dd72c6cc 100644 --- a/translations/Internationalization_zh_TW.ts +++ b/translations/Internationalization_zh_TW.ts @@ -449,17 +449,17 @@ Press Space to open the side panel. - + Copy URL 複製連結 - + URL copied to clipboard. 連結已複製到剪貼簿 - + Open in browser