Page MenuHomePhabricator (Chris)

No OneTemporary

Authored By
Unknown
Size
676 KB
Referenced Files
None
Subscribers
None
This file is larger than 256 KB, so syntax highlighting was skipped.
This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
diff --git a/README b/README
index 690de01..efcb857 100644
--- a/README
+++ b/README
@@ -1,3 +1,3 @@
Lightscreen is a simple tool to automate the tedious process of saving and cataloging screenshots, it operates as a hidden background process that is invoked with one (or multiple) hotkeys and then saves a screenshot file to disk according to the user's preferences.
-More information at http://lightscreen.sourceforge.net
\ No newline at end of file
+More information at http://lightscreen.com.ar
\ No newline at end of file
diff --git a/dialogs/areadialog.cpp b/dialogs/areadialog.cpp
index 9694557..4b9f1cc 100644
--- a/dialogs/areadialog.cpp
+++ b/dialogs/areadialog.cpp
@@ -1,584 +1,582 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
******
*
* Based on KDE's KSnapshot regiongrabber.cpp, revision 796531, Copyright 2007 Luca Gugelmann <lucag@student.ethz.ch>
* released under the GNU LGPL <http://www.gnu.org/licenses/old-licenses/library.txt>
*
*/
#include "areadialog.h"
#include "../tools/os.h"
#include "../tools/screenshot.h"
#include "../tools/screenshotmanager.h"
#include <QApplication>
#include <QDesktopWidget>
#include <QHBoxLayout>
#include <QMouseEvent>
#include <QPainter>
#include <QPushButton>
#include <QSettings>
#include <QTimer>
#include <QToolTip>
-#include <QDebug>
-
AreaDialog::AreaDialog(Screenshot *screenshot) :
QDialog(0), mScreenshot(screenshot), mMouseDown(false), mMouseMagnifier(false),
mNewSelection(false), mHandleSize(10), mMouseOverHandle(0), mIdleTimer(),
mShowHelp(true), mGrabbing(false), mOverlayAlpha(1), mAutoclose(false),
mTLHandle(0, 0, mHandleSize, mHandleSize), mTRHandle(0, 0, mHandleSize, mHandleSize),
mBLHandle(0, 0, mHandleSize, mHandleSize), mBRHandle(0, 0, mHandleSize, mHandleSize),
mLHandle(0, 0, mHandleSize, mHandleSize), mTHandle(0, 0, mHandleSize, mHandleSize),
mRHandle(0, 0, mHandleSize, mHandleSize), mBHandle(0, 0, mHandleSize, mHandleSize)
{
mHandles << &mTLHandle << &mTRHandle << &mBLHandle << &mBRHandle
<< &mLHandle << &mTHandle << &mRHandle << &mBHandle;
mMouseOverHandle = 0;
setMouseTracking(true);
setWindowTitle(tr("Lightscreen Area Mode"));
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
setCursor(Qt::CrossCursor);
connect(&mIdleTimer, SIGNAL(timeout()), this, SLOT(displayHelp()));
mIdleTimer.start(2000);
mAutoclose = ScreenshotManager::instance()->settings()->value("options/areaAutoclose").toBool();
if (mAutoclose)
return; // Avoid creating the accept widget if it's not going to get used.
// Creating accept widget:
mAcceptWidget = new QWidget(this);
mAcceptWidget->resize(140, 70);
mAcceptWidget->setWindowOpacity(0.4);
mAcceptWidget->setStyleSheet("QWidget { background: rgba(255, 255, 255, 200); border: 4px solid #232323; padding: 0; } QPushButton { background: transparent; border: none; height: 50px; padding: 5px; } QPushButton:hover { cursor: hand; }");
- QPushButton *awAcceptButton = new QPushButton(QIcon(":/icon/yes.big"), "", this);
+ QPushButton *awAcceptButton = new QPushButton(QIcon(":/icons/yes.big"), "", this);
connect(awAcceptButton, SIGNAL(clicked()), this, SLOT(grabRect()));
awAcceptButton->setCursor(Qt::PointingHandCursor);
awAcceptButton->setIconSize(QSize(48, 48));
- QPushButton *awRejectButton = new QPushButton(QIcon(":/icon/no.big"), "", this);
+ QPushButton *awRejectButton = new QPushButton(QIcon(":/icons/no.big"), "", this);
connect(awRejectButton, SIGNAL(clicked()), this, SLOT(cancel()));
awRejectButton->setCursor(Qt::PointingHandCursor);
awRejectButton->setIconSize(QSize(48, 48));
QHBoxLayout *awLayout = new QHBoxLayout(this);
awLayout->addWidget(awAcceptButton);
awLayout->addWidget(awRejectButton);
awLayout->setMargin(0);
awLayout->setSpacing(0);
mAcceptWidget->setLayout(awLayout);
mAcceptWidget->setVisible(false);
}
QRect &AreaDialog::resultRect()
{
return mSelection;
}
void AreaDialog::animationTick(int frame)
{
mOverlayAlpha = frame;
update();
}
void AreaDialog::cancel()
{
reject();
}
void AreaDialog::displayHelp()
{
mShowHelp = true;
update();
}
void AreaDialog::grabRect()
{
QRect r = mSelection.normalized();
if (!r.isNull() && r.isValid()) {
mGrabbing = true;
accept();
}
}
void AreaDialog::keyPressEvent(QKeyEvent* e)
{
if (e->key() == Qt::Key_Escape) {
cancel();
}
else if (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return) {
grabRect();
}
else {
e->ignore();
}
}
void AreaDialog::mouseDoubleClickEvent(QMouseEvent*)
{
grabRect();
}
void AreaDialog::mouseMoveEvent(QMouseEvent* e)
{
mMouseMagnifier = false;
if (mMouseDown) {
mMousePos = e->pos();
if (mNewSelection) {
QRect r = rect();
mSelection = QRect(mDragStartPoint, limitPointToRect(mMousePos, r)).normalized();
}
else if (mMouseOverHandle == 0) { // moving the whole selection
QRect r = rect().normalized(), s = mSelectionBeforeDrag.normalized();
QPoint p = s.topLeft() + e->pos() - mDragStartPoint;
r.setBottomRight(r.bottomRight() - QPoint(s.width(), s.height()));
if (!r.isNull() && r.isValid())
mSelection.moveTo(limitPointToRect(p, r));
}
else {// dragging a handle
QRect r = mSelectionBeforeDrag;
QPoint offset = e->pos() - mDragStartPoint;
if (mMouseOverHandle == &mTLHandle || mMouseOverHandle == &mTHandle
|| mMouseOverHandle == &mTRHandle) // dragging one of the top handles
{
r.setTop(r.top() + offset.y());
}
if (mMouseOverHandle == &mTLHandle || mMouseOverHandle == &mLHandle
|| mMouseOverHandle == &mBLHandle) // dragging one of the left handles
{
r.setLeft(r.left() + offset.x());
}
if (mMouseOverHandle == &mBLHandle || mMouseOverHandle == &mBHandle
|| mMouseOverHandle == &mBRHandle) // dragging one of the bottom handles
{
r.setBottom(r.bottom() + offset.y());
}
if (mMouseOverHandle == &mTRHandle || mMouseOverHandle == &mRHandle
|| mMouseOverHandle == &mBRHandle) // dragging one of the right handles
{
r.setRight(r.right() + offset.x());
}
r = r.normalized();
r.setTopLeft(limitPointToRect(r.topLeft(), rect()));
r.setBottomRight(limitPointToRect(r.bottomRight(), rect()));
mSelection = r;
}
if (qApp->keyboardModifiers() & Qt::ControlModifier)
{
// The lazy 1:1 aspect ratio approach!
mSelection.setHeight(mSelection.width());
}
if (mAcceptWidget) {
QPoint acceptPos = e->pos();
QRect acceptRect = QRect(acceptPos, QSize(120, 70));
// Prevent the widget from overlapping the handles
if (acceptRect.intersects(mTLHandle)) {
acceptPos = mTLHandle.bottomRight() + QPoint(2, 2); // Corner case
}
if (acceptRect.intersects(mBRHandle)) {
acceptPos = mBRHandle.bottomRight();
}
if (acceptRect.intersects(mBHandle)) {
acceptPos = mBHandle.bottomRight();
}
if (acceptRect.intersects(mRHandle)) {
acceptPos = mRHandle.topRight();
}
if (acceptRect.intersects(mTHandle)) {
acceptPos = mTHandle.bottomRight();
}
if ((acceptPos.x()+120) > mScreenshot->pixmap().rect().width())
acceptPos.setX(acceptPos.x()-120);
if ((acceptPos.y()+70) > mScreenshot->pixmap().rect().height())
acceptPos.setY(acceptPos.y()-70);
mAcceptWidget->move(acceptPos);
}
update();
}
else
{
if (mSelection.isNull()) {
mMouseMagnifier = true;
update();
return;
}
bool found = false;
foreach(QRect* r, mHandles) {
if (r->contains(e->pos())) {
mMouseOverHandle = r;
found = true;
break;
}
}
if (!found) {
mMouseOverHandle = 0;
if (mSelection.contains(e->pos()))
setCursor(Qt::OpenHandCursor);
else if (mAcceptWidget && QRect(mAcceptWidget->mapToParent(mAcceptWidget->pos()), QSize(100, 60)).contains(e->pos()))
setCursor(Qt::PointingHandCursor);
else
setCursor(Qt::CrossCursor);
}
else {
if (mMouseOverHandle == &mTLHandle || mMouseOverHandle == &mBRHandle)
setCursor(Qt::SizeFDiagCursor);
if (mMouseOverHandle == &mTRHandle || mMouseOverHandle == &mBLHandle)
setCursor(Qt::SizeBDiagCursor);
if (mMouseOverHandle == &mLHandle || mMouseOverHandle == &mRHandle)
setCursor(Qt::SizeHorCursor);
if (mMouseOverHandle == &mTHandle || mMouseOverHandle == &mBHandle)
setCursor(Qt::SizeVerCursor);
}
}
}
void AreaDialog::mousePressEvent(QMouseEvent* e)
{
mShowHelp = false;
mIdleTimer.stop();
if (mAcceptWidget)
mAcceptWidget->hide();
if (e->button() == Qt::LeftButton) {
mMouseDown = true;
mDragStartPoint = e->pos();
mSelectionBeforeDrag = mSelection;
if (!mSelection.contains(e->pos())) {
mNewSelection = true;
mSelection = QRect();
mShowHelp = true;
setCursor(Qt::CrossCursor);
}
else {
setCursor(Qt::ClosedHandCursor);
}
}
else if (e->button() == Qt::RightButton
|| e->button() == Qt::MidButton)
{
cancel();
}
update();
}
void AreaDialog::mouseReleaseEvent(QMouseEvent* e)
{
if (mAutoclose)
grabRect();
if (!mSelection.isNull() && mAcceptWidget)
mAcceptWidget->show();
mMouseDown = false;
mNewSelection = false;
mIdleTimer.start();
if (mMouseOverHandle == 0 && mSelection.contains(e->pos()))
setCursor(Qt::OpenHandCursor);
update();
}
void AreaDialog::paintEvent(QPaintEvent* e)
{
Q_UNUSED(e);
if (mGrabbing) // grabWindow() should just get the background
return;
QPainter painter(this);
QPalette pal = palette();
QFont font = QToolTip::font();
QColor handleColor(85, 160, 188, 220);
QColor overlayColor(0, 0, 0, mOverlayAlpha);
QColor textColor = pal.color(QPalette::Active, QPalette::Text);
QColor textBackgroundColor = pal.color(QPalette::Active, QPalette::Base);
painter.drawPixmap(0, 0, mScreenshot->pixmap());
painter.setFont(font);
QRect r = mSelection.normalized().adjusted(0, 0, -1, -1);
QRegion grey(rect());
grey = grey.subtracted(r);
painter.setPen(handleColor);
painter.setBrush(overlayColor);
painter.setClipRegion(grey);
painter.drawRect(-1, -1, rect().width() + 1, rect().height() + 1);
painter.setClipRect(rect());
painter.setBrush(Qt::NoBrush);
painter.drawRect(r);
if (mShowHelp) {
//Drawing the explanatory text.
QRect helpRect = qApp->desktop()->screenGeometry(qApp->desktop()->primaryScreen());
QString helpTxt = tr("Lightscreen area mode:\nUse your mouse to draw a rectangle to capture.\nPress any key or right click to exit.");
helpRect.setHeight(qRound((float)(helpRect.height() / 10))); // We get a decently sized rect where the text should be drawn (centered)
// We draw the white contrasting background for the text, using the same text and options to get the boundingRect that the text will have.
painter.setPen(QPen(Qt::white));
painter.setBrush(QBrush(QColor(255, 255, 255, 180), Qt::SolidPattern));
QRectF bRect = painter.boundingRect(helpRect, Qt::AlignCenter, helpTxt);
// These four calls provide padding for the rect
bRect.setWidth(bRect.width() + 12);
bRect.setHeight(bRect.height() + 10);
bRect.setX(bRect.x() - 12);
bRect.setY(bRect.y() - 10);
painter.drawRoundedRect(bRect, 8, 8);
// Draw the text:
painter.setPen(QPen(Qt::black));
painter.drawText(helpRect, Qt::AlignCenter, helpTxt);
}
if (!mSelection.isNull()) {
// The grabbed region is everything which is covered by the drawn
// rectangles (border included). This means that there is no 0px
// selection, since a 0px wide rectangle will always be drawn as a line.
QString txt = QString("%1x%2").arg(mSelection.width() == 0 ? 2 : mSelection.width())
.arg(mSelection.height() == 0 ? 2 : mSelection.height());
QRect textRect = painter.boundingRect(rect(), Qt::AlignLeft, txt);
QRect boundingRect = textRect.adjusted(-4, 0, 0, 0);
if (textRect.width() < r.width() - 2*mHandleSize &&
textRect.height() < r.height() - 2*mHandleSize &&
(r.width() > 100 && r.height() > 100)) // center, unsuitable for small selections
{
boundingRect.moveCenter(r.center());
textRect.moveCenter(r.center());
}
else if (r.y() - 3 > textRect.height() &&
r.x() + textRect.width() < rect().right()) // on top, left aligned
{
boundingRect.moveBottomLeft(QPoint(r.x(), r.y() - 3));
textRect.moveBottomLeft(QPoint(r.x() + 2, r.y() - 3));
}
else if (r.x() - 3 > textRect.width()) // left, top aligned
{
boundingRect.moveTopRight(QPoint(r.x() - 3, r.y()));
textRect.moveTopRight(QPoint(r.x() - 5, r.y()));
}
else if (r.bottom() + 3 + textRect.height() < rect().bottom() &&
r.right() > textRect.width()) // at bottom, right aligned
{
boundingRect.moveTopRight(QPoint(r.right(), r.bottom() + 3));
textRect.moveTopRight(QPoint(r.right() - 2, r.bottom() + 3));
}
else if (r.right() + textRect.width() + 3 < rect().width()) // right, bottom aligned
{
boundingRect.moveBottomLeft(QPoint(r.right() + 3, r.bottom()));
textRect.moveBottomLeft(QPoint(r.right() + 5, r.bottom()));
}
// if the above didn't catch it, you are running on a very tiny screen...
painter.setPen(textColor);
painter.setBrush(textBackgroundColor);
painter.drawRect(boundingRect);
painter.drawText(textRect, txt);
if ((r.height() > mHandleSize*2 && r.width() > mHandleSize*2)
|| !mMouseDown)
{
updateHandles();
painter.setPen(handleColor);
handleColor.setAlpha(80);
painter.setBrush(handleColor);
painter.drawRects(handleMask().rects());
}
}
if (!mScreenshot->options().magnify)
return;
// Drawing the magnified version
QPoint magStart, magEnd, drawPosition;
QRect newRect;
QRect pixmapRect = mScreenshot->pixmap().rect();
if (mMouseMagnifier) {
- drawPosition = QCursor::pos() - QPoint(100, 100);
+ drawPosition = mMousePos - QPoint(100, 100);
- magStart = QCursor::pos() - QPoint(50, 50);
- magEnd = QCursor::pos() + QPoint(50, 50);
+ magStart = mMousePos - QPoint(50, 50);
+ magEnd = mMousePos + QPoint(50, 50);
newRect = QRect(magStart, magEnd);
}
else {
// So pretty.. oh so pretty.
if (mMouseOverHandle == &mTLHandle)
magStart = mSelection.topLeft();
else if (mMouseOverHandle == &mTRHandle)
magStart = mSelection.topRight();
else if (mMouseOverHandle == &mBLHandle)
magStart = mSelection.bottomLeft();
else if (mMouseOverHandle == &mBRHandle)
magStart = mSelection.bottomRight();
else if (mMouseOverHandle == &mLHandle)
magStart = QPoint(mSelection.left(), mSelection.center().y());
else if (mMouseOverHandle == &mTHandle)
magStart = QPoint(mSelection.center().x(), mSelection.top());
else if (mMouseOverHandle == &mRHandle)
magStart = QPoint(mSelection.right(), mSelection.center().y());
else if (mMouseOverHandle == &mBHandle)
magStart = QPoint(mSelection.center().x(), mSelection.bottom());
else if (mMouseOverHandle == 0)
- magStart = QCursor::pos();
+ magStart = mMousePos;
magEnd = magStart;
drawPosition = mSelection.bottomRight();
magStart -= QPoint(50, 50);
magEnd += QPoint(50, 50);
newRect = QRect(magStart, magEnd);
if ((drawPosition.x()+newRect.width()*2) > pixmapRect.width())
drawPosition.setX(drawPosition.x()-newRect.width()*2);
if ((drawPosition.y()+newRect.height()*2) > pixmapRect.height())
drawPosition.setY(drawPosition.y()-newRect.height()*2);
if (drawPosition.y() == mSelection.bottomRight().y()-newRect.height()*2
&& drawPosition.x() == mSelection.bottomRight().x()-newRect.width()*2)
painter.setOpacity(0.7);
}
if (!pixmapRect.contains(newRect, true) || drawPosition.x() <= 0 || drawPosition.y() <= 0) {
return;
}
QPixmap magnified = mScreenshot->pixmap().copy(newRect).scaled(QSize(newRect.width()*2, newRect.height()*2));
QPainter magPainter(&magnified);
magPainter.setPen(QPen(QBrush(QColor(35, 35, 35)), 2)); // Same border pen
magPainter.drawRect(magnified.rect());
if (!mMouseMagnifier) {
magPainter.drawText(magnified.rect().center()-QPoint(4, -4), "+"); //Center minus the 4 pixels wide and across of the "+" -- TODO: Test alternative DPI settings.
}
painter.drawPixmap(drawPosition, magnified);
}
void AreaDialog::resizeEvent(QResizeEvent* e)
{
Q_UNUSED(e);
if (mSelection.isNull())
return;
QRect r = mSelection;
r.setTopLeft(limitPointToRect(r.topLeft(), rect()));
r.setBottomRight(limitPointToRect(r.bottomRight(), rect()));
if (r.width() <= 1 || r.height() <= 1) //this just results in ugly drawing...
r = QRect();
mSelection = r;
}
void AreaDialog::showEvent(QShowEvent* e)
{
Q_UNUSED(e)
QRect geometry = qApp->desktop()->geometry();
if (mScreenshot->options().currentMonitor) {
geometry = qApp->desktop()->screenGeometry(qApp->desktop()->screenNumber(QCursor::pos()));
}
resize(geometry.size());
move(geometry.topLeft());
if (mScreenshot->options().animations) {
os::effect(this, SLOT(animationTick(int)), 85, 300);
}
else {
animationTick(85);
}
setMouseTracking(true);
}
void AreaDialog::updateHandles()
{
QRect r = mSelection.normalized().adjusted(0, 0, -1, -1);
int s2 = mHandleSize / 2;
mTLHandle.moveTopLeft(r.topLeft());
mTRHandle.moveTopRight(r.topRight());
mBLHandle.moveBottomLeft(r.bottomLeft());
mBRHandle.moveBottomRight(r.bottomRight());
mLHandle.moveTopLeft(QPoint(r.x(), r.y() + r.height() / 2 - s2));
mTHandle.moveTopLeft(QPoint(r.x() + r.width() / 2 - s2, r.y()));
mRHandle.moveTopRight(QPoint(r.right(), r.y() + r.height() / 2 - s2));
mBHandle.moveBottomLeft(QPoint(r.x() + r.width() / 2 - s2, r.bottom()));
}
QRegion AreaDialog::handleMask() const
{
// note: not normalized QRects are bad here, since they will not be drawn
QRegion mask;
foreach(QRect* rect, mHandles) mask += QRegion(*rect);
return mask;
}
QPoint AreaDialog::limitPointToRect(const QPoint &p, const QRect &r) const
{
QPoint q;
q.setX(p.x() < r.x() ? r.x() : p.x() < r.right() ? p.x() : r.right());
q.setY(p.y() < r.y() ? r.y() : p.y() < r.bottom() ? p.y() : r.bottom());
return q;
}
diff --git a/dialogs/areadialog.h b/dialogs/areadialog.h
index 2585d7e..f2e888b 100644
--- a/dialogs/areadialog.h
+++ b/dialogs/areadialog.h
@@ -1,99 +1,99 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
******
*
* Based on KDE's KSnapshot regiongrabber.cpp, revision 796531, Copyright 2007 Luca Gugelmann <lucag@student.ethz.ch>
* released under the GNU LGPL <http://www.gnu.org/licenses/old-licenses/library.txt>
*
*/
#ifndef AREADIALOG_H
#define AREADIALOG_H
#include <QDialog>
#include <QVector>
#include <QPointer>
#include <QTimer>
#include <QRegion>
#include <QRect>
#include <QPoint>
class QPaintEvent;
class QResizeEvent;
class QMouseEvent;
class Screenshot;
class AreaDialog : public QDialog
{
Q_OBJECT
public:
AreaDialog(Screenshot* screenshot);
QRect &resultRect();
protected slots:
void animationTick(int frame);
void cancel();
void displayHelp();
void grabRect();
signals:
void regionGrabbed( const QPixmap & );
protected:
void keyPressEvent( QKeyEvent* e );
void mouseDoubleClickEvent( QMouseEvent* );
void mouseMoveEvent( QMouseEvent* e );
void mousePressEvent( QMouseEvent* e );
void mouseReleaseEvent( QMouseEvent* e );
void paintEvent( QPaintEvent* e );
void resizeEvent( QResizeEvent* e );
void showEvent( QShowEvent* e );
void updateHandles();
QRegion handleMask() const;
QPoint limitPointToRect( const QPoint &p, const QRect &r ) const;
bool mAutoclose;
QPoint mDragStartPoint;
bool mGrabbing;
const int mHandleSize;
QTimer mIdleTimer;
bool mMouseDown;
bool mMouseMagnifier;
QRect *mMouseOverHandle;
QPoint mMousePos;
bool mNewSelection;
int mOverlayAlpha;
Screenshot *mScreenshot;
QRect mSelection;
QRect mSelectionBeforeDrag;
bool mShowHelp;
// naming convention for handles
// T top, B bottom, R Right, L left
// 2 letters: a corner
// 1 letter: the handle on the middle of the corresponding side
QRect mTLHandle, mTRHandle, mBLHandle, mBRHandle;
QRect mLHandle, mTHandle, mRHandle, mBHandle;
QVector<QRect*> mHandles;
QPointer<QWidget> mAcceptWidget;
};
#endif
diff --git a/dialogs/historydialog.cpp b/dialogs/historydialog.cpp
index 5638ca2..bb53bac 100644
--- a/dialogs/historydialog.cpp
+++ b/dialogs/historydialog.cpp
@@ -1,288 +1,285 @@
#include "historydialog.h"
#include "ui_historydialog.h"
#include "../tools/os.h"
#include "../tools/uploader.h"
#include "../tools/screenshotmanager.h"
#include <QClipboard>
#include <QDesktopServices>
#include <QDir>
#include <QFile>
#include <QFileInfo>
#include <QFileSystemWatcher>
#include <QMenu>
#include <QMessageBox>
-#include <QSortFilterProxyModel>
-#include <QUrl>
#include <QSettings>
-
+#include <QSortFilterProxyModel>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlTableModel>
-
-#include <QDebug>
+#include <QUrl>
HistoryDialog::HistoryDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::HistoryDialog)
{
ui->setupUi(this);
ui->filterEdit->setText(tr("Filter.."));
ui->filterEdit->installEventFilter(this);
if (QSqlDatabase::database().isOpen())
{
mModel = new QSqlTableModel(this);
mModel->setTable("history");
mModel->setHeaderData(0, Qt::Horizontal, tr("Screenshot"));
mModel->setHeaderData(1, Qt::Horizontal, tr("URL"));
mModel->select();
mFilterModel = new QSortFilterProxyModel(mModel);
mFilterModel->setSourceModel(mModel);
mFilterModel->setDynamicSortFilter(true);
mFilterModel->setSortCaseSensitivity(Qt::CaseInsensitive);
mFilterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
mFilterModel->setFilterKeyColumn(-1);
while (mModel->canFetchMore()) {
mModel->fetchMore();
}
ui->tableView->setModel(mFilterModel);
ui->tableView->hideColumn(2); // No delete hash.
ui->tableView->hideColumn(3); // No timestamp.
ui->tableView->horizontalHeader()->setSectionsClickable(false);
ui->tableView->horizontalHeader()->setSectionsMovable(false);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->tableView->verticalHeader()->hide();
ui->tableView->setTextElideMode(Qt::ElideLeft);
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
ui->tableView->setAlternatingRowColors(true);
ui->tableView->setSelectionMode(QAbstractItemView::SingleSelection);
ui->tableView->setContextMenuPolicy(Qt::CustomContextMenu);
ui->tableView->setSortingEnabled(true);
if (ui->tableView->model()->rowCount() > 0)
{
ui->clearButton->setEnabled(true);
ui->filterEdit->setEnabled(true);
}
connect(ui->tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(selectionChanged(QItemSelection,QItemSelection)));
connect(ui->tableView, SIGNAL(doubleClicked(QModelIndex)), this, SLOT(open(QModelIndex)));
connect(ui->tableView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenu(QPoint)));
}
else {
ui->tableView->setEnabled(false);
ui->clearButton->setEnabled(false);
}
ui->uploadProgressBar->setValue (Uploader::instance()->progressSent());
if (Uploader::instance()->progressTotal() == 0) {
ui->uploadProgressBar->setMaximum(1);
}
else {
ui->uploadProgressBar->setMaximum(Uploader::instance()->progressTotal());
}
connect(Uploader::instance(), SIGNAL(progress(qint64,qint64)), this, SLOT(uploadProgress(qint64, qint64)));
connect(Uploader::instance(), SIGNAL(done(QString,QString,QString)), this, SLOT(refresh()));
connect(ui->uploadButton, SIGNAL(clicked()), this, SLOT(upload()));
connect(ui->clearButton , SIGNAL(clicked()), this, SLOT(clear()));
}
HistoryDialog::~HistoryDialog()
{
delete ui;
}
void HistoryDialog::clear()
{
if (QMessageBox::question(this,
tr("Clearing the screenshot history"),
tr("Are you sure you want to clear your entire screenshot history?\nThis cannot be undone."),
tr("Clear History"),
tr("Don't Clear")) == 1) {
return;
}
ScreenshotManager::instance()->clearHistory();
close();
}
void HistoryDialog::contextMenu(QPoint point)
{
mContextIndex = ui->tableView->indexAt(point);;
QMenu contextMenu(ui->tableView);
QAction copyAction((mContextIndex.column() == 0) ? tr("Copy Path") : tr("Copy URL"), &contextMenu);
connect(&copyAction, SIGNAL(triggered()), this, SLOT(copy()));
contextMenu.addAction(&copyAction);
QAction deleteAction(tr("Delete from imgur.com"), &contextMenu);
QAction locationAction(tr("Open Location"), &contextMenu);
QAction removeAction(tr("Remove history entry"), &contextMenu);
if (mContextIndex.data().toString().isEmpty()) {
copyAction.setEnabled(false);
deleteAction.setEnabled(false);
}
if (mContextIndex.column() == 0) {
connect(&locationAction, SIGNAL(triggered()), this, SLOT(location()));
contextMenu.addAction(&locationAction);
}
else {
connect(&deleteAction, SIGNAL(triggered()), this, SLOT(deleteImage()));
contextMenu.addAction(&deleteAction);
}
connect(&removeAction, SIGNAL(triggered()), this, SLOT(removeHistoryEntry()));
contextMenu.addAction(&removeAction);
contextMenu.exec(QCursor::pos());
}
void HistoryDialog::copy()
{
qApp->clipboard()->setText(mContextIndex.data().toString());
}
void HistoryDialog::deleteImage()
{
QDesktopServices::openUrl(mContextIndex.sibling(mContextIndex.row(), 2).data().toString());
}
void HistoryDialog::location()
{
QDesktopServices::openUrl("file:///" + QFileInfo(mContextIndex.data().toString()).absolutePath());
}
void HistoryDialog::removeHistoryEntry()
{
if (mContextIndex.column() == 0) {
// File got right clicked:
ScreenshotManager::instance()->removeHistory(mContextIndex.data().toString(), mContextIndex.sibling(mContextIndex.row(), 3).data().toLongLong());
}
else {
// Screenshot URL got right clicked:
ScreenshotManager::instance()->removeHistory(mContextIndex.sibling(mContextIndex.row(), 0).data().toString(), mContextIndex.sibling(mContextIndex.row(), 3).data().toLongLong());
}
refresh();
}
void HistoryDialog::refresh()
{
mModel->select();
}
void HistoryDialog::open(QModelIndex index)
{
if (index.column() == 0) {
QDesktopServices::openUrl(QUrl("file:///" + index.data().toString()));
}
else {
QDesktopServices::openUrl(index.data().toUrl());
}
}
void HistoryDialog::selectionChanged(QItemSelection selected, QItemSelection deselected)
{
Q_UNUSED(deselected);
if (selected.indexes().count() == 0){
return;
}
QModelIndex index = selected.indexes().at(0);
QString screenshot;
if (index.column() == 0) {
screenshot = index.data().toString();
}
else {
screenshot = ui->tableView->model()->index(index.row(), 0).data().toString();
}
mSelectedScreenshot = screenshot;
ui->uploadButton->setEnabled(QFile::exists(screenshot));
}
void HistoryDialog::upload()
{
Uploader::instance()->upload(mSelectedScreenshot);
ui->uploadButton->setEnabled(false);
}
void HistoryDialog::uploadProgress(qint64 sent, qint64 total)
{
ui->uploadProgressBar->setEnabled(true);
ui->uploadProgressBar->setMaximum(total);
ui->uploadProgressBar->setValue(sent);
}
bool HistoryDialog::eventFilter(QObject *object, QEvent *event)
{
if (object == ui->filterEdit) {
if (event->type() == QEvent::FocusIn)
{
if (ui->filterEdit->text() == tr("Filter..")) {
ui->filterEdit->setStyleSheet("");
ui->filterEdit->setText("");
mFilterModel->setFilterWildcard("");
mFilterModel->sort(3, Qt::DescendingOrder);
}
}
else if (event->type() == QEvent::FocusOut)
{
if (ui->filterEdit->text() == "") {
ui->filterEdit->setStyleSheet("color: palette(mid);");
ui->filterEdit->setText(tr("Filter.."));
mFilterModel->sort(3, Qt::DescendingOrder);
}
}
else if (event->type() == QEvent::KeyRelease)
{
if (ui->filterEdit->text() != tr("Filter..") && !ui->filterEdit->text().isEmpty()) {
mFilterModel->setFilterWildcard(ui->filterEdit->text());
mFilterModel->sort(3, Qt::DescendingOrder);
}
else {
mFilterModel->setFilterWildcard("");
mFilterModel->sort(3, Qt::DescendingOrder);
}
}
}
return QDialog::eventFilter(object, event);
}
bool HistoryDialog::event(QEvent *event)
{
if (event->type() == QEvent::Show)
{
restoreGeometry(ScreenshotManager::instance()->settings()->value("geometry/historyDialog").toByteArray());
}
else if (event->type() == QEvent::Close)
{
ScreenshotManager::instance()->settings()->setValue("geometry/historyDialog", saveGeometry());
}
return QDialog::event(event);
}
diff --git a/dialogs/namingdialog.cpp b/dialogs/namingdialog.cpp
index 82a84cd..7c00c4d 100644
--- a/dialogs/namingdialog.cpp
+++ b/dialogs/namingdialog.cpp
@@ -1,91 +1,91 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "namingdialog.h"
#include "../tools/screenshot.h"
#include "../tools/os.h"
#include "../tools/screenshotmanager.h"
#include <QDesktopServices>
#include <QKeyEvent>
#include <QSettings>
#include <QUrl>
NamingDialog::NamingDialog(Screenshot::Naming naming,QWidget *parent) :
QDialog(parent)
{
ui.setupUi(this);
setModal(true);
setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);
ui.dateFormatComboBox->installEventFilter(this);
// Settings
QSettings *s = ScreenshotManager::instance()->settings();
ui.flipNamingCheckBox->setChecked(s->value("options/flip", false).toBool());
ui.dateFormatComboBox->setCurrentIndex(
ui.dateFormatComboBox->findText(s->value("options/naming/dateFormat", "yyyy-MM-dd").toString())
);
if (ui.dateFormatComboBox->currentIndex() == -1) {
ui.dateFormatComboBox->addItem(s->value("options/naming/dateFormat", "yyyy-MM-dd").toString());
ui.dateFormatComboBox->setCurrentIndex(ui.dateFormatComboBox->count()-1);
}
ui.leadingZerosSpinBox->setValue(s->value("options/naming/leadingZeros", 0).toInt());
// Signals/Slots
connect(ui.buttonBox , SIGNAL(accepted()), this, SLOT(saveSettings()));
connect(ui.dateHelpLabel, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));
// Stack & window size adjustments
ui.stack->setCurrentIndex((int)naming);
ui.stack->currentWidget()->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
resize(minimumSizeHint());
}
void NamingDialog::openUrl(QString url)
{
QDesktopServices::openUrl(QUrl(url));
}
void NamingDialog::saveSettings()
{
QSettings *s = ScreenshotManager::instance()->settings();
s->setValue("options/flip" , ui.flipNamingCheckBox->isChecked());
s->setValue("options/naming/dateFormat" , ui.dateFormatComboBox->currentText());
s->setValue("options/naming/leadingZeros", ui.leadingZerosSpinBox->value());
}
bool NamingDialog::eventFilter(QObject *object, QEvent *event)
{
if (event->type() == QEvent::KeyPress
&& object == ui.dateFormatComboBox)
{
QKeyEvent *keyEvent = (QKeyEvent*)(event);
if (QRegExp("[?:\\\\/*\"<>|]").exactMatch(keyEvent->text())) {
event->ignore();
return true;
}
}
return QDialog::eventFilter(object, event);
}
diff --git a/dialogs/namingdialog.h b/dialogs/namingdialog.h
index 9aa4de7..4a4cced 100644
--- a/dialogs/namingdialog.h
+++ b/dialogs/namingdialog.h
@@ -1,45 +1,45 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef NAMINGDIALOG_H
#define NAMINGDIALOG_H
#include "ui_namingdialog.h"
#include "../tools/screenshot.h"
#include <QUrl>
class NamingDialog : public QDialog
{
Q_OBJECT
public:
explicit NamingDialog(Screenshot::Naming naming, QWidget *parent = 0);
private slots:
void openUrl(QString url);
void saveSettings();
protected:
bool eventFilter(QObject *object, QEvent *event);
private:
Ui::NamingDialog ui;
};
#endif // NAMINGDIALOG_H
diff --git a/dialogs/namingdialog.ui b/dialogs/namingdialog.ui
index 5f20883..ac9c55b 100644
--- a/dialogs/namingdialog.ui
+++ b/dialogs/namingdialog.ui
@@ -1,221 +1,257 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>NamingDialog</class>
<widget class="QDialog" name="NamingDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>168</width>
<height>82</height>
</rect>
</property>
<property name="windowTitle">
<string>Naming Options - Lightscreen</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
- <property name="margin">
+ <property name="leftMargin">
+ <number>6</number>
+ </property>
+ <property name="topMargin">
+ <number>6</number>
+ </property>
+ <property name="rightMargin">
+ <number>6</number>
+ </property>
+ <property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QWidget" name="container" native="true">
<layout class="QVBoxLayout" name="verticalLayout_11">
- <property name="margin">
+ <property name="leftMargin">
+ <number>9</number>
+ </property>
+ <property name="topMargin">
+ <number>9</number>
+ </property>
+ <property name="rightMargin">
+ <number>9</number>
+ </property>
+ <property name="bottomMargin">
<number>9</number>
</property>
<item>
<widget class="QStackedWidget" name="stack">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="numericStackPage">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="namePageLayout">
- <property name="margin">
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="leadingZerosLabel">
<property name="text">
<string>Leading zeros:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="leadingZerosSpinBox">
<property name="buttonSymbols">
<enum>QAbstractSpinBox::PlusMinus</enum>
</property>
<property name="suffix">
<string notr="true"/>
</property>
<property name="minimum">
<number>0</number>
</property>
<property name="maximum">
<number>25</number>
</property>
<property name="value">
<number>0</number>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="dateStackPage">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<layout class="QGridLayout" name="gridLayout_3">
- <property name="horizontalSpacing">
+ <property name="leftMargin">
<number>0</number>
</property>
- <property name="margin">
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>0</number>
+ </property>
+ <property name="horizontalSpacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="dateFormatLabel">
<property name="text">
<string>Date Format:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>1</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="2">
<widget class="QLabel" name="dateHelpLabel">
<property name="font">
<font>
<pointsize>10</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">margin-left: 4px</string>
</property>
<property name="text">
- <string notr="true"> &lt;a href=&quot;http://lightscreen.sourceforge.net/help/date&quot;&gt;[?]&lt;/a&gt;</string>
+ <string notr="true"> &lt;a href=&quot;http://lightscreen.com.ar/help#date&quot;&gt;[?]&lt;/a&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QComboBox" name="dateFormatComboBox">
<property name="editable">
<bool>true</bool>
</property>
<item>
<property name="text">
<string notr="true">yyyy-MM-dd</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">yyyy-MM-dd HH.mm.ss</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="timestampStackPage">
<property name="sizePolicy">
<sizepolicy hsizetype="Ignored" vsizetype="Ignored">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</widget>
</item>
<item>
<widget class="QCheckBox" name="flipNamingCheckBox">
<property name="text">
<string>Flip naming.</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Save</set>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>accepted()</signal>
<receiver>NamingDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
<hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>NamingDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>
diff --git a/dialogs/optionsdialog.cpp b/dialogs/optionsdialog.cpp
index b05b7dd..2a25d4f 100644
--- a/dialogs/optionsdialog.cpp
+++ b/dialogs/optionsdialog.cpp
@@ -1,738 +1,674 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QCompleter>
#include <QDate>
#include <QDesktopServices>
#include <QDesktopWidget>
#include <QDirModel>
#include <QFileDialog>
#include <QKeyEvent>
#include <QMessageBox>
#include <QProcess>
#include <QSettings>
#include <QTimer>
#include <QUrl>
-#include <QDebug>
-
-#ifdef Q_OS_WIN
+#ifdef Q_OS_WIN
#include <windows.h>
#endif
#include "optionsdialog.h"
#include "namingdialog.h"
#include "historydialog.h"
#include "../tools/os.h"
#include "../tools/screenshot.h"
#include "../tools/screenshotmanager.h"
#include "../updater/updater.h"
OptionsDialog::OptionsDialog(QWidget *parent) :
QDialog(parent)
{
ui.setupUi(this);
setModal(true);
#if defined(Q_WS_X11)
// KDE-specific style tweaks.
if (qApp->style()->objectName() == "oxygen") {
ui.browsePushButton->setMaximumWidth(30);
ui.namingOptionsButton->setMaximumWidth(30);
ui.fileGroupBox->setFlat(false);
ui.startupGroupBox->setFlat(false);
ui.capturesGroupBox->setFlat(false);
ui.controlGroupBox->setFlat(false);
ui.interfaceGroupBox->setFlat(false);
ui.screenshotsGroupBox->setFlat(false);
ui.previewGroupBox->setFlat(false);
ui.updaterGroupBox->setFlat(false);
ui.historyGroupBox->setFlat(false);
ui.clipboardGroupBox->setFlat(false);
ui.optionsTab->layout()->setContentsMargins(0, 0, 6, 0);
ui.aboutTab->layout()->setMargin(8);
}
#endif
QTimer::singleShot(0, this, SLOT(init()));
QTimer::singleShot(1, this, SLOT(loadSettings()));
}
void OptionsDialog::accepted()
{
if (hotkeyCollision()) {
QMessageBox::critical(this, tr("Hotkey conflict"), tr("You have assigned the same hotkeys to more than one action."));
return;
}
if (ui.prefixLineEdit->text().contains(QRegExp("[?:\\\\/*\"<>|]"))) {
QMessageBox::critical(this, tr("Filename character error"), tr("The filename can't contain any of the following characters: ? : \\ / * \" < > |"));
return;
}
if (!ui.fileGroupBox->isChecked() && !ui.clipboardCheckBox->isChecked()) {
QMessageBox::critical(this, tr("Final Destination"), tr("You can't take screenshots unless you enable either file saving or the clipboard."));
return;
}
saveSettings();
accept();
}
void OptionsDialog::checkUpdatesNow()
{
Updater updater;
updater.checkWithFeedback();
}
-void OptionsDialog::languageChange(QString language)
-{
- os::translate(language);
-}
-
void OptionsDialog::loadSettings()
{
settings()->sync();
- os::translate(settings()->value("options/language").toString()); // Why? Don't ask me, I'm just the programmer.
-
setUpdatesEnabled(false);
if (!settings()->contains("file/format")) {
// If there are no settings, get rid of the cancel button so that the user is forced to save them
ui.buttonBox->clear();
ui.buttonBox->addButton(QDialogButtonBox::Ok);
}
ui.startupCheckBox->toggle();
ui.trayCheckBox->toggle();
ui.previewAutocloseCheckBox->toggle();
QString targetDefault;
if (ScreenshotManager::instance()->portableMode()) {
targetDefault = tr("Screenshots");
}
else {
targetDefault = os::getDocumentsPath() + QDir::separator() + tr("Screenshots");
}
settings()->beginGroup("file");
ui.formatComboBox->setCurrentIndex(settings()->value("format", 1).toInt());
ui.prefixLineEdit->setText(settings()->value("prefix", tr("screenshot.")).toString());
ui.namingComboBox->setCurrentIndex(settings()->value("naming", 0).toInt());
ui.targetLineEdit->setText(settings()->value("target", targetDefault).toString());
ui.fileGroupBox->setChecked(settings()->value("enabled", true).toBool());
settings()->endGroup();
settings()->beginGroup("options");
ui.startupCheckBox->setChecked(settings()->value("startup", false).toBool());
ui.startupHideCheckBox->setChecked(settings()->value("startupHide", true).toBool());
ui.hideCheckBox->setChecked(settings()->value("hide", true).toBool());
ui.delaySpinBox->setValue(settings()->value("delay", 0).toInt());
flipToggled(settings()->value("flip", false).toBool());
ui.trayCheckBox->setChecked(settings()->value("tray", true).toBool());
ui.messageCheckBox->setChecked(settings()->value("message", true).toBool());
ui.qualitySlider->setValue(settings()->value("quality", 100).toInt());
ui.playSoundCheckBox->setChecked(settings()->value("playSound", false).toBool());
ui.updaterCheckBox->setChecked(!settings()->value("disableUpdater", false).toBool());
ui.magnifyCheckBox->setChecked(settings()->value("magnify", false).toBool());
ui.cursorCheckBox->setChecked(settings()->value("cursor", true).toBool());
ui.saveAsCheckBox->setChecked(settings()->value("saveAs", false).toBool());
ui.previewGroupBox->setChecked(settings()->value("preview", false).toBool());
ui.previewSizeSpinBox->setValue(settings()->value("previewSize", 300).toInt());
ui.previewPositionComboBox->setCurrentIndex(settings()->value("previewPosition", 3).toInt());
ui.previewAutocloseCheckBox->setChecked(settings()->value("previewAutoclose", false).toBool());
ui.previewAutocloseTimeSpinBox->setValue(settings()->value("previewAutocloseTime", 15).toInt());
ui.previewAutocloseActionComboBox->setCurrentIndex(settings()->value("previewAutocloseAction", 0).toInt());
ui.previewDefaultActionComboBox->setCurrentIndex(settings()->value("previewDefaultAction", 0).toInt());
ui.areaAutocloseCheckBox->setChecked(settings()->value("areaAutoclose", false).toBool());
// History mode is neat for normal operation but I'll keep it disabled by default on portable mode.
ui.historyCheckBox->setChecked(settings()->value("history", (ScreenshotManager::instance()->portableMode()) ? false : true).toBool());
// Advanced
ui.clipboardCheckBox->setChecked(settings()->value("clipboard", true).toBool());
ui.imgurClipboardCheckBox->setChecked(settings()->value("imgurClipboard", false).toBool());
ui.optiPngCheckBox->setChecked(settings()->value("optipng", true).toBool());
ui.closeHideCheckBox->setChecked(settings()->value("closeHide", true).toBool());
ui.currentMonitorCheckBox->setChecked(settings()->value("currentMonitor", false).toBool());
ui.replaceCheckBox->setChecked(settings()->value("replace", false).toBool());
ui.uploadCheckBox->setChecked(settings()->value("uploadAuto", false).toBool());
+ ui.uploadDirectLinkCheckBox->setChecked(settings()->value("uploadDirectLink", false).toBool());
#ifdef Q_OS_WIN
if (!QFile::exists(qApp->applicationDirPath() + QDir::separator() + "optipng.exe")) {
ui.optiPngCheckBox->setEnabled(false);
ui.optiPngLabel->setText("optipng.exe not found");
}
#elif defined(Q_WS_X11)
if (!QProcess::startDetached("optipng")) {
ui.optiPngCheckBox->setChecked(false);
ui.optiPngCheckBox->setEnabled(false);
ui.optiPngLabel->setText(tr("Install 'OptiPNG'"));
}
//TODO: Sound cue support on Linux
ui.playSoundCheckBox->setVisible(false);
ui.playSoundCheckBox->setChecked(false);
//TODO: Cursor support on X11
ui.cursorCheckBox->setVisible(false);
ui.cursorCheckBox->setChecked(false);
#endif
-
- //TODO: Must replace with not-stupid system
- QString lang = settings()->value("language").toString();
- int index = ui.languageComboBox->findText(lang);
-
- if (index == -1)
- index = ui.languageComboBox->findText("English");
-
- ui.languageComboBox->setCurrentIndex(index);
-
settings()->endGroup();
settings()->beginGroup("actions");
// This toggle is for the first run
ui.screenCheckBox->toggle();
ui.areaCheckBox->toggle();
ui.windowCheckBox->toggle();
ui.windowPickerCheckBox->toggle();
ui.openCheckBox->toggle();
ui.directoryCheckBox->toggle();
settings()->beginGroup("screen");
ui.screenCheckBox->setChecked(settings()->value("enabled", true).toBool());
ui.screenHotkeyWidget->setHotkey(settings()->value("hotkey", "Print").toString());
settings()->endGroup();
settings()->beginGroup("area");
ui.areaCheckBox->setChecked(settings()->value("enabled").toBool());
ui.areaHotkeyWidget->setHotkey(settings()->value("hotkey", "Ctrl+Print").toString());
settings()->endGroup();
settings()->beginGroup("window");
ui.windowCheckBox->setChecked(settings()->value("enabled").toBool());
ui.windowHotkeyWidget->setHotkey(settings()->value("hotkey", "Alt+Print").toString());
settings()->endGroup();
settings()->beginGroup("windowPicker");
ui.windowPickerCheckBox->setChecked(settings()->value("enabled").toBool());
ui.windowPickerHotkeyWidget->setHotkey(settings()->value("hotkey", "Ctrl+Alt+Print").toString());
settings()->endGroup();
settings()->beginGroup("open");
ui.openCheckBox->setChecked(settings()->value("enabled").toBool());
ui.openHotkeyWidget->setHotkey(settings()->value("hotkey", "Ctrl+PgUp").toString());
settings()->endGroup();
settings()->beginGroup("directory");
ui.directoryCheckBox->setChecked(settings()->value("enabled").toBool());
ui.directoryHotkeyWidget->setHotkey(settings()->value("hotkey", "Ctrl+PgDown").toString());
settings()->endGroup();
settings()->endGroup();
QTimer::singleShot(0, this, SLOT(updatePreview()));
setEnabled(true);
setUpdatesEnabled(true);
}
void OptionsDialog::openUrl(QString url)
{
if (url == "#aboutqt") {
qApp->aboutQt();
}
else {
QDesktopServices::openUrl(QUrl(url));
}
}
-void OptionsDialog::rejected()
-{
- languageChange(settings()->value("options/language").toString()); // Revert language to default.
-}
-
void OptionsDialog::saveSettings()
{
settings()->beginGroup("file");
settings()->setValue("format", ui.formatComboBox->currentIndex());
settings()->setValue("prefix", ui.prefixLineEdit->text());
settings()->setValue("naming", ui.namingComboBox->currentIndex());
settings()->setValue("target", ui.targetLineEdit->text());
settings()->setValue("enabled", ui.fileGroupBox->isChecked());
settings()->endGroup();
settings()->beginGroup("options");
settings()->setValue("startup", ui.startupCheckBox->isChecked());
settings()->setValue("startupHide", ui.startupHideCheckBox->isChecked());
settings()->setValue("hide", ui.hideCheckBox->isChecked());
settings()->setValue("delay", ui.delaySpinBox->value());
settings()->setValue("tray", ui.trayCheckBox->isChecked());
settings()->setValue("message", ui.messageCheckBox->isChecked());
settings()->setValue("quality", ui.qualitySlider->value());
settings()->setValue("playSound", ui.playSoundCheckBox->isChecked());
- // We save the explicit string because addition/removal of language files can cause it to change
- settings()->setValue("language", ui.languageComboBox->currentText());
// This settings is inverted because the first iteration of the Updater did not have a settings but instead relied on the messagebox choice of the user.
settings()->setValue("disableUpdater", !ui.updaterCheckBox->isChecked());
settings()->setValue("magnify", ui.magnifyCheckBox->isChecked());
settings()->setValue("cursor", ui.cursorCheckBox->isChecked());
settings()->setValue("saveAs", ui.saveAsCheckBox->isChecked());
settings()->setValue("preview", ui.previewGroupBox->isChecked());
settings()->setValue("previewSize", ui.previewSizeSpinBox->value());
settings()->setValue("previewPosition", ui.previewPositionComboBox->currentIndex());
settings()->setValue("previewAutoclose", ui.previewAutocloseCheckBox->isChecked());
settings()->setValue("previewAutocloseTime", ui.previewAutocloseTimeSpinBox->value());
settings()->setValue("previewAutocloseAction", ui.previewAutocloseActionComboBox->currentIndex());
settings()->setValue("previewDefaultAction", ui.previewDefaultActionComboBox->currentIndex());
settings()->setValue("areaAutoclose", ui.areaAutocloseCheckBox->isChecked());
settings()->setValue("history", ui.historyCheckBox->isChecked());
// Advanced
settings()->setValue("closeHide", ui.closeHideCheckBox->isChecked());
settings()->setValue("clipboard", ui.clipboardCheckBox->isChecked());
settings()->setValue("imgurClipboard", ui.imgurClipboardCheckBox->isChecked());
settings()->setValue("optipng", ui.optiPngCheckBox->isChecked());
settings()->setValue("currentMonitor", ui.currentMonitorCheckBox->isChecked());
settings()->setValue("replace", ui.replaceCheckBox->isChecked());
//Upload
settings()->setValue("uploadAuto", ui.uploadCheckBox->isChecked());
+ settings()->setValue("uploadDirectLink", ui.uploadDirectLinkCheckBox->isChecked());
+
settings()->endGroup();
settings()->beginGroup("actions");
settings()->beginGroup("screen");
settings()->setValue("enabled", ui.screenCheckBox->isChecked());
settings()->setValue("hotkey", ui.screenHotkeyWidget->hotkey());
settings()->endGroup();
settings()->beginGroup("area");
settings()->setValue("enabled", ui.areaCheckBox->isChecked());
settings()->setValue("hotkey", ui.areaHotkeyWidget->hotkey());
settings()->endGroup();
settings()->beginGroup("window");
settings()->setValue("enabled", ui.windowCheckBox->isChecked());
settings()->setValue("hotkey", ui.windowHotkeyWidget->hotkey());
settings()->endGroup();
settings()->beginGroup("windowPicker");
settings()->setValue("enabled", ui.windowPickerCheckBox->isChecked());
settings()->setValue("hotkey", ui.windowPickerHotkeyWidget->hotkey());
settings()->endGroup();
settings()->beginGroup("open");
settings()->setValue("enabled", ui.openCheckBox->isChecked());
settings()->setValue("hotkey", ui.openHotkeyWidget->hotkey());
settings()->endGroup();
settings()->beginGroup("directory");
settings()->setValue("enabled", ui.directoryCheckBox->isChecked());
settings()->setValue("hotkey", ui.directoryHotkeyWidget->hotkey());
settings()->endGroup();
settings()->endGroup();
}
void OptionsDialog::updatePreview()
{
Screenshot::NamingOptions options;
options.naming = (Screenshot::Naming) ui.namingComboBox->currentIndex();
options.flip = settings()->value("options/flip", false).toBool();
options.leadingZeros = settings()->value("options/naming/leadingZeros", 0).toInt();
options.dateFormat = settings()->value("options/naming/dateFormat", "yyyy-MM-dd").toString();
if (ui.fileGroupBox->isChecked()) // Only change the naming button when file options are enabled.
ui.namingOptionsButton->setDisabled((options.naming == Screenshot::Empty));
QString preview = Screenshot::getName(options,
ui.prefixLineEdit->text(),
QDir(ui.targetLineEdit->text()));
preview = QString("%1.%2").arg(preview).arg(ui.formatComboBox->currentText().toLower());
if (preview.length() >= 40) {
preview.truncate(37);
preview.append("...");
}
ui.previewLabel->setText(preview);
}
void OptionsDialog::viewHistory()
{
HistoryDialog historyDialog(this);
historyDialog.exec();
}
//
bool OptionsDialog::event(QEvent* event)
{
- if (event->type() == QEvent::LanguageChange) {
-
- // ComboBoxes revert to the first index when translated:
- int naming = ui.namingComboBox->currentIndex();
- int format = ui.formatComboBox->currentIndex();
- int previewPosition = ui.previewPositionComboBox->currentIndex();
- int previewAutoclose = ui.previewAutocloseActionComboBox->currentIndex();
- int previewDefault = ui.previewDefaultActionComboBox->currentIndex();
-
- ui.retranslateUi(this);
-
- // Restoring comboboxes
- ui.namingComboBox->setCurrentIndex(naming);
- ui.formatComboBox->setCurrentIndex(format);
- ui.previewPositionComboBox->setCurrentIndex(previewPosition);
- ui.previewAutocloseActionComboBox->setCurrentIndex(previewAutoclose);
- ui.previewDefaultActionComboBox->setCurrentIndex(previewDefault);
-
- updatePreview();
- resize(minimumSizeHint());
- }
- else if (event->type() == QEvent::Close || event->type() == QEvent::Hide) {
+ if (event->type() == QEvent::Close || event->type() == QEvent::Hide) {
settings()->setValue("geometry/optionsDialog", saveGeometry());
if (!settings()->contains("file/format")) {
// I'm afraid I can't let you do that, Dave.
event->ignore();
return false;
}
}
else if (event->type() == QEvent::Show)
{
restoreGeometry(settings()->value("geometry/optionsDialog").toByteArray());
}
return QDialog::event(event);
}
#ifdef Q_OS_WIN
// Qt does not send the print screen key as a regular QKeyPress event, so we must use the Windows API
bool OptionsDialog::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
if (eventType == "windows_generic_MSG") {
MSG* m = static_cast<MSG*>(message);
if ((m->message == WM_KEYUP || m->message == WM_SYSKEYUP)
&& m->wParam == VK_SNAPSHOT) {
qApp->postEvent(qApp->focusWidget(), new QKeyEvent(QEvent::KeyPress, Qt::Key_Print, qApp->queryKeyboardModifiers()));
}
}
return QDialog::nativeEvent(eventType, message, result);
}
#endif
//
void OptionsDialog::browse()
{
QString fileName = QFileDialog::getExistingDirectory(this,
tr("Select where you want to save the screenshots"),
ui.targetLineEdit->text());
if (fileName.isEmpty())
return;
ui.targetLineEdit->setText(fileName);
+ updatePreview();
}
void OptionsDialog::dialogButtonClicked(QAbstractButton *button)
{
if (ui.buttonBox->buttonRole(button) == QDialogButtonBox::ResetRole) {
QMessageBox msgBox;
msgBox.setWindowTitle(tr("Lightscreen - Restore Default Options"));
msgBox.setText(tr("Restoring the default options will cause you to lose all of your current configuration."));
msgBox.setIcon(QMessageBox::Warning);
QPushButton *restoreButton = msgBox.addButton(tr("Restore"), QMessageBox::ActionRole);
QPushButton *dontRestoreButton = msgBox.addButton(tr("Don't Restore"), QMessageBox::ActionRole);
msgBox.setDefaultButton(dontRestoreButton);
msgBox.exec();
Q_UNUSED(restoreButton)
if (msgBox.clickedButton() == dontRestoreButton)
return;
- QString language = settings()->value("options/language").toString(); // Only mantain language.
-
settings()->clear();
- settings()->setValue("options/language", language);
-
loadSettings();
}
}
void OptionsDialog::flipToggled(bool checked)
{
setUpdatesEnabled(false);
ui.filenameLayout->removeWidget(ui.prefixLineEdit);
ui.filenameLayout->removeWidget(ui.namingComboBox);
if (checked) {
ui.filenameLayout->addWidget(ui.namingComboBox);
ui.filenameLayout->addWidget(ui.prefixLineEdit);
}
else {
ui.filenameLayout->addWidget(ui.prefixLineEdit);
ui.filenameLayout->addWidget(ui.namingComboBox);
}
if (ui.prefixLineEdit->text() == tr("screenshot.")
&& checked)
ui.prefixLineEdit->setText(tr(".screenshot"));
if (ui.prefixLineEdit->text() == tr(".screenshot")
&& !checked)
ui.prefixLineEdit->setText(tr("screenshot."));
setUpdatesEnabled(true); // Avoids flicker
}
void OptionsDialog::init()
{
// Make the scroll area share the Tab Widget background color
QPalette optionsPalette = ui.optionsScrollArea->palette();
optionsPalette.setColor(QPalette::Window, ui.tabWidget->palette().color(QPalette::Base));
ui.optionsScrollArea->setPalette(optionsPalette);
ui.browsePushButton->setIcon(os::icon("folder"));
ui.namingOptionsButton->setIcon(os::icon("configure"));
ui.buttonBox->addButton(new QPushButton(" " + tr("Restore Defaults") + " ", this), QDialogButtonBox::ResetRole);
// Set up the autocomplete for the directory.
QCompleter *completer = new QCompleter(this);
completer->setModel(new QDirModel(QStringList(), QDir::Dirs, QDir::Name, completer));
ui.targetLineEdit->setCompleter(completer);
// HotkeyWidget icons.
ui.screenHotkeyWidget->setIcon (os::icon("screen"));
ui.windowHotkeyWidget->setIcon (os::icon("window"));
ui.windowPickerHotkeyWidget->setIcon(os::icon("pickWindow"));
ui.areaHotkeyWidget->setIcon (os::icon("area"));
ui.openHotkeyWidget->setIcon (QIcon(":/icons/lightscreen.small"));
ui.directoryHotkeyWidget->setIcon (os::icon("folder"));
// Version
ui.versionLabel->setText(tr("Version %1").arg(qApp->applicationVersion()));
setEnabled(false); // We disable the widgets to prevent any user interaction until the settings have loaded.
//
// Connections
//
connect(ui.buttonBox , SIGNAL(clicked(QAbstractButton*)), this , SLOT(dialogButtonClicked(QAbstractButton*)));
connect(ui.buttonBox , SIGNAL(accepted()) , this , SLOT(accepted()));
- connect(ui.buttonBox , SIGNAL(rejected()) , this , SLOT(rejected()));
connect(ui.namingOptionsButton , SIGNAL(clicked()) , this , SLOT(namingOptions()));
connect(ui.prefixLineEdit , SIGNAL(textEdited(QString)) , this , SLOT(updatePreview()));
connect(ui.formatComboBox , SIGNAL(currentIndexChanged(int)) , this , SLOT(updatePreview()));
connect(ui.namingComboBox , SIGNAL(currentIndexChanged(int)) , this , SLOT(updatePreview()));
connect(ui.browsePushButton , SIGNAL(clicked()) , this , SLOT(browse()));
connect(ui.checkUpdatesPushButton , SIGNAL(clicked()) , this , SLOT(checkUpdatesNow()));
connect(ui.historyPushButton , SIGNAL(clicked()) , this , SLOT(viewHistory()));
connect(ui.screenCheckBox , SIGNAL(toggled(bool)), ui.screenHotkeyWidget , SLOT(setEnabled(bool)));
connect(ui.areaCheckBox , SIGNAL(toggled(bool)), ui.areaHotkeyWidget , SLOT(setEnabled(bool)));
connect(ui.windowCheckBox , SIGNAL(toggled(bool)), ui.windowHotkeyWidget , SLOT(setEnabled(bool)));
connect(ui.windowPickerCheckBox, SIGNAL(toggled(bool)), ui.windowPickerHotkeyWidget, SLOT(setEnabled(bool)));
connect(ui.openCheckBox , SIGNAL(toggled(bool)), ui.openHotkeyWidget , SLOT(setEnabled(bool)));
connect(ui.directoryCheckBox , SIGNAL(toggled(bool)), ui.directoryHotkeyWidget, SLOT(setEnabled(bool)));
// "Save as" disables the file target input field.
connect(ui.saveAsCheckBox , SIGNAL(toggled(bool)), ui.targetLineEdit , SLOT(setDisabled(bool)));
connect(ui.saveAsCheckBox , SIGNAL(toggled(bool)), ui.browsePushButton , SLOT(setDisabled(bool)));
connect(ui.saveAsCheckBox , SIGNAL(toggled(bool)), ui.directoryLabel , SLOT(setDisabled(bool)));
connect(ui.startupCheckBox , SIGNAL(toggled(bool)), ui.startupHideCheckBox , SLOT(setEnabled(bool)));
connect(ui.qualitySlider , SIGNAL(valueChanged(int)), ui.qualityValueLabel, SLOT(setNum(int)));
connect(ui.trayCheckBox , SIGNAL(toggled(bool)), ui.messageCheckBox , SLOT(setEnabled(bool)));
// Auto-upload disables the default action button in the previews.
connect(ui.uploadCheckBox , SIGNAL(toggled(bool)), ui.previewDefaultActionLabel , SLOT(setDisabled(bool)));
connect(ui.uploadCheckBox , SIGNAL(toggled(bool)), ui.previewDefaultActionComboBox, SLOT(setDisabled(bool)));
connect(ui.directoryCheckBox , SIGNAL(toggled(bool)), ui.directoryHotkeyWidget, SLOT(setEnabled(bool)));
- connect(ui.moreInformationLabel, SIGNAL(linkActivated(QString)) , this, SLOT(openUrl(QString)));
-
- connect(ui.languageComboBox , SIGNAL(currentIndexChanged(QString)), this, SLOT(languageChange(QString)));
-
connect(ui.mainLabel , SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));
connect(ui.licenseAboutLabel, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));
connect(ui.linksLabel, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));
-
- //
- // Languages
- //
-
- QDir languages(":/translations");
-
- ui.languageComboBox->addItem("English");
-
- foreach (QString language, languages.entryList()) {
- ui.languageComboBox->addItem(language);
- }
}
void OptionsDialog::namingOptions()
{
NamingDialog namingDialog((Screenshot::Naming) ui.namingComboBox->currentIndex());
namingDialog.exec();
flipToggled(settings()->value("options/flip").toBool());
updatePreview();
}
//
bool OptionsDialog::hotkeyCollision()
{
// Check for hotkey collision (there's probably a better way to do this...=)
if (ui.screenCheckBox->isChecked()) {
if (ui.screenHotkeyWidget->hotkey() == ui.areaHotkeyWidget->hotkey()
&& ui.areaCheckBox->isChecked())
return true;
if (ui.screenHotkeyWidget->hotkey() == ui.windowHotkeyWidget->hotkey()
&& ui.windowCheckBox->isChecked())
return true;
if (ui.screenHotkeyWidget->hotkey() == ui.windowPickerHotkeyWidget->hotkey()
&& ui.windowPickerCheckBox->isChecked())
return true;
if (ui.screenHotkeyWidget->hotkey() == ui.openHotkeyWidget->hotkey()
&& ui.openCheckBox->isChecked())
return true;
if (ui.screenHotkeyWidget->hotkey() == ui.directoryHotkeyWidget->hotkey()
&& ui.directoryCheckBox->isChecked())
return true;
}
if (ui.areaCheckBox->isChecked()) {
if (ui.areaHotkeyWidget->hotkey() == ui.screenHotkeyWidget->hotkey()
&& ui.screenCheckBox->isChecked())
return true;
if (ui.areaHotkeyWidget->hotkey() == ui.windowHotkeyWidget->hotkey()
&& ui.windowCheckBox->isChecked())
return true;
if (ui.areaHotkeyWidget->hotkey() == ui.windowPickerHotkeyWidget->hotkey()
&& ui.windowPickerCheckBox->isChecked())
return true;
if (ui.areaHotkeyWidget->hotkey() == ui.openHotkeyWidget->hotkey()
&& ui.openCheckBox->isChecked())
return true;
if (ui.areaHotkeyWidget->hotkey() == ui.directoryHotkeyWidget->hotkey()
&& ui.directoryCheckBox->isChecked())
return true;
}
if (ui.windowCheckBox->isChecked()) {
if (ui.windowHotkeyWidget->hotkey() == ui.screenHotkeyWidget->hotkey()
&& ui.screenCheckBox->isChecked())
return true;
if (ui.windowHotkeyWidget->hotkey() == ui.areaHotkeyWidget->hotkey()
&& ui.areaCheckBox->isChecked())
return true;
if (ui.windowHotkeyWidget->hotkey() == ui.windowPickerHotkeyWidget->hotkey()
&& ui.windowPickerCheckBox->isChecked())
return true;
if (ui.windowHotkeyWidget->hotkey() == ui.openHotkeyWidget->hotkey()
&& ui.openCheckBox->isChecked())
return true;
if (ui.windowHotkeyWidget->hotkey() == ui.directoryHotkeyWidget->hotkey()
&& ui.directoryCheckBox->isChecked())
return true;
}
if (ui.openCheckBox->isChecked()) {
if (ui.openHotkeyWidget->hotkey() == ui.screenHotkeyWidget->hotkey()
&& ui.screenCheckBox->isChecked())
return true;
if (ui.openHotkeyWidget->hotkey() == ui.areaHotkeyWidget->hotkey()
&& ui.areaCheckBox->isChecked())
return true;
if (ui.openHotkeyWidget->hotkey() == ui.windowPickerHotkeyWidget->hotkey()
&& ui.windowPickerCheckBox->isChecked())
return true;
if (ui.openHotkeyWidget->hotkey() == ui.windowHotkeyWidget->hotkey()
&& ui.windowCheckBox->isChecked())
return true;
if (ui.openHotkeyWidget->hotkey() == ui.directoryHotkeyWidget->hotkey()
&& ui.directoryCheckBox->isChecked())
return true;
}
if (ui.directoryCheckBox->isChecked()) {
if (ui.directoryHotkeyWidget->hotkey() == ui.screenHotkeyWidget->hotkey()
&& ui.screenCheckBox->isChecked())
return true;
if (ui.directoryHotkeyWidget->hotkey() == ui.areaHotkeyWidget->hotkey()
&& ui.areaCheckBox->isChecked())
return true;
if (ui.directoryHotkeyWidget->hotkey() == ui.windowPickerHotkeyWidget->hotkey()
&& ui.windowPickerCheckBox->isChecked())
return true;
if (ui.directoryHotkeyWidget->hotkey() == ui.windowHotkeyWidget->hotkey()
&& ui.windowCheckBox->isChecked())
return true;
if (ui.directoryHotkeyWidget->hotkey() == ui.openHotkeyWidget->hotkey()
&& ui.openCheckBox->isChecked())
return true;
}
return false;
}
QSettings *OptionsDialog::settings() const
{
return ScreenshotManager::instance()->settings();
}
diff --git a/dialogs/optionsdialog.h b/dialogs/optionsdialog.h
index 06c2955..1ea659e 100644
--- a/dialogs/optionsdialog.h
+++ b/dialogs/optionsdialog.h
@@ -1,68 +1,66 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef OPTIONSDIALOG_H
#define OPTIONSDIALOG_H
#include <QDialog>
#include "../updater/updater.h"
#include "ui_optionsdialog.h"
class QSettings;
class QAbstractButton;
class OptionsDialog : public QDialog
{
Q_OBJECT
public:
OptionsDialog(QWidget *parent = 0);
public slots:
void accepted();
void checkUpdatesNow();
- void languageChange(QString language);
void loadSettings();
void openUrl(QString url);
- void rejected();
void saveSettings();
void updatePreview();
void viewHistory();
protected:
bool event(QEvent *event);
#ifdef Q_OS_WIN
bool nativeEvent(const QByteArray &eventType, void *message, long *result);
#endif
private slots:
void browse();
void dialogButtonClicked(QAbstractButton *button);
void flipToggled(bool checked);
void init();
void namingOptions();
private:
bool hotkeyCollision();
QSettings *settings() const;
private:
Ui::OptionsDialog ui;
};
#endif // OPTIONSDIALOG_H
diff --git a/dialogs/optionsdialog.ui b/dialogs/optionsdialog.ui
index 956049b..1c1de6d 100644
--- a/dialogs/optionsdialog.ui
+++ b/dialogs/optionsdialog.ui
@@ -1,1445 +1,1411 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>OptionsDialog</class>
<widget class="QDialog" name="OptionsDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>393</width>
<height>314</height>
</rect>
</property>
<property name="windowTitle">
<string>Options - Lightscreen</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_4">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="generalTab">
<attribute name="title">
<string>General</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout">
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QGroupBox" name="fileGroupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>File</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="fileGroupBoxLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
- </property>
+ </property>
<property name="verticalSpacing">
<number>4</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="directoryLabel">
<property name="text">
<string>&amp;Directory:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>targetLineEdit</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="targetLineEdit">
<property name="styleSheet">
<string notr="true"/>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="browsePushButton">
<property name="maximumSize">
<size>
<width>60</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="filenameLabel">
<property name="toolTip">
<string>The prefix for the screenshot file</string>
</property>
<property name="text">
<string>&amp;Filename:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>prefixLineEdit</cstring>
</property>
</widget>
</item>
<item row="1" column="1">
<layout class="QHBoxLayout" name="filenameLayout">
<property name="spacing">
<number>3</number>
</property>
<item>
<widget class="QLineEdit" name="prefixLineEdit">
<property name="whatsThis">
<string>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="namingComboBox">
<property name="whatsThis">
<string>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
</string>
</property>
<item>
<property name="text">
<string>(number)</string>
</property>
</item>
<item>
<property name="text">
<string>(date)</string>
</property>
</item>
<item>
<property name="text">
<string>(timestamp)</string>
</property>
</item>
<item>
<property name="text">
<string>(none)</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="namingOptionsButton">
<property name="autoDefault">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="formatLabel">
<property name="toolTip">
<string>The file format for the screenshot</string>
</property>
<property name="text">
<string>F&amp;ormat:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>formatComboBox</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="formatComboBox">
<item>
<property name="text">
<string notr="true">PNG</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">JPG</string>
</property>
</item>
<item>
<property name="text">
<string notr="true">BMP</string>
</property>
</item>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="qualityLabel">
<property name="text">
<string>&amp;Quality:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>qualitySlider</cstring>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QSlider" name="qualitySlider">
<property name="whatsThis">
<string>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
Quality is related to file size and of course to readability and overall quality of the image.</string>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="pageStep">
<number>5</number>
</property>
<property name="value">
<number>100</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="4" column="2">
<layout class="QHBoxLayout" name="qualityLayout">
<property name="spacing">
<number>0</number>
</property>
<property name="sizeConstraint">
<enum>QLayout::SetMinimumSize</enum>
</property>
<item>
<widget class="QLabel" name="qualityValueLabel">
<property name="font">
<font>
<pointsize>8</pointsize>
</font>
</property>
<property name="text">
<string notr="true">100</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="qualityPercentLabel">
<property name="font">
<font>
<pointsize>7</pointsize>
</font>
</property>
<property name="text">
<string notr="true">%</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="0">
<widget class="QLabel" name="previewTextLabel">
<property name="text">
<string>&lt;u&gt;Preview&lt;/u&gt;:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="previewLabel">
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QGroupBox" name="startupGroupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>System Startup</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3">
<item>
<widget class="QCheckBox" name="startupCheckBox">
<property name="whatsThis">
<string/>
</property>
<property name="text">
<string>&amp;Run Lightscreen at system startup.</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="startupHideLayout">
<item>
<spacer name="startupHideSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>13</width>
<height>15</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QCheckBox" name="startupHideCheckBox">
<property name="whatsThis">
<string/>
</property>
<property name="text">
<string>H&amp;ide the main window.</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="hotkeyTab">
<attribute name="title">
<string>Hotkeys</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QGroupBox" name="capturesGroupBox">
<property name="title">
<string>Captures</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<property name="spacing">
<number>4</number>
</property>
<item row="0" column="0">
<widget class="QCheckBox" name="screenCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&amp;Fullscreen</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="HotkeyWidget" name="screenHotkeyWidget">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="windowPickerCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Window &amp;Picker</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="HotkeyWidget" name="windowPickerHotkeyWidget"/>
</item>
<item row="2" column="1">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="windowCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Active &amp;Window</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="HotkeyWidget" name="windowHotkeyWidget"/>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="areaCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Screen &amp;Area</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="HotkeyWidget" name="areaHotkeyWidget"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="controlGroupBox">
<property name="title">
<string>Lightscreen Control</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<property name="spacing">
<number>4</number>
</property>
<item row="0" column="0">
<widget class="QCheckBox" name="openCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>&amp;Open the program window</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="HotkeyWidget" name="openHotkeyWidget"/>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="directoryCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Open the &amp;directory</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="HotkeyWidget" name="directoryHotkeyWidget"/>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="optionsTab">
<attribute name="title">
<string>Options</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_8">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
<widget class="QScrollArea" name="optionsScrollArea">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>375</width>
<height>0</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAlwaysOff</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="QWidget" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>358</width>
+<<<<<<< HEAD
<height>780</height>
+=======
+ <height>775</height>
+>>>>>>> master
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout_5">
<property name="spacing">
<number>4</number>
</property>
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
<widget class="QGroupBox" name="interfaceGroupBox">
<property name="title">
<string>Interface</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QCheckBox" name="trayCheckBox">
<property name="whatsThis">
<string/>
</property>
<property name="text">
<string>Sho&amp;w a system tray icon.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="closeHideCheckBox">
<property name="text">
<string>C&amp;losing hides the main window.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="hideCheckBox">
<property name="text">
<string>&amp;Hide Lightscreen while taking a screenshot.</string>
</property>
</widget>
</item>
<item>
<layout class="QGridLayout" name="notifyLayout">
<property name="topMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number>
</property>
<item row="1" column="1">
<widget class="QCheckBox" name="messageCheckBox">
<property name="whatsThis">
<string>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</string>
</property>
<property name="text">
<string>Tray icon Popup</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="playSoundCheckBox">
<property name="text">
<string>&amp;Sound cue</string>
</property>
</widget>
</item>
<item row="1" column="0">
<spacer name="horizontalSpacer_9">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>15</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="2">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="notifyLabel">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
<underline>true</underline>
</font>
</property>
<property name="text">
<string>&amp;Notify with:</string>
</property>
<property name="buddy">
<cstring>messageCheckBox</cstring>
</property>
</widget>
</item>
</layout>
</item>
- <item>
- <layout class="QHBoxLayout" name="languageLayout">
- <item>
- <widget class="QLabel" name="languageLabel">
- <property name="text">
- <string>&amp;Language:</string>
- </property>
- <property name="buddy">
- <cstring>languageComboBox</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="languageComboBox">
- <property name="focusPolicy">
- <enum>Qt::NoFocus</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="moreInformationLabel">
- <property name="whatsThis">
- <string>Click here to go to the Lightscreen homepage to learn more about translations.</string>
- </property>
- <property name="text">
- <string>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="languageSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="previewGroupBox">
<property name="title">
<string>Screenshot Previews</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<property name="checked">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="previewSizeLabel">
<property name="text">
<string>Maximum Size:</string>
</property>
<property name="buddy">
<cstring>previewSizeSpinBox</cstring>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="previewSizeSpinBox">
<property name="buttonSymbols">
<enum>QAbstractSpinBox::PlusMinus</enum>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
</property>
<property name="suffix">
<string notr="true"> px</string>
</property>
<property name="minimum">
<number>200</number>
</property>
<property name="maximum">
<number>800</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>300</number>
</property>
</widget>
</item>
<item row="0" column="4" rowspan="4">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QLabel" name="previewPositionLabel">
<property name="text">
<string>Position:</string>
</property>
<property name="buddy">
<cstring>previewPositionComboBox</cstring>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<widget class="QComboBox" name="previewPositionComboBox">
<property name="currentIndex">
<number>3</number>
</property>
<item>
<property name="text">
<string>Top Left</string>
</property>
</item>
<item>
<property name="text">
<string>Top Right</string>
</property>
</item>
<item>
<property name="text">
<string>Bottom Left</string>
</property>
</item>
<item>
<property name="text">
<string>Bottom Right</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="previewAutocloseCheckBox">
<property name="text">
<string>Auto-close after</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="previewAutocloseTimeSpinBox">
<property name="suffix">
<string> seconds</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QLabel" name="andLabel">
<property name="minimumSize">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
<property name="text">
<string> and </string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="buddy">
<cstring>previewAutocloseActionComboBox</cstring>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QComboBox" name="previewAutocloseActionComboBox">
<property name="currentIndex">
<number>0</number>
</property>
<item>
<property name="text">
<string>save</string>
</property>
</item>
<item>
<property name="text">
<string>upload</string>
</property>
</item>
<item>
<property name="text">
<string>cancel</string>
</property>
</item>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="previewDefaultActionLabel">
<property name="text">
<string>Default action:</string>
</property>
<property name="buddy">
<cstring>previewDefaultActionComboBox</cstring>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="previewDefaultActionComboBox">
<item>
<property name="text">
<string>save</string>
</property>
</item>
<item>
<property name="text">
<string>upload</string>
</property>
</item>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="screenshotsGroupBox">
<property name="title">
<string>Screenshots</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_7">
<item>
<widget class="QCheckBox" name="saveAsCheckBox">
<property name="text">
<string>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="currentMonitorCheckBox">
<property name="text">
<string>&amp;Grab only the active monitor.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="cursorCheckBox">
<property name="text">
<string>Inc&amp;lude the cursor in the screenshot.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="magnifyCheckBox">
<property name="text">
<string>&amp;Magnify around the mouse in Area mode.</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="spacing">
<number>2</number>
</property>
<item>
<widget class="QCheckBox" name="optiPngCheckBox">
<property name="toolTip">
<string>Runs OptiPNG which reduces screenshot file size.</string>
</property>
<property name="text">
<string>O&amp;ptimize PNG screenshots.</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="optiPngLabel">
<property name="palette">
<palette>
<active>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>128</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</active>
<inactive>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>128</red>
<green>0</green>
<blue>0</blue>
</color>
</brush>
</colorrole>
</inactive>
<disabled>
<colorrole role="WindowText">
<brush brushstyle="SolidPattern">
<color alpha="255">
<red>141</red>
<green>138</green>
<blue>136</blue>
</color>
</brush>
</colorrole>
</disabled>
</palette>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_10">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="replaceCheckBox">
<property name="text">
<string>Replace screenshots when there's an existing file.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="areaAutocloseCheckBox">
<property name="text">
<string>Snap area screenshots automatically (no resizing).</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="uploadCheckBox">
<property name="text">
<string>Upload all my screenshots automatically.</string>
</property>
</widget>
</item>
+ <item>
+ <widget class="QCheckBox" name="uploadDirectLinkCheckBox">
+ <property name="text">
+ <string>Get the direct image link when uploading.</string>
+ </property>
+ </widget>
+ </item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QLabel" name="delayLabel">
<property name="text">
<string>D&amp;elay:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="buddy">
<cstring>delaySpinBox</cstring>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="delaySpinBox">
<property name="whatsThis">
<string>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</string>
</property>
<property name="specialValueText">
<string>none</string>
</property>
<property name="accelerated">
<bool>true</bool>
</property>
<property name="correctionMode">
<enum>QAbstractSpinBox::CorrectToNearestValue</enum>
</property>
<property name="suffix">
<string> seconds</string>
</property>
<property name="prefix">
<string/>
</property>
<property name="maximum">
<number>32767</number>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>114</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="clipboardGroupBox">
<property name="title">
<string>Clipboard</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QVBoxLayout" name="verticalLayout_10">
<item>
<widget class="QCheckBox" name="clipboardCheckBox">
<property name="text">
<string>&amp;Copy the screenshot to the clipboard.</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="imgurClipboardCheckBox">
<property name="text">
<string>After uploading, copy the imgur URL to the clipboard.</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="historyGroupBox">
<property name="title">
<string>History</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QHBoxLayout" name="historyLayout">
<item>
<widget class="QCheckBox" name="historyCheckBox">
<property name="text">
<string>Save my screenshot history.</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>95</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="historyPushButton">
<property name="text">
<string>View &amp;History</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="updaterGroupBox">
<property name="title">
<string>Updater</string>
</property>
<property name="flat">
<bool>true</bool>
</property>
<layout class="QHBoxLayout" name="updaterLayout">
<item>
<widget class="QCheckBox" name="updaterCheckBox">
<property name="text">
<string>Check for updates regularly.</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="checkUpdatesPushButton">
<property name="text">
<string>Chec&amp;k Now</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="aboutTab">
<attribute name="title">
<string>About</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_9">
<item>
<widget class="QLabel" name="mainLabel">
<property name="text">
<string>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="licenseAboutLabel">
<property name="text">
- <string>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</string>
+ <string>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.</string>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="versionLabel">
<property name="font">
<font>
<pointsize>12</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="linksLabel">
<property name="text">
- <string>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</string>
+ <string>&lt;a href=&quot;https://github.com/ckaiser/Lightscreen/&quot;&gt;GitHub page&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.com.ar/&quot;&gt;Lightscreen home page&lt;/a&gt;</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="textInteractionFlags">
<set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse</set>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>HotkeyWidget</class>
<extends>QPushButton</extends>
<header>../widgets/hotkeywidget.h</header>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>fileGroupBox</tabstop>
<tabstop>targetLineEdit</tabstop>
<tabstop>browsePushButton</tabstop>
<tabstop>prefixLineEdit</tabstop>
<tabstop>namingComboBox</tabstop>
<tabstop>namingOptionsButton</tabstop>
<tabstop>formatComboBox</tabstop>
<tabstop>qualitySlider</tabstop>
<tabstop>startupCheckBox</tabstop>
<tabstop>startupHideCheckBox</tabstop>
<tabstop>screenCheckBox</tabstop>
<tabstop>screenHotkeyWidget</tabstop>
<tabstop>areaCheckBox</tabstop>
<tabstop>areaHotkeyWidget</tabstop>
<tabstop>windowCheckBox</tabstop>
<tabstop>windowHotkeyWidget</tabstop>
<tabstop>windowPickerCheckBox</tabstop>
<tabstop>windowPickerHotkeyWidget</tabstop>
<tabstop>openCheckBox</tabstop>
<tabstop>openHotkeyWidget</tabstop>
<tabstop>directoryCheckBox</tabstop>
<tabstop>directoryHotkeyWidget</tabstop>
<tabstop>trayCheckBox</tabstop>
<tabstop>hideCheckBox</tabstop>
<tabstop>messageCheckBox</tabstop>
<tabstop>playSoundCheckBox</tabstop>
<tabstop>previewGroupBox</tabstop>
<tabstop>previewSizeSpinBox</tabstop>
<tabstop>previewPositionComboBox</tabstop>
<tabstop>previewAutocloseCheckBox</tabstop>
<tabstop>previewAutocloseTimeSpinBox</tabstop>
<tabstop>previewAutocloseActionComboBox</tabstop>
<tabstop>previewDefaultActionComboBox</tabstop>
<tabstop>saveAsCheckBox</tabstop>
<tabstop>currentMonitorCheckBox</tabstop>
<tabstop>cursorCheckBox</tabstop>
<tabstop>magnifyCheckBox</tabstop>
<tabstop>optiPngCheckBox</tabstop>
<tabstop>replaceCheckBox</tabstop>
<tabstop>areaAutocloseCheckBox</tabstop>
<tabstop>uploadCheckBox</tabstop>
<tabstop>delaySpinBox</tabstop>
<tabstop>historyCheckBox</tabstop>
<tabstop>historyPushButton</tabstop>
<tabstop>updaterCheckBox</tabstop>
<tabstop>checkUpdatesPushButton</tabstop>
<tabstop>buttonBox</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>OptionsDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>307</x>
<y>304</y>
</hint>
<hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
</hints>
</connection>
<connection>
<sender>previewAutocloseCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>previewAutocloseTimeSpinBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>118</x>
<y>511</y>
</hint>
<hint type="destinationlabel">
<x>210</x>
<y>529</y>
</hint>
</hints>
</connection>
<connection>
<sender>previewAutocloseCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>previewAutocloseActionComboBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>115</x>
<y>511</y>
</hint>
<hint type="destinationlabel">
<x>302</x>
<y>529</y>
</hint>
</hints>
</connection>
</connections>
</ui>
diff --git a/dialogs/previewdialog.cpp b/dialogs/previewdialog.cpp
index 7eaed8c..331d8ed 100644
--- a/dialogs/previewdialog.cpp
+++ b/dialogs/previewdialog.cpp
@@ -1,409 +1,408 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "previewdialog.h"
#include "../tools/screenshot.h"
#include "../tools/screenshotmanager.h"
#include "../tools/os.h"
#include <QApplication>
+#include <QDesktopServices>
#include <QDesktopWidget>
#include <QGraphicsDropShadowEffect>
#include <QHBoxLayout>
#include <QIcon>
#include <QLabel>
#include <QList>
#include <QMenu>
#include <QObject>
#include <QPalette>
#include <QPushButton>
#include <QSettings>
#include <QStackedLayout>
#include <QToolButton>
-#include <QDesktopServices>
#include <QUrl>
-#include <QDebug>
PreviewDialog::PreviewDialog(QWidget *parent) :
QDialog(parent), mAutoclose(0)
{
setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
setWindowTitle(tr("Screenshot Preview"));
QSettings *settings = ScreenshotManager::instance()->settings();
mSize = settings->value("options/previewSize", 300).toInt();
mPosition = settings->value("options/previewPosition", 3).toInt();
if (settings->value("options/previewAutoclose", false).toBool()) {
mAutoclose = settings->value("options/previewAutocloseTime").toInt();
mAutocloseReset = mAutoclose;
mAutocloseAction = settings->value("options/previewAutocloseAction").toInt();
}
QHBoxLayout *l = new QHBoxLayout;
mStack = new QStackedLayout;
connect(mStack, SIGNAL(currentChanged(int)), this, SLOT(indexChanged(int)));
mPrevButton = new QPushButton(os::icon("arrow-left"), "", this);
connect(mPrevButton, SIGNAL(clicked()), this, SLOT(previous()));
mNextButton = new QPushButton(os::icon("arrow-right"), "", this);
connect(mNextButton, SIGNAL(clicked()), this, SLOT(next()));
mPrevButton->setCursor(Qt::PointingHandCursor);
mPrevButton->setFlat(true);
mPrevButton->setGraphicsEffect(os::shadow(Qt::white));
mPrevButton->setIconSize(QSize(24, 24));
mPrevButton->setVisible(false);
mNextButton->setCursor(Qt::PointingHandCursor);
mNextButton->setFlat(true);
mNextButton->setGraphicsEffect(os::shadow(Qt::white));
mNextButton->setIconSize(QSize(24, 24));
mNextButton->setVisible(false);
l->addWidget(mPrevButton);
l->addLayout(mStack);
l->addWidget(mNextButton);
l->setMargin(0);
l->setContentsMargins(6, 6, 6, 6);
mStack->setMargin(0);
setMaximumHeight(mSize);
setLayout(l);
if (mAutoclose) {
startTimer(1000);
}
}
void PreviewDialog::add(Screenshot *screenshot)
{
if (!isVisible()) {
show();
}
if (mAutoclose) {
mAutoclose = mAutocloseReset;
}
QLabel *label = new QLabel(this);
label->setGraphicsEffect(os::shadow());
bool small = false;
QSize size = screenshot->pixmap().size();
if (size.width() > mSize || size.height() > mSize) {
size.scale(mSize, mSize, Qt::KeepAspectRatio);
}
else {
small = true;
}
QPixmap thumbnail = screenshot->pixmap().scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
label->setPixmap(thumbnail);
thumbnail = QPixmap();
label->setAlignment(Qt::AlignCenter);
if (size.height() < 120) {
label->setMinimumHeight(120);
}
if (size.width() < 140) {
label->setMinimumWidth(140);
}
label->resize(size);
QPushButton *discardPushButton = new QPushButton(os::icon("no") , "", label);
QPushButton *enlargePushButton = new QPushButton(os::icon("preview"), "", label);
QToolButton *confirmPushButton = new QToolButton(label);
confirmPushButton->setIconSize(QSize(24, 24));
confirmPushButton->setCursor(Qt::PointingHandCursor);
confirmPushButton->setGraphicsEffect(os::shadow(Qt::white));
if (ScreenshotManager::instance()->settings()->value("options/previewDefaultAction", 0).toInt() == 0
|| ScreenshotManager::instance()->settings()->value("options/uploadAuto").toBool()) {
// Default button, confirm & upload.
confirmPushButton->setIcon(os::icon("yes"));
if (!ScreenshotManager::instance()->settings()->value("options/uploadAuto").toBool()) {
QMenu *confirmMenu = new QMenu(confirmPushButton);
confirmMenu->setObjectName("confirmMenu");
QAction *uploadAction = new QAction(os::icon("imgur"), tr("Upload"), confirmPushButton);
connect(uploadAction, SIGNAL(triggered()), screenshot, SLOT(markUpload()));
connect(uploadAction, SIGNAL(triggered()), screenshot, SLOT(confirm()));
connect(uploadAction, SIGNAL(triggered()), this, SLOT(closePreview()));
connect(this, SIGNAL(uploadAll()), uploadAction, SLOT(trigger()));
confirmMenu->addAction(uploadAction);
confirmPushButton->setMenu(confirmMenu);
confirmPushButton->setPopupMode(QToolButton::MenuButtonPopup);
}
connect(this, SIGNAL(acceptAll()), confirmPushButton, SLOT(click()));
connect(confirmPushButton, SIGNAL(clicked()), screenshot, SLOT(confirm()));
connect(confirmPushButton, SIGNAL(clicked()), this, SLOT(closePreview()));
}
else {
// Reversed button, upload & confirm.
confirmPushButton->setIcon(os::icon("imgur"));
QMenu *confirmMenu = new QMenu(confirmPushButton);
confirmMenu->setObjectName("confirmMenu");
QAction *confirmAction = new QAction(os::icon("yes"), tr("Save"), confirmPushButton);
connect(this, SIGNAL(acceptAll()), confirmAction, SLOT(trigger()));
connect(confirmAction, SIGNAL(triggered()), screenshot, SLOT(confirm()));
connect(confirmAction, SIGNAL(triggered()), this, SLOT(closePreview()));
connect(confirmPushButton, SIGNAL(clicked()), screenshot, SLOT(markUpload()));
connect(confirmPushButton, SIGNAL(clicked()), screenshot, SLOT(confirm()));
connect(confirmPushButton, SIGNAL(clicked()), this, SLOT(closePreview()));
connect(this, SIGNAL(uploadAll()), confirmPushButton, SLOT(click()));
confirmMenu->addAction(confirmAction);
confirmPushButton->setMenu(confirmMenu);
confirmPushButton->setPopupMode(QToolButton::MenuButtonPopup);
}
confirmPushButton->setAutoRaise(true);
confirmPushButton->setVisible(false);
discardPushButton->setIconSize(QSize(24, 24));
discardPushButton->setCursor(Qt::PointingHandCursor);
discardPushButton->setGraphicsEffect(os::shadow(Qt::white));
discardPushButton->setFlat(true);
discardPushButton->setVisible(false);
enlargePushButton->setIconSize(QSize(22, 22));
enlargePushButton->setCursor(Qt::PointingHandCursor);
enlargePushButton->setGraphicsEffect(os::shadow(Qt::white));
enlargePushButton->setFlat(true);
enlargePushButton->setVisible(false);
enlargePushButton->setDisabled(small);
connect(this, SIGNAL(rejectAll()), discardPushButton, SLOT(click()));
connect(discardPushButton, SIGNAL(clicked()), screenshot, SLOT(discard()));
connect(discardPushButton, SIGNAL(clicked()), this, SLOT(closePreview()));
connect(enlargePushButton, SIGNAL(clicked()), this, SLOT(enlargePreview()));
QHBoxLayout *wlayout = new QHBoxLayout;
wlayout->addWidget(confirmPushButton);
wlayout->addStretch();
wlayout->addWidget(enlargePushButton);
wlayout->addStretch();
wlayout->addWidget(discardPushButton);
wlayout->setMargin(0);
QVBoxLayout *wl = new QVBoxLayout;
wl->addStretch();
wl->addLayout(wlayout);
wl->setMargin(0);
label->setLayout(wl);
mStack->addWidget(label);
mStack->setCurrentIndex(mStack->count()-1);
mNextButton->setEnabled(false);
if (mStack->count() >= 2 && !mNextButton->isVisible()) {
mNextButton->setVisible(true);
mPrevButton->setVisible(true);
}
relocate();
}
int PreviewDialog::count() const
{
return mStack->count();
}
//
void PreviewDialog::closePreview()
{
QWidget *widget = mStack->currentWidget();
mStack->removeWidget(widget);
widget->deleteLater();
if (mStack->count() == 0) {
close();
}
else {
relocate();
}
}
void PreviewDialog::enlargePreview()
{
Screenshot *screenshot = qobject_cast<Screenshot*>(ScreenshotManager::instance()->children().at(mStack->currentIndex()));
if (screenshot) {
QFileInfo info(screenshot->unloadedFileName());
QDesktopServices::openUrl(QUrl(info.absoluteFilePath()));
}
}
void PreviewDialog::indexChanged(int i)
{
if (i == mStack->count()-1) {
mNextButton->setEnabled(false);
mPrevButton->setEnabled(true);
}
if (i == 0 && mStack->count() > 1) {
mNextButton->setEnabled(true);
mPrevButton->setEnabled(false);
}
if (i != 0 && i != mStack->count()-1) {
mNextButton->setEnabled(true);
mPrevButton->setEnabled(true);
}
if (mStack->count() < 2) {
mNextButton->setEnabled(false);
mPrevButton->setEnabled(false);
}
if (mStack->widget(i)) {
mStack->widget(i)->setFocus();
}
if (mStack->count() > 1) {
setWindowTitle(tr("Screenshot Preview (%1 of %2)").arg(mStack->currentIndex()+1).arg(mStack->count()));
}
else {
setWindowTitle(tr("Screenshot Preview"));
}
}
void PreviewDialog::next()
{
mStack->setCurrentIndex(mStack->currentIndex()+1);
relocate();
}
void PreviewDialog::previous()
{
mStack->setCurrentIndex(mStack->currentIndex()-1);
relocate();
}
void PreviewDialog::relocate()
{
updateGeometry();
resize(minimumSizeHint());
QApplication::sendEvent(this, new QEvent(QEvent::Enter)); // Ensures the buttons are visible.
QPoint where;
switch (mPosition)
{
case 0:
where = QApplication::desktop()->availableGeometry(this).topLeft();
break;
case 1:
where = QApplication::desktop()->availableGeometry(this).topRight();
where.setX(where.x() - frameGeometry().width());
break;
case 2:
where = QApplication::desktop()->availableGeometry(this).bottomLeft();
where.setY(where.y() - frameGeometry().height());
break;
case 3:
default:
where = QApplication::desktop()->availableGeometry(this).bottomRight();
where.setX(where.x() - frameGeometry().width());
where.setY(where.y() - frameGeometry().height());
break;
}
move(where);
}
//
bool PreviewDialog::event(QEvent *event)
{
if ((event->type() == QEvent::Enter || event->type() == QEvent::Leave)
&& mStack->currentWidget())
{
foreach (QObject *child, mStack->currentWidget()->children()) {
QWidget *widget = qobject_cast<QWidget*>(child);
if (widget) {
// Lets avoid disappearing buttons and bail if the menu is open.
QMenu *confirmMenu = widget->findChild<QMenu*>("confirmMenu");
if (confirmMenu && confirmMenu->isVisible())
return false;
widget->setVisible((event->type() == QEvent::Enter));
}
}
}
else if (event->type() == QEvent::Close) {
if (mStack->count() != 0)
emit rejectAll();
deleteLater();
}
else if (event->type() == QEvent::MouseButtonDblClick) {
enlargePreview();
}
return QDialog::event(event);
}
void PreviewDialog::timerEvent(QTimerEvent *event)
{
if (mAutoclose == 0) {
if (mAutocloseAction == 0) {
emit acceptAll();
}
else if (mAutocloseAction == 1) {
emit uploadAll();
}
else {
emit rejectAll();
}
}
else if (mAutoclose < 0) {
killTimer(event->timerId());
}
else {
setWindowTitle(tr("Preview: Closing in %1").arg(mAutoclose));
mAutoclose--;
}
}
diff --git a/dialogs/previewdialog.h b/dialogs/previewdialog.h
index cf22638..6748645 100644
--- a/dialogs/previewdialog.h
+++ b/dialogs/previewdialog.h
@@ -1,69 +1,69 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef PREVIEWDIALOG_H
#define PREVIEWDIALOG_H
#include <QDialog>
class Screenshot;
class QStackedLayout;
class QPushButton;
class PreviewDialog : public QDialog
{
Q_OBJECT
public:
PreviewDialog(QWidget *parent);
void add(Screenshot* screenshot);
int count() const;
public slots:
void setWidth(int w) { resize(w, height()); }
void setHeight(int h) { resize(width(), h); }
signals:
void acceptAll();
void rejectAll();
void uploadAll();
private slots:
void closePreview();
void enlargePreview();
void indexChanged(int i);
void next();
void previous();
void relocate();
protected:
bool event(QEvent *event);
void timerEvent(QTimerEvent *event);
private:
int mAutoclose;
int mAutocloseAction;
int mAutocloseReset;
int mPosition; //0: top left, 1: top right, 2: bottom left, 3: bottom rigth (default)
int mSize;
QPushButton* mNextButton;
QPushButton* mPrevButton;
QStackedLayout* mStack;
};
#endif // PREVIEWDIALOG_H
diff --git a/dialogs/updaterdialog.cpp b/dialogs/updaterdialog.cpp
index a50a30e..c2c7f2c 100644
--- a/dialogs/updaterdialog.cpp
+++ b/dialogs/updaterdialog.cpp
@@ -1,65 +1,65 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QApplication>
#include <QDesktopServices>
#include <QLabel>
#include <QLayout>
#include <QProgressBar>
#include <QUrl>
#include "updaterdialog.h"
#include "../tools/os.h"
-UpdaterDialog::UpdaterDialog() :
-QProgressDialog("", tr("Cancel"), 0, 0)
+UpdaterDialog::UpdaterDialog(QWidget *parent) :
+QProgressDialog("", tr("Cancel"), 0, 0, parent)
{
setWindowTitle(tr("Updater - Lightscreen"));
setWindowFlags(windowFlags() ^ Qt::WindowContextHelpButtonHint);
setAutoClose(false);
QProgressBar *bar = new QProgressBar(this);
bar->setTextVisible(false);
bar->setRange(0, 0);
QLabel *label = new QLabel(tr("Checking for updates..."), this);
connect(label, SIGNAL(linkActivated(QString)), this, SLOT(link(QString)));
setLabel(label);
setBar(bar);
}
void UpdaterDialog::updateDone(bool result)
{
if (result) {
- setLabelText(tr("There's a new version available,<br> please see <a href=\"http://lightscreen.sourceforge.net/whatsnew/%1\">the Lighscreen website</a>.").arg(qApp->applicationVersion()));
+ setLabelText(tr("There's a new version available,<br> please see <a href=\"http://lightscreen.com.ar/whatsnew/%1\">the Lighscreen website</a>.").arg(qApp->applicationVersion()));
}
else {
setLabelText(tr("No new versions available."));
}
setMaximum(1);
setCancelButtonText(tr("Close"));
}
void UpdaterDialog::link(QString url)
{
QDesktopServices::openUrl(url);
}
diff --git a/dialogs/updaterdialog.h b/dialogs/updaterdialog.h
index 164b73d..e79c55f 100644
--- a/dialogs/updaterdialog.h
+++ b/dialogs/updaterdialog.h
@@ -1,39 +1,39 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef UPDATERDIALOG_H
#define UPDATERDIALOG_H
#include <QProgressDialog>
class UpdaterDialog : public QProgressDialog
{
Q_OBJECT
public:
- UpdaterDialog();
+ UpdaterDialog(QWidget* parent = 0);
public slots:
void updateDone(bool result);
private slots:
void link(QString url);
};
#endif // UPDATERDIALOG_H
diff --git a/lightscreen.pro b/lightscreen.pro
index fa093f2..ec4c5cc 100644
--- a/lightscreen.pro
+++ b/lightscreen.pro
@@ -1,74 +1,67 @@
TEMPLATE = app
TARGET = lightscreen
-HEADERS += tools/os.h \
- updater/updater.h \
- dialogs/areadialog.h \
+HEADERS += dialogs/areadialog.h \
+ dialogs/historydialog.h \
+ dialogs/namingdialog.h \
dialogs/optionsdialog.h \
- widgets/hotkeywidget.h \
+ dialogs/previewdialog.h \
+ dialogs/updaterdialog.h \
lightscreenwindow.h \
+ tools/os.h \
+ tools/qtimgur.h \
tools/screenshot.h \
- dialogs/previewdialog.h \
tools/screenshotmanager.h \
- tools/windowpicker.h \
tools/uploader.h \
- tools/qtimgur.h \
- dialogs/updaterdialog.h \
- dialogs/namingdialog.h \
- dialogs/historydialog.h
-SOURCES += tools/os.cpp \
- updater/updater.cpp \
- dialogs/areadialog.cpp \
+ tools/windowpicker.h \
+ updater/updater.h \
+ widgets/hotkeywidget.h
+SOURCES += dialogs/areadialog.cpp \
+ dialogs/historydialog.cpp \
+ dialogs/namingdialog.cpp \
dialogs/optionsdialog.cpp \
- widgets/hotkeywidget.cpp \
- main.cpp \
+ dialogs/previewdialog.cpp \
+ dialogs/updaterdialog.cpp \
lightscreenwindow.cpp \
+ main.cpp \
+ tools/os.cpp \
+ tools/qtimgur.cpp \
tools/screenshot.cpp \
- dialogs/previewdialog.cpp \
tools/screenshotmanager.cpp \
- tools/windowpicker.cpp \
tools/uploader.cpp \
- tools/qtimgur.cpp \
- dialogs/updaterdialog.cpp \
- dialogs/namingdialog.cpp \
- dialogs/historydialog.cpp
-FORMS += dialogs/optionsdialog.ui \
+ tools/windowpicker.cpp \
+ updater/updater.cpp \
+ widgets/hotkeywidget.cpp
+FORMS += dialogs/historydialog.ui \
dialogs/namingdialog.ui \
- dialogs/historydialog.ui \
+ dialogs/optionsdialog.ui \
lightscreenwindow.ui
RESOURCES += lightscreen.qrc
-TRANSLATIONS += translations/untranslated.ts \
- translations/spanish.ts \
- translations/russian.ts \
- translations/portuguese.ts \
- translations/polish.ts \
- translations/japanese.ts \
- translations/italian.ts \
- translations/dutch.ts
+
RC_FILE += lightscreen.rc
CODECFORSRC = UTF-8
QT += network core gui xml sql multimedia winextras
include($$PWD/tools/globalshortcut/globalshortcut.pri)
include($$PWD/tools/qtsingleapplication/qtsingleapplication.pri)
windows{
contains(QMAKE_CC, gcc){
LIBS += libgdi32 libgcc libuser32 libole32 libshell32 libshlwapi libcomctl32
QMAKE_CXXFLAGS = -Wextra -Wall -Wpointer-arith
}
contains(QMAKE_CC, cl){
LIBS += gdi32.lib user32.lib ole32.lib shell32.lib shlwapi.lib comctl32.lib
}
}
unix:LIBS += -lX11
OTHER_FILES += TODO.txt
diff --git a/lightscreen.qrc b/lightscreen.qrc
index b5b5a6b..0507c36 100644
--- a/lightscreen.qrc
+++ b/lightscreen.qrc
@@ -1,58 +1,52 @@
<RCC>
<qresource prefix="/icons">
<file alias="lightscreen">images/LS.ico</file>
<file alias="lightscreen.small">images/lightscreen.small.png</file>
<file alias="lightscreen.yes">images/lightscreen.yes.png</file>
<file alias="lightscreen.no">images/lightscreen.no.png</file>
<file alias="yes">images/yes.png</file>
<file alias="no">images/no.png</file>
<file alias="yes.big">images/yes.big.png</file>
<file alias="no.big">images/no.big.png</file>
<file alias="folder">images/folder.png</file>
<file alias="configure">images/configure.png</file>
<file alias="arrow-left">images/arrow.left.png</file>
<file alias="arrow-right">images/arrow.right.png</file>
<file alias="picker">images/picker.png</file>
<file alias="pickWindow">images/pickWindow.png</file>
<file alias="zoom.out">images/minus.png</file>
<file alias="zoom.in">images/plus.png</file>
<file alias="area">images/area.png</file>
<file alias="screen">images/screen.png</file>
<file alias="window">images/window.png</file>
<file alias="imgur">images/imgur.png</file>
<file alias="view-history">images/history.png</file>
<file alias="area.big">images/area.big.png</file>
<file alias="screen.big">images/screen.big.png</file>
<file alias="pickWindow.big">images/pickWindow.big.png</file>
<file alias="preview">images/preview.png</file>
</qresource>
<qresource prefix="/icons/inv">
<file alias="yes">images/inv/yes.png</file>
<file alias="no">images/inv/no.png</file>
<file alias="yes.big">images/inv/yes.big.png</file>
<file alias="no.big">images/inv/no.big.png</file>
<file alias="folder">images/inv/folder.png</file>
<file alias="configure">images/inv/configure.png</file>
<file alias="arrow-left">images/inv/arrow.left.png</file>
<file alias="arrow-right">images/inv/arrow.right.png</file>
<file alias="picker">images/inv/picker.png</file>
<file alias="pickWindow">images/inv/pickWindow.png</file>
<file alias="zoom.out">images/inv/minus.png</file>
<file alias="zoom.in">images/inv/plus.png</file>
<file alias="area">images/inv/area.png</file>
<file alias="screen">images/inv/screen.png</file>
<file alias="window">images/inv/window.png</file>
<file alias="imgur">images/inv/imgur.png</file>
<file alias="view-history">images/inv/history.png</file>
<file alias="area.big">images/inv/area.big.png</file>
<file alias="screen.big">images/inv/screen.big.png</file>
<file alias="pickWindow.big">images/inv/pickWindow.big.png</file>
<file alias="preview">images/inv/preview.png</file>
</qresource>
- <qresource prefix="/translations">
- <file alias="Español">translations/spanish.qm</file>
- </qresource>
- <qresource prefix="/translations_qt">
- <file alias="Español">translations/qt/qt_es.qm</file>
- </qresource>
</RCC>
diff --git a/lightscreenwindow.cpp b/lightscreenwindow.cpp
index 02d91dc..630c25e 100644
--- a/lightscreenwindow.cpp
+++ b/lightscreenwindow.cpp
@@ -1,1011 +1,1007 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
-#include <QMainWindow>
#include <QDate>
#include <QDesktopServices>
#include <QDesktopWidget>
#include <QFileInfo>
#include <QKeyEvent>
+#include <QMainWindow>
#include <QMenu>
#include <QMessageBox>
#include <QPointer>
#include <QProcess>
#include <QSettings>
#include <QSystemTrayIcon>
#include <QTimer>
#include <QToolTip>
#include <QUrl>
#include <QSound>
-#include <QDebug>
-
-#ifdef Q_OS_WIN
+#ifdef Q_OS_WIN
#include <windows.h>
#include <QtWinExtras>
#endif
/*
* Lightscreen includes
*/
#include "lightscreenwindow.h"
#include "dialogs/optionsdialog.h"
#include "dialogs/previewdialog.h"
#include "dialogs/historydialog.h"
#include "tools/globalshortcut/globalshortcutmanager.h"
#include "tools/os.h"
#include "tools/screenshot.h"
#include "tools/screenshotmanager.h"
#include "tools/uploader.h"
#include "updater/updater.h"
LightscreenWindow::LightscreenWindow(QWidget *parent) :
QMainWindow(parent),
mDoCache(false),
mHideTrigger(false),
mReviveMain(false),
mWasVisible(true),
mLastMessage(0),
mLastMode(-1),
mLastScreenshot()
{
- os::translate(settings()->value("options/language", "English").toString());
-
ui.setupUi(this);
ui.screenPushButton->setIcon(os::icon("screen.big"));
ui.areaPushButton->setIcon(os::icon("area.big"));
ui.windowPushButton->setIcon(os::icon("pickWindow.big"));
ui.optionsPushButton->setIcon(os::icon("configure"));
ui.folderPushButton->setIcon(os::icon("folder"));
ui.imgurPushButton->setIcon(os::icon("imgur"));
setMaximumSize(size());
setMinimumSize(size());
setWindowFlags(Qt::Window);
#ifdef Q_OS_WIN
if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) {
mTaskbarButton = new QWinTaskbarButton(this);
}
if (QSysInfo::windowsVersion() < QSysInfo::WV_WINDOWS7) {
ui.centralWidget->setStyleSheet("QPushButton { padding: 2px; border: 1px solid #acacac; background: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 #eaeaea, stop:1 #e5e5e5);} QPushButton:hover { border: 1px solid #7eb4ea; background-color: #e4f0fc; }");
}
#endif
// Actions
connect(ui.screenPushButton, SIGNAL(clicked()), this, SLOT(screenshotAction()));
connect(ui.areaPushButton , SIGNAL(clicked()), this, SLOT(areaHotkey()));
connect(ui.windowPushButton, SIGNAL(clicked()), this, SLOT(windowPickerHotkey()));
connect(ui.optionsPushButton, SIGNAL(clicked()), this, SLOT(showOptions()));
connect(ui.folderPushButton , SIGNAL(clicked()), this, SLOT(goToFolder()));
connect(ui.imgurPushButton, SIGNAL(clicked()), this, SLOT(createUploadMenu()));
// Uploader
connect(Uploader::instance(), SIGNAL(progress(qint64, qint64)), this, SLOT(uploadProgress(qint64, qint64)));
connect(Uploader::instance(), SIGNAL(done(QString, QString, QString)), this, SLOT(showUploaderMessage(QString, QString)));
connect(Uploader::instance(), SIGNAL(error(QString)), this, SLOT(showUploaderError(QString)));
// Manager
connect(ScreenshotManager::instance(), SIGNAL(confirm(Screenshot*)), this, SLOT(preview(Screenshot*)));
connect(ScreenshotManager::instance(), SIGNAL(windowCleanup(Screenshot::Options&)), this, SLOT(cleanup(Screenshot::Options&)));
if (!settings()->contains("file/format")) {
showOptions(); // There are no options (or the options config is invalid or incomplete)
}
else {
QTimer::singleShot(0 , this, SLOT(applySettings()));
QTimer::singleShot(5000, this, SLOT(checkForUpdates()));
}
}
LightscreenWindow::~LightscreenWindow()
{
settings()->setValue("lastScreenshot", mLastScreenshot);
settings()->sync();
GlobalShortcutManager::instance()->clear();
delete mTrayIcon;
}
void LightscreenWindow::action(int mode)
{
if (mode == 4) {
goToFolder();
}
else {
show();
}
}
void LightscreenWindow::areaHotkey()
{
screenshotAction(2);
}
void LightscreenWindow::checkForUpdates()
{
if (settings()->value("options/disableUpdater", false).toBool())
return;
if (settings()->value("lastUpdateCheck").toInt() + 7
> QDate::currentDate().dayOfYear())
return; // If 7 days have not passed since the last update check.
mUpdater = new Updater(this);
connect(mUpdater, SIGNAL(done(bool)), this, SLOT(updaterDone(bool)));
mUpdater->check();
}
void LightscreenWindow::cleanup(Screenshot::Options &options)
{
// Reversing settings
if (settings()->value("options/hide").toBool()) {
#ifndef Q_WS_X11 // X is not quick enough and the notification ends up everywhere but in the icon
if (settings()->value("options/tray").toBool() && mTrayIcon) {
mTrayIcon->show();
}
#endif
if (mPreviewDialog) {
if (mPreviewDialog->count() <= 1 && mWasVisible) {
show();
}
mPreviewDialog->show();
}
else if (mWasVisible) {
show();
}
mHideTrigger = false;
}
if (settings()->value("options/tray").toBool() && mTrayIcon) {
notify(options.result);
if (settings()->value("options/message").toBool() && options.file && !options.upload) {
// This message wll get shown only when messages are enabled and the file won't get another upload pop-up soon.
showScreenshotMessage(options.result, options.fileName);
}
}
if (settings()->value("options/playSound", false).toBool()) {
if (options.result == Screenshot::Success) {
QSound::play("sounds/ls.screenshot.wav");
}
else {
#ifdef Q_OS_WIN
QSound::play("afakepathtomakewindowsplaythedefaultsoundtheresprobablyabetterwaybuticantbebothered");
#else
QSound::play("sound/ls.error.wav");
#endif
}
}
updateUploadStatus();
if (options.result != Screenshot::Success)
return;
mLastScreenshot = options.fileName;
}
void LightscreenWindow::closeToTrayWarning()
{
if (!settings()->value("options/closeToTrayWarning", true).toBool())
return;
mLastMessage = 3;
mTrayIcon->showMessage(tr("Closed to tray"), tr("Lightscreen will keep running, you can disable this in the options menu."));
settings()->setValue("options/closeToTrayWarning", false);
}
bool LightscreenWindow::closingWithoutTray()
{
if (settings()->value("options/disableHideAlert", false).toBool())
return false;
QMessageBox msgBox;
msgBox.setWindowTitle(tr("Lightscreen"));
msgBox.setText(tr("You have chosen to hide Lightscreen when there's no system tray icon, so you will not be able to access the program <b>unless you have selected a hotkey to do so</b>.<br>What do you want to do?"));
msgBox.setIcon(QMessageBox::Warning);
msgBox.setStyleSheet("QPushButton { padding: 4px 8px; }");
QPushButton *enableButton = msgBox.addButton(tr("Hide but enable tray"),
QMessageBox::ActionRole);
QPushButton *enableAndDenotifyButton = msgBox.addButton(tr("Hide and don't warn"),
QMessageBox::ActionRole);
QPushButton *hideButton = msgBox.addButton(tr("Just hide"),
QMessageBox::ActionRole);
QPushButton *abortButton = msgBox.addButton(QMessageBox::Cancel);
Q_UNUSED(abortButton);
msgBox.exec();
if (msgBox.clickedButton() == hideButton) {
return true;
}
else if (msgBox.clickedButton() == enableAndDenotifyButton) {
settings()->setValue("options/disableHideAlert", true);
applySettings();
return true;
}
else if (msgBox.clickedButton() == enableButton) {
settings()->setValue("options/tray", true);
applySettings();
return true;
}
return false; // Cancel.
}
void LightscreenWindow::createUploadMenu()
{
QMenu* imgurMenu = new QMenu(tr("Upload"));
QAction *uploadAction = new QAction(os::icon("imgur"), tr("&Upload last"), imgurMenu);
uploadAction->setToolTip(tr("Upload the last screenshot you took to imgur.com"));
connect(uploadAction, SIGNAL(triggered()), this, SLOT(uploadLast()));
QAction *cancelAction = new QAction(os::icon("no"), tr("&Cancel upload"), imgurMenu);
cancelAction->setToolTip(tr("Cancel the currently uploading screenshots"));
cancelAction->setEnabled(false);
connect(this, SIGNAL(uploading(bool)), cancelAction, SLOT(setEnabled(bool)));
connect(cancelAction, SIGNAL(triggered()), this, SLOT(uploadCancel()));
QAction *historyAction = new QAction(os::icon("view-history"), tr("View &History"), imgurMenu);
connect(historyAction, SIGNAL(triggered()), this, SLOT(showHistoryDialog()));
imgurMenu->addAction(uploadAction);
imgurMenu->addAction(cancelAction);
imgurMenu->addAction(historyAction);
imgurMenu->addSeparator();
connect(imgurMenu, SIGNAL(aboutToShow()), this, SLOT(uploadMenuShown()));
ui.imgurPushButton->setMenu(imgurMenu);
ui.imgurPushButton->showMenu();
}
void LightscreenWindow::goToFolder()
{
#ifdef Q_OS_WIN
if (!mLastScreenshot.isEmpty() && QFile::exists(mLastScreenshot)) {
QProcess::startDetached("explorer /select, \"" + mLastScreenshot +"\"");
}
else {
#endif
QString folder = settings()->value("file/target").toString();
if (folder.isEmpty())
folder = qApp->applicationDirPath();
if (QDir::toNativeSeparators(folder.at(folder.size()-1)) != QDir::separator())
folder.append(QDir::separator());
QDesktopServices::openUrl("file:///"+folder);
#ifdef Q_OS_WIN
}
#endif
}
void LightscreenWindow::messageClicked()
{
if (mLastMessage == 1) {
goToFolder();
}
else if (mLastMessage == 3) {
QTimer::singleShot(0, this, SLOT(showOptions()));
}
else {
QDesktopServices::openUrl(QUrl(Uploader::instance()->lastUrl()));
}
}
void LightscreenWindow::messageReceived(const QString &message)
{
if (message.contains(' ')) {
foreach (QString argument, message.split(' ')) {
messageReceived(argument);
}
}
if (message == "--wake") {
show();
qApp->alert(this, 500);
return;
}
if (message == "--screen")
screenshotAction();
else if (message == "--area")
screenshotAction(2);
else if (message == "--activewindow")
screenshotAction(1);
else if (message == "--pickwindow")
screenshotAction(3);
else if (message == "--folder")
action(4);
else if (message == "--uploadlast")
uploadLast();
else if (message == "--viewhistory")
showHistoryDialog();
}
void LightscreenWindow::notify(const Screenshot::Result &result)
{
switch (result)
{
case Screenshot::Success:
mTrayIcon->setIcon(QIcon(":/icons/lightscreen.yes"));
#ifdef Q_OS_WIN
if (mTaskbarButton)
mTaskbarButton->setOverlayIcon(os::icon("yes"));
#endif
setWindowTitle(tr("Success!"));
break;
case Screenshot::Fail:
mTrayIcon->setIcon(QIcon(":/icons/lightscreen.no"));
setWindowTitle(tr("Failed!"));
#ifdef Q_OS_WIN
if (mTaskbarButton) {
mTaskbarButton->setOverlayIcon(os::icon("no"));
}
#endif
break;
case Screenshot::Cancel:
setWindowTitle(tr("Cancelled!"));
break;
}
QTimer::singleShot(2000, this, SLOT(restoreNotification()));
}
void LightscreenWindow::preview(Screenshot* screenshot)
{
if (screenshot->options().preview) {
if (!mPreviewDialog) {
mPreviewDialog = new PreviewDialog(this);
}
mPreviewDialog->add(screenshot);
}
else {
screenshot->confirm(true);
}
}
void LightscreenWindow::quit()
{
settings()->setValue("position", pos());
int answer = 0;
QString doing;
if (ScreenshotManager::instance()->activeCount() > 0) {
doing = tr("processing");
}
if (Uploader::instance()->uploading() > 0) {
if (doing.isEmpty()) {
doing = tr("uploading");
}
else {
doing = tr("processing and uploading");
}
}
if (!doing.isEmpty()) {
answer = QMessageBox::question(this,
tr("Are you sure you want to quit?"),
tr("Lightscreen is currently %1 screenshots. Are you sure you want to quit?").arg(doing),
tr("Quit"),
tr("Don't Quit"));
}
if (answer == 0)
emit finished();
}
void LightscreenWindow::restoreNotification()
{
if (mTrayIcon)
mTrayIcon->setIcon(QIcon(":/icons/lightscreen.small"));
#ifdef Q_OS_WIN
if (mTaskbarButton)
mTaskbarButton->clearOverlayIcon();
#endif
updateUploadStatus();
}
void LightscreenWindow::screenshotAction(int mode)
{
int delayms = -1;
bool optionsHide = settings()->value("options/hide").toBool(); // Option cache, used a couple of times.
if (!mHideTrigger) {
mWasVisible = isVisible();
mHideTrigger = true;
}
// Applying pre-screenshot settings
if (optionsHide) {
hide();
#ifndef Q_WS_X11 // X is not quick enough and the notification ends up everywhere but in the icon
if (mTrayIcon)
mTrayIcon->hide();
#endif
}
// Screenshot delay
delayms = settings()->value("options/delay", 0).toInt();
delayms = delayms * 1000; // Converting the delay to milliseconds.
delayms += 400;
if (optionsHide && mPreviewDialog) {
if (mPreviewDialog->count() >= 1) {
mPreviewDialog->hide();
}
}
// The delayed functions works using the static variable lastMode
// which keeps the argument so a QTimer can call this function again.
if (delayms > 0) {
if (mLastMode < 0) {
mLastMode = mode;
QTimer::singleShot(delayms, this, SLOT(screenshotAction()));
return;
}
else {
mode = mLastMode;
mLastMode = -1;
}
}
static Screenshot::Options options;
if (!mDoCache) {
// Populating the option object that will then be passed to the screenshot engine (sounds fancy huh?)
options.file = settings()->value("file/enabled").toBool();
options.format = (Screenshot::Format) settings()->value("file/format").toInt();
options.prefix = settings()->value("file/prefix").toString();
QDir dir(settings()->value("file/target").toString());
dir.makeAbsolute();
options.directory = dir;
options.quality = settings()->value("options/quality", 100).toInt();
options.currentMonitor = settings()->value("options/currentMonitor", false).toBool();
options.clipboard = settings()->value("options/clipboard", true).toBool();
options.imgurClipboard = settings()->value("options/imgurClipboard", false).toBool();
options.preview = settings()->value("options/preview", false).toBool();
options.magnify = settings()->value("options/magnify", false).toBool();
options.cursor = settings()->value("options/cursor", true).toBool();
options.saveAs = settings()->value("options/saveAs", false).toBool();
options.animations = settings()->value("options/animations", true).toBool();
options.replace = settings()->value("options/replace", false).toBool();
options.upload = settings()->value("options/uploadAuto", false).toBool();
options.optimize = settings()->value("options/optipng", false).toBool();
Screenshot::NamingOptions namingOptions;
namingOptions.naming = (Screenshot::Naming) settings()->value("file/naming").toInt();
namingOptions.leadingZeros = settings()->value("options/naming/leadingZeros", 0).toInt();
namingOptions.flip = settings()->value("options/flip", false).toBool();
namingOptions.dateFormat = settings()->value("options/naming/dateFormat", "yyyy-MM-dd").toString();
options.namingOptions = namingOptions;
mDoCache = true;
}
options.mode = mode;
ScreenshotManager::instance()->take(options);
}
void LightscreenWindow::screenshotActionTriggered(QAction* action)
{
screenshotAction(action->data().toInt());
}
void LightscreenWindow::showHotkeyError(const QStringList &hotkeys)
{
static bool dontShow = false;
if (dontShow)
return;
QString messageText;
messageText = tr("Some hotkeys could not be registered, they might already be in use");
if (hotkeys.count() > 1) {
messageText += tr("<br>The failed hotkeys are the following:") + "<ul>";
foreach(const QString &hotkey, hotkeys) {
messageText += QString("%1%2%3").arg("<li><b>").arg(hotkey).arg("</b></li>");
}
messageText += "</ul>";
}
else {
messageText += tr("<br>The failed hotkey is <b>%1</b>").arg(hotkeys[0]);
}
messageText += tr("<br><i>What do you want to do?</i>");
QMessageBox msgBox(this);
msgBox.setWindowTitle(tr("Lightscreen"));
msgBox.setText(messageText);
QPushButton *changeButton = msgBox.addButton(tr("Change") , QMessageBox::ActionRole);
QPushButton *disableButton = msgBox.addButton(tr("Disable"), QMessageBox::ActionRole);
QPushButton *exitButton = msgBox.addButton(tr("Quit") , QMessageBox::ActionRole);
msgBox.exec();
if (msgBox.clickedButton() == exitButton) {
dontShow = true;
QTimer::singleShot(10, this, SLOT(quit()));
}
else if (msgBox.clickedButton() == changeButton) {
showOptions();
}
else if (msgBox.clickedButton() == disableButton) {
foreach(const QString &hotkey, hotkeys) {
settings()->setValue(QString("actions/%1/enabled").arg(hotkey), false);
}
}
}
void LightscreenWindow::showHistoryDialog()
{
HistoryDialog historyDialog(this);
historyDialog.exec();
updateUploadStatus();
}
void LightscreenWindow::showOptions()
{
GlobalShortcutManager::clear();
QPointer<OptionsDialog> optionsDialog = new OptionsDialog(this);
optionsDialog->exec();
optionsDialog->deleteLater();
applySettings();
}
void LightscreenWindow::showScreenshotMessage(const Screenshot::Result &result, const QString &fileName)
{
if (result == Screenshot::Cancel)
return;
// Showing message.
QString title;
QString message;
if (result == Screenshot::Success) {
title = QFileInfo(fileName).fileName();
if (settings()->value("file/target").toString().isEmpty()) {
message = QDir::toNativeSeparators(QCoreApplication::applicationDirPath());
}
else {
message = tr("Saved to \"%1\"").arg(settings()->value("file/target").toString());
}
}
else {
title = tr("The screenshot was not taken");
message = tr("An error occurred.");
}
mLastMessage = 1;
mTrayIcon->showMessage(title, message);
}
void LightscreenWindow::showUploaderError(const QString &error)
{
mLastMessage = -1;
if (mTrayIcon && !error.isEmpty() && settings()->value("options/message").toBool()) {
mTrayIcon->showMessage(tr("Upload error"), error);
}
updateUploadStatus();
}
void LightscreenWindow::showUploaderMessage(QString fileName, QString url)
{
if (mTrayIcon && settings()->value("options/message").toBool() && !url.isEmpty()) {
QString screenshot = QFileInfo(fileName).fileName();
if (screenshot.startsWith(".lstemp."))
screenshot = tr("Screenshot");
mLastMessage = 2;
mTrayIcon->showMessage(tr("%1 uploaded").arg(screenshot), tr("Click here to go to %1").arg(url));
}
updateUploadStatus();
}
void LightscreenWindow::toggleVisibility(QSystemTrayIcon::ActivationReason reason)
{
if (reason != QSystemTrayIcon::DoubleClick)
return;
if (isVisible()) {
hide();
}
else {
show();
os::setForegroundWindow(this);
}
}
void LightscreenWindow::updateUploadStatus()
{
int uploadCount = Uploader::instance()->uploading();
QString statusString;
if (uploadCount > 0) {
statusString = tr("%1 uploading - Lightscreen").arg(uploadCount);
emit uploading(true);
}
else {
statusString = tr("Lightscreen");
emit uploading(false);
#ifdef Q_OS_WIN
if (mTaskbarButton) {
mTaskbarButton->progress()->setVisible(false);
}
#endif
}
if (mTrayIcon) {
mTrayIcon->setToolTip(statusString);
}
setWindowTitle(statusString);
}
void LightscreenWindow::updaterDone(bool result)
{
settings()->setValue("lastUpdateCheck", QDate::currentDate().dayOfYear());
if (!result)
return;
QMessageBox msgBox;
msgBox.setWindowTitle(tr("Lightscreen"));
msgBox.setText(tr("There's a new version of Lightscreen available.<br>Would you like to see more information?<br>(<em>You can turn this notification off</em>)"));
msgBox.setIcon(QMessageBox::Information);
QPushButton *yesButton = msgBox.addButton(QMessageBox::Yes);
QPushButton *turnOffButton = msgBox.addButton(tr("Turn Off"), QMessageBox::ActionRole);
QPushButton *remindButton = msgBox.addButton(tr("Remind Me Later"), QMessageBox::RejectRole);
Q_UNUSED(remindButton);
msgBox.exec();
if (msgBox.clickedButton() == yesButton) {
- QDesktopServices::openUrl(QUrl("http://lightscreen.sourceforge.net/whatsnew/?from=" + qApp->applicationVersion()));
+ QDesktopServices::openUrl(QUrl("http://lightscreen.com.ar/whatsnew?from=" + qApp->applicationVersion()));
}
else if (msgBox.clickedButton() == turnOffButton) {
settings()->setValue("options/disableUpdater", true);
}
mUpdater->deleteLater();
}
void LightscreenWindow::upload(const QString &fileName)
{
Uploader::instance()->upload(fileName);
}
void LightscreenWindow::uploadCancel()
{
if (Uploader::instance()->uploading() <= 0) {
return;
}
int confirm = QMessageBox::question(this, tr("Upload cancel"), tr("Do you want to cancel all screenshot uploads?"), tr("Cancel"), tr("Don't Cancel"));
if (confirm == 0) {
Uploader::instance()->cancel();
updateUploadStatus();
}
}
void LightscreenWindow::uploadLast()
{
upload(mLastScreenshot);
updateUploadStatus();
}
void LightscreenWindow::uploadProgress(qint64 sent, qint64 total)
{
#ifdef Q_OS_WIN
if (mTaskbarButton) {
mTaskbarButton->progress()->setRange(0, total);
mTaskbarButton->progress()->setValue(sent);
}
if (isVisible() && total > 0) {
int uploadCount = Uploader::instance()->uploading();
int progress = (sent*100)/total;
if (uploadCount > 1) {
setWindowTitle(tr("%1% of %2 uploads - Lightscreen").arg(progress).arg(uploadCount));
}
else {
setWindowTitle(tr("%1% - Lightscreen").arg(progress));
}
}
#endif
}
void LightscreenWindow::uploadMenuShown()
{
QMenu *imgurMenu = qobject_cast<QMenu*>(sender());
imgurMenu->actions().at(0)->setEnabled(!mLastScreenshot.isEmpty());
}
void LightscreenWindow::windowHotkey()
{
screenshotAction(1);
}
void LightscreenWindow::windowPickerHotkey()
{
screenshotAction(3);
}
void LightscreenWindow::applySettings()
{
bool tray = settings()->value("options/tray").toBool();
if (tray && !mTrayIcon) {
createTrayIcon();
mTrayIcon->show();
}
else if (!tray && mTrayIcon) {
mTrayIcon->deleteLater();
}
connectHotkeys();
mDoCache = false;
if (settings()->value("lastScreenshot").isValid() && mLastScreenshot.isEmpty())
mLastScreenshot = settings()->value("lastScreenshot").toString();
os::setStartup(settings()->value("options/startup").toBool(), settings()->value("options/startupHide").toBool());
}
void LightscreenWindow::connectHotkeys()
{
// Set to true because if the hotkey is disabled it will show an error.
bool screen = true, area = true, window = true, windowPicker = true, open = true, directory = true;
if (settings()->value("actions/screen/enabled").toBool())
screen = GlobalShortcutManager::instance()->connect(settings()->value(
"actions/screen/hotkey").value<QKeySequence> (), this, SLOT(screenshotAction()));
if (settings()->value("actions/area/enabled").toBool())
area = GlobalShortcutManager::instance()->connect(settings()->value(
"actions/area/hotkey").value<QKeySequence> (), this, SLOT(areaHotkey()));
if (settings()->value("actions/window/enabled").toBool())
window = GlobalShortcutManager::instance()->connect(settings()->value(
"actions/window/hotkey").value<QKeySequence> (), this, SLOT(windowHotkey()));
if (settings()->value("actions/windowPicker/enabled").toBool())
windowPicker = GlobalShortcutManager::instance()->connect(settings()->value(
"actions/windowPicker/hotkey").value<QKeySequence> (), this, SLOT(windowPickerHotkey()));
if (settings()->value("actions/open/enabled").toBool())
open = GlobalShortcutManager::instance()->connect(settings()->value(
"actions/open/hotkey").value<QKeySequence> (), this, SLOT(show()));
if (settings()->value("actions/directory/enabled").toBool())
directory = GlobalShortcutManager::instance()->connect(settings()->value(
"actions/directory/hotkey").value<QKeySequence> (), this, SLOT(goToFolder()));
QStringList failed;
if (!screen) failed << "screen";
if (!area) failed << "area";
if (!window) failed << "window";
if (!windowPicker) failed << "window picker";
if (!open) failed << "open";
if (!directory) failed << "directory";
if (!failed.isEmpty())
showHotkeyError(failed);
}
void LightscreenWindow::createTrayIcon()
{
mTrayIcon = new QSystemTrayIcon(QIcon(":/icons/lightscreen.small"), this);
updateUploadStatus();
connect(mTrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(toggleVisibility(QSystemTrayIcon::ActivationReason)));
connect(mTrayIcon, SIGNAL(messageClicked()), this, SLOT(messageClicked()));
QAction *hideAction = new QAction(QIcon(":/icons/lightscreen.small"), tr("Show&/Hide"), mTrayIcon);
connect(hideAction, SIGNAL(triggered()), this, SLOT(toggleVisibility()));
QAction *screenAction = new QAction(os::icon("screen"), tr("&Screen"), mTrayIcon);
screenAction->setData(QVariant(0));
QAction *windowAction = new QAction(os::icon("window"), tr("Active &Window"), this);
windowAction->setData(QVariant(1));
QAction *windowPickerAction = new QAction(os::icon("pickWindow"), tr("&Pick Window"), this);
windowPickerAction->setData(QVariant(3));
QAction *areaAction = new QAction(os::icon("area"), tr("&Area"), mTrayIcon);
areaAction->setData(QVariant(2));
QActionGroup *screenshotGroup = new QActionGroup(mTrayIcon);
screenshotGroup->addAction(screenAction);
screenshotGroup->addAction(areaAction);
screenshotGroup->addAction(windowAction);
screenshotGroup->addAction(windowPickerAction);
connect(screenshotGroup, SIGNAL(triggered(QAction*)), this, SLOT(screenshotActionTriggered(QAction*)));
// Duplicated for the screenshot button :(
QAction *uploadAction = new QAction(os::icon("imgur"), tr("&Upload last"), mTrayIcon);
uploadAction->setToolTip(tr("Upload the last screenshot you took to imgur.com"));
connect(uploadAction, SIGNAL(triggered()), this, SLOT(uploadLast()));
QAction *cancelAction = new QAction(os::icon("no"), tr("&Cancel upload"), mTrayIcon);
cancelAction->setToolTip(tr("Cancel the currently uploading screenshots"));
cancelAction->setEnabled(false);
connect(this, SIGNAL(uploading(bool)), cancelAction, SLOT(setEnabled(bool)));
connect(cancelAction, SIGNAL(triggered()), this, SLOT(uploadCancel()));
QAction *historyAction = new QAction(os::icon("view-history"), tr("View History"), mTrayIcon);
connect(historyAction, SIGNAL(triggered()), this, SLOT(showHistoryDialog()));
//
QAction *optionsAction = new QAction(os::icon("configure"), tr("View &Options"), mTrayIcon);
connect(optionsAction, SIGNAL(triggered()), this, SLOT(showOptions()));
QAction *goAction = new QAction(os::icon("folder"), tr("&Go to Folder"), mTrayIcon);
connect(goAction, SIGNAL(triggered()), this, SLOT(goToFolder()));
QAction *quitAction = new QAction(tr("&Quit"), mTrayIcon);
connect(quitAction, SIGNAL(triggered()), this, SLOT(quit()));
QMenu* screenshotMenu = new QMenu(tr("Screenshot"));
screenshotMenu->addAction(screenAction);
screenshotMenu->addAction(areaAction);
screenshotMenu->addAction(windowAction);
screenshotMenu->addAction(windowPickerAction);
// Duplicated for the screenshot button :(
QMenu* imgurMenu = new QMenu(tr("Upload"));
imgurMenu->addAction(uploadAction);
imgurMenu->addAction(cancelAction);
imgurMenu->addAction(historyAction);
imgurMenu->addSeparator();
QMenu* trayIconMenu = new QMenu;
trayIconMenu->addAction(hideAction);
trayIconMenu->addSeparator();
trayIconMenu->addMenu(imgurMenu);
trayIconMenu->addSeparator();
trayIconMenu->addMenu(screenshotMenu);
trayIconMenu->addAction(optionsAction);
trayIconMenu->addAction(goAction);
trayIconMenu->addSeparator();
trayIconMenu->addAction(quitAction);
mTrayIcon->setContextMenu(trayIconMenu);
}
QSettings *LightscreenWindow::settings() const
{
return ScreenshotManager::instance()->settings();
}
// Event handling
bool LightscreenWindow::event(QEvent *event)
{
if (event->type() == QEvent::Hide) {
settings()->setValue("position", pos());
}
else if (event->type() == QEvent::Close) {
if (settings()->value("options/tray").toBool() && settings()->value("options/closeHide").toBool()) {
closeToTrayWarning();
hide();
}
else if (settings()->value("options/closeHide").toBool()) {
if (closingWithoutTray())
hide();
}
else {
quit();
}
}
else if (event->type() == QEvent::Show) {
QPoint savedPosition = settings()->value("position").toPoint();
if (!savedPosition.isNull() && qApp->desktop()->availableGeometry().contains(QRect(savedPosition, size())))
move(savedPosition);
}
else if (event->type() == QEvent::KeyPress) {
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(event);
#ifdef Q_WS_MAC
if (keyEvent->modifiers() == Qt::ControlModifier && e->key() == Qt::Key_Period) {
keyEvent->ignore();
if(isVisible())
toggleVisibility();
return false;
}
else
#endif
if (!keyEvent->modifiers() && keyEvent->key() == Qt::Key_Escape) {
keyEvent->ignore();
if(isVisible())
toggleVisibility();
return false;
}
}
else if (event->type() == QEvent::LanguageChange) {
ui.retranslateUi(this);
resize(minimumSizeHint());
}
return QMainWindow::event(event);
}
diff --git a/lightscreenwindow.h b/lightscreenwindow.h
index 92d6910..fbab939 100644
--- a/lightscreenwindow.h
+++ b/lightscreenwindow.h
@@ -1,117 +1,117 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef LIGHTSCREENWINDOW_H
#define LIGHTSCREENWINDOW_H
#include <QMainWindow>
#include <QPointer>
#include <QSystemTrayIcon>
#include "updater/updater.h"
#include "tools/screenshot.h"
#include "dialogs/previewdialog.h"
#include "ui_lightscreenwindow.h"
class QHttp;
class Updater;
class QSettings;
class QWinTaskbarButton;
class LightscreenWindow : public QMainWindow
{
Q_OBJECT
public:
LightscreenWindow(QWidget *parent = 0);
~LightscreenWindow();
public slots:
void action(int mode = 3);
void areaHotkey();
void checkForUpdates();
void cleanup(Screenshot::Options &options);
void closeToTrayWarning();
bool closingWithoutTray();
void createUploadMenu();
void goToFolder();
void messageClicked();
void messageReceived(const QString &message);
void notify(const Screenshot::Result &result);
void preview(Screenshot* screenshot);
void quit();
void restoreNotification();
void screenshotAction(int mode = 0);
void screenshotActionTriggered(QAction* action);
void showHotkeyError(const QStringList &hotkeys);
void showHistoryDialog();
void showOptions();
void showScreenshotMessage(const Screenshot::Result &result, const QString &fileName);
void showUploaderError(const QString &error);
void showUploaderMessage(QString fileName, QString url);
void toggleVisibility(QSystemTrayIcon::ActivationReason reason = QSystemTrayIcon::DoubleClick);
void updateUploadStatus();
void updaterDone(bool result);
void upload(const QString &fileName);
void uploadCancel();
void uploadLast();
void uploadProgress(qint64 sent, qint64 total);
void uploadMenuShown();
void windowHotkey();
void windowPickerHotkey();
private slots:
void applySettings();
signals:
void uploading(bool uploading);
void finished();
private:
void connectHotkeys();
void createTrayIcon();
#ifdef Q_OS_WIN
bool winEvent(MSG *message, long *result);
#endif
// Convenience function
QSettings *settings() const;
protected:
bool event(QEvent *event);
private:
bool mDoCache;
bool mHideTrigger;
bool mReviveMain;
bool mWasVisible;
int mLastMessage;
int mLastMode;
QString mLastScreenshot;
QPointer<QSystemTrayIcon> mTrayIcon;
QPointer<PreviewDialog> mPreviewDialog;
QPointer<Updater> mUpdater;
Ui::LightscreenWindowClass ui;
#ifdef Q_OS_WIN
QWinTaskbarButton *mTaskbarButton;
#endif
};
#endif // LIGHTSCREENWINDOW_H
diff --git a/main.cpp b/main.cpp
index 1a4acc5..848d878 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,97 +1,127 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QApplication>
#include <QDesktopWidget>
#include <QLocale>
+<<<<<<< HEAD
#include <QDebug>
#ifdef Q_OS_WIN
#include <QtWinExtras>
+=======
+#ifdef Q_WS_WIN
+ #include "tools/qwin7utils/AppUserModel.h"
+ #include "tools/qwin7utils/JumpList.h"
+ #include "tools/qwin7utils/Taskbar.h"
+ using namespace QW7;
+>>>>>>> master
#endif
#include "tools/os.h"
#include <QtSingleApplication>
#include "lightscreenwindow.h"
int main(int argc, char *argv[])
{
QtSingleApplication application(argc, argv);
application.setOrganizationName("K");
application.setApplicationName ("Lightscreen");
application.setApplicationVersion("2.0");
application.setQuitOnLastWindowClosed(false);
if (application.isRunning()) {
if (application.arguments().size() > 1) {
QStringList arguments = application.arguments();
arguments.removeFirst();
application.sendMessage(arguments.join(" "));
}
else {
application.sendMessage("--wake");
}
return 0;
}
LightscreenWindow lightscreen;
#ifdef Q_OS_WIN
// Windows 7 jumplists.
if (QSysInfo::windowsVersion() >= QSysInfo::WV_WINDOWS7) {
+<<<<<<< HEAD
QWinJumpList* jumplist = new QWinJumpList(&lightscreen);
QWinJumpListCategory* screenshotCategory = new QWinJumpListCategory("Screenshot");
screenshotCategory->setVisible(true);
screenshotCategory->addLink(os::icon("screen") , QObject::tr("Screen") , application.applicationFilePath(), QStringList("--screen"));
screenshotCategory->addLink(os::icon("area") , QObject::tr("Area") , application.applicationFilePath(), QStringList("--area"));
screenshotCategory->addLink(os::icon("window") , QObject::tr("Active Window"), application.applicationFilePath(), QStringList("--activewindow"));
screenshotCategory->addLink(os::icon("pickWindow"), QObject::tr("Pick Window") , application.applicationFilePath(), QStringList("--activewindow"));
QWinJumpListCategory* uploadCategory = new QWinJumpListCategory("Upload");
uploadCategory->setVisible(true);
uploadCategory->addLink(os::icon("imgur") , QObject::tr("Upload Last") , application.applicationFilePath(), QStringList("--uploadlast"));
uploadCategory->addLink(os::icon("view-history"), QObject::tr("View History"), application.applicationFilePath(), QStringList("--viewhistory"));
QWinJumpListCategory* folderCategory = new QWinJumpListCategory;
folderCategory->setVisible(true);
folderCategory->addLink(os::icon("folder"), QObject::tr("Go to Folder") , application.applicationFilePath(), QStringList("--folder"));
jumplist->addCategory(screenshotCategory);
jumplist->addCategory(uploadCategory);
jumplist->addCategory(folderCategory);
}
+=======
+ AppUserModel::SetCurrentProcessExplicitAppUserModelID("Lightscreen");
+
+ JumpList jumpList("Lightscreen");
+
+ QList<JumpListItem> tasks;
+ tasks.append(JumpListItem(application.applicationFilePath(), "--screen" , application.translate("JumpList", "Screen"), "", "", 0, application.applicationDirPath()));
+ tasks.append(JumpListItem(application.applicationFilePath(), "--area" , application.translate("JumpList", "Area") , "", "", 0, application.applicationDirPath()));
+ tasks.append(JumpListItem(application.applicationFilePath(), "--activewindow", application.translate("JumpList", "Active Window"), "", "", 0, application.applicationDirPath()));
+ tasks.append(JumpListItem(application.applicationFilePath(), "--pickwindow" , application.translate("JumpList", "Pick Window") , "", "", 0, application.applicationDirPath()));
+ tasks.append(JumpListItem());
+ tasks.append(JumpListItem(application.applicationFilePath(), "--uploadlast" , application.translate("JumpList", "Upload Last") , "", "", 0, application.applicationDirPath()));
+ tasks.append(JumpListItem(application.applicationFilePath(), "--viewhistory" , application.translate("JumpList", "View History") , "", "", 0, application.applicationDirPath()));
+ tasks.append(JumpListItem());
+ tasks.append(JumpListItem(application.applicationFilePath(), "--folder" , application.translate("JumpList", "Go to Folder") , "", "", 0, application.applicationDirPath()));
+
+ jumpList.Begin();
+ jumpList.AddUserTasks(tasks);
+ jumpList.Commit();
+ }
+>>>>>>> master
#endif
if (application.arguments().size() > 1) {
foreach (QString argument, application.arguments()) {
lightscreen.messageReceived(argument);
}
}
else {
lightscreen.show();
}
QObject::connect(&application, SIGNAL(messageReceived(const QString&)), &lightscreen, SLOT(messageReceived(const QString&)));
QObject::connect(&lightscreen, SIGNAL(finished()), &application, SLOT(quit()));
int result = application.exec();
return result;
}
diff --git a/tools/os.cpp b/tools/os.cpp
index 701039e..3c3fb11 100644
--- a/tools/os.cpp
+++ b/tools/os.cpp
@@ -1,417 +1,417 @@
-/*
- * Copyright (C) 2012 Christian Kaiser
+/*
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QApplication>
#include <QBitmap>
#include <QDesktopServices>
#include <QDesktopWidget>
#include <QDialog>
#include <QDir>
#include <QGraphicsDropShadowEffect>
+#include <QIcon>
#include <QLibrary>
+#include <QLocale>
+#include <QMessageBox>
#include <QPixmap>
#include <QPointer>
#include <QProcess>
#include <QSettings>
#include <QTextEdit>
#include <QTimeLine>
#include <QTimer>
-#include <QTranslator>
#include <QUrl>
#include <QWidget>
-#include <QIcon>
#include <string>
-
-#include <QDebug>
-
#include <QMessageBox>
#ifdef Q_OS_WIN
- #include <QtWin>
+ #include <QtWin>
#include <qt_windows.h>
#include <shlobj.h>
#elif defined(Q_WS_X11)
#include <QX11Info>
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#endif
#include "os.h"
void os::addToRecentDocuments(QString fileName)
{
#ifdef Q_OS_WIN
SHAddToRecentDocs (0x00000003, QDir::toNativeSeparators(fileName).utf16());
#else
Q_UNUSED(fileName)
#endif
}
QPixmap os::cursor()
{
#ifdef Q_OS_WIN
/*
* Taken from: git://github.com/arrai/mumble-record.git > src > mumble > Overlay.cpp
* BSD License.
*/
QPixmap pixmap;
CURSORINFO cursorInfo;
cursorInfo.cbSize = sizeof(cursorInfo);
::GetCursorInfo(&cursorInfo);
HICON cursor = cursorInfo.hCursor;
ICONINFO iconInfo;
::GetIconInfo(cursor, &iconInfo);
ICONINFO info;
ZeroMemory(&info, sizeof(info));
if (::GetIconInfo(cursor, &info)) {
if (info.hbmColor) {
pixmap = QtWin::fromHBITMAP(info.hbmColor, QtWin::HBitmapAlpha);
}
else {
QBitmap orig(QtWin::fromHBITMAP(info.hbmMask));
QImage img = orig.toImage();
int h = img.height() / 2;
int w = img.bytesPerLine() / sizeof(quint32);
QImage out(img.width(), h, QImage::Format_MonoLSB);
QImage outmask(img.width(), h, QImage::Format_MonoLSB);
for (int i=0;i<h; ++i) {
const quint32 *srcimg = reinterpret_cast<const quint32 *>(img.scanLine(i + h));
const quint32 *srcmask = reinterpret_cast<const quint32 *>(img.scanLine(i));
quint32 *dstimg = reinterpret_cast<quint32 *>(out.scanLine(i));
quint32 *dstmask = reinterpret_cast<quint32 *>(outmask.scanLine(i));
for (int j=0;j<w;++j) {
dstmask[j] = srcmask[j];
dstimg[j] = srcimg[j];
}
}
pixmap = QBitmap::fromImage(out, Qt::ColorOnly);
}
if (info.hbmMask)
::DeleteObject(info.hbmMask);
if (info.hbmColor)
::DeleteObject(info.hbmColor);
}
return pixmap;
#else
return QPixmap();
#endif
}
void os::effect(QObject* target, const char *slot, int frames, int duration, const char* cleanup)
{
QTimeLine* timeLine = new QTimeLine(duration);
timeLine->setFrameRange(0, frames);
timeLine->connect(timeLine, SIGNAL(frameChanged(int)), target, slot);
if (cleanup != 0)
timeLine->connect(timeLine, SIGNAL(finished()), target, SLOT(cleanup()));
timeLine->connect(timeLine, SIGNAL(finished()), timeLine, SLOT(deleteLater()));
timeLine->start();
}
QString os::getDocumentsPath()
{
#ifdef Q_OS_WIN
TCHAR szPath[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL,
CSIDL_PERSONAL|CSIDL_FLAG_CREATE,
NULL,
0,
szPath)))
{
std::wstring path(szPath);
return QString::fromWCharArray(path.c_str());
}
return QDir::homePath() + QDir::separator() + "My Documents";
#else
return QDir::homePath() + QDir::separator() + "Documents";
#endif
}
QPixmap os::grabWindow(WId winId)
{
#ifdef Q_OS_WIN
RECT rcWindow;
HWND hwndId = (HWND)winId;
GetWindowRect(hwndId, &rcWindow);
if (IsZoomed(hwndId)) {
int margin = GetSystemMetrics(SM_CXSIZEFRAME);
rcWindow.right -= margin;
rcWindow.left += margin;
rcWindow.top += margin;
rcWindow.bottom -= margin;
}
int width, height;
width = rcWindow.right - rcWindow.left;
height = rcWindow.bottom - rcWindow.top;
RECT rcScreen;
GetWindowRect(GetDesktopWindow(), &rcScreen);
RECT rcResult;
UnionRect(&rcResult, &rcWindow, &rcScreen);
QPixmap pixmap;
// Comparing the rects to determine if the window is outside the boundaries of the screen,
// the window DC method has the disadvantage that it does not show Aero glass transparency,
// so we'll avoid it for the screenshots that don't need it.
HDC hdcMem;
HBITMAP hbmCapture;
if (EqualRect(&rcScreen, &rcResult)) {
// Grabbing the window from the Screen DC.
HDC hdcScreen = GetDC(NULL);
BringWindowToTop(hwndId);
hdcMem = CreateCompatibleDC(hdcScreen);
hbmCapture = CreateCompatibleBitmap(hdcScreen, width, height);
SelectObject(hdcMem, hbmCapture);
BitBlt(hdcMem, 0, 0, width, height, hdcScreen, rcWindow.left, rcWindow.top, SRCCOPY);
}
else {
// Grabbing the window by its own DC
HDC hdcWindow = GetWindowDC(hwndId);
hdcMem = CreateCompatibleDC(hdcWindow);
hbmCapture = CreateCompatibleBitmap(hdcWindow, width, height);
SelectObject(hdcMem, hbmCapture);
BitBlt(hdcMem, 0, 0, width, height, hdcWindow, 0, 0, SRCCOPY);
}
ReleaseDC(hwndId, hdcMem);
DeleteDC(hdcMem);
pixmap = QtWin::fromHBITMAP(hbmCapture);
DeleteObject(hbmCapture);
return pixmap;
#else
return QPixmap::grabWindow(winId);
#endif
}
void os::setForegroundWindow(QWidget *window)
{
#ifdef Q_OS_WIN
ShowWindow((HWND)window->winId(), SW_RESTORE);
SetForegroundWindow((HWND)window->winId());
#else
Q_UNUSED(window)
#endif
}
void os::setStartup(bool startup, bool hide)
{
QString lightscreen = QDir::toNativeSeparators(qApp->applicationFilePath());
if (hide)
lightscreen.append(" -h");
#ifdef Q_OS_WIN
// Windows startup settings
QSettings init("Microsoft", "Windows");
init.beginGroup("CurrentVersion");
init.beginGroup("Run");
if (startup) {
init.setValue("Lightscreen", lightscreen);
}
else {
init.remove("Lightscreen");
}
init.endGroup();
init.endGroup();
#endif
#if defined(Q_WS_X11)
QFile desktopFile(QDir::homePath() + "/.config/autostart/lightscreen.desktop");
desktopFile.remove();
if (startup) {
desktopFile.open(QIODevice::WriteOnly);
desktopFile.write(QString("[Desktop Entry]\nExec=%1\nType=Application").arg(lightscreen).toAscii());
}
#endif
}
QGraphicsEffect* os::shadow(QColor color, int blurRadius, int offset) {
QGraphicsDropShadowEffect* shadowEffect = new QGraphicsDropShadowEffect;
shadowEffect->setBlurRadius(blurRadius);
shadowEffect->setOffset(offset);
shadowEffect->setColor(color);
return shadowEffect;
}
void os::translate(QString language)
{
+ /*
static QTranslator *translator = 0;
static QTranslator *translator_qt = 0;
if ((language.compare("English", Qt::CaseInsensitive) == 0
|| language.isEmpty()) && translator) {
qApp->removeTranslator(translator);
qApp->removeTranslator(translator_qt);
QLocale::setDefault(QLocale::c());
return;
}
if (translator) {
delete translator;
delete translator_qt;
}
translator = new QTranslator(qApp);
translator_qt = new QTranslator(qApp);
if (language == "Español")
QLocale::setDefault(QLocale::Spanish);
if (translator->load(language, ":/translations")) {
qApp->installTranslator(translator);
}
if (translator_qt->load(language, ":/translations_qt")) {
qApp->installTranslator(translator_qt);
}
+ */
}
QIcon os::icon(QString name)
{
static int value = -1;
if (value < 0) {
value = qApp->desktop()->palette().color(QPalette::Button).value();
}
if (value > 125) {
return QIcon(":/icons/" + name);
}
else {
return QIcon(":/icons/inv/" + name);
}
}
#ifdef Q_WS_X11
-// Taken from KSnapshot. Oh KDE, what would I do whithout you :D
+// Taken from KSnapshot. Oh KDE, what would I do without you :D
Window os::findRealWindow(Window w, int depth)
{
if( depth > 5 ) {
return None;
}
static Atom wm_state = XInternAtom( QX11Info::display(), "WM_STATE", False );
Atom type;
int format;
unsigned long nitems, after;
unsigned char* prop;
if( XGetWindowProperty( QX11Info::display(), w, wm_state, 0, 0, False, AnyPropertyType,
&type, &format, &nitems, &after, &prop ) == Success ) {
if( prop != NULL ) {
XFree( prop );
}
if( type != None ) {
return w;
}
}
Window root, parent;
Window* children;
unsigned int nchildren;
Window ret = None;
if( XQueryTree( QX11Info::display(), w, &root, &parent, &children, &nchildren ) != 0 ) {
for( unsigned int i = 0;
i < nchildren && ret == None;
++i ) {
ret = os::findRealWindow( children[ i ], depth + 1 );
}
if( children != NULL ) {
XFree( children );
}
}
return ret;
}
Window os::windowUnderCursor(bool includeDecorations)
{
Window root;
Window child;
uint mask;
int rootX, rootY, winX, winY;
XQueryPointer( QX11Info::display(), QX11Info::appRootWindow(), &root, &child,
&rootX, &rootY, &winX, &winY, &mask );
if( child == None ) {
child = QX11Info::appRootWindow();
}
if( !includeDecorations ) {
Window real_child = os::findRealWindow( child );
if( real_child != None ) { // test just in case
child = real_child;
}
}
return child;
}
#endif
diff --git a/tools/os.h b/tools/os.h
index 80bfb10..11753c9 100644
--- a/tools/os.h
+++ b/tools/os.h
@@ -1,76 +1,76 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef OS_H_
#define OS_H_
#include <QWidget>
class QPixmap;
class QPoint;
class QString;
class QUrl;
class QGraphicsEffect;
class QIcon;
#if defined(Q_WS_X11)
typedef unsigned long XID;
typedef XID Window;
#endif
namespace os
{
// Adds the filename to the Windows recent document list (useful for Windows 7 jump lists)
void addToRecentDocuments(QString fileName);
// Returns the cursor pixmap in Windows
QPixmap cursor();
// A QTimeLine based effect for a slot (TODO: look at the new effect classes)
void effect(QObject* target, const char* slot, int frames, int duration = 400, const char* cleanup = 0);
// Returns the current users's Documents/My Documents folder
QString getDocumentsPath();
// Returns the pixmap of the given window id.
QPixmap grabWindow(WId winId);
// Set the target window as the foreground window (Windows only)
void setForegroundWindow(QWidget *window);
// Adds lightscreen to the startup list in Windows & Linux (KDE, Gnome and Xfce for now).
void setStartup(bool startup, bool hide);
// Creates a new QGraphicsDropShadowEffect to apply to widgets.
QGraphicsEffect* shadow(QColor color = Qt::black, int blurRadius = 6, int offset = 1);
// Translates the ui to the given language name.
void translate(QString language);
// Returns a QIcon for the given icon name (taking into account color schemes and whatnot).
QIcon icon(QString name);
// X11-specific functions for the Window Picker
#if defined(Q_WS_X11)
Window findRealWindow(Window w, int depth = 0);
Window windowUnderCursor(bool includeDecorations = true);
#endif
}
#endif /*OS_H_*/
diff --git a/tools/qtimgur.cpp b/tools/qtimgur.cpp
index 0301ffc..5fcd6a1 100644
--- a/tools/qtimgur.cpp
+++ b/tools/qtimgur.cpp
@@ -1,158 +1,164 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "qtimgur.h"
#include <QFile>
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QXmlStreamReader>
-#include <QDebug>
-
-QtImgur::QtImgur(const QString &APIKey, QObject *parent) : QObject(parent), mAPIKey(APIKey)
+QtImgur::QtImgur(const QString &APIKey, QObject *parent) : QObject(parent), mAPIKey(APIKey), directUrl(false)
{
mNetworkManager = new QNetworkAccessManager(this);
connect(mNetworkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(reply(QNetworkReply*)));
}
void QtImgur::cancelAll()
{
foreach (QNetworkReply *reply, mFiles.keys()) {
reply->abort();
}
mFiles.clear();
}
void QtImgur::cancel(const QString &fileName)
{
QNetworkReply *reply = mFiles.key(fileName);
if (!reply) {
return;
}
mFiles.remove(reply);
reply->abort();
}
void QtImgur::upload(const QString &fileName)
{
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly)) {
emit error(fileName, QtImgur::ErrorFile);
return;
}
QByteArray data;
data.append(QString("key=").toUtf8());
data.append(QUrl::toPercentEncoding(mAPIKey));
data.append(QString("&image=").toUtf8());
data.append(QUrl::toPercentEncoding(file.readAll().toBase64()));
file.close();
QNetworkRequest request(QUrl("http://api.imgur.com/2/upload"));
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
QNetworkReply *reply = mNetworkManager->post(request, data);
connect(reply, SIGNAL(uploadProgress(qint64, qint64)), this, SLOT(progress(qint64, qint64)));
mFiles.insert(reply, fileName);
}
void QtImgur::progress(qint64 bytesSent, qint64 bytesTotal)
{
qint64 totalSent, totalTotal;
QNetworkReply *senderReply = qobject_cast<QNetworkReply*>(sender());
senderReply->setProperty("bytesSent", bytesSent);
senderReply->setProperty("bytesTotal", bytesTotal);
totalSent = bytesSent;
totalTotal = bytesTotal;
foreach (QNetworkReply *reply, mFiles.keys()) {
if (reply != senderReply) {
totalSent += reply->property("bytesSent").toLongLong();
totalTotal += reply->property("bytesTotal").toLongLong();
}
}
emit uploadProgress(totalSent, totalTotal);
}
void QtImgur::reply(QNetworkReply *reply)
{
QString fileName = mFiles[reply];
mFiles.remove(reply);
if (reply->error() != QNetworkReply::NoError) {
if (reply->error() == QNetworkReply::OperationCanceledError)
emit error(fileName, QtImgur::ErrorCancel);
else
emit error(fileName, QtImgur::ErrorNetwork);
reply->deleteLater();
return;
}
if (reply->rawHeader("X-RateLimit-Remaining") == "0") {
emit error(fileName, QtImgur::ErrorCredits);
reply->deleteLater();
return;
}
QXmlStreamReader reader(reply->readAll());
+
+ QString url_option = "imgur_page";
+
+ if (directUrl)
+ url_option = "original";
+
QString url;
QString deleteHash;
+
+
bool hasError = false;
while (!reader.atEnd()) {
reader.readNext();
if (reader.isStartElement()) {
if (reader.name() == "error") {
hasError = true;
}
if (reader.name() == "deletehash") {
deleteHash = reader.readElementText();
}
- if (reader.name() == "imgur_page") {
+ if (reader.name() == url_option) {
url = reader.readElementText();
}
}
}
if (deleteHash.isEmpty() || url.isEmpty() || hasError) {
emit error(fileName, QtImgur::ErrorUpload);
}
else {
emit uploaded(fileName, url, deleteHash);
}
reply->deleteLater();
}
diff --git a/tools/qtimgur.h b/tools/qtimgur.h
index 7082322..2786be0 100644
--- a/tools/qtimgur.h
+++ b/tools/qtimgur.h
@@ -1,63 +1,64 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef QTIMGUR_H
#define QTIMGUR_H
#include <QObject>
#include <QHash>
#include <QNetworkReply>
#include <QPointer>
class QNetworkAccessManager;
class QtImgur: public QObject {
Q_OBJECT
public:
enum Error {
ErrorFile,
ErrorNetwork,
ErrorCredits,
ErrorUpload,
ErrorCancel
};
QtImgur(const QString &APIKey, QObject *parent);
+ bool directUrl;
public slots:
void cancelAll();
void cancel(const QString &fileName);
void upload(const QString &fileName);
protected slots:
void progress(qint64, qint64);
void reply(QNetworkReply* reply);
signals:
void error(QString, QtImgur::Error);
void uploadProgress(qint64, qint64);
void uploaded(QString file, QString url, QString deleteHash);
private:
QString mAPIKey;
QNetworkAccessManager *mNetworkManager;
QHash<QNetworkReply*, QString> mFiles;
};
#endif // QTIMGUR_H
diff --git a/tools/screenshot.cpp b/tools/screenshot.cpp
index 0501bcc..109b675 100644
--- a/tools/screenshot.cpp
+++ b/tools/screenshot.cpp
@@ -1,499 +1,498 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QApplication>
#include <QClipboard>
#include <QDateTime>
#include <QDesktopWidget>
#include <QFileDialog>
#include <QPainter>
#include <QPixmap>
#include <QProcess>
-
-#include <QDebug>
+#include <QTextStream>
#include "windowpicker.h"
#include "../dialogs/areadialog.h"
#include "uploader.h"
#include "screenshot.h"
#include "screenshotmanager.h"
#include "os.h"
#ifdef Q_OS_WIN
#include <windows.h>
#endif
#ifdef Q_WS_X11
#include <QX11Info>
#include <X11/X.h>
#include <X11/Xlib.h>
#endif
Screenshot::Screenshot(QObject *parent, Screenshot::Options options):
QObject(parent),
mOptions(options),
mPixmapDelay(false),
mUnloaded(false),
mUnloadFilename()
{
// Here be crickets
}
Screenshot::~Screenshot()
{
if (!mUnloadFilename.isEmpty()) {
QFile::remove(mUnloadFilename);
}
}
QString Screenshot::getName(NamingOptions options, QString prefix, QDir directory)
{
QString naming;
int naming_largest = 0;
if (options.flip) {
naming = "%1" + prefix;
}
else {
naming = prefix + "%1";
}
switch (options.naming)
{
case Screenshot::Numeric: // Numeric
// Iterating through the folder to find the largest numeric naming.
foreach(QString file, directory.entryList(QDir::Files))
{
if (file.contains(prefix)) {
file.chop(file.size() - file.lastIndexOf("."));
file.remove(prefix);
if (file.toInt()> naming_largest) {
naming_largest = file.toInt();
}
}
}
if (options.leadingZeros > 0) {
//Pretty, huh?
QString format;
QTextStream (&format) << "%0" << (options.leadingZeros+1) << "d";
naming = naming.arg(QString().sprintf(format.toLatin1(), naming_largest + 1));
}
else {
naming = naming.arg(naming_largest + 1);
}
break;
case Screenshot::Date: // Date
naming = naming.arg(QLocale().toString(QDateTime::currentDateTime(), options.dateFormat));
break;
case Screenshot::Timestamp: // Timestamp
naming = naming.arg(QDateTime::currentDateTime().toTime_t());
break;
case Screenshot::Empty:
naming = naming.arg("");
break;
}
return naming;
}
QString& Screenshot::unloadedFileName()
{
return mUnloadFilename;
}
Screenshot::Options &Screenshot::options()
{
return mOptions;
}
QPixmap &Screenshot::pixmap()
{
return mPixmap;
}
//
void Screenshot::confirm(bool result)
{
if (result) {
save();
}
else {
mOptions.result = Screenshot::Cancel;
emit finished();
}
emit cleanup();
mPixmap = QPixmap();
}
void Screenshot::confirmation()
{
emit askConfirmation();
if (mOptions.file) {
unloadPixmap();
}
}
void Screenshot::discard()
{
confirm(false);
}
void Screenshot::markUpload()
{
mOptions.upload = true;
}
void Screenshot::optimize()
{
QProcess* process = new QProcess(this);
// Delete the QProcess once it's done.
connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), this , SLOT(optimizationDone()));
connect(process, SIGNAL(finished(int, QProcess::ExitStatus)), process, SLOT(deleteLater()));
QString optiPNG;
#ifdef Q_OS_UNIX
optiPNG = "optipng";
#else
optiPNG = qApp->applicationDirPath() + QDir::separator() + "optipng.exe";
#endif
if (!QFile::exists(optiPNG)) {
emit optimizationDone();
}
process->start(optiPNG, QStringList() << mOptions.fileName);
if (process->state() == QProcess::NotRunning) {
emit optimizationDone();
process->deleteLater();
}
}
void Screenshot::optimizationDone()
{
if (mOptions.upload) {
upload();
}
else {
emit finished();
}
}
void Screenshot::save()
{
QString name = "";
QString fileName = "";
Screenshot::Result result = Screenshot::Fail;
if (mOptions.file && !mOptions.saveAs) {
name = newFileName();
}
else if (mOptions.file && mOptions.saveAs) {
name = QFileDialog::getSaveFileName(0, tr("Save as.."), newFileName(), "*" + extension());
}
if (!mOptions.replace && QFile::exists(name+extension())) {
// Ugly? You should see my wife!
int count = 0;
int cunt = 0;
QString naming = QFileInfo(name).fileName();
foreach(QString file, QFileInfo(name+extension()).dir().entryList(QDir::Files)) {
if (file.contains(naming)) {
file.remove(naming);
file.remove(" (");
file.remove(")");
file.remove(extension());
cunt = file.toInt();
if (cunt > count) {
count = cunt;
}
}
}
name = name + " (" + QString::number(count+1) + ")";
}
if (mOptions.clipboard && !(mOptions.upload && mOptions.imgurClipboard)) {
if (mUnloaded) {
mUnloaded = false;
mPixmap = QPixmap(mUnloadFilename);
}
QApplication::clipboard()->setPixmap(mPixmap, QClipboard::Clipboard);
if (!mOptions.file) {
result = (Screenshot::Result)1;
}
}
// In the following code I use (Screenshot::Result)1 instead of Screenshot::Success because of some weird issue with the X11 headers. //TODO
if (mOptions.file) {
fileName = name + extension();
if (name.isEmpty()) {
result = Screenshot::Cancel;
}
else if (mUnloaded) {
result = (QFile::rename(mUnloadFilename, fileName)) ? (Screenshot::Result)1: Screenshot::Fail;
}
else if (mPixmap.save(fileName, 0, mOptions.quality)) {
result = (Screenshot::Result)1;
}
else {
result = Screenshot::Fail;
}
os::addToRecentDocuments(fileName);
}
mOptions.fileName = fileName;
mOptions.result = result;
if (!mOptions.result)
emit finished();
if (mOptions.format == Screenshot::PNG && mOptions.optimize && mOptions.file) {
if (!mOptions.upload) {
ScreenshotManager::instance()->saveHistory(mOptions.fileName);
}
optimize();
}
else if (mOptions.upload) {
upload();
}
else if (mOptions.file) {
ScreenshotManager::instance()->saveHistory(mOptions.fileName);
emit finished();
}
else {
emit finished();
}
}
void Screenshot::setPixmap(QPixmap pixmap)
{
mPixmap = pixmap;
if (mPixmap.isNull()) {
emit confirm(false);
}
else {
confirmation();
}
}
void Screenshot::take()
{
switch (mOptions.mode)
{
case Screenshot::WholeScreen:
wholeScreen();
break;
case Screenshot::SelectedArea:
selectedArea();
break;
case Screenshot::ActiveWindow:
activeWindow();
break;
case Screenshot::SelectedWindow:
selectedWindow();
break;
}
if (mPixmapDelay)
return;
if (mPixmap.isNull()) {
confirm(false);
}
else {
confirmation();
}
}
void Screenshot::upload()
{
if (mOptions.file) {
Uploader::instance()->upload(mOptions.fileName);
}
else if (unloadPixmap()) {
Uploader::instance()->upload(mUnloadFilename);
}
else {
emit finished();
}
}
void Screenshot::uploadDone(QString url)
{
if (mOptions.imgurClipboard && !url.isEmpty())
QApplication::clipboard()->setText(url, QClipboard::Clipboard);
emit finished();
}
//
void Screenshot::activeWindow()
{
#ifdef Q_OS_WIN
HWND fWindow = GetForegroundWindow();
if (fWindow == NULL)
return;
if (fWindow == GetDesktopWindow()) {
wholeScreen();
return;
}
mPixmap = os::grabWindow((WId)GetForegroundWindow());
#endif
#if defined(Q_WS_X11)
Window focus;
int revert;
XGetInputFocus(QX11Info::display(), &focus, &revert);
mPixmap = QPixmap::grabWindow(focus);
#endif
}
QString Screenshot::extension() const
{
switch (mOptions.format) {
case Screenshot::PNG:
return ".png";
break;
case Screenshot::BMP:
return ".bmp";
break;
case Screenshot::JPEG:
default:
return ".jpg";
break;
}
}
void Screenshot::grabDesktop()
{
QRect geometry;
if (mOptions.currentMonitor) {
geometry = qApp->desktop()->screenGeometry(QCursor::pos());
}
else {
geometry = qApp->desktop()->geometry();
}
mPixmap = QPixmap::grabWindow(qApp->desktop()->winId(), geometry.x(), geometry.y(), geometry.width(), geometry.height());
if (mOptions.cursor && !mPixmap.isNull()) {
QPainter painter(&mPixmap);
painter.drawPixmap(QCursor::pos(), os::cursor());
}
}
QString Screenshot::newFileName() const
{
if (!mOptions.directory.exists()) {
mOptions.directory.mkpath(mOptions.directory.path());
}
QString naming = Screenshot::getName(mOptions.namingOptions, mOptions.prefix, mOptions.directory);
QString path = QDir::toNativeSeparators(mOptions.directory.path());
// Cleanup
if (path.at(path.size()-1) != QDir::separator() && !path.isEmpty()) {
path.append(QDir::separator());
}
QString fileName;
fileName.append(path);
fileName.append(naming);
return fileName;
}
void Screenshot::selectedArea()
{
grabDesktop();
if (mPixmap.isNull())
return;
AreaDialog selector(this);
int result = selector.exec();
if (result == QDialog::Accepted) {
mPixmap = mPixmap.copy(selector.resultRect());
}
else {
mPixmap = QPixmap();
}
}
void Screenshot::selectedWindow()
{
WindowPicker* windowPicker = new WindowPicker;
mPixmapDelay = true;
connect(windowPicker, SIGNAL(pixmap(QPixmap)), this, SLOT(setPixmap(QPixmap)));
}
bool Screenshot::unloadPixmap()
{
if (mUnloaded)
return true;
// Unloading the pixmap to reduce memory usage during previews
mUnloadFilename = mOptions.directory.path() + QDir::separator() + QString(".lstemp.%1%2").arg(qrand() * qrand() + QDateTime::currentDateTime().toTime_t()).arg(extension());
mUnloaded = mPixmap.save(mUnloadFilename, 0, mOptions.quality);
if (mUnloaded) {
mPixmap = QPixmap();
}
return mUnloaded;
}
void Screenshot::wholeScreen()
{
grabDesktop();
}
diff --git a/tools/screenshot.h b/tools/screenshot.h
index 38574df..552c351 100644
--- a/tools/screenshot.h
+++ b/tools/screenshot.h
@@ -1,142 +1,142 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef SCREENSHOT_H
#define SCREENSHOT_H
#include <QObject>
#include <QDir>
#include <QPixmap>
class Screenshot : public QObject
{
Q_OBJECT
public:
enum Format
{
PNG = 0,
JPEG = 1,
BMP = 2,
TIFF = 3
};
enum Naming
{
Numeric = 0,
Date = 1,
Timestamp = 2,
Empty = 3
};
enum Mode
{
WholeScreen = 0,
ActiveWindow = 1,
SelectedArea = 2,
SelectedWindow = 3
};
enum Result
{
Fail = 0,
Success = 1,
Cancel = 2
};
struct NamingOptions
{
Naming naming;
bool flip;
int leadingZeros;
QString dateFormat;
};
struct Options
{
QString fileName;
Result result;
Format format;
NamingOptions namingOptions;
QDir directory;
QString prefix;
int mode;
int quality;
bool animations;
bool clipboard;
bool imgurClipboard;
bool currentMonitor;
bool cursor;
bool file;
bool magnify;
bool optimize;
bool preview;
bool replace;
bool saveAs;
bool upload;
};
Screenshot(QObject *parent, Screenshot::Options options);
~Screenshot();
Screenshot::Options &options();
QPixmap &pixmap();
static QString getName(NamingOptions options, QString prefix, QDir directory);
QString &unloadedFileName();
public slots:
void confirm(bool result = true);
void confirmation();
void discard();
void markUpload();
void optimize();
void optimizationDone();
void save();
void setPixmap(QPixmap pixmap);
void take();
void upload();
void uploadDone(QString url);
signals:
void askConfirmation();
void cleanup();
void finished();
private:
void activeWindow();
QString extension() const;
void grabDesktop();
QString newFileName() const;
void selectedArea();
void selectedWindow();
bool unloadPixmap();
void wholeScreen();
private:
Screenshot::Options mOptions;
QPixmap mPixmap;
bool mPixmapDelay;
bool mUnloaded;
QString mUnloadFilename;
};
#endif // SCREENSHOT_H
diff --git a/tools/screenshotmanager.cpp b/tools/screenshotmanager.cpp
index f5b6230..6e3e33a 100644
--- a/tools/screenshotmanager.cpp
+++ b/tools/screenshotmanager.cpp
@@ -1,210 +1,211 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "screenshotmanager.h"
#include "screenshot.h"
#include "uploader.h"
#include <QApplication>
#include <QDateTime>
-#include <QDebug>
#include <QStandardPaths>
#include <QFile>
#include <QSettings>
#include <QtSql/QSqlDatabase>
+#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlRecord>
-#include <QtSql/QSqlError>
+
+#include <QDebug>
ScreenshotManager::ScreenshotManager(QObject *parent = 0) : QObject(parent)
{
QString historyPath;
if (QFile::exists(qApp->applicationDirPath() + QDir::separator() + "config.ini")) {
mSettings = new QSettings(qApp->applicationDirPath() + QDir::separator() + "config.ini", QSettings::IniFormat);
mPortableMode = true;
historyPath = qApp->applicationDirPath() + QDir::separator();
}
else {
mSettings = new QSettings();
mPortableMode = false;
historyPath = QStandardPaths::writableLocation(QStandardPaths::DataLocation) + QDir::separator();
}
// Creating the SQLite database.
QSqlDatabase history = QSqlDatabase::addDatabase("QSQLITE");
QDir hp(historyPath);
if (!hp.exists())
hp.mkpath(historyPath);
history.setHostName("localhost");
history.setDatabaseName(historyPath + "history.sqlite");
if (history.open()) {
history.exec("CREATE TABLE IF NOT EXISTS history (fileName text, URL text, deleteURL text, time integer)");
}
else {
qCritical() << "Could not open SQLite DB.";
}
connect(Uploader::instance(), SIGNAL(done(QString, QString, QString)), this, SLOT(uploadDone(QString, QString, QString)));
}
ScreenshotManager::~ScreenshotManager()
{
delete mSettings;
}
int ScreenshotManager::activeCount() const
{
return mScreenshots.count();
}
bool ScreenshotManager::portableMode()
{
return mPortableMode;
}
void ScreenshotManager::saveHistory(QString fileName, QString url, QString deleteHash)
{
if (!mSettings->value("/options/history", true).toBool())
return;
QString deleteUrl;
if (!deleteHash.isEmpty())
deleteUrl = "http://imgur.com/delete/" + deleteHash;
QSqlQuery query;
query.prepare("INSERT INTO history (fileName, URL, deleteURL, time) VALUES(?, ?, ?, ?)");
query.addBindValue(fileName);
query.addBindValue(url);
query.addBindValue(deleteUrl);
query.addBindValue(QDateTime::currentMSecsSinceEpoch());
query.exec();
}
void ScreenshotManager::updateHistory(QString fileName, QString url, QString deleteHash)
{
if (!mSettings->value("/options/history", true).toBool())
return;
QSqlQuery query;
query.prepare("SELECT fileName FROM history WHERE URL IS NOT EMPTY AND fileName = ?");
query.addBindValue(fileName);
query.exec();
if (query.record().count() > 0 && !url.isEmpty()) {
// Makes sure to only update the latest file, in case something weird happened with the files (deleted screenshots, etc). Though that might still happen in some edge cases that I'm too lazy to account for.
QSqlQuery updateQuery;
updateQuery.prepare("UPDATE history SET URL = ?, deleteURL = ?, time = ? WHERE fileName = ?");
updateQuery.addBindValue(url);
updateQuery.addBindValue("http://imgur.com/delete/" + deleteHash);
updateQuery.addBindValue(QDateTime::currentMSecsSinceEpoch());
updateQuery.addBindValue(fileName);
updateQuery.exec();
}
else {
saveHistory(fileName, url, deleteHash);
}
}
void ScreenshotManager::removeHistory(QString fileName, qint64 time)
{
QSqlQuery removeQuery;
removeQuery.prepare("DELETE FROM history WHERE fileName = ? AND time = ?");
removeQuery.addBindValue(fileName);
removeQuery.addBindValue(time);
removeQuery.exec();
}
void ScreenshotManager::clearHistory()
{
QSqlQuery clearQuery("DROP TABLE history");
clearQuery.exec();
}
//
void ScreenshotManager::askConfirmation()
{
Screenshot* s = qobject_cast<Screenshot*>(sender());
emit confirm(s);
}
void ScreenshotManager::cleanup()
{
Screenshot* screenshot = qobject_cast<Screenshot*>(sender());
emit windowCleanup(screenshot->options());
}
void ScreenshotManager::finished()
{
Screenshot* screenshot = qobject_cast<Screenshot*>(sender());
mScreenshots.removeOne(screenshot);
screenshot->deleteLater();
}
void ScreenshotManager::take(Screenshot::Options &options)
{
Screenshot* newScreenshot = new Screenshot(this, options);
mScreenshots.append(newScreenshot);
connect(newScreenshot, SIGNAL(askConfirmation()), this, SLOT(askConfirmation()));
connect(newScreenshot, SIGNAL(cleanup()) , this, SLOT(cleanup()));
connect(newScreenshot, SIGNAL(finished()) , this, SLOT(finished()));
newScreenshot->take();
}
void ScreenshotManager::uploadDone(QString fileName, QString url, QString deleteHash)
{
foreach (Screenshot* screenshot, mScreenshots) {
if (screenshot->options().fileName == fileName
|| screenshot->unloadedFileName() == fileName) {
screenshot->uploadDone(url);
if (screenshot->options().file) {
updateHistory(fileName, url, deleteHash);
}
else {
saveHistory("", url, deleteHash);
}
return;
}
}
// If we get here, it's because the screenshot upload wasn't on the current screenshot list, which means it's a View History/Upload Later upload.
updateHistory(fileName, url, deleteHash);
}
// Singleton
ScreenshotManager* ScreenshotManager::mInstance = 0;
ScreenshotManager *ScreenshotManager::instance()
{
if (!mInstance)
mInstance = new ScreenshotManager();
return mInstance;
}
diff --git a/tools/screenshotmanager.h b/tools/screenshotmanager.h
index 9065d6f..bd4bcc7 100644
--- a/tools/screenshotmanager.h
+++ b/tools/screenshotmanager.h
@@ -1,71 +1,71 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef SCREENSHOTMANAGER_H
#define SCREENSHOTMANAGER_H
#include <QObject>
#include <QList>
#include "screenshot.h"
class QSettings;
class ScreenshotManager : public QObject
{
Q_OBJECT
public:
enum State
{
Idle = 0,
Busy = 1,
Disabled = 2
};
public:
ScreenshotManager(QObject *parent);
~ScreenshotManager();
static ScreenshotManager *instance();
int activeCount() const;
bool portableMode();
void saveHistory(QString fileName, QString url = "", QString deleteHash = "");
void updateHistory(QString fileName, QString url, QString deleteHash);
void removeHistory(QString fileName, qint64 time);
void clearHistory();
QSettings *settings() const { return mSettings; }
public slots:
void askConfirmation();
void cleanup();
void finished();
void take(Screenshot::Options &options);
void uploadDone(QString fileName, QString url, QString deleteHash);
signals:
void confirm(Screenshot* screenshot);
void windowCleanup(Screenshot::Options &options);
private:
static ScreenshotManager* mInstance;
QList<Screenshot*> mScreenshots;
QSettings *mSettings;
bool mPortableMode;
};
#endif // SCREENSHOTMANAGER_H
diff --git a/tools/uploader.cpp b/tools/uploader.cpp
index 1a672ce..27f5ddd 100644
--- a/tools/uploader.cpp
+++ b/tools/uploader.cpp
@@ -1,136 +1,137 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "uploader.h"
#include "qtimgur.h"
#include "screenshotmanager.h"
#include <QList>
#include <QPair>
-
-#include <QDebug>
+#include <QSettings>
Uploader* Uploader::mInstance = 0;
Uploader::Uploader(QObject *parent) : QObject(parent), mProgressSent(0), mProgressTotal(0)
{
mImgur = new QtImgur("6920a141451d125b3e1357ce0e432409", this);
connect(mImgur, SIGNAL(uploaded(QString, QString, QString)), this, SLOT(uploaded(QString, QString, QString)));
connect(mImgur, SIGNAL(error(QString, QtImgur::Error)) , this, SLOT(imgurError(QString, QtImgur::Error)));
connect(mImgur, SIGNAL(uploadProgress(qint64,qint64)) , this, SLOT(reportProgress(qint64, qint64)));
}
Uploader *Uploader::instance()
{
if (!mInstance)
mInstance = new Uploader();
return mInstance;
}
QString Uploader::lastUrl() const
{
return mLastUrl;
}
void Uploader::cancel()
{
mImgur->cancelAll();
}
void Uploader::imgurError(const QString &file, const QtImgur::Error e)
{
// Removing the screenshot.
for (int i = 0; i < mScreenshots.size(); ++i) {
if (mScreenshots.at(i).first == file) {
mScreenshots.removeAt(i);
break;
}
}
QString errorString;
switch (e) {
case QtImgur::ErrorFile:
errorString = tr("Screenshot file not found.");
break;
case QtImgur::ErrorNetwork:
errorString = tr("Could not reach imgur.com");
break;
case QtImgur::ErrorCredits:
errorString = tr("You have exceeded your upload quota.");
break;
case QtImgur::ErrorUpload:
errorString = tr("Upload failed for %1.").arg(QFileInfo(file).fileName());
break;
}
emit done(file, "", "");
emit error(errorString);
}
void Uploader::upload(const QString &fileName)
{
if (fileName.isEmpty()) {
return;
}
+ mImgur->directUrl = ScreenshotManager::instance()->settings()->value("options/uploadDirectLink", false).toBool();
+
// Cancel on duplicate
for (int i = 0; i < mScreenshots.size(); ++i) {
if (mScreenshots.at(i).first == fileName) {
return;
}
}
mImgur->upload(fileName);
QPair<QString, QString> screenshot;
screenshot.first = fileName;
screenshot.second = tr("Uploading...");
mScreenshots.append(screenshot);
}
void Uploader::uploaded(const QString &file, const QString &url, const QString &deleteHash)
{
// Removing the screenshot.
for (int i = 0; i < mScreenshots.size(); ++i) {
if (mScreenshots.at(i).first == file) {
mScreenshots.removeAt(i);
break;
}
}
mLastUrl = url;
emit done(file, url, deleteHash);
}
int Uploader::uploading()
{
return mScreenshots.count();
}
void Uploader::reportProgress(qint64 sent, qint64 total)
{
mProgressSent = sent;
mProgressTotal = total;
emit progress(sent, total);
}
diff --git a/tools/uploader.h b/tools/uploader.h
index 7d53216..02363d4 100644
--- a/tools/uploader.h
+++ b/tools/uploader.h
@@ -1,64 +1,64 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef UPLOADER_H
#define UPLOADER_H
#include <QObject>
#include <QList>
#include <QPair>
#include "qtimgur.h"
class Uploader : public QObject
{
Q_OBJECT
public:
Uploader(QObject *parent = 0);
static Uploader* instance();
QString lastUrl() const;
QList< QPair<QString, QString> > &screenshots() { return mScreenshots; }
qint64 progressSent() const { return mProgressSent; }
qint64 progressTotal() const { return mProgressTotal; }
public slots:
void cancel();
void imgurError(const QString &file, const QtImgur::Error e);
void upload(const QString &fileName);
void uploaded(const QString &fileName, const QString &url, const QString &deleteHash);
int uploading();
void reportProgress(qint64 sent, qint64 total);
signals:
void done(QString, QString, QString);
void error(QString);
void progress(qint64, qint64);
private:
static Uploader* mInstance;
// Filename, url
QList< QPair<QString, QString> > mScreenshots;
QtImgur *mImgur;
QString mLastUrl;
qint64 mProgressSent;
qint64 mProgressTotal;
};
#endif // UPLOADER_H
diff --git a/tools/windowpicker.cpp b/tools/windowpicker.cpp
index 396882b..fce3e85 100644
--- a/tools/windowpicker.cpp
+++ b/tools/windowpicker.cpp
@@ -1,311 +1,309 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QApplication>
#include <QDesktopWidget>
#include <QLabel>
#include <QMouseEvent>
#include <QPushButton>
#include <QRubberBand>
#include <QRubberBand>
#include <QVBoxLayout>
#include <QWidget>
-#include <QDebug>
-
#include "windowpicker.h"
#include "os.h"
#if defined(Q_OS_WIN)
#include <QtWin>
#include <windows.h>
#ifdef _WIN64
#define GCL_HICON GCLP_HICON
#define GCL_HICONSM GCLP_HICONSM
#endif
#elif defined(Q_WS_X11)
#include <QX11Info>
#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#endif
WindowPicker::WindowPicker() : QWidget(0), mCrosshair(":/icons/picker"), mWindowLabel(0), mTaken(false)
{
#if defined(Q_OS_WIN)
setWindowFlags(Qt::SplashScreen | Qt::WindowStaysOnTopHint);
#elif defined(Q_WS_X11)
setWindowFlags(Qt::WindowStaysOnTopHint);
#endif
setWindowTitle(tr("Lightscreen Window Picker"));
setStyleSheet("QWidget { color: #000; } #frame { padding: 7px 10px; border: 4px solid #232323; background-color: rgba(250, 250, 250, 255); }");
QLabel *helpLabel = new QLabel(tr("Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture."), this);
helpLabel->setMinimumWidth(400);
helpLabel->setMaximumWidth(400);
helpLabel->setWordWrap(true);
mWindowIcon = new QLabel(this);
mWindowIcon->setMinimumSize(22, 22);
mWindowIcon->setMaximumSize(22, 22);
mWindowIcon->setScaledContents(true);
mWindowLabel = new QLabel(tr(" - Start dragging to select windows"), this);
mWindowLabel->setStyleSheet("font-weight: bold");
mCrosshairLabel = new QLabel(this);
mCrosshairLabel->setAlignment(Qt::AlignHCenter);
mCrosshairLabel->setPixmap(mCrosshair);
QPushButton *closeButton = new QPushButton(tr("Close"));
connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
QHBoxLayout *windowLayout = new QHBoxLayout;
windowLayout->addWidget(mWindowIcon);
windowLayout->addWidget(mWindowLabel);
windowLayout->setMargin(0);
QHBoxLayout *buttonLayout = new QHBoxLayout;
buttonLayout->addStretch(0);
buttonLayout->addWidget(closeButton);
buttonLayout->setMargin(0);
QHBoxLayout *crosshairLayout = new QHBoxLayout;
crosshairLayout->addStretch(0);
crosshairLayout->addWidget(mCrosshairLabel);
crosshairLayout->addStretch(0);
crosshairLayout->setMargin(0);
QVBoxLayout *fl = new QVBoxLayout;
fl->addWidget(helpLabel);
fl->addLayout(windowLayout);
fl->addLayout(crosshairLayout);
fl->addLayout(buttonLayout);
fl->setMargin(0);
QFrame *frame = new QFrame(this);
frame->setObjectName("frame");
frame->setLayout(fl);
QVBoxLayout *l = new QVBoxLayout;
l->setMargin(0);
l->addWidget(frame);
setLayout(l);
resize(sizeHint());
move(QApplication::desktop()->screenGeometry(QApplication::desktop()->screenNumber(QCursor::pos())).center()-QPoint(width()/2, height()/2));
show();
}
WindowPicker::~WindowPicker() {
qApp->restoreOverrideCursor();
}
void WindowPicker::cancel() {
mWindowIcon->setPixmap(QPixmap());
mCrosshairLabel->setPixmap(mCrosshair);
qApp->restoreOverrideCursor();
}
void WindowPicker::closeEvent(QCloseEvent*)
{
if (!mTaken)
emit pixmap(QPixmap());
qApp->restoreOverrideCursor();
deleteLater();
}
void WindowPicker::mouseMoveEvent(QMouseEvent *event)
{
QString windowName;
#if defined(Q_OS_WIN)
POINT mousePos;
mousePos.x = event->globalX();
mousePos.y = event->globalY();
HWND cWindow = GetAncestor(WindowFromPoint(mousePos), GA_ROOT);
mCurrentWindow = (WId) cWindow;
if (mCurrentWindow == winId()) {
mWindowIcon->setPixmap(QPixmap());
mWindowLabel->setText("");
return;
}
// Text
WCHAR str[60];
HICON icon;
::GetWindowText((HWND)mCurrentWindow, str, 60);
windowName = QString::fromWCharArray(str);
///
// Retrieving the application icon
icon = (HICON)::GetClassLong((HWND)mCurrentWindow, GCL_HICON);
if (icon != NULL) {
mWindowIcon->setPixmap(QtWin::fromHICON(icon));
}
else {
mWindowIcon->setPixmap(QPixmap());
}
#elif defined(Q_WS_X11)
Window cWindow = os::windowUnderCursor(false);
if (cWindow == mCurrentWindow) {
return;
}
mCurrentWindow = cWindow;
if (mCurrentWindow == winId()) {
mWindowIcon->setPixmap(QPixmap());
mWindowLabel->setText("");
return;
}
// Getting the window name property.
XTextProperty tp;
char **text;
int count;
if (XGetTextProperty(QX11Info::display(), cWindow, &tp, XA_WM_NAME) != 0 && tp.value != NULL ) {
if (tp.encoding == XA_STRING) {
windowName = QString::fromLocal8Bit((const char*) tp.value);
}
else if (XmbTextPropertyToTextList( QX11Info::display(), &tp, &text, &count) == Success &&
text != NULL && count > 0) {
windowName = QString::fromLocal8Bit(text[0]);
XFreeStringList(text);
}
XFree(tp.value);
}
// Retrieving the _NET_WM_ICON property.
Atom type_ret = None;
unsigned char *data = 0;
int format = 0;
unsigned long n = 0;
unsigned long extra = 0;
int width = 0;
int height = 0;
Atom _net_wm_icon = XInternAtom(QX11Info::display(), "_NET_WM_ICON", False);
if (XGetWindowProperty(QX11Info::display(), cWindow, _net_wm_icon, 0, 1, False,
XA_CARDINAL, &type_ret, &format, &n, &extra, (unsigned char **)&data) == Success && data)
{
width = data[0];
XFree(data);
}
if (XGetWindowProperty(QX11Info::display(), cWindow, _net_wm_icon, 1, 1, False,
XA_CARDINAL, &type_ret, &format, &n, &extra, (unsigned char **)&data) == Success && data)
{
height = data[0];
XFree(data);
}
if (XGetWindowProperty(QX11Info::display(), cWindow, _net_wm_icon, 2, width*height, False,
XA_CARDINAL, &type_ret, &format, &n, &extra, (unsigned char **)&data) == Success && data)
{
QImage img(data, width, height, QImage::Format_ARGB32);
mWindowIcon->setPixmap(QPixmap::fromImage(img));
XFree(data);
}
else {
mWindowIcon->setPixmap(QPixmap());
}
#endif
QString windowText;
if (!mWindowIcon->pixmap()) {
windowText = QString(" - %1").arg(windowName);
}
else {
windowText = windowName;
}
if (windowText == " - ") {
mWindowLabel->setText("");
return;
}
if (windowText.length() == 62) {
mWindowLabel->setText(windowText + "...");
}
else {
mWindowLabel->setText(windowText);
}
}
void WindowPicker::mousePressEvent(QMouseEvent *event)
{
qApp->setOverrideCursor(QCursor(mCrosshair));
mCrosshairLabel->setMinimumWidth(mCrosshairLabel->width());
mCrosshairLabel->setMinimumHeight(mCrosshairLabel->height());
mCrosshairLabel->setPixmap(QPixmap());
QWidget::mousePressEvent(event);
}
void WindowPicker::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) {
#if defined(Q_OS_WIN)
POINT mousePos;
mousePos.x = event->globalX();
mousePos.y = event->globalY();
HWND window = GetAncestor(WindowFromPoint(mousePos), GA_ROOT);
#elif defined(Q_WS_X11)
Window window = os::windowUnderCursor(false);
#endif
if ((WId)window == winId()) {
cancel();
return;
}
mTaken = true;
setWindowFlags(windowFlags() ^ Qt::WindowStaysOnTopHint);
close();
#ifdef Q_WS_X11
emit pixmap(QPixmap::grabWindow(mCurrentWindow));
#else
emit pixmap(os::grabWindow((WId)window));
#endif
return;
}
close();
}
diff --git a/tools/windowpicker.h b/tools/windowpicker.h
index dcdd845..4380ed7 100644
--- a/tools/windowpicker.h
+++ b/tools/windowpicker.h
@@ -1,56 +1,56 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef WINDOWPICKER_H
#define WINDOWPICKER_H
#include <QWidget>
class QLabel;
class QRect;
class QRubberBand;
class WindowPicker : public QWidget
{
Q_OBJECT
public:
WindowPicker();
~WindowPicker();
signals:
void pixmap(QPixmap pixmap);
protected:
void closeEvent(QCloseEvent*);
void mouseMoveEvent(QMouseEvent *event);
void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
private:
void cancel();
private:
QPixmap mCrosshair;
QLabel *mCrosshairLabel;
QLabel *mWindowIcon;
QLabel *mWindowLabel;
WId mCurrentWindow;
bool mTaken;
};
#endif // WINDOWPICKER_H
diff --git a/translations/chinese_simplified.qm b/translations/chinese_simplified.qm
deleted file mode 100644
index 45f8077..0000000
Binary files a/translations/chinese_simplified.qm and /dev/null differ
diff --git a/translations/dutch.qm b/translations/dutch.qm
deleted file mode 100644
index a6309b8..0000000
Binary files a/translations/dutch.qm and /dev/null differ
diff --git a/translations/dutch.ts b/translations/dutch.ts
deleted file mode 100644
index 2c067e9..0000000
--- a/translations/dutch.ts
+++ /dev/null
@@ -1,1179 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="nl">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation type="unfinished">Sluiten</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation>Klik om sneltoets in te stellen... </translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation>Sneltoets invoeren</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation>Ongeldige sneltoets</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation>U koos ervoor om Lightscreen te verbergen terwijl er geen pictogram is in het systeemvak. Hierdoor kunt u het programma alleen openen &lt;b&gt;als u een sneltoets hebt ingesteld&lt;/b&gt;.&lt;br&gt;Wat wilt u doen?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation>Verbergen maar pictogram in systeemvak inschakelen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation>Verbergen en niet waarschuwen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation>Enkel verbergen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation>Er werd geen schermafdruk gemaakt</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation>Mislukt!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation>Sommige sneltoetsen konden niet geregistreerd worden en zijn mogelijk al in gebruik</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translation>&lt;b&gt;Dit zijn de mislukte sneltoetsen:</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation>&lt;br&gt;De mislukte sneltoets is &lt;b&gt;%1&lt;/b&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation>&lt;br&gt;&lt;i&gt;Wat wilt u doen?&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation>Veranderen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation>Uitzetten</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation>Afsluiten</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation>Er is een nieuwe versie van Lightscreen beschikbaar.&lt;br&gt;Wilt u meer informatie?&lt;br&gt;(&lt;em&gt;U kunt deze melding uitschakelen&lt;/em&gt;)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation>Uitschakelen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation>Herinner mij later</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation>&amp;Bureaublad</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation>&amp;Gebied</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation>Ga naar &amp;map</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation>&amp;Tonen/Verbergen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation>&amp;Voorkeuren</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation>&amp;Afsluiten</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation>Lightscreen instellen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation>&amp;Voorkeuren</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation type="unfinished">Versie %1</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation>Conflicterende sneltoetsen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation>U hebt dezelfde sneltoetsen toegewezen aan verschillende acties.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation>Tekenfout in bestandsnaam</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation>De bestandsnaam kan volgende tekens niet bevatten: ? : \ / * &quot; &lt; &gt; |</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation>Selecteer waar u de schermafdrukken wilt opslaan</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation>U zult uw huidige voorkeuren verliezen als u de standaardwaarden herstelt.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation>Herstellen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation>Niet herstellen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation>Voorkeuren</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation>Bestand</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation>&amp;Map:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation>Het voorvoegsel voor het bestand met de schermafdruk</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation>&amp;Bestandsnaam:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation>Het voorvoegsel zal ingevoegd worden voor de &lt;em&gt;Naamgeving&lt;/em&gt; in het bestand met de schermafdruk. Het wordt gewoonlijk gebruikt om bestanden te onderscheiden. U kunt dit leeg laten.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation>(nummer)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation>(datum)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation>Het bestandsformaat voor de schermafdruk</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation>&amp;Formaat:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation>V&amp;ertraging:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation>Het programma zal het hier opgegeven aantal seconden &lt;b&gt;wachten&lt;/b&gt; voor de schermafdruk wordt gemaakt.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation>geen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation> seconden</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation type="unfinished">&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Projectsite op Sourceforge bezoeken&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Website van Lightscreen bezoeken&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation>&amp;Lightscreen opstarten bij systeemstart.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation>&amp;Hoofdvenster verbergen.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation>&amp;Pictogram tonen in systeemvak.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation>&amp;Lightscreen verbergen bij aanmaak schermafdruk.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation>Vergr&amp;ootglas tonen bij schermafdruk van gebied.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation>&amp;Taal:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation>Klik hier om de website van Lightscreen te bezoeken om meer te weten te komen over vertalingen.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;Meer informatie.&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation>&amp;Notificeer met:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation>Toont een bericht wanneer de schermafdruk is opgeslagen. Als u op dit bericht klikt, dan wordt de map geöpend waarin de schermafdruk werd opgeslagen.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation>Bericht bij systeemvakpictogram</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation>Gel&amp;uidsnotificatie</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation>Deze schuifbalk gaat van 0 (laagst) tot 100 (hoogst).&lt;br&gt;
-De kwaliteit heeft invloed op de bestandsgrootte en de duidelijkheid van de schermafdruk.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation>Schermafdruk &amp;kopiëren naar het klipbord.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation>Cursor op&amp;nemen in de schermafdruk.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation>Schermafdrukken in &amp;PNG-formaat optimaliseren.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation>Opslaan als...</translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation type="unfinished">Sluiten</translation>
- </message>
-</context>
-</TS>
diff --git a/translations/italian.qm b/translations/italian.qm
deleted file mode 100644
index 4efcdd3..0000000
Binary files a/translations/italian.qm and /dev/null differ
diff --git a/translations/italian.ts b/translations/italian.ts
deleted file mode 100644
index 2a7b22e..0000000
--- a/translations/italian.ts
+++ /dev/null
@@ -1,1179 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="it_IT">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation type="unfinished">Chiudi</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation>Clicca per selezionare la scorciatoia...</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation>Inserisci la scorciatoia</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation>Scorciatoia non valida</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation>Hai scelto di nascondere Lightscreen quando non c&apos;è nessuna icona nel tray, perciò non potrai accedere al programma &lt;b&gt;a meno che non hai selezionato una scorciatoia per fare ciò&lt;/b&gt;.&lt;br&gt;Cosa vuoi fare?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation>Nascondi ma abilita tray</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation>Nascondi e non avvisare</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation>Nascondi</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation>Lo screenshot non è stato creato</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation>Fallito!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation>Alcune scorciatoie non possono essere registrate, potrebbero essere in uso</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translation>&lt;br&gt;Le scorciatoie non accettate sono le seguenti:</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation>&lt;br&gt;La scorciatoia non accettata è &lt;b&gt;%1&lt;/b&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation>&lt;br&gt;&lt;i&gt;Cosa vuoi fare?&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation>Cambia</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation>Disabilita</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation>Esci</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation>E&apos; disponibile una nuova versione di Lightscreen.&lt;br&gt;Vuoi vedere più informazioni?&lt;br&gt;(&lt;em&gt;Puoi disattivare questa notifica&lt;/em&gt;)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation>Spegni</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation>Ricordamelo più tardi</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation>&amp;Schermo</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation>&amp;Area</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation>&amp;Vai alla cartella</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation>Mostra&amp;/Nascondi</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation>Visualizza &amp;Opzioni</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation>&amp;Esci</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation>Configura Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation>&amp;Opzioni</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation type="unfinished">Versione %1</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation>Conflitto di scorciatoie</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation>Hai assegnato la stessa scorciatoia a più azioni.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation>Errore nei caratteri del nome del file</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation>Il nome del file non può contenere nessuno dei seguenti caratteri: ? : \ / * &quot; &lt; &gt; |</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation>Seleziona dove vuoi salvare gli screenshot</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation>Ripristinare le opzioni di default causerà la perdita della corrente configurazione.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation>Ripristina</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation>Non ripristinare</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation>Opzioni - Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation>File</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation>&amp;Cartella:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation>Il prefisso per il file dello screenshot</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation>&amp;Nome file:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation>Il prefisso verrà inserito prima del &lt;em&gt;Nome&lt;/em&gt; nel file nome del file dello screenshot ed è solitamente usato per distinguere i file. Può essere lasciato vuoto.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation>(numero)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation>(timestamp)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation>(data)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation>Il formato del file dello screenshot</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation>F&amp;ormato:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation>&amp;Ritardo:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation>Selezionando qualsiasi numero oltre lo 0 &lt;b&gt;fermerà&lt;/b&gt; il programma per lo stesso numero di secondi prima di fare lo screenshot.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation>niente</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation> secondi</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation>Esegui &amp;Lightscreen all&apos;avvio del sistema.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation>Nas&amp;condi la finestra principale.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation>&amp;Mostra l&apos;icona nel tray.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation>&amp;Nascondi Lightscreen mentre scatta lo screenshot.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation>&amp;Ingrandisci attorno il mouse nella modalità area.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation>&amp;Lingua:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation>Clicca qui per andare nella Home page di Lightscreen e sapere di più sulla traduzione.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;Maggiori informazioni..&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation>&amp;Notifica con:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation>Mostra un messaggio di completamento quando lo screenshot è salvato, cliccando su questo messagio si aprirà la cartella in cui lo screenshot è salvato.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation>Popup Icona Tray</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation>&amp;Suono</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation type="unfinished">&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visita la pagina del progetto su Sourceforge&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visita l&apos;home page di Lightscreen&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;i&gt;Tradotto da Sum90&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation>Lo slider va da 0 a 100. 100 è la massima qualità e 0 la più bassa.&lt;bt&gt;
-La qualità determina la grandezza del file e naturalmente la leggibilità e la qualità generale dell&apos;imagine.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation>&amp;Copia lo screenshot negli appunti.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation>Inc&amp;ludi il cursore nello screenshot.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation>Ot&amp;timizza screenshot PNG.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation>Salva come..</translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation type="unfinished">Chiudi</translation>
- </message>
-</context>
-</TS>
diff --git a/translations/japanese.qm b/translations/japanese.qm
deleted file mode 100644
index 8ac8857..0000000
Binary files a/translations/japanese.qm and /dev/null differ
diff --git a/translations/japanese.ts b/translations/japanese.ts
deleted file mode 100644
index 597a02d..0000000
--- a/translations/japanese.ts
+++ /dev/null
@@ -1,1179 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ja_JP">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation type="unfinished">閉じる</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation>ボタンのクリックでホットキーの変更...</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation>ホットキーの指定</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation>無効なホットキー</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation>トレイ アイコンを表示せずにウィンドウを隠すと &lt;b&gt;ホットキー&lt;/b&gt; 以外では Lightscreen を操作できなくなります。&lt;br&gt;どうしますか ?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation>トレイへ隠す</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation>以降、確認せず隠す</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation>今回は隠す</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation>キャプチャできませんでした</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation type="unfinished">失敗 !</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation>既にホットキーに使用されている使用されているキーは指定できません</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translation>&lt;br&gt;無効なホットキー:</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation>&lt;br&gt;無効なホットキー:&lt;b&gt;%1&lt;/b&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation>&lt;br&gt;&lt;i&gt;どうしますか?&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation>変更</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation>無効化</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation>終了</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation>Lightscreen 新たなバージョンがリリースされています。&lt;br&gt;サイトに接続して情報をチェックしますか ?&lt;br&gt;(&lt;em&gt;この通知をオフにすることもできます。&lt;/em&gt;)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation>通知しない</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation>あとで通知</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation>画面全体(&amp;S)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation>指定範囲(&amp;A)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation>保存フォルダを開く(&amp;G)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation>表示/隠す(&amp;H)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation>オプションの表示(&amp;O)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation>終了(&amp;X)</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation>Lightscreen の設定</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation>オプション(&amp;O)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation type="unfinished">バージョン %1</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation>ホットキーの重複</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation>同じキーが違う操作に重複指定されています。</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation>ファイル名のエラー</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation>以下の文字はファイル名に使用できません: ? : \ / * &quot; &lt; &gt; |</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation>キャプチャ画像の保存先の選択</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation>現在の設定をクリアして初期状態に戻します。</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation>復元</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation>復元しない</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation>オプション - Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation>ファイル</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation>ディレクトリ(&amp;D):</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation>保存ファイル名のプリフィクス</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation>ファイル名(&amp;F):</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation>プリフィクスは画像の保存時に&lt;em&gt;ファイル名に常に使用&lt;/em&gt;される語句です。空欄にしておくこともできます。</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation>(連番)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation>(日時)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation>画像ファイルの保存フォーマット</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation>フォーマット(&amp;O):</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation>遅延(&amp;E):</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation>プログラムがキャプチャーを行うときの&lt;b&gt;待機時間&lt;/b&gt;(秒)を設定します。0 より大きい数値で指定してください。</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation>なし</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation> 秒</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation type="unfinished">&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;SourceForge プロジェクト ページへ&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Lightscreen のホーム ページへ&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation>Lightscreen を Windows のスタートアップに登録(&amp;R).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation>メイン ウィンドウを表示しない(&amp;I).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation>システム トレイにアイコンを表示(&amp;W).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation>キャプチャー後に Lightscreen を隠す(&amp;H).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation>指定範囲モードでカーソルの周辺を拡大(&amp;M).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation>使用言語(&amp;L):</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation>ここをクリックして、Lightscreen のホームページで翻訳情報を確認。</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;情報をチェック..&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation>通知方法(&amp;N):</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation>スクリーンショットの保存後にメッセージが表示されます。メッセージ バルーンをクリックすれば保存先を開くことができます。</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation>トレイにポップアップ</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation>通知音(&amp;S)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation>このスライダでキャプチャの品質を変更します。0 から 100 まで。低品質は左へ、高品質は右はへ。&lt;br&gt;
-品質は画像のファイル サイズと見映えに影響を及ぼします。</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation>スナップショットをクリップボードにコピー(&amp;C).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation>カーソルもキャプチャーする(&amp;L).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation>最適化 PNG スクリーンショットを使用(&amp;P).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation>名づけて保存..</translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation type="unfinished">閉じる</translation>
- </message>
-</context>
-</TS>
diff --git a/translations/polish.qm b/translations/polish.qm
deleted file mode 100644
index c47930f..0000000
Binary files a/translations/polish.qm and /dev/null differ
diff --git a/translations/polish.ts b/translations/polish.ts
deleted file mode 100644
index 3cfa8a3..0000000
--- a/translations/polish.ts
+++ /dev/null
@@ -1,1180 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="pl_PL">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation type="unfinished">Zamknij</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation>Kliknij aby wybrać klawisz skrótu...</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation>Wpisz twój klawisz skrótu</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation>Błąd klawisza skrótu</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation>Wybrałeś ukrycie programu Lightscreen bez ikony w zasobniku systemowym, dlatego program będzie niedostępny &lt;b&gt;chyba że ustawiłeś dla niego klawisz skrótu&lt;/b&gt;.&lt;br&gt;Czy chcesz to wykonać?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation>Ukryj ale włącz zasobnik</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation>Ukryj i nie ostrzegaj</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation>Tylko ukryj</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation>Nie zrobiono zrzutu ekranu</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation>Błąd!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation>Nie można zarejestrować niektórych klawiszy skrótu, mogą już być w użytku</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translatorcomment>&lt;br&gt;Błędne klawisze skrótu to:</translatorcomment>
- <translation></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation>&lt;br&gt;Błędny klawisz skrótu to &lt;b&gt;%1&lt;/b&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation>&lt;br&gt;&lt;i&gt;Co chcesz wykonać?&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation>Zmień</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation>Wyłącz</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation>Zakończ</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation>Dostępna jest nowa wersja programu Lightscreen.&lt;br&gt;Czy chcesz zobaczyć dalsze informacje?&lt;br&gt;(&lt;em&gt;Możesz wyłączyć ten komunikat&lt;/em&gt;)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation>Wyłącz</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation>Przypominaj później</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation>&amp;Ekran</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation>Obsz&amp;ar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation>&amp;Przejdź do folderu</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation>Pokaż&amp;/Ukryj</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation>Pokaż &amp;Opcje</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation>&amp;Zakończ</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation>Skonfiguruj Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation>&amp;Opcje</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation type="unfinished">Wersja %1</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation>Konflikt z klawiszami skrótu</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation>Ustawiłeś te same skróty klawiszy dla więcej niż jednej akcji.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation>Wybierz gdzie chcesz zapisywać zrzuty ekranu</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation>Odtworzenie domyślnych opcji powoduje utratę aktualnej konfiguracji.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation>Odtwórz</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation>Nie Odtwarzaj</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation>Opcje - Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation>&amp;Plik</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation>K&amp;atalog:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation>Prefiks dla pliku zrzutu ekranu</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation>&amp;Nazwa pliku:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation>Prefiks zostanie wstawiony przed nadaniem nazwy pliku zrzutu ekranu i jest zwykle używany do odróżnienia plików. Może być pusty.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation>(numer)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation>(czas)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation>(data)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation>Format pliku dla zrzutu ekranu</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation>&amp;Format:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation>Opóźni&amp;enie:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation>Wybór wartości tej opcji innej niż 0 spowoduje, że program &lt;b&gt;czeka&lt;/b&gt; podaną ilość sekund przed podjęciem zrzutu ekranu.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation>brak</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation> sekund(y)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation>Uruchom Lightscreen przy &amp;starcie systemu.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation>&amp;Ukryj główne okno.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation>&amp;Pokaż ikonę w zasobniku systemowym.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation>&amp;Ukryj Lightscreen podczas zrzutu ekranu.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation>&amp;Szkło powiększające wokół myszy w trybie obszaru.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation>&amp;Język:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation>Kliknij tutaj aby przejść do strony głównej Lightscreen, aby dowiedzieć się więcej na temat tłumaczeń.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;Więcej informacji..&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation>Zawiadom przez:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation>Pokazuje komunikat po zapisaniu zrzutu ekranu, kliknięcie na tą wiadomość przenosi cię do katalogu, w którym został zapisany zrzut ekranu.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation>&amp;Ikonę Popup w zasobniku</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation>Efekt &amp;dźwiękowy</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation type="unfinished">&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Odwiedź stronę projektu na Sourceforge&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Odwieź główną stronę Lightscreen&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation>Ten suwak ma wartości od 0 do 100. 100 to najwyższa jakość a 0 najniższa.&lt;br&gt;
-Różnica jakości związana jest z rozmiarem pliku, jego czytelnością i ogólnym wyglądem obrazu.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation>Kopiuj zrzut ekranu do &amp;schowka.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation>&amp;Dołącz kursor w zrzucie ekranu.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation>&amp;Polepsz pliki PNG.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation>Zapisz jako..</translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation type="unfinished">Zamknij</translation>
- </message>
-</context>
-</TS>
diff --git a/translations/portuguese.qm b/translations/portuguese.qm
deleted file mode 100644
index fb9ed37..0000000
Binary files a/translations/portuguese.qm and /dev/null differ
diff --git a/translations/portuguese.ts b/translations/portuguese.ts
deleted file mode 100644
index 83ea49e..0000000
--- a/translations/portuguese.ts
+++ /dev/null
@@ -1,1179 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="pt_BR" sourcelanguage="en">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation type="unfinished">Fechar</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation>Clique para selecionar uma hotkey...</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation>Pressione sua hotkey</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation>Hotkey inválida</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation>Você escolheu esconder o lightscreen mesmo sem o ícone na área de notificaçao, então você não terá acesso ao programa &lt;b&gt;a menos que você selecione uma hotkey para isso&lt;/b&gt;.&lt;br&gt;O que você deseja fazer?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation>Esconder e habilitar o ícone na área de notificaçao</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation>Esconder e não avisar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation>Apenas esconda</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation>A screenshot não foi feita</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation>Falhou!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation>Alguma(s) hotkey(s) não pode(puderam) ser registrada(s), ela(s) pode(m) estar em uso</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translation>&lt;br&gt;A(s) hotkey(s) é(são):</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation>&lt;br&gt;A hotkey é &lt;b&gt;%1&lt;/b&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation>&lt;br&gt;&lt;i&gt;O que você deseja fazer?&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation>Trocar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation>Desabilitar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation>Sair</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation>Existe uma nova versão do Lightscreen.&lt;br&gt;Você gostaria de mais informaçoes?&lt;br&gt;(&lt;em&gt;Você pode desligar essa notificação&lt;/em&gt;)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation>Desligar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation>Lembrar mais tarde</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation>T&amp;ela</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation>Áre&amp;a</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation>&amp;Ir para a pasta</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation>Mostrar/Escond&amp;er</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation>Ver &amp;Opções</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation>Sa&amp;ir</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation>Configurar o Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation>&amp;Opções</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation type="unfinished">Versão %1</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation>Conflito entre Hotkeys</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation>Você designou a mesma hotkey para mais de uma ação.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation>Caractere não permitido no nome do arquivo</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation>O nome do arquivo não pode conter os seguintes caracteres: ? : \ / * &quot; &lt; &gt; |</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation>Selecione um local para salvar as screenshots</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation>Restaurando as opções padrão causará a perda das configurações atuais.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation>Restaurar</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation>Não restaurar</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation>Opções do Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation>Arquivo</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation>&amp;Pasta:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation>O prefixo para o nome do arquivo</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation>&amp;Nome do arquivo:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation>(número)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation>(data)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation>Formato de arquivo</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation>F&amp;ormato:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation>Atras&amp;o:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation>nenhum</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation> segundos</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation type="unfinished">&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visite o site do projeto na Sourceforge&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visite o site do Lightscreen&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation>&amp;Abrir o Lighscreen na inicialização do sistema.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation>Esconder a janela pr&amp;incipal.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation>Mostrar ícone na área de n&amp;otificação.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation>&amp;Esconder o Lighscreen durande a screenshot.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation>Zoom da área do &amp;mouse.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation>&amp;Idioma:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation>Clique aqui para ir até a página no Lightscreen e aprenda mais sobre atualizações.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;Mais informações...&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation>&amp;Notificar com:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation>Mostrar mensagem quando uma screenshot for capturada.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation>Balão na área de notificação</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation>&amp;Som</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation>&amp;Copiar a Screenshot para a área de transferência.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation>Inc&amp;luir o cursor do mouse na screenshot.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation>O&amp;ptimizar as screenshots salvas como PNG.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation>Salvar como..</translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation type="unfinished">Fechar</translation>
- </message>
-</context>
-</TS>
diff --git a/translations/qt/qt_es.qm b/translations/qt/qt_es.qm
deleted file mode 100644
index 5191160..0000000
Binary files a/translations/qt/qt_es.qm and /dev/null differ
diff --git a/translations/russian.qm b/translations/russian.qm
deleted file mode 100644
index 73da0c7..0000000
Binary files a/translations/russian.qm and /dev/null differ
diff --git a/translations/russian.ts b/translations/russian.ts
deleted file mode 100644
index 604e404..0000000
--- a/translations/russian.ts
+++ /dev/null
@@ -1,1179 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="ru_RU">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation type="unfinished">Закрыть</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation type="unfinished">Нажмите для выбора горячей клавиши...</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation type="unfinished">Нажмите Ваши горячие клавиши</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation type="unfinished">Недействительная горячая клавиша</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation type="unfinished">Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation type="unfinished">Вы выбрали скрыть Lightscreen так, что иконка в системном трее не будет отображаться, и Вы не сможете получить доступ к программе, &lt;b&gt;если не определены горячие клавиши&lt;/b&gt;.&lt;br&gt;Что Вы хотите сделать?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation type="unfinished">Скрыть, но оставить в системном трее</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation type="unfinished">Скрыть не предупреждая</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation type="unfinished">Просто скрыть</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation type="unfinished">Скриншот не сделан</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation type="unfinished">Ошибка!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation type="unfinished">Некоторые клавиши не зарегистрированы, поскольку уже могут быть в эксплуатации</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translation type="unfinished">&lt;br&gt; Следующие клавиши не верны:</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation type="unfinished">&lt;br&gt;Неверная горячая клавиша&lt;b&gt;%1&lt;/b&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation type="unfinished">&lt;br&gt;&lt;i&gt;Что Вы хотите сделать?&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation type="unfinished">Изменить</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation type="unfinished">Отключить</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation type="unfinished">Выход</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation type="unfinished">В новой версии Lightscreen.&lt;br&gt;Вы хотели бы увидеть больше информации?&lt;br&gt;(&lt;em&gt;Вы можете просто выключить это уведомление&lt;/em&gt;)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation type="unfinished">Отключить</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation type="unfinished">Напомнить позже</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation type="unfinished">&amp;Экран</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation type="unfinished">О&amp;бласть</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation type="unfinished">&amp;Перейти в папку</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation type="unfinished">Показать&amp;/Скрыть</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation type="unfinished">Просмотр &amp;Настроек</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation type="unfinished">Выхо&amp;д</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation type="unfinished">Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation type="unfinished">Конфигурация Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation type="unfinished">&amp;Настройки</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation type="unfinished">Версия %1</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation type="unfinished">Конфликт горячих клавиш</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation type="unfinished">Вы присвоили одинаковые горячие клавиши для более одного действия.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation type="unfinished">Ошибка в символе имени файла</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation type="unfinished">Имя файла не может содержать любой из следующих символов: ? : \ / * &quot; &lt; &gt; |</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation type="unfinished">Выберите, где вы хотите сохранить скриншот</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation type="unfinished">Восстановление настроек по умолчанию приведет к потере всей вашей текущей конфигурации.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation type="unfinished">Восстановить</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation type="unfinished">Не восстанавливать</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation type="unfinished">Настройки - Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation type="unfinished">Файл</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation type="unfinished">&amp;Папка:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation type="unfinished">Префикс в имени файла скиншота</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation type="unfinished">Имя &amp;файла:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation type="unfinished">Префикс будет вставлен в &lt;em&gt;Имя&lt;/em&gt; файла скриншота и он,обычно, используется для индентификации фалов. Он может остаться пустым.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation type="unfinished">(номер)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation type="unfinished">(timestamp)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation type="unfinished">(дата)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation type="unfinished">Формат файла для скриншота</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation type="unfinished">&amp;Формат:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation type="unfinished">Пау&amp;за:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation type="unfinished">Выбор любого значения кроме 0, заставит программу подождать прежде, чем сделать скриншот.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation type="unfinished">нет</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation type="unfinished">секунд</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation type="unfinished">&amp;Запустить Lightscreen при запуске системы.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation type="unfinished">Скр&amp;ыть главное окно.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation type="unfinished">Показывать иконку в &amp;системном трее.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation type="unfinished">C&amp;крыть Lightscreen при создании скриншота.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation type="unfinished">Пре&amp;увеличить область захвата вокруг курсора в режиме захвата области.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation type="unfinished">&amp;Язык:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation type="unfinished">Нажмите здесь, чтобы перейти на домашнюю страницу Lightscreen и получить больше информацию о переводе.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation type="unfinished">&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;Больше информации..&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation type="unfinished">&amp;Уведомлять:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation type="unfinished">Показывать сообщение о выполнении, после сохранении скриншота, нажав на это сообщение Вы перейдёте в папку, где был сохранён скриншот.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation type="unfinished">Всплывающее сообщение</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation type="unfinished">Зв&amp;уковой сигнал</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation type="unfinished">&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Посетить сайт Sourceforge project&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Посетитьдомашнюю страницу Lightscreen&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation type="unfinished">Бегунок перемещается от 0 до 100. 100 - это наивысшее качество, а 0 - самое низкое.&lt;br&gt;
-От качества зависит размер файла, читабельность и общее качество изображения.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation type="unfinished">&amp;Копировать скриншот в буфер.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation type="unfinished">Вк&amp;лючить курсор в скриншот.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation type="unfinished">О&amp;птимизация PNG скриншота.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation type="unfinished">Сохранить как..</translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation type="unfinished">Закрыть</translation>
- </message>
-</context>
-</TS>
diff --git a/translations/spanish.qm b/translations/spanish.qm
deleted file mode 100644
index bca29c5..0000000
Binary files a/translations/spanish.qm and /dev/null differ
diff --git a/translations/spanish.ts b/translations/spanish.ts
deleted file mode 100644
index 570813e..0000000
--- a/translations/spanish.ts
+++ /dev/null
@@ -1,1191 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0" language="es">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation>Lightscreen - Modo de Área</translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation>Modo de área de pantalla:
-Use el mouse para dibujar un rectangulo a capturar.
-Presione cualquier tecla o el botón derecho del mouse para salir.</translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation>Historial de Capturas</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation>Escriba aqui para filtrar las capturas de la lista.</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation>Haga doble click en el nombre de archivo para abrir la imagen y en la dirección URL para abirla en su navegador.
-
-Haga click con el botón derecho del mouse para acceder a mas opciones.</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation>Limpiar</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation>Subir</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation>Cerrar</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation>Filtrar..</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation>Limpiando el historial de capturas</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation>Esta seguro que desea borrar todo su historial de capturas?
-No podra volver atras.</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation>Limpiar Historial</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation>No Limpiar</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation>Copiar Ruta</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation>Copiar URL</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation>Borrar en imgur.com</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation>Abir Carpeta</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation>Remover entrada de historial</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation>Captura</translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation>URL</translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation>Click para elegir atajo...</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation>Escriba su atajo</translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation>Atajo invalido</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation>Ha elegido esconder Lightscreen cuando este no tiene un ícono en la barra de tareas, por lo que no podrá acceder al programa &lt;b&gt;a menos que haya seleccionado un atajo para hacerlo.&lt;/b&gt;.&lt;br&gt;¿Qué desea hacer?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation>Esconder pero habilitar ícono</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation>Esconder y no advertir</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation>Solo esconder</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation>Esta seguro que desea salir?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation>Guardada en &quot;%1&quot;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation>La captura no fue realizada</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation>%1 subido</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation>Haga click aqui para ir a %1</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation>Error de subida</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation>&amp;Ventana Activa</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation>&amp;Elegir Ventana</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation>&amp;Subir ultima</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation>Subir la ultima captura que tomó a imgur.com</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation>Ver &amp;Historial</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation>%1 subiendo - Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation>%1 de %2 subidas - Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation>%1% - Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation>Ver Historial</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation>Subida</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation>Cerrado a barra de tareas </translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation>Lightscreen continuará ejecutandose, esto puede ser deshabilitado en el menú de opciones.</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation>Éxito!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation>Cancelada!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation>procesando</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation>subiendo</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation>procesando y subiendo</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation>Lightscreen actualmente esta %1 capturas. Esta seguro que desea salir?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation>Algunos atajos no pudieron ser registrados, puede que ya estén en uso</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation>&lt;br&gt;&lt;i&gt;Que desea hacer?&lt;/i&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation>&amp;Cancelar subida</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation>Cancelar las subidas en curso</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation>Desea cancelar todas las subidas en curso?</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation>Mostrar&amp;/Esconder</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation>Captura</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation>Cancelar subida</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation>Cancelar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation>No Cancelar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation>&amp;Pantalla</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation>No Salir</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation>Error!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translation>&lt;br&gt;Las hotkeys en uso son las siguientes:</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation>&lt;br&gt;El atajo que ha fallado es &lt;b&gt;%1&lt;/b&gt;</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation>Cambiar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation>Deshabilitar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation>Salir</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation>&amp;Área</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation>Ver las &amp;Opciones</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation>&amp;Ir a la carpeta</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation>Ha ocurrido un error.</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation>&amp;Salir</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation>Hay una nueva versión de Lightscreen disponible.&lt;br&gt;Desea ver más información?&lt;br&gt;(&lt;em&gt;Puede desactivar esta notificación&lt;/em&gt;)</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation>Desactivar</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation>Más Tarde</translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation>Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation>Captura de area</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation>Captura un area específica del escritorio, cambiele el tamaño y muevala!</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation>Ctrl+A</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation>Elegir ventana</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation>Arraste el blanco hacia una ventana para capturarla.</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation>Ctrl+E</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation>Configurar Lightscreen</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation>&amp;Opciones</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation>Ctrl+O</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation>Abrir la carpeta de Capturas</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation>&amp;Carpeta</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation>Ctrl+C</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation>Subida a imgur</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation>&amp;Subir</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation>Ctrl+S</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation>Captura de pantalla completa</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation>Captura la totalidad de su pantalla.</translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation>Ctrl+P</translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation>Opciones de Nombre - Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation>Ceros a la izquierda:</translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation>Formato de fecha:</translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation>Dar vuelta el nombre.</translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation>Restablecer por defecto</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation>Versión %1</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation>Conflicto de atajos</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation>Has asignado el mismo atajo a más de una acción.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation>Error de nombre de archivo</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation>El nombre de archivo no puede contener ninguno de los siguientes caracteres: ? : \ / * &quot; &lt; &gt; |</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation>Destino Final</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation>No puede realizar capturas a menos que active guardar archivos o copiar al portapeles.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation>Seleccione donde quiere guardar las capturas</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation>Lightscreen - Restablecer Opciones por Defecto</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation>captura.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation>.captura</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation>Instale &apos;OptiPNG&apos;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation>Opciones - Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation>General</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation>El prefijo para la captura</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation>El nombre es insertado despues del prefijo y es lo que hace unico a cada archivo de captura.&lt;br&gt;
-&lt;b&gt;Numero&lt;/b&gt;: inserta un numero secuencial: 1, 2, 3...&lt;br&gt;
-&lt;b&gt;Fecha&lt;/b&gt;: inserta la fecha y hora actual, en formato dd-MM-yyyy, haga click en el botón de configuracion a la derecha para configurar el formato.&lt;br&gt;
-&lt;b&gt;Tiempo Unix&lt;/b&gt;: inserta la cantidad de segundos desde 1970-1-1 00:00:00 (timestamp de Unix)&lt;br&gt;
-
-</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation>(numero)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation>(tiempo unix)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation>El formato de la captura</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation>Cali&amp;dad:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation>(ninguno)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation>Inicio del Sistema</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation>Atajos</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation>Capturas</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation>&amp;Pantalla Completa</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation>Elegir &amp;Ventana</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation>Ventana &amp;Activa</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation>Á&amp;rea de Pantalla</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation>Control del Lightscreen</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation>A&amp;brir la ventana del programa</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation>Abrir el &amp;directorio</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation>Opciones</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation>Interface</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation>Cerrar esconde &amp;la ventana principal.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation>Acción por defecto:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation>Capturas</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation>Elegir cuando y &amp;donde guardar cada captura (&quot;Guardar como&quot;).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation>Reemplazar captura cuando el archivo ya existe.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation>Portapapeles</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation>Despues de subir, copiar la dirección de imgur al portapeles.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation>Historial</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation>Guardar un historial de capturas.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation>Capturar áreas automaticamente (sin ajustar tamaño).</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation>Lightscreen es una herramienta simple para sacar capturas de pantalla, diseñada para ser configurable y liviana.&lt;br&gt;&lt;br&gt;
-Creada por &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, usando las &lt;a href=&quot;#aboutqt&quot;&gt;herramientas Qt&lt;/a&gt; para la interface grafica.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation>Bajo la licencia &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Un agradecimiento especial a los &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donadores y Traductores&lt;/a&gt;.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation>Tamaño Máximo:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation>&lt;u&gt;Vista Previa&lt;/u&gt;:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation>Posicion:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation> y </translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation>guardar</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation>subir</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation>cancelar</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation>Subir todas mis capturas automaticamente.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation>Buscar A&amp;hora</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation>Acerca De</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visite la pagina del proyecto en SourceForge&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visite la pagina principal del Lightscreen&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation>Restablecer las opciones por defecto hara que pierda toda su configuración actual.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation>Restablecer</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation>No Restablecer</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation> segundos</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation>Mo&amp;strar un ícono en la barra de tareas.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation>Esconder Lig&amp;htscreen mientras se captura.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation>Haz click aquí para ir a la página del Lightscreen y aprender mas sobre traducciones.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;Más información..&lt;/a&gt;</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation>Este slider va desde a 0 a 100. 100 siendo la mayor calidad y 0 la más baja.&lt;br&gt;
-La calidad tiene relacion con el tamaño del archivo y la legibilidad/calidad general de la imagen.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation>El prefijo sera insertado antes del &lt;em&gt;Nombre&lt;/em&gt; en la captura y es generalmente usado para distinguir los archivos. Puede ser dejado en blanco.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation>Seleccionar algo que no sea 0 causara que el programa &lt;b&gt;espere&lt;/b&gt; esa cantidad de segundos antes de sacar la captura.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation>Aumentar alrededor del &amp;mouse en modo Área.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation>&amp;Idioma:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation>&amp;Noficar con:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation>Popup en el ícono de barra de tareas</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation>&amp;Sonido</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation>Archivo</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation>&amp;Directorio:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation>&amp;Archivo:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation>(fecha)</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation>F&amp;ormato:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation>R&amp;etraso:</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation>ninguno</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation>Ejecuta&amp;r Lightscreen cuando inicia el sistema.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation>Esconder la ventana pr&amp;incipal.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation>&amp;Copiar la captura al portapeles.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation>Inc&amp;luir el cursor en la captura.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation>O&amp;ptimizar capturas PNG.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation>&amp;Tomar solo el monitor activo.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation>Ejecuta OptiPNG el cual reduce el tamaño de archivo de las capturas.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation>Vista Previa de Capturas</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation>Arriba-Izquierda</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation>Abajo-Derecha</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation>Abajo-Izquierda</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation>Abajo-Derecha</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation>Cerrar despues de</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation>Ver &amp;Historial</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation>Actualizador</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation>Buscar actualizaciones periodicamente.</translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation>Muestra un mensaje al completar una captura, clickear en este mensaje lleva al directorio donde la misma fue guardada.</translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation>Vista Previa de Captura</translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation>Subir</translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation>Guardar</translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation>Vista Previa de Captura (%1 de %2)</translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation>Vista Previa: Cerrando en %1</translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation>Pantalla</translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation>Área</translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation>Ventana Activa</translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation>Elegir Ventana</translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation>Subir Ultima</translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation>Ver Historial</translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation>Ir a la carpeta</translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation>Guardar como..</translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation>Subiendo...</translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation>Archivo de captura no encontrado.</translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation>No se pudo conectar a imgur.com</translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation>Ha excedido su cuota de subida.</translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation>La subida ha fallado para %1.</translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation>Lightscreen: Eligiendo Ventana</translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation>Haga click y mantenga apretado para mover el seleccionador a la ventana que desee capturar.</translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation> - Comienze a arrastrar para seleccionar ventanas</translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation>Cerrar</translation>
- </message>
-</context>
-</TS>
diff --git a/translations/untranslated.qm b/translations/untranslated.qm
deleted file mode 100644
index be651ee..0000000
--- a/translations/untranslated.qm
+++ /dev/null
@@ -1 +0,0 @@
-<¸dÊÍ!¿`¡½Ý
\ No newline at end of file
diff --git a/translations/untranslated.ts b/translations/untranslated.ts
deleted file mode 100644
index 7a316ee..0000000
--- a/translations/untranslated.ts
+++ /dev/null
@@ -1,1178 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.0">
-<context>
- <name>AreaDialog</name>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="56"/>
- <source>Lightscreen Area Mode</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/areadialog.cpp" line="363"/>
- <source>Lightscreen area mode:
-Use your mouse to draw a rectangle to capture.
-Press any key or right click to exit.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HistoryDialog</name>
- <message>
- <location filename="../dialogs/historydialog.ui" line="14"/>
- <source>Screenshot History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="33"/>
- <source>Type here to filter through the screenshots in the list.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="43"/>
- <source>Double click the path to open the image with the default picture viewer, you can also double-click the URL to open it on your web browser.
-
-Right click items to get access to more options.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="70"/>
- <source>Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="93"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.ui" line="100"/>
- <source>Close</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="32"/>
- <location filename="../dialogs/historydialog.cpp" line="245"/>
- <location filename="../dialogs/historydialog.cpp" line="256"/>
- <location filename="../dialogs/historydialog.cpp" line="262"/>
- <source>Filter..</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="112"/>
- <source>Clearing the screenshot history</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="113"/>
- <source>Are you sure you want to clear your entire screenshot history?
-This cannot be undone.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="114"/>
- <source>Clear History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="115"/>
- <source>Don&apos;t Clear</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy Path</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="129"/>
- <source>Copy URL</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="133"/>
- <source>Delete from imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="134"/>
- <source>Open Location</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="136"/>
- <source>Remove history entry</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="39"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/historydialog.cpp" line="40"/>
- <source>URL</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>HotkeyWidget</name>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="36"/>
- <source>Click to select hotkey...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="86"/>
- <source>Type your hotkey</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../widgets/hotkeywidget.cpp" line="95"/>
- <location filename="../widgets/hotkeywidget.cpp" line="116"/>
- <source>Invalid hotkey</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindow</name>
- <message>
- <location filename="../lightscreenwindow.cpp" line="237"/>
- <location filename="../lightscreenwindow.cpp" line="577"/>
- <location filename="../lightscreenwindow.cpp" line="698"/>
- <location filename="../lightscreenwindow.cpp" line="724"/>
- <source>Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="238"/>
- <source>You have chosen to hide Lightscreen when there&apos;s no system tray icon, so you will not be able to access the program &lt;b&gt;unless you have selected a hotkey to do so&lt;/b&gt;.&lt;br&gt;What do you want to do?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="243"/>
- <source>Hide but enable tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="245"/>
- <source>Hide and don&apos;t warn</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="247"/>
- <source>Just hide</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="432"/>
- <source>Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="640"/>
- <source>The screenshot was not taken</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>%1 uploaded</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="668"/>
- <source>Click here to go to %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="653"/>
- <source>Upload error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="418"/>
- <source>processing</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="423"/>
- <source>uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="426"/>
- <source>processing and uploading</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="433"/>
- <source>Lightscreen is currently %1 screenshots. Are you sure you want to quit?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="780"/>
- <source>%1% of %2 uploads - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="783"/>
- <source>%1% - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="882"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="885"/>
- <source>&amp;Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="276"/>
- <location filename="../lightscreenwindow.cpp" line="900"/>
- <source>&amp;Upload last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="277"/>
- <location filename="../lightscreenwindow.cpp" line="901"/>
- <source>Upload the last screenshot you took to imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="280"/>
- <location filename="../lightscreenwindow.cpp" line="904"/>
- <source>&amp;Cancel upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="281"/>
- <location filename="../lightscreenwindow.cpp" line="905"/>
- <source>Cancel the currently uploading screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="287"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Do you want to cancel all screenshot uploads?</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="910"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="274"/>
- <location filename="../lightscreenwindow.cpp" line="930"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Closed to tray</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="227"/>
- <source>Lightscreen will keep running, you can disable this in the options menu.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="382"/>
- <location filename="../lightscreenwindow.cpp" line="385"/>
- <source>Failed!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="389"/>
- <source>Cancelled!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="559"/>
- <source>Some hotkeys could not be registered, they might already be in use</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="562"/>
- <source>&lt;br&gt;The failed hotkeys are the following:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="571"/>
- <source>&lt;br&gt;The failed hotkey is &lt;b&gt;%1&lt;/b&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="574"/>
- <source>&lt;br&gt;&lt;i&gt;What do you want to do?&lt;/i&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="580"/>
- <source>Change</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="581"/>
- <source>Disable</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="665"/>
- <location filename="../lightscreenwindow.cpp" line="923"/>
- <source>Screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="694"/>
- <source>%1 uploading - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Upload cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="755"/>
- <source>Don&apos;t Cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="434"/>
- <location filename="../lightscreenwindow.cpp" line="582"/>
- <source>Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="725"/>
- <source>There&apos;s a new version of Lightscreen available.&lt;br&gt;Would you like to see more information?&lt;br&gt;(&lt;em&gt;You can turn this notification off&lt;/em&gt;)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="729"/>
- <source>Turn Off</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="730"/>
- <source>Remind Me Later</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="879"/>
- <source>&amp;Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="435"/>
- <source>Don&apos;t Quit</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="636"/>
- <source>Saved to &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="641"/>
- <source>An error occurred.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="888"/>
- <source>&amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="917"/>
- <source>&amp;Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="375"/>
- <location filename="../lightscreenwindow.cpp" line="378"/>
- <source>Success!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="876"/>
- <source>Show&amp;/Hide</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="914"/>
- <source>View &amp;Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.cpp" line="920"/>
- <source>&amp;Quit</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>LightscreenWindowClass</name>
- <message>
- <location filename="../lightscreenwindow.ui" line="20"/>
- <source>Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="49"/>
- <source>Area capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="52"/>
- <source>Capture a specific area of your desktop, resize and move it around!</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="64"/>
- <source>Ctrl+A</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="80"/>
- <source>Pick window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="83"/>
- <source>Drop the picker onto a window to capture it.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="92"/>
- <source>Ctrl+P</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="108"/>
- <source>Configure Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="111"/>
- <source>&amp;Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="114"/>
- <source>Ctrl+O</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="130"/>
- <source>Open the current Screenshot folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="133"/>
- <source>&amp;Folder</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="136"/>
- <source>Ctrl+F</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="152"/>
- <source>Imgur upload controls</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="155"/>
- <source>&amp;Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="158"/>
- <source>Ctrl+U</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="174"/>
- <source>Fullscreen capture</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="177"/>
- <source>Take a screenshot of your entire desktop.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../lightscreenwindow.ui" line="186"/>
- <source>Ctrl+S</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>NamingDialog</name>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="14"/>
- <source>Naming Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="45"/>
- <source>Leading zeros:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="100"/>
- <source>Date Format:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/namingdialog.ui" line="167"/>
- <source>Flip naming.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>OptionsDialog</name>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="520"/>
- <source>Restore Defaults</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="536"/>
- <source>Version %1</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>Hotkey conflict</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="81"/>
- <source>You have assigned the same hotkeys to more than one action.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>Filename character error</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="86"/>
- <source>The filename can&apos;t contain any of the following characters: ? : \ / * &quot; &lt; &gt; |</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>Final Destination</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="91"/>
- <source>You can&apos;t take screenshots unless you enable either file saving or the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="449"/>
- <source>Select where you want to save the screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="462"/>
- <source>Lightscreen - Restore Default Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="463"/>
- <source>Restoring the default options will cause you to lose all of your current configuration.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="466"/>
- <source>Restore</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="467"/>
- <source>Don&apos;t Restore</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="137"/>
- <location filename="../dialogs/optionsdialog.cpp" line="502"/>
- <location filename="../dialogs/optionsdialog.cpp" line="508"/>
- <source>screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="504"/>
- <location filename="../dialogs/optionsdialog.cpp" line="506"/>
- <source>.screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.cpp" line="187"/>
- <source>Install &apos;OptiPNG&apos;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="14"/>
- <source>Options - Lightscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="42"/>
- <source>File</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="60"/>
- <source>&amp;Directory:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="100"/>
- <source>The prefix for the screenshot file</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="103"/>
- <source>&amp;Filename:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="121"/>
- <source>The prefix will be inserted before the &lt;em&gt;Naming&lt;/em&gt; in the screenshot file and it is usually used to distinguish files. It can be left blank.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="128"/>
- <source>The naming is inserted after the prefix and is what makes each screenshot file unique to avoid overwriting.&lt;br /&gt;
-&lt;b&gt;Numeric&lt;/b&gt;: inserts a number in sequence, 1, 2, 3..&lt;br /&gt;
-&lt;b&gt;Date&lt;/b&gt;: inserts the current date and time, in the form of dd-MM-yyyy, click the &quot;wrench&quot; button on the right to customize the format.&lt;br /&gt;
-&lt;b&gt;Timestamp&lt;/b&gt;: inserts a number, a Unix timestamp, which is the number of seconds passed since 1970-1-1 00:00:00.&lt;br /&gt;
-
-</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="137"/>
- <source>(number)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="142"/>
- <source>(date)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="147"/>
- <source>(timestamp)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="173"/>
- <source>The file format for the screenshot</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="176"/>
- <source>F&amp;ormat:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="208"/>
- <source>&amp;Quality:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="152"/>
- <source>(none)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="314"/>
- <source>System Startup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="367"/>
- <source>Hotkeys</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="373"/>
- <source>Captures</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="394"/>
- <source>&amp;Fullscreen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="417"/>
- <source>Window &amp;Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="446"/>
- <source>Active &amp;Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="462"/>
- <source>Screen &amp;Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="475"/>
- <source>Lightscreen Control</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="496"/>
- <source>&amp;Open the program window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="512"/>
- <source>Open the &amp;directory</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="539"/>
- <source>Options</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="587"/>
- <source>Interface</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="606"/>
- <source>C&amp;losing hides the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="898"/>
- <source>Default action:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="925"/>
- <location filename="../dialogs/optionsdialog.cpp" line="129"/>
- <location filename="../dialogs/optionsdialog.cpp" line="132"/>
- <source>Screenshots</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="934"/>
- <source>Choose where to save each screenshot (&quot;&amp;Save as&quot;).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="941"/>
- <source>&amp;Grab only the active monitor.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="967"/>
- <source>Runs OptiPNG which reduces screenshot file size.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1036"/>
- <source>Replace screenshots when there&apos;s an existing file.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1115"/>
- <source>Clipboard</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1131"/>
- <source>After uploading, copy the imgur URL to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1141"/>
- <source>History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1150"/>
- <source>Save my screenshot history.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1050"/>
- <source>Upload all my screenshots automatically.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1059"/>
- <source>D&amp;elay:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1072"/>
- <source>Selecting anything other than 0 in this option will cause the program to &lt;b&gt;wait&lt;/b&gt; that amount of seconds before taking the screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1075"/>
- <source>none</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1230"/>
- <source>Lightscreen is a simple tool to take screenshots, designed to be customizable and lightweight.&lt;br&gt;&lt;br&gt;
-Created by &lt;a href=&quot;http://ckaiser.com.ar&quot;&gt;Christian Kaiser&lt;/a&gt;, using the &lt;a href=&quot;#aboutqt&quot;&gt;Qt toolkit&lt;/a&gt; for the graphical user interface.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1244"/>
- <source>Released under the &lt;a href=&quot;http://www.gnu.org/licenses/gpl-2.0.html&quot;&gt;GNU General Public License&lt;/a&gt;.&lt;br&gt;&lt;br&gt;
-Special thanks goes to the &lt;a href=&quot;http://lightscreen.sourceforge.net/about&quot;&gt;Donators and Translators&lt;/a&gt;.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="850"/>
- <location filename="../dialogs/optionsdialog.ui" line="1084"/>
- <source> seconds</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="275"/>
- <source>&lt;u&gt;Preview&lt;/u&gt;:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="755"/>
- <source>Maximum Size:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="806"/>
- <source>Position:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="863"/>
- <source> and </source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="880"/>
- <location filename="../dialogs/optionsdialog.ui" line="909"/>
- <source>save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="885"/>
- <location filename="../dialogs/optionsdialog.ui" line="914"/>
- <source>upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="890"/>
- <source>cancel</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1209"/>
- <source>Chec&amp;k Now</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1224"/>
- <source>About</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1269"/>
- <source>&lt;a href=&quot;https://sourceforge.net/projects/lightscreen/&quot;&gt;Visit Sourceforge project site&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://lightscreen.sourceforge.net/&quot;&gt;Visit Lightscreen home page&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="326"/>
- <source>&amp;Run Lightscreen at system startup.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="354"/>
- <source>H&amp;ide the main window.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="599"/>
- <source>Sho&amp;w a system tray icon.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="613"/>
- <source>&amp;Hide Lightscreen while taking a screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="955"/>
- <source>&amp;Magnify around the mouse in Area mode.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="695"/>
- <source>&amp;Language:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="712"/>
- <source>Click here to go to the Lightscreen homepage to learn more about translations.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="715"/>
- <source>&lt;a href=&quot;http://lightscreen.sourceforge.net/translation&quot;&gt;More information..&lt;/a&gt;</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="681"/>
- <source>&amp;Notify with:</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="27"/>
- <source>General</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="628"/>
- <source>Shows a completion message once the screenshot is saved, clicking this message takes you to the directory where the screenshot was saved.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="631"/>
- <source>Tray icon Popup</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="638"/>
- <source>&amp;Sound cue</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="221"/>
- <source>This slider goes from 0 to 100. 100 being the highest quality and 0 the lowest.&lt;br&gt;
-Quality is related to file size and of course to readability and overall quality of the image.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1124"/>
- <source>&amp;Copy the screenshot to the clipboard.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="948"/>
- <source>Inc&amp;lude the cursor in the screenshot.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="970"/>
- <source>O&amp;ptimize PNG screenshots.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1043"/>
- <source>Snap area screenshots automatically (no resizing).</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="740"/>
- <source>Screenshot Previews</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="820"/>
- <source>Top Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="825"/>
- <source>Top Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="830"/>
- <source>Bottom Left</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="835"/>
- <source>Bottom Right</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="843"/>
- <source>Auto-close after</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1170"/>
- <source>View &amp;History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1180"/>
- <source>Updater</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/optionsdialog.ui" line="1189"/>
- <source>Check for updates regularly.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>PreviewDialog</name>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="47"/>
- <location filename="../dialogs/previewdialog.cpp" line="308"/>
- <source>Screenshot Preview</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="158"/>
- <source>Upload</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="180"/>
- <source>Save</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="305"/>
- <source>Screenshot Preview (%1 of %2)</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../dialogs/previewdialog.cpp" line="406"/>
- <source>Preview: Closing in %1</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>QObject</name>
- <message>
- <location filename="../main.cpp" line="67"/>
- <source>Screen</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="68"/>
- <source>Area</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="69"/>
- <source>Active Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="70"/>
- <source>Pick Window</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="72"/>
- <source>Upload Last</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="73"/>
- <source>View History</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../main.cpp" line="75"/>
- <source>Go to Folder</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Screenshot</name>
- <message>
- <location filename="../tools/screenshot.cpp" line="217"/>
- <source>Save as..</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>Uploader</name>
- <message>
- <location filename="../tools/uploader.cpp" line="105"/>
- <source>Uploading...</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="71"/>
- <source>Screenshot file not found.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="74"/>
- <source>Could not reach imgur.com</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="77"/>
- <source>You have exceeded your upload quota.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/uploader.cpp" line="80"/>
- <source>Upload failed for %1.</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-<context>
- <name>WindowPicker</name>
- <message>
- <location filename="../tools/windowpicker.cpp" line="52"/>
- <source>Lightscreen Window Picker</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="55"/>
- <source>Grab the window picker by clicking and holding down the mouse button, then drag it to the window of your choice and release it to capture.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="65"/>
- <source> - Start dragging to select windows</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../tools/windowpicker.cpp" line="72"/>
- <source>Close</source>
- <translation type="unfinished"></translation>
- </message>
-</context>
-</TS>
diff --git a/updater/updater.cpp b/updater/updater.cpp
index a8cf3b2..0ef08b8 100644
--- a/updater/updater.cpp
+++ b/updater/updater.cpp
@@ -1,65 +1,64 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QApplication>
#include <QDate>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
-#include <QDebug>
#include "updater.h"
#include "../dialogs/updaterdialog.cpp"
Updater::Updater(QObject *parent) :
QObject(parent)
{
connect(&mNetwork, SIGNAL(finished(QNetworkReply*)), this, SLOT(finished(QNetworkReply*)));
}
void Updater::check()
{
QString platform = "unknown";
#ifdef Q_OS_WIN
platform = QString("Windows_%1").arg(QSysInfo::windowsVersion());
#else
platform = "Linux";
#endif
-
- QNetworkRequest request(QUrl("http://lightscreen.sourceforge.net/version?from=" + qApp->applicationVersion() + "&platform=" + platform));
- mNetwork.get(request);
+
+ QNetworkRequest request(QUrl("http://lightscreen.com.ar/version?from=" + qApp->applicationVersion() + "&platform=" + platform));
+ mNetwork.get(request);
}
void Updater::checkWithFeedback()
{
UpdaterDialog updaterDialog;
connect(this, SIGNAL(done(bool)), &updaterDialog, SLOT(updateDone(bool)));
check();
updaterDialog.exec();
}
void Updater::finished(QNetworkReply *reply)
{
QByteArray data = reply->readAll();
double version = QString(data).toDouble();
emit done((version > qApp->applicationVersion().toDouble()));
}
diff --git a/updater/updater.h b/updater/updater.h
index 7b87c7c..8d18fc9 100644
--- a/updater/updater.h
+++ b/updater/updater.h
@@ -1,46 +1,46 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef UPDATER_H_
#define UPDATER_H_
#include <QObject>
#include <QNetworkAccessManager>
class Updater : public QObject
{
Q_OBJECT
public:
Updater(QObject *parent = 0);
signals:
void done(bool result);
public slots:
void check();
void checkWithFeedback();
private slots:
void finished(QNetworkReply* reply);
private:
QNetworkAccessManager mNetwork;
};
#endif /*UPDATER_H_*/
diff --git a/widgets/hotkeywidget.cpp b/widgets/hotkeywidget.cpp
index e41a8b4..d5becf6 100644
--- a/widgets/hotkeywidget.cpp
+++ b/widgets/hotkeywidget.cpp
@@ -1,161 +1,159 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include <QApplication>
#include <QFocusEvent>
#include <QKeyEvent>
#include <QKeySequence>
#include <QStyle>
#include <QTimer>
-#include <QDebug>
-
#include "hotkeywidget.h"
HotkeyWidget::HotkeyWidget(QWidget *parent) :
QPushButton(parent), mHotkey(QKeySequence()), mShowingError(false), mKeyboardFocus(false)
{
mDefaultStyleSheet = "text-align: left; padding: 3px 6px;";
setStyleSheet(mDefaultStyleSheet);
setText(tr("Click to select hotkey..."));
setObjectName("HotkeyWidget");
if (qApp->style()->objectName() == "oxygen") {
setMinimumWidth(130);
}
else {
setMinimumWidth(110);
}
}
void HotkeyWidget::setHotkey(QString hotkeyString)
{
mHotkey = QKeySequence().fromString(hotkeyString, QKeySequence::NativeText);
setHotkeyText();
}
QString HotkeyWidget::hotkey() const
{
return mHotkey.toString(QKeySequence::PortableText);
}
void HotkeyWidget::showError()
{
if (mShowingError)
return;
mShowingError = true;
setStyleSheet(mDefaultStyleSheet + "color: #d90000;");
QTimer::singleShot(1000, this, SLOT(hideError()));
}
void HotkeyWidget::setHotkeyText()
{
QString hotkeyText = mHotkey.toString(QKeySequence::NativeText);
setText(hotkeyText);
parentWidget()->setFocus();
}
bool HotkeyWidget::event(QEvent *event)
{
if (event->type() == QEvent::LanguageChange) {
setHotkeyText();
}
else if (event->type() == QEvent::FocusIn) {
QFocusEvent* focusEvent = static_cast<QFocusEvent*>(event);
if (focusEvent->reason() != Qt::TabFocusReason) {
setText(tr("Type your hotkey"));
mKeyboardFocus = false;
grabKeyboard();
}
else {
mKeyboardFocus = true;
}
}
else if (event->type() == QEvent::FocusOut) {
if (text() == tr("Invalid hotkey")) {
emit invalidHotkeyError();
showError();
}
releaseKeyboard();
setHotkeyText(); // Reset the text
}
return QPushButton::event(event);
}
void HotkeyWidget::keyPressEvent(QKeyEvent *event)
{
if (mKeyboardFocus)
return;
if (isModifier(event->key()))
return;
if (!isValid(event->key())) {
setText(tr("Invalid hotkey"));
parentWidget()->setFocus();
return;
}
mHotkey = QKeySequence(event->key() + (event->modifiers() & ~Qt::KeypadModifier));
setHotkeyText();
}
void HotkeyWidget::hideError()
{
setStyleSheet(mDefaultStyleSheet);
mShowingError = false;
}
bool HotkeyWidget::isValid(int key) const
{
switch (key)
{
case 0:
case Qt::Key_Escape:
case Qt::Key_unknown:
return false;
}
return !isModifier(key);
}
bool HotkeyWidget::isModifier(int key) const
{
switch (key)
{
case Qt::Key_Shift:
case Qt::Key_Control:
case Qt::Key_Meta:
case Qt::Key_Alt:
case Qt::Key_AltGr:
case Qt::Key_Super_L:
case Qt::Key_Super_R:
case Qt::Key_Menu:
return true;
}
return false;
}
diff --git a/widgets/hotkeywidget.h b/widgets/hotkeywidget.h
index 5cff3d6..cbc5261 100644
--- a/widgets/hotkeywidget.h
+++ b/widgets/hotkeywidget.h
@@ -1,59 +1,59 @@
/*
- * Copyright (C) 2012 Christian Kaiser
+ * Copyright (C) 2014 Christian Kaiser
*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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 this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef HOTKEYWIDGET_H
#define HOTKEYWIDGET_H
#include <QPushButton>
class HotkeyWidget : public QPushButton
{
Q_OBJECT
public:
HotkeyWidget(QWidget *parent = 0);
void setHotkey(QString hotkey);
QString hotkey() const;
signals:
void invalidHotkeyError();
private:
void setHotkeyText();
void showError();
private slots:
void hideError();
protected:
// Event overrides:
bool event(QEvent* event);
void keyPressEvent(QKeyEvent* event);
private:
QKeySequence mHotkey;
bool mShowingError;
bool mKeyboardFocus;
QString mDefaultStyleSheet;
bool isValid(int key) const;
bool isModifier(int key) const;
};
#endif // HOTKEYWIDGET_H

File Metadata

Mime Type
text/x-diff
Expires
Mon, Jun 15, 11:36 PM (2 w, 2 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
69943
Default Alt Text
(676 KB)

Event Timeline