Merge pull request #23 from namecheap/feature/RND-497-remove-screenshots

Feature/rnd 497 remove screenshots
This commit is contained in:
Yurii Puchkov
2020-08-10 14:55:47 +03:00
committed by GitHub
30 changed files with 1120 additions and 497 deletions

View File

@@ -85,6 +85,7 @@ DEFINES += QAPPLICATION_CLASS=QApplication
SOURCES += src/main.cpp \
src/config/filepathconfiguration.cpp \
src/tools/imgs3/imgs3settings.cpp \
src/widgets/historywidget.cpp \
src/utils/configenterprise.cpp \
src/utils/history.cpp \
@@ -164,6 +165,7 @@ SOURCES += src/main.cpp \
HEADERS += src/widgets/capture/buttonhandler.h \
src/config/filepathconfiguration.h \
src/tools/imgs3/imgs3settings.h \
src/widgets/historywidget.h \
src/utils/configenterprise.h \
src/utils/history.h \

View File

@@ -2,6 +2,7 @@
<qresource prefix="/">
<file>img/app/flameshot.svg</file>
<file>img/app/flameshot.png</file>
<file>img/material/black/delete.svg</file>
<file>img/material/black/undo-variant.svg</file>
<file>img/material/black/text.svg</file>
<file>img/material/black/square.svg</file>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Svg Vector Icons : http://www.onlinewebfonts.com/icon -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 1000 1000" enable-background="new 0 0 1000 1000" xml:space="preserve">
<metadata> Svg Vector Icons : http://www.onlinewebfonts.com/icon </metadata>
<g><path d="M876.9,311.5c-20.8,0-37.7,16.9-37.7,37.7v490c0,41.6-33.8,75.4-75.4,75.4H236.2c-41.6,0-75.4-33.8-75.4-75.4v-490c0-20.8-16.9-37.7-37.7-37.7c-20.8,0-37.7,16.9-37.7,37.7v490c0,83.3,67.5,150.8,150.8,150.8h527.7c83.3,0,150.8-67.5,150.8-150.8v-490C914.6,328.4,897.8,311.5,876.9,311.5z M349.2,763.8V349.2c0-20.8-16.9-37.7-37.7-37.7c-20.8,0-37.7,16.9-37.7,37.7v414.6c0,20.8,16.9,37.7,37.7,37.7C332.3,801.5,349.2,784.7,349.2,763.8z M952.3,160.8H650.8V47.7c0-20.8-16.8-37.7-37.7-37.7H386.9c-20.8,0-37.7,16.9-37.7,37.7v113.1H47.7c-20.8,0-37.7,16.9-37.7,37.7c0,20.8,16.9,37.7,37.7,37.7h904.6c20.8,0,37.7-16.8,37.7-37.7C990,177.7,973.2,160.8,952.3,160.8z M575.4,160.8H424.6V85.4h150.8V160.8z M726.2,763.8V349.2c0-20.8-16.8-37.7-37.7-37.7c-20.8,0-37.7,16.9-37.7,37.7v414.6c0,20.8,16.8,37.7,37.7,37.7C709.3,801.5,726.2,784.7,726.2,763.8z M537.7,763.8V349.2c0-20.8-16.8-37.7-37.7-37.7c-20.8,0-37.7,16.9-37.7,37.7v414.6c0,20.8,16.9,37.7,37.7,37.7C520.8,801.5,537.7,784.7,537.7,763.8z"/></g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,34 @@
#include "imgs3settings.h"
#include "src/utils/configenterprise.h"
#include <QSettings>
ImgS3Settings::ImgS3Settings()
{
m_configEnterprise = new ConfigEnterprise();
// get s3 credentials
QSettings *settings = m_configEnterprise->settings();
settings->beginGroup("S3");
m_credsUrl = settings->value("S3_CREDS_URL").toString();
m_credsUrl = m_credsUrl + ((m_credsUrl.length() > 0 && m_credsUrl[m_credsUrl.length() - 1] == '/') ? "" : "/") + S3_API_IMG_PATH;
m_xApiKey = settings->value("S3_X_API_KEY").toString();
m_url = settings->value("S3_URL").toString();
m_url = m_url + ((m_url.length() > 0 && m_url[m_url.length() - 1] == '/') ? "" : "/");
settings->endGroup();
}
const QString &ImgS3Settings::credsUrl() {
return m_credsUrl;
}
const QString &ImgS3Settings::xApiKey() {
return m_xApiKey;
}
const QString &ImgS3Settings::url() {
return m_url;
}

View File

@@ -0,0 +1,27 @@
#ifndef IMGS3SETTINGS_H
#define IMGS3SETTINGS_H
#define S3_API_IMG_PATH "v2/image/"
#include <QString>
class ConfigEnterprise;
class ImgS3Settings
{
public:
ImgS3Settings();
const QString &credsUrl();
const QString &xApiKey();
const QString &url();
private:
ConfigEnterprise *m_configEnterprise;
QString m_credsUrl;
QString m_xApiKey;
QString m_url;
};
#endif // IMGS3SETTINGS_H

