Include storage type into history file name
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#include <QDir>
|
||||
#include <QFile>
|
||||
#include <QDebug>
|
||||
#include <QStringList>
|
||||
|
||||
|
||||
History::History()
|
||||
@@ -48,3 +49,45 @@ const QList<QString> &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;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,16 @@
|
||||
#include <QPixmap>
|
||||
|
||||
|
||||
#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<QString> &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<QString> m_thumbs;
|
||||
|
||||
// temporary variables
|
||||
QString m_packedFileName;
|
||||
HISTORY_FILE_NAME m_unpackedFileName;
|
||||
};
|
||||
|
||||
#endif // HISTORY_H
|
||||
|
||||
@@ -44,8 +44,6 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent)
|
||||
}
|
||||
|
||||
void HistoryWidget::loadHistory() {
|
||||
// get settings
|
||||
|
||||
// read history files
|
||||
History history = History();
|
||||
QList<QString> 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
|
||||
|
||||
@@ -450,17 +450,17 @@ Press Space to open the side panel.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">Copia l'URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">L'URL s'ha copiat al porta-retalls.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">URL kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL kopiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Presiona Espacio para abrir el panel lateral.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">Copiar URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL copiada al portapapeles.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">Copier l'URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Enter を押すと画面をキャプチャー。
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">URL をコピー</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL をクリップボードにコピーしました。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -449,17 +449,17 @@ Press Space to open the side panel.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">URL-ის კოპირება</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL დაკოპირდა გაცვლის ბუფერში.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Druk op spatie om het zijpaneel te openen.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">URL kopiëren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -452,17 +452,17 @@ Spacja, aby pokazać panel boczny.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">Kopiuj URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL skopiowany do schowka.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Pressione espaço abrir o painel lateral.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">Copiar URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL copiada para o clipboard.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -465,17 +465,17 @@ Press Space to open the side panel.</source>
|
||||
<translation>История скриншотов пуста</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation>Скопировать URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation>URL скопирован в буфер обмена.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation>Открыть в браузере</translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">Kopírovať URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL skopírovaná do schránky.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Press Space to open the side panel.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">Запамти интернет адресу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -453,17 +453,17 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">URL Kopyala</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">URL panoya kopyalandı.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -465,17 +465,17 @@ Press Space to open the side panel.</source>
|
||||
<translation>Історія скріншотів пуста</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation>Скопіювати URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation>URL скопійовано до буферу обміну.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation>Відкрити у браузері</translation>
|
||||
</message>
|
||||
|
||||
@@ -454,17 +454,17 @@ Press Space to open the side panel.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">复制链接</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">复制链接到剪贴板。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
@@ -449,17 +449,17 @@ Press Space to open the side panel.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="117"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="112"/>
|
||||
<source>Copy URL</source>
|
||||
<translation type="unfinished">複製連結</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="121"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="116"/>
|
||||
<source>URL copied to clipboard.</source>
|
||||
<translation type="unfinished">連結已複製到剪貼簿</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="127"/>
|
||||
<location filename="../src/widgets/historywidget.cpp" line="122"/>
|
||||
<source>Open in browser</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
||||
Reference in New Issue
Block a user