Code Refactoring for s3 and imgur storages, create base class for both

This commit is contained in:
Yuriy Puchkov
2020-09-15 19:37:34 +03:00
parent 08ccb20cad
commit 471b25e6a8
38 changed files with 3187 additions and 2064 deletions

6
.clang-format Normal file
View File

@@ -0,0 +1,6 @@
Language: Cpp
BasedOnStyle: Mozilla
IndentWidth: 4
AccessModifierOffset: -4
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None

View File

@@ -87,7 +87,6 @@ SOURCES += src/main.cpp \
src/config/filepathconfiguration.cpp \
src/config/setshortcutwidget.cpp \
src/config/shortcutswidget.cpp \
src/tools/imgs3/imgs3settings.cpp \
src/utils/configshortcuts.cpp \
src/widgets/historywidget.cpp \
src/utils/configenterprise.cpp \
@@ -112,8 +111,6 @@ SOURCES += src/main.cpp \
src/tools/circle/circletool.cpp \
src/tools/copy/copytool.cpp \
src/tools/exit/exittool.cpp \
src/tools/imgur/imguruploadertool.cpp \
src/tools/imgs3/imgs3uploadertool.cpp \
src/tools/line/linetool.cpp \
src/tools/marker/markertool.cpp \
src/tools/move/movetool.cpp \
@@ -130,8 +127,12 @@ SOURCES += src/main.cpp \
src/cli/commandoption.cpp \
src/cli/commandargument.cpp \
src/utils/screenshotsaver.cpp \
src/tools/imgur/imguruploader.cpp \
src/tools/imgs3/imgs3uploader.cpp \
src/tools/storage/imguploader.cpp \
src/tools/storage/imguruploadertool.cpp \
src/tools/storage/imguruploader.cpp \
src/tools/storage/imgs3uploadertool.cpp \
src/tools/storage/imgs3uploader.cpp \
src/tools/storage/imgs3settings.cpp \
src/widgets/loadspinner.cpp \
src/widgets/imagelabel.cpp \
src/widgets/notificationwidget.cpp \
@@ -170,7 +171,6 @@ HEADERS += src/widgets/capture/buttonhandler.h \
src/config/filepathconfiguration.h \
src/config/setshortcutwidget.h \
src/config/shortcutswidget.h \
src/tools/imgs3/imgs3settings.h \
src/utils/configshortcuts.h \
src/widgets/historywidget.h \
src/utils/configenterprise.h \
@@ -196,8 +196,6 @@ HEADERS += src/widgets/capture/buttonhandler.h \
src/tools/circle/circletool.h \
src/tools/copy/copytool.h \
src/tools/exit/exittool.h \
src/tools/imgur/imguruploadertool.h \
src/tools/imgs3/imgs3uploadertool.h \
src/tools/line/linetool.h \
src/tools/marker/markertool.h \
src/tools/move/movetool.h \
@@ -213,8 +211,12 @@ HEADERS += src/widgets/capture/buttonhandler.h \
src/cli/commandoption.h \
src/cli/commandargument.h \
src/utils/screenshotsaver.h \
src/tools/imgur/imguruploader.h \
src/tools/imgs3/imgs3uploader.h \
src/tools/storage/imguploader.h \
src/tools/storage/imguruploadertool.h \
src/tools/storage/imguruploader.h \
src/tools/storage/imgs3uploader.h \
src/tools/storage/imgs3uploadertool.h \
src/tools/storage/imgs3settings.h \
src/widgets/loadspinner.h \
src/widgets/imagelabel.h \
src/widgets/notificationwidget.h \

View File

@@ -1,467 +0,0 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imgs3uploader.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/notificationwidget.h"
#include "src/utils/confighandler.h"
#include "src/utils/history.h"
#include "src/utils/configenterprise.h"
#include <QApplication>
#include <QClipboard>
#include <QDesktopServices>
#include <QShortcut>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QDrag>
#include <QMimeData>
#include <QBuffer>
#include <QUrlQuery>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QTimer>
#include <QJsonDocument>
#include <QJsonObject>
#include <QHttpMultiPart>
#include <QNetworkProxy>
#include <QDir>
#include <QMessageBox>
#include <QDebug>
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_imageLabel = nullptr;
m_spinner = nullptr;
m_proxy = nullptr;
m_NetworkAMUpload = nullptr;
m_NetworkAMGetCreds = nullptr;
m_NetworkAMRemove = 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(label);
m_infoLabel->setAlignment(Qt::AlignCenter);
m_vLayout = new QVBoxLayout();
setLayout(m_vLayout);
m_vLayout->addWidget(m_spinner, 0, Qt::AlignHCenter);
m_vLayout->addWidget(m_infoLabel);
setAttribute(Qt::WA_DeleteOnClose);
}
QNetworkProxy *ImgS3Uploader::proxy() {
if(m_proxy == nullptr) {
initProxy();
}
return m_proxy;
}
QNetworkProxy *ImgS3Uploader::initProxy() {
// get enterprise settings
ConfigEnterprise *configEnterprise = new ConfigEnterprise();
// get proxy settings from "config.ini" file
QSettings *settings = configEnterprise->settings();
QString httpProxyHost = settings->value("HTTP_PROXY_HOST").toString();
if(httpProxyHost.length() > 0) {
m_proxy = new QNetworkProxy();
if(settings->contains("HTTP_PROXY_TYPE")) {
switch (settings->value("HTTP_PROXY_TYPE").toInt()) {
case 0:
m_proxy->setType(QNetworkProxy::DefaultProxy);
break;
case 1:
m_proxy->setType(QNetworkProxy::Socks5Proxy);
break;
case 2:
m_proxy->setType(QNetworkProxy::NoProxy);
break;
case 4:
m_proxy->setType(QNetworkProxy::HttpCachingProxy);
break;
case 5:
m_proxy->setType(QNetworkProxy::FtpCachingProxy);
break;
case 3:
default:
m_proxy->setType(QNetworkProxy::HttpProxy);
break;
}
}
m_proxy->setHostName(httpProxyHost);
int nProxyPort = 3128;
if(settings->contains("HTTP_PROXY_PORT")) {
nProxyPort = settings->value("HTTP_PROXY_PORT").toInt();
}
m_proxy->setPort(nProxyPort);
if(settings->contains("HTTP_PROXY_USER")) {
qDebug() << "Proxy user" << settings->value("HTTP_PROXY_PASSWORD").toString();
m_proxy->setUser(settings->value("HTTP_PROXY_USER").toString());
}
if(settings->contains("HTTP_PROXY_PASSWORD")) {
qDebug() << "Proxy password is not empty";
m_proxy->setPassword(settings->value("HTTP_PROXY_PASSWORD").toString());
}
}
else {
// Get proxy settings from OS settings
QNetworkProxyQuery q(QUrl(m_s3Settings.credsUrl().toUtf8()));
q.setQueryType(QNetworkProxyQuery::UrlRequest);
q.setProtocolTag("http");
QList<QNetworkProxy> proxies = QNetworkProxyFactory::systemProxyForQuery(q);
if( proxies.size() > 0 && proxies[0].type() != QNetworkProxy::NoProxy ){
m_proxy = new QNetworkProxy();
m_proxy->setHostName(proxies[0].hostName());
m_proxy->setPort(proxies[0].port());
m_proxy->setType(proxies[0].type());
m_proxy->setUser(proxies[0].user());
m_proxy->setPassword(proxies[0].password());
}
}
#ifdef QT_DEBUG
if(m_proxy != nullptr) {
qDebug() << "Using proxy server";
qDebug() << "proxy host:" << m_proxy->hostName();
qDebug() << "proxy port:" << m_proxy->port();
qDebug() << "proxy type:" << m_proxy->type();
qDebug() << "proxy user:" << (m_proxy->user().length() > 0 ? m_proxy->user() : "no user");
qDebug() << "proxy password:" << (m_proxy->password().length() > 0 ? "***" : "no password");
}
else {
qDebug() << "No proxy";
}
#endif
return m_proxy;
}
void ImgS3Uploader::clearProxy() {
if(m_proxy != nullptr) {
delete m_proxy;
m_proxy = nullptr;
}
}
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 + 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(tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
QString reason = reply->attribute( QNetworkRequest::HttpReasonPhraseAttribute ).toString();
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::removeImagePreview() {
// 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();
m_success = true;
}
void ImgS3Uploader::handleReplyDeleteResource(QNetworkReply *reply) {
auto replyError = reply->error();
if (replyError == QNetworkReply::NoError) {
removeImagePreview();
} else {
hide();
// generate error message
QString message = tr("Unable to remove screenshot from the remote storage.");
if(replyError == QNetworkReply::UnknownNetworkError) {
message += "\n" + tr("Network error");
}
else if(replyError == QNetworkReply::UnknownServerError) {
message += "\n" + tr("Possibly it doesn't exist anymore");
}
message += "\n\n" + reply->errorString();
message += "\n\n" + tr("Do you want to remove screenshot from local history anyway?");
if (QMessageBox::Yes == QMessageBox::question(NULL,
tr("Remove screenshot from history?"),
message,
QMessageBox::Yes|QMessageBox::No)) {
removeImagePreview();
}
}
close();
}
void ImgS3Uploader::startDrag() {
QMimeData *mimeData = new QMimeData;
mimeData->setUrls(QList<QUrl> { m_imageURL });
mimeData->setImageData(m_pixmap);
QDrag *dragHandler = new QDrag(this);
dragHandler->setMimeData(mimeData);
dragHandler->setPixmap(m_pixmap.scaled(256, 256, Qt::KeepAspectRatioByExpanding,
Qt::SmoothTransformation));
dragHandler->exec();
}
void ImgS3Uploader::handleReplyGetCreds(QNetworkReply *reply){
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
uploadToS3(response);
} else {
if(m_s3Settings.credsUrl().length() == 0){
setInfoLabelText(tr("S3 Creds URL is not found in your configuration file"));
}
else {
setInfoLabelText(reply->errorString());
}
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::uploadToS3(QJsonDocument &response) {
// set paramets from "fields"
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
// 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"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"file\""));
QByteArray byteArray;
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
m_pixmap.save(&buffer, "PNG");
imagePart.setBody(byteArray);
multiPart->append(imagePart);
m_imageURL.setUrl(resultURL);
QUrl qUrl(url);
QNetworkRequest request(qUrl);
// upload
m_NetworkAMUpload->post(request, multiPart);
}
void ImgS3Uploader::deleteResource(const QString &fileName, const QString &deleteToken) {
// read network settings on each call to simplify configuration management without restarting
clearProxy();
if(m_NetworkAMRemove != nullptr) {
delete m_NetworkAMRemove;
m_NetworkAMRemove = nullptr;
}
m_NetworkAMRemove = new QNetworkAccessManager(this);
connect(m_NetworkAMRemove, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyDeleteResource);
if(proxy() != nullptr) {
m_NetworkAMRemove->setProxy(*proxy());
}
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();
// read network settings on each call to simplify configuration management without restarting
// init creds and upload network access managers
clearProxy();
if(m_NetworkAMGetCreds != nullptr) {
delete m_NetworkAMGetCreds;
m_NetworkAMGetCreds = nullptr;
}
m_NetworkAMGetCreds = new QNetworkAccessManager(this);
connect(m_NetworkAMGetCreds, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyGetCreds);
if(m_NetworkAMUpload != nullptr) {
delete m_NetworkAMUpload;
m_NetworkAMUpload = nullptr;
}
m_NetworkAMUpload = new QNetworkAccessManager(this);
connect(m_NetworkAMUpload, &QNetworkAccessManager::finished, this, &ImgS3Uploader::handleReplyUpload);
if(proxy() != nullptr) {
m_NetworkAMGetCreds->setProxy(*proxy());
m_NetworkAMUpload->setProxy(*proxy());
}
// get creads
QUrl creds(m_s3Settings.credsUrl());
QNetworkRequest requestCreds(creds);
if(m_s3Settings.xApiKey().length() > 0) {
requestCreds.setRawHeader(QByteArray("X-API-Key"), QByteArray(m_s3Settings.xApiKey().toLocal8Bit()));
}
m_NetworkAMGetCreds->get(requestCreds);
}
void ImgS3Uploader::onUploadOk() {
hideSpinner();
m_notification = new NotificationWidget();
m_vLayout->addWidget(m_notification);
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);
}
void ImgS3Uploader::openURL() {
bool successful = QDesktopServices::openUrl(m_imageURL);
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgS3Uploader::copyURL() {
QApplication::clipboard()->setText(m_imageURL.toString());
m_notification->showMessage(tr("URL copied to clipboard."));
}
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

@@ -1,103 +0,0 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define S3_API_IMG_PATH "v2/image/"
#include "imgs3settings.h"
#include <QWidget>
#include <QUrl>
class QNetworkReply;
class QNetworkProxy;
class QNetworkAccessManager;
class QHBoxLayout;
class QVBoxLayout;
class QLabel;
class LoadSpinner;
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 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);
QNetworkProxy *initProxy();
void clearProxy();
void removeImagePreview();
void onUploadOk();
void hideSpinner();
void setInfoLabelText(const QString &);
QNetworkProxy *proxy();
// class members
private:
bool m_success;
ImgS3Settings m_s3Settings;
ImageLabel *m_imageLabel;
QString m_hostName;
QPixmap m_pixmap;
QNetworkProxy *m_proxy;
QNetworkAccessManager *m_NetworkAMUpload;
QNetworkAccessManager *m_NetworkAMGetCreds;
QNetworkAccessManager *m_NetworkAMRemove;
QVBoxLayout *m_vLayout;
QHBoxLayout *m_hLayout;
// loading
QLabel *m_infoLabel;
LoadSpinner *m_spinner;
// uploaded
QPushButton *m_openUrlButton;
QPushButton *m_copyUrlButton;
QPushButton *m_toClipboardButton;
QPushButton *m_deleteImageOnS3;
QUrl m_imageURL;
NotificationWidget *m_notification;
// Temporary variables
QString m_deleteToken;
QString m_s3ImageName;
};