View File

@@ -50,15 +50,31 @@
ImgS3Uploader::ImgS3Uploader(const QPixmap &capture, QWidget *parent) :
QWidget(parent), m_pixmap(capture)
{
init(tr("Upload image to S3"), tr("Uploading Image"));
}
ImgS3Uploader::ImgS3Uploader(QWidget *parent) :
QWidget(parent)
{
init(tr("Delete image from S3"), tr("Deleting image..."));
}
void ImgS3Uploader::init(const QString &title, const QString &label) {
m_proxy = nullptr;
setWindowTitle(tr("Upload to ImgS3"));
m_imageLabel = nullptr;
m_spinner = nullptr;
m_success = false;
setWindowTitle(title);
setWindowIcon(QIcon(":img/app/flameshot.svg"));
m_spinner = new LoadSpinner(this);
m_spinner->setColor(ConfigHandler().uiMainColorValue());
m_spinner->start();
m_infoLabel = new QLabel(tr("Uploading Image"));
m_infoLabel = new QLabel(label);
m_infoLabel->setAlignment(Qt::AlignCenter);
m_vLayout = new QVBoxLayout();
setLayout(m_vLayout);
@@ -71,23 +87,19 @@ ImgS3Uploader::ImgS3Uploader(const QPixmap &capture, QWidget *parent) :
m_configEnterprise = new ConfigEnterprise();
// get s3 credentials
QSettings *settings = m_configEnterprise->settings();
settings->beginGroup("S3");
m_s3CredsUrl = settings->value("S3_CREDS_URL").toString();
m_s3XApiKey = settings->value("S3_X_API_KEY").toString();
settings->endGroup();
initNetwork();
upload();
}
void ImgS3Uploader::initNetwork() {
// Init network
m_NetworkAM = new QNetworkAccessManager(this);
connect(m_NetworkAM, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReply);
m_NetworkAMUpload = new QNetworkAccessManager(this);
connect(m_NetworkAMUpload, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyUpload);
m_NetworkAMCreds = new QNetworkAccessManager(this);
connect(m_NetworkAMCreds, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleCredsReply);
m_NetworkAMGetCreds = new QNetworkAccessManager(this);
connect(m_NetworkAMGetCreds, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyGetCreds);
m_NetworkAMRemove = new QNetworkAccessManager(this);
connect(m_NetworkAMRemove, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyDeleteResource);
// get proxy settings from "config.ini" file
QSettings *settings = m_configEnterprise->settings();
@@ -137,7 +149,7 @@ void ImgS3Uploader::initNetwork() {
}
else {
// Get proxy settings from OS settings
QNetworkProxyQuery q(QUrl(m_s3CredsUrl.toUtf8()));
QNetworkProxyQuery q(QUrl(m_s3Settings.credsUrl().toUtf8()));
q.setQueryType(QNetworkProxyQuery::UrlRequest);
q.setProtocolTag("http");
@@ -160,10 +172,10 @@ void ImgS3Uploader::initNetwork() {
qDebug() << "proxy user:" << (m_proxy->user().length() > 0 ? m_proxy->user() : "no user");
qDebug() << "proxy password:" << (m_proxy->password().length() > 0 ? "***" : "no password");
QNetworkProxy::setApplicationProxy(*m_proxy);
m_NetworkAM->setProxy(*m_proxy);
m_NetworkAMCreds->setProxy(*m_proxy);
m_NetworkAMUpload->setProxy(*m_proxy);
m_NetworkAMGetCreds->setProxy(*m_proxy);
m_NetworkAMRemove->setProxy(*m_proxy);
}
else {
qDebug() << "No proxy";
@@ -171,29 +183,56 @@ void ImgS3Uploader::initNetwork() {
}
void ImgS3Uploader::handleReply(QNetworkReply *reply) {
m_spinner->deleteLater();
void ImgS3Uploader::handleReplyUpload(QNetworkReply *reply) {
hideSpinner();
m_s3ImageName.clear();
if (reply->error() == QNetworkReply::NoError) {
// save history
QString imageName = m_imageURL.toString();
int lastSlash = imageName.lastIndexOf("/");
if (lastSlash >= 0) {
imageName = imageName.mid(lastSlash);
imageName = imageName.mid(lastSlash + 1);
}
m_s3ImageName = imageName;
History history;
imageName = history.packFileName(SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, imageName);
history.save(m_pixmap, imageName);
m_success = true;
// 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."));
close();
} else {
onUploadOk();
}
} else {
QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
m_infoLabel->setText(reply->errorString());
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::handleReplyDeleteResource(QNetworkReply *reply) {
if (reply->error() == QNetworkReply::NoError) {
m_success = true;
// remove local file
History history;
QString packedFileName = history.packFileName(SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, m_s3ImageName);
QString fullFileName = history.path() + packedFileName;
QFile file(fullFileName);
if (file.exists()) {
file.remove();
}
m_deleteToken.clear();
m_s3ImageName.clear();
close();
} else {
QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
@@ -210,94 +249,40 @@ void ImgS3Uploader::startDrag() {
dragHandler->exec();
}
void ImgS3Uploader::handleCredsReply(QNetworkReply *reply){
void ImgS3Uploader::handleReplyGetCreds(QNetworkReply *reply){
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
uploadToS3(response);
} else {
if(m_s3CredsUrl.length() == 0){
m_infoLabel->setText("S3 Creds URL is not found in your configuration file");
if(m_s3Settings.credsUrl().length() == 0){
setInfoLabelText(tr("S3 Creds URL is not found in your configuration file"));
}
else {
m_infoLabel->setText(reply->errorString());
setInfoLabelText(reply->errorString());
}
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::uploadToS3(QJsonDocument &response) {
QJsonObject json = response.object();
QJsonObject formData = json["formData"].toObject();
QJsonObject fields = formData["fields"].toObject();
QString resultURL = json["resultURL"].toString();
QString url = formData["url"].toString();
QString acl = fields["acl"].toString();
QString contentType = fields["Content-Type"].toString();
QString key = fields["Key"].toString();
QString bucket = fields["bucket"].toString();
QString xAmzAlgorithm = fields["X-Amz-Algorithm"].toString();
QString xAmzCredential = fields["X-Amz-Credential"].toString();
QString xAmzDate = fields["X-Amz-Date"].toString();
QString xAmzSecurityToken = fields["X-Amz-Security-Token"].toString();
QString policy = fields["Policy"].toString();
QString xAmzSignature = fields["X-Amz-Signature"].toString();
//
// set paramets from "fields"
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart aclPart;
aclPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"acl\""));
aclPart.setBody(acl.toLatin1());
multiPart->append(aclPart);
QHttpPart contentTypePart;
contentTypePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"Content-Type\""));
contentTypePart.setBody(contentType.toLatin1());
multiPart->append(contentTypePart);
QHttpPart keyPart;
keyPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"Key\""));
keyPart.setBody(key.toLatin1());
multiPart->append(keyPart);
QHttpPart bucketPart;
bucketPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"bucket\""));
bucketPart.setBody(bucket.toLatin1());
multiPart->append(bucketPart);
QHttpPart xAmzAlgorithmPart;
xAmzAlgorithmPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"X-Amz-Algorithm\""));
xAmzAlgorithmPart.setBody(xAmzAlgorithm.toLatin1());
multiPart->append(xAmzAlgorithmPart);
QHttpPart xAmzCredentialPart;
xAmzCredentialPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"X-Amz-Credential\""));
xAmzCredentialPart.setBody(xAmzCredential.toLatin1());
multiPart->append(xAmzCredentialPart);
QHttpPart xAmzDatePart;
xAmzDatePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"X-Amz-Date\""));
xAmzDatePart.setBody(xAmzDate.toLatin1());
multiPart->append(xAmzDatePart);
QHttpPart xAmzSecurityTokenPart;
xAmzSecurityTokenPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"X-Amz-Security-Token\""));
xAmzSecurityTokenPart.setBody(xAmzSecurityToken.toLatin1());
multiPart->append(xAmzSecurityTokenPart);
QHttpPart policyPart;
policyPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"Policy\""));
policyPart.setBody(policy.toLatin1());
multiPart->append(policyPart);
QHttpPart xAmzSignaturePart;
xAmzSignaturePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"X-Amz-Signature\""));
xAmzSignaturePart.setBody(xAmzSignature.toLatin1());
multiPart->append(xAmzSignaturePart);
// read JSON response
QJsonObject json = response.object();
QString resultURL = json["resultURL"].toString();
QJsonObject formData = json["formData"].toObject();
QString url = formData["url"].toString();
m_deleteToken = json["deleteToken"].toString();
QJsonObject fields = formData["fields"].toObject();
foreach (auto key, fields.keys()) {
QString field = fields[key].toString();
QHttpPart part;
part.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"" + key + "\""));
part.setBody(field.toLatin1());
multiPart->append(part);
}
QHttpPart imagePart;
imagePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/png"));
@@ -316,45 +301,64 @@ void ImgS3Uploader::uploadToS3(QJsonDocument &response) {
QUrl qUrl(url);
QNetworkRequest request(qUrl);
m_NetworkAM->post(request, multiPart);
m_NetworkAMUpload->post(request, multiPart);
}
void ImgS3Uploader::deleteResource(const QString &fileName, const QString &deleteToken) {
QNetworkRequest request;
m_s3ImageName = fileName;
m_deleteToken = deleteToken;
request.setUrl(m_s3Settings.credsUrl().toUtf8() + fileName);
request.setRawHeader("X-API-Key", m_s3Settings.xApiKey().toLatin1());
request.setRawHeader("Authorization", "Bearer " + deleteToken.toLatin1());
m_NetworkAMRemove->deleteResource(request);
}
void ImgS3Uploader::upload() {
m_deleteToken.clear();
m_s3ImageName.clear();
// get creads
QUrl creds(m_s3CredsUrl);
QUrl creds(m_s3Settings.credsUrl());
QNetworkRequest requestCreds(creds);
if(m_s3XApiKey.length() > 0) {
requestCreds.setRawHeader(QByteArray("X-API-Key"), QByteArray(m_s3XApiKey.toLocal8Bit()));
if(m_s3Settings.xApiKey().length() > 0) {
requestCreds.setRawHeader(QByteArray("X-API-Key"), QByteArray(m_s3Settings.xApiKey().toLocal8Bit()));
}
m_NetworkAMCreds->get(requestCreds);
m_NetworkAMGetCreds->get(requestCreds);
}
void ImgS3Uploader::onUploadOk() {
m_infoLabel->deleteLater();
hideSpinner();
m_notification = new NotificationWidget();
m_vLayout->addWidget(m_notification);
ImageLabel *imageLabel = new ImageLabel();
imageLabel->setScreenshot(m_pixmap);
imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(imageLabel, &ImageLabel::dragInitiated, this, &ImgS3Uploader::startDrag);
m_vLayout->addWidget(imageLabel);
if(nullptr == m_imageLabel) {
m_imageLabel = new ImageLabel();
m_imageLabel->setScreenshot(m_pixmap);
m_imageLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(m_imageLabel, &ImageLabel::dragInitiated, this, &ImgS3Uploader::startDrag);
m_vLayout->addWidget(m_imageLabel);
}
m_hLayout = new QHBoxLayout();
m_vLayout->addLayout(m_hLayout);
m_copyUrlButton = new QPushButton(tr("Copy URL"));
m_openUrlButton = new QPushButton(tr("Open URL"));
m_deleteImageOnS3 = new QPushButton(tr("Delete image"));
m_toClipboardButton = new QPushButton(tr("Image to Clipboard."));
m_hLayout->addWidget(m_copyUrlButton);
m_hLayout->addWidget(m_openUrlButton);
m_hLayout->addWidget(m_deleteImageOnS3);
m_hLayout->addWidget(m_toClipboardButton);
connect(m_copyUrlButton, &QPushButton::clicked,
this, &ImgS3Uploader::copyURL);
connect(m_openUrlButton, &QPushButton::clicked,
this, &ImgS3Uploader::openURL);
connect(m_deleteImageOnS3, &QPushButton::clicked,
this, &ImgS3Uploader::deleteImageOnS3);
connect(m_toClipboardButton, &QPushButton::clicked,
this, &ImgS3Uploader::copyImage);
}
@@ -375,3 +379,30 @@ void ImgS3Uploader::copyImage() {
QApplication::clipboard()->setPixmap(m_pixmap);
m_notification->showMessage(tr("Screenshot copied to clipboard."));
}
void ImgS3Uploader::deleteImageOnS3() {
if(nullptr != m_imageLabel) {
m_imageLabel->hide();
}
m_spinner->show();
setInfoLabelText(tr("Deleting image..."));
deleteResource(m_s3ImageName, m_deleteToken);
}
bool ImgS3Uploader::success() {
return m_success;
}
void ImgS3Uploader::hideSpinner() {
if(nullptr != m_spinner) {
m_spinner->hide();
}
if(nullptr != m_imageLabel) {
m_imageLabel->hide();
}
}
void ImgS3Uploader::setInfoLabelText(const QString &infoText) {
m_infoLabel->setText(infoText);
m_infoLabel->show();
}

View File

@@ -17,6 +17,9 @@
#pragma once
#define S3_API_IMG_PATH "v2/image/"
#include "imgs3settings.h"
#include <QWidget>
#include <QUrl>
@@ -31,35 +34,53 @@ class QPushButton;
class QUrl;
class NotificationWidget;
class ConfigEnterprise;
class ImageLabel;
class ImgS3Uploader : public QWidget {
Q_OBJECT
public:
explicit ImgS3Uploader(const QPixmap &capture, QWidget *parent = nullptr);
explicit ImgS3Uploader(QWidget *parent = nullptr);
void upload();
void deleteResource(const QString &, const QString &);
bool success();
private slots:
void handleReply(QNetworkReply *reply);
void handleCredsReply(QNetworkReply *reply);
void handleReplyUpload(QNetworkReply *reply);
void handleReplyGetCreds(QNetworkReply *reply);
void handleReplyDeleteResource(QNetworkReply *reply);
void startDrag();
void openURL();
void copyURL();
void copyImage();
void deleteImageOnS3();
private:
void init(const QString &title, const QString &label);
void uploadToS3(QJsonDocument &response);
void initNetwork();
void onUploadOk();
void hideSpinner();
void setInfoLabelText(const QString &);
// class members
private:
bool m_success;
ConfigEnterprise *m_configEnterprise;
QString m_s3CredsUrl;
QString m_s3XApiKey;
ImgS3Settings m_s3Settings;
ImageLabel *m_imageLabel;
QString m_hostName;
QPixmap m_pixmap;
QNetworkProxy *m_proxy;
QNetworkAccessManager *m_NetworkAM;
QNetworkAccessManager *m_NetworkAMCreds;
QNetworkAccessManager *m_NetworkAMUpload;
QNetworkAccessManager *m_NetworkAMGetCreds;
QNetworkAccessManager *m_NetworkAMRemove;
QVBoxLayout *m_vLayout;
QHBoxLayout *m_hLayout;
@@ -70,9 +91,11 @@ private:
QPushButton *m_openUrlButton;
QPushButton *m_copyUrlButton;
QPushButton *m_toClipboardButton;
QPushButton *m_deleteImageOnS3;
QUrl m_imageURL;
NotificationWidget *m_notification;
void upload();
void onUploadOk();
// Temporary variables
QString m_deleteToken;
QString m_s3ImageName;
};

View File

@@ -47,7 +47,9 @@ QString ImgS3UploaderTool::description() const {
}
QWidget *ImgS3UploaderTool::widget() {
return new ImgS3Uploader(capture);
ImgS3Uploader *p = new ImgS3Uploader(capture);
p->upload();
return p;
}
void ImgS3UploaderTool::setCapture(const QPixmap &pixmap) {

View File

@@ -3,6 +3,7 @@
#include <QDir>
#include <QFile>
#include <QDebug>
#include <QStringList>
History::History()
@@ -28,11 +29,7 @@ const QString &History::path() {
void History::save(const QPixmap &pixmap, const QString &fileName) {
QFile file(path() + fileName);
file.open(QIODevice::WriteOnly);
pixmap.scaled(HISTORY_THUNB_WIDTH,
HISTORY_THUNB_HEIGH,
Qt::KeepAspectRatio,
Qt::SmoothTransformation
).save(&file, "PNG");
pixmap.save(&file, "PNG");
history();
}
@@ -52,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;
}

View File

@@ -1,16 +1,23 @@
#ifndef HISTORY_H
#define HISTORY_H
#define HISTORY_MAX_SIZE 10
#define HISTORY_THUNB_SCALE 1.5
#define HISTORY_THUNB_WIDTH 160*HISTORY_THUNB_SCALE
#define HISTORY_THUNB_HEIGH 90*HISTORY_THUNB_SCALE
#define HISTORY_MAX_SIZE 25
#include <QList>
#include <QString>
#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:
@@ -20,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

View File

@@ -1,7 +1,7 @@
#include "historywidget.h"
#include "src/utils/history.h"
#include "src/utils/configenterprise.h"
#include "src/widgets/notificationwidget.h"
#include "src/tools/imgs3/imgs3uploader.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPixmap>
@@ -18,12 +18,13 @@
#include <QDesktopServices>
#include <QClipboard>
#include <QUrl>
#include <QLayoutItem>
HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent)
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setWindowTitle(tr("Screenshots history"));
setWindowTitle(tr("Latest Uploads"));
setFixedSize(800, this->height());
m_notification = new NotificationWidget();
@@ -43,88 +44,146 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent)
}
void HistoryWidget::loadHistory() {
// read history files
History history = History();
QList<QString> historyFiles = history.history();
ConfigEnterprise configEnterprise;
QSettings *settings = configEnterprise.settings();
settings->beginGroup("S3");
QString s3BaseUrl = settings->value("S3_URL").toString();
settings->endGroup();
if(historyFiles.isEmpty()) {
QPushButton *buttonEmpty = new QPushButton;
buttonEmpty->setText(tr("Screenshots history is empty"));
buttonEmpty->setMinimumSize(1, HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonEmpty, &QPushButton::clicked, this, [=](){
this->close();
});
m_pVBox->addWidget(buttonEmpty);
return;
setEmptyMessage();
}
foreach(QString fileName, historyFiles) {
// generate url
QString fullFileName = history.path() + fileName;
QString url = s3BaseUrl + fileName;
// load pixmap
QPixmap pixmap;
pixmap.load( fullFileName, "png" );
if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >= pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
pixmap = pixmap.scaledToHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
} else {
pixmap = pixmap.scaledToWidth(HISTORYPIXMAP_MAX_PREVIEW_WIDTH);
else {
// generate history list
foreach(QString fileName, historyFiles) {
addLine(history.path(), fileName);
}
// get file info
QFileInfo *pFileInfo = new QFileInfo(fullFileName);
QString lastModified = pFileInfo->lastModified().toString(" yyyy-MM-dd hh:mm:ss");
// screenshot preview
QLabel *pScreenshot = new QLabel();
pScreenshot->setStyleSheet("padding: 5px;");
pScreenshot->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
pScreenshot->setPixmap(pixmap);
// screenshot datetime
QLabel *pScreenshotText = new QLabel();
pScreenshotText->setStyleSheet("padding: 5px;");
pScreenshotText->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
pScreenshotText->setText(lastModified);
// copy url
QPushButton *buttonCopyUrl = new QPushButton;
buttonCopyUrl->setText(tr("Copy URL"));
buttonCopyUrl->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonCopyUrl, &QPushButton::clicked, this, [=](){
QApplication::clipboard()->setText(url);
m_notification->showMessage(tr("URL copied to clipboard."));
this->close();
});
// open in browser
QPushButton *buttonOpen = new QPushButton;
buttonOpen->setText(tr("Open in browser"));
buttonOpen->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonOpen, &QPushButton::clicked, this, [=](){
QDesktopServices::openUrl(QUrl(url));
this->close();
});
// layout
QHBoxLayout *phbl = new QHBoxLayout();
phbl->addWidget(pScreenshot);
phbl->addWidget(pScreenshotText);
phbl->addWidget(buttonCopyUrl);
phbl->addWidget(buttonOpen);
phbl->setStretchFactor(pScreenshot, 3);
phbl->setStretchFactor(pScreenshotText, 2);
phbl->setStretchFactor(buttonCopyUrl, 2);
phbl->setStretchFactor(buttonOpen, 2);
// add to scroll
m_pVBox->addLayout(phbl);
}
}
void HistoryWidget::setEmptyMessage() {
QPushButton *buttonEmpty = new QPushButton;
buttonEmpty->setText(tr("Screenshots history is empty"));
buttonEmpty->setMinimumSize(1, HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonEmpty, &QPushButton::clicked, this, [=](){
this->close();
});
m_pVBox->addWidget(buttonEmpty);
}
void HistoryWidget::addLine(const QString &path, const QString& fileName) {
QHBoxLayout *phbl = new QHBoxLayout();
QString fullFileName = path + fileName;
History history;
HISTORY_FILE_NAME unpackFileName = history.unpackFileName(fileName);
QString url = m_s3Settings.url() + unpackFileName.file;
// load pixmap
QPixmap pixmap;
pixmap.load( fullFileName, "png" );
if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >= pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
pixmap = pixmap.scaledToHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
} else {
pixmap = pixmap.scaledToWidth(HISTORYPIXMAP_MAX_PREVIEW_WIDTH);
}
// get file info
QFileInfo *pFileInfo = new QFileInfo(fullFileName);
QString lastModified = pFileInfo->lastModified().toString(" yyyy-MM-dd\nhh:mm:ss");
// screenshot preview
QLabel *pScreenshot = new QLabel();
pScreenshot->setStyleSheet("padding: 5px;");
pScreenshot->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
pScreenshot->setPixmap(pixmap);
// screenshot datetime
QLabel *pScreenshotText = new QLabel();
pScreenshotText->setStyleSheet("padding: 5px;");
pScreenshotText->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
pScreenshotText->setAlignment(Qt::AlignCenter);
pScreenshotText->setText(lastModified);
// copy url
QPushButton *buttonCopyUrl = new QPushButton;
buttonCopyUrl->setText(tr("Copy URL"));
buttonCopyUrl->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonCopyUrl, &QPushButton::clicked, this, [=](){
QApplication::clipboard()->setText(url);
m_notification->showMessage(tr("URL copied to clipboard."));
this->close();
});
// open in browser
QPushButton *buttonOpen = new QPushButton;
buttonOpen->setText(tr("Open in browser"));
buttonOpen->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonOpen, &QPushButton::clicked, this, [=](){
QDesktopServices::openUrl(QUrl(url));
this->close();
});
// delete
QPushButton *buttonDelete = new QPushButton;
buttonDelete->setIcon(QIcon(":/img/material/black/delete.svg"));
buttonDelete->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonDelete, &QPushButton::clicked, this, [=](){
if (unpackFileName.token.length() > 0) {
removeItem(phbl, unpackFileName.file, unpackFileName.token);
}
else {
// for compatibility with previous versions and to be able to remove previous screenshots
QFile file(fullFileName);
if (file.exists()) {
file.remove();
}
removeLocalItem(phbl);
}
});
// layout
phbl->addWidget(pScreenshot);
phbl->addWidget(pScreenshotText);
phbl->addWidget(buttonCopyUrl);
phbl->addWidget(buttonOpen);
phbl->addWidget(buttonDelete);
phbl->setStretchFactor(pScreenshot, 6);
phbl->setStretchFactor(pScreenshotText, 4);
phbl->setStretchFactor(buttonCopyUrl, 4);
phbl->setStretchFactor(buttonOpen, 4);
phbl->setStretchFactor(buttonDelete, 1);
// add to scroll
m_pVBox->addLayout(phbl);
}
void HistoryWidget::removeItem(QLayout *pl, const QString& s3FileName, const QString& deleteToken) {
ImgS3Uploader *uploader = new ImgS3Uploader();
hide();
uploader->show();
uploader->deleteResource(s3FileName, deleteToken);
connect(uploader, &QWidget::destroyed, this, [=](){
if(uploader->success()) {
removeLocalItem(pl);
}
show();
});
}
void HistoryWidget::removeLocalItem(QLayout *pl) {
// remove current row or refresh list
while(pl->count() > 0) {
QLayoutItem *item = pl->takeAt(0);
delete item->widget();
delete item;
}
m_pVBox->removeItem(pl);
delete pl;
// set "empty" message if no items left
if(m_pVBox->count() == 0) {
setEmptyMessage();
}
}

