Cherry-picked new upstream version 0.4.0+20160108.

Removed outdated build dependency libfm-qt5-dev,
Added build dependencies libfm-qt-dev and libmenu-cache-dev.
Bump Standards to 3.9.7
Changed the VCS-fields to https://
Fix Years in copyright
Enable hardening=+all
ubuntu/disco debian/0.4.0+20160108-1
Alf Gaida 9 years ago
parent 881089189f
commit bd38d1c7aa

2
.gitignore vendored

@ -0,0 +1,2 @@
build
*.kdev4

@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.8.11) cmake_minimum_required(VERSION 3.0.2)
project(lximage-qt) project(lximage-qt)
@ -10,6 +10,7 @@ list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
set(MAJOR_VERSION 0) set(MAJOR_VERSION 0)
set(MINOR_VERSION 4) set(MINOR_VERSION 4)
set(PATCH_VERSION 0) set(PATCH_VERSION 0)
set(LXIMAGE_VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION})
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_POSITION_INDEPENDENT_CODE ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON)
@ -40,16 +41,14 @@ find_package(Qt5DBus REQUIRED)
find_package(Qt5PrintSupport REQUIRED QUIET) find_package(Qt5PrintSupport REQUIRED QUIET)
find_package(Qt5X11Extras REQUIRED QUIET) find_package(Qt5X11Extras REQUIRED QUIET)
find_package(Qt5LinguistTools REQUIRED QUIET) find_package(Qt5LinguistTools REQUIRED QUIET)
find_package(fm-qt REQUIRED QUIET)
message(STATUS "Building with Qt ${Qt5Core_VERSION_STRING}") message(STATUS "Building with Qt ${Qt5Core_VERSION_STRING}")
find_package(PkgConfig REQUIRED) find_package(PkgConfig REQUIRED)
pkg_check_modules(GLIB REQUIRED glib-2.0)
# FIXME: we'll need this to provide detail info for photos in the future # FIXME: we'll need this to provide detail info for photos in the future
pkg_check_modules(EXIF REQUIRED libexif) pkg_check_modules(EXIF REQUIRED libexif)
pkg_check_modules(LIBFM_QT REQUIRED libfm-qt5 libfm>=1.2)
# TODO: make the X11 stuff optional. # TODO: make the X11 stuff optional.
# for screenshot support # for screenshot support
find_package(X11 REQUIRED) find_package(X11 REQUIRED)

12
debian/changelog vendored

@ -1,3 +1,15 @@
lximage-qt (0.4.0+20160108-1) unstable; urgency=medium
* Cherry-picked new upstream version 0.4.0+20160108.
* Removed outdated build dependency libfm-qt5-dev,
* Added build dependencies libfm-qt-dev and libmenu-cache-dev.
* Bump Standards to 3.9.7
* Changed the VCS-fields to https://
* Fix Years in copyright
* Enable hardening=+all
-- Alf Gaida <agaida@siduction.org> Sun, 07 Feb 2016 22:55:06 +0100
lximage-qt (0.4.0+20151117-2) unstable; urgency=medium lximage-qt (0.4.0+20151117-2) unstable; urgency=medium
* Remove dbg package in favor of dbgsym. * Remove dbg package in favor of dbgsym.

9
debian/control vendored

@ -10,16 +10,17 @@ Build-Depends: debhelper (>= 9),
libexif-dev, libexif-dev,
libglib2.0-dev, libglib2.0-dev,
libfm-dev, libfm-dev,
libfm-qt5-dev, libfm-qt-dev,
libmenu-cache-dev,
libqt5x11extras5-dev, libqt5x11extras5-dev,
libx11-dev, libx11-dev,
libxfixes-dev, libxfixes-dev,
pkg-config, pkg-config,
qttools5-dev, qttools5-dev,
qttools5-dev-tools qttools5-dev-tools
Standards-Version: 3.9.6 Standards-Version: 3.9.7
Vcs-Browser: http://anonscm.debian.org/cgit/pkg-lxqt/lximage-qt.git/?h=debian/sid Vcs-Browser: https://anonscm.debian.org/git/pkg-lxqt/lximage-qt.git/?h=debian/sid
Vcs-Git: git://anonscm.debian.org/pkg-lxqt/lximage-qt.git -b debian/sid Vcs-Git: https://anonscm.debian.org/git/pkg-lxqt/lximage-qt.git -b debian/sid
Homepage: https://github.com/lxde/lximage-qt Homepage: https://github.com/lxde/lximage-qt
Package: lximage-qt Package: lximage-qt

8
debian/copyright vendored

@ -3,8 +3,8 @@ Upstream-Name: lximage-qt
Source: https://github.com/lxde/lximage-qt Source: https://github.com/lxde/lximage-qt
Files: * Files: *
Copyright: 2013-2015 Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Copyright: 2013-2016 Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
2013-2015 LXQt team 2013-2016 LXQt team
License: GPL-2+ and LGPL-2.1+ License: GPL-2+ and LGPL-2.1+
Files: src/application.* Files: src/application.*
@ -14,7 +14,7 @@ Files: src/application.*
src/preferencesdialog.* src/preferencesdialog.*
src/saveimagejob.* src/saveimagejob.*
src/settings.* src/settings.*
Copyright: 2013-2015 Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Copyright: 2013-2016 Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
License: GPL-2+ License: GPL-2+
Files: src/imageview.* Files: src/imageview.*
@ -27,7 +27,7 @@ Copyright: Copyright (C) 2013 - 2014
License: LGPL-2.1+ License: LGPL-2.1+
Files: debian/* Files: debian/*
Copyright: 2014-2015 Alf Gaida <agaida@siduction.org> Copyright: 2014-2016 Alf Gaida <agaida@siduction.org>
2015 Andrew Lee (李健秋) <ajqlee@debian.org> 2015 Andrew Lee (李健秋) <ajqlee@debian.org>
2015 ChangZhuo Chen (陳昌倬) <czchen@debian.org> 2015 ChangZhuo Chen (陳昌倬) <czchen@debian.org>
License: LGPL-2.1+ License: LGPL-2.1+

2
debian/rules vendored

@ -1,7 +1,7 @@
#!/usr/bin/make -f #!/usr/bin/make -f
#export DH_VERBOSE=1 #export DH_VERBOSE=1
export DEB_CXXFLAGS_MAINT_APPEND = -fPIE -pie export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
%: %:

@ -1,12 +1,7 @@
# set visibility to hidden to hide symbols, unlesss they're exporeted manually in the code # set visibility to hidden to hide symbols, unlesss they're exporeted manually in the code
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_KEYWORDS -fno-exceptions") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
include_directories( include_directories(
${QTX_INCLUDE_DIRS}
${CMAKE_CURRENT_BINARY_DIR}
${GLIB_INCLUDE_DIRS}
${EXIF_INCLUDE_DIRS}
${LIBFM_QT_INCLUDE_DIRS}
${X11_INCLUDE_DIR} ${X11_INCLUDE_DIR}
${XFIXES_INCLUDE_DIRS} ${XFIXES_INCLUDE_DIRS}
) )
@ -76,16 +71,15 @@ add_executable(lximage-qt
add_definitions( add_definitions(
-DLXIMAGE_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/lximage-qt" -DLXIMAGE_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/lximage-qt"
-DLIBFM_QT_API=Q_DECL_IMPORT # FIXME: This should be done in libfm-qt headers instead :-( -DLXIMAGE_VERSION="${LXIMAGE_VERSION}"
) )
set(QT_LIBRARIES Qt5::Widgets Qt5::Core Qt5::DBus Qt5::PrintSupport Qt5::X11Extras) set(QT_LIBRARIES Qt5::Widgets Qt5::Core Qt5::DBus Qt5::PrintSupport Qt5::X11Extras)
target_link_libraries(lximage-qt target_link_libraries(lximage-qt
fm-qt
${QT_LIBRARIES} ${QT_LIBRARIES}
${GLIB_LIBRARIES}
${EXIF_LIBRARIES} ${EXIF_LIBRARIES}
${LIBFM_QT_LIBRARIES}
${X11_LIBRARIES} ${X11_LIBRARIES}
${XFIXES_LIBRARIES} ${XFIXES_LIBRARIES}
) )

@ -37,6 +37,7 @@ Application::Application(int& argc, char** argv):
QApplication(argc, argv), QApplication(argc, argv),
windowCount_(0), windowCount_(0),
libFm() { libFm() {
setApplicationVersion(LXIMAGE_VERSION);
} }
bool Application::init(int argc, char** argv) { bool Application::init(int argc, char** argv) {
@ -81,6 +82,7 @@ bool Application::init(int argc, char** argv) {
bool Application::parseCommandLineArgs() { bool Application::parseCommandLineArgs() {
QCommandLineParser parser; QCommandLineParser parser;
parser.addHelpOption(); parser.addHelpOption();
parser.addVersionOption();
QCommandLineOption screenshotOption( QCommandLineOption screenshotOption(
QStringList() << "s" << "screenshot", QStringList() << "s" << "screenshot",
@ -152,7 +154,9 @@ void Application::newWindow(QStringList files) {
if(settings_.windowMaximized()) if(settings_.windowMaximized())
window->setWindowState(window->windowState() | Qt::WindowMaximized); window->setWindowState(window->windowState() | Qt::WindowMaximized);
window->show(); /* when there's an image, we show the window AFTER resizing
and centering it appropriately at MainWindow::updateUI() */
//window->show();
} }
} }
} }