View File

@@ -1,182 +0,0 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imguruploader.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/notificationwidget.h"
#include "src/utils/confighandler.h"
#include <QApplication>
#include <QClipboard>
#include <QDesktopServices>
#include <QShortcut>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QDrag>
#include <QMimeData>
#include <QBuffer>
#include <QUrlQuery>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QTimer>
#include <QJsonDocument>
#include <QJsonObject>
ImgurUploader::ImgurUploader(const QPixmap &capture, QWidget *parent) :
QWidget(parent), m_pixmap(capture)
{
setWindowTitle(tr("Upload to Imgur"));
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_vLayout = new QVBoxLayout();
setLayout(m_vLayout);
m_vLayout->addWidget(m_spinner, 0, Qt::AlignHCenter);
m_vLayout->addWidget(m_infoLabel);
m_NetworkAM = new QNetworkAccessManager(this);
connect(m_NetworkAM, &QNetworkAccessManager::finished, this,
&ImgurUploader::handleReply);
setAttribute(Qt::WA_DeleteOnClose);
upload();
// QTimer::singleShot(2000, this, &ImgurUploader::onUploadOk); // testing
}
void ImgurUploader::handleReply(QNetworkReply *reply) {
m_spinner->deleteLater();
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
QJsonObject json = response.object();
QJsonObject data = json[QStringLiteral("data")].toObject();
m_imageURL.setUrl(data[QStringLiteral("link")].toString());
m_deleteImageURL.setUrl(QStringLiteral("https://imgur.com/delete/%1").arg(
data[QStringLiteral("deletehash")].toString()));
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
QApplication::clipboard()->setText(m_imageURL.toString());
SystemNotification().sendMessage(QObject::tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
m_infoLabel->setText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgurUploader::startDrag() {
QMimeData *mimeData = new QMimeData;
mimeData->setUrls(QList<QUrl> { m_imageURL });
mimeData->setImageData(m_pixmap);
QDrag *dragHandler = new QDrag(this);
dragHandler->setMimeData(mimeData);
dragHandler->setPixmap(m_pixmap.scaled(256, 256, Qt::KeepAspectRatioByExpanding,
Qt::SmoothTransformation));
dragHandler->exec();
}
void ImgurUploader::upload() {
QByteArray byteArray;
QBuffer buffer(&byteArray);
m_pixmap.save(&buffer, "PNG");
QUrlQuery urlQuery;
urlQuery.addQueryItem(QStringLiteral("title"), QStringLiteral("flameshot_screenshot"));
QString description = FileNameHandler().parsedPattern();
urlQuery.addQueryItem(QStringLiteral("description"), description);
QUrl url(QStringLiteral("https://api.imgur.com/3/image"));
url.setQuery(urlQuery);
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader,
"application/application/x-www-form-urlencoded");
request.setRawHeader("Authorization", QStringLiteral("Client-ID %1").arg(IMGUR_CLIENT_ID).toUtf8());
m_NetworkAM->post(request, byteArray);
}
void ImgurUploader::onUploadOk() {
m_infoLabel->deleteLater();
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, &ImgurUploader::startDrag);
m_vLayout->addWidget(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_openDeleteUrlButton = 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_openDeleteUrlButton);
m_hLayout->addWidget(m_toClipboardButton);
connect(m_copyUrlButton, &QPushButton::clicked,
this, &ImgurUploader::copyURL);
connect(m_openUrlButton, &QPushButton::clicked,
this, &ImgurUploader::openURL);
connect(m_openDeleteUrlButton, &QPushButton::clicked,
this, &ImgurUploader::openDeleteURL);
connect(m_toClipboardButton, &QPushButton::clicked,
this, &ImgurUploader::copyImage);
}
void ImgurUploader::openURL() {
bool successful = QDesktopServices::openUrl(m_imageURL);
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgurUploader::copyURL() {
QApplication::clipboard()->setText(m_imageURL.toString());
m_notification->showMessage(tr("URL copied to clipboard."));
}
void ImgurUploader::openDeleteURL()
{
bool successful = QDesktopServices::openUrl(m_deleteImageURL);
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgurUploader::copyImage() {
QApplication::clipboard()->setPixmap(m_pixmap);
m_notification->showMessage(tr("Screenshot copied to clipboard."));
}

View File

@@ -0,0 +1,377 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imgs3uploader.h"
#include "src/utils/configenterprise.h"
#include "src/utils/confighandler.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/history.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/notificationwidget.h"
#include <QApplication>
#include <QBuffer>
#include <QClipboard>
#include <QDebug>
#include <QDesktopServices>
#include <QDir>
#include <QDrag>
#include <QHBoxLayout>
#include <QHttpMultiPart>
#include <QJsonDocument>
#include <QJsonObject>
#include <QLabel>
#include <QMessageBox>
#include <QMimeData>
#include <QNetworkAccessManager>
#include <QNetworkProxy>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPushButton>
#include <QShortcut>
#include <QTimer>
#include <QUrlQuery>
#include <QVBoxLayout>
ImgS3Uploader::ImgS3Uploader(const QPixmap& capture, QWidget* parent)
: ImgUploader(capture, parent)
{
init(tr("Upload image to S3"), tr("Uploading Image"));
}
ImgS3Uploader::ImgS3Uploader(QWidget* parent)
: ImgUploader(parent)
{
init(tr("Delete image from S3"), tr("Deleting image..."));
}
void ImgS3Uploader::init(const QString& title, const QString& label)
{
m_proxy = nullptr;
m_NetworkAMUpload = nullptr;
m_NetworkAMGetCreds = nullptr;
m_NetworkAMRemove = nullptr;
resultStatus = false;
setWindowTitle(title);
setWindowIcon(QIcon(":img/app/flameshot.svg"));
}
QNetworkProxy* ImgS3Uploader::proxy()
{
if (m_proxy == nullptr) {
initProxy();
}
return m_proxy;
}
QNetworkProxy* ImgS3Uploader::initProxy()
{
// get enterprise settings
ConfigEnterprise* configEnterprise = new ConfigEnterprise();
// get proxy settings from "config.ini" file
QSettings* settings = configEnterprise->settings();
QString httpProxyHost = settings->value("HTTP_PROXY_HOST").toString();
if (httpProxyHost.length() > 0) {
m_proxy = new QNetworkProxy();
if (settings->contains("HTTP_PROXY_TYPE")) {
switch (settings->value("HTTP_PROXY_TYPE").toInt()) {
case 0:
m_proxy->setType(QNetworkProxy::DefaultProxy);
break;
case 1:
m_proxy->setType(QNetworkProxy::Socks5Proxy);
break;
case 2:
m_proxy->setType(QNetworkProxy::NoProxy);
break;
case 4:
m_proxy->setType(QNetworkProxy::HttpCachingProxy);
break;
case 5:
m_proxy->setType(QNetworkProxy::FtpCachingProxy);
break;
case 3:
default:
m_proxy->setType(QNetworkProxy::HttpProxy);
break;
}
}
m_proxy->setHostName(httpProxyHost);
int nProxyPort = 3128;
if (settings->contains("HTTP_PROXY_PORT")) {
nProxyPort = settings->value("HTTP_PROXY_PORT").toInt();
}
m_proxy->setPort(nProxyPort);
if (settings->contains("HTTP_PROXY_USER")) {
qDebug() << "Proxy user"
<< settings->value("HTTP_PROXY_PASSWORD").toString();
m_proxy->setUser(settings->value("HTTP_PROXY_USER").toString());
}
if (settings->contains("HTTP_PROXY_PASSWORD")) {
qDebug() << "Proxy password is not empty";
m_proxy->setPassword(
settings->value("HTTP_PROXY_PASSWORD").toString());
}
} else {
// Get proxy settings from OS settings
QNetworkProxyQuery q(QUrl(m_s3Settings.credsUrl().toUtf8()));
q.setQueryType(QNetworkProxyQuery::UrlRequest);
q.setProtocolTag("http");
QList<QNetworkProxy> proxies =
QNetworkProxyFactory::systemProxyForQuery(q);
if (proxies.size() > 0 && proxies[0].type() != QNetworkProxy::NoProxy) {
m_proxy = new QNetworkProxy();
m_proxy->setHostName(proxies[0].hostName());
m_proxy->setPort(proxies[0].port());
m_proxy->setType(proxies[0].type());
m_proxy->setUser(proxies[0].user());
m_proxy->setPassword(proxies[0].password());
}
}
#ifdef QT_DEBUG
if (m_proxy != nullptr) {
qDebug() << "Using proxy server";
qDebug() << "proxy host:" << m_proxy->hostName();
qDebug() << "proxy port:" << m_proxy->port();
qDebug() << "proxy type:" << m_proxy->type();
qDebug() << "proxy user:"
<< (m_proxy->user().length() > 0 ? m_proxy->user()
: "no user");
qDebug() << "proxy password:"
<< (m_proxy->password().length() > 0 ? "***" : "no password");
} else {
qDebug() << "No proxy";
}
#endif
return m_proxy;
}
void ImgS3Uploader::clearProxy()
{
if (m_proxy != nullptr) {
delete m_proxy;
m_proxy = nullptr;
}
}
void ImgS3Uploader::handleReplyUpload(QNetworkReply* reply)
{
hideSpinner();
m_storageImageName.clear();
if (reply->error() == QNetworkReply::NoError) {
// save history
QString imageName = imageUrl().toString();
int lastSlash = imageName.lastIndexOf("/");
if (lastSlash >= 0) {
imageName = imageName.mid(lastSlash + 1);
}
m_storageImageName = imageName;
History history;
imageName = history.packFileName(
SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, imageName);
history.save(pixmap(), imageName);
resultStatus = true;
// Copy url to clipboard if required
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
QApplication::clipboard()->setText(imageUrl().toString());
SystemNotification().sendMessage(tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
QString reason =
reply->attribute(QNetworkRequest::HttpReasonPhraseAttribute)
.toString();
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::handleReplyDeleteResource(QNetworkReply* reply)
{
auto replyError = reply->error();
if (replyError == QNetworkReply::NoError) {
removeImagePreview();
} else {
hide();
// generate error message
QString message =
tr("Unable to remove screenshot from the remote storage.");
if (replyError == QNetworkReply::UnknownNetworkError) {
message += "\n" + tr("Network error");
} else if (replyError == QNetworkReply::UnknownServerError) {
message += "\n" + tr("Possibly it doesn't exist anymore");
}
message += "\n\n" + reply->errorString();
message +=
"\n\n" +
tr("Do you want to remove screenshot from local history anyway?");
if (QMessageBox::Yes ==
QMessageBox::question(NULL,
tr("Remove screenshot from history?"),
message,
QMessageBox::Yes | QMessageBox::No)) {
removeImagePreview();
}
}
close();
}
void ImgS3Uploader::handleReplyGetCreds(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
uploadToS3(response);
} else {
if (m_s3Settings.credsUrl().length() == 0) {
setInfoLabelText(
tr("S3 Creds URL is not found in your configuration file"));
} else {
setInfoLabelText(reply->errorString());
}
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgS3Uploader::uploadToS3(QJsonDocument& response)
{
// set paramets from "fields"
QHttpMultiPart* multiPart =
new QHttpMultiPart(QHttpMultiPart::FormDataType);
// 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"));
imagePart.setHeader(QNetworkRequest::ContentDispositionHeader,
QVariant("form-data; name=\"file\""));
QByteArray byteArray;
QBuffer buffer(&byteArray);
buffer.open(QIODevice::WriteOnly);
pixmap().save(&buffer, "PNG");
imagePart.setBody(byteArray);
multiPart->append(imagePart);
setImageUrl(QUrl(resultUrl));
QUrl qUrl(url);
QNetworkRequest request(qUrl);
// upload
m_NetworkAMUpload->post(request, multiPart);
}
void ImgS3Uploader::deleteResource(const QString& fileName,
const QString& deleteToken)
{
// read network settings on each call to simplify configuration management
// without restarting
clearProxy();
if (m_NetworkAMRemove != nullptr) {
delete m_NetworkAMRemove;
m_NetworkAMRemove = nullptr;
}
m_NetworkAMRemove = new QNetworkAccessManager(this);
connect(m_NetworkAMRemove,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyDeleteResource);
if (proxy() != nullptr) {
m_NetworkAMRemove->setProxy(*proxy());
}
QNetworkRequest request;
m_storageImageName = 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_storageImageName.clear();
// read network settings on each call to simplify configuration management
// without restarting init creds and upload network access managers
clearProxy();
if (m_NetworkAMGetCreds != nullptr) {
delete m_NetworkAMGetCreds;
m_NetworkAMGetCreds = nullptr;
}
m_NetworkAMGetCreds = new QNetworkAccessManager(this);
connect(m_NetworkAMGetCreds,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyGetCreds);
if (m_NetworkAMUpload != nullptr) {
delete m_NetworkAMUpload;
m_NetworkAMUpload = nullptr;
}
m_NetworkAMUpload = new QNetworkAccessManager(this);
connect(m_NetworkAMUpload,
&QNetworkAccessManager::finished,
this,
&ImgS3Uploader::handleReplyUpload);
if (proxy() != nullptr) {
m_NetworkAMGetCreds->setProxy(*proxy());
m_NetworkAMUpload->setProxy(*proxy());
}
// get creads
QUrl creds(m_s3Settings.credsUrl());
QNetworkRequest requestCreds(creds);
if (m_s3Settings.xApiKey().length() > 0) {
requestCreds.setRawHeader(
QByteArray("X-API-Key"),
QByteArray(m_s3Settings.xApiKey().toLocal8Bit()));
}
m_NetworkAMGetCreds->get(requestCreds);
}

View File

@@ -0,0 +1,69 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define S3_API_IMG_PATH "v2/image/"
#include "imgs3settings.h"
#include "imguploader.h"
#include <QUrl>
#include <QWidget>
class QNetworkReply;
class QNetworkProxy;
class QNetworkAccessManager;
class QHBoxLayout;
class QVBoxLayout;
class QLabel;
class QPushButton;
class QUrl;
class NotificationWidget;
class ConfigEnterprise;
class ImageLabel;
class ImgS3Uploader : public ImgUploader
{
Q_OBJECT
public:
explicit ImgS3Uploader(const QPixmap& capture, QWidget* parent = nullptr);
explicit ImgS3Uploader(QWidget* parent = nullptr);
void upload();
void deleteResource(const QString&, const QString&);
private slots:
void handleReplyUpload(QNetworkReply* reply);
void handleReplyGetCreds(QNetworkReply* reply);
void handleReplyDeleteResource(QNetworkReply* reply);
private:
void init(const QString& title, const QString& label);
void uploadToS3(QJsonDocument& response);
QNetworkProxy* initProxy();
void clearProxy();
QNetworkProxy* proxy();
// class members
private:
ImgS3Settings m_s3Settings;
QNetworkProxy* m_proxy;
QNetworkAccessManager* m_NetworkAMUpload;
QNetworkAccessManager* m_NetworkAMGetCreds;
QNetworkAccessManager* m_NetworkAMRemove;
};

View File

@@ -18,49 +18,56 @@
#include "imgs3uploadertool.h"
#include "imgs3uploader.h"
#include <QPainter>
#include <QSettings>
#include <QFileInfo>
ImgS3UploaderTool::ImgS3UploaderTool(QObject* parent)
: AbstractActionTool(parent)
{}
ImgS3UploaderTool::ImgS3UploaderTool(QObject *parent) : AbstractActionTool(parent) {
}
bool ImgS3UploaderTool::closeOnButtonPressed() const {
bool ImgS3UploaderTool::closeOnButtonPressed() const
{
return true;
}
QIcon ImgS3UploaderTool::icon(const QColor &background, bool inEditor) const {
QIcon ImgS3UploaderTool::icon(const QColor& background, bool inEditor) const
{
Q_UNUSED(inEditor);
return QIcon(iconPath(background) + "cloud-upload.svg");
}
QString ImgS3UploaderTool::name() const {
QString ImgS3UploaderTool::name() const
{
return tr("Image Uploader");
}
QString ImgS3UploaderTool::nameID() {
QString ImgS3UploaderTool::nameID()
{
return QLatin1String("");
}
QString ImgS3UploaderTool::description() const {
QString ImgS3UploaderTool::description() const
{
return tr("Upload the selection to S3 bucket");
}
QWidget *ImgS3UploaderTool::widget() {
ImgS3Uploader *p = new ImgS3Uploader(capture);
QWidget* ImgS3UploaderTool::widget()
{
ImgS3Uploader* p = new ImgS3Uploader(capture);
p->upload();
return p;
}
void ImgS3UploaderTool::setCapture(const QPixmap &pixmap) {
void ImgS3UploaderTool::setCapture(const QPixmap& pixmap)
{
capture = pixmap;
}
CaptureTool *ImgS3UploaderTool::copy(QObject *parent) {
CaptureTool* ImgS3UploaderTool::copy(QObject* parent)
{
return new ImgS3UploaderTool(parent);
}
void ImgS3UploaderTool::pressed(const CaptureContext &context) {
void ImgS3UploaderTool::pressed(const CaptureContext& context)
{
capture = context.selectedScreenshotArea();
emit requestAction(REQ_CAPTURE_DONE_OK);
emit requestAction(REQ_ADD_EXTERNAL_WIDGETS);

View File

@@ -0,0 +1,226 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imguploader.h"
#include "src/utils/configenterprise.h"
#include "src/utils/confighandler.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/history.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/notificationwidget.h"
#include <QApplication>
#include <QBuffer>
#include <QClipboard>
#include <QDebug>
#include <QDesktopServices>
#include <QDir>
#include <QDrag>
#include <QHBoxLayout>
#include <QHttpMultiPart>
#include <QJsonDocument>
#include <QJsonObject>
#include <QLabel>
#include <QMessageBox>
#include <QMimeData>
#include <QNetworkAccessManager>
#include <QNetworkProxy>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPushButton>
#include <QShortcut>
#include <QTimer>
#include <QUrlQuery>
#include <QVBoxLayout>
ImgUploader::ImgUploader(const QPixmap& capture, QWidget* parent)
: QWidget(parent)
, m_pixmap(capture)
{
init(tr("Upload image to S3"), tr("Uploading Image"));
}
ImgUploader::ImgUploader(QWidget* parent)
: QWidget(parent)
{
init(tr("Upload image"), tr("Uploading Image"));
}
void ImgUploader::init(const QString& title, const QString& label)
{
m_imageLabel = nullptr;
m_spinner = nullptr;
resultStatus = 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(label);
m_infoLabel->setAlignment(Qt::AlignCenter);
m_vLayout = new QVBoxLayout();
setLayout(m_vLayout);
m_vLayout->addWidget(m_spinner, 0, Qt::AlignHCenter);
m_vLayout->addWidget(m_infoLabel);
setAttribute(Qt::WA_DeleteOnClose);
}
void ImgUploader::removeImagePreview()
{
// remove local file
History history;
QString packedFileName = history.packFileName(
SCREENSHOT_STORAGE_TYPE_S3, m_deleteToken, m_storageImageName);
QString fullFileName = history.path() + packedFileName;
QFile file(fullFileName);
if (file.exists()) {
file.remove();
}
m_deleteToken.clear();
m_storageImageName.clear();
resultStatus = true;
}
void ImgUploader::openURL()
{
bool successful = QDesktopServices::openUrl(imageUrl());
if (!successful) {
m_notification->showMessage(tr("Unable to open the URL."));
}
}
void ImgUploader::copyURL()
{
QApplication::clipboard()->setText(imageUrl().toString());
m_notification->showMessage(tr("URL copied to clipboard."));
}
void ImgUploader::copyImage()
{
QApplication::clipboard()->setPixmap(m_pixmap);
m_notification->showMessage(tr("Screenshot copied to clipboard."));
}
void ImgUploader::deleteImageOnStorage()
{
if (nullptr != m_imageLabel) {
m_imageLabel->hide();
}
m_spinner->show();
setInfoLabelText(tr("Deleting image..."));
deleteResource(m_storageImageName, m_deleteToken);
}
void ImgUploader::startDrag()
{
QMimeData* mimeData = new QMimeData;
mimeData->setUrls(QList<QUrl>{ imageUrl() });
mimeData->setImageData(m_pixmap);
QDrag* dragHandler = new QDrag(this);
dragHandler->setMimeData(mimeData);
dragHandler->setPixmap(m_pixmap.scaled(
256, 256, Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
dragHandler->exec();
}
void ImgUploader::hideSpinner()
{
if (nullptr != m_spinner) {
m_spinner->hide();
}
if (nullptr != m_imageLabel) {
m_imageLabel->hide();
}
}
void ImgUploader::setInfoLabelText(const QString& infoText)
{
m_infoLabel->setText(infoText);
m_infoLabel->show();
}
const QPixmap& ImgUploader::pixmap()
{
return m_pixmap;
}
void ImgUploader::onUploadOk()
{
hideSpinner();
m_notification = new NotificationWidget();
m_vLayout->addWidget(m_notification);
if (nullptr == m_imageLabel) {
m_imageLabel = new ImageLabel();
m_imageLabel->setScreenshot(pixmap());
m_imageLabel->setSizePolicy(QSizePolicy::Expanding,
QSizePolicy::Expanding);
connect(m_imageLabel,
&ImageLabel::dragInitiated,
this,
&ImgUploader::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_deleteImageOnStorage = 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_deleteImageOnStorage);
m_hLayout->addWidget(m_toClipboardButton);
connect(
m_copyUrlButton, &QPushButton::clicked, this, &ImgUploader::copyURL);
connect(
m_openUrlButton, &QPushButton::clicked, this, &ImgUploader::openURL);
connect(m_deleteImageOnStorage,
&QPushButton::clicked,
this,
&ImgUploader::deleteImageOnStorage);
connect(m_toClipboardButton,
&QPushButton::clicked,
this,
&ImgUploader::copyImage);
}
void ImgUploader::setImageUrl(const QUrl& imageURL)
{
m_imageURL = imageURL;
}
const QUrl& ImgUploader::imageUrl()
{
return m_imageURL;
}
void ImgUploader::showNotificationMessage(const QString& notificationMessage) {
m_notification->showMessage(notificationMessage);
}

View File

@@ -0,0 +1,98 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define S3_API_IMG_PATH "v2/image/"
#include "imgs3settings.h"
#include <QUrl>
#include <QWidget>
class QNetworkReply;
class QNetworkProxy;
class QNetworkAccessManager;
class QHBoxLayout;
class QVBoxLayout;
class QLabel;
class LoadSpinner;
class QPushButton;
class QUrl;
class NotificationWidget;
class ConfigEnterprise;
class ImageLabel;
class ImgUploader : public QWidget
{
Q_OBJECT
public:
explicit ImgUploader(const QPixmap& capture, QWidget* parent = nullptr);
explicit ImgUploader(QWidget* parent = nullptr);
virtual void upload(){};
virtual void deleteResource(const QString&, const QString&){};
protected:
const QPixmap& pixmap();
void setImageUrl(const QUrl&);
const QUrl& imageUrl();
void onUploadOk();
void hideSpinner();
void setInfoLabelText(const QString&);
void removeImagePreview();
void showNotificationMessage(const QString&);
public slots:
virtual void openURL();
virtual void copyURL();
virtual void copyImage();
virtual void deleteImageOnStorage();
virtual void startDrag();
private:
void init(const QString& title, const QString& label);
// class members
private:
QPixmap m_pixmap;
QUrl m_imageURL;
ImageLabel* m_imageLabel;
NotificationWidget* m_notification;
QVBoxLayout* m_vLayout;
QHBoxLayout* m_hLayout;
// loading
LoadSpinner* m_spinner;
QLabel* m_infoLabel;
// uploaded
QPushButton* m_openUrlButton;
QPushButton* m_copyUrlButton;
QPushButton* m_toClipboardButton;
QPushButton* m_deleteImageOnStorage;
protected:
// bool m_success;
// Temporary variables
QString m_deleteToken;
QString m_storageImageName;
public:
bool resultStatus;
};

View File

@@ -0,0 +1,111 @@
// Copyright(c) 2017-2019 Alejandro Sirgo Rica & Contributors
//
// This file is part of Flameshot.
//
// Flameshot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Flameshot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Flameshot. If not, see <http://www.gnu.org/licenses/>.
#include "imguruploader.h"
#include "src/utils/confighandler.h"
#include "src/utils/filenamehandler.h"
#include "src/utils/systemnotification.h"
#include "src/widgets/imagelabel.h"
#include "src/widgets/loadspinner.h"
#include "src/widgets/notificationwidget.h"
#include <QApplication>
#include <QBuffer>
#include <QClipboard>
#include <QDesktopServices>
#include <QDrag>
#include <QHBoxLayout>
#include <QJsonDocument>
#include <QJsonObject>
#include <QLabel>
#include <QMimeData>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QPushButton>
#include <QShortcut>
#include <QTimer>
#include <QUrlQuery>
#include <QVBoxLayout>
ImgurUploader::ImgurUploader(const QPixmap& capture, QWidget* parent)
: ImgUploader(capture, parent)
{
setWindowTitle(tr("Upload to Imgur"));
m_NetworkAM = new QNetworkAccessManager(this);
connect(m_NetworkAM,
&QNetworkAccessManager::finished,
this,
&ImgurUploader::handleReply);
// QTimer::singleShot(2000, this, &ImgurUploader::onUploadOk); // testing
}
void ImgurUploader::handleReply(QNetworkReply* reply)
{
if (reply->error() == QNetworkReply::NoError) {
QJsonDocument response = QJsonDocument::fromJson(reply->readAll());
QJsonObject json = response.object();
QJsonObject data = json[QStringLiteral("data")].toObject();
setImageUrl(data[QStringLiteral("link")].toString());
m_deleteImageURL.setUrl(
QStringLiteral("https://imgur.com/delete/%1")
.arg(data[QStringLiteral("deletehash")].toString()));
if (ConfigHandler().copyAndCloseAfterUploadEnabled()) {
QApplication::clipboard()->setText(imageUrl().toString());
SystemNotification().sendMessage(
QObject::tr("URL copied to clipboard."));
close();
} else {
onUploadOk();
}
} else {
setInfoLabelText(reply->errorString());
}
new QShortcut(Qt::Key_Escape, this, SLOT(close()));
}
void ImgurUploader::upload()
{
QByteArray byteArray;
QBuffer buffer(&byteArray);
pixmap().save(&buffer, "PNG");
QUrlQuery urlQuery;
urlQuery.addQueryItem(QStringLiteral("title"),
QStringLiteral("flameshot_screenshot"));
QString description = FileNameHandler().parsedPattern();
urlQuery.addQueryItem(QStringLiteral("description"), description);
QUrl url(QStringLiteral("https://api.imgur.com/3/image"));
url.setQuery(urlQuery);
QNetworkRequest request(url);
request.setHeader(QNetworkRequest::ContentTypeHeader,
"application/application/x-www-form-urlencoded");
request.setRawHeader(
"Authorization",
QStringLiteral("Client-ID %1").arg(IMGUR_CLIENT_ID).toUtf8());
m_NetworkAM->post(request, byteArray);
}
void ImgurUploader::deleteImageOnStorage()
{
bool successful = QDesktopServices::openUrl(m_deleteImageURL);
if (!successful) {
showNotificationMessage(tr("Unable to open the URL."));
}
}

View File

@@ -17,8 +17,9 @@
#pragma once
#include <QWidget>
#include "imguploader.h"
#include <QUrl>
#include <QWidget>
class QNetworkReply;
class QNetworkAccessManager;
@@ -30,38 +31,22 @@ class QPushButton;
class QUrl;
class NotificationWidget;
class ImgurUploader : public QWidget {
class ImgurUploader : public ImgUploader
{
Q_OBJECT
public:
explicit ImgurUploader(const QPixmap &capture, QWidget *parent = nullptr);
explicit ImgurUploader(const QPixmap& capture, QWidget* parent = nullptr);
void upload();
private slots:
void handleReply(QNetworkReply *reply);
void startDrag();
void handleReply(QNetworkReply* reply);
// void openDeleteURL();
void openURL();
void copyURL();
void openDeleteURL();
void copyImage();
protected slots:
void deleteImageOnStorage();
// class members
private:
QPixmap m_pixmap;
QNetworkAccessManager *m_NetworkAM;
QVBoxLayout *m_vLayout;
QHBoxLayout *m_hLayout;
// loading
QLabel *m_infoLabel;
LoadSpinner *m_spinner;
// uploaded
QPushButton *m_openUrlButton;
QPushButton *m_openDeleteUrlButton;
QPushButton *m_copyUrlButton;
QPushButton *m_toClipboardButton;
QUrl m_imageURL;
QNetworkAccessManager* m_NetworkAM;
QUrl m_deleteImageURL;
NotificationWidget *m_notification;
void upload();
void onUploadOk();
};

View File

@@ -19,39 +19,55 @@
#include "imguruploader.h"
#include <QPainter>
ImgurUploaderTool::ImgurUploaderTool(QObject *parent) : AbstractActionTool(parent) {
ImgurUploaderTool::ImgurUploaderTool(QObject* parent)
: AbstractActionTool(parent)
{}
}
bool ImgurUploaderTool::closeOnButtonPressed() const {
bool ImgurUploaderTool::closeOnButtonPressed() const
{
return true;
}
QIcon ImgurUploaderTool::icon(const QColor &background, bool inEditor) const {
QIcon ImgurUploaderTool::icon(const QColor& background, bool inEditor) const
{
Q_UNUSED(inEditor);
return QIcon(iconPath(background) + "cloud-upload.svg");
}
QString ImgurUploaderTool::name() const {
QString ImgurUploaderTool::name() const
{
return tr("Image Uploader");
}
QString ImgurUploaderTool::nameID() {
QString ImgurUploaderTool::nameID()
{
return QLatin1String("");
}
QString ImgurUploaderTool::description() const {
QString ImgurUploaderTool::description() const
{
return tr("Upload the selection to Imgur");
}
QWidget* ImgurUploaderTool::widget() {
return new ImgurUploader(capture);
QWidget* ImgurUploaderTool::widget()
{
ImgurUploader* p = new ImgurUploader(capture);
p->upload();
return p;
}
CaptureTool* ImgurUploaderTool::copy(QObject *parent) {
void ImgurUploaderTool::setCapture(const QPixmap& pixmap)
{
capture = pixmap;
}
CaptureTool* ImgurUploaderTool::copy(QObject* parent)
{
return new ImgurUploaderTool(parent);
}
void ImgurUploaderTool::pressed(const CaptureContext &context) {
void ImgurUploaderTool::pressed(const CaptureContext& context)
{
capture = context.selectedScreenshotArea();
emit requestAction(REQ_CAPTURE_DONE_OK);
emit requestAction(REQ_ADD_EXTERNAL_WIDGETS);

View File

@@ -34,6 +34,7 @@ public:
QWidget* widget() override;
CaptureTool* copy(QObject *parent = nullptr) override;
void setCapture(const QPixmap&);
public slots:
void pressed(const CaptureContext &context) override;

View File

@@ -17,97 +17,96 @@
#include "toolfactory.h"
#include "arrow/arrowtool.h"
#include "blur/blurtool.h"
#include "circle/circletool.h"
#include "copy/copytool.h"
#include "exit/exittool.h"
#include "imgur/imguruploadertool.h"
#include "imgs3/imgs3uploadertool.h"
#include "launcher/applaunchertool.h"
#include "line/linetool.h"
#include "marker/markertool.h"
#include "move/movetool.h"
#include "pencil/penciltool.h"
#include "pin/pintool.h"
#include "rectangle/rectangletool.h"
#include "redo/redotool.h"
#include "save/savetool.h"
#include "selection/selectiontool.h"
#include "sizeindicator/sizeindicatortool.h"
#include "undo/undotool.h"
#include "launcher/applaunchertool.h"
#include "blur/blurtool.h"
#include "redo/redotool.h"
#include "pin/pintool.h"
#include "storage/imgs3uploadertool.h"
#include "storage/imguruploadertool.h"
#include "text/texttool.h"
#include "undo/undotool.h"
ToolFactory::ToolFactory(QObject *parent) : QObject(parent) {
ToolFactory::ToolFactory(QObject* parent)
: QObject(parent)
{}
}
CaptureTool* ToolFactory::CreateTool(
CaptureButton::ButtonType t,
QObject *parent)
CaptureTool* ToolFactory::CreateTool(CaptureButton::ButtonType t,
QObject* parent)
{
CaptureTool *tool;
CaptureTool* tool;
switch (t) {
case CaptureButton::TYPE_ARROW:
tool = new ArrowTool(parent);
break;
case CaptureButton::TYPE_CIRCLE:
tool = new CircleTool(parent);
break;
case CaptureButton::TYPE_COPY:
tool = new CopyTool(parent);
break;
case CaptureButton::TYPE_EXIT:
tool = new ExitTool(parent);
break;
case CaptureButton::TYPE_IMAGEUPLOADER:
// tool = new ImgurUploaderTool(parent);
tool = new ImgS3UploaderTool(parent);
break;
case CaptureButton::TYPE_DRAWER:
tool = new LineTool(parent);
break;
case CaptureButton::TYPE_MARKER:
tool = new MarkerTool(parent);
break;
case CaptureButton::TYPE_MOVESELECTION:
tool = new MoveTool(parent);
break;
case CaptureButton::TYPE_PENCIL:
tool = new PencilTool(parent);
break;
case CaptureButton::TYPE_RECTANGLE:
tool = new RectangleTool(parent);
break;
case CaptureButton::TYPE_SAVE:
tool = new SaveTool(parent);
break;
case CaptureButton::TYPE_SELECTION:
tool = new SelectionTool(parent);
break;
case CaptureButton::TYPE_SELECTIONINDICATOR:
tool = new SizeIndicatorTool(parent);
break;
case CaptureButton::TYPE_UNDO:
tool = new UndoTool(parent);
break;
case CaptureButton::TYPE_REDO:
tool = new RedoTool(parent);
break;
case CaptureButton::TYPE_OPEN_APP:
tool = new AppLauncher(parent);
break;
case CaptureButton::TYPE_BLUR:
tool = new BlurTool(parent);
break;
case CaptureButton::TYPE_PIN:
tool = new PinTool(parent);
break;
case CaptureButton::TYPE_TEXT:
tool = new TextTool(parent);
break;
default:
tool = nullptr;
break;
case CaptureButton::TYPE_ARROW:
tool = new ArrowTool(parent);
break;
case CaptureButton::TYPE_CIRCLE:
tool = new CircleTool(parent);
break;
case CaptureButton::TYPE_COPY:
tool = new CopyTool(parent);
break;
case CaptureButton::TYPE_EXIT:
tool = new ExitTool(parent);
break;
case CaptureButton::TYPE_IMAGEUPLOADER:
tool = new ImgurUploaderTool(parent);
// tool = new ImgS3UploaderTool(parent);
break;
case CaptureButton::TYPE_DRAWER:
tool = new LineTool(parent);
break;
case CaptureButton::TYPE_MARKER:
tool = new MarkerTool(parent);
break;
case CaptureButton::TYPE_MOVESELECTION:
tool = new MoveTool(parent);
break;
case CaptureButton::TYPE_PENCIL:
tool = new PencilTool(parent);
break;
case CaptureButton::TYPE_RECTANGLE:
tool = new RectangleTool(parent);
break;
case CaptureButton::TYPE_SAVE:
tool = new SaveTool(parent);
break;
case CaptureButton::TYPE_SELECTION:
tool = new SelectionTool(parent);
break;
case CaptureButton::TYPE_SELECTIONINDICATOR:
tool = new SizeIndicatorTool(parent);
break;
case CaptureButton::TYPE_UNDO:
tool = new UndoTool(parent);
break;
case CaptureButton::TYPE_REDO:
tool = new RedoTool(parent);
break;
case CaptureButton::TYPE_OPEN_APP:
tool = new AppLauncher(parent);
break;
case CaptureButton::TYPE_BLUR:
tool = new BlurTool(parent);
break;
case CaptureButton::TYPE_PIN:
tool = new PinTool(parent);
break;
case CaptureButton::TYPE_TEXT:
tool = new TextTool(parent);
break;
default:
tool = nullptr;
break;
}
return tool;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,26 +1,28 @@
#include "historywidget.h"
#include "src/tools/storage/imgs3uploader.h"
#include "src/utils/history.h"
#include "src/widgets/notificationwidget.h"
#include "src/tools/imgs3/imgs3uploader.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPixmap>
#include <QLabel>
#include <QScrollArea>
#include <QFileInfo>
#include <QDateTime>
#include <QPushButton>
#include <QIcon>
#include <QSettings>
#include <QApplication>
#include <QDesktopWidget>
#include <QDesktopServices>
#include <QClipboard>
#include <QUrl>
#include <QDateTime>
#include <QDesktopServices>
#include <QDesktopWidget>
#include <QFileInfo>
#include <QHBoxLayout>
#include <QIcon>
#include <QLabel>
#include <QLayoutItem>
#include <QPixmap>
#include <QPushButton>
#include <QScrollArea>
#include <QSettings>
#include <QUrl>
#include <QVBoxLayout>
#include <QDebug>
HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent)
HistoryWidget::HistoryWidget(QWidget* parent)
: QDialog(parent)
{
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
setWindowTitle(tr("Latest Uploads"));
@@ -30,46 +32,46 @@ HistoryWidget::HistoryWidget(QWidget *parent) : QDialog(parent)
m_pVBox = new QVBoxLayout(this);
m_pVBox->setAlignment(Qt::AlignTop);
QScrollArea *scrollArea = new QScrollArea( this );
scrollArea->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOn );
scrollArea->setWidgetResizable( true );
scrollArea->setGeometry( this->frameGeometry() );
QScrollArea* scrollArea = new QScrollArea(this);
scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
scrollArea->setWidgetResizable(true);
scrollArea->setGeometry(this->frameGeometry());
QWidget *widget = new QWidget();
scrollArea->setWidget( widget );
widget->setLayout( m_pVBox );
QWidget* widget = new QWidget();
scrollArea->setWidget(widget);
widget->setLayout(m_pVBox);
loadHistory();
}
void HistoryWidget::loadHistory() {
void HistoryWidget::loadHistory()
{
// read history files
History history = History();
QList<QString> historyFiles = history.history();
if(historyFiles.isEmpty()) {
if (historyFiles.isEmpty()) {
setEmptyMessage();
}
else {
} else {
// generate history list
foreach(QString fileName, historyFiles) {
foreach (QString fileName, historyFiles) {
addLine(history.path(), fileName);
}
}
}
void HistoryWidget::setEmptyMessage() {
QPushButton *buttonEmpty = new QPushButton;
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();
});
connect(buttonEmpty, &QPushButton::clicked, this, [=]() { this->close(); });
m_pVBox->addWidget(buttonEmpty);
}
void HistoryWidget::addLine(const QString &path, const QString& fileName) {
QHBoxLayout *phbl = new QHBoxLayout();
void HistoryWidget::addLine(const QString& path, const QString& fileName)
{
QHBoxLayout* phbl = new QHBoxLayout();
QString fullFileName = path + fileName;
History history;
@@ -79,60 +81,62 @@ void HistoryWidget::addLine(const QString &path, const QString& fileName) {
// load pixmap
QPixmap pixmap;
pixmap.load( fullFileName, "png" );
pixmap.load(fullFileName, "png");
if (pixmap.height() / HISTORYPIXMAP_MAX_PREVIEW_HEIGHT >= pixmap.width() / HISTORYPIXMAP_MAX_PREVIEW_WIDTH) {
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");
QFileInfo* pFileInfo = new QFileInfo(fullFileName);
QString lastModified =
pFileInfo->lastModified().toString(" yyyy-MM-dd\nhh:mm:ss");
// screenshot preview
QLabel *pScreenshot = new QLabel();
QLabel* pScreenshot = new QLabel();
pScreenshot->setStyleSheet("padding: 5px;");
pScreenshot->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
pScreenshot->setPixmap(pixmap);
// screenshot datetime
QLabel *pScreenshotText = new QLabel();
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;
QPushButton* buttonCopyUrl = new QPushButton;
buttonCopyUrl->setText(tr("Copy URL"));
buttonCopyUrl->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonCopyUrl, &QPushButton::clicked, this, [=](){
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;
QPushButton* buttonOpen = new QPushButton;
buttonOpen->setText(tr("Open in browser"));
buttonOpen->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonOpen, &QPushButton::clicked, this, [=](){
connect(buttonOpen, &QPushButton::clicked, this, [=]() {
QDesktopServices::openUrl(QUrl(url));
this->close();
});
// delete
QPushButton *buttonDelete = new QPushButton;
QPushButton* buttonDelete = new QPushButton;
buttonDelete->setIcon(QIcon(":/img/material/black/delete.svg"));
buttonDelete->setMinimumHeight(HISTORYPIXMAP_MAX_PREVIEW_HEIGHT);
connect(buttonDelete, &QPushButton::clicked, this, [=](){
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
} else {
// for compatibility with previous versions and to be able to remove
// previous screenshots
QFile file(fullFileName);
if (file.exists()) {
file.remove();
@@ -158,23 +162,27 @@ void HistoryWidget::addLine(const QString &path, const QString& fileName) {
m_pVBox->addLayout(phbl);
}
void HistoryWidget::removeItem(QLayout *pl, const QString& s3FileName, const QString& deleteToken) {
ImgS3Uploader *uploader = new ImgS3Uploader();
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()) {
connect(uploader, &QWidget::destroyed, this, [=]() {
if (uploader->resultStatus) {
removeLocalItem(pl);
}
show();
});
}
void HistoryWidget::removeLocalItem(QLayout *pl) {
void HistoryWidget::removeLocalItem(QLayout* pl)
{
// remove current row or refresh list
while(pl->count() > 0) {
QLayoutItem *item = pl->takeAt(0);
while (pl->count() > 0) {
QLayoutItem* item = pl->takeAt(0);
delete item->widget();
delete item;
}
@@ -182,7 +190,7 @@ void HistoryWidget::removeLocalItem(QLayout *pl) {
delete pl;
// set "empty" message if no items left
if(m_pVBox->count() == 0) {
if (m_pVBox->count() == 0) {
setEmptyMessage();
}
}

View File

@@ -4,11 +4,11 @@
#define HISTORYPIXMAP_MAX_PREVIEW_WIDTH 160
#define HISTORYPIXMAP_MAX_PREVIEW_HEIGHT 90
#include <QObject>
#include <QWidget>
#include "src/tools/storage/imgs3settings.h"
#include <QDialog>
#include <QObject>
#include <QString>
#include "src/tools/imgs3/imgs3settings.h"
#include <QWidget>
class QLayout;
class QVBoxLayout;
@@ -18,21 +18,23 @@ class HistoryWidget : public QDialog
{
Q_OBJECT
public:
explicit HistoryWidget(QWidget *parent = nullptr);
explicit HistoryWidget(QWidget* parent = nullptr);
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 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;
QVBoxLayout* m_pVBox;
NotificationWidget* m_notification;
};
#endif // HISTORYWIDGET_H

View File

@@ -457,27 +457,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<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="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -485,151 +485,198 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">S&apos;està pujant la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
<translation type="obsolete">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Obri l&apos;URL</translation>
<translation type="obsolete">Obri l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imatge al porta-retalls.</translation>
<translation type="obsolete">Imatge al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No es pot obrir l&apos;URL.</translation>
<translation type="obsolete">No es pot obrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<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="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">La captura s&apos;ha copiat al porta-retalls.</translation>
<translation type="obsolete">La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Puja la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">S&apos;està pujant la imatge</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No es pot obrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<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/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">Obri l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imatge al porta-retalls.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Puja a Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>S&apos;està pujant la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Copia l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Obri l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Imatge al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>No es pot obrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>La captura s&apos;ha copiat al porta-retalls.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
@@ -637,12 +684,12 @@ Press Space to open the side panel.</source>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Puja la imatge</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Puja la selecció a Imgur</translation>
</message>
@@ -840,7 +887,7 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">L&apos;URL s&apos;ha copiat al porta-retalls.</translation>
</message>

View File

@@ -460,27 +460,27 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
<translation type="obsolete">URL kopieren</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL öffnen</translation>
<translation type="obsolete">URL öffnen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Bild löschen</translation>
<translation type="obsolete">Bild löschen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Bild in Zwischenablage.</translation>
<translation type="obsolete">Bild in Zwischenablage.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kann URL nicht öffnen.</translation>
<translation type="obsolete">Kann URL nicht öffnen.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
<translation type="obsolete">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kann URL nicht öffnen.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Bildschirmaufnahme in Zwischenablage kopiert.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopieren</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">URL öffnen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Bild löschen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Bild in Zwischenablage.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Zu Imgur hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL kopieren</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL öffnen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Bild löschen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Bild in Zwischenablage.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Kann URL nicht öffnen.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL kopiert.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Bildschirmaufnahme in Zwischenablage kopiert.</translation>
</message>
@@ -640,12 +691,12 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Bild hochladen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Auswahl zu Imgur hochladen</translation>
</message>
@@ -851,7 +902,7 @@ Drücke die Leertaste um das Seitenmenü zu öffnen.</translation>
<translation>Kein Schreibzugriff auf</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL kopiert.</translation>
</message>

View File

@@ -460,27 +460,27 @@ Presiona Espacio para abrir el panel lateral.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Presiona Espacio para abrir el panel lateral.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Subiendo Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
<translation type="obsolete">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
<translation type="obsolete">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Borrar imagen</translation>
<translation type="obsolete">Borrar imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagen al Portapapeles.</translation>
<translation type="obsolete">Imagen al Portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No puede abrir la URL.</translation>
<translation type="obsolete">No puede abrir la URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Captura copiada al portapapeles.</translation>
<translation type="obsolete">Captura copiada al portapapeles.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Subir Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Subiendo Imagen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">No puede abrir la URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Captura copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Borrar imagen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagen al Portapapeles.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Subir a Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Subiendo Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Borrar imagen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Imagen al Portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>No puede abrir la URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL copiada al portapapeles.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Captura copiada al portapapeles.</translation>
</message>
@@ -640,12 +691,12 @@ Presiona Espacio para abrir el panel lateral.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Subir Imagen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Sube la selección a Imgur</translation>
</message>
@@ -847,7 +898,7 @@ Presiona Espacio para abrir el panel lateral.</translation>
<translation>Imposible escribir en</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada al portapapeles.</translation>
</message>

View File

@@ -460,27 +460,27 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<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="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,198 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<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="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copier l&apos;URL</translation>
<translation type="obsolete">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Ouvrir l&apos;URL</translation>
<translation type="obsolete">Ouvrir l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Image dans le Presse-papier.</translation>
<translation type="obsolete">Image dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Impossible d&apos;ouvrir l&apos;URL.</translation>
<translation type="obsolete">Impossible d&apos;ouvrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<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="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Capture d&apos;écran copiée dans le Presse-papier.</translation>
<translation type="obsolete">Capture d&apos;écran copiée dans le Presse-papier.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Mise en ligne d&apos;images</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Mettre en ligne vers Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation>Mise en ligne de l&apos;image</translation>
<translation type="unfinished">Mise en ligne de l&apos;image</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Impossible d&apos;ouvrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Capture d&apos;écran copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation>Copier l&apos;URL</translation>
<translation type="unfinished">Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation>Ouvrir l&apos;URL</translation>
<translation type="unfinished">Ouvrir l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Image dans le Presse-papier.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Mettre en ligne vers Imgur</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Mise en ligne de l&apos;image</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Copier l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Ouvrir l&apos;URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Image dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Impossible d&apos;ouvrir l&apos;URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL copiée dans le Presse-papier.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Capture d&apos;écran copiée dans le Presse-papier.</translation>
</message>
@@ -640,12 +687,12 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Mise en ligne d&apos;images</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Mettre en ligne la sélection vers Imgur</translation>
</message>
@@ -843,7 +890,7 @@ Appuyer sur Espace pour ouvrir le panneau latéral.</translation>
<translation>Imposible d&apos;écrire par dessus</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiée dans le Presse-papier.</translation>
</message>

View File

@@ -425,19 +425,19 @@ Press Space to open the side panel.</source>
</message>
<message>
<source>Copy URL</source>
<translation type="unfinished">URL másolása</translation>
<translation type="obsolete">URL másolása</translation>
</message>
<message>
<source>Open URL</source>
<translation type="unfinished">URL megnyitása</translation>
<translation type="obsolete">URL megnyitása</translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="unfinished">Kép a vágolapra.</translation>
<translation type="obsolete">Kép a vágolapra.</translation>
</message>
<message>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nem lehet az URL-t megnyitni.</translation>
<translation type="obsolete">Nem lehet az URL-t megnyitni.</translation>
</message>
<message>
<source>URL copied to clipboard.</source>
@@ -445,7 +445,7 @@ Press Space to open the side panel.</source>
</message>
<message>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Képernyőmentés másolva a vágólapra.</translation>
<translation type="obsolete">Képernyőmentés másolva a vágólapra.</translation>
</message>
<message>
<source>Upload image to S3</source>
@@ -455,10 +455,6 @@ Press Space to open the side panel.</source>
<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>
@@ -499,6 +495,53 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Uploading Image</source>
<translation type="unfinished">Kép felötlése</translation>
</message>
<message>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nem lehet az URL-t megnyitni.</translation>
</message>
<message>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL másolva a vágólapra.</translation>
</message>
<message>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Képernyőmentés másolva a vágólapra.</translation>
</message>
<message>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy URL</source>
<translation type="unfinished">URL másolása</translation>
</message>
<message>
<source>Open URL</source>
<translation type="unfinished">URL megnyitása</translation>
</message>
<message>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Image to Clipboard.</source>
<translation type="unfinished">Kép a vágolapra.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>

View File

@@ -460,27 +460,27 @@ Enter を押すと画面をキャプチャー。
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Enter を押すと画面をキャプチャー。
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Imgur </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation></translation>
</message>
@@ -640,12 +691,12 @@ Enter を押すと画面をキャプチャー。
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Imgur </translation>
</message>
@@ -843,7 +894,7 @@ Enter を押すと画面をキャプチャー。
<translation>:</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL </translation>
</message>

View File

@@ -456,27 +456,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -484,151 +484,198 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL- </translation>
<translation type="obsolete">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL- </translation>
<translation type="obsolete">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"> </translation>
<translation type="obsolete"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL- .</translation>
<translation type="obsolete">URL- .</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"> .</translation>
<translation type="obsolete"> .</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Imgur- </translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation> </translation>
<translation type="unfinished"> </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL- .</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"> .</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation>URL- </translation>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation>URL- </translation>
<translation type="unfinished">URL- </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"> </translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Imgur- </translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation> </translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL- </translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL- </translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation> </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>URL- .</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL .</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation> .</translation>
</message>
@@ -636,12 +683,12 @@ Press Space to open the side panel.</source>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation> </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation> Imgur- </translation>
</message>
@@ -839,7 +886,7 @@ Press Space to open the side panel.</source>
<translation type="unfinished"> :</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL .</translation>
</message>

View File

@@ -460,27 +460,27 @@ Druk op spatie om het zijpaneel te openen.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Druk op spatie om het zijpaneel te openen.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Bezig met uploaden van afbeelding...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
<translation type="obsolete">URL kopiëren</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL openen</translation>
<translation type="obsolete">URL openen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Afbeelding verwijderen</translation>
<translation type="obsolete">Afbeelding verwijderen</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Afbeelding naar klembord.</translation>
<translation type="obsolete">Afbeelding naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kan URL niet openen.</translation>
<translation type="obsolete">Kan URL niet openen.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Schermafdruk gekopieerd naar klembord.</translation>
<translation type="obsolete">Schermafdruk gekopieerd naar klembord.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Afbeeldingsuploader</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Bezig met uploaden van afbeelding...</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Kan URL niet openen.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Schermafdruk gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">URL kopiëren</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">URL openen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Afbeelding verwijderen</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Afbeelding naar klembord.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Uploaden naar Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Bezig met uploaden van afbeelding...</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL kopiëren</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL openen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Afbeelding verwijderen</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Afbeelding naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Kan URL niet openen.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL gekopieerd naar klembord.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Schermafdruk gekopieerd naar klembord.</translation>
</message>
@@ -640,12 +691,12 @@ Druk op spatie om het zijpaneel te openen.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Afbeeldingsuploader</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Upload de selectie naar Imgur</translation>
</message>
@@ -847,7 +898,7 @@ Druk op spatie om het zijpaneel te openen.</translation>
<translation>Kan niet wegschrijven naar</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL gekopieerd naar klembord.</translation>
</message>

View File

@@ -459,27 +459,27 @@ Spacja, aby pokazać panel boczny.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -487,151 +487,202 @@ Spacja, aby pokazać panel boczny.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Wysyłanie obrazka</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
<translation type="obsolete">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Otwórz URL</translation>
<translation type="obsolete">Otwórz URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Usuń obrazek</translation>
<translation type="obsolete">Usuń obrazek</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrazek do schowka.</translation>
<translation type="obsolete">Obrazek do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nie można otworzyć adresu URL.</translation>
<translation type="obsolete">Nie można otworzyć adresu URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Zrzut ekranu skopiowany do schowka.</translation>
<translation type="obsolete">Zrzut ekranu skopiowany do schowka.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Uploader obrazów</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Wysyłanie obrazka</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nie można otworzyć adresu URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Zrzut ekranu skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">Kopiuj URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">Otwórz URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Usuń obrazek</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrazek do schowka.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Wyślij do Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Wysyłanie obrazka</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Kopiuj URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Otwórz URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Usuń obrazek</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Obrazek do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Nie można otworzyć adresu URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL skopiowany do schowka.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Zrzut ekranu skopiowany do schowka.</translation>
</message>
@@ -639,12 +690,12 @@ Spacja, aby pokazać panel boczny.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Uploader obrazów</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Wyślij zaznaczenie do Imgur</translation>
</message>
@@ -842,7 +893,7 @@ Spacja, aby pokazać panel boczny.</translation>
<translation>Nie można zapisać w</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopiowany do schowka.</translation>
</message>

View File

@@ -460,27 +460,27 @@ Pressione espaço abrir o painel lateral.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Pressione espaço abrir o painel lateral.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Upando Imagem</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
<translation type="obsolete">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
<translation type="obsolete">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Deletar imagem</translation>
<translation type="obsolete">Deletar imagem</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagem no Clipboard.</translation>
<translation type="obsolete">Imagem no Clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Não foi possível abrir a URL.</translation>
<translation type="obsolete">Não foi possível abrir a URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<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="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Screenshot copiada para o clipboard.</translation>
<translation type="obsolete">Screenshot copiada para o clipboard.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Uploader de imagens</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Upando Imagem</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<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/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Screenshot copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Deletar imagem</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Imagem no Clipboard.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Upload no Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Upando Imagem</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Copiar URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Abrir URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Deletar imagem</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Imagem no Clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Não foi possível abrir a URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL copiada para o clipboard.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Screenshot copiada para o clipboard.</translation>
</message>
@@ -640,12 +691,12 @@ Pressione espaço abrir o painel lateral.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Uploader de imagens</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Upa a seleção no Imgur</translation>
</message>
@@ -843,7 +894,7 @@ Pressione espaço abrir o painel lateral.</translation>
<translation>Não foi possível escrever em</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL copiada para o clipboard.</translation>
</message>

View File

@@ -476,27 +476,27 @@ Press Space to open the side panel.</source>
<translation type="vanished">История скриншотов пустая</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation>Последние загрузки</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation>История скриншотов пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation>Открыть в браузере</translation>
</message>
@@ -508,17 +508,17 @@ Press Space to open the side panel.</source>
<translation type="vanished">Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Загрузка изображения</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation>Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation>Удалить скриншот с S3</translation>
</message>
@@ -527,87 +527,79 @@ Press Space to open the side panel.</source>
<translation type="vanished">Удалить скриншот</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation>Удалить скриншот из истории?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
<translation type="vanished">Скопировать URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
<translation type="vanished">Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation>Удалить изображение</translation>
<translation type="vanished">Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
<translation type="vanished">Изображение в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation>Не удалось открыть URL.</translation>
<translation type="vanished">Не удалось открыть URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation>Удаление скриншота...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation>Невозможно удалить снимок экрана из удаленного хранилища.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation>Ошибка сети</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation>Возможно, его больше не существует</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation>Вы все равно хотите удалить скриншот из локальной истории?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation>Снимок скопирован в буфер обмена.</translation>
<translation type="vanished">Снимок скопирован в буфер обмена.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation>Отправка изображений</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation>Загрузить выделение на S3</translation>
</message>
@@ -617,50 +609,109 @@ Press Space to open the side panel.</source>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Загрузить в Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation>Загрузить на S3</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation>Загрузка изображения</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation>Загрузить изображение</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation>Не удалось открыть URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation>Снимок скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation>Удаление скриншота...</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation>Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Загрузить в Imgur</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Загрузка изображения</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Скопировать URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Открыть URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Удалить изображение</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Изображение в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Не удалось открыть URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Снимок скопирован в буфер обмена.</translation>
</message>
@@ -668,12 +719,12 @@ Press Space to open the side panel.</source>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Отправка изображений</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Загрузить выделение на Imgur</translation>
</message>
@@ -887,7 +938,7 @@ Press Space to open the side panel.</source>
<translation>Не удалось сохранить</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation>URL скопирован в буфер обмена.</translation>
</message>

View File

@@ -460,27 +460,27 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<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="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Nahrávam obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
<translation type="obsolete">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Otvoriť URL</translation>
<translation type="obsolete">Otvoriť URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Vymazať obrázok</translation>
<translation type="obsolete">Vymazať obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrázok do schránky.</translation>
<translation type="obsolete">Obrázok do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nepodarilo sa otvoriť URL.</translation>
<translation type="obsolete">Nepodarilo sa otvoriť URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<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="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Snímka obrazovky bola skopírovaná do schránky.</translation>
<translation type="obsolete">Snímka obrazovky bola skopírovaná do schránky.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Uploader obrázkov</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Nahrávam obrázok</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Nepodarilo sa otvoriť URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Snímka obrazovky bola skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">Kopírovať URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">Otvoriť URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Vymazať obrázok</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Obrázok do schránky.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Nahrať na Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Nahrávam obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Kopírovať URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Otvoriť URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Vymazať obrázok</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Obrázok do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Nepodarilo sa otvoriť URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL skopírovaná do schránky.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Snímka obrazovky bola skopírovaná do schránky.</translation>
</message>
@@ -640,12 +691,12 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Uploader obrázkov</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Nahrať výber na Imgur</translation>
</message>
@@ -851,7 +902,7 @@ Stlačte medzerník pre otvorenie postranného panelu.</translation>
<translation>Chyba pri ukladaní</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL skopírovaná do schránky.</translation>
</message>

View File

@@ -460,27 +460,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Објављујем слику</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
<translation type="obsolete">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">Посети интернет адресу</translation>
<translation type="obsolete">Посети интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Избриши слику</translation>
<translation type="obsolete">Избриши слику</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Сачувај у привремену меморију.</translation>
<translation type="obsolete">Сачувај у привремену меморију.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Нисам успео да посетим интернет адресу.</translation>
<translation type="obsolete">Нисам успео да посетим интернет адресу.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Слика је сачувана у привременој меморији.</translation>
<translation type="obsolete">Слика је сачувана у привременој меморији.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Објављивање слике</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Објављујем слику</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">Нисам успео да посетим интернет адресу.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Слика је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">Посети интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Избриши слику</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Сачувај у привремену меморију.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Објави на Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Објављујем слику</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Запамти интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Посети интернет адресу</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Избриши слику</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Сачувај у привремену меморију.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Нисам успео да посетим интернет адресу.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>Интернет адреса је сачувана у привременој меморији.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Слика је сачувана у привременој меморији.</translation>
</message>
@@ -640,12 +691,12 @@ Press Space to open the side panel.</source>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Објављивање слике</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Објави избор на Imgur сајту</translation>
</message>
@@ -843,7 +894,7 @@ Press Space to open the side panel.</source>
<translation>Нисам успео са сачувам</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">Интернет адреса је сачувана у привременој меморији.</translation>
</message>

View File

@@ -460,27 +460,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"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -488,151 +488,202 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished">Resim Yükleniyor</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
<translation type="obsolete">URL Kopyala</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
<translation type="obsolete">URL </translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished">Resmi sil</translation>
<translation type="obsolete">Resmi sil</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Resim Pano&apos;ya.</translation>
<translation type="obsolete">Resim Pano&apos;ya.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL ılamıyor.</translation>
<translation type="obsolete">URL ılamıyor.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Ekran görüntüsü panoya kopyalandı.</translation>
<translation type="obsolete">Ekran görüntüsü panoya kopyalandı.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished">Resim Yükleme Aracı</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished">Resim Yükleniyor</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished">URL ılamıyor.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">Ekran görüntüsü panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished">URL Kopyala</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished">URL </translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished">Resmi sil</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">Resim Pano&apos;ya.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Imgur&apos;a yükle</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Resim Yükleniyor</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>URL Kopyala</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>URL </translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Resmi sil</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Resim Pano&apos;ya.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>URL ılamıyor.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL panoya kopyalandı.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Ekran görüntüsü panoya kopyalandı.</translation>
</message>
@@ -640,12 +691,12 @@ Yan paneli açmak için Boşluk tuşuna basın.</translation>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Resim Yükleme Aracı</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Seçimi Imgur&apos;a yükler</translation>
</message>
@@ -843,7 +894,7 @@ 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/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">URL panoya kopyalandı.</translation>
</message>

View File

@@ -476,27 +476,27 @@ Press Space to open the side panel.</source>
<translation type="vanished">Історія скріншотів пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation>Останні завантаження</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation>Історія скріншотів пуста</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation>Відкрити у браузері</translation>
</message>
@@ -508,17 +508,17 @@ Press Space to open the side panel.</source>
<translation type="vanished">Вивантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Вивантаження зображення</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation>Завантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation>Видалити скріншот з S3</translation>
</message>
@@ -527,87 +527,79 @@ Press Space to open the side panel.</source>
<translation type="vanished">Видалити скіншот</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation>Видалити скріншот із історії?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
<translation type="vanished">Скопіювати URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
<translation type="vanished">Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation>Видалити зображення</translation>
<translation type="vanished">Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
<translation type="vanished">Зображення до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation>Не вдалось відкрити URL.</translation>
<translation type="vanished">Не вдалось відкрити URL.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation>Видалення скріншоту...</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation>Не вдалося видалити скріншот із віддаленого сховища.</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation>Помилка мережі</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation>Можливо, його більше не існує</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation>Ви все одно хочете видалити скріншот із локальної історії?</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation>Знімок скопійовано до буферу обміну.</translation>
<translation type="vanished">Знімок скопійовано до буферу обміну.</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation>Вивантаження зображень</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation>Вивантажити виділення на S3</translation>
</message>
@@ -617,50 +609,109 @@ Press Space to open the side panel.</source>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Вивантажити до Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation>Завантажити на S3</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation>Вивантаження зображення</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation>Вивантажити зображення</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation>Не вдалось відкрити URL.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation>Знімок скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation>Видалення скріншоту...</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation>Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Вивантажити до Imgur</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation>Вивантаження зображення</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation>Скопіювати URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation>Відкрити URL</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation>Видалити зображення</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>Зображення до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation>Не вдалось відкрити URL.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>Знімок скопійовано до буферу обміну.</translation>
</message>
@@ -668,12 +719,12 @@ Press Space to open the side panel.</source>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation>Вивантаження зображень</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation>Вивантажити вибране до Imgur</translation>
</message>
@@ -887,7 +938,7 @@ Press Space to open the side panel.</source>
<translation>Не вдалось зберегти</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation>URL скопійовано до буферу обміну.</translation>
</message>

View File

@@ -461,27 +461,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -489,151 +489,202 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation>Imgur</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation></translation>
</message>
@@ -641,12 +692,12 @@ Press Space to open the side panel.</source>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation> Imgur</translation>
</message>
@@ -852,7 +903,7 @@ Press Space to open the side panel.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished"></translation>
</message>

View File

@@ -456,27 +456,27 @@ Press Space to open the side panel.</source>
<context>
<name>HistoryWidget</name>
<message>
<location filename="../src/widgets/historywidget.cpp" line="26"/>
<location filename="../src/widgets/historywidget.cpp" line="28"/>
<source>Latest Uploads</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="63"/>
<location filename="../src/widgets/historywidget.cpp" line="66"/>
<source>Screenshots history is empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="109"/>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="113"/>
<location filename="../src/widgets/historywidget.cpp" line="117"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/widgets/historywidget.cpp" line="119"/>
<location filename="../src/widgets/historywidget.cpp" line="123"/>
<source>Open in browser</source>
<translation type="unfinished"></translation>
</message>
@@ -484,151 +484,198 @@ Press Space to open the side panel.</source>
<context>
<name>ImgS3Uploader</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="55"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="54"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Delete image from S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="244"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="224"/>
<source>Unable to remove screenshot from the remote storage.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="246"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="226"/>
<source>Network error</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="249"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="228"/>
<source>Possibly it doesn&apos;t exist anymore</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="252"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="233"/>
<source>Do you want to remove screenshot from local history anyway?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="282"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="254"/>
<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="406"/>
<source>Copy URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="407"/>
<source>Open URL</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="408"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="409"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">簿</translation>
<translation type="obsolete">簿</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="428"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="209"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="434"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="200"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="61"/>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="447"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="60"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="255"/>
<location filename="../src/tools/storage/imgs3uploader.cpp" line="237"/>
<source>Remove screenshot from history?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploader.cpp" line="439"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">簿</translation>
<translation type="obsolete">簿</translation>
</message>
</context>
<context>
<name>ImgS3UploaderTool</name>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="38"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="38"/>
<source>Image Uploader</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgs3/imgs3uploadertool.cpp" line="46"/>
<location filename="../src/tools/storage/imgs3uploadertool.cpp" line="46"/>
<source>Upload the selection to S3 bucket</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<name>ImgUploader</name>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation> Imgur</translation>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<source>Upload image to S3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="54"/>
<location filename="../src/tools/storage/imguploader.cpp" line="55"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Uploading Image</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="140"/>
<location filename="../src/tools/storage/imguploader.cpp" line="61"/>
<source>Upload image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="109"/>
<source>Unable to open the URL.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="116"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="122"/>
<source>Screenshot copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="131"/>
<source>Deleting image...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguploader.cpp" line="191"/>
<source>Copy URL</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="141"/>
<location filename="../src/tools/storage/imguploader.cpp" line="192"/>
<source>Open URL</source>
<translation></translation>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="142"/>
<location filename="../src/tools/storage/imguploader.cpp" line="193"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="143"/>
<location filename="../src/tools/storage/imguploader.cpp" line="194"/>
<source>Image to Clipboard.</source>
<translation type="unfinished">簿</translation>
</message>
</context>
<context>
<name>ImgurUploader</name>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="47"/>
<source>Upload to Imgur</source>
<translation> Imgur</translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="54"/>
<source>Uploading Image</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="140"/>
<source>Copy URL</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="141"/>
<source>Open URL</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="142"/>
<source>Delete image</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/storage/imguruploader.cpp" line="143"/>
<source>Image to Clipboard.</source>
<translation>簿</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="162"/>
<location filename="../src/tools/imgur/imguruploader.cpp" line="175"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="162"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="175"/>
<source>Unable to open the URL.</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="168"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="168"/>
<source>URL copied to clipboard.</source>
<translation>簿</translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="181"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="181"/>
<source>Screenshot copied to clipboard.</source>
<translation>簿</translation>
</message>
@@ -636,12 +683,12 @@ Press Space to open the side panel.</source>
<context>
<name>ImgurUploaderTool</name>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="35"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="35"/>
<source>Image Uploader</source>
<translation></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploadertool.cpp" line="43"/>
<location filename="../src/tools/storage/imguruploadertool.cpp" line="43"/>
<source>Upload the selection to Imgur</source>
<translation> Imgur</translation>
</message>
@@ -839,7 +886,7 @@ Press Space to open the side panel.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/tools/imgur/imguruploader.cpp" line="82"/>
<location filename="../src/tools/storage/imguruploader.cpp" line="82"/>
<source>URL copied to clipboard.</source>
<translation type="unfinished">簿</translation>
</message>