View File

@@ -7,7 +7,10 @@
#include <QObject>
#include <QWidget>
#include <QDialog>
#include <QString>
#include "src/tools/imgs3/imgs3settings.h"
class QLayout;
class QVBoxLayout;
class NotificationWidget;
@@ -21,8 +24,13 @@ signals:
private:
void loadHistory();
void addLine(const QString &, const QString &);
void removeItem(QLayout *pl, const QString& s3FileName, const QString& deleteToken);
void removeLocalItem(QLayout *pl);
void setEmptyMessage();
private:
ImgS3Settings m_s3Settings;
QVBoxLayout *m_pVBox;
NotificationWidget *m_notification;
};

View File

@@ -440,27 +440,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -469,41 +469,63 @@ Press Space to open the side panel.</source>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">S&apos;està pujant la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">Obri l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imatge al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No es pot obrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
@@ -800,7 +822,6 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>

View File

@@ -443,27 +443,27 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">URL öffnen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Bild löschen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Bild in Zwischenablage.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kann URL nicht öffnen.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
</message>
@@ -803,7 +825,6 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<translation>Kein Schreibzugriff auf</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>

View File

@@ -443,27 +443,27 @@ Presiona Espacio para abrir el panel lateral.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Presiona Espacio para abrir el panel lateral.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Subiendo Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Borrar imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagen al Portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No puede abrir la URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Captura copiada al portapapeles.</translation>
</message>
@@ -803,7 +825,6 @@ Presiona Espacio para abrir el panel lateral.</translation>
<translation>Imposible escribir en</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>

View File

@@ -443,27 +443,27 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<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="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Mise en ligne de l&apos;image</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">Ouvrir l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Image dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Impossible d&apos;ouvrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Capture d&apos;écran copiée dans le Presse-papier.</translation>
</message>
@@ -803,7 +825,6 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<translation>Imposible d&apos;écrire par dessus</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>

View File

@@ -384,10 +384,6 @@ Press Space to open the side panel.</source>
</context>
<context>
<name>HistoryWidget</name>
<message>
<source>Screenshots history</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL másolva a vágólapra.</translation>
@@ -404,13 +400,13 @@ Press Space to open the side panel.</source>
<source>Copy URL</source>
<translation type="unfinished">URL másolása</translation>
</message>
<message>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgS3Uploader</name>
<message>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uploading Image</source>
<translation type="unfinished">Kép felötlése</translation>
@@ -439,6 +435,26 @@ Press Space to open the side panel.</source>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Képernyőmentés másolva a vágólapra.</translation>
</message>
<message>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>

View File

@@ -443,27 +443,27 @@ Enter を押すと画面をキャプチャー。
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Enter を押すと画面をキャプチャー。
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
@@ -803,7 +825,6 @@ Enter を押すと画面をキャプチャー。
<translation>:</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>

View File

@@ -439,27 +439,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -468,41 +468,63 @@ Press Space to open the side panel.</source>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL- .</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"> .</translation>
</message>
@@ -799,7 +821,6 @@ Press Space to open the side panel.</source>
<translation type="unfinished"> :</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>

View File

@@ -443,27 +443,27 @@ Druk op spatie om het zijpaneel te openen.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Druk op spatie om het zijpaneel te openen.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Bezig met uploaden van afbeelding...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">URL openen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Afbeelding verwijderen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Afbeelding naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kan URL niet openen.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Schermafdruk gekopieerd naar klembord.</translation>
</message>
@@ -803,7 +825,6 @@ Druk op spatie om het zijpaneel te openen.</translation>
<translation>Kan niet wegschrijven naar</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>

View File

@@ -442,27 +442,27 @@ Spacja, aby pokazać panel boczny.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -471,41 +471,63 @@ Spacja, aby pokazać panel boczny.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Wysyłanie obrazka</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">Otwórz URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Usuń obrazek</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrazek do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nie można otworzyć adresu URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Zrzut ekranu skopiowany do schowka.</translation>
</message>
@@ -802,7 +824,6 @@ Spacja, aby pokazać panel boczny.</translation>
<translation>Nie można zapisać w</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>

View File

@@ -443,27 +443,27 @@ Pressione espaço abrir o painel lateral.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Pressione espaço abrir o painel lateral.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Upando Imagem</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Deletar imagem</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagem no Clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Não foi possível abrir a URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Screenshot copiada para o clipboard.</translation>
</message>
@@ -803,7 +825,6 @@ Pressione espaço abrir o painel lateral.</translation>
<translation>Não foi possível escrever em</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>

View File

@@ -451,31 +451,35 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<translation>История скриншотов</translation>
<translation type="vanished">История скриншотов</translation>
</message>
<message>
<source>Screenshots history is epmty</source>
<translation type="vanished">История скриншотов пустая</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation>Последние загрузки</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation>История скриншотов пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation>Открыть в браузере</translation>
</message>
@@ -483,46 +487,72 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation>Загрузить на S3</translation>
<translation type="vanished">Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Uploading Image</source>
<translation>Загрузка изображения</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation>Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation>Удалить скриншот с S3</translation>
</message>
<message>
<source>Deleting Image</source>
<translation type="vanished">Удалить скриншот</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation>Параметры доступов к S3 не найдены в конфигурационном файле</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="vanished">Удалить изображение</translation>
<translation>Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation>Не удалось открыть URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation>Удаление скриншота...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation>Снимок скопирован в буфер обмена.</translation>
</message>
@@ -823,11 +853,14 @@ Press Space to open the side panel.</source>
<translation>Не удалось сохранить</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<source>File is deleted from S3</source>
<translation type="vanished">Файл удален с S3</translation>
</message>
</context>
<context>
<name>RectangleTool</name>

View File

@@ -443,27 +443,27 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<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="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Nahrávam obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">Otvoriť URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Vymazať obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrázok do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nepodarilo sa otvoriť URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Snímka obrazovky bola skopírovaná do schránky.</translation>
</message>
@@ -803,7 +825,6 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<translation>Chyba pri ukladaní</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>

View File

@@ -443,27 +443,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Press Space to open the side panel.</source>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Објављујем слику</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">Посети интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Избриши слику</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Сачувај у привремену меморију.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Нисам успео да посетим интернет адресу.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Слика је сачувана у привременој меморији.</translation>
</message>
@@ -803,7 +825,6 @@ Press Space to open the side panel.</source>
<translation>Нисам успео са сачувам</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>

View File

@@ -443,27 +443,27 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -472,41 +472,63 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished">Resim Yükleniyor</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished">Resmi sil</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Resim Pano&apos;ya.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL ılamıyor.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Ekran görüntüsü panoya kopyalandı.</translation>
</message>
@@ -803,7 +825,6 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<translation>Yazma mümkün değil</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>

View File

@@ -451,31 +451,35 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<translation>Історія скріншотів</translation>
<translation type="vanished">Історія скріншотів</translation>
</message>
<message>
<source>Screenshots history is epmty</source>
<translation type="vanished">Історія скріншотів пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation>Останні завантаження</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation>Історія скріншотів пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation>Відкрити у браузері</translation>
</message>
@@ -483,46 +487,72 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation>Вивантажити на S3</translation>
<translation type="vanished">Вивантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Uploading Image</source>
<translation>Вивантаження зображення</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation>Завантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation>Видалити скріншот з S3</translation>
</message>
<message>
<source>Deleting Image</source>
<translation type="vanished">Видалити скіншот</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation>Параметри доступів до S3 не знайдені у конфігураціонному файлі</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="vanished">Видалити зображення</translation>
<translation>Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation>Не вдалось відкрити URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation>Видалення скріншоту...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation>Знімок скопійовано до буферу обміну.</translation>
</message>
@@ -823,11 +853,14 @@ Press Space to open the side panel.</source>
<translation>Не вдалось зберегти</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<source>File is deleted from S3</source>
<translation type="vanished">Файл видален з S3</translation>
</message>
</context>
<context>
<name>RectangleTool</name>

View File

@@ -444,27 +444,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -473,41 +473,63 @@ Press Space to open the side panel.</source>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
@@ -804,7 +826,6 @@ Press Space to open the side panel.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>

View File

@@ -439,27 +439,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<source>Screenshots history</source>
<location filename="../src/widgets/historywidget.cpp" line="27"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="57"/>
<location filename="../src/widgets/historywidget.cpp" line="64"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="98"/>
<location filename="../src/widgets/historywidget.cpp" line="110"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="102"/>
<location filename="../src/widgets/historywidget.cpp" line="114"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="108"/>
<location filename="../src/widgets/historywidget.cpp" line="120"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -468,41 +468,63 @@ Press Space to open the side panel.</source>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload to ImgS3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="60"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="318"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="53"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="258"/>
<source>S3 Creds URL is not found in your configuration file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="319"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="348"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="320"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="349"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="350"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="336"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="369"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="342"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="205"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="375"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="347"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="59"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="388"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="380"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
@@ -799,7 +821,6 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="160"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>