@ -26,6 +26,8 @@
#include <QPolygon> #include <QPolygon>
#include <QDebug> #include <QDebug>
#include <QStyle> #include <QStyle>
#include <QLabel>
#include <QGraphicsProxyWidget>
namespace LxImage { namespace LxImage {
@ -33,6 +35,7 @@ ImageView::ImageView(QWidget* parent):
QGraphicsView(parent), QGraphicsView(parent),
imageItem_(new QGraphicsRectItem()), imageItem_(new QGraphicsRectItem()),
scene_(new QGraphicsScene(this)), scene_(new QGraphicsScene(this)),
gifMovie_(NULL),
autoZoomFit_(false), autoZoomFit_(false),
cacheTimer_(NULL), cacheTimer_(NULL),
scaleFactor_(1.0) { scaleFactor_(1.0) {
@ -48,7 +51,9 @@ ImageView::ImageView(QWidget* parent):
} }
ImageView::~ImageView() { ImageView::~ImageView() {
delete imageItem_; scene_->clear(); // deletes all items
if(gifMovie_)
delete gifMovie_;
if(cacheTimer_) { if(cacheTimer_) {
cacheTimer_->stop(); cacheTimer_->stop();
delete cacheTimer_; delete cacheTimer_;
@ -130,7 +135,18 @@ void ImageView::zoomOriginal() {
queueGenerateCache(); queueGenerateCache();
} }
void ImageView::setImage(QImage image) { void ImageView::setImage(QImage image, bool show) {
if(gifMovie_ && show) { // a gif animation was shown
scene_->clear();
delete gifMovie_;
gifMovie_ = NULL;
// recreate the rect item
imageItem_ = new QGraphicsRectItem();
imageItem_->hide();
imageItem_->setPen(QPen(Qt::NoPen));
scene_->addItem(imageItem_);
}
image_ = image; image_ = image;
if(image.isNull()) { if(image.isNull()) {
imageItem_->hide(); imageItem_->hide();
@ -138,9 +154,11 @@ void ImageView::setImage(QImage image) {
scene_->setSceneRect(0, 0, 0, 0); scene_->setSceneRect(0, 0, 0, 0);
} }
else { else {
imageItem_->setRect(0, 0, image_.width(), image_.height()); if(show) {
imageItem_->setBrush(image_); imageItem_->setRect(0, 0, image_.width(), image_.height());
imageItem_->show(); imageItem_->setBrush(image_);
imageItem_->show();
}
scene_->setSceneRect(0, 0, image_.width(), image_.height()); scene_->setSceneRect(0, 0, image_.width(), image_.height());
} }
@ -149,6 +167,43 @@ void ImageView::setImage(QImage image) {
queueGenerateCache(); queueGenerateCache();
} }
void ImageView::setGifAnimation(QString fileName) {
QImage image(fileName);
if(image.isNull()) {
image_ = QImage();
imageItem_->hide();
imageItem_->setBrush(QBrush());
scene_->setSceneRect(0, 0, 0, 0);
}
else {
scene_->clear();
imageItem_ = NULL; // it's deleted by clear();
if(gifMovie_) {
delete gifMovie_;
gifMovie_ = NULL;
}
QPixmap pix(image.size());
pix.fill(Qt::transparent);
QGraphicsItem *gifItem = new QGraphicsPixmapItem(pix);
QLabel *gifLabel = new QLabel();
gifMovie_ = new QMovie(fileName);
QGraphicsProxyWidget* gifWidget = new QGraphicsProxyWidget(gifItem);
gifLabel->setAttribute(Qt::WA_NoSystemBackground);
gifLabel->setMovie(gifMovie_);
gifWidget->setWidget(gifLabel);
gifMovie_->start();
/* the first frame won't be shown but will be
used for tracking position and dimensions */
image_ = gifMovie_->currentImage();
scene_->addItem(gifItem);
scene_->setSceneRect(gifItem->boundingRect());
}
if(autoZoomFit_)
zoomFit();
queueGenerateCache(); // deletes the cache timer in this case
}
void ImageView::setScaleFactor(double factor) { void ImageView::setScaleFactor(double factor) {
if(factor != scaleFactor_) { if(factor != scaleFactor_) {
scaleFactor_ = factor; scaleFactor_ = factor;
@ -189,7 +244,8 @@ void ImageView::queueGenerateCache() {
cachedPixmap_ = QPixmap(); cachedPixmap_ = QPixmap();
// we don't need to cache the scaled image if its the same as the original image (scale:1.0) // we don't need to cache the scaled image if its the same as the original image (scale:1.0)
if(scaleFactor_ == 1.0) { // no cache for gif animations either
if(scaleFactor_ == 1.0 || gifMovie_) {
if(cacheTimer_) { if(cacheTimer_) {
cacheTimer_->stop(); cacheTimer_->stop();
delete cacheTimer_; delete cacheTimer_;
@ -198,12 +254,13 @@ void ImageView::queueGenerateCache() {
return; return;
} }
if(!cacheTimer_) { if(!cacheTimer_ && !gifMovie_) {
cacheTimer_ = new QTimer(); cacheTimer_ = new QTimer();
cacheTimer_->setSingleShot(true); cacheTimer_->setSingleShot(true);
connect(cacheTimer_, SIGNAL(timeout()), SLOT(generateCache())); connect(cacheTimer_, SIGNAL(timeout()), SLOT(generateCache()));
} }
cacheTimer_->start(200); // restart the timer if(cacheTimer_)
cacheTimer_->start(200); // restart the timer
} }
// really generate the cache // really generate the cache

@ -26,6 +26,7 @@
#include <QGraphicsRectItem> #include <QGraphicsRectItem>
#include <QImage> #include <QImage>
#include <QPixmap> #include <QPixmap>
#include <QMovie>
#include <QRect> #include <QRect>
class QTimer; class QTimer;
@ -39,7 +40,8 @@ public:
ImageView(QWidget* parent = 0); ImageView(QWidget* parent = 0);
virtual ~ImageView(); virtual ~ImageView();
void setImage(QImage image); void setImage(QImage image, bool show = true);
void setGifAnimation(QString fileName);
QImage image() { QImage image() {
return image_; return image_;
@ -83,6 +85,7 @@ private:
QGraphicsScene* scene_; // the topmost container of all graphic items QGraphicsScene* scene_; // the topmost container of all graphic items
QGraphicsRectItem* imageItem_; // the rect item used to draw the image QGraphicsRectItem* imageItem_; // the rect item used to draw the image
QImage image_; // image to show QImage image_; // image to show
QMovie *gifMovie_; // gif animation to show (should be deleted explicitly)
QPixmap cachedPixmap_; // caching of current viewport content (high quality scaled image) QPixmap cachedPixmap_; // caching of current viewport content (high quality scaled image)
QRect cachedRect_; // rectangle containing the cached region (in viewport coordinate) QRect cachedRect_; // rectangle containing the cached region (in viewport coordinate)
QRect cachedSceneRect_; // rectangle containing the cached region (in scene/original image coordinate) QRect cachedSceneRect_; // rectangle containing the cached region (in scene/original image coordinate)

@ -35,6 +35,7 @@
#include <QShortcut> #include <QShortcut>
#include <QDockWidget> #include <QDockWidget>
#include <QScrollBar> #include <QScrollBar>
#include <QDesktopWidget>
#include "application.h" #include "application.h"
#include <libfm-qt/path.h> #include <libfm-qt/path.h>
#include <libfm-qt/folderview.h> #include <libfm-qt/folderview.h>
@ -437,6 +438,10 @@ void MainWindow::onImageLoaded(LoadImageJob* job) {
// if there are errors // if there are errors
// TODO: show a info bar? // TODO: show a info bar?
} }
/* we resized and moved the window without showing
it in updateUI(), so we need to show it here */
show();
} }
void MainWindow::onImageSaved(SaveImageJob* job) { void MainWindow::onImageSaved(SaveImageJob* job) {
@ -522,28 +527,56 @@ void MainWindow::updateUI() {
if(currentFile_) { if(currentFile_) {
char* dispName = fm_path_display_basename(currentFile_); char* dispName = fm_path_display_basename(currentFile_);
if(loadJob_) { // if loading is in progress if(loadJob_) { // if loading is in progress
title = tr("%1 (Loading...) - Image Viewer") title = tr("[*]%1 (Loading...) - Image Viewer")
.arg(QString::fromUtf8(dispName)); .arg(QString::fromUtf8(dispName));
} }
else { else {
if(image_.isNull()) { if(image_.isNull()) {
title = tr("%1 (Failed to Load) - Image Viewer") title = tr("[*]%1 (Failed to Load) - Image Viewer")
.arg(QString::fromUtf8(dispName)); .arg(QString::fromUtf8(dispName));
} }
else { else {
title = tr("%1 (%2x%3) - Image Viewer") title = tr("[*]%1 (%2x%3) - Image Viewer")
.arg(QString::fromUtf8(dispName)) .arg(QString::fromUtf8(dispName))
.arg(image_.width()) .arg(image_.width())
.arg(image_.height()); .arg(image_.height());
/* Here we try to implement the following behavior as far as possible:
(1) A minimum size of 400x400 is assumed;
(2) The window is scaled to fit the image;
(3) But for too big images, the window is scaled down;
(4) The window is centered on the screen. */
if (!isVisible()) {
/* To have a correct position, we should move the window BEFORE
it's shown but we also need to know the dimensions of its view.
Therefore, we use show() without really showing the window. */
setAttribute(Qt::WA_DontShowOnScreen);
show();
int scrollThickness = style()->pixelMetric(QStyle::PM_ScrollBarExtent);
QSize newSize = size() + image_.size() - ui.view->size() + QSize(scrollThickness, scrollThickness);
QRect ag = QApplication::desktop()->availableGeometry();
// since the window isn't decorated yet, we have to assume a max thickness for its frame
QSize maxFrame = QSize(50, 100);
if (newSize.width() > ag.width() - maxFrame.width() || newSize.height() > ag.height() - maxFrame.height())
newSize.scale (ag.width() - maxFrame.width(), ag.height() - maxFrame.height(), Qt::KeepAspectRatio);
// a minimum size of 400x400 is good
if (newSize.width() < 400) newSize.rwidth() = 400;
if (newSize.height() < 400 ) newSize.rheight() = 400;
move (ag.x() + (ag.width() - newSize.width())/2,
ag.y() + (ag.height() - newSize.height())/2);
resize(newSize);
hide(); // hide it to show it again later, at onImageLoaded()
setAttribute(Qt::WA_DontShowOnScreen, false);
}
} }
} }
g_free(dispName); g_free(dispName);
// TODO: update status bar, show current index in the folder // TODO: update status bar, show current index in the folder
} }
else { else {
title = tr("Image Viewer"); title = tr("[*]Image Viewer");
} }
setWindowTitle(title); setWindowTitle(title);
setWindowModified(imageModified_);
} }
// Load the specified image file asynchronously in a worker thread. // Load the specified image file asynchronously in a worker thread.
@ -567,11 +600,28 @@ void MainWindow::loadImage(FmPath* filePath, QModelIndex index) {
// clear current image, but do not update the view now to prevent flickers // clear current image, but do not update the view now to prevent flickers
image_ = QImage(); image_ = QImage();
// start a new gio job to load the specified image const char* basename = fm_path_get_basename(currentFile_);
loadJob_ = new LoadImageJob(this, filePath); char* mimeType = g_content_type_guess(basename, NULL, 0, NULL);
loadJob_->start(); if(mimeType && strcmp(mimeType, "image/gif") == 0) {
g_free(mimeType);
char *file_Name = fm_path_to_str(currentFile_);
QString fileName(file_Name);
g_free(file_Name);
ui.view->setAutoZoomFit(true); // like in onImageLoaded()
ui.view->setGifAnimation(fileName);
image_ = ui.view->image();
updateUI();
show();
}
else {
if(mimeType)
g_free(mimeType);
// start a new gio job to load the specified image
loadJob_ = new LoadImageJob(this, filePath);
loadJob_->start();
updateUI(); updateUI();
}
} }
void MainWindow::saveImage(FmPath* filePath) { void MainWindow::saveImage(FmPath* filePath) {
@ -583,24 +633,56 @@ void MainWindow::saveImage(FmPath* filePath) {
// FIXME: add a cancel button to the UI? update status bar? // FIXME: add a cancel button to the UI? update status bar?
} }
QGraphicsItem* MainWindow::getGifItem() {
if(!ui.view->items().isEmpty()) {
QGraphicsItem *gifItem = ui.view->items().at(0);
if(gifItem->isWidget()) // we have gif animation
return gifItem;
}
return NULL;
}
void MainWindow::on_actionRotateClockwise_triggered() { void MainWindow::on_actionRotateClockwise_triggered() {
QGraphicsItem *gifItem = getGifItem();
if(!image_.isNull()) { if(!image_.isNull()) {
QTransform transform; QTransform transform;
transform.rotate(90.0); transform.rotate(90.0);
image_ = image_.transformed(transform, Qt::SmoothTransformation); image_ = image_.transformed(transform, Qt::SmoothTransformation);
ui.view->setImage(image_); /* when this is a gif animation, we need to rotate the first frame
without showing it to have the right measure for auto-zooming */
ui.view->setImage(image_, gifItem ? false : true);
setModified(true); setModified(true);
} }
if(gifItem) {
QTransform transform;
transform.translate(gifItem->sceneBoundingRect().height(), 0);
transform.rotate(90);
// we need to apply transformations in the reverse order
QTransform prevTrans = gifItem->transform();
gifItem->setTransform(transform, false);
gifItem->setTransform(prevTrans, true);
}
} }
void MainWindow::on_actionRotateCounterclockwise_triggered() { void MainWindow::on_actionRotateCounterclockwise_triggered() {
QGraphicsItem *gifItem = getGifItem();
if(!image_.isNull()) { if(!image_.isNull()) {
QTransform transform; QTransform transform;
transform.rotate(-90.0); transform.rotate(-90.0);
image_ = image_.transformed(transform, Qt::SmoothTransformation); image_ = image_.transformed(transform, Qt::SmoothTransformation);
ui.view->setImage(image_); ui.view->setImage(image_, gifItem ? false : true);
setModified(true); setModified(true);
} }
if(gifItem) {
QTransform transform;
transform.translate(0, gifItem->sceneBoundingRect().width());
transform.rotate(-90);
QTransform prevTrans = gifItem->transform();
gifItem->setTransform(transform, false);
gifItem->setTransform(prevTrans, true);
}
} }
void MainWindow::on_actionCopy_triggered() { void MainWindow::on_actionCopy_triggered() {
@ -626,26 +708,44 @@ void MainWindow::on_actionPaste_triggered() {
} }
void MainWindow::on_actionFlipVertical_triggered() { void MainWindow::on_actionFlipVertical_triggered() {
if(!image_.isNull()) { if(QGraphicsItem *gifItem = getGifItem()) {
QTransform transform;
transform.scale(1, -1);
transform.translate(0, -gifItem->sceneBoundingRect().height());
QTransform prevTrans = gifItem->transform();
gifItem->setTransform(transform, false);
gifItem->setTransform(prevTrans, true);
setModified(true);
/* we don't need to flip the first frame because its position
and dimensions are the same as before while it isn't shown */
}
else if(!image_.isNull()) {
image_ = image_.mirrored(false, true); image_ = image_.mirrored(false, true);
ui.view->setImage(image_); ui.view->setImage(image_);
setModified(true); setModified(true);
} }
setModified(true);
} }
void MainWindow::on_actionFlipHorizontal_triggered() { void MainWindow::on_actionFlipHorizontal_triggered() {
if(!image_.isNull()) { if(QGraphicsItem *gifItem = getGifItem()) {
QTransform transform;
transform.scale(-1, 1);
transform.translate(-gifItem->sceneBoundingRect().width(), 0);
QTransform prevTrans = gifItem->transform();
gifItem->setTransform(transform, false);
gifItem->setTransform(prevTrans, true);
setModified(true);
}
else if(!image_.isNull()) {
image_ = image_.mirrored(true, false); image_ = image_.mirrored(true, false);
ui.view->setImage(image_); ui.view->setImage(image_);
setModified(true); setModified(true);
} }
setModified(true);
} }
void MainWindow::setModified(bool modified) { void MainWindow::setModified(bool modified) {
imageModified_ = modified; imageModified_ = modified;
updateUI(); // TODO: update title bar to reflect the state change updateUI();
} }
void MainWindow::applySettings() { void MainWindow::applySettings() {
@ -731,6 +831,13 @@ void MainWindow::setShowThumbnails(bool show) {
thumbnailsView_->setFixedHeight(listView->gridSize().height() + scrollHeight); thumbnailsView_->setFixedHeight(listView->gridSize().height() + scrollHeight);
thumbnailsView_->setModel(proxyModel_); thumbnailsView_->setModel(proxyModel_);
proxyModel_->setShowThumbnails(true); proxyModel_->setShowThumbnails(true);
if (currentFile_) { // select the loaded image
currentIndex_ = indexFromPath(currentFile_);
listView->setCurrentIndex(currentIndex_);
// wait to center the selection
QCoreApplication::processEvents();
listView->scrollTo(currentIndex_, QAbstractItemView::PositionAtCenter);
}
connect(thumbnailsView_->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(onThumbnailSelChanged(QItemSelection,QItemSelection))); connect(thumbnailsView_->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(onThumbnailSelChanged(QItemSelection,QItemSelection)));
} }
} }

@ -126,6 +126,7 @@ private:
void updateUI(); void updateUI();
void setModified(bool modified); void setModified(bool modified);
QModelIndex indexFromPath(FmPath* filePath); QModelIndex indexFromPath(FmPath* filePath);
QGraphicsItem* getGifItem();
// GObject related signal handers and callbacks // GObject related signal handers and callbacks
static void _onFolderLoaded(FmFolder* folder, MainWindow* _this) { static void _onFolderLoaded(FmFolder* folder, MainWindow* _this) {

@ -150,7 +150,6 @@ void ScreenshotDialog::doScreenshot() {
if(cursor) { if(cursor) {
if(cursor->pixels) { // pixles should be an ARGB array if(cursor->pixels) { // pixles should be an ARGB array
QImage cursorImage; QImage cursorImage;
quint32* buf = NULL;
if(sizeof(long) == 4) { if(sizeof(long) == 4) {
// FIXME: will we encounter byte-order problems here? // FIXME: will we encounter byte-order problems here?
cursorImage = QImage((uchar*)cursor->pixels, cursor->width, cursor->height, QImage::Format_ARGB32); cursorImage = QImage((uchar*)cursor->pixels, cursor->width, cursor->height, QImage::Format_ARGB32);
@ -160,13 +159,11 @@ void ScreenshotDialog::doScreenshot() {
quint32* buf = new quint32[len]; quint32* buf = new quint32[len];
for(long i = 0; i < len; ++i) for(long i = 0; i < len; ++i)
buf[i] = (quint32)cursor->pixels[i]; buf[i] = (quint32)cursor->pixels[i];
cursorImage = QImage((uchar*)buf, cursor->width, cursor->height, QImage::Format_ARGB32); cursorImage = QImage((uchar*)buf, cursor->width, cursor->height, QImage::Format_ARGB32, [](void* b) { delete[] (quint32*)b; }, buf);
} }
// paint the cursor on the current image // paint the cursor on the current image
QPainter painter(&image); QPainter painter(&image);
painter.drawImage(cursor->x - cursor->xhot, cursor->y - cursor->yhot, cursorImage); painter.drawImage(cursor->x - cursor->xhot, cursor->y - cursor->yhot, cursorImage);
if(buf)
delete []buf;
} }
XFree(cursor); XFree(cursor);
} }

@ -0,0 +1,6 @@
[Desktop Entry]
Name[pl]=Zrzut ekranu
GenericName[pl]=Zrzut ekranu
Comment[pl]=Wykonaj zrzut ekranu
#TRANSLATIONS_DIR=translations

@ -0,0 +1,4 @@
#Translations
Name[ru]=Снимок экрана
GenericName[ru]=Снимок экрана
Comment[ru]=Сделать снимок экрана

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS> <!DOCTYPE TS>
<TS version="2.1" language="it" sourcelanguage="it"> <TS version="2.0" language="it" sourcelanguage="it">
<context> <context>
<name>LxImage::Application</name> <name>LxImage::Application</name>
<message> <message>
@ -19,7 +19,7 @@
<message> <message>
<location filename="../mainwindow.cpp" line="147"/> <location filename="../mainwindow.cpp" line="147"/>
<source>About</source> <source>About</source>
<translation>A proposito</translation> <translation>Informazioni</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="148"/> <location filename="../mainwindow.cpp" line="148"/>
@ -31,12 +31,12 @@ LXDE Project: http://lxde.org/
Authors: Authors:
Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</source> Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</source>
<translatorcomment>need update...</translatorcomment> <translatorcomment>need update...</translatorcomment>
<translation type="unfinished">LXImage - un visualizzatore immagini semplice e veloce <translation>LXImage - un visualizzatore immagini semplice e veloce
Copyright (C) 2013 Copyright (C) 2013
LXDE Project: http://lxde.org/ LXDE Project: http://lxde.org/
Autor: Autori:
Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation> Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
</message> </message>
<message> <message>
@ -58,17 +58,17 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../mainwindow.cpp" line="525"/> <location filename="../mainwindow.cpp" line="525"/>
<source>%1 (Loading...) - Image Viewer</source> <source>%1 (Loading...) - Image Viewer</source>
<translation>%1 (Caricando...) - Visualizzatore immagini</translation> <translation>%1 (Caricamento in corso...) - Visualizzatore immagini</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="530"/> <location filename="../mainwindow.cpp" line="530"/>
<source>%1 (Failed to Load) - Image Viewer</source> <source>%1 (Failed to Load) - Image Viewer</source>
<translation>%1 (Errore in caricamento) - Visualizzatore immagini</translation> <translation>%1 (Caricamento non riuscito) - Visualizzatore immagini</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="534"/> <location filename="../mainwindow.cpp" line="534"/>
<source>%1 (%2x%3) - Image Viewer</source> <source>%1 (%2x%3) - Image Viewer</source>
<translation>%1 (%2x%3) - Visualizzatore Immagini</translation> <translation>%1 (%2x%3) - Visualizzatore immagini</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="544"/> <location filename="../mainwindow.cpp" line="544"/>
@ -91,12 +91,12 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="413"/> <location filename="../../build/src/ui_mainwindow.h" line="413"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation>A &amp;proposito</translation> <translation>Inform&amp;azioni</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="414"/> <location filename="../../build/src/ui_mainwindow.h" line="414"/>
<source>&amp;Open File</source> <source>&amp;Open File</source>
<translation>&amp;Apri</translation> <translation>&amp;Apri file</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="415"/> <location filename="../../build/src/ui_mainwindow.h" line="415"/>
@ -112,7 +112,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="417"/> <location filename="../../build/src/ui_mainwindow.h" line="417"/>
<source>Ctrl+S</source> <source>Ctrl+S</source>
<translation></translation> <translation>Ctrl+S</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="418"/> <location filename="../../build/src/ui_mainwindow.h" line="418"/>
@ -122,7 +122,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="419"/> <location filename="../../build/src/ui_mainwindow.h" line="419"/>
<source>Ctrl+A</source> <source>Ctrl+A</source>
<translation></translation> <translation>Ctrl+A</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="420"/> <location filename="../../build/src/ui_mainwindow.h" line="420"/>
@ -132,7 +132,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="421"/> <location filename="../../build/src/ui_mainwindow.h" line="421"/>
<source>Ctrl+W</source> <source>Ctrl+W</source>
<translation></translation> <translation>Ctrl+W</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="422"/> <location filename="../../build/src/ui_mainwindow.h" line="422"/>
@ -142,7 +142,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="423"/> <location filename="../../build/src/ui_mainwindow.h" line="423"/>
<source>Ctrl++</source> <source>Ctrl++</source>
<translation></translation> <translation>Ctrl++</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="424"/> <location filename="../../build/src/ui_mainwindow.h" line="424"/>
@ -152,7 +152,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="425"/> <location filename="../../build/src/ui_mainwindow.h" line="425"/>
<source>Ctrl+-</source> <source>Ctrl+-</source>
<translation></translation> <translation>Ctrl+-</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="426"/> <location filename="../../build/src/ui_mainwindow.h" line="426"/>
@ -163,13 +163,13 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<location filename="../../build/src/ui_mainwindow.h" line="427"/> <location filename="../../build/src/ui_mainwindow.h" line="427"/>
<location filename="../../build/src/ui_mainwindow.h" line="429"/> <location filename="../../build/src/ui_mainwindow.h" line="429"/>
<source>Next File</source> <source>Next File</source>
<translation>Prossimo</translation> <translation>File successivo</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="432"/> <location filename="../../build/src/ui_mainwindow.h" line="432"/>
<location filename="../../build/src/ui_mainwindow.h" line="434"/> <location filename="../../build/src/ui_mainwindow.h" line="434"/>
<source>Previous File</source> <source>Previous File</source>
<translation>Precedente</translation> <translation>File precedente</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="431"/> <location filename="../../build/src/ui_mainwindow.h" line="431"/>
@ -179,57 +179,57 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="436"/> <location filename="../../build/src/ui_mainwindow.h" line="436"/>
<source>PgUp</source> <source>PgUp</source>
<translation>Pagina sù</translation> <translation>Pagina su</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="437"/> <location filename="../../build/src/ui_mainwindow.h" line="437"/>
<source>Original Size</source> <source>Original Size</source>
<translation type="unfinished">&amp;Dimensioni originiali</translation> <translation>Dimensioni originali</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="438"/> <location filename="../../build/src/ui_mainwindow.h" line="438"/>
<source>&amp;Fit</source> <source>&amp;Fit</source>
<translation>&amp;Adatta alla finestra</translation> <translation>&amp;Adatta</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="439"/> <location filename="../../build/src/ui_mainwindow.h" line="439"/>
<source>&amp;Rotate Clockwise</source> <source>&amp;Rotate Clockwise</source>
<translation>Gira a &amp;destra</translation> <translation>&amp;Ruota in senso orario</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="440"/> <location filename="../../build/src/ui_mainwindow.h" line="440"/>
<source>Rotate &amp;Counterclockwise</source> <source>Rotate &amp;Counterclockwise</source>
<translation>Gira a &amp;sinistra</translation> <translation>Ruota in &amp;senso antiorario</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="441"/> <location filename="../../build/src/ui_mainwindow.h" line="441"/>
<source>P&amp;references</source> <source>P&amp;references</source>
<translation>&amp;Preferenze</translation> <translation>P&amp;referenze</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="442"/> <location filename="../../build/src/ui_mainwindow.h" line="442"/>
<source>&amp;Print</source> <source>&amp;Print</source>
<translation>&amp;Stampa</translation> <translation>Stam&amp;pa</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="443"/> <location filename="../../build/src/ui_mainwindow.h" line="443"/>
<source>Ctrl+P</source> <source>Ctrl+P</source>
<translation></translation> <translation>Ctrl+P</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="444"/> <location filename="../../build/src/ui_mainwindow.h" line="444"/>
<source>First File</source> <source>First File</source>
<translation>Primo</translation> <translation>Primo file</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="445"/> <location filename="../../build/src/ui_mainwindow.h" line="445"/>
<source>Home</source> <source>Home</source>
<translation></translation> <translation>Home</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="446"/> <location filename="../../build/src/ui_mainwindow.h" line="446"/>
<source>Last File</source> <source>Last File</source>
<translation>Ultimo</translation> <translation>Ultimo file</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="447"/> <location filename="../../build/src/ui_mainwindow.h" line="447"/>
@ -244,12 +244,12 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="449"/> <location filename="../../build/src/ui_mainwindow.h" line="449"/>
<source>Ctrl+N</source> <source>Ctrl+N</source>
<translation></translation> <translation>Ctrl+N</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="450"/> <location filename="../../build/src/ui_mainwindow.h" line="450"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation>Rispecchia &amp;horizzontalmente</translation> <translation>Rispecchia &amp;orizzontalmente</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="451"/> <location filename="../../build/src/ui_mainwindow.h" line="451"/>
@ -264,7 +264,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="453"/> <location filename="../../build/src/ui_mainwindow.h" line="453"/>
<source>F11</source> <source>F11</source>
<translation></translation> <translation>F11</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="454"/> <location filename="../../build/src/ui_mainwindow.h" line="454"/>
@ -274,7 +274,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="455"/> <location filename="../../build/src/ui_mainwindow.h" line="455"/>
<source>&amp;Paste from Clipboard</source> <source>&amp;Paste from Clipboard</source>
<translation>&amp;Incolla da appunti</translation> <translation>&amp;Incolla dagli appunti</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="456"/> <location filename="../../build/src/ui_mainwindow.h" line="456"/>
@ -284,23 +284,23 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="457"/> <location filename="../../build/src/ui_mainwindow.h" line="457"/>
<source>&amp;Delete</source> <source>&amp;Delete</source>
<translation>&amp;Cestina</translation> <translation>&amp;Elimina</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="458"/> <location filename="../../build/src/ui_mainwindow.h" line="458"/>
<source>Del</source> <source>Del</source>
<translation></translation> <translation>Canc</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="459"/> <location filename="../../build/src/ui_mainwindow.h" line="459"/>
<source>Show Thumbnails</source> <source>Show Thumbnails</source>
<translation type="unfinished">&amp;Mostra barra miniature</translation> <translation>Mostra miniature</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="460"/> <location filename="../../build/src/ui_mainwindow.h" line="460"/>
<source>File Properties</source> <source>File Properties</source>
<translatorcomment>Übersetzung von &apos;file&apos; weggelassen, da redundant.</translatorcomment> <translatorcomment>Übersetzung von &apos;file&apos; weggelassen, da redundant.</translatorcomment>
<translation>Proprietà</translation> <translation>Proprietà del file</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="461"/> <location filename="../../build/src/ui_mainwindow.h" line="461"/>

@ -0,0 +1,5 @@
[Desktop Entry]
GenericName[pl]=Przeglądarka obrazów
Comment[pl]=Przeglądarka obrazów LXQt
#TRANSLATIONS_DIR=translations

@ -77,7 +77,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../mainwindow.cpp" line="719"/> <location filename="../mainwindow.cpp" line="719"/>
<source>Thumbnails</source> <source>Thumbnails</source>
<translation type="unfinished"></translation> <translation>Miniaturki</translation>
</message> </message>
</context> </context>
<context> <context>
@ -145,7 +145,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="424"/> <location filename="../../build/src/ui_mainwindow.h" line="424"/>
<source>Zoom &amp;Out</source> <source>Zoom &amp;Out</source>
<translation type="unfinished">Po&amp;mniejsz</translation> <translation>Po&amp;mniejsz</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="425"/> <location filename="../../build/src/ui_mainwindow.h" line="425"/>
@ -300,12 +300,12 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="459"/> <location filename="../../build/src/ui_mainwindow.h" line="459"/>
<source>Show Thumbnails</source> <source>Show Thumbnails</source>
<translation type="unfinished"></translation> <translation>Pokaż miniaturki</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="460"/> <location filename="../../build/src/ui_mainwindow.h" line="460"/>
<source>File Properties</source> <source>File Properties</source>
<translation type="unfinished"></translation> <translation>Właściwości pliku</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="461"/> <location filename="../../build/src/ui_mainwindow.h" line="461"/>
@ -335,7 +335,7 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="466"/> <location filename="../../build/src/ui_mainwindow.h" line="466"/>
<source>Toolbar</source> <source>Toolbar</source>
<translation type="unfinished"></translation> <translation>Pasek narzędziowy</translation>
</message> </message>
<message> <message>
<source>toolBar</source> <source>toolBar</source>
@ -352,27 +352,27 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/> <location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
<source>Icon theme:</source> <source>Icon theme:</source>
<translation type="unfinished"></translation> <translation>Zestaw ikon:</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/> <location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
<source>Normal background color:</source> <source>Normal background color:</source>
<translation type="unfinished"></translation> <translation>Kolor tła:</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="129"/> <location filename="../../build/src/ui_preferencesdialog.h" line="129"/>
<source>Fullscreen background color:</source> <source>Fullscreen background color:</source>
<translation type="unfinished"></translation> <translation>Kolor tła dla pełnego ekranu:</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/> <location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
<source>Slide show interval (seconds):</source> <source>Slide show interval (seconds):</source>
<translation type="unfinished"></translation> <translation>Interwał pokazu slajdów (sekundy):</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="133"/> <location filename="../../build/src/ui_preferencesdialog.h" line="133"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation>Ogólne</translation>
</message> </message>
<message> <message>
<source>TODO: Add configuration options here</source> <source>TODO: Add configuration options here</source>

@ -0,0 +1,4 @@
#Translations
Name[ru]=LXImage
GenericName[ru]=Просмотрщик изображений
Comment[ru]=Просмотрщик изображений LXQt

@ -6,12 +6,12 @@
<message> <message>
<location filename="../application.cpp" line="87"/> <location filename="../application.cpp" line="87"/>
<source>Take a screenshot</source> <source>Take a screenshot</source>
<translation type="unfinished"></translation> <translation>Сделать снимок экрана</translation>
</message> </message>
<message> <message>
<location filename="../application.cpp" line="91"/> <location filename="../application.cpp" line="91"/>
<source>[FILE1, FILE2,...]</source> <source>[FILE1, FILE2,...]</source>
<translation type="unfinished"></translation> <translation>[ФАЙЛ1, ФАЙЛ2, ...]</translation>
</message> </message>
</context> </context>
<context> <context>
@ -19,7 +19,7 @@
<message> <message>
<location filename="../mainwindow.cpp" line="147"/> <location filename="../mainwindow.cpp" line="147"/>
<source>About</source> <source>About</source>
<translation type="unfinished"></translation> <translation>О программе</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="148"/> <location filename="../mainwindow.cpp" line="148"/>
@ -30,48 +30,54 @@ LXDE Project: http://lxde.org/
Authors: Authors:
Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</source> Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</source>
<translation type="unfinished"></translation> <translation>LXImage - простой и быстрый просмотрщик изображений
Copyright (C) 2013
LXDE Project: http://lxde.org/
Authors:
Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="241"/> <location filename="../mainwindow.cpp" line="241"/>
<source>Open File</source> <source>Open File</source>
<translation type="unfinished"></translation> <translation>Открыть файл</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="242"/> <location filename="../mainwindow.cpp" line="242"/>
<location filename="../mainwindow.cpp" line="263"/> <location filename="../mainwindow.cpp" line="263"/>
<source>Image files (%1)</source> <source>Image files (%1)</source>
<translation type="unfinished"></translation> <translation>Файлы изображений (%1)</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="263"/> <location filename="../mainwindow.cpp" line="263"/>
<source>Save File</source> <source>Save File</source>
<translation type="unfinished"></translation> <translation>Сохранить файл</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="525"/> <location filename="../mainwindow.cpp" line="525"/>
<source>%1 (Loading...) - Image Viewer</source> <source>%1 (Loading...) - Image Viewer</source>
<translation type="unfinished"></translation> <translation>%1 (Загружается...) - Просмотрщик изображений</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="530"/> <location filename="../mainwindow.cpp" line="530"/>
<source>%1 (Failed to Load) - Image Viewer</source> <source>%1 (Failed to Load) - Image Viewer</source>
<translation type="unfinished"></translation> <translation>%1 (Ошибка загрузки) - Просмотрщик изображений</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="534"/> <location filename="../mainwindow.cpp" line="534"/>
<source>%1 (%2x%3) - Image Viewer</source> <source>%1 (%2x%3) - Image Viewer</source>
<translation type="unfinished"></translation> <translation>%1 (%2x%3) - Просмотрщик изображений</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="544"/> <location filename="../mainwindow.cpp" line="544"/>
<source>Image Viewer</source> <source>Image Viewer</source>
<translation type="unfinished"></translation> <translation>Просмотрщик изображений</translation>
</message> </message>
<message> <message>
<location filename="../mainwindow.cpp" line="719"/> <location filename="../mainwindow.cpp" line="719"/>
<source>Thumbnails</source> <source>Thumbnails</source>
<translation type="unfinished"></translation> <translation>Эскизы</translation>
</message> </message>
</context> </context>
<context> <context>
@ -79,249 +85,249 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</source>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="412"/> <location filename="../../build/src/ui_mainwindow.h" line="412"/>
<source>Image Viewer</source> <source>Image Viewer</source>
<translation type="unfinished"></translation> <translation>Просмотрщик изображений</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="413"/> <location filename="../../build/src/ui_mainwindow.h" line="413"/>
<source>&amp;About</source> <source>&amp;About</source>
<translation type="unfinished"></translation> <translation>О &amp;программе</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="414"/> <location filename="../../build/src/ui_mainwindow.h" line="414"/>
<source>&amp;Open File</source> <source>&amp;Open File</source>
<translation type="unfinished"></translation> <translation>&amp;Открыть файл</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="415"/> <location filename="../../build/src/ui_mainwindow.h" line="415"/>
<source>Ctrl+O</source> <source>Ctrl+O</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="416"/> <location filename="../../build/src/ui_mainwindow.h" line="416"/>
<source>&amp;Save</source> <source>&amp;Save</source>
<translation type="unfinished"></translation> <translation>&amp;Сохранить</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="417"/> <location filename="../../build/src/ui_mainwindow.h" line="417"/>
<source>Ctrl+S</source> <source>Ctrl+S</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="418"/> <location filename="../../build/src/ui_mainwindow.h" line="418"/>
<source>Save &amp;As</source> <source>Save &amp;As</source>
<translation type="unfinished"></translation> <translation>Сохранить &amp;как</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="419"/> <location filename="../../build/src/ui_mainwindow.h" line="419"/>
<source>Ctrl+A</source> <source>Ctrl+A</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="420"/> <location filename="../../build/src/ui_mainwindow.h" line="420"/>
<source>&amp;Close</source> <source>&amp;Close</source>
<translation type="unfinished"></translation> <translation>&amp;Закрыть</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="421"/> <location filename="../../build/src/ui_mainwindow.h" line="421"/>
<source>Ctrl+W</source> <source>Ctrl+W</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="422"/> <location filename="../../build/src/ui_mainwindow.h" line="422"/>
<source>Zoom &amp;In</source> <source>Zoom &amp;In</source>
<translation type="unfinished"></translation> <translation>При&amp;близить</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="423"/> <location filename="../../build/src/ui_mainwindow.h" line="423"/>
<source>Ctrl++</source> <source>Ctrl++</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="424"/> <location filename="../../build/src/ui_mainwindow.h" line="424"/>
<source>Zoom &amp;Out</source> <source>Zoom &amp;Out</source>
<translation type="unfinished"></translation> <translation>От&amp;далить</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="425"/> <location filename="../../build/src/ui_mainwindow.h" line="425"/>
<source>Ctrl+-</source> <source>Ctrl+-</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="426"/> <location filename="../../build/src/ui_mainwindow.h" line="426"/>
<source>&amp;Copy to Clipboard</source> <source>&amp;Copy to Clipboard</source>
<translation type="unfinished"></translation> <translation>Скопировать в &amp;буфер обмена</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="427"/> <location filename="../../build/src/ui_mainwindow.h" line="427"/>
<location filename="../../build/src/ui_mainwindow.h" line="429"/> <location filename="../../build/src/ui_mainwindow.h" line="429"/>
<source>Next File</source> <source>Next File</source>
<translation type="unfinished"></translation> <translation>Следующий файл</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="432"/> <location filename="../../build/src/ui_mainwindow.h" line="432"/>
<location filename="../../build/src/ui_mainwindow.h" line="434"/> <location filename="../../build/src/ui_mainwindow.h" line="434"/>
<source>Previous File</source> <source>Previous File</source>
<translation type="unfinished"></translation> <translation>Предыдущий файл</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="431"/> <location filename="../../build/src/ui_mainwindow.h" line="431"/>
<source>PgDown</source> <source>PgDown</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="436"/> <location filename="../../build/src/ui_mainwindow.h" line="436"/>
<source>PgUp</source> <source>PgUp</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="437"/> <location filename="../../build/src/ui_mainwindow.h" line="437"/>
<source>Original Size</source> <source>Original Size</source>
<translation type="unfinished"></translation> <translation>Исходный размер</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="438"/> <location filename="../../build/src/ui_mainwindow.h" line="438"/>
<source>&amp;Fit</source> <source>&amp;Fit</source>
<translation type="unfinished"></translation> <translation>&amp;Заполнить</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="439"/> <location filename="../../build/src/ui_mainwindow.h" line="439"/>
<source>&amp;Rotate Clockwise</source> <source>&amp;Rotate Clockwise</source>
<translation type="unfinished"></translation> <translation>Пове&amp;рнуть по часовой стрелке</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="440"/> <location filename="../../build/src/ui_mainwindow.h" line="440"/>
<source>Rotate &amp;Counterclockwise</source> <source>Rotate &amp;Counterclockwise</source>
<translation type="unfinished"></translation> <translation>Повернуть &amp;против часовой стрелки</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="441"/> <location filename="../../build/src/ui_mainwindow.h" line="441"/>
<source>P&amp;references</source> <source>P&amp;references</source>
<translation type="unfinished"></translation> <translation>&amp;Настройки</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="442"/> <location filename="../../build/src/ui_mainwindow.h" line="442"/>
<source>&amp;Print</source> <source>&amp;Print</source>
<translation type="unfinished"></translation> <translation>&amp;Печать</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="443"/> <location filename="../../build/src/ui_mainwindow.h" line="443"/>
<source>Ctrl+P</source> <source>Ctrl+P</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="444"/> <location filename="../../build/src/ui_mainwindow.h" line="444"/>
<source>First File</source> <source>First File</source>
<translation type="unfinished"></translation> <translation>Первый файл</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="445"/> <location filename="../../build/src/ui_mainwindow.h" line="445"/>
<source>Home</source> <source>Home</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="446"/> <location filename="../../build/src/ui_mainwindow.h" line="446"/>
<source>Last File</source> <source>Last File</source>
<translation type="unfinished"></translation> <translation>Последний файл</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="447"/> <location filename="../../build/src/ui_mainwindow.h" line="447"/>
<source>End</source> <source>End</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="448"/> <location filename="../../build/src/ui_mainwindow.h" line="448"/>
<source>&amp;New Window</source> <source>&amp;New Window</source>
<translation type="unfinished"></translation> <translation>Новое &amp;окно</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="449"/> <location filename="../../build/src/ui_mainwindow.h" line="449"/>
<source>Ctrl+N</source> <source>Ctrl+N</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="450"/> <location filename="../../build/src/ui_mainwindow.h" line="450"/>
<source>Flip &amp;Horizontally</source> <source>Flip &amp;Horizontally</source>
<translation type="unfinished"></translation> <translation>Отразить &amp;горизонтально</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="451"/> <location filename="../../build/src/ui_mainwindow.h" line="451"/>
<source>Capture Screenshot</source> <source>Capture Screenshot</source>
<translation type="unfinished"></translation> <translation>Сделать снимок экрана</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="452"/> <location filename="../../build/src/ui_mainwindow.h" line="452"/>
<source>F&amp;ull Screen</source> <source>F&amp;ull Screen</source>
<translation type="unfinished"></translation> <translation>Полный &amp;экран</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="453"/> <location filename="../../build/src/ui_mainwindow.h" line="453"/>
<source>F11</source> <source>F11</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="454"/> <location filename="../../build/src/ui_mainwindow.h" line="454"/>
<source>Flip &amp;Vertically</source> <source>Flip &amp;Vertically</source>
<translation type="unfinished"></translation> <translation>Отразить &amp;вертикально</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="455"/> <location filename="../../build/src/ui_mainwindow.h" line="455"/>
<source>&amp;Paste from Clipboard</source> <source>&amp;Paste from Clipboard</source>
<translation type="unfinished"></translation> <translation>&amp;Вставить из буфера обмена</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="456"/> <location filename="../../build/src/ui_mainwindow.h" line="456"/>
<source>&amp;Slide Show</source> <source>&amp;Slide Show</source>
<translation type="unfinished"></translation> <translation>&amp;Слайд-шоу</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="457"/> <location filename="../../build/src/ui_mainwindow.h" line="457"/>
<source>&amp;Delete</source> <source>&amp;Delete</source>
<translation type="unfinished"></translation> <translation>&amp;Удалить</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="458"/> <location filename="../../build/src/ui_mainwindow.h" line="458"/>
<source>Del</source> <source>Del</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="459"/> <location filename="../../build/src/ui_mainwindow.h" line="459"/>
<source>Show Thumbnails</source> <source>Show Thumbnails</source>
<translation type="unfinished"></translation> <translation>Показать эскизы</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="460"/> <location filename="../../build/src/ui_mainwindow.h" line="460"/>
<source>File Properties</source> <source>File Properties</source>
<translation type="unfinished"></translation> <translation>Свойства файла</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="461"/> <location filename="../../build/src/ui_mainwindow.h" line="461"/>
<source>&amp;File</source> <source>&amp;File</source>
<translation type="unfinished"></translation> <translation>&amp;Файл</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="462"/> <location filename="../../build/src/ui_mainwindow.h" line="462"/>
<source>&amp;Help</source> <source>&amp;Help</source>
<translation type="unfinished"></translation> <translation>&amp;Помощь</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="463"/> <location filename="../../build/src/ui_mainwindow.h" line="463"/>
<source>Go</source> <source>Go</source>
<translation type="unfinished"></translation> <translation>Перейти</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="464"/> <location filename="../../build/src/ui_mainwindow.h" line="464"/>
<source>&amp;View</source> <source>&amp;View</source>
<translation type="unfinished"></translation> <translation>&amp;Вид</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="465"/> <location filename="../../build/src/ui_mainwindow.h" line="465"/>
<source>&amp;Edit</source> <source>&amp;Edit</source>
<translation type="unfinished"></translation> <translation>&amp;Редактировать</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_mainwindow.h" line="466"/> <location filename="../../build/src/ui_mainwindow.h" line="466"/>
<source>Toolbar</source> <source>Toolbar</source>
<translation type="unfinished"></translation> <translation>Панель инструментов</translation>
</message> </message>
</context> </context>
<context> <context>
@ -329,32 +335,32 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</source>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/> <location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
<source>Preferences</source> <source>Preferences</source>
<translation type="unfinished"></translation> <translation>Настройки</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/> <location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
<source>Icon theme:</source> <source>Icon theme:</source>
<translation type="unfinished"></translation> <translation>Тема значков:</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/> <location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
<source>Normal background color:</source> <source>Normal background color:</source>
<translation type="unfinished"></translation> <translation>Обычный цвет фона:</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="129"/> <location filename="../../build/src/ui_preferencesdialog.h" line="129"/>
<source>Fullscreen background color:</source> <source>Fullscreen background color:</source>
<translation type="unfinished"></translation> <translation>Цвет фона для режима полного экрана:</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/> <location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
<source>Slide show interval (seconds):</source> <source>Slide show interval (seconds):</source>
<translation type="unfinished"></translation> <translation>Интервал слайд-шоу (в секундах):</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_preferencesdialog.h" line="133"/> <location filename="../../build/src/ui_preferencesdialog.h" line="133"/>
<source>General</source> <source>General</source>
<translation type="unfinished"></translation> <translation>Общие</translation>
</message> </message>
</context> </context>
<context> <context>
@ -362,47 +368,47 @@ Hong Jen Yee (PCMan) &lt;pcman.tw@gmail.com&gt;</source>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/> <location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
<source>Screenshot</source> <source>Screenshot</source>
<translation type="unfinished"></translation> <translation>Снимок экрана</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/> <location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
<source>Take a screenshot</source> <source>Take a screenshot</source>
<translation type="unfinished"></translation> <translation>Сделать снимок экрана</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/> <location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
<source>Region</source> <source>Region</source>
<translation type="unfinished"></translation> <translation>Область</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/> <location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
<source>Whole screen</source> <source>Whole screen</source>
<translation type="unfinished"></translation> <translation>Весь экран</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/> <location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
<source>Current window only</source> <source>Current window only</source>
<translation type="unfinished"></translation> <translation>Только активное окно</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/> <location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
<source>Include mouse cursor</source> <source>Include mouse cursor</source>
<translation type="unfinished"></translation> <translation>Показывать курсор мыши</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/> <location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
<source> seconds</source> <source> seconds</source>
<translation type="unfinished"></translation> <translation> секунд(ы)</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/> <location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
<source>Delay:</source> <source>Delay:</source>
<translation type="unfinished"></translation> <translation>Задержка:</translation>
</message> </message>
<message> <message>
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/> <location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
<source>Include window title and frame</source> <source>Include window title and frame</source>
<translation type="unfinished"></translation> <translation>Показывать заголовок и обрамление окна</translation>
</message> </message>
</context> </context>
</TS> </TS>

Loading…
Cancel
Save