Compare commits
8 Commits
ubuntu/plu
...
upstream/0
Author | SHA1 | Date | |
---|---|---|---|
|
5eaa08fe49 | ||
|
4a8f2ba14a | ||
|
d53be78755 | ||
|
de1fa415b2 | ||
|
4ac585f605 | ||
|
bc98f04c8a | ||
|
7a6ecc3364 | ||
|
95a2f6c084 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +0,0 @@
|
||||
build
|
4
AUTHORS
4
AUTHORS
@ -3,7 +3,7 @@ Upstream Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
|
||||
|
||||
Copyright:
|
||||
Copyright (c) 2013-2014 LXQt team
|
||||
Copyright (c) 2013-2017 LXQt team
|
||||
|
||||
License: GPL-2 and LGPL-2.1+
|
||||
License: GPL-2+ and LGPL-2.1+
|
||||
The full text of the licenses can be found in the 'COPYING' file.
|
||||
|
218
CHANGELOG
Normal file
218
CHANGELOG
Normal file
@ -0,0 +1,218 @@
|
||||
|
||||
lximage-qt-0.6.0 / 2017-10-21
|
||||
=============================
|
||||
|
||||
* Add ImageShack upload provider.
|
||||
* Fix warnings issued by GCC and Clang.
|
||||
* Ensure file is closed when upload finishes.
|
||||
* Make image URL read-only.
|
||||
* Update copyright in initial file comment for new additions.
|
||||
* Make QNetworkAccessManager static and fix initialization order in UploadDialog.
|
||||
* Add support for uploading files (fixes #98).
|
||||
* Bump versions
|
||||
* Don't export github templates
|
||||
* Don't use hardcoded install dir
|
||||
* Update CMakeLists.txt
|
||||
* Fix regression in thumbnail view
|
||||
* Add Lithuanian .desktop files
|
||||
* liblxqt don't fit here
|
||||
* Copied issue-template
|
||||
* Drops Qt5Core_VERSION_STRING
|
||||
* set Qt::AA_UseHighDpiPixmaps to true
|
||||
* MainWindow: Fix crash for quick image changes
|
||||
* Use GNUInstallDirs
|
||||
* jobs: Do proper error handling
|
||||
* Adapt to changes in libfm-qt(the c++11 port)
|
||||
* Use the new lxqt-build-tools new FindExif CMake module
|
||||
* Simpler code for ScreenshotSelectAreaGraphicsView class.
|
||||
* Change Screenshot select area green color by actual hightlight color. Use lximage-qt private variables style.
|
||||
* Adapt to C++11 and RAM improvements.
|
||||
* Screenshot captures an area of the screen.
|
||||
* Use const iterators
|
||||
* Bump year
|
||||
* File and folder DND Fixes https://github.com/lxde/lximage-qt/issues/69.
|
||||
|
||||
0.5.1 / 2016-12-21
|
||||
==================
|
||||
|
||||
* Release 0.5.1: Update changelog
|
||||
* Bump patch version and (#82)
|
||||
* Create lximage-qt-screenshot_it.desktop (#83)
|
||||
* Add *da.desktop files
|
||||
* Desktop entry files: Fix typo in French translation
|
||||
* [MRG] Display first image when loading a directory (v2) (#75)
|
||||
* Desktop entry files: Add French translation
|
||||
* Use lxqt-build-tools
|
||||
* Use the new lxqt-build-tools package
|
||||
* Fixed A Cast (#71)
|
||||
* Remove cpack (#70)
|
||||
|
||||
0.5.0 / 2016-09-24
|
||||
==================
|
||||
|
||||
* Release 0.5.0: Add changelog
|
||||
* Bump version to 0.5.0 (#67)
|
||||
* Remove Core and Qt from Categories in desktop file (#64)
|
||||
* Extend README.md
|
||||
* Fix broken compatibility introduced by libfm-qt API changes. This closes lxde/lximage-qt#63.
|
||||
* Add Catalan translations
|
||||
* Quieten compiler warning
|
||||
* Code cleanup
|
||||
* Use LXQtCompilerSettings cmake module
|
||||
* Treat SVG files separately as SVG images
|
||||
* build: Update translations based on *.ui
|
||||
* Fix typo in Portuguese translation for desktop file
|
||||
* Fix typo in German translation for desktop file (#55)
|
||||
* build: Use external translations (#54)
|
||||
* ts-files removal (#53)
|
||||
* Hide cursor smartly in fullscreen mode
|
||||
* build: Use liblxqt's TranslateDesktop module
|
||||
* Adds support for GIF animation.
|
||||
* Implement an EOG-like behavior on starting By clicking on an image for the first time, the user wants to see it clearly with lximage-qt. So, the following behavior is implemented here:
|
||||
* Add --version command line option
|
||||
* Fix missing Russian translation in desktop file
|
||||
* Fix memory leak if taking screenshot with cursor
|
||||
* Polish translation updated
|
||||
* Another update
|
||||
* Improved Russian translation - thanks to uazure
|
||||
* Fix typo
|
||||
* Add Russian translation
|
||||
* Italian translation update
|
||||
* CMake: Adapt to libfm-qt Targets
|
||||
* Turn on C++11 support. This closes bug lxde/lximage-qt #36.
|
||||
* Exec should have an argument
|
||||
* all GPL files are (or any later)
|
||||
* Add release script
|
||||
* Update translations
|
||||
* Set the color table properly for scaled images
|
||||
* Add Greek (el) translation Remove needless country variant from language code
|
||||
* Corrected language code (de_DE -> de) of german translation, marked translations as done.
|
||||
* replace tabs with spaces
|
||||
* remove trailing spaces
|
||||
* replace glib with Qt for command-line parsing
|
||||
* Don't save file in private mode
|
||||
* Prevents the slideshow timeout to be set to 0 in the UI
|
||||
* Correctly include CMake modules in intree/superbuild mode
|
||||
* Remove lximage-qt from the Utilities category
|
||||
* Update README
|
||||
* Update .gitignore
|
||||
* Hungarian translations added
|
||||
* save and restore window size and maximized state
|
||||
|
||||
0.4.0 / 2015-02-18
|
||||
==================
|
||||
|
||||
* Release v0.4.0
|
||||
* src/CMakeLists.txt: do not completely overwrite CMAKE_CXX_FLAGS
|
||||
* Create lximage-qt_it.desktop
|
||||
* Create lximage-qt_it.ts
|
||||
* CMakeLists cleanups
|
||||
* Portuguese update
|
||||
* Added german translation, re-generated all other .ts files.
|
||||
* Added keyboard shortcut to print.
|
||||
* Adds .desktop translation support
|
||||
* Portuguese language update
|
||||
* Remove debian directory (Close #9)
|
||||
* Fix typo Zoomo -> Zoom
|
||||
* Use proper naming conventions for translations
|
||||
* Clean up CMakeLists, dropping support for Qt 5
|
||||
|
||||
0.3.0 / 2014-10-15
|
||||
==================
|
||||
|
||||
* Release v0.3.0
|
||||
* Rename preferencedialog.ui to preferencesdialog.ui
|
||||
* Ignore build dir.
|
||||
* debian: enable qt5 by default
|
||||
* Fix lxde/lxde-qt #269 - Screenshots are not saved aedequately unless file extension is chosen manually.
|
||||
* Support Qt5 and libfm-qt5.
|
||||
* Make sure all enums are handled in switch
|
||||
|
||||
0.2.0 / 2014-05-09
|
||||
==================
|
||||
|
||||
* Release 0.2.0
|
||||
* Update desktop files
|
||||
* Update README/COPYING/AUTHORS
|
||||
* Add some missing link_directories()
|
||||
* Commit from LXDE Pootle server by user yinghua_wang.: 70 of 70 strings translated (0 fuzzy).
|
||||
* Add CPack rules for creating tarball
|
||||
* Avoid creating a scaled image cache if current scale factor is 1.0 (original size).
|
||||
* Rewrite the scaled image caching code in LxImage::ImageView to improve its readability and correctness.
|
||||
* Add LxImage::Job class as a base class for multi-threading jobs.
|
||||
* Avoid copying subimages to speed up scaling images.
|
||||
* Limit the size of pixmap cache.
|
||||
* Limit the size of pixmap cache.
|
||||
* Create a cache for the high-quality scaled image of the currently viewport and use it to override the default paintEvent() of QGraphicsView as needed. This improves the image quality a lot when we scale down large photos.
|
||||
* Cancel autoZoomFit when calling zoomOriginal(), zoomIn(), and zoomOut().
|
||||
* Add copy and paste buttons to the toolbar.
|
||||
* Automatically zoom to fit current window size by default.
|
||||
* Make the preferences dialog non-modal and apply the settings to all existing windows.
|
||||
* Add "Delete file" and "File properties" actions to the file menu.
|
||||
* Add a very basic thumbnails pane based on Fm::FolderView of libfm-qt.
|
||||
* Implement the preferences dialog. * Enable keyboard shortcuts in fullscreen mode.
|
||||
* Implement very basic slide show functionality.
|
||||
* Jump to the previous or the next image by using mouse wheel.
|
||||
* Avoid scaling up an image while zoomFit() if it's smaller than the current view.
|
||||
* Support grabbing mouse cursor when taking a screenshot.
|
||||
* Add very basic printing support.
|
||||
* Commit from LXDE Pootle server by user adrianoh2.: 70 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user Fitoschido.: 70 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user hirkmt.: 70 of 70 strings translated (0 fuzzy).
|
||||
* Remove xsettings support and add an option in the preference dialog to set a fallback icon theme instead.
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* Improve cmake integration for translations. The *.ts files are only updated when UPDATE_TRANSLATIONS cmake option is turned on.
|
||||
* Commit from LXDE Pootle server by user zvacet.: 65 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user zvacet.: 50 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user wwycheuk.: 65 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user mbouzada.: 70 of 70 strings translated (0 fuzzy).
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* Commit from LXDE Pootle server by user Fitoschido.: 68 of 70 strings translated (0 fuzzy).
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* Corrected caml cased string toolBar.
|
||||
* Commit from LXDE Pootle server by user smarquespt.: 70 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user brother.: 24 of 24 strings translated (0 fuzzy).
|
||||
* Correct misspelled 'Zoom'.
|
||||
* Commit from LXDE Pootle server by user andika.: 70 of 70 strings translated (0 fuzzy).
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* Commit from LXDE Pootle server by user strebski.: 70 of 70 strings translated (0 fuzzy).
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* Commit from LXDE Pootle server by user LStranger.: 70 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user brother.: 70 of 70 strings translated (0 fuzzy).
|
||||
* Commit from LXDE Pootle server by user LStranger.: 2 of 70 strings translated (0 fuzzy).
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* New files added from LXDE Pootle server based on templates
|
||||
* Add zh_TW translation and a template ts file.
|
||||
* Add a desktop entry file for the built-in screenshot tool.
|
||||
* Add --screenshot command line argument to launch the built-in screenshot utility.
|
||||
* Improve the screenshot tool. Implement pasting from clipboard.
|
||||
* Add ability to taking screenshots to lximage-qt.
|
||||
* debian : Add missing libx11 build-depend
|
||||
* Add missing files.
|
||||
* Add Xdg::DesktopSettings for detecting desktop-specific settings. Get icon theme name via XSettings or config files when available.
|
||||
* Supporting saving files. (needs some more polishing, though).
|
||||
* Add a basic debian directory to enable daily builds.
|
||||
* Add a context menu.
|
||||
* Use libexif to read EXIF orientation tags then apply them to images loaded.
|
||||
* Refactor - move image loading code to LxImage::LoadImageJob class.
|
||||
* Remove unused data member.
|
||||
* Add a preferences dialog (not working yet). Little adjustment for menu positions and add placeholders for features not implemented.
|
||||
* Fix filename encoding handling so non-English filenames can be passed correctly from command line arguments.
|
||||
* Canonicalize filenames passed through command line arguments. Add an icon borrowed from GPicView. Rearrange menus and implement "fullscreen" and "copy to clipboard".
|
||||
* Implement basic single instance support and command line argument parsing.
|
||||
* Properly cancel pending tasks and make going back/forward more smooth. Enhance window title display.
|
||||
* Little fix to avoid loading a cancelled image.
|
||||
* Supports rotation of images.
|
||||
* Use the latest libfm-qt APIs to filter out non-image files. Implement jumping to first and last file in the folder.
|
||||
* Fix incorrect reference couting of GCancellable objects to avoid crashes. Add some shortcut keys to improve usability.
|
||||
* Use glib/gio GInputStream + GIOSchedulerJob to load the images with multi-threading. Refactor, simplify class methods of LxImage::MainWindow.
|
||||
* Use libfm to load folders containing the specified image. Add dependency on libexif for future implementation of EXIF related stuff. Add LxImage::Applcation class to handle application initiation.
|
||||
* Initial import into git
|
@ -1,39 +1,38 @@
|
||||
cmake_minimum_required(VERSION 2.8.11)
|
||||
|
||||
cmake_minimum_required(VERSION 3.0.2)
|
||||
project(lximage-qt)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
# additional cmake files
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||
|
||||
set(MAJOR_VERSION 0)
|
||||
set(MINOR_VERSION 4)
|
||||
set(MINOR_VERSION 6)
|
||||
set(PATCH_VERSION 0)
|
||||
set(LXIMAGE_VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION})
|
||||
|
||||
set(LXQTBT_MINIMUM_VERSION "0.4.0")
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
||||
find_package(Qt5Widgets REQUIRED)
|
||||
find_package(Qt5Network REQUIRED)
|
||||
find_package(Qt5DBus REQUIRED)
|
||||
find_package(Qt5PrintSupport REQUIRED QUIET)
|
||||
find_package(Qt5X11Extras REQUIRED QUIET)
|
||||
find_package(Qt5LinguistTools REQUIRED QUIET)
|
||||
message(STATUS "Building with Qt ${Qt5Core_VERSION_STRING}")
|
||||
find_package(Qt5PrintSupport REQUIRED)
|
||||
find_package(Qt5X11Extras REQUIRED)
|
||||
find_package(Qt5LinguistTools REQUIRED)
|
||||
find_package(Qt5Svg REQUIRED)
|
||||
find_package(fm-qt REQUIRED)
|
||||
find_package(lxqt-build-tools ${LXQTBT_MINIMUM_VERSION} REQUIRED)
|
||||
find_package(Exif REQUIRED)
|
||||
message(STATUS "Building with Qt ${Qt5Core_VERSION}")
|
||||
|
||||
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
|
||||
pkg_check_modules(EXIF REQUIRED libexif)
|
||||
|
||||
pkg_check_modules(LIBFM_QT REQUIRED libfm-qt5 libfm>=1.2)
|
||||
include(LXQtCompilerSettings NO_POLICY_SCOPE)
|
||||
|
||||
# TODO: make the X11 stuff optional.
|
||||
# for screenshot support
|
||||
find_package(X11 REQUIRED)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
# Xfixes is needed to capture the mouse cursor image
|
||||
pkg_check_modules(XFIXES REQUIRED xfixes)
|
||||
|
||||
@ -46,12 +45,3 @@ install(
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/48x48/apps"
|
||||
)
|
||||
|
||||
# building tarball with CPack -------------------------------------------------
|
||||
include(InstallRequiredSystemLibraries)
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${MAJOR_VERSION})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${MINOR_VERSION})
|
||||
set(CPACK_PACKAGE_VERSION_PATCH ${PATCH_VERSION})
|
||||
set(CPACK_GENERATOR TBZ2)
|
||||
set(CPACK_SOURCE_GENERATOR TBZ2)
|
||||
set(CPACK_SOURCE_IGNORE_FILES /build/;.gitignore;.*~;.git;.kdev4;temp)
|
||||
include(CPack)
|
||||
|
8
README
8
README
@ -1,8 +0,0 @@
|
||||
# lximage-qt
|
||||
|
||||
A simple and fast image viewer.
|
||||
The Qt port of LXImage
|
||||
|
||||
Upstream:
|
||||
http://lxqt.org
|
||||
http://git.lxde.org/gitweb/?p=lxde/lximage-qt.git
|
25
README.md
Normal file
25
README.md
Normal file
@ -0,0 +1,25 @@
|
||||
# LXImage-Qt
|
||||
|
||||
## Overview
|
||||
|
||||
LXImage-Qt is the Qt port of LXImage, a simple and fast image viewer.
|
||||
|
||||
In addition it features a tool to take screenshots.
|
||||
|
||||
It is maintained by the LXQt project but can be used independently from this desktop environment.
|
||||
|
||||
## Installation
|
||||
|
||||
### Compiling source code
|
||||
|
||||
Runtime dependencies are qtx11extras and [libfm-qt](https://github.com/lxde/libfm-qt) (LXImage-Qt used to depend on [PCManFM-Qt](https://github.com/lxde/pcmanfm-qt) but the relevant code belongs to what was outsourced in libfm-qt).
|
||||
Additional build dependencies are CMake and optionally Git to pull latest VCS checkouts. The localization files were outsourced to repository [lxqt-l10n](https://github.com/lxde/lxqt-l10n) so the corresponding dependencies are needed, too. Please refer to this repository's `README.md` for further information.
|
||||
|
||||
Code configuration is handled by CMake. CMake variable `CMAKE_INSTALL_PREFIX` has to be set to `/usr` on most operating systems.
|
||||
|
||||
To build run `make`, to install `make install` which accepts variable `DESTDIR` as usual.
|
||||
|
||||
### Binary packages
|
||||
|
||||
Official binary packages are available in Arch Linux, Debian (as of Debian stretch), Fedora and openSUSE (Leap 42.1 and Tumbleweed).
|
||||
Just use the distributions' package manager to search for string 'lximage'.
|
@ -1,107 +0,0 @@
|
||||
#=============================================================================
|
||||
# The lxqt_translate_desktop() function was copied from the the
|
||||
# LXQt LxQtTranste.cmake
|
||||
#
|
||||
# Original Author: Alexander Sokolov <sokoloff.a@gmail.com>
|
||||
#
|
||||
# funtion lxqt_translate_desktop(_RESULT
|
||||
# SOURCES <sources>
|
||||
# [TRANSLATION_DIR] translation_directory
|
||||
# )
|
||||
# Output:
|
||||
# _RESULT The generated .desktop (.desktop) files
|
||||
#
|
||||
# Input:
|
||||
#
|
||||
# SOURCES List of input desktop files (.destktop.in) to be translated
|
||||
# (merged), relative to the CMakeList.txt.
|
||||
#
|
||||
# TRANSLATION_DIR Optional path to the directory with the .ts files,
|
||||
# relative to the CMakeList.txt. Defaults to
|
||||
# "translations".
|
||||
#
|
||||
#=============================================================================
|
||||
|
||||
function(lxqt_translate_desktop _RESULT)
|
||||
# Parse arguments ***************************************
|
||||
set(oneValueArgs TRANSLATION_DIR)
|
||||
set(multiValueArgs SOURCES)
|
||||
|
||||
cmake_parse_arguments(_ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
|
||||
# check for unknown arguments
|
||||
set(_UNPARSED_ARGS ${_ARGS_UNPARSED_ARGUMENTS})
|
||||
if (NOT ${_UNPARSED_ARGS} STREQUAL "")
|
||||
MESSAGE(FATAL_ERROR
|
||||
"Unknown arguments '${_UNPARSED_ARGS}'.\n"
|
||||
"See lxqt_translate_desktop() documenation for more information.\n"
|
||||
)
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED _ARGS_SOURCES)
|
||||
set(${_RESULT} "" PARENT_SCOPE)
|
||||
return()
|
||||
else()
|
||||
set(_sources ${_ARGS_SOURCES})
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED _ARGS_TRANSLATION_DIR)
|
||||
set(_translationDir "translations")
|
||||
else()
|
||||
set(_translationDir ${_ARGS_TRANSLATION_DIR})
|
||||
endif()
|
||||
|
||||
|
||||
get_filename_component (_translationDir ${_translationDir} ABSOLUTE)
|
||||
|
||||
foreach (_inFile ${_sources})
|
||||
get_filename_component(_inFile ${_inFile} ABSOLUTE)
|
||||
get_filename_component(_fileName ${_inFile} NAME_WE)
|
||||
#Extract the real extension ............
|
||||
get_filename_component(_fileExt ${_inFile} EXT)
|
||||
string(REPLACE ".in" "" _fileExt ${_fileExt})
|
||||
#.......................................
|
||||
set(_outFile "${CMAKE_CURRENT_BINARY_DIR}/${_fileName}${_fileExt}")
|
||||
|
||||
file(GLOB _translations
|
||||
${_translationDir}/${_fileName}_*${_fileExt}
|
||||
${_translationDir}/local/${_fileName}_*${_fileExt}
|
||||
)
|
||||
|
||||
set(_pattern "'\\[.*]\\s*='")
|
||||
if (_translations)
|
||||
add_custom_command(OUTPUT ${_outFile}
|
||||
COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > ${_outFile}
|
||||
COMMAND grep -h ${_pattern} ${_translations} >> ${_outFile}
|
||||
COMMENT "Generating ${_fileName}${_fileExt}"
|
||||
)
|
||||
else()
|
||||
add_custom_command(OUTPUT ${_outFile}
|
||||
COMMAND grep -v "'#TRANSLATIONS_DIR='" ${_inFile} > ${_outFile}
|
||||
COMMENT "Generating ${_fileName}${_fileExt}"
|
||||
)
|
||||
endif()
|
||||
|
||||
set(__result ${__result} ${_outFile})
|
||||
|
||||
|
||||
# TX file ***********************************************
|
||||
set(_txFile "${CMAKE_BINARY_DIR}/tx/${_fileName}${_fileExt}.tx.sh")
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" _tx_translationDir ${_translationDir})
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" _tx_inFile ${_inFile})
|
||||
string(REPLACE "." "" _fileType ${_fileExt})
|
||||
|
||||
file(WRITE ${_txFile}
|
||||
"[ -f ${_inFile} ] || exit 0\n"
|
||||
"echo '[lxde-qt.${_fileName}_${_fileType}]'\n"
|
||||
"echo 'type = DESKTOP'\n"
|
||||
"echo 'source_lang = en'\n"
|
||||
"echo 'source_file = ${_tx_inFile}'\n"
|
||||
"echo 'file_filter = ${_tx_translationDir}/${_fileName}_<lang>${_fileExt}'\n"
|
||||
"echo ''\n"
|
||||
)
|
||||
|
||||
endforeach()
|
||||
|
||||
set(${_RESULT} ${__result} PARENT_SCOPE)
|
||||
endfunction(lxqt_translate_desktop)
|
@ -5,5 +5,5 @@ GenericName=Screenshot
|
||||
Comment=Take a screenshot
|
||||
Exec=lximage-qt --screenshot
|
||||
Icon=camera-photo
|
||||
Categories=Graphics;Utility;Core;Qt;
|
||||
Categories=Graphics;Core;Qt;
|
||||
StartupNotify=true
|
||||
|
@ -4,8 +4,8 @@ Name=LXImage
|
||||
GenericName=Image Viewer
|
||||
Comment=The LXQt image viewer
|
||||
Icon=lximage-qt
|
||||
Exec=lximage-qt
|
||||
Exec=lximage-qt %F
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Categories=Graphics;Utility;Core;Qt;Viewer;RasterGraphics;2DGraphics;Photography;
|
||||
Categories=Graphics;Viewer;RasterGraphics;2DGraphics;Photography;
|
||||
MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/tiff;image/x-bmp;image/x-pcx;image/x-tga;image/x-portable-pixmap;image/x-portable-bitmap;image/x-targa;image/x-portable-greymap;application/pcx;image/svg+xml;image/svg-xml;
|
||||
|
@ -1,4 +0,0 @@
|
||||
[Project]
|
||||
Name=lximage-qt
|
||||
Manager=KDevCMakeManager
|
||||
VersionControl=
|
28
release.sh
Executable file
28
release.sh
Executable file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
PROJECT="lximage-qt"
|
||||
version="$1"
|
||||
prefix=$PROJECT-$version
|
||||
shift
|
||||
|
||||
if [[ -z $version ]]; then
|
||||
>&2 echo "USAGE: $0 <tag>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
mkdir -p "dist/$version"
|
||||
echo "Creating $prefix.tar.gz"
|
||||
git archive -9 --format tar.gz $version --prefix="$prefix/" > "dist/$version/$prefix.tar.gz"
|
||||
gpg --armor --detach-sign "dist/$version/$prefix.tar.gz"
|
||||
echo "Creating $prefix.tar.xz"
|
||||
git archive -9 --format tar.xz $version --prefix="$prefix/" > "dist/$version/$prefix.tar.xz"
|
||||
gpg --armor --detach-sign "dist/$version/$prefix.tar.xz"
|
||||
cd "dist/$version"
|
||||
|
||||
sha1sum --tag *.tar.gz *.tar.xz >> CHECKSUMS
|
||||
sha256sum --tag *.tar.gz *.tar.xz >> CHECKSUMS
|
||||
|
||||
cd ..
|
||||
echo "Uploading to lxqt.org..."
|
||||
|
||||
scp -r "$version" "downloads.lxqt.org:/srv/downloads.lxqt.org/$PROJECT/"
|
@ -1,12 +1,4 @@
|
||||
# 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")
|
||||
|
||||
include_directories(
|
||||
${QTX_INCLUDE_DIRS}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${GLIB_INCLUDE_DIRS}
|
||||
${EXIF_INCLUDE_DIRS}
|
||||
${LIBFM_QT_INCLUDE_DIRS}
|
||||
${X11_INCLUDE_DIR}
|
||||
${XFIXES_INCLUDE_DIRS}
|
||||
)
|
||||
@ -24,11 +16,21 @@ set(lximage-qt_SRCS
|
||||
application.cpp
|
||||
imageview.cpp
|
||||
modelfilter.cpp
|
||||
job.cpp
|
||||
loadimagejob.cpp
|
||||
saveimagejob.cpp
|
||||
screenshotdialog.cpp
|
||||
screenshotselectarea.cpp
|
||||
screenshotselectareagraphicsview.cpp
|
||||
settings.cpp
|
||||
graphicsscene.cpp
|
||||
|
||||
upload/imageshackprovider.cpp
|
||||
upload/imageshackupload.cpp
|
||||
upload/imgurprovider.cpp
|
||||
upload/imgurupload.cpp
|
||||
upload/provider.cpp
|
||||
upload/upload.cpp
|
||||
upload/uploaddialog.cpp
|
||||
)
|
||||
|
||||
qt5_add_dbus_adaptor(lximage-qt_SRCS
|
||||
@ -43,20 +45,29 @@ set(lximage-qt_UIS
|
||||
mainwindow.ui
|
||||
preferencesdialog.ui
|
||||
screenshotdialog.ui
|
||||
|
||||
upload/uploaddialog.ui
|
||||
)
|
||||
qt5_wrap_ui(lximage-qt_UI_H ${lximage-qt_UIS})
|
||||
|
||||
# add translation for lximage-qt
|
||||
file(GLOB TS_FILES translations/*.ts)
|
||||
option(UPDATE_TRANSLATIONS "Update source translation translations/*.ts files")
|
||||
if(UPDATE_TRANSLATIONS)
|
||||
qt5_create_translation(QM_FILES ${lximage-qt_SRCS} ${lximage-qt_UI_H} ${TS_FILES})
|
||||
else()
|
||||
qt5_add_translation(QM_FILES ${TS_FILES})
|
||||
endif()
|
||||
|
||||
add_custom_target (lximage-qt_translations DEPENDS ${QM_FILES})
|
||||
install(FILES ${QM_FILES} DESTINATION share/lximage-qt/translations)
|
||||
include(LXQtTranslateTs)
|
||||
lxqt_translate_ts(QM_FILES
|
||||
UPDATE_TRANSLATIONS ${UPDATE_TRANSLATIONS}
|
||||
SOURCES
|
||||
${lximage-qt_SRCS}
|
||||
${lximage-qt_UIS}
|
||||
INSTALL_DIR
|
||||
"${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/translations"
|
||||
PULL_TRANSLATIONS
|
||||
${PULL_TRANSLATIONS}
|
||||
CLEAN_TRANSLATIONS
|
||||
${CLEAN_TRANSLATIONS}
|
||||
TRANSLATIONS_REPO
|
||||
${TRANSLATIONS_REPO}
|
||||
TRANSLATIONS_REFSPEC
|
||||
${TRANSLATIONS_REFSPEC}
|
||||
)
|
||||
# prevent the generated files from being deleted during make clean
|
||||
set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM true)
|
||||
|
||||
@ -65,7 +76,7 @@ include(LXQtTranslateDesktop)
|
||||
|
||||
file(GLOB desktop_files_in ../data/*.desktop.in)
|
||||
lxqt_translate_desktop(desktop_files SOURCES ${desktop_files_in})
|
||||
install(FILES ${desktop_files} DESTINATION share/applications)
|
||||
install(FILES ${desktop_files} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications")
|
||||
|
||||
add_executable(lximage-qt
|
||||
${lximage-qt_SRCS}
|
||||
@ -75,19 +86,18 @@ add_executable(lximage-qt
|
||||
)
|
||||
|
||||
add_definitions(
|
||||
-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_DATA_DIR="${CMAKE_INSTALL_FULL_DATAROOTDIR}/lximage-qt"
|
||||
-DLXIMAGE_VERSION="${LXIMAGE_VERSION}"
|
||||
)
|
||||
|
||||
set(QT_LIBRARIES Qt5::Widgets Qt5::Core Qt5::DBus Qt5::PrintSupport Qt5::X11Extras)
|
||||
set(QT_LIBRARIES Qt5::Widgets Qt5::Network Qt5::Core Qt5::DBus Qt5::PrintSupport Qt5::X11Extras Qt5::Svg)
|
||||
|
||||
target_link_libraries(lximage-qt
|
||||
fm-qt
|
||||
${QT_LIBRARIES}
|
||||
${GLIB_LIBRARIES}
|
||||
${EXIF_LIBRARIES}
|
||||
${LIBFM_QT_LIBRARIES}
|
||||
${X11_LIBRARIES}
|
||||
${XFIXES_LIBRARIES}
|
||||
)
|
||||
|
||||
install(TARGETS lximage-qt RUNTIME DESTINATION bin)
|
||||
install(TARGETS lximage-qt RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
|
@ -19,6 +19,7 @@
|
||||
|
||||
|
||||
#include "application.h"
|
||||
#include <QCommandLineParser>
|
||||
#include <QDBusConnection>
|
||||
#include <QDBusInterface>
|
||||
#include <QPixmapCache>
|
||||
@ -34,11 +35,17 @@ static const char* ifaceName = "org.lxde.LxImage.Application";
|
||||
|
||||
Application::Application(int& argc, char** argv):
|
||||
QApplication(argc, argv),
|
||||
windowCount_(0),
|
||||
libFm() {
|
||||
libFm(),
|
||||
windowCount_(0) {
|
||||
setApplicationVersion(LXIMAGE_VERSION);
|
||||
}
|
||||
|
||||
bool Application::init(int argc, char** argv) {
|
||||
Q_UNUSED(argc)
|
||||
Q_UNUSED(argv)
|
||||
|
||||
setAttribute(Qt::AA_UseHighDpiPixmaps, true);
|
||||
|
||||
// install the translations built-into Qt itself
|
||||
qtTranslator.load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
|
||||
installTranslator(&qtTranslator);
|
||||
@ -57,10 +64,11 @@ bool Application::init(int argc, char** argv) {
|
||||
// we successfully registered the service
|
||||
isPrimaryInstance = true;
|
||||
setQuitOnLastWindowClosed(false); // do not quit even when there're no windows
|
||||
|
||||
|
||||
new ApplicationAdaptor(this);
|
||||
dbus.registerObject("/Application", this);
|
||||
// connect(this, SIGNAL(aboutToQuit()), SLOT(onAboutToQuit()));
|
||||
|
||||
connect(this, &Application::aboutToQuit, this, &Application::onAboutToQuit);
|
||||
|
||||
if(settings_.useFallbackIconTheme())
|
||||
QIcon::setThemeName(settings_.fallbackIconTheme());
|
||||
@ -72,81 +80,39 @@ bool Application::init(int argc, char** argv) {
|
||||
}
|
||||
|
||||
QPixmapCache::setCacheLimit(1024); // avoid pixmap caching.
|
||||
|
||||
if(!parseCommandLineArgs(argc, argv))
|
||||
return false;
|
||||
return true;
|
||||
|
||||
return parseCommandLineArgs();
|
||||
}
|
||||
|
||||
bool Application::parseCommandLineArgs(int argc, char** argv) {
|
||||
bool Application::parseCommandLineArgs() {
|
||||
QCommandLineParser parser;
|
||||
parser.addHelpOption();
|
||||
parser.addVersionOption();
|
||||
|
||||
struct FakeTr {
|
||||
FakeTr(int reserved = 20) {
|
||||
strings.reserve(reserved);
|
||||
}
|
||||
QCommandLineOption screenshotOption(
|
||||
QStringList() << "s" << "screenshot",
|
||||
tr("Take a screenshot")
|
||||
);
|
||||
parser.addOption(screenshotOption);
|
||||
|
||||
const char* operator()(const char* str) {
|
||||
QString translated = QApplication::translate(NULL, str);
|
||||
strings.push_back(translated.toUtf8());
|
||||
return strings.back().constData();
|
||||
}
|
||||
QVector<QByteArray> strings;
|
||||
};
|
||||
const QString files = tr("[FILE1, FILE2,...]");
|
||||
parser.addPositionalArgument("files", files, files);
|
||||
|
||||
parser.process(*this);
|
||||
|
||||
const QStringList args = parser.positionalArguments();
|
||||
const bool screenshotTool = parser.isSet(screenshotOption);
|
||||
|
||||
QStringList paths;
|
||||
Q_FOREACH(QString arg, args) {
|
||||
QFileInfo info(arg);
|
||||
paths.push_back(info.absoluteFilePath());
|
||||
}
|
||||
|
||||
bool keepRunning = false;
|
||||
// It's really a shame that the great Qt library does not come
|
||||
// with any command line parser.
|
||||
// After trying some Qt ways, I finally realized that glib is the best.
|
||||
// Simple, efficient, effective, and does not use signal/slot!
|
||||
// The only drawback is the translated string returned by tr() is
|
||||
// a temporary one. We need to store them in a list to keep them alive. :-(
|
||||
char** file_names = NULL;
|
||||
gboolean screenshotTool = FALSE;
|
||||
|
||||
{ // this block is required to limit the scope of FakeTr object so it don't affect
|
||||
// other normal QObject::tr() outside the block.
|
||||
FakeTr tr; // a functor used to override QObject::tr().
|
||||
// it convert the translated strings to UTF8 and add them to a list to
|
||||
// keep them alive during the option parsing process.
|
||||
GOptionEntry option_entries[] = {
|
||||
{"screenshot", 0, 0, G_OPTION_ARG_NONE, &screenshotTool, tr("Take a screenshot"), NULL},
|
||||
{G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &file_names, NULL, tr("[FILE1, FILE2,...]")},
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
GOptionContext* context = g_option_context_new("");
|
||||
g_option_context_add_main_entries(context, option_entries, NULL);
|
||||
GError* error = NULL;
|
||||
|
||||
if(!g_option_context_parse(context, &argc, &argv, &error)) {
|
||||
// show error and exit
|
||||
g_fprintf(stderr, "%s\n\n", error->message);
|
||||
g_error_free(error);
|
||||
g_option_context_free(context);
|
||||
return false;
|
||||
}
|
||||
g_option_context_free(context);
|
||||
}
|
||||
|
||||
// handle files to open
|
||||
QStringList paths;
|
||||
if(file_names) {
|
||||
char* cwd = g_get_current_dir();
|
||||
for(char** filename = file_names; *filename; ++filename) {
|
||||
// handle relative paths and remove unnecessary . & ..
|
||||
char* canonicalName = fm_canonicalize_filename(*filename, cwd);
|
||||
// convert from local encoding to QString (utf16).
|
||||
QString path = QString::fromLocal8Bit(canonicalName);
|
||||
g_free(canonicalName);
|
||||
paths.push_back(path);
|
||||
}
|
||||
g_free(cwd);
|
||||
}
|
||||
|
||||
if(isPrimaryInstance) {
|
||||
settings_.load();
|
||||
keepRunning = true;
|
||||
|
||||
if(screenshotTool) {
|
||||
screenshot();
|
||||
}
|
||||
@ -164,8 +130,6 @@ bool Application::parseCommandLineArgs(int argc, char** argv) {
|
||||
else
|
||||
iface.call("newWindow", paths);
|
||||
}
|
||||
// cleanup
|
||||
g_strfreev(file_names);
|
||||
return keepRunning;
|
||||
}
|
||||
|
||||
@ -179,13 +143,25 @@ void Application::newWindow(QStringList files) {
|
||||
LxImage::MainWindow* window;
|
||||
if(files.empty()) {
|
||||
window = createWindow();
|
||||
|
||||
window->resize(settings_.windowWidth(), settings_.windowHeight());
|
||||
if(settings_.windowMaximized())
|
||||
window->setWindowState(window->windowState() | Qt::WindowMaximized);
|
||||
|
||||
window->show();
|
||||
}
|
||||
else {
|
||||
Q_FOREACH(QString fileName, files) {
|
||||
window = createWindow();
|
||||
window->openImageFile(fileName);
|
||||
window->show();
|
||||
|
||||
window->resize(settings_.windowWidth(), settings_.windowHeight());
|
||||
if(settings_.windowMaximized())
|
||||
window->setWindowState(window->windowState() | Qt::WindowMaximized);
|
||||
|
||||
/* when there's an image, we show the window AFTER resizing
|
||||
and centering it appropriately at MainWindow::updateUI() */
|
||||
//window->show();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -206,3 +182,7 @@ void Application::editPreferences() {
|
||||
PreferencesDialog* dlg = new PreferencesDialog();
|
||||
dlg->show();
|
||||
}
|
||||
|
||||
void Application::onAboutToQuit() {
|
||||
settings_.save();
|
||||
}
|
||||
|
@ -34,18 +34,16 @@ class Application : public QApplication {
|
||||
public:
|
||||
Application(int& argc, char** argv);
|
||||
bool init(int argc, char** argv);
|
||||
bool parseCommandLineArgs(int argc, char** argv);
|
||||
bool parseCommandLineArgs();
|
||||
|
||||
void newWindow(QStringList files = QStringList());
|
||||
MainWindow* createWindow();
|
||||
|
||||
void addWindow() { // call this when you create a new toplevel window
|
||||
++windowCount_;
|
||||
qDebug("add");
|
||||
}
|
||||
|
||||
void removeWindow() { // call this when you destroy a toplevel window
|
||||
qDebug("remove");
|
||||
--windowCount_;
|
||||
if(0 == windowCount_)
|
||||
quit();
|
||||
@ -61,6 +59,9 @@ public Q_SLOTS:
|
||||
void editPreferences();
|
||||
void screenshot();
|
||||
|
||||
protected Q_SLOTS:
|
||||
void onAboutToQuit();
|
||||
|
||||
private:
|
||||
Fm::LibFmQt libFm;
|
||||
bool isPrimaryInstance;
|
||||
|
@ -18,45 +18,31 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_JOB_H
|
||||
#define LXIMAGE_JOB_H
|
||||
|
||||
#include <gio/gio.h>
|
||||
#include "graphicsscene.h"
|
||||
#include <QMimeData>
|
||||
#include <QUrl>
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class Job {
|
||||
public:
|
||||
Job();
|
||||
virtual ~Job();
|
||||
|
||||
void cancel() {
|
||||
g_cancellable_cancel(cancellable_);
|
||||
}
|
||||
void start();
|
||||
|
||||
GError* error() const {
|
||||
return error_;
|
||||
}
|
||||
|
||||
bool isCancelled() const {
|
||||
return bool(g_cancellable_is_cancelled(cancellable_));
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual bool run() = 0;
|
||||
virtual void finish() = 0;
|
||||
|
||||
protected:
|
||||
GCancellable* cancellable_;
|
||||
GError* error_;
|
||||
|
||||
private:
|
||||
static gboolean _jobThread(GIOSchedulerJob* job, GCancellable* cancellable, Job* pThis);
|
||||
static gboolean _finish(Job* pThis);
|
||||
static void _freeMe(Job* pThis);
|
||||
};
|
||||
|
||||
GraphicsScene::GraphicsScene(QObject *parent):
|
||||
QGraphicsScene (parent) {
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_JOB_H
|
||||
void GraphicsScene::dragEnterEvent(QGraphicsSceneDragDropEvent *event) {
|
||||
if(event->mimeData()->hasUrls())
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
void GraphicsScene::dragMoveEvent(QGraphicsSceneDragDropEvent *event) {
|
||||
if(event->mimeData()->hasUrls())
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
void GraphicsScene::dropEvent(QGraphicsSceneDragDropEvent* event) {
|
||||
QList<QUrl> urlList = event->mimeData()->urls();
|
||||
if(!urlList.isEmpty())
|
||||
Q_EMIT fileDropped(urlList.first().toLocalFile());
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
}
|
46
src/graphicsscene.h
Normal file
46
src/graphicsscene.h
Normal file
@ -0,0 +1,46 @@
|
||||
/*
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) 2013 <copyright holder> <email>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_GRAPHICSSCENE_H
|
||||
#define LXIMAGE_GRAPHICSSCENE_H
|
||||
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsSceneDragDropEvent>
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class GraphicsScene : public QGraphicsScene
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
GraphicsScene(QObject *parent = 0);
|
||||
|
||||
protected:
|
||||
virtual void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
|
||||
virtual void dragMoveEvent(QGraphicsSceneDragDropEvent *event);
|
||||
virtual void dropEvent(QGraphicsSceneDragDropEvent* event);
|
||||
|
||||
Q_SIGNALS:
|
||||
void fileDropped(const QString file);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_GRAPHICSSCENE_H
|
@ -24,37 +24,54 @@
|
||||
#include <QPainter>
|
||||
#include <QTimer>
|
||||
#include <QPolygon>
|
||||
#include <QDebug>
|
||||
#include <QStyle>
|
||||
#include <QLabel>
|
||||
#include <QGraphicsProxyWidget>
|
||||
#include <QGraphicsSvgItem>
|
||||
|
||||
#define CURSOR_HIDE_DELY 3000
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
ImageView::ImageView(QWidget* parent):
|
||||
QGraphicsView(parent),
|
||||
scene_(new GraphicsScene(this)),
|
||||
imageItem_(new QGraphicsRectItem()),
|
||||
scene_(new QGraphicsScene(this)),
|
||||
gifMovie_(nullptr),
|
||||
cacheTimer_(nullptr),
|
||||
cursorTimer_(nullptr),
|
||||
scaleFactor_(1.0),
|
||||
autoZoomFit_(false),
|
||||
cacheTimer_(NULL),
|
||||
scaleFactor_(1.0) {
|
||||
isSVG(false) {
|
||||
|
||||
setViewportMargins(0, 0, 0, 0);
|
||||
setContentsMargins(0, 0, 0, 0);
|
||||
setLineWidth(0);
|
||||
|
||||
setScene(scene_);
|
||||
connect(scene_, &GraphicsScene::fileDropped, this, &ImageView::onFileDropped);
|
||||
imageItem_->hide();
|
||||
imageItem_->setPen(QPen(Qt::NoPen)); // remove the border
|
||||
scene_->addItem(imageItem_);
|
||||
}
|
||||
|
||||
ImageView::~ImageView() {
|
||||
delete imageItem_;
|
||||
scene_->clear(); // deletes all items
|
||||
if(gifMovie_)
|
||||
delete gifMovie_;
|
||||
if(cacheTimer_) {
|
||||
cacheTimer_->stop();
|
||||
delete cacheTimer_;
|
||||
}
|
||||
if(cursorTimer_) {
|
||||
cursorTimer_->stop();
|
||||
delete cursorTimer_;
|
||||
}
|
||||
}
|
||||
|
||||
void ImageView::onFileDropped(const QString file) {
|
||||
Q_EMIT fileDropped(file);
|
||||
}
|
||||
|
||||
void ImageView::wheelEvent(QWheelEvent* event) {
|
||||
int delta = event->delta();
|
||||
@ -83,6 +100,34 @@ void ImageView::mouseDoubleClickEvent(QMouseEvent* event) {
|
||||
QAbstractScrollArea::mouseDoubleClickEvent(event);
|
||||
}
|
||||
|
||||
void ImageView::mousePressEvent(QMouseEvent * event) {
|
||||
QGraphicsView::mousePressEvent(event);
|
||||
if(cursorTimer_) cursorTimer_->stop();
|
||||
}
|
||||
|
||||
void ImageView::mouseReleaseEvent(QMouseEvent* event) {
|
||||
QGraphicsView::mouseReleaseEvent(event);
|
||||
if(cursorTimer_) cursorTimer_->start(CURSOR_HIDE_DELY);
|
||||
}
|
||||
|
||||
void ImageView::mouseMoveEvent(QMouseEvent* event) {
|
||||
QGraphicsView::mouseMoveEvent(event);
|
||||
if(cursorTimer_ && (viewport()->cursor().shape() == Qt::BlankCursor
|
||||
|| viewport()->cursor().shape() == Qt::OpenHandCursor)) {
|
||||
cursorTimer_->start(CURSOR_HIDE_DELY); // restart timer
|
||||
viewport()->setCursor(Qt::OpenHandCursor);
|
||||
}
|
||||
}
|
||||
|
||||
void ImageView::focusInEvent(QFocusEvent* event) {
|
||||
QGraphicsView::focusInEvent(event);
|
||||
if(cursorTimer_ && (viewport()->cursor().shape() == Qt::BlankCursor
|
||||
|| viewport()->cursor().shape() == Qt::OpenHandCursor)) {
|
||||
cursorTimer_->start(CURSOR_HIDE_DELY); // restart timer
|
||||
viewport()->setCursor(Qt::OpenHandCursor);
|
||||
}
|
||||
}
|
||||
|
||||
void ImageView::resizeEvent(QResizeEvent* event) {
|
||||
QGraphicsView::resizeEvent(event);
|
||||
if(autoZoomFit_)
|
||||
@ -130,7 +175,21 @@ void ImageView::zoomOriginal() {
|
||||
queueGenerateCache();
|
||||
}
|
||||
|
||||
void ImageView::setImage(QImage image) {
|
||||
void ImageView::setImage(QImage image, bool show) {
|
||||
if(show && (gifMovie_ || isSVG)) { // a gif animation or SVG file was shown before
|
||||
scene_->clear();
|
||||
isSVG = false;
|
||||
if(gifMovie_) { // should be deleted explicitly
|
||||
delete gifMovie_;
|
||||
gifMovie_ = nullptr;
|
||||
}
|
||||
// recreate the rect item
|
||||
imageItem_ = new QGraphicsRectItem();
|
||||
imageItem_->hide();
|
||||
imageItem_->setPen(QPen(Qt::NoPen));
|
||||
scene_->addItem(imageItem_);
|
||||
}
|
||||
|
||||
image_ = image;
|
||||
if(image.isNull()) {
|
||||
imageItem_->hide();
|
||||
@ -138,9 +197,11 @@ void ImageView::setImage(QImage image) {
|
||||
scene_->setSceneRect(0, 0, 0, 0);
|
||||
}
|
||||
else {
|
||||
imageItem_->setRect(0, 0, image_.width(), image_.height());
|
||||
imageItem_->setBrush(image_);
|
||||
imageItem_->show();
|
||||
if(show) {
|
||||
imageItem_->setRect(0, 0, image_.width(), image_.height());
|
||||
imageItem_->setBrush(image_);
|
||||
imageItem_->show();
|
||||
}
|
||||
scene_->setSceneRect(0, 0, image_.width(), image_.height());
|
||||
}
|
||||
|
||||
@ -149,6 +210,66 @@ void ImageView::setImage(QImage image) {
|
||||
queueGenerateCache();
|
||||
}
|
||||
|
||||
void ImageView::setGifAnimation(QString fileName) {
|
||||
/* the built-in gif reader gives the first frame, which won't
|
||||
be shown but is used for tracking position and dimensions */
|
||||
image_ = QImage(fileName);
|
||||
if(image_.isNull()) {
|
||||
if(imageItem_) {
|
||||
imageItem_->hide();
|
||||
imageItem_->setBrush(QBrush());
|
||||
}
|
||||
scene_->setSceneRect(0, 0, 0, 0);
|
||||
}
|
||||
else {
|
||||
scene_->clear();
|
||||
imageItem_ = nullptr; // it's deleted by clear();
|
||||
if(gifMovie_) {
|
||||
delete gifMovie_;
|
||||
gifMovie_ = nullptr;
|
||||
}
|
||||
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();
|
||||
scene_->addItem(gifItem);
|
||||
scene_->setSceneRect(gifItem->boundingRect());
|
||||
}
|
||||
|
||||
if(autoZoomFit_)
|
||||
zoomFit();
|
||||
queueGenerateCache(); // deletes the cache timer in this case
|
||||
}
|
||||
|
||||
void ImageView::setSVG(QString fileName) {
|
||||
image_ = QImage(fileName); // for tracking position and dimensions
|
||||
if(image_.isNull()) {
|
||||
if(imageItem_) {
|
||||
imageItem_->hide();
|
||||
imageItem_->setBrush(QBrush());
|
||||
}
|
||||
scene_->setSceneRect(0, 0, 0, 0);
|
||||
}
|
||||
else {
|
||||
scene_->clear();
|
||||
imageItem_ = nullptr;
|
||||
isSVG = true;
|
||||
QGraphicsSvgItem *svgItem = new QGraphicsSvgItem(fileName);
|
||||
scene_->addItem(svgItem);
|
||||
scene_->setSceneRect(svgItem->boundingRect());
|
||||
}
|
||||
|
||||
if(autoZoomFit_)
|
||||
zoomFit();
|
||||
queueGenerateCache(); // deletes the cache timer in this case
|
||||
}
|
||||
|
||||
void ImageView::setScaleFactor(double factor) {
|
||||
if(factor != scaleFactor_) {
|
||||
scaleFactor_ = factor;
|
||||
@ -160,7 +281,7 @@ void ImageView::setScaleFactor(double factor) {
|
||||
|
||||
void ImageView::paintEvent(QPaintEvent* event) {
|
||||
// if the image is scaled and we have a high quality cached image
|
||||
if(scaleFactor_ != 1.0 && !cachedPixmap_.isNull()) {
|
||||
if(imageItem_ && scaleFactor_ != 1.0 && !cachedPixmap_.isNull()) {
|
||||
// rectangle of the whole image in viewport coordinate
|
||||
QRect viewportImageRect = sceneToViewport(imageItem_->rect());
|
||||
// the visible part of the image.
|
||||
@ -189,11 +310,12 @@ void ImageView::queueGenerateCache() {
|
||||
cachedPixmap_ = QPixmap();
|
||||
|
||||
// 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 or SVG images either
|
||||
if(scaleFactor_ == 1.0 || gifMovie_ || isSVG) {
|
||||
if(cacheTimer_) {
|
||||
cacheTimer_->stop();
|
||||
delete cacheTimer_;
|
||||
cacheTimer_ = NULL;
|
||||
cacheTimer_ = nullptr;
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -201,16 +323,19 @@ void ImageView::queueGenerateCache() {
|
||||
if(!cacheTimer_) {
|
||||
cacheTimer_ = new QTimer();
|
||||
cacheTimer_->setSingleShot(true);
|
||||
connect(cacheTimer_, SIGNAL(timeout()), SLOT(generateCache()));
|
||||
connect(cacheTimer_, &QTimer::timeout, this, &ImageView::generateCache);
|
||||
}
|
||||
cacheTimer_->start(200); // restart the timer
|
||||
if(cacheTimer_)
|
||||
cacheTimer_->start(200); // restart the timer
|
||||
}
|
||||
|
||||
// really generate the cache
|
||||
void ImageView::generateCache() {
|
||||
// disable the one-shot timer
|
||||
cacheTimer_->deleteLater();
|
||||
cacheTimer_ = NULL;
|
||||
cacheTimer_ = nullptr;
|
||||
|
||||
if(!imageItem_ || image_.isNull()) return;
|
||||
|
||||
// generate a cache for "the visible part" of the scaled image
|
||||
// rectangle of the whole image in viewport coordinate
|
||||
@ -226,18 +351,18 @@ void ImageView::generateCache() {
|
||||
const uchar* bits = image_.constBits();
|
||||
unsigned int offset = subRect.x() * image_.depth() / 8 + subRect.y() * image_.bytesPerLine();
|
||||
QImage subImage = QImage(bits + offset, subRect.width(), subRect.height(), image_.bytesPerLine(), image_.format());
|
||||
|
||||
// If the original image has a color table, also use it for the subImage
|
||||
QVector<QRgb> colorTable = image_.colorTable();
|
||||
if (!colorTable.empty())
|
||||
subImage.setColorTable(colorTable);
|
||||
|
||||
// QImage scaled = subImage.scaled(subRect.width() * scaleFactor_, subRect.height() * scaleFactor_, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
QImage scaled = subImage.scaled(cachedRect_.width(), cachedRect_.height(), Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
|
||||
// convert the cached scaled image to pixmap
|
||||
cachedPixmap_ = QPixmap::fromImage(scaled);
|
||||
viewport()->update();
|
||||
/*
|
||||
qDebug() << "viewportImageRect" << viewportImageRect
|
||||
<< "cachedRect_" << cachedRect_
|
||||
<< "cachedSceneRect_" << cachedSceneRect_
|
||||
<< "subRect" << subRect;
|
||||
*/
|
||||
}
|
||||
|
||||
// convert viewport coordinate to the original image (not scaled).
|
||||
@ -254,5 +379,26 @@ QRect ImageView::sceneToViewport(const QRectF& rect) {
|
||||
return QRect(topLeft, bottomRight);
|
||||
}
|
||||
|
||||
void ImageView::blankCursor() {
|
||||
viewport()->setCursor(Qt::BlankCursor);
|
||||
}
|
||||
|
||||
void ImageView::hideCursor(bool enable) {
|
||||
if(enable) {
|
||||
if(cursorTimer_) delete cursorTimer_;
|
||||
cursorTimer_ = new QTimer(this);
|
||||
cursorTimer_->setSingleShot(true);
|
||||
connect(cursorTimer_, &QTimer::timeout, this, &ImageView::blankCursor);
|
||||
if(viewport()->cursor().shape() == Qt::OpenHandCursor)
|
||||
cursorTimer_->start(CURSOR_HIDE_DELY);
|
||||
}
|
||||
else if (cursorTimer_) {
|
||||
cursorTimer_->stop();
|
||||
delete cursorTimer_;
|
||||
cursorTimer_ = nullptr;
|
||||
if(viewport()->cursor().shape() == Qt::BlankCursor)
|
||||
viewport()->setCursor(Qt::OpenHandCursor);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace LxImage
|
||||
|
@ -21,11 +21,13 @@
|
||||
#ifndef LXIMAGE_IMAGEVIEW_H
|
||||
#define LXIMAGE_IMAGEVIEW_H
|
||||
|
||||
#include "graphicsscene.h"
|
||||
#include <QGraphicsView>
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsRectItem>
|
||||
#include <QImage>
|
||||
#include <QPixmap>
|
||||
#include <QMovie>
|
||||
#include <QRect>
|
||||
|
||||
class QTimer;
|
||||
@ -39,7 +41,9 @@ public:
|
||||
ImageView(QWidget* parent = 0);
|
||||
virtual ~ImageView();
|
||||
|
||||
void setImage(QImage image);
|
||||
void setImage(QImage image, bool show = true);
|
||||
void setGifAnimation(QString fileName);
|
||||
void setSVG(QString fileName);
|
||||
|
||||
QImage image() {
|
||||
return image_;
|
||||
@ -64,10 +68,20 @@ public:
|
||||
void setAutoZoomFit(bool value) {
|
||||
autoZoomFit_ = value;
|
||||
}
|
||||
|
||||
|
||||
// if set to true, hides the cursor after 3s of inactivity
|
||||
void hideCursor(bool enable);
|
||||
|
||||
Q_SIGNALS:
|
||||
void fileDropped(const QString file);
|
||||
|
||||
protected:
|
||||
virtual void wheelEvent(QWheelEvent* event);
|
||||
virtual void mouseDoubleClickEvent(QMouseEvent* event);
|
||||
virtual void mousePressEvent(QMouseEvent* event);
|
||||
virtual void mouseReleaseEvent(QMouseEvent* event);
|
||||
virtual void mouseMoveEvent(QMouseEvent* event);
|
||||
virtual void focusInEvent(QFocusEvent* event);
|
||||
virtual void resizeEvent(QResizeEvent* event);
|
||||
virtual void paintEvent(QPaintEvent* event);
|
||||
|
||||
@ -77,18 +91,23 @@ private:
|
||||
QRect sceneToViewport(const QRectF& rect);
|
||||
|
||||
private Q_SLOTS:
|
||||
void onFileDropped(const QString file);
|
||||
void generateCache();
|
||||
void blankCursor();
|
||||
|
||||
private:
|
||||
QGraphicsScene* scene_; // the topmost container of all graphic items
|
||||
GraphicsScene* scene_; // the topmost container of all graphic items
|
||||
QGraphicsRectItem* imageItem_; // the rect item used to draw the image
|
||||
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)
|
||||
QRect cachedRect_; // rectangle containing the cached region (in viewport coordinate)
|
||||
QRect cachedSceneRect_; // rectangle containing the cached region (in scene/original image coordinate)
|
||||
QTimer* cacheTimer_;
|
||||
QTimer *cursorTimer_; // for hiding cursor in fullscreen mode
|
||||
double scaleFactor_;
|
||||
bool autoZoomFit_;
|
||||
bool isSVG; // is the image an SVG file?
|
||||
};
|
||||
|
||||
}
|
||||
|
64
src/job.cpp
64
src/job.cpp
@ -1,64 +0,0 @@
|
||||
/*
|
||||
* <one line to give the library's name and an idea of what it does.>
|
||||
* Copyright (C) 2014 <copyright holder> <email>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library 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
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#include "job.h"
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
Job::Job():
|
||||
cancellable_(g_cancellable_new()),
|
||||
error_(NULL) {
|
||||
}
|
||||
|
||||
Job::~Job() {
|
||||
g_object_unref(cancellable_);
|
||||
if(error_)
|
||||
g_error_free(error_);
|
||||
}
|
||||
|
||||
// This is called from the worker thread, not main thread
|
||||
gboolean Job::_jobThread(GIOSchedulerJob* job, GCancellable* cancellable, Job* pThis) {
|
||||
bool ret = pThis->run();
|
||||
// do final step in the main thread
|
||||
if(!g_cancellable_is_cancelled(pThis->cancellable_))
|
||||
g_io_scheduler_job_send_to_mainloop(job, GSourceFunc(_finish), pThis, NULL);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Job::start() {
|
||||
g_io_scheduler_push_job(GIOSchedulerJobFunc(_jobThread),
|
||||
this, GDestroyNotify(_freeMe),
|
||||
G_PRIORITY_DEFAULT, cancellable_);
|
||||
}
|
||||
|
||||
// this function is called from main thread only
|
||||
gboolean Job::_finish(Job* pThis) {
|
||||
// only do processing if the job is not cancelled
|
||||
if(!g_cancellable_is_cancelled(pThis->cancellable_)) {
|
||||
pThis->finish();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void Job::_freeMe(Job* pThis) {
|
||||
delete pThis;
|
||||
}
|
||||
|
||||
}
|
@ -21,104 +21,106 @@
|
||||
#include "loadimagejob.h"
|
||||
#include "mainwindow.h"
|
||||
#include <QImageReader>
|
||||
#include <QBuffer>
|
||||
#include <QByteArray>
|
||||
#include <qvarlengtharray.h>
|
||||
#include <libexif/exif-loader.h>
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
LoadImageJob::LoadImageJob(MainWindow* window, FmPath* filePath):
|
||||
Job(),
|
||||
path_(fm_path_ref(filePath)),
|
||||
mainWindow_(window) {
|
||||
LoadImageJob::LoadImageJob(const Fm::FilePath & filePath):
|
||||
path_{filePath} {
|
||||
}
|
||||
|
||||
LoadImageJob::~LoadImageJob() {
|
||||
fm_path_unref(path_);
|
||||
}
|
||||
|
||||
// This is called from the worker thread, not main thread
|
||||
bool LoadImageJob::run() {
|
||||
GFile* gfile = fm_path_to_gfile(path_);
|
||||
GFileInputStream* fileStream = g_file_read(gfile, cancellable_, &error_);
|
||||
g_object_unref(gfile);
|
||||
void LoadImageJob::exec() {
|
||||
GFileInputStream* fileStream = nullptr;
|
||||
Fm::GErrorPtr error;
|
||||
ErrorAction act = ErrorAction::RETRY;
|
||||
QByteArray imageBuffer;
|
||||
while (act == ErrorAction::RETRY && !isCancelled())
|
||||
{
|
||||
error.reset();
|
||||
if (nullptr == (fileStream = g_file_read(path_.gfile().get(), cancellable().get(), &error)))
|
||||
{
|
||||
act = emitError(error);
|
||||
continue;
|
||||
}
|
||||
|
||||
if(fileStream) { // if the file stream is successfually opened
|
||||
QBuffer imageBuffer;
|
||||
// the file stream is successfully opened
|
||||
imageBuffer.truncate(0);
|
||||
GInputStream* inputStream = G_INPUT_STREAM(fileStream);
|
||||
while(!g_cancellable_is_cancelled(cancellable_)) {
|
||||
while(!error && !isCancelled()) {
|
||||
char buffer[4096];
|
||||
gssize readSize = g_input_stream_read(inputStream,
|
||||
error.reset();
|
||||
gssize readSize = g_input_stream_read(inputStream,
|
||||
buffer, 4096,
|
||||
cancellable_, &error_);
|
||||
cancellable().get(), &error);
|
||||
if(readSize == -1 || readSize == 0) // error or EOF
|
||||
break;
|
||||
// append the bytes read to the image buffer
|
||||
imageBuffer.buffer().append(buffer, readSize);
|
||||
imageBuffer.append(buffer, readSize);
|
||||
}
|
||||
g_input_stream_close(inputStream, NULL, NULL);
|
||||
|
||||
// FIXME: maybe it's a better idea to implement a GInputStream based QIODevice.
|
||||
if(!error_ && !g_cancellable_is_cancelled(cancellable_)) { // load the image from buffer if there are no errors
|
||||
image_ = QImage::fromData(imageBuffer.buffer());
|
||||
|
||||
if(!image_.isNull()) { // if the image is loaded correctly
|
||||
// check if this file is a jpeg file
|
||||
// FIXME: can we use FmFileInfo instead if it's available?
|
||||
const char* basename = fm_path_get_basename(path_);
|
||||
char* mime_type = g_content_type_guess(basename, NULL, 0, NULL);
|
||||
if(mime_type && strcmp(mime_type, "image/jpeg") == 0) { // this is a jpeg file
|
||||
// use libexif to extract additional info embedded in jpeg files
|
||||
ExifLoader *exif_loader = exif_loader_new();
|
||||
// write image data to exif loader
|
||||
int ret = exif_loader_write(exif_loader, (unsigned char*)imageBuffer.data().constData(), (unsigned int)imageBuffer.size());
|
||||
ExifData *exif_data = exif_loader_get_data(exif_loader);
|
||||
exif_loader_unref(exif_loader);
|
||||
if(exif_data) {
|
||||
/* reference for EXIF orientation tag:
|
||||
* http://www.impulseadventure.com/photo/exif-orientation.html */
|
||||
ExifEntry* orient_ent = exif_data_get_entry(exif_data, EXIF_TAG_ORIENTATION);
|
||||
if(orient_ent) { /* orientation flag found in EXIF */
|
||||
gushort orient;
|
||||
ExifByteOrder bo = exif_data_get_byte_order(exif_data);
|
||||
/* bo == EXIF_BYTE_ORDER_INTEL ; */
|
||||
orient = exif_get_short (orient_ent->data, bo);
|
||||
qreal rotate_degrees = 0.0;
|
||||
switch(orient) {
|
||||
case 1: /* no rotation */
|
||||
break;
|
||||
case 8:
|
||||
rotate_degrees = 270.0;
|
||||
break;
|
||||
case 3:
|
||||
rotate_degrees = 180.0;
|
||||
break;
|
||||
case 6:
|
||||
rotate_degrees = 90.0;
|
||||
break;
|
||||
}
|
||||
// rotate the image according to EXIF orientation tag
|
||||
if(rotate_degrees != 0.0) {
|
||||
QTransform transform;
|
||||
transform.rotate(rotate_degrees);
|
||||
image_ = image_.transformed(transform, Qt::SmoothTransformation);
|
||||
}
|
||||
// TODO: handle other EXIF tags as well
|
||||
if (!error)
|
||||
break; // everything read or cancel requested
|
||||
|
||||
act = emitError(error);
|
||||
}
|
||||
|
||||
// FIXME: maybe it's a better idea to implement a GInputStream based QIODevice.
|
||||
if(!error && !isCancelled()) { // load the image from buffer if there are no errors
|
||||
image_ = QImage::fromData(imageBuffer);
|
||||
|
||||
if(!image_.isNull()) { // if the image is loaded correctly
|
||||
// check if this file is a jpeg file
|
||||
// FIXME: can we use FmFileInfo instead if it's available?
|
||||
const Fm::CStrPtr basename = path_.baseName();
|
||||
const Fm::CStrPtr mime_type{g_content_type_guess(basename.get(), NULL, 0, NULL)};
|
||||
if(mime_type && strcmp(mime_type.get(), "image/jpeg") == 0) { // this is a jpeg file
|
||||
// use libexif to extract additional info embedded in jpeg files
|
||||
std::unique_ptr<ExifLoader, decltype (&exif_loader_unref)> exif_loader{exif_loader_new(), &exif_loader_unref};
|
||||
// write image data to exif loader
|
||||
exif_loader_write(exif_loader.get(), reinterpret_cast<unsigned char*>(const_cast<char *>(imageBuffer.constData())), static_cast<unsigned int>(imageBuffer.size()));
|
||||
std::unique_ptr<ExifData, decltype (&exif_data_unref)> exif_data{exif_loader_get_data(exif_loader.get()), &exif_data_unref};
|
||||
exif_loader.reset();
|
||||
if (exif_data) {
|
||||
/* reference for EXIF orientation tag:
|
||||
* http://www.impulseadventure.com/photo/exif-orientation.html */
|
||||
ExifEntry* orient_ent = exif_data_get_entry(exif_data.get(), EXIF_TAG_ORIENTATION);
|
||||
if(orient_ent) { /* orientation flag found in EXIF */
|
||||
gushort orient;
|
||||
ExifByteOrder bo = exif_data_get_byte_order(exif_data.get());
|
||||
/* bo == EXIF_BYTE_ORDER_INTEL ; */
|
||||
orient = exif_get_short (orient_ent->data, bo);
|
||||
qreal rotate_degrees = 0.0;
|
||||
switch(orient) {
|
||||
case 1: /* no rotation */
|
||||
break;
|
||||
case 8:
|
||||
rotate_degrees = 270.0;
|
||||
break;
|
||||
case 3:
|
||||
rotate_degrees = 180.0;
|
||||
break;
|
||||
case 6:
|
||||
rotate_degrees = 90.0;
|
||||
break;
|
||||
}
|
||||
exif_data_unref(exif_data);
|
||||
// rotate the image according to EXIF orientation tag
|
||||
if(rotate_degrees != 0.0) {
|
||||
QTransform transform;
|
||||
transform.rotate(rotate_degrees);
|
||||
image_ = image_.transformed(transform, Qt::SmoothTransformation);
|
||||
}
|
||||
// TODO: handle other EXIF tags as well
|
||||
}
|
||||
}
|
||||
g_free(mime_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// this function is called from main thread only
|
||||
void LoadImageJob::finish() {
|
||||
// only do processing if the job is not cancelled
|
||||
if(!g_cancellable_is_cancelled(cancellable_)) {
|
||||
mainWindow_->onImageLoaded(this);
|
||||
}
|
||||
}
|
||||
|
@ -21,37 +21,31 @@
|
||||
#ifndef LXIMAGE_LOADIMAGEJOB_H
|
||||
#define LXIMAGE_LOADIMAGEJOB_H
|
||||
|
||||
#include <gio/gio.h>
|
||||
#include <libfm/fm.h>
|
||||
#include <libfm-qt/core/filepath.h>
|
||||
#include <QImage>
|
||||
#include "job.h"
|
||||
#include <libfm-qt/core/job.h>
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class MainWindow;
|
||||
|
||||
class LoadImageJob : public Job {
|
||||
class LoadImageJob : public Fm::Job {
|
||||
|
||||
public:
|
||||
LoadImageJob(MainWindow* window, FmPath* filePath);
|
||||
LoadImageJob(const Fm::FilePath & filePath);
|
||||
|
||||
QImage image() const {
|
||||
return image_;
|
||||
}
|
||||
|
||||
FmPath* filePath() const {
|
||||
const Fm::FilePath & filePath() const {
|
||||
return path_;
|
||||
}
|
||||
|
||||
private:
|
||||
~LoadImageJob(); // prevent direct deletion
|
||||
|
||||
virtual bool run();
|
||||
virtual void finish();
|
||||
virtual void exec() override;
|
||||
|
||||
public:
|
||||
MainWindow* mainWindow_;
|
||||
FmPath* path_;
|
||||
const Fm::FilePath path_;
|
||||
QImage image_;
|
||||
};
|
||||
|
||||
|
@ -19,6 +19,8 @@
|
||||
|
||||
|
||||
#include "mainwindow.h"
|
||||
#include <QDir>
|
||||
#include <QFileInfo>
|
||||
#include <QMessageBox>
|
||||
#include <QFileDialog>
|
||||
#include <QImage>
|
||||
@ -28,62 +30,69 @@
|
||||
#include <QPainter>
|
||||
#include <QPrintDialog>
|
||||
#include <QPrinter>
|
||||
#include <QDebug>
|
||||
#include <QWheelEvent>
|
||||
#include <QMouseEvent>
|
||||
#include <QTimer>
|
||||
#include <QShortcut>
|
||||
#include <QDockWidget>
|
||||
#include <QScrollBar>
|
||||
#include <QDesktopWidget>
|
||||
#include <QGraphicsSvgItem>
|
||||
#include "application.h"
|
||||
#include <libfm-qt/path.h>
|
||||
#include <libfm-qt/folderview.h>
|
||||
#include <libfm-qt/filepropsdialog.h>
|
||||
#include <libfm-qt/fileoperation.h>
|
||||
#include <libfm-qt/folderitemdelegate.h>
|
||||
|
||||
#include "upload/uploaddialog.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
MainWindow::MainWindow():
|
||||
QMainWindow(),
|
||||
currentFile_(NULL),
|
||||
slideShowTimer_(NULL),
|
||||
// currentFileInfo_(NULL),
|
||||
loadJob_(NULL),
|
||||
saveJob_(NULL),
|
||||
folder_(NULL),
|
||||
folderPath_(NULL),
|
||||
contextMenu_(new QMenu(this)),
|
||||
slideShowTimer_(nullptr),
|
||||
image_(),
|
||||
// currentFileInfo_(nullptr),
|
||||
imageModified_(false),
|
||||
folder_(nullptr),
|
||||
folderModel_(new Fm::FolderModel()),
|
||||
proxyModel_(new Fm::ProxyFolderModel()),
|
||||
modelFilter_(new ModelFilter()),
|
||||
imageModified_(false),
|
||||
contextMenu_(new QMenu(this)),
|
||||
thumbnailsDock_(NULL),
|
||||
thumbnailsView_(NULL),
|
||||
image_() {
|
||||
thumbnailsDock_(nullptr),
|
||||
thumbnailsView_(nullptr),
|
||||
loadJob_(nullptr),
|
||||
saveJob_(nullptr) {
|
||||
|
||||
setAttribute(Qt::WA_DeleteOnClose); // FIXME: check if current image is saved before close
|
||||
|
||||
Application* app = static_cast<Application*>(qApp);
|
||||
app->addWindow();
|
||||
|
||||
Settings& settings = app->settings();
|
||||
|
||||
ui.setupUi(this);
|
||||
connect(ui.actionScreenshot, SIGNAL(triggered(bool)), app, SLOT(screenshot()));
|
||||
connect(ui.actionPreferences, SIGNAL(triggered(bool)), app ,SLOT(editPreferences()));
|
||||
|
||||
connect(ui.actionScreenshot, &QAction::triggered, app, &Application::screenshot);
|
||||
connect(ui.actionPreferences, &QAction::triggered, app , &Application::editPreferences);
|
||||
|
||||
proxyModel_->addFilter(modelFilter_);
|
||||
proxyModel_->sort(Fm::FolderModel::ColumnFileName, Qt::AscendingOrder);
|
||||
proxyModel_->setSourceModel(folderModel_);
|
||||
|
||||
|
||||
// build context menu
|
||||
ui.view->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(ui.view, SIGNAL(customContextMenuRequested(QPoint)), SLOT(onContextMenu(QPoint)));
|
||||
connect(ui.view, &QWidget::customContextMenuRequested, this, &MainWindow::onContextMenu);
|
||||
|
||||
connect(ui.view, &ImageView::fileDropped, this, &MainWindow::onFileDropped);
|
||||
|
||||
// install an event filter on the image view
|
||||
ui.view->installEventFilter(this);
|
||||
ui.view->setBackgroundBrush(QBrush(app->settings().bgColor()));
|
||||
ui.view->setBackgroundBrush(QBrush(settings.bgColor()));
|
||||
|
||||
if(app->settings().showThumbnails())
|
||||
if(settings.showThumbnails())
|
||||
setShowThumbnails(true);
|
||||
|
||||
|
||||
contextMenu_->addAction(ui.actionPrevious);
|
||||
contextMenu_->addAction(ui.actionNext);
|
||||
contextMenu_->addSeparator();
|
||||
@ -103,11 +112,11 @@ MainWindow::MainWindow():
|
||||
|
||||
// create shortcuts
|
||||
QShortcut* shortcut = new QShortcut(Qt::Key_Left, this);
|
||||
connect(shortcut, SIGNAL(activated()), SLOT(on_actionPrevious_triggered()));
|
||||
connect(shortcut, &QShortcut::activated, this, &MainWindow::on_actionPrevious_triggered);
|
||||
shortcut = new QShortcut(Qt::Key_Right, this);
|
||||
connect(shortcut, SIGNAL(activated()), SLOT(on_actionNext_triggered()));
|
||||
connect(shortcut, &QShortcut::activated, this, &MainWindow::on_actionNext_triggered);
|
||||
shortcut = new QShortcut(Qt::Key_Escape, this);
|
||||
connect(shortcut, SIGNAL(activated()), SLOT(onExitFullscreen()));
|
||||
connect(shortcut, &QShortcut::activated, this, &MainWindow::onExitFullscreen);
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow() {
|
||||
@ -122,16 +131,8 @@ MainWindow::~MainWindow() {
|
||||
loadJob_->cancel();
|
||||
// we don't need to do delete here. It will be done automatically
|
||||
}
|
||||
if(currentFile_)
|
||||
fm_path_unref(currentFile_);
|
||||
//if(currentFileInfo_)
|
||||
// fm_file_info_unref(currentFileInfo_);
|
||||
if(folder_) {
|
||||
g_signal_handlers_disconnect_by_func(folder_, gpointer(_onFolderLoaded), this);
|
||||
g_object_unref(folder_);
|
||||
}
|
||||
if(folderPath_)
|
||||
fm_path_unref(folderPath_);
|
||||
delete folderModel_;
|
||||
delete proxyModel_;
|
||||
delete modelFilter_;
|
||||
@ -169,8 +170,7 @@ void MainWindow::on_actionZoomOut_triggered() {
|
||||
ui.view->zoomOut();
|
||||
}
|
||||
|
||||
void MainWindow::onFolderLoaded(FmFolder* folder) {
|
||||
qDebug("Finish loading: %d files", proxyModel_->rowCount());
|
||||
void MainWindow::onFolderLoaded() {
|
||||
// if currently we're showing a file, get its index in the folder now
|
||||
// since the folder is fully loaded.
|
||||
if(currentFile_ && !currentIndex_.isValid()) {
|
||||
@ -181,19 +181,38 @@ void MainWindow::onFolderLoaded(FmFolder* folder) {
|
||||
thumbnailsView_->childView()->scrollTo(currentIndex_, QAbstractItemView::EnsureVisible);
|
||||
}
|
||||
}
|
||||
// this is used to open the first image of a folder
|
||||
else if (!currentFile_)
|
||||
on_actionFirst_triggered();
|
||||
}
|
||||
|
||||
void MainWindow::openImageFile(QString fileName) {
|
||||
FmPath* path = fm_path_new_for_str(qPrintable(fileName));
|
||||
if(currentFile_ && fm_path_equal(currentFile_, path)) {
|
||||
const Fm::FilePath path = Fm::FilePath::fromPathStr(qPrintable(fileName));
|
||||
// the same file! do not load it again
|
||||
fm_path_unref(path);
|
||||
if(currentFile_ && currentFile_ == path)
|
||||
return;
|
||||
|
||||
if (QFileInfo(fileName).isDir()) {
|
||||
if(path == folderPath_)
|
||||
return;
|
||||
|
||||
QList<QByteArray> formats = QImageReader::supportedImageFormats();
|
||||
QStringList formatsFilters;
|
||||
for (const QByteArray& format: formats)
|
||||
formatsFilters << QString("*.") + format;
|
||||
QDir dir(fileName);
|
||||
dir.setNameFilters(formatsFilters);
|
||||
dir.setFilter(QDir::Files | QDir::NoDotAndDotDot);
|
||||
if(dir.entryList().isEmpty())
|
||||
return;
|
||||
|
||||
currentFile_ = Fm::FilePath{};
|
||||
loadFolder(path);
|
||||
} else {
|
||||
// load the image file asynchronously
|
||||
loadImage(path);
|
||||
loadFolder(path.parent());
|
||||
}
|
||||
// load the image file asynchronously
|
||||
loadImage(path);
|
||||
loadFolder(fm_path_get_parent(path));
|
||||
fm_path_unref(path);
|
||||
}
|
||||
|
||||
// paste the specified image into the current view,
|
||||
@ -203,14 +222,12 @@ void MainWindow::pasteImage(QImage newImage) {
|
||||
// cancel loading of current image
|
||||
if(loadJob_) {
|
||||
loadJob_->cancel(); // the job object will be freed automatically later
|
||||
loadJob_ = NULL;
|
||||
loadJob_ = nullptr;
|
||||
}
|
||||
setModified(true);
|
||||
|
||||
currentIndex_ = QModelIndex(); // invaludate current index since we don't have a folder model now
|
||||
if(currentFile_)
|
||||
fm_path_unref(currentFile_);
|
||||
currentFile_ = NULL;
|
||||
currentFile_ = Fm::FilePath{};
|
||||
|
||||
image_ = newImage;
|
||||
ui.view->setImage(image_);
|
||||
@ -240,6 +257,12 @@ QString MainWindow::openFileName() {
|
||||
return fileName;
|
||||
}
|
||||
|
||||
QString MainWindow::openDirectory() {
|
||||
QString directory = QFileDialog::getExistingDirectory(this,
|
||||
tr("Open directory"), QString());
|
||||
return directory;
|
||||
}
|
||||
|
||||
// popup a file dialog and retrieve the selected image file name
|
||||
QString MainWindow::saveFileName(QString defaultName) {
|
||||
QString filterStr;
|
||||
@ -255,7 +278,7 @@ QString MainWindow::saveFileName(QString defaultName) {
|
||||
break;
|
||||
}
|
||||
// FIXME: should we generate better filter strings? one format per item?
|
||||
|
||||
|
||||
QString fileName = QFileDialog::getSaveFileName(
|
||||
this, tr("Save File"), defaultName, tr("Image files (%1)").arg(filterStr));
|
||||
|
||||
@ -272,8 +295,21 @@ void MainWindow::on_actionOpenFile_triggered() {
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionOpenDirectory_triggered() {
|
||||
QString directory = openDirectory();
|
||||
if(!directory.isEmpty()) {
|
||||
openImageFile(directory);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionNewWindow_triggered() {
|
||||
Application* app = static_cast<Application*>(qApp);
|
||||
MainWindow* window = new MainWindow();
|
||||
window->resize(app->settings().windowWidth(), app->settings().windowHeight());
|
||||
|
||||
if(app->settings().windowMaximized())
|
||||
window->setWindowState(window->windowState() | Qt::WindowMaximized);
|
||||
|
||||
window->show();
|
||||
}
|
||||
|
||||
@ -292,39 +328,37 @@ void MainWindow::on_actionSave_triggered() {
|
||||
void MainWindow::on_actionSaveAs_triggered() {
|
||||
if(saveJob_) // if we're currently saving another file
|
||||
return;
|
||||
QString fileName = saveFileName(currentFile_ ? Fm::Path(currentFile_).displayName() : QString());
|
||||
QString baseName;
|
||||
if(currentFile_)
|
||||
baseName = QString::fromUtf8(currentFile_.displayName().get());
|
||||
|
||||
QString fileName = saveFileName(baseName);
|
||||
if(!fileName.isEmpty()) {
|
||||
FmPath* path = fm_path_new_for_str(qPrintable(fileName));
|
||||
const Fm::FilePath path = Fm::FilePath::fromPathStr(qPrintable(fileName));
|
||||
// save the image file asynchronously
|
||||
saveImage(path);
|
||||
|
||||
if(!currentFile_) { // if we haven't load any file yet
|
||||
currentFile_ = path;
|
||||
loadFolder(fm_path_get_parent(path));
|
||||
loadFolder(path.parent());
|
||||
}
|
||||
else
|
||||
fm_path_unref(path);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionDelete_triggered() {
|
||||
// delete the current file
|
||||
if(currentFile_) {
|
||||
FmPathList* paths = fm_path_list_new();
|
||||
fm_path_list_push_tail(paths, currentFile_);
|
||||
Fm::FileOperation::deleteFiles(paths);
|
||||
fm_path_list_unref(paths);
|
||||
}
|
||||
if(currentFile_)
|
||||
Fm::FileOperation::deleteFiles({currentFile_});
|
||||
}
|
||||
|
||||
void MainWindow::on_actionFileProperties_triggered() {
|
||||
if(currentIndex_.isValid()) {
|
||||
FmFileInfo* file = proxyModel_->fileInfoFromIndex(currentIndex_);
|
||||
const auto file = proxyModel_->fileInfoFromIndex(currentIndex_);
|
||||
// it's better to use an async job to query the file info since it's
|
||||
// possible that loading of the folder is not finished and the file info is
|
||||
// not available yet, but it's overkill for a rarely used function.
|
||||
if(file)
|
||||
Fm::FilePropsDialog::showForFile(file);
|
||||
Fm::FilePropsDialog::showForFile(std::move(file));
|
||||
}
|
||||
}
|
||||
|
||||
@ -341,12 +375,9 @@ void MainWindow::on_actionNext_triggered() {
|
||||
index = proxyModel_->index(currentIndex_.row() + 1, 0);
|
||||
else
|
||||
index = proxyModel_->index(0, 0);
|
||||
FmFileInfo* info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info) {
|
||||
FmPath* path = fm_file_info_get_path(info);
|
||||
qDebug("try load: %s", fm_path_get_basename(path));
|
||||
loadImage(path, index);
|
||||
}
|
||||
const auto info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info)
|
||||
loadImage(info->path(), index);
|
||||
}
|
||||
}
|
||||
|
||||
@ -355,91 +386,83 @@ void MainWindow::on_actionPrevious_triggered() {
|
||||
return;
|
||||
if(currentIndex_.isValid()) {
|
||||
QModelIndex index;
|
||||
qDebug("current row: %d", currentIndex_.row());
|
||||
if(currentIndex_.row() > 0)
|
||||
index = proxyModel_->index(currentIndex_.row() - 1, 0);
|
||||
else
|
||||
index = proxyModel_->index(proxyModel_->rowCount() - 1, 0);
|
||||
FmFileInfo* info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info) {
|
||||
FmPath* path = fm_file_info_get_path(info);
|
||||
qDebug("try load: %s", fm_path_get_basename(path));
|
||||
loadImage(path, index);
|
||||
}
|
||||
const auto info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info)
|
||||
loadImage(info->path(), index);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionFirst_triggered() {
|
||||
QModelIndex index = proxyModel_->index(0, 0);
|
||||
if(index.isValid()) {
|
||||
FmFileInfo* info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info) {
|
||||
FmPath* path = fm_file_info_get_path(info);
|
||||
qDebug("try load: %s", fm_path_get_basename(path));
|
||||
loadImage(path, index);
|
||||
}
|
||||
const auto info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info)
|
||||
loadImage(info->path(), index);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionLast_triggered() {
|
||||
QModelIndex index = proxyModel_->index(proxyModel_->rowCount() - 1, 0);
|
||||
if(index.isValid()) {
|
||||
FmFileInfo* info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info) {
|
||||
FmPath* path = fm_file_info_get_path(info);
|
||||
qDebug("try load: %s", fm_path_get_basename(path));
|
||||
loadImage(path, index);
|
||||
}
|
||||
const auto info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info)
|
||||
loadImage(info->path(), index);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::loadFolder(FmPath* newFolderPath) {
|
||||
void MainWindow::loadFolder(const Fm::FilePath & newFolderPath) {
|
||||
if(folder_) { // an folder is already loaded
|
||||
if(fm_path_equal(newFolderPath, folderPath_)) // same folder, ignore
|
||||
if(newFolderPath == folderPath_) // same folder, ignore
|
||||
return;
|
||||
// free current folder
|
||||
g_signal_handlers_disconnect_by_func(folder_, gpointer(_onFolderLoaded), this);
|
||||
g_object_unref(folder_);
|
||||
fm_path_unref(folderPath_);
|
||||
disconnect(folder_.get(), nullptr, this, nullptr); // disconnect from all signals
|
||||
}
|
||||
|
||||
folderPath_ = fm_path_ref(newFolderPath);
|
||||
folder_ = fm_folder_from_path(newFolderPath);
|
||||
g_signal_connect(folder_, "finish-loading", G_CALLBACK(_onFolderLoaded), this);
|
||||
folderPath_ = newFolderPath;
|
||||
folder_ = Fm::Folder::fromPath(folderPath_);
|
||||
connect(folder_.get(), &Fm::Folder::finishLoading, this, &MainWindow::onFolderLoaded);
|
||||
|
||||
folderModel_->setFolder(folder_);
|
||||
currentIndex_ = QModelIndex(); // set current index to invalid
|
||||
}
|
||||
|
||||
// the image is loaded (the method is only called if the loading is not cancelled)
|
||||
void MainWindow::onImageLoaded(LoadImageJob* job) {
|
||||
loadJob_ = NULL; // the job object will be freed later automatically
|
||||
void MainWindow::onImageLoaded() {
|
||||
// Note: As the signal finished() is emitted from different thread,
|
||||
// we can get it even after canceling the job (and setting the loadJob_
|
||||
// to nullptr). This simple check should be enough.
|
||||
if (sender() == loadJob_)
|
||||
{
|
||||
image_ = loadJob_->image();
|
||||
|
||||
image_ = job->image();
|
||||
ui.view->setAutoZoomFit(true);
|
||||
ui.view->setImage(image_);
|
||||
loadJob_ = nullptr; // the job object will be freed later automatically
|
||||
|
||||
if(!currentIndex_.isValid())
|
||||
currentIndex_ = indexFromPath(currentFile_);
|
||||
ui.view->setAutoZoomFit(true);
|
||||
ui.view->setImage(image_);
|
||||
|
||||
updateUI();
|
||||
if(!currentIndex_.isValid())
|
||||
currentIndex_ = indexFromPath(currentFile_);
|
||||
|
||||
if(job->error()) {
|
||||
// if there are errors
|
||||
// TODO: show a info bar?
|
||||
updateUI();
|
||||
|
||||
/* we resized and moved the window without showing
|
||||
it in updateUI(), so we need to show it here */
|
||||
show();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onImageSaved(SaveImageJob* job) {
|
||||
if(!job->error()) {
|
||||
void MainWindow::onImageSaved() {
|
||||
if(!saveJob_->failed()) {
|
||||
setModified(false);
|
||||
}
|
||||
saveJob_ = NULL;
|
||||
saveJob_ = nullptr;
|
||||
}
|
||||
|
||||
// filter events of other objects, mainly the image view.
|
||||
bool MainWindow::eventFilter(QObject* watched, QEvent* event) {
|
||||
// qDebug() << event;
|
||||
if(watched == ui.view) { // we got an event for the image view
|
||||
switch(event->type()) {
|
||||
case QEvent::Wheel: { // mouse wheel event
|
||||
@ -482,16 +505,16 @@ bool MainWindow::eventFilter(QObject* watched, QEvent* event) {
|
||||
return QObject::eventFilter(watched, event);
|
||||
}
|
||||
|
||||
QModelIndex MainWindow::indexFromPath(FmPath* filePath) {
|
||||
QModelIndex MainWindow::indexFromPath(const Fm::FilePath & filePath) {
|
||||
// if the folder is already loaded, figure out our index
|
||||
// otherwise, it will be done again in onFolderLoaded() when the folder is fully loaded.
|
||||
if(folder_ && fm_folder_is_loaded(folder_)) {
|
||||
if(folder_ && folder_->isLoaded()) {
|
||||
QModelIndex index;
|
||||
int count = proxyModel_->rowCount();
|
||||
for(int row = 0; row < count; ++row) {
|
||||
index = proxyModel_->index(row, 0);
|
||||
FmFileInfo* info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info && fm_path_equal(filePath, fm_file_info_get_path(info))) {
|
||||
const auto info = proxyModel_->fileInfoFromIndex(index);
|
||||
if(info && filePath == info->path()) {
|
||||
return index;
|
||||
}
|
||||
}
|
||||
@ -511,39 +534,66 @@ void MainWindow::updateUI() {
|
||||
|
||||
QString title;
|
||||
if(currentFile_) {
|
||||
char* dispName = fm_path_display_basename(currentFile_);
|
||||
const Fm::CStrPtr dispName = currentFile_.displayName();
|
||||
if(loadJob_) { // if loading is in progress
|
||||
title = tr("%1 (Loading...) - Image Viewer")
|
||||
.arg(QString::fromUtf8(dispName));
|
||||
title = tr("[*]%1 (Loading...) - Image Viewer")
|
||||
.arg(QString::fromUtf8(dispName.get()));
|
||||
}
|
||||
else {
|
||||
if(image_.isNull()) {
|
||||
title = tr("%1 (Failed to Load) - Image Viewer")
|
||||
.arg(QString::fromUtf8(dispName));
|
||||
title = tr("[*]%1 (Failed to Load) - Image Viewer")
|
||||
.arg(QString::fromUtf8(dispName.get()));
|
||||
}
|
||||
else {
|
||||
title = tr("%1 (%2x%3) - Image Viewer")
|
||||
.arg(QString::fromUtf8(dispName))
|
||||
title = tr("[*]%1 (%2x%3) - Image Viewer")
|
||||
.arg(QString::fromUtf8(dispName.get()))
|
||||
.arg(image_.width())
|
||||
.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);
|
||||
// TODO: update status bar, show current index in the folder
|
||||
}
|
||||
else {
|
||||
title = tr("Image Viewer");
|
||||
title = tr("[*]Image Viewer");
|
||||
}
|
||||
setWindowTitle(title);
|
||||
setWindowModified(imageModified_);
|
||||
}
|
||||
|
||||
// Load the specified image file asynchronously in a worker thread.
|
||||
// When the loading is finished, onImageLoaded() will be called.
|
||||
void MainWindow::loadImage(FmPath* filePath, QModelIndex index) {
|
||||
void MainWindow::loadImage(const Fm::FilePath & filePath, QModelIndex index) {
|
||||
// cancel loading of current image
|
||||
if(loadJob_) {
|
||||
loadJob_->cancel(); // the job object will be freed automatically later
|
||||
loadJob_ = NULL;
|
||||
loadJob_ = nullptr;
|
||||
}
|
||||
if(imageModified_) {
|
||||
// TODO: ask the user to save the modified image?
|
||||
@ -552,46 +602,114 @@ void MainWindow::loadImage(FmPath* filePath, QModelIndex index) {
|
||||
}
|
||||
|
||||
currentIndex_ = index;
|
||||
if(currentFile_)
|
||||
fm_path_unref(currentFile_);
|
||||
currentFile_ = fm_path_ref(filePath);
|
||||
currentFile_ = filePath;
|
||||
// clear current image, but do not update the view now to prevent flickers
|
||||
image_ = QImage();
|
||||
|
||||
// start a new gio job to load the specified image
|
||||
loadJob_ = new LoadImageJob(this, filePath);
|
||||
loadJob_->start();
|
||||
const Fm::CStrPtr basename = currentFile_.baseName();
|
||||
char* mime_type = g_content_type_guess(basename.get(), NULL, 0, NULL);
|
||||
QString mimeType;
|
||||
if (mime_type) {
|
||||
mimeType = QString(mime_type);
|
||||
g_free(mime_type);
|
||||
}
|
||||
if(mimeType == "image/gif"
|
||||
|| mimeType == "image/svg+xml" || mimeType == "image/svg+xml-compressed") {
|
||||
const Fm::CStrPtr file_name = currentFile_.toString();
|
||||
ui.view->setAutoZoomFit(true); // like in onImageLoaded()
|
||||
if(mimeType == "image/gif")
|
||||
ui.view->setGifAnimation(QString{file_name.get()});
|
||||
else
|
||||
ui.view->setSVG(QString{file_name.get()});
|
||||
image_ = ui.view->image();
|
||||
updateUI();
|
||||
show();
|
||||
}
|
||||
else {
|
||||
// start a new gio job to load the specified image
|
||||
loadJob_ = new LoadImageJob(currentFile_);
|
||||
connect(loadJob_, &Fm::Job::finished, this, &MainWindow::onImageLoaded);
|
||||
connect(loadJob_, &Fm::Job::error, this
|
||||
, [] (const Fm::GErrorPtr & err, Fm::Job::ErrorSeverity /*severity*/, Fm::Job::ErrorAction & /*response*/)
|
||||
{
|
||||
// TODO: show a info bar?
|
||||
qWarning().noquote() << "lximage-qt:" << err.message();
|
||||
}
|
||||
, Qt::BlockingQueuedConnection);
|
||||
loadJob_->runAsync();
|
||||
|
||||
updateUI();
|
||||
updateUI();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::saveImage(FmPath* filePath) {
|
||||
void MainWindow::saveImage(const Fm::FilePath & filePath) {
|
||||
if(saveJob_) // do not launch a new job if the current one is still in progress
|
||||
return;
|
||||
// start a new gio job to save current image to the specified path
|
||||
saveJob_ = new SaveImageJob(this, filePath);
|
||||
saveJob_->start();
|
||||
saveJob_ = new SaveImageJob(image_, filePath);
|
||||
connect(saveJob_, &Fm::Job::finished, this, &MainWindow::onImageSaved);
|
||||
connect(saveJob_, &Fm::Job::error, this
|
||||
, [] (const Fm::GErrorPtr & err, Fm::Job::ErrorSeverity /*severity*/, Fm::Job::ErrorAction & /*response*/)
|
||||
{
|
||||
// TODO: show a info bar?
|
||||
qWarning().noquote() << "lximage-qt:" << err.message();
|
||||
}
|
||||
, Qt::BlockingQueuedConnection);
|
||||
saveJob_->runAsync();
|
||||
// FIXME: add a cancel button to the UI? update status bar?
|
||||
}
|
||||
|
||||
QGraphicsItem* MainWindow::getGraphicsItem() {
|
||||
if(!ui.view->items().isEmpty())
|
||||
return ui.view->items().at(0);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void MainWindow::on_actionRotateClockwise_triggered() {
|
||||
QGraphicsItem *graphItem = getGraphicsItem();
|
||||
bool isGifOrSvg (graphItem->isWidget() // we have gif animation
|
||||
|| dynamic_cast<QGraphicsSvgItem*>(graphItem)); // an SVG image;
|
||||
if(!image_.isNull()) {
|
||||
QTransform transform;
|
||||
transform.rotate(90.0);
|
||||
image_ = image_.transformed(transform, Qt::SmoothTransformation);
|
||||
ui.view->setImage(image_);
|
||||
/* when this is GIF or SVG, we need to rotate its corresponding QImage
|
||||
without showing it to have the right measure for auto-zooming */
|
||||
ui.view->setImage(image_, isGifOrSvg ? false : true);
|
||||
setModified(true);
|
||||
}
|
||||
|
||||
if(isGifOrSvg) {
|
||||
QTransform transform;
|
||||
transform.translate(graphItem->sceneBoundingRect().height(), 0);
|
||||
transform.rotate(90);
|
||||
// we need to apply transformations in the reverse order
|
||||
QTransform prevTrans = graphItem->transform();
|
||||
graphItem->setTransform(transform, false);
|
||||
graphItem->setTransform(prevTrans, true);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionRotateCounterclockwise_triggered() {
|
||||
QGraphicsItem *graphItem = getGraphicsItem();
|
||||
bool isGifOrSvg (graphItem->isWidget()
|
||||
|| dynamic_cast<QGraphicsSvgItem*>(graphItem));
|
||||
if(!image_.isNull()) {
|
||||
QTransform transform;
|
||||
transform.rotate(-90.0);
|
||||
image_ = image_.transformed(transform, Qt::SmoothTransformation);
|
||||
ui.view->setImage(image_);
|
||||
ui.view->setImage(image_, isGifOrSvg ? false : true);
|
||||
setModified(true);
|
||||
}
|
||||
|
||||
if(isGifOrSvg) {
|
||||
QTransform transform;
|
||||
transform.translate(0, graphItem->sceneBoundingRect().width());
|
||||
transform.rotate(-90);
|
||||
QTransform prevTrans = graphItem->transform();
|
||||
graphItem->setTransform(transform, false);
|
||||
graphItem->setTransform(prevTrans, true);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionCopy_triggered() {
|
||||
@ -616,27 +734,52 @@ void MainWindow::on_actionPaste_triggered() {
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionUpload_triggered()
|
||||
{
|
||||
if (currentFile_.isValid()) {
|
||||
UploadDialog(this, currentFile_.localPath().get()).exec();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::on_actionFlipVertical_triggered() {
|
||||
bool hasQGraphicsItem(false);
|
||||
if(QGraphicsItem *graphItem = getGraphicsItem()) {
|
||||
hasQGraphicsItem = true;
|
||||
QTransform transform;
|
||||
transform.scale(1, -1);
|
||||
transform.translate(0, -graphItem->sceneBoundingRect().height());
|
||||
QTransform prevTrans = graphItem->transform();
|
||||
graphItem->setTransform(transform, false);
|
||||
graphItem->setTransform(prevTrans, true);
|
||||
}
|
||||
if(!image_.isNull()) {
|
||||
image_ = image_.mirrored(false, true);
|
||||
ui.view->setImage(image_);
|
||||
ui.view->setImage(image_, !hasQGraphicsItem);
|
||||
setModified(true);
|
||||
}
|
||||
setModified(true);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionFlipHorizontal_triggered() {
|
||||
bool hasQGraphicsItem(false);
|
||||
if(QGraphicsItem *graphItem = getGraphicsItem()) {
|
||||
hasQGraphicsItem = true;
|
||||
QTransform transform;
|
||||
transform.scale(-1, 1);
|
||||
transform.translate(-graphItem->sceneBoundingRect().width(), 0);
|
||||
QTransform prevTrans = graphItem->transform();
|
||||
graphItem->setTransform(transform, false);
|
||||
graphItem->setTransform(prevTrans, true);
|
||||
}
|
||||
if(!image_.isNull()) {
|
||||
image_ = image_.mirrored(true, false);
|
||||
ui.view->setImage(image_);
|
||||
image_ = image_.mirrored(true, true);
|
||||
ui.view->setImage(image_, !hasQGraphicsItem);
|
||||
setModified(true);
|
||||
}
|
||||
setModified(true);
|
||||
}
|
||||
|
||||
void MainWindow::setModified(bool modified) {
|
||||
imageModified_ = modified;
|
||||
updateUI(); // TODO: update title bar to reflect the state change
|
||||
updateUI();
|
||||
}
|
||||
|
||||
void MainWindow::applySettings() {
|
||||
@ -658,11 +801,9 @@ void MainWindow::on_actionPrint_triggered() {
|
||||
QRect pageRect = printer.pageRect();
|
||||
int cols = (image_.width() / pageRect.width()) + (image_.width() % pageRect.width() ? 1 : 0);
|
||||
int rows = (image_.height() / pageRect.height()) + (image_.height() % pageRect.height() ? 1 : 0);
|
||||
// qDebug() << "page:" << printer.pageRect() << "image:" << image_.size() << "cols, rows:" << cols << rows;
|
||||
for(int row = 0; row < rows; ++row) {
|
||||
for(int col = 0; col < cols; ++col) {
|
||||
QRect srcRect(pageRect.width() * col, pageRect.height() * row, pageRect.width(), pageRect.height());
|
||||
// qDebug() << "row:" << row << "col:" << col << "src:" << srcRect << "page:" << printer.pageRect();
|
||||
painter.drawImage(QPoint(0, 0), image_, srcRect);
|
||||
if(col + 1 == cols && row + 1 == rows) // this is the last page
|
||||
break;
|
||||
@ -686,7 +827,7 @@ void MainWindow::on_actionSlideShow_triggered(bool checked) {
|
||||
if(!slideShowTimer_) {
|
||||
slideShowTimer_ = new QTimer();
|
||||
// switch to the next image when timeout
|
||||
connect(slideShowTimer_, SIGNAL(timeout()), SLOT(on_actionNext_triggered()));
|
||||
connect(slideShowTimer_, &QTimer::timeout, this, &MainWindow::on_actionNext_triggered);
|
||||
}
|
||||
Application* app = static_cast<Application*>(qApp);
|
||||
slideShowTimer_->start(app->settings().slideShowInterval() * 1000);
|
||||
@ -696,7 +837,7 @@ void MainWindow::on_actionSlideShow_triggered(bool checked) {
|
||||
else {
|
||||
if(slideShowTimer_) {
|
||||
delete slideShowTimer_;
|
||||
slideShowTimer_ = NULL;
|
||||
slideShowTimer_ = nullptr;
|
||||
ui.actionSlideShow->setIcon(QIcon::fromTheme("media-playback-start"));
|
||||
}
|
||||
}
|
||||
@ -718,19 +859,29 @@ void MainWindow::setShowThumbnails(bool show) {
|
||||
listView->installEventFilter(this);
|
||||
// FIXME: optimize the size of the thumbnail view
|
||||
// FIXME if the thumbnail view is docked elsewhere, update the settings.
|
||||
int scrollHeight = style()->pixelMetric(QStyle::PM_ScrollBarExtent);
|
||||
thumbnailsView_->setFixedHeight(listView->gridSize().height() + scrollHeight);
|
||||
if(Fm::FolderItemDelegate* delegate = static_cast<Fm::FolderItemDelegate*>(listView->itemDelegateForColumn(Fm::FolderModel::ColumnFileName))) {
|
||||
int scrollHeight = style()->pixelMetric(QStyle::PM_ScrollBarExtent);
|
||||
thumbnailsView_->setFixedHeight(delegate->itemSize().height() + scrollHeight);
|
||||
}
|
||||
thumbnailsView_->setModel(proxyModel_);
|
||||
proxyModel_->setShowThumbnails(true);
|
||||
connect(thumbnailsView_->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(onThumbnailSelChanged(QItemSelection,QItemSelection)));
|
||||
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(), &QItemSelectionModel::selectionChanged,
|
||||
this, &MainWindow::onThumbnailSelChanged);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(thumbnailsDock_) {
|
||||
delete thumbnailsView_;
|
||||
thumbnailsView_ = NULL;
|
||||
thumbnailsView_ = nullptr;
|
||||
delete thumbnailsDock_;
|
||||
thumbnailsDock_ = NULL;
|
||||
thumbnailsDock_ = nullptr;
|
||||
}
|
||||
proxyModel_->setShowThumbnails(false);
|
||||
}
|
||||
@ -760,6 +911,7 @@ void MainWindow::changeEvent(QEvent* event) {
|
||||
addAction(action);
|
||||
}
|
||||
addActions(ui.menubar->actions());
|
||||
ui.view->hideCursor(true);
|
||||
}
|
||||
else { // restore to normal window mode
|
||||
ui.view->setFrameStyle(QFrame::StyledPanel|QFrame::Sunken);
|
||||
@ -774,11 +926,39 @@ void MainWindow::changeEvent(QEvent* event) {
|
||||
ui.statusBar->show();
|
||||
if(thumbnailsDock_)
|
||||
thumbnailsDock_->show();
|
||||
ui.view->hideCursor(false);
|
||||
}
|
||||
}
|
||||
QWidget::changeEvent(event);
|
||||
}
|
||||
|
||||
void MainWindow::resizeEvent(QResizeEvent *event) {
|
||||
QMainWindow::resizeEvent(event);
|
||||
Settings& settings = static_cast<Application*>(qApp)->settings();
|
||||
if(settings.rememberWindowSize()) {
|
||||
settings.setLastWindowMaximized(isMaximized());
|
||||
|
||||
if(!isMaximized()) {
|
||||
settings.setLastWindowWidth(width());
|
||||
settings.setLastWindowHeight(height());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
QWidget::closeEvent(event);
|
||||
Settings& settings = static_cast<Application*>(qApp)->settings();
|
||||
if(settings.rememberWindowSize()) {
|
||||
settings.setLastWindowMaximized(isMaximized());
|
||||
|
||||
if(!isMaximized()) {
|
||||
settings.setLastWindowWidth(width());
|
||||
settings.setLastWindowHeight(height());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onContextMenu(QPoint pos) {
|
||||
contextMenu_->exec(ui.view->mapToGlobal(pos));
|
||||
}
|
||||
@ -788,14 +968,18 @@ void MainWindow::onExitFullscreen() {
|
||||
showNormal();
|
||||
}
|
||||
|
||||
void MainWindow::onThumbnailSelChanged(const QItemSelection& selected, const QItemSelection& deselected) {
|
||||
void MainWindow::onThumbnailSelChanged(const QItemSelection& selected, const QItemSelection& /*deselected*/) {
|
||||
// the selected item of thumbnail view is changed
|
||||
if(!selected.isEmpty()) {
|
||||
QModelIndex index = selected.first().topLeft();
|
||||
if(index.isValid() && index != currentIndex_) {
|
||||
FmFileInfo* file = proxyModel_->fileInfoFromIndex(index);
|
||||
const auto file = proxyModel_->fileInfoFromIndex(index);
|
||||
if(file)
|
||||
loadImage(fm_file_info_get_path(file), index);
|
||||
loadImage(file->path(), index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onFileDropped(const QString path) {
|
||||
openImageFile(path);
|
||||
}
|
||||
|
@ -50,19 +50,19 @@ class MainWindow : public QMainWindow {
|
||||
public:
|
||||
friend class LoadImageJob;
|
||||
friend class SaveImageJob;
|
||||
|
||||
|
||||
MainWindow();
|
||||
virtual ~MainWindow();
|
||||
|
||||
void openImageFile(QString fileName);
|
||||
|
||||
|
||||
QImage image() const {
|
||||
return image_;
|
||||
}
|
||||
|
||||
void pasteImage(QImage newImage);
|
||||
|
||||
FmPath* currentFile() const {
|
||||
const Fm::FilePath & currentFile() const {
|
||||
return currentFile_;
|
||||
}
|
||||
|
||||
@ -70,21 +70,25 @@ public:
|
||||
void applySettings();
|
||||
|
||||
protected:
|
||||
void loadImage(FmPath* filePath, QModelIndex index = QModelIndex());
|
||||
void saveImage(FmPath* filePath); // save current image to a file
|
||||
void loadFolder(FmPath* newFolderPath);
|
||||
void loadImage(const Fm::FilePath & filePath, QModelIndex index = QModelIndex());
|
||||
void saveImage(const Fm::FilePath & filePath); // save current image to a file
|
||||
void loadFolder(const Fm::FilePath & newFolderPath);
|
||||
QString openFileName();
|
||||
QString openDirectory();
|
||||
QString saveFileName(QString defaultName = QString());
|
||||
virtual void changeEvent(QEvent * event);
|
||||
virtual void resizeEvent(QResizeEvent *event);
|
||||
virtual void closeEvent(QCloseEvent *event);
|
||||
|
||||
void onImageLoaded();
|
||||
void onImageSaved();
|
||||
|
||||
void onImageLoaded(LoadImageJob* job);
|
||||
void onImageSaved(SaveImageJob* job);
|
||||
|
||||
virtual bool eventFilter(QObject* watched, QEvent* event);
|
||||
private Q_SLOTS:
|
||||
void on_actionAbout_triggered();
|
||||
|
||||
void on_actionOpenFile_triggered();
|
||||
void on_actionOpenDirectory_triggered();
|
||||
void on_actionNewWindow_triggered();
|
||||
void on_actionSave_triggered();
|
||||
void on_actionSaveAs_triggered();
|
||||
@ -99,6 +103,7 @@ private Q_SLOTS:
|
||||
void on_actionFlipHorizontal_triggered();
|
||||
void on_actionCopy_triggered();
|
||||
void on_actionPaste_triggered();
|
||||
void on_actionUpload_triggered();
|
||||
|
||||
void on_actionShowThumbnails_triggered(bool checked);
|
||||
void on_actionFullScreen_triggered(bool checked);
|
||||
@ -119,16 +124,14 @@ private Q_SLOTS:
|
||||
|
||||
void onThumbnailSelChanged(const QItemSelection & selected, const QItemSelection & deselected);
|
||||
|
||||
void onFileDropped(const QString path);
|
||||
|
||||
private:
|
||||
void onFolderLoaded(FmFolder* folder);
|
||||
void onFolderLoaded();
|
||||
void updateUI();
|
||||
void setModified(bool modified);
|
||||
QModelIndex indexFromPath(FmPath* filePath);
|
||||
|
||||
// GObject related signal handers and callbacks
|
||||
static void _onFolderLoaded(FmFolder* folder, MainWindow* _this) {
|
||||
_this->onFolderLoaded(folder);
|
||||
}
|
||||
QModelIndex indexFromPath(const Fm::FilePath & filePath);
|
||||
QGraphicsItem* getGraphicsItem();
|
||||
|
||||
private:
|
||||
Ui::MainWindow ui;
|
||||
@ -136,13 +139,13 @@ private:
|
||||
QTimer* slideShowTimer_;
|
||||
|
||||
QImage image_; // the image currently shown
|
||||
FmPath* currentFile_; // path to current image file
|
||||
Fm::FilePath currentFile_; // path to current image file
|
||||
// FmFileInfo* currentFileInfo_; // info of the current file, can be NULL
|
||||
bool imageModified_; // the current image is modified by rotation, flip, or others and needs to be saved
|
||||
|
||||
// folder browsing
|
||||
FmFolder* folder_;
|
||||
FmPath* folderPath_;
|
||||
std::shared_ptr<Fm::Folder> folder_;
|
||||
Fm::FilePath folderPath_;
|
||||
Fm::FolderModel* folderModel_;
|
||||
Fm::ProxyFolderModel* proxyModel_;
|
||||
ModelFilter* modelFilter_;
|
||||
@ -156,6 +159,6 @@ private:
|
||||
SaveImageJob* saveJob_;
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_MAINWINDOW_H
|
||||
|
@ -56,6 +56,7 @@
|
||||
</property>
|
||||
<addaction name="actionNewWindow"/>
|
||||
<addaction name="actionOpenFile"/>
|
||||
<addaction name="actionOpenDirectory"/>
|
||||
<addaction name="actionScreenshot"/>
|
||||
<addaction name="actionSave"/>
|
||||
<addaction name="actionSaveAs"/>
|
||||
@ -107,6 +108,8 @@
|
||||
<addaction name="actionCopy"/>
|
||||
<addaction name="actionPaste"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionUpload"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionPreferences"/>
|
||||
</widget>
|
||||
<addaction name="menu_File"/>
|
||||
@ -221,7 +224,7 @@
|
||||
<string>Zoom &In</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl++</string>
|
||||
<string>Ctrl+=</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionZoomOut">
|
||||
@ -288,6 +291,9 @@
|
||||
<property name="text">
|
||||
<string>Original Size</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+0</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionZoomFit">
|
||||
<property name="icon">
|
||||
@ -451,6 +457,28 @@
|
||||
<string>File Properties</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionOpenDirectory">
|
||||
<property name="icon">
|
||||
<iconset theme="document-open"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Open &Directory</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string>Ctrl+D</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionUpload">
|
||||
<property name="icon">
|
||||
<iconset theme="upload-media"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Upload</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Upload the image</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
|
@ -30,10 +30,11 @@ ModelFilter::~ModelFilter() {
|
||||
|
||||
}
|
||||
|
||||
bool ModelFilter::filterAcceptsRow(const Fm::ProxyFolderModel* model, FmFileInfo* info) const {
|
||||
bool ModelFilter::filterAcceptsRow(const Fm::ProxyFolderModel* model, const std::shared_ptr<const Fm::FileInfo>& info) const
|
||||
{
|
||||
Q_UNUSED(model)
|
||||
|
||||
// filter out non-image files and formats that we don't support.
|
||||
if(!fm_file_info_is_image(info))
|
||||
return false;
|
||||
return true;
|
||||
return info && info->isImage();
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,7 @@ namespace LxImage {
|
||||
class ModelFilter: public Fm::ProxyFolderModelFilter {
|
||||
public:
|
||||
ModelFilter();
|
||||
virtual bool filterAcceptsRow(const Fm::ProxyFolderModel* model, FmFileInfo* info) const;
|
||||
virtual bool filterAcceptsRow(const Fm::ProxyFolderModel* model, const std::shared_ptr<const Fm::FileInfo>& info) const override;
|
||||
virtual ~ModelFilter();
|
||||
};
|
||||
|
||||
|
@ -7,7 +7,7 @@
|
||||
<!-- file paths to open in new windows -->
|
||||
<arg type="as" direction="in"/>
|
||||
</method>
|
||||
|
||||
|
||||
<!-- launch a tool to take a screenshot -->
|
||||
<method name="screenshot" />
|
||||
|
||||
|
@ -33,7 +33,7 @@ PreferencesDialog::PreferencesDialog(QWidget* parent):
|
||||
Application* app = static_cast<Application*>(qApp);
|
||||
Settings& settings = app->settings();
|
||||
app->addWindow();
|
||||
|
||||
|
||||
initIconThemes(settings);
|
||||
ui.bgColor->setColor(settings.bgColor());
|
||||
ui.fullScreenBgColor->setColor(settings.fullScreenBgColor());
|
||||
@ -59,8 +59,8 @@ void PreferencesDialog::accept() {
|
||||
QIcon::setThemeName(newIconTheme);
|
||||
// update the UI by emitting a style change event
|
||||
Q_FOREACH(QWidget *widget, QApplication::allWidgets()) {
|
||||
QEvent event(QEvent::StyleChange);
|
||||
QApplication::sendEvent(widget, &event);
|
||||
QEvent event(QEvent::StyleChange);
|
||||
QApplication::sendEvent(widget, &event);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -68,7 +68,7 @@ void PreferencesDialog::accept() {
|
||||
settings.setBgColor(ui.bgColor->color());
|
||||
settings.setFullScreenBgColor(ui.fullScreenBgColor->color());
|
||||
settings.setSlideShowInterval(ui.slideShowInterval->value());
|
||||
|
||||
|
||||
settings.save();
|
||||
QDialog::accept();
|
||||
app->applySettings();
|
||||
@ -96,8 +96,6 @@ static void findIconThemesInDir(QHash<QString, QString>& iconThemes, QString dir
|
||||
}
|
||||
|
||||
void PreferencesDialog::initIconThemes(Settings& settings) {
|
||||
Application* app = static_cast<Application*>(qApp);
|
||||
|
||||
// check if auto-detection is done (for example, from xsettings)
|
||||
if(settings.useFallbackIconTheme()) { // auto-detection failed
|
||||
// load xdg icon themes and select the current one
|
||||
@ -113,7 +111,7 @@ void PreferencesDialog::initIconThemes(Settings& settings) {
|
||||
|
||||
iconThemes.remove("hicolor"); // remove hicolor, which is only a fallback
|
||||
QHash<QString, QString>::const_iterator it;
|
||||
for(it = iconThemes.begin(); it != iconThemes.end(); ++it) {
|
||||
for(it = iconThemes.constBegin(); it != iconThemes.constEnd(); ++it) {
|
||||
ui.iconTheme->addItem(it.value(), it.key());
|
||||
}
|
||||
ui.iconTheme->model()->sort(0); // sort the list of icon theme names
|
||||
@ -124,7 +122,7 @@ void PreferencesDialog::initIconThemes(Settings& settings) {
|
||||
for(i = 0; i < n; ++i) {
|
||||
QVariant itemData = ui.iconTheme->itemData(i);
|
||||
if(itemData == settings.fallbackIconTheme()) {
|
||||
break;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(i >= n)
|
||||
|
@ -33,7 +33,7 @@ class PreferencesDialog : public QDialog {
|
||||
public:
|
||||
explicit PreferencesDialog(QWidget* parent = 0);
|
||||
virtual ~PreferencesDialog();
|
||||
|
||||
|
||||
virtual void accept();
|
||||
virtual void done(int r);
|
||||
|
||||
|
@ -73,7 +73,11 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="slideShowInterval"/>
|
||||
<widget class="QSpinBox" name="slideShowInterval">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
|
@ -26,47 +26,58 @@
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
SaveImageJob::SaveImageJob(MainWindow* window, FmPath* filePath):
|
||||
Job(),
|
||||
path_(fm_path_ref(filePath)),
|
||||
mainWindow_(window),
|
||||
image_(window->image()) {
|
||||
SaveImageJob::SaveImageJob(const QImage & image, const Fm::FilePath & filePath):
|
||||
path_{filePath},
|
||||
image_{image},
|
||||
failed_{true}
|
||||
{
|
||||
}
|
||||
|
||||
SaveImageJob::~SaveImageJob() {
|
||||
fm_path_unref(path_);
|
||||
}
|
||||
|
||||
// This is called from the worker thread, not main thread
|
||||
bool SaveImageJob::run() {
|
||||
GFile* gfile = fm_path_to_gfile(path_);
|
||||
GFileOutputStream* fileStream = g_file_replace(gfile, NULL, false, G_FILE_CREATE_PRIVATE, cancellable_, &error_);
|
||||
g_object_unref(gfile);
|
||||
void SaveImageJob::exec() {
|
||||
const Fm::CStrPtr f = path_.baseName();
|
||||
char const * format = f.get();
|
||||
format = strrchr(format, '.');
|
||||
if(format) // use filename extension as the image format
|
||||
++format;
|
||||
|
||||
if(fileStream) { // if the file stream is successfually opened
|
||||
const char* format = fm_path_get_basename(path_);
|
||||
format = strrchr(format, '.');
|
||||
if(format) // use filename extension as the image format
|
||||
++format;
|
||||
QBuffer imageBuffer;
|
||||
image_.save(&imageBuffer, format); // save the image to buffer
|
||||
|
||||
QBuffer imageBuffer;
|
||||
image_.save(&imageBuffer, format); // save the image to buffer
|
||||
GOutputStream* outputStream = G_OUTPUT_STREAM(fileStream);
|
||||
g_output_stream_write_all(outputStream,
|
||||
imageBuffer.data().constData(),
|
||||
imageBuffer.size(),
|
||||
NULL,
|
||||
cancellable_,
|
||||
&error_);
|
||||
g_output_stream_close(outputStream, NULL, NULL);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
GFileOutputStream* fileStream = nullptr;
|
||||
Fm::GErrorPtr error;
|
||||
ErrorAction act = ErrorAction::RETRY;
|
||||
while (act == ErrorAction::RETRY && !isCancelled())
|
||||
{
|
||||
error.reset();
|
||||
if (nullptr == (fileStream = g_file_replace(path_.gfile().get(), NULL, false, G_FILE_CREATE_NONE, cancellable().get(), &error)))
|
||||
{
|
||||
act = emitError(error);
|
||||
continue;
|
||||
}
|
||||
|
||||
// this function is called from main thread only
|
||||
void SaveImageJob::finish() {
|
||||
// only do processing if the job is not cancelled
|
||||
if(!g_cancellable_is_cancelled(cancellable_)) {
|
||||
mainWindow_->onImageSaved(this);
|
||||
// the file stream is successfually opened
|
||||
if (!isCancelled())
|
||||
{
|
||||
GOutputStream* outputStream = G_OUTPUT_STREAM(fileStream);
|
||||
g_output_stream_write_all(outputStream,
|
||||
imageBuffer.data().constData(),
|
||||
imageBuffer.size(),
|
||||
NULL,
|
||||
cancellable().get(),
|
||||
&error);
|
||||
g_output_stream_close(outputStream, NULL, NULL);
|
||||
if (!error)
|
||||
{
|
||||
// successfully written
|
||||
failed_ = false;
|
||||
break; // successfully written
|
||||
}
|
||||
|
||||
act = emitError(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,39 +21,39 @@
|
||||
#ifndef LXIMAGE_SAVEIMAGEJOB_H
|
||||
#define LXIMAGE_SAVEIMAGEJOB_H
|
||||
|
||||
#include <gio/gio.h>
|
||||
#include <libfm/fm.h>
|
||||
#include <libfm-qt/core/job.h>
|
||||
#include <libfm-qt/core/filepath.h>
|
||||
#include <QImage>
|
||||
#include "job.h"
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class MainWindow;
|
||||
|
||||
class SaveImageJob : public Job {
|
||||
class SaveImageJob : public Fm::Job {
|
||||
|
||||
public:
|
||||
SaveImageJob(MainWindow* window, FmPath* filePath);
|
||||
SaveImageJob(const QImage & image, const Fm::FilePath & filePath);
|
||||
|
||||
QImage image() const {
|
||||
return image_;
|
||||
}
|
||||
|
||||
FmPath* filePath() const {
|
||||
const Fm::FilePath & filePath() const {
|
||||
return path_;
|
||||
}
|
||||
|
||||
bool failed() const
|
||||
{
|
||||
return failed_;
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual bool run();
|
||||
virtual void finish();
|
||||
|
||||
virtual void exec() override;
|
||||
|
||||
private:
|
||||
~SaveImageJob(); // prevent direct deletion
|
||||
|
||||
public:
|
||||
MainWindow* mainWindow_;
|
||||
FmPath* path_;
|
||||
QImage image_;
|
||||
const Fm::FilePath path_;
|
||||
const QImage image_;
|
||||
bool failed_;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -19,12 +19,14 @@
|
||||
|
||||
|
||||
#include "screenshotdialog.h"
|
||||
#include "screenshotselectarea.h"
|
||||
#include <QTimer>
|
||||
#include <QPixmap>
|
||||
#include <QImage>
|
||||
#include <QPainter>
|
||||
#include "application.h"
|
||||
#include <QDesktopWidget>
|
||||
#include <QScreen>
|
||||
|
||||
#include <QX11Info>
|
||||
#include <X11/Xlib.h>
|
||||
@ -47,7 +49,7 @@ ScreenshotDialog::ScreenshotDialog(QWidget* parent, Qt::WindowFlags f): QDialog(
|
||||
|
||||
ScreenshotDialog::~ScreenshotDialog() {
|
||||
Application* app = static_cast<Application*>(qApp);
|
||||
app->removeWindow();
|
||||
app->removeWindow();
|
||||
}
|
||||
|
||||
void ScreenshotDialog::done(int r) {
|
||||
@ -83,7 +85,7 @@ QRect ScreenshotDialog::windowFrame(WId wid) {
|
||||
int x, y;
|
||||
// translate to root coordinate
|
||||
XTranslateCoordinates(QX11Info::display(), wid, wa.root, 0, 0, &x, &y, &child);
|
||||
qDebug("%d, %d, %d, %d", x, y, wa.width, wa.height);
|
||||
//qDebug("%d, %d, %d, %d", x, y, wa.width, wa.height);
|
||||
result.setRect(x, y, wa.width, wa.height);
|
||||
|
||||
// get the frame widths added by the window manager
|
||||
@ -140,41 +142,49 @@ void ScreenshotDialog::doScreenshot() {
|
||||
}
|
||||
}
|
||||
|
||||
QPixmap pixmap;
|
||||
pixmap = QPixmap::grabWindow(wid, x, y, width, height);
|
||||
QImage image = pixmap.toImage();
|
||||
QImage image;
|
||||
QScreen *screen = QGuiApplication::primaryScreen();
|
||||
if(screen) {
|
||||
QPixmap pixmap = screen->grabWindow(wid, x, y, width, height);
|
||||
image = pixmap.toImage();
|
||||
|
||||
if(hasXfixes_ && ui.includeCursor->isChecked()) {
|
||||
// capture the cursor if needed
|
||||
XFixesCursorImage* cursor = XFixesGetCursorImage(QX11Info::display());
|
||||
if(cursor) {
|
||||
if(cursor->pixels) { // pixles should be an ARGB array
|
||||
QImage cursorImage;
|
||||
quint32* buf = NULL;
|
||||
if(sizeof(long) == 4) {
|
||||
// FIXME: will we encounter byte-order problems here?
|
||||
cursorImage = QImage((uchar*)cursor->pixels, cursor->width, cursor->height, QImage::Format_ARGB32);
|
||||
if(hasXfixes_ && ui.includeCursor->isChecked()) {
|
||||
// capture the cursor if needed
|
||||
XFixesCursorImage* cursor = XFixesGetCursorImage(QX11Info::display());
|
||||
if(cursor) {
|
||||
if(cursor->pixels) { // pixles should be an ARGB array
|
||||
QImage cursorImage;
|
||||
if(sizeof(long) == 4) {
|
||||
// FIXME: will we encounter byte-order problems here?
|
||||
cursorImage = QImage((uchar*)cursor->pixels, cursor->width, cursor->height, QImage::Format_ARGB32);
|
||||
}
|
||||
else { // XFixes returns long integers which is not 32 bit on 64 bit systems.
|
||||
long len = cursor->width * cursor->height;
|
||||
quint32* buf = new quint32[len];
|
||||
for(long i = 0; i < len; ++i)
|
||||
buf[i] = (quint32)cursor->pixels[i];
|
||||
cursorImage = QImage((uchar*)buf, cursor->width, cursor->height, QImage::Format_ARGB32, [](void* b) { delete[] (quint32*)b; }, buf);
|
||||
}
|
||||
// paint the cursor on the current image
|
||||
QPainter painter(&image);
|
||||
painter.drawImage(cursor->x - cursor->xhot, cursor->y - cursor->yhot, cursorImage);
|
||||
}
|
||||
else { // XFixes returns long integers which is not 32 bit on 64 bit systems.
|
||||
long len = cursor->width * cursor->height;
|
||||
quint32* buf = new quint32[len];
|
||||
for(long i = 0; i < len; ++i)
|
||||
buf[i] = (quint32)cursor->pixels[i];
|
||||
cursorImage = QImage((uchar*)buf, cursor->width, cursor->height, QImage::Format_ARGB32);
|
||||
}
|
||||
// paint the cursor on the current image
|
||||
QPainter painter(&image);
|
||||
painter.drawImage(cursor->x - cursor->xhot, cursor->y - cursor->yhot, cursorImage);
|
||||
if(buf)
|
||||
delete []buf;
|
||||
XFree(cursor);
|
||||
}
|
||||
XFree(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
if(ui.screenArea->isChecked() && !image.isNull()) {
|
||||
ScreenshotSelectArea selectArea(image);
|
||||
if(QDialog::Accepted == selectArea.exec()) {
|
||||
image = image.copy(selectArea.selectedArea());
|
||||
}
|
||||
}
|
||||
|
||||
Application* app = static_cast<Application*>(qApp);
|
||||
MainWindow* window = app->createWindow();
|
||||
window->pasteImage(image);
|
||||
if(!image.isNull())
|
||||
window->pasteImage(image);
|
||||
window->show();
|
||||
|
||||
deleteLater(); // destroy ourself
|
||||
|
@ -15,8 +15,7 @@
|
||||
</property>
|
||||
<property name="windowIcon">
|
||||
<iconset theme="camera-photo">
|
||||
<normaloff/>
|
||||
</iconset>
|
||||
<normaloff>.</normaloff>.</iconset>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<property name="fieldGrowthPolicy">
|
||||
@ -52,6 +51,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="screenArea">
|
||||
<property name="text">
|
||||
<string>Capture an area of the screen</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
51
src/screenshotselectarea.cpp
Normal file
51
src/screenshotselectarea.cpp
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
<one line to give the library's name and an idea of what it does.>
|
||||
Copyright (C) 2013 <copyright holder> <email>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
|
||||
#include "screenshotselectarea.h"
|
||||
#include <QMouseEvent>
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
ScreenshotSelectArea::ScreenshotSelectArea(const QImage & image, QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
scene_ = new QGraphicsScene(this);
|
||||
scene_->addPixmap(QPixmap::fromImage(image));
|
||||
|
||||
view_ = new ScreenshotSelectAreaGraphicsView(scene_, this);
|
||||
view_->setRenderHints( QPainter::Antialiasing );
|
||||
view_->setHorizontalScrollBarPolicy ( Qt::ScrollBarAlwaysOff );
|
||||
view_->setVerticalScrollBarPolicy ( Qt::ScrollBarAlwaysOff );
|
||||
view_->show();
|
||||
view_->move(0,0);
|
||||
view_->resize(image.width(), image.height());
|
||||
setWindowState(windowState() | Qt::WindowFullScreen);
|
||||
connect(view_, &ScreenshotSelectAreaGraphicsView::selectedArea, this, &ScreenshotSelectArea::areaSelected);
|
||||
}
|
||||
|
||||
QRect ScreenshotSelectArea::selectedArea()
|
||||
{
|
||||
return selectedRect_;
|
||||
}
|
||||
|
||||
void ScreenshotSelectArea::areaSelected(QRect rect)
|
||||
{
|
||||
this->selectedRect_ = rect;
|
||||
accept();
|
||||
}
|
50
src/screenshotselectarea.h
Normal file
50
src/screenshotselectarea.h
Normal file
@ -0,0 +1,50 @@
|
||||
/*
|
||||
<one line to give the library's name and an idea of what it does.>
|
||||
Copyright (C) 2013 <copyright holder> <email>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
|
||||
#ifndef LXIMAGE_SCREENSHOTDIALOG_SELECT_AREA_H
|
||||
#define LXIMAGE_SCREENSHOTDIALOG_SELECT_AREA_H
|
||||
|
||||
#include "screenshotselectareagraphicsview.h"
|
||||
#include <QDialog>
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsView>
|
||||
#include <QGraphicsRectItem>
|
||||
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class ScreenshotSelectArea : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ScreenshotSelectArea(const QImage & image, QWidget* parent = 0);
|
||||
QRect selectedArea();
|
||||
|
||||
private Q_SLOTS:
|
||||
void areaSelected(QRect rect);
|
||||
|
||||
private:
|
||||
QGraphicsScene *scene_;
|
||||
ScreenshotSelectAreaGraphicsView *view_;
|
||||
QRect selectedRect_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_SCREENSHOTDIALOG_SELECT_AREA_H
|
58
src/screenshotselectareagraphicsview.cpp
Normal file
58
src/screenshotselectareagraphicsview.cpp
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
<one line to give the library's name and an idea of what it does.>
|
||||
Copyright (C) 2013 <copyright holder> <email>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
|
||||
#include "screenshotselectareagraphicsview.h"
|
||||
#include <QMouseEvent>
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
ScreenshotSelectAreaGraphicsView::ScreenshotSelectAreaGraphicsView(QGraphicsScene* scene, QWidget* parent) : QGraphicsView(scene, parent)
|
||||
{
|
||||
p0_ = QPointF(-1.0, -1.0);
|
||||
selectedAreaRect_ = nullptr;
|
||||
setCursor(Qt::CrossCursor);
|
||||
}
|
||||
|
||||
void ScreenshotSelectAreaGraphicsView::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if(p0_.x() < 0) {
|
||||
p0_ = QPointF(event->pos());
|
||||
} else {
|
||||
if(selectedAreaRect_ == nullptr) {
|
||||
QColor highlight = palette().color(QPalette::Active,QPalette::Highlight);
|
||||
QPen pen(highlight, 3, Qt::DashDotLine, Qt::RoundCap, Qt::RoundJoin);
|
||||
QColor color(highlight);
|
||||
color.setAlpha(128);
|
||||
QBrush brush(color);
|
||||
selectedAreaRect_ = scene()->addRect(QRectF(), pen, brush);
|
||||
}
|
||||
selectedAreaRect_->setRect(QRectF(p0_,QPointF(event->pos())).normalized());
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenshotSelectAreaGraphicsView::mouseMoveEvent(QMouseEvent *event)
|
||||
{
|
||||
mousePressEvent(event);
|
||||
}
|
||||
|
||||
void ScreenshotSelectAreaGraphicsView::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
Q_EMIT selectedArea(QRectF(p0_,QPointF(event->pos())).normalized().toRect());
|
||||
}
|
52
src/screenshotselectareagraphicsview.h
Normal file
52
src/screenshotselectareagraphicsview.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
<one line to give the library's name and an idea of what it does.>
|
||||
Copyright (C) 2013 <copyright holder> <email>
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
|
||||
#ifndef LXIMAGE_SCREENSHOTDIALOG_SELECT_AREA_GRAPICS_VIEW_H
|
||||
#define LXIMAGE_SCREENSHOTDIALOG_SELECT_AREA_GRAPICS_VIEW_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QGraphicsScene>
|
||||
#include <QGraphicsView>
|
||||
#include <QGraphicsRectItem>
|
||||
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class ScreenshotSelectAreaGraphicsView : public QGraphicsView {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ScreenshotSelectAreaGraphicsView(QGraphicsScene* scene, QWidget* parent = 0);
|
||||
|
||||
Q_SIGNALS:
|
||||
void selectedArea(QRect rect);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
void mouseMoveEvent(QMouseEvent *event);
|
||||
void mouseReleaseEvent(QMouseEvent *event);
|
||||
|
||||
private:
|
||||
QPointF p0_;
|
||||
QGraphicsRectItem *selectedAreaRect_;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_SCREENSHOTDIALOG_SELECT_AREA_H
|
@ -27,11 +27,16 @@ using namespace LxImage;
|
||||
Settings::Settings():
|
||||
useFallbackIconTheme_(QIcon::themeName().isEmpty() || QIcon::themeName() == "hicolor"),
|
||||
bgColor_(255, 255, 255),
|
||||
fullScreenBgColor_(0, 0, 0),
|
||||
showThumbnails_(false),
|
||||
showSidePane_(false),
|
||||
fullScreenBgColor_(0, 0, 0),
|
||||
slideShowInterval_(5),
|
||||
fallbackIconTheme_("oxygen"),
|
||||
slideShowInterval_(5) {
|
||||
fixedWindowWidth_(640),
|
||||
fixedWindowHeight_(480),
|
||||
lastWindowWidth_(640),
|
||||
lastWindowHeight_(480),
|
||||
lastWindowMaximized_(false) {
|
||||
}
|
||||
|
||||
Settings::~Settings() {
|
||||
@ -44,16 +49,37 @@ bool Settings::load() {
|
||||
fullScreenBgColor_ = settings.value("fullScreenBgColor", fullScreenBgColor_).value<QColor>();
|
||||
// showThumbnails_;
|
||||
// showSidePane_;
|
||||
int slideShowInterval_ = settings.value("slideShowInterval", slideShowInterval_).toInt();
|
||||
slideShowInterval_ = settings.value("slideShowInterval", slideShowInterval_).toInt();
|
||||
|
||||
settings.beginGroup("Window");
|
||||
fixedWindowWidth_ = settings.value("FixedWidth", 640).toInt();
|
||||
fixedWindowHeight_ = settings.value("FixedHeight", 480).toInt();
|
||||
lastWindowWidth_ = settings.value("LastWindowWidth", 640).toInt();
|
||||
lastWindowHeight_ = settings.value("LastWindowHeight", 480).toInt();
|
||||
lastWindowMaximized_ = settings.value("LastWindowMaximized", false).toBool();
|
||||
rememberWindowSize_ = settings.value("RememberWindowSize", true).toBool();
|
||||
settings.endGroup();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Settings::save() {
|
||||
QSettings settings("lximage-qt", "settings");
|
||||
|
||||
settings.setValue("fallbackIconTheme", fallbackIconTheme_);
|
||||
settings.setValue("bgColor", bgColor_);
|
||||
settings.setValue("fullScreenBgColor", fullScreenBgColor_);
|
||||
settings.setValue("slideShowInterval", slideShowInterval_);
|
||||
|
||||
settings.beginGroup("Window");
|
||||
settings.setValue("FixedWidth", fixedWindowWidth_);
|
||||
settings.setValue("FixedHeight", fixedWindowHeight_);
|
||||
settings.setValue("LastWindowWidth", lastWindowWidth_);
|
||||
settings.setValue("LastWindowHeight", lastWindowHeight_);
|
||||
settings.setValue("LastWindowMaximized", lastWindowMaximized_);
|
||||
settings.setValue("RememberWindowSize", rememberWindowSize_);
|
||||
settings.endGroup();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -79,6 +79,63 @@ public:
|
||||
slideShowInterval_ = interval;
|
||||
}
|
||||
|
||||
bool rememberWindowSize() const {
|
||||
return rememberWindowSize_;
|
||||
}
|
||||
|
||||
void setRememberWindowSize(bool rememberWindowSize) {
|
||||
rememberWindowSize_ = rememberWindowSize;
|
||||
}
|
||||
|
||||
int windowWidth() const {
|
||||
if(rememberWindowSize_)
|
||||
return lastWindowWidth_;
|
||||
else
|
||||
return fixedWindowWidth_;
|
||||
}
|
||||
|
||||
int windowHeight() const {
|
||||
if(rememberWindowSize_)
|
||||
return lastWindowHeight_;
|
||||
else
|
||||
return fixedWindowHeight_;
|
||||
}
|
||||
|
||||
bool windowMaximized() const {
|
||||
if(rememberWindowSize_)
|
||||
return lastWindowMaximized_;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
int fixedWindowWidth() const {
|
||||
return fixedWindowWidth_;
|
||||
}
|
||||
|
||||
void setFixedWindowWidth(int fixedWindowWidth) {
|
||||
fixedWindowWidth_ = fixedWindowWidth;
|
||||
}
|
||||
|
||||
int fixedWindowHeight() const {
|
||||
return fixedWindowHeight_;
|
||||
}
|
||||
|
||||
void setFixedWindowHeight(int fixedWindowHeight) {
|
||||
fixedWindowHeight_ = fixedWindowHeight;
|
||||
}
|
||||
|
||||
void setLastWindowWidth(int lastWindowWidth) {
|
||||
lastWindowWidth_ = lastWindowWidth;
|
||||
}
|
||||
|
||||
void setLastWindowHeight(int lastWindowHeight) {
|
||||
lastWindowHeight_ = lastWindowHeight;
|
||||
}
|
||||
|
||||
void setLastWindowMaximized(bool lastWindowMaximized) {
|
||||
lastWindowMaximized_ = lastWindowMaximized;
|
||||
}
|
||||
|
||||
private:
|
||||
bool useFallbackIconTheme_;
|
||||
QColor bgColor_;
|
||||
@ -87,6 +144,13 @@ private:
|
||||
bool showSidePane_;
|
||||
int slideShowInterval_;
|
||||
QString fallbackIconTheme_;
|
||||
|
||||
bool rememberWindowSize_;
|
||||
int fixedWindowWidth_;
|
||||
int fixedWindowHeight_;
|
||||
int lastWindowWidth_;
|
||||
int lastWindowHeight_;
|
||||
bool lastWindowMaximized_;
|
||||
};
|
||||
|
||||
}
|
||||
|
4
src/translations/lximage-qt-screenshot_ca.desktop
Normal file
4
src/translations/lximage-qt-screenshot_ca.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[ca]=Captura de pantalla
|
||||
GenericName[ca]=Captura de pantalla
|
||||
Comment[ca]=Preneu una captura de pantalla
|
3
src/translations/lximage-qt-screenshot_da.desktop
Normal file
3
src/translations/lximage-qt-screenshot_da.desktop
Normal file
@ -0,0 +1,3 @@
|
||||
Name[da]=Skærmbillede
|
||||
GenericName[da]=Skærmbillede
|
||||
Comment[da]=Tag et skærmbillede
|
4
src/translations/lximage-qt-screenshot_el.desktop
Normal file
4
src/translations/lximage-qt-screenshot_el.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[el]=Στιγμιότυπο οθόνης
|
||||
GenericName[el]=Στιγμιότυπο οθόνης
|
||||
Comment[el]=Λήψη ενός στιγμιότυπου της οθόνης
|
4
src/translations/lximage-qt-screenshot_fr.desktop
Normal file
4
src/translations/lximage-qt-screenshot_fr.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[fr]=Copie d'écran
|
||||
GenericName[fr]=Copie d'écran
|
||||
Comment[fr]=Faire une copie d'écran
|
6
src/translations/lximage-qt-screenshot_hu.desktop
Normal file
6
src/translations/lximage-qt-screenshot_hu.desktop
Normal file
@ -0,0 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Name[hu]=LXQt képernyőfotó
|
||||
GenericName[hu]=Képrnyőfénykép
|
||||
Comment[hu]=Képernyőkép készítés
|
||||
|
||||
#TRANSLATIONS_DIR=translations
|
4
src/translations/lximage-qt-screenshot_it.desktop
Normal file
4
src/translations/lximage-qt-screenshot_it.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[it]=Cattura schermata
|
||||
GenericName[it]=Cattura una schermata
|
||||
Comment[it]=Catturare una schermata
|
4
src/translations/lximage-qt-screenshot_lt.desktop
Normal file
4
src/translations/lximage-qt-screenshot_lt.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[lt]=Ekrano kopija
|
||||
GenericName[lt]=Ekrano kopija
|
||||
Comment[lt]=Padaryti ekrano kopiją
|
6
src/translations/lximage-qt-screenshot_pl.desktop
Normal file
6
src/translations/lximage-qt-screenshot_pl.desktop
Normal file
@ -0,0 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Name[pl]=Zrzut ekranu
|
||||
GenericName[pl]=Zrzut ekranu
|
||||
Comment[pl]=Wykonaj zrzut ekranu
|
||||
|
||||
#TRANSLATIONS_DIR=translations
|
4
src/translations/lximage-qt-screenshot_ru.desktop
Normal file
4
src/translations/lximage-qt-screenshot_ru.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[ru]=Снимок экрана
|
||||
GenericName[ru]=Снимок экрана
|
||||
Comment[ru]=Сделать снимок экрана
|
4
src/translations/lximage-qt_ca.desktop
Normal file
4
src/translations/lximage-qt_ca.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[ca]=LXImage
|
||||
GenericName[ca]=Visualitzador d'imatges
|
||||
Comment[ca]=El visualitzador d'imatges de LXQt
|
@ -1,408 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="ca">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
3
src/translations/lximage-qt_da.desktop
Normal file
3
src/translations/lximage-qt_da.desktop
Normal file
@ -0,0 +1,3 @@
|
||||
Name[da]=LXImage
|
||||
GenericName[da]=Billedfremviser
|
||||
Comment[da]=LXQt-billedfremviseren
|
@ -1,5 +1,5 @@
|
||||
[Desktop Entry]
|
||||
GenericName[de]=Bildbetrachter
|
||||
Comment[de]=Der LXQt Bildbetrachter
|
||||
Comment[de]=Der LXQt-Bildbetrachter
|
||||
|
||||
#TRANSLATIONS_DIR=translations
|
||||
|
@ -1,416 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="de_DE">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished">Erstelle ein Bildschirmfoto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation type="unfinished">[Datei1, Datei2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished">Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation type="unfinished">LXImage - ein einfacher und schneller Bildbetrachter
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Autor:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation type="unfinished">Öffne Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation type="unfinished">Bilddateien (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation type="unfinished">Speichere Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation type="unfinished">%1 (Lade...) - Bildbetrachter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation type="unfinished">%1 (Fehler beim Laden) - Bildbetrachter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation type="unfinished">%1 (%2x%3) - Bildbetrachter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished">Bildbetrachter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished">Miniaturen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished">Bildbetrachter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished">&Über</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation type="unfinished">Ö&ffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translatorcomment>Shortcuts werden automatisch übersetzt</translatorcomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation type="unfinished">&Speichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation type="unfinished">Speichern &unter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished">Sch&ließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished">Ver&größern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished">Ver&kleinern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished">In die &Zwischenablage einfügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation type="unfinished">Nächste Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation type="unfinished">Vorige Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished">Originalgröße</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished">Passen&d</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation type="unfinished">Im &Uhrzeigersinn drehen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation type="unfinished">&Gegen den Uhrzeigersinn drehen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation type="unfinished">Vo&rgaben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation type="unfinished">&Drucken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation type="unfinished">Erste Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation type="unfinished">Letzte Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation type="unfinished">&Neues Fenster</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation type="unfinished">&Horizontal spiegeln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation type="unfinished">Bildschirmfoto erstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation type="unfinished">&Gesamter Bildschirm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation type="unfinished">&Vertikal spiegeln</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished">&Aus Zwischenablage einfügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation type="unfinished">&Diaschau</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation type="unfinished">&Löschen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished">Zeige Miniaturen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translatorcomment>Übersetzung von 'file' weggelassen, da redundant.</translatorcomment>
|
||||
<translation type="unfinished">Eigenschaften</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished">&Datei</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished">&Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation type="unfinished">Gehe zu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished">&Ansicht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished">&Bearbeiten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished">Werkzeugleiste</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation type="unfinished">Vorgaben</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished">Symboldesign:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished">Normale Hintergrundfarbe:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished">Vollbild-Hintergrundfarbe:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished">Diaschau Bildwechsel (Sekunden):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished">Allgemein</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation type="unfinished">Bildschirmfoto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished">Erstelle ein Bildschirmfoto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation type="unfinished">Bereich</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation type="unfinished">Genzer Bildschirm</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation type="unfinished">Nur aktuelles Fenster</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation type="unfinished">Einschließlich Mauszeiger</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"> Sekunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation type="unfinished">Verzögerung:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation type="unfinished">Einschließlich Fenstertitel und Rahmen</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
4
src/translations/lximage-qt_el.desktop
Normal file
4
src/translations/lximage-qt_el.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[el]=LXImage
|
||||
GenericName[el]=Προβολέας εικόνων
|
||||
Comment[el]=Ο προβολέας εικόνων του LXQt
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="es">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Capturar la pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[ARCHIVO1, ARCHIVO2, …]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>Acerca de</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage: un visor de imágenes sencillo y rápido
|
||||
|
||||
Copyright © 2013
|
||||
Proyecto LXDE: http://lxde.org/
|
||||
|
||||
Autores:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Abrir un archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Imágenes (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Guardar el archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (cargando…) – Visor de imágenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (falló la carga) – Visor de imágenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2 × %3) – Visor de imágenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visor de imágenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visor de imágenes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>&Acerca de</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>&Abrir un archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Guardar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>G&uardar como…</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Cerrar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>&Ampliar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation>&Reducir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+−</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Copiar al portapapeles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Archivo siguiente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">→</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Archivo anterior</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">←</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Tamaño original</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>A&justar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>&Girar a la derecha</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>G&irar a la izquierda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>P&referencias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>&Imprimir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Primer archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Inicio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Último archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>Fin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>Ventana &nueva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Voltear &horizontalmente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Capturar la pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>Pa&ntalla completa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Voltear &verticalmente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>&Pegar del portapapeles</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>Pa&se de diapositivas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>&Eliminar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Supr</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Archivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>Ay&uda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Ir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Ver</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Editar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="vanished">Barra de herramientas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Preferencias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">Por hacer: Añadir opciones de configuración aquí</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">Pestaña 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">Pestaña 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Captura de pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Capturar la pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Región</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Toda la pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Solo la ventana actual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Incluir el puntero del ratón</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> segundos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Retardo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Incluir el marco y el título de la ventana</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
4
src/translations/lximage-qt_fr.desktop
Normal file
4
src/translations/lximage-qt_fr.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translation
|
||||
Name[fr]=LXImage
|
||||
GenericName[fr]=Visionneuse d'images
|
||||
Comment[fr]=Visionneuse d'images de LXQt
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="gl">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Obter unha captura de pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[FICHEIRO1, FICHEIRO2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - un visor de imaxes rápido e sinxelo
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Autores:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Abrir ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Ficheiros de imaxe (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Gardar o ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (Cargando...) - visor de imaxes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (Fallou a carga) - visor de imaxes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - visor de imaxes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visor de imaxes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visor de imaxes</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>&Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>&Abrir ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Gardar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Gardar &como</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Pechar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>A&chegar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished">A&fastar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Copiar ao portapapeis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Ficheiro seguinte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">Dereita</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Ficheiro anterior</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">Esquerda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Tamaño orixinal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>A&xustar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>Xirar en sentido &horario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Xirar en sentido &antihorario</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>P&referencias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>Im&primir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Primeiro ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Cartafol persoal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Último ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>Fin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>&Nova xanela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Inverter na & horizontal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Captura de pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>Pantalla c&ompleta</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Inverter na &vertical</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>&Pegar do portapapeis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>&Diaporama</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>&Eliminar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Supr</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Axuda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Ir a</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Ver</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Editar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="obsolete">Barra de ferramentas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Preferencias</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">Por facer: Engadir aquí as opcións de configuración</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">Lapela 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">Lapela 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Captura de pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Obter unha captura de pantalla</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Área</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Pantalla completa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Só a xanela actual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Incluír o punteiro do rato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> segundos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Demora:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Incluír o marco e o título da xanela</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="hr">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Napravi sliku zaslona</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[DATOTEKA1, DATOTEKA2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>O programu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - jednostavni i brzi preglednik slika
|
||||
|
||||
Autorska prava (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Autori:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Otvori datoteku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Datoteke slika (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Spremi datoteku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (Učitavam...) - Preglednik slika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (neuspjelo učitavanje) - Pregledmik slika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - Preglednik slika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Preglednik slika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Preglednik slika</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>&O programu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>&Otvori datoteku</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Spremi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Spremi &kao</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Zatvori</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Slijedeća datoteka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">Desno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Prethodna datoteka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">Lijevo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Izvorna veličina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>&Rotiraj u smjeru kazaljke na satu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Rotiraj &obrnuto od smjera kazaljke na satu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>O&sobitosti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>&Ispis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Prva datoteka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Osobna mapa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Zadnja datoteka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>Kraj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>&Novi prozor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Obrni &vodoravno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Uhvati sliku zaslona</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>C&ijeli zaslon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Obrni &okomito</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>&Klizni prikaz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>&Izbriši</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Datoteka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Pomoć</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Idi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Pogled</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Uredi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="obsolete">alatna traka</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Osobitosti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">TODO: Dodaj konfiguracijske opcije ovdje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">Kartica 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">Kartica 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Snimka zaslona</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Napravi snimku zaslona</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Regija</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Cijeli zaslon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Samo trenutni prozor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>uključi pokazivač miša</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> sekundi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Odgoda:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Uključi naslov prozora i okvir</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
6
src/translations/lximage-qt_hu.desktop
Normal file
6
src/translations/lximage-qt_hu.desktop
Normal file
@ -0,0 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Name[hu]=LXQt képnéző
|
||||
GenericName[hu]=Képmegjelenítő
|
||||
Comment[hu]=Az LXQt képnézegetője
|
||||
|
||||
#TRANSLATIONS_DIR=translations
|
@ -1,440 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="id">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Ambil cuplikan layar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[BERKAS1, BERKAS2, ...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>Tentang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - suatu penampil gambar yang sederhana dan cepat
|
||||
|
||||
Hak cipta (C) 2013
|
||||
Projek LXDE: http://lxde.org/
|
||||
|
||||
Penulis:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Buka Berkas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Berkas gambar (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Simpan Berkas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (Memuat...) - Penampil Gambar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (Gagal Dimuat) - Penampil Gambar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - Penampil Gambar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Penampil Gambar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Penampil Gambar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>Tent&ang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>&Buka Berkas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Simpan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Simpan Seb&agai</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Tutup</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>Per&besar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished">Per&kecil</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Salin ke Papan Klip</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Berkas Selanjutnya</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">Kanan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Berkas Sebelumnya</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">Kiri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Ukuran Asli</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>&Pas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>Puta&r Searah Jarum Jam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Putar Ber&lawanan Jarum Jam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>P&referensi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>&Cetak</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Berkas Pertama</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translatorcomment>asumsi: nama tombol</translatorcomment>
|
||||
<translation>Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Berkas Terakhir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translatorcomment>asumsi: nama tombol</translatorcomment>
|
||||
<translation>End</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>Je&ndela Baru</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Balikkan Arah &Horisontal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Ambil Cuplikan Layar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>Layar Pen&uh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Balikkan Arah &Vertikal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>Tem&pel dari Papan Klip</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>Pertunjukan &Salindia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>&Hapus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Berkas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>B&antuan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Pergi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Lihat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Sunting</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="obsolete">Bilah Alat</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Preferensi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">TODO: Tambahkan opsi konfigurasi di sini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">Tab 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">Tab 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Cuplikan layar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Ambil cuplikan layar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Wilayah</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Seluruh layar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Hanya jendela saat ini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Sertakan kursor tetikus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> detik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Tundaan:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Sertakan rangka dan judul jendela</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,408 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="is">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,417 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="it" sourcelanguage="it">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Cattura una schermata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[File1, File2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>A proposito</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translatorcomment>need update...</translatorcomment>
|
||||
<translation type="unfinished">LXImage - un visualizzatore immagini semplice e veloce
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Autor:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Apri file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>File immagini (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Salva file</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (Caricando...) - Visualizzatore immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (Errore in caricamento) - Visualizzatore immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - Visualizzatore Immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visualizzatore immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation>Miniature</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visualizzatore immagini</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>A &proposito</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>&Apri</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translatorcomment>Shortcuts werden automatisch übersetzt</translatorcomment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Salva</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Salva &come</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Chiudi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>&Ingrandisci</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation>&Rimpicciolisci</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Copia negli appunti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Prossimo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Precedente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation>Pagina giù</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation>Pagina sù</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished">&Dimensioni originiali</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>&Adatta alla finestra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>Gira a &destra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Gira a &sinistra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>&Preferenze</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>&Stampa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Primo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Ultimo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>Fine</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>&Nuova finestra</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Rispecchia &horizzontalmente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Cattura schermata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>&Schermo intero</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Rispecchia &verticalmente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>&Incolla da appunti</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>&Presentazione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>&Cestina</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished">&Mostra barra miniature</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translatorcomment>Übersetzung von 'file' weggelassen, da redundant.</translatorcomment>
|
||||
<translation>Proprietà</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&File</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Aiuto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Vai</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Visualizza</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Modifica</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation>Barra degli strumenti</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Preferenze</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation>Tema icone:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation>Colore sfondo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation>Colore sfondo schermo intero:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation>Ritardo presentazione (secondi):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation>Generali</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Schermata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Catturta schermata</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Regione</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Schermo intero</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Finestra attuale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Includi cursore</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> secondi</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Ritardo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Includi cornice finestra</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="ja">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>スクリーンショットを撮る</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[ファイル1, ファイル2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>このアプリケーションについて</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - シンプルで高速な画像ビューワ
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
作者:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>ファイルを開く</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>画像ファイル (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>ファイルの保存</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (読み込み中...) - 画像ビューワ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (読み込みに失敗) - 画像ビューワ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - 画像ビューワ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>画像ビューワ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>画像ビューワ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>このアプリケーションについて(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>ファイルを開く(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>保存(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>名前を付けて保存(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>閉じる(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>拡大(&I)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation>縮小(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>クリップボードへコピー(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>次のファイル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">右</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>前のファイル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">左</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>原寸大</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>フィット(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>時計方向に回転(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>反時計方向に回転(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>設定(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>印刷(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>最初のファイル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>最後のファイル</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>End</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>新規ウィンドウ(&N)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>水平方向に反転(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>スクリーンショットを撮る</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>全画面(&U)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>垂直方向に反転(&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>クリップボードからペースト(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>スライドショー(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>削除(&D)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>ファイル(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>ヘルプ(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>移動</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>表示(&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>編集(&E)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="vanished">ツールバー</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">TODO: Add configuration options here</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">タブ 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">タブ 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>スクリーンショット</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>スクリーンショットを撮る</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>領域</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>画面全体</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>現在のウィンドウのみ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>マウスカーソルを含む</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> 秒</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>遅延:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>ウィンドウのタイトルと枠を含む</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
4
src/translations/lximage-qt_lt.desktop
Normal file
4
src/translations/lximage-qt_lt.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[lt]=LXImage
|
||||
GenericName[lt]=Paveikslų žiūryklė
|
||||
Comment[lt]=LXQt paveikslų žiūryklė
|
@ -1,408 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="pa">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
5
src/translations/lximage-qt_pl.desktop
Normal file
5
src/translations/lximage-qt_pl.desktop
Normal file
@ -0,0 +1,5 @@
|
||||
[Desktop Entry]
|
||||
GenericName[pl]=Przeglądarka obrazów
|
||||
Comment[pl]=Przeglądarka obrazów LXQt
|
||||
|
||||
#TRANSLATIONS_DIR=translations
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="pl">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Wykonaj zrzut ekranu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[PLIK1, PLIK2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>O programie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - prosta i szybka przeglądarka obrazów
|
||||
|
||||
Prawa autorskie (C) 2013
|
||||
Projekt LXDE: http://lxde.org/
|
||||
|
||||
Autorzy:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Otwórz plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Pliki obrazów (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Zapisz plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (Wczytywanie...) - Przeglądarka obrazów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (Błąd wczytywania) - Przeglądarka obrazów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - Przeglądarka obrazów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Przeglądarka obrazów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Przeglądarka obrazów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>&O programie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>O&twórz plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Zapisz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Z&apisz jako</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Zamknij</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>Po&większ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished">Po&mniejsz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Kopiuj do schowka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Następny plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">W prawo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Poprzedni plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">W lewo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Rozmiar oryginalny</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>Dopa&sowanie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>Obróć &zgodnie z ruchem wskazówek zegara</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Ob&róć przeciwnie do ruchu wskazówek zegara</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>Pre&ferencje</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>&Drukuj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Pierwszy plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Początek</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Ostatni plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>Koniec</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>&Nowe okno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Od&bij w poziomie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Przechwyć zrzut ekranu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>&Pełny ekran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Odbi&j w pionie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>&Wklej ze schowka</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>Pokaz s&lajdów</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>&Usuń</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Usuń</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Plik</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>Pomo&c</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Przejdź</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Widok</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Edycja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="obsolete">Pasek narzędzi</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Ustawienia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">Do zrobienia: Dodać tutaj opcje konfiguracyjne</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">Karta 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">Karta 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Zrzut ekranu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Wykonaj zrzut ekranu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Obszar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Cały ekran</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Tylko bieżące okno</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Dołącz kursor myszy</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> sekund</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Opóźnienie:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Dołącz tytuł okna i obramowanie</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,4 +1,4 @@
|
||||
#Translations
|
||||
Name[pt]=LXImage-Qt
|
||||
GenericName[pt]=Visualizador de imagens
|
||||
Comment[pt]=O visualizador de imagens do LxQt
|
||||
Comment[pt]=O visualizador de imagens do LXQt
|
||||
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.0" language="pt">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Obter captura de ecrã</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[Ficheiro1, ficheiro2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - um visualizador de imagens simples e rápido
|
||||
|
||||
Direitos de autor (C) 2013-2015
|
||||
Projeto LXDE: http://lxde.org/
|
||||
|
||||
Autor:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Abrir ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Ficheiros de imagem (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Gravar ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (carregamento...) - Visualizador de imagens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (falha ao carregar) - Visualizador de imagens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - Visualizador de imagens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visualizador de imagens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation>Miniaturas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visualizador de imagens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>&Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>A&brir ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Gravar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Gravar &como</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>Fe&char</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>Ampl&iar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation>Redu&zir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Copiar para a área de transferência</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Próximo ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation>Direita</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Ficheiro anterior</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation>Esquerda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation>PageDown</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation>PageUp</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Tamanho original</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>Aj&ustar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>&Rodar à direita</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Rodar à &esquerda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>P&referências</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>Im&primir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation>Ctrl+P</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Primeiro ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Último ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>End</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>&Nova janela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Inversão &horizontal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Captura de ecrã</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>Ecrã co&mpleto</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Inversão &vertical</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>Colar da área de tran&sferência</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>Apre&sentação</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>E&liminar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation>Mostrar miniaturas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation>Propriedades do ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Ficheiro</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>Aj&uda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Ir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Ver</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Editar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation>Barra de ferramentas</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="obsolete">Barra de ferramentas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Preferências</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation>Tema de ícones:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation>Cor de fundo normal:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation>Cor de fundo em ecrã completo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation>Intervalo da apresentação (segundos):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation>Geral</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation>Tarefas: Adicionar opções de configuração</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation>Separador 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation>Separador 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Captura de ecrã</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Obter captura de ecrã</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Região</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Todo o ecrã</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Apenas janela atual</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Incluir cursor do rato</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation>segundos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Atraso:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Incluir título e moldura da janela</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,439 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="pt_BR">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Capturar uma imagem da tela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[FILE1, FILE2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>Sobre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - é um simples e rápido visualizador de imagens
|
||||
|
||||
Copyright (C) 2013
|
||||
Projeto LXDE: http://lxde.org/
|
||||
|
||||
Autores:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Abrir Arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Arquivos de Images (1%)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Salvar Arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (Carregando...) - Visualização da Imagem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (Falha ao Carregar) - Visualização da Imagem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - Visualização da Imagem</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visualizador de Imagens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Visualizador de Imagens</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>So&bre</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>Abrir &Arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Salvar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Sal&var Como</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>Fe&char</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>Ampl&iar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation>Redu&zir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Copiar para a Área de Transferência</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Próximo Arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">Direita</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Arquivo Anterior</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">Esquerda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Tamanho Original</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>Ajustar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>&Rotacionar em sentido horário</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Rota&cionar em sentido anti-horário</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>P&referências</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>Im&primir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Primeiro arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Inicio</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Último arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>Fim</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>&Nova Janela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Espelhar horizontalmente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Capturar Tela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>&Tela Cheia</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Espelhar &Verticalmente</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translatorcomment>Has a problem, no similar caracter for shortcut.</translatorcomment>
|
||||
<translation>Colar da Área de Transferência</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>Apresentação de Slides</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>&Excluir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Remover</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Arquivo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Ajuda</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Ir</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>&Visualizar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Editar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="vanished">Barra de Ferramentas</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Preferências</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">FAZER: Adicionar opções de configurações aqui</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">Aba 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">Aba 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Captura de tela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Capturar a tela</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Região</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Tela Inteira</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Somente a janela ativa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Incluir o cursor do mouse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> segundos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Atraso:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Incluir título da janela e moldura</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
4
src/translations/lximage-qt_ru.desktop
Normal file
4
src/translations/lximage-qt_ru.desktop
Normal file
@ -0,0 +1,4 @@
|
||||
#Translations
|
||||
Name[ru]=LXImage
|
||||
GenericName[ru]=Просмотрщик изображений
|
||||
Comment[ru]=Просмотрщик изображений LXQt
|
@ -1,408 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="ru">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,497 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<context>
|
||||
<name>../data/lxinput.desktop.in.h:1</name>
|
||||
<message>
|
||||
<source>Keyboard and Mouse</source>
|
||||
<translation type="obsolete">Tangentbord och mus</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.desktop.in.h:2</name>
|
||||
<message>
|
||||
<source>Configure keyboard, mouse, and other input devices</source>
|
||||
<translation type="obsolete">Inställningar för tangentbord, mus och andra inmatningsenheter</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:1</name>
|
||||
<message>
|
||||
<source>Input Device Preferences</source>
|
||||
<translation type="obsolete">Egenskaper för inmatningsenhet</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:10</name>
|
||||
<message>
|
||||
<source>Mouse</source>
|
||||
<translation type="obsolete">Mus</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:11</name>
|
||||
<message>
|
||||
<source>Delay before each key starts repeating</source>
|
||||
<translation type="obsolete">Tid innan varje tangent repeteras</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:12</name>
|
||||
<message>
|
||||
<source>Repeat delay:</source>
|
||||
<translation type="obsolete">Tid innan upprepning:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:13</name>
|
||||
<message>
|
||||
<source>Interval between each key repeat</source>
|
||||
<translation type="obsolete">Intervall mellan upprening av tangenter</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:14</name>
|
||||
<message>
|
||||
<source>Long</source>
|
||||
<translation type="obsolete">Lång</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:15</name>
|
||||
<message>
|
||||
<source>Short</source>
|
||||
<translation type="obsolete">Kort</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:16</name>
|
||||
<message>
|
||||
<source>Repeat interval:</source>
|
||||
<translation type="obsolete">Tid mellan upprepningar:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:17</name>
|
||||
<message>
|
||||
<source>Type in the following box to test your keyboard settings</source>
|
||||
<translation type="obsolete">För att pröva dina inställningar kan du skriva i följande ruta</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:18</name>
|
||||
<message>
|
||||
<source><b>Character Repeat</b></source>
|
||||
<translation type="obsolete"><b>Teckenupprepning</b></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:19</name>
|
||||
<message>
|
||||
<source>Beep when there is an error of keyboard input</source>
|
||||
<translation type="obsolete">Avge ett pip när ett fel uppstår vid tangentbordsinmatning</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:2</name>
|
||||
<message>
|
||||
<source>Sensitivity:</source>
|
||||
<translation type="obsolete">Känslighet:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:20</name>
|
||||
<message>
|
||||
<source><b>Keyboard layout</b></source>
|
||||
<translation type="obsolete"><b>Tangentbordsupplägg</b></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:21</name>
|
||||
<message>
|
||||
<source>Keyboard</source>
|
||||
<translation type="obsolete">Tangentbord</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:22</name>
|
||||
<message>
|
||||
<source>Touch Pad</source>
|
||||
<translation type="obsolete">Pekplatta</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:3</name>
|
||||
<message>
|
||||
<source>High</source>
|
||||
<translation type="obsolete">Hög</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:4</name>
|
||||
<message>
|
||||
<source>Low</source>
|
||||
<translation type="obsolete">Låg</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:5</name>
|
||||
<message>
|
||||
<source>Fast</source>
|
||||
<translation type="obsolete">Snabb</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:6</name>
|
||||
<message>
|
||||
<source>Slow</source>
|
||||
<translation type="obsolete">Långsam</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:7</name>
|
||||
<message>
|
||||
<source>Acceleration:</source>
|
||||
<translation type="obsolete">Acceleration:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:8</name>
|
||||
<message>
|
||||
<source><b>Motion</b></source>
|
||||
<translation type="obsolete"><b>Förflyttning</b></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>../data/lxinput.ui.h:9</name>
|
||||
<message>
|
||||
<source>Left handed (Swap left and right mouse buttons)</source>
|
||||
<translation type="obsolete">Vänsterhänt (byt funktioner för vänster och höger musknapp)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Image files (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Save &As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl++</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+-</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Next File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Previous File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>P&references</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>First File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Last File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&New Window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>F&ull Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>F11</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Slide Show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Go</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<source>Preferences</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<source>Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Region</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Whole screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Current window only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Delay:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Include window title and frame</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,408 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="uk">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Зробити знімок</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[ФАЙЛ1, ФАЙЛ2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>Про програму</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - простий та швидкий переглядач зображень
|
||||
|
||||
Copyright (C) 2013
|
||||
Проект LXDE: http://lxde.org/
|
||||
|
||||
Автори:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>Відкрити файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>Файли зображень (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>Зберегти файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (Завантаження...) - Переглядач зображень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (Невдача завантаження) - Переглядач зображень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - Переглядач зображень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Переглядач зображень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>Переглядач зображень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>&Про програму</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>&Відкрити файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>&Зберегти</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>Зберегти &як</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>&Закрити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>З&більшити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished">&Зменшити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>&Копіювати до буфера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>Наступний файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">Праворуч</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>Попередній Файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">Ліворуч</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>Оригінальний розмір</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>&Підігнати</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>&Обернути за год. стрілкою</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>Обернути проти &год. стрілки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>На&лаштування</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>&Друк</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>Перший файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>Home</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>Останній файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>End</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>&Нове вікно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>Віддзеркалити &горизонтально</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>Зробити знімок екрана</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>П&овний екран</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>Віддзеркалити &вертикально</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>&Вставити з буфера обміну</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>&Показ слайдів</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>В&илучити</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>&Файл</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>&Довідка</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>Перейти</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>П&ерегляд</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>&Редагування</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="obsolete">Панель інструментів</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>Налаштування</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">Далі буде...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">Вкладка 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">Вкладка 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>Знімок екрану</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>Зробити знімок</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>Регіон</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>Екран цілком</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>Лише поточне вікно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>Включаючи вказівник миші</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> секунд</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>Затримка:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>Включаючи заголовок вікна та кадр</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,438 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_CN">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>抓取屏幕截图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[文件1, 文件2,...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>关于</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - 一款简单快速的图像查看器
|
||||
|
||||
版权所有 (C) 2013
|
||||
LXDE 项目:http://lxde.org/
|
||||
|
||||
作者:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>打开文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>图像文件 (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>保存文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (正在加载...) - 图像查看器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (加载失败) - 图像查看器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - 图像查看器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>图像查看器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>图像查看器</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>关于(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>打开文件(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>保存(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>另存为(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>关闭(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>放大(&I)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation>缩小(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>复制到剪贴板(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>下一个文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">右</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>上一个文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">左</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>原始尺寸</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>适合(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>顺时针旋转(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>逆时针旋转(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>偏好设置(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>打印(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>第一个文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation>起始</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>最后一个文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation>结束</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>新建窗口(&N)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>水平翻转(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>抓取屏幕截图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>全屏(&U)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>垂直翻转(&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>从剪贴板粘贴(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>幻灯片放映(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>删除(&D)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>删除</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>文件(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>帮助(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>转到</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>查看(&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>编辑(&E)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="vanished">工具栏</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>偏好设置</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TODO: Add configuration options here</source>
|
||||
<translation type="vanished">TODO: Add configuration options here</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 1</source>
|
||||
<translation type="vanished">标签 1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tab 2</source>
|
||||
<translation type="vanished">标签 2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>屏幕截图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>抓取屏幕截图</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>区域</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>整个屏幕</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>仅当前窗口</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>包括鼠标光标</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation> 秒</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>延迟:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>包括窗口标题和框架</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -1,426 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="zh_TW">
|
||||
<context>
|
||||
<name>LxImage::Application</name>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="112"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>拍攝螢幕快照</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../application.cpp" line="113"/>
|
||||
<source>[FILE1, FILE2,...]</source>
|
||||
<translation>[檔案1、檔案2...]</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LxImage::MainWindow</name>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="144"/>
|
||||
<source>About</source>
|
||||
<translation>關於</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="145"/>
|
||||
<source>LXImage - a simple and fast image viewer
|
||||
|
||||
Copyright (C) 2013
|
||||
LXDE Project: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
Hong Jen Yee (PCMan) <pcman.tw@gmail.com></source>
|
||||
<translation>LXImage - 簡單快速的圖片檢視程式r
|
||||
|
||||
版權所有 (C) 2013
|
||||
LXDE 專案: http://lxde.org/
|
||||
|
||||
Authors:
|
||||
洪任諭 (PCMan) <pcman.tw@gmail.com></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="238"/>
|
||||
<source>Open File</source>
|
||||
<translation>開啟檔案</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="239"/>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Image files (%1)</source>
|
||||
<translation>影像檔案 (%1)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="260"/>
|
||||
<source>Save File</source>
|
||||
<translation>儲存檔案</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="516"/>
|
||||
<source>%1 (Loading...) - Image Viewer</source>
|
||||
<translation>%1 (正在載入...) - 圖片檢視程式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="521"/>
|
||||
<source>%1 (Failed to Load) - Image Viewer</source>
|
||||
<translation>%1 (載入失敗) - 圖片檢視程式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="525"/>
|
||||
<source>%1 (%2x%3) - Image Viewer</source>
|
||||
<translation>%1 (%2x%3) - 圖片檢視程式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="535"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>圖片檢視程式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="710"/>
|
||||
<source>Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MainWindow</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="412"/>
|
||||
<source>Image Viewer</source>
|
||||
<translation>圖片檢視程式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="413"/>
|
||||
<source>&About</source>
|
||||
<translation>關於(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="414"/>
|
||||
<source>&Open File</source>
|
||||
<translation>開啟檔案(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="415"/>
|
||||
<source>Ctrl+O</source>
|
||||
<translation>Ctrl+O</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="416"/>
|
||||
<source>&Save</source>
|
||||
<translation>儲存(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="417"/>
|
||||
<source>Ctrl+S</source>
|
||||
<translation>Ctrl+S</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="418"/>
|
||||
<source>Save &As</source>
|
||||
<translation>另存新檔(&A)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="419"/>
|
||||
<source>Ctrl+A</source>
|
||||
<translation>Ctrl+A</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="420"/>
|
||||
<source>&Close</source>
|
||||
<translation>關閉(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="421"/>
|
||||
<source>Ctrl+W</source>
|
||||
<translation>Ctrl+W</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="422"/>
|
||||
<source>Zoom &In</source>
|
||||
<translation>拉近(&I)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="423"/>
|
||||
<source>Ctrl++</source>
|
||||
<translation>Ctrl++</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="424"/>
|
||||
<source>Zoom &Out</source>
|
||||
<translation type="unfinished">拉遠(&O)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="425"/>
|
||||
<source>Ctrl+-</source>
|
||||
<translation>Ctrl+-</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="426"/>
|
||||
<source>&Copy to Clipboard</source>
|
||||
<translation>複製到剪貼簿(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="427"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="429"/>
|
||||
<source>Next File</source>
|
||||
<translation>下一個檔案</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Right</source>
|
||||
<translation type="vanished">右</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="432"/>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="434"/>
|
||||
<source>Previous File</source>
|
||||
<translation>前一個檔案</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Left</source>
|
||||
<translation type="vanished">左</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="431"/>
|
||||
<source>PgDown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="436"/>
|
||||
<source>PgUp</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="437"/>
|
||||
<source>Original Size</source>
|
||||
<translation>原尺寸</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="438"/>
|
||||
<source>&Fit</source>
|
||||
<translation>適合視窗大小(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="439"/>
|
||||
<source>&Rotate Clockwise</source>
|
||||
<translation>順時鐘旋轉(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="440"/>
|
||||
<source>Rotate &Counterclockwise</source>
|
||||
<translation>逆時鐘旋轉(&C)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="441"/>
|
||||
<source>P&references</source>
|
||||
<translation>偏好設定(&R)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="442"/>
|
||||
<source>&Print</source>
|
||||
<translation>列印(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="443"/>
|
||||
<source>Ctrl+P</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="444"/>
|
||||
<source>First File</source>
|
||||
<translation>第一個檔案</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="445"/>
|
||||
<source>Home</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="446"/>
|
||||
<source>Last File</source>
|
||||
<translation>最後一個檔案</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="447"/>
|
||||
<source>End</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="448"/>
|
||||
<source>&New Window</source>
|
||||
<translation>新視窗(&N)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="449"/>
|
||||
<source>Ctrl+N</source>
|
||||
<translation>Ctrl+N</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="450"/>
|
||||
<source>Flip &Horizontally</source>
|
||||
<translation>水平翻轉(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="451"/>
|
||||
<source>Capture Screenshot</source>
|
||||
<translation>拍攝螢幕快照</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="452"/>
|
||||
<source>F&ull Screen</source>
|
||||
<translation>全螢幕(&U)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="453"/>
|
||||
<source>F11</source>
|
||||
<translation>F11</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="454"/>
|
||||
<source>Flip &Vertically</source>
|
||||
<translation>垂直翻轉(&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="455"/>
|
||||
<source>&Paste from Clipboard</source>
|
||||
<translation>從剪貼簿貼上(&P)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="456"/>
|
||||
<source>&Slide Show</source>
|
||||
<translation>投影片播放(&S)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="457"/>
|
||||
<source>&Delete</source>
|
||||
<translation>刪除(&D)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="458"/>
|
||||
<source>Del</source>
|
||||
<translation>Del</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="459"/>
|
||||
<source>Show Thumbnails</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="460"/>
|
||||
<source>File Properties</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="461"/>
|
||||
<source>&File</source>
|
||||
<translation>檔案(&F)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="462"/>
|
||||
<source>&Help</source>
|
||||
<translation>說明(&H)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="463"/>
|
||||
<source>Go</source>
|
||||
<translation>前往</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="464"/>
|
||||
<source>&View</source>
|
||||
<translation>檢視(&V)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="465"/>
|
||||
<source>&Edit</source>
|
||||
<translation>編輯(&E)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_mainwindow.h" line="466"/>
|
||||
<source>Toolbar</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>toolBar</source>
|
||||
<translation type="obsolete">工具列</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PreferencesDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="125"/>
|
||||
<source>Preferences</source>
|
||||
<translation>偏好設定</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="126"/>
|
||||
<source>Icon theme:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="127"/>
|
||||
<source>Normal background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="128"/>
|
||||
<source>Fullscreen background color:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="131"/>
|
||||
<source>Slide show interval (seconds):</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_preferencesdialog.h" line="132"/>
|
||||
<source>General</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ScreenshotDialog</name>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="123"/>
|
||||
<source>Screenshot</source>
|
||||
<translation>螢幕快照</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="124"/>
|
||||
<source>Take a screenshot</source>
|
||||
<translation>拍攝螢幕快照</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="125"/>
|
||||
<source>Region</source>
|
||||
<translation>區域</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="126"/>
|
||||
<source>Whole screen</source>
|
||||
<translation>整個螢幕</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="127"/>
|
||||
<source>Current window only</source>
|
||||
<translation>只有目前的視窗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="128"/>
|
||||
<source>Include mouse cursor</source>
|
||||
<translation>包含滑鼠游標</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="129"/>
|
||||
<source> seconds</source>
|
||||
<translation>秒</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="130"/>
|
||||
<source>Delay:</source>
|
||||
<translation>延遲:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../build/src/ui_screenshotdialog.h" line="131"/>
|
||||
<source>Include window title and frame</source>
|
||||
<translation>包含視窗標題和邊框</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
56
src/upload/imageshackprovider.cpp
Normal file
56
src/upload/imageshackprovider.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include <QHttpMultiPart>
|
||||
#include <QHttpPart>
|
||||
#include <QNetworkRequest>
|
||||
#include <QUrl>
|
||||
#include <QUrlQuery>
|
||||
|
||||
#include "imageshackprovider.h"
|
||||
#include "imageshackupload.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
const QString gUploadURL = "https://api.imageshack.com/v2/images";
|
||||
const QByteArray gAPIKey = "4DINORVXbcbda9ac64b424a0e6b37caed4cf3b8b";
|
||||
|
||||
Upload *ImageShackProvider::upload(QIODevice *device)
|
||||
{
|
||||
// Construct the URL that will be used for the upload
|
||||
QUrlQuery query;
|
||||
query.addQueryItem("api_key", gAPIKey);
|
||||
QUrl url(gUploadURL);
|
||||
url.setQuery(query);
|
||||
|
||||
// The first (and only) part is the file upload
|
||||
QHttpPart filePart;
|
||||
filePart.setBodyDevice(device);
|
||||
filePart.setHeader(
|
||||
QNetworkRequest::ContentDispositionHeader,
|
||||
"form-data; name=\"file\"; filename=\"upload.jpg\""
|
||||
);
|
||||
|
||||
// Create the multipart and append the file part
|
||||
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType, device);
|
||||
multiPart->append(filePart);
|
||||
|
||||
// Start the request and wrap it in an ImageShackUpload
|
||||
return new ImageShackUpload(sManager.post(QNetworkRequest(url), multiPart));
|
||||
}
|
43
src/upload/imageshackprovider.h
Normal file
43
src/upload/imageshackprovider.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_IMAGESHACKPROVIDER_H
|
||||
#define LXIMAGE_IMAGESHACKPROVIDER_H
|
||||
|
||||
#include "provider.h"
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class Upload;
|
||||
|
||||
/**
|
||||
* @brief Create uploads to ImageShack's API
|
||||
*/
|
||||
class ImageShackProvider : public Provider
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
virtual Upload *upload(QIODevice *device);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_IMAGESHACKPROVIDER_H
|
55
src/upload/imageshackupload.cpp
Normal file
55
src/upload/imageshackupload.cpp
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include <QJsonArray>
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
#include <QJsonValue>
|
||||
|
||||
#include "imageshackupload.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
ImageShackUpload::ImageShackUpload(QNetworkReply *reply)
|
||||
: Upload(reply)
|
||||
{
|
||||
}
|
||||
|
||||
void ImageShackUpload::processReply(const QByteArray &data)
|
||||
{
|
||||
// Obtain the root object from the JSON response
|
||||
QJsonObject object(QJsonDocument::fromJson(data).object());
|
||||
|
||||
// Attempt to retrieve the link
|
||||
bool success = object.value("success").toBool();
|
||||
QString link = object.value("result").toObject().value("images").toArray()
|
||||
.at(0).toObject().value("direct_link").toString();
|
||||
|
||||
// Check for success
|
||||
if (!success || link.isNull()) {
|
||||
QString errorMessage = object.value("error").toObject()
|
||||
.value("error_message").toString();
|
||||
if (errorMessage.isNull()) {
|
||||
errorMessage = tr("unknown error response");
|
||||
}
|
||||
Q_EMIT error(errorMessage);
|
||||
} else {
|
||||
Q_EMIT completed("https://" + link);
|
||||
}
|
||||
}
|
45
src/upload/imageshackupload.h
Normal file
45
src/upload/imageshackupload.h
Normal file
@ -0,0 +1,45 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_IMAGESHACKUPLOAD_H
|
||||
#define LXIMAGE_IMAGESHACKUPLOAD_H
|
||||
|
||||
#include "upload.h"
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
/**
|
||||
* @brief Upload to ImageShack's API
|
||||
*/
|
||||
class ImageShackUpload : public Upload
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
explicit ImageShackUpload(QNetworkReply *reply);
|
||||
|
||||
protected:
|
||||
|
||||
virtual void processReply(const QByteArray &data);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_IMAGESHACKUPLOAD_H
|
42
src/upload/imgurprovider.cpp
Normal file
42
src/upload/imgurprovider.cpp
Normal file
@ -0,0 +1,42 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include <QNetworkReply>
|
||||
#include <QNetworkRequest>
|
||||
#include <QUrl>
|
||||
|
||||
#include "imgurprovider.h"
|
||||
#include "imgurupload.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
const QUrl gUploadURL("https://api.imgur.com/3/upload.json");
|
||||
const QByteArray gAuthHeader = "Client-ID 63ff047cd8bcf9e";
|
||||
const QByteArray gTypeHeader = "application/x-www-form-urlencoded";
|
||||
|
||||
Upload *ImgurProvider::upload(QIODevice *device)
|
||||
{
|
||||
// Create the request with the correct HTTP headers
|
||||
QNetworkRequest request(gUploadURL);
|
||||
request.setHeader(QNetworkRequest::ContentTypeHeader, gTypeHeader);
|
||||
request.setRawHeader("Authorization", gAuthHeader);
|
||||
|
||||
// Start the request and wrap it in an ImgurUpload
|
||||
return new ImgurUpload(sManager.post(request, device));
|
||||
}
|
41
src/upload/imgurprovider.h
Normal file
41
src/upload/imgurprovider.h
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_IMGURPROVIDER_H
|
||||
#define LXIMAGE_IMGURPROVIDER_H
|
||||
|
||||
#include "provider.h"
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
/**
|
||||
* @brief Create uploads to Imgur's API
|
||||
*/
|
||||
class ImgurProvider : public Provider
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
virtual Upload *upload(QIODevice *device);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_IMGURPROVIDER_H
|
52
src/upload/imgurupload.cpp
Normal file
52
src/upload/imgurupload.cpp
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include <QJsonDocument>
|
||||
#include <QJsonObject>
|
||||
|
||||
#include "imgurupload.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
ImgurUpload::ImgurUpload(QNetworkReply *reply)
|
||||
: Upload(reply)
|
||||
{
|
||||
}
|
||||
|
||||
void ImgurUpload::processReply(const QByteArray &data)
|
||||
{
|
||||
// Obtain the root object from the JSON response
|
||||
QJsonObject object(QJsonDocument::fromJson(data).object());
|
||||
|
||||
// Attempt to retrieve the value for "success" and "data->link"
|
||||
bool success = object.value("success").toBool();
|
||||
QJsonObject dataObject = object.value("data").toObject();
|
||||
QString dataLink = dataObject.value("link").toString();
|
||||
QString dataError = dataObject.value("error").toString();
|
||||
|
||||
// Ensure that "success" is true & link is valid, otherwise throw an error
|
||||
if (!success || dataLink.isNull()) {
|
||||
if (dataError.isNull()) {
|
||||
dataError = tr("unknown error response");
|
||||
}
|
||||
Q_EMIT error(dataError);
|
||||
} else {
|
||||
Q_EMIT completed(dataLink);
|
||||
}
|
||||
}
|
43
src/upload/imgurupload.h
Normal file
43
src/upload/imgurupload.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_IMGURUPLOAD_H
|
||||
#define LXIMAGE_IMGURUPLOAD_H
|
||||
|
||||
#include "upload.h"
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
/**
|
||||
* @brief Process uploads to Imgur's API
|
||||
*/
|
||||
class ImgurUpload : public Upload
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
explicit ImgurUpload(QNetworkReply *reply);
|
||||
|
||||
virtual void processReply(const QByteArray &data);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_IMGURUPLOAD_H
|
24
src/upload/provider.cpp
Normal file
24
src/upload/provider.cpp
Normal file
@ -0,0 +1,24 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "provider.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
QNetworkAccessManager Provider::sManager;
|
54
src/upload/provider.h
Normal file
54
src/upload/provider.h
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_PROVIDER_H
|
||||
#define LXIMAGE_PROVIDER_H
|
||||
|
||||
#include <QIODevice>
|
||||
#include <QNetworkAccessManager>
|
||||
#include <QObject>
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class Upload;
|
||||
|
||||
/**
|
||||
* @brief Base class for providers
|
||||
*/
|
||||
class Provider : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Upload the provided data
|
||||
* @param device reader for uploaded data from
|
||||
* @return newly created upload
|
||||
*/
|
||||
virtual Upload *upload(QIODevice *device) = 0;
|
||||
|
||||
protected:
|
||||
|
||||
static QNetworkAccessManager sManager;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_PROVIDER_H
|
57
src/upload/upload.cpp
Normal file
57
src/upload/upload.cpp
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include "upload.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
Upload::Upload(QNetworkReply *reply)
|
||||
: mReply(reply)
|
||||
{
|
||||
// Reparent the reply to this object
|
||||
mReply->setParent(this);
|
||||
|
||||
// Emit progress() when upload progress changes
|
||||
connect(mReply, &QNetworkReply::uploadProgress, [this](qint64 bytesSent, qint64 bytesTotal) {
|
||||
Q_EMIT progress(static_cast<int>(
|
||||
static_cast<double>(bytesSent) / static_cast<double>(bytesTotal) * 100.0
|
||||
));
|
||||
});
|
||||
|
||||
// Emit error() when a socket error occurs
|
||||
connect(mReply, static_cast<void(QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error), [this](QNetworkReply::NetworkError) {
|
||||
Q_EMIT error(mReply->errorString());
|
||||
});
|
||||
|
||||
// Process the request when it finishes
|
||||
connect(mReply, &QNetworkReply::finished, [this]() {
|
||||
if (mReply->error() == QNetworkReply::NoError) {
|
||||
processReply(mReply->readAll());
|
||||
}
|
||||
});
|
||||
|
||||
// Emit finished() when completed() or error() is emitted
|
||||
connect(this, &Upload::completed, this, &Upload::finished);
|
||||
connect(this, &Upload::error, this, &Upload::finished);
|
||||
}
|
||||
|
||||
void Upload::abort()
|
||||
{
|
||||
mReply->abort();
|
||||
}
|
96
src/upload/upload.h
Normal file
96
src/upload/upload.h
Normal file
@ -0,0 +1,96 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_UPLOAD_H
|
||||
#define LXIMAGE_UPLOAD_H
|
||||
|
||||
#include <QNetworkReply>
|
||||
#include <QObject>
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
/**
|
||||
* @brief Base class for uploads
|
||||
*/
|
||||
class Upload : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Create an upload
|
||||
* @param reply network reply
|
||||
*
|
||||
* The upload will assume ownership of the network reply and connect to its
|
||||
* signals, emitting uploadError() when something goes wrong.
|
||||
*/
|
||||
explicit Upload(QNetworkReply *reply);
|
||||
|
||||
/**
|
||||
* @brief Abort the upload
|
||||
*/
|
||||
void abort();
|
||||
|
||||
Q_SIGNALS:
|
||||
|
||||
/**
|
||||
* @brief Indicate that upload progress has changed
|
||||
* @param value new progress value
|
||||
*/
|
||||
void progress(int value);
|
||||
|
||||
/**
|
||||
* @brief Indicate that the upload completed
|
||||
* @param url new URL of the upload
|
||||
*/
|
||||
void completed(const QString &url);
|
||||
|
||||
/**
|
||||
* @brief Indicate that an error occurred
|
||||
* @param message description of the error
|
||||
*/
|
||||
void error(const QString &message);
|
||||
|
||||
/**
|
||||
* @brief Indicate that the upload finished
|
||||
*
|
||||
* This signal is emitted after either completed() or error().
|
||||
*/
|
||||
void finished();
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* @brief Process the data from the reply
|
||||
* @param data content from the reply
|
||||
*
|
||||
* This method should parse the data and either emit the completed() or
|
||||
* error() signal.
|
||||
*/
|
||||
virtual void processReply(const QByteArray &data) = 0;
|
||||
|
||||
private:
|
||||
|
||||
QNetworkReply *mReply;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_UPLOAD_H
|
141
src/upload/uploaddialog.cpp
Normal file
141
src/upload/uploaddialog.cpp
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#include <QComboBox>
|
||||
#include <QLineEdit>
|
||||
#include <QMessageBox>
|
||||
#include <QProgressBar>
|
||||
#include <QPushButton>
|
||||
#include <QVariant>
|
||||
|
||||
#include "imageshackprovider.h"
|
||||
#include "imgurprovider.h"
|
||||
#include "provider.h"
|
||||
#include "upload.h"
|
||||
#include "uploaddialog.h"
|
||||
|
||||
using namespace LxImage;
|
||||
|
||||
ImgurProvider gImgurProvider;
|
||||
ImageShackProvider gImageShackProvider;
|
||||
|
||||
UploadDialog::UploadDialog(QWidget *parent, const QString &filename)
|
||||
: QDialog(parent),
|
||||
mState(SelectProvider),
|
||||
mFile(filename),
|
||||
mUpload(nullptr)
|
||||
{
|
||||
ui.setupUi(this);
|
||||
|
||||
// Populate the list of providers
|
||||
ui.providerComboBox->addItem(tr("Imgur"), QVariant::fromValue(&gImgurProvider));
|
||||
ui.providerComboBox->addItem(tr("ImageShack"), QVariant::fromValue(&gImageShackProvider));
|
||||
|
||||
updateUi();
|
||||
}
|
||||
|
||||
void UploadDialog::on_actionButton_clicked()
|
||||
{
|
||||
switch (mState) {
|
||||
case SelectProvider:
|
||||
start();
|
||||
break;
|
||||
case UploadInProgress:
|
||||
mUpload->abort();
|
||||
break;
|
||||
case Completed:
|
||||
accept();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UploadDialog::start()
|
||||
{
|
||||
// Attempt to open the file
|
||||
if (!mFile.open(QIODevice::ReadOnly)) {
|
||||
showError(mFile.errorString());
|
||||
return;
|
||||
}
|
||||
|
||||
// Retrieve the selected provider
|
||||
Provider *provider = ui.providerComboBox->itemData(
|
||||
ui.providerComboBox->currentIndex()
|
||||
).value<Provider*>();
|
||||
|
||||
// Create the upload
|
||||
mUpload = provider->upload(&mFile);
|
||||
|
||||
// Update the progress bar as the upload progresses
|
||||
connect(mUpload, &Upload::progress, ui.progressBar, &QProgressBar::setValue);
|
||||
|
||||
// If the request completes, show the link to the user
|
||||
connect(mUpload, &Upload::completed, [this](const QString &url) {
|
||||
ui.linkLineEdit->setText(url);
|
||||
|
||||
mState = Completed;
|
||||
updateUi();
|
||||
});
|
||||
|
||||
// If the request fails, show an error
|
||||
connect(mUpload, &Upload::error, [this](const QString &message) {
|
||||
showError(message);
|
||||
});
|
||||
|
||||
// Destroy the upload when it completes
|
||||
connect(mUpload, &Upload::finished, [this]() {
|
||||
mFile.close();
|
||||
mUpload->deleteLater();
|
||||
mUpload = nullptr;
|
||||
});
|
||||
|
||||
mState = UploadInProgress;
|
||||
updateUi();
|
||||
}
|
||||
|
||||
void UploadDialog::updateUi()
|
||||
{
|
||||
// Show the appropriate control given the current state
|
||||
ui.providerComboBox->setVisible(mState == SelectProvider);
|
||||
ui.progressBar->setVisible(mState == UploadInProgress);
|
||||
ui.linkLineEdit->setVisible(mState == Completed);
|
||||
|
||||
// Reset the progress bar to zero
|
||||
ui.progressBar->setValue(0);
|
||||
|
||||
// Set the correct button text
|
||||
switch (mState) {
|
||||
case SelectProvider:
|
||||
ui.actionButton->setText(tr("Start"));
|
||||
break;
|
||||
case UploadInProgress:
|
||||
ui.actionButton->setText(tr("Stop"));
|
||||
break;
|
||||
case Completed:
|
||||
ui.actionButton->setText(tr("Close"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void UploadDialog::showError(const QString &message)
|
||||
{
|
||||
QMessageBox::critical(this, tr("Error"), message);
|
||||
|
||||
mState = SelectProvider;
|
||||
updateUi();
|
||||
}
|
73
src/upload/uploaddialog.h
Normal file
73
src/upload/uploaddialog.h
Normal file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
LxImage - image viewer and screenshot tool for lxqt
|
||||
Copyright (C) 2017 Nathan Osman <nathan@quickmediasolutions.com>
|
||||
|
||||
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 program; if not, write to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
#ifndef LXIMAGE_UPLOADDIALOG_H
|
||||
#define LXIMAGE_UPLOADDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QFile>
|
||||
|
||||
#include "ui_uploaddialog.h"
|
||||
|
||||
namespace LxImage {
|
||||
|
||||
class Upload;
|
||||
|
||||
/**
|
||||
* @brief Dialog for uploading an image
|
||||
*/
|
||||
class UploadDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
/**
|
||||
* @brief Create a dialog for uploading the specified file
|
||||
* @param parent widget parent
|
||||
* @param filename absolute path to file
|
||||
*/
|
||||
UploadDialog(QWidget *parent, const QString &filename);
|
||||
|
||||
private Q_SLOTS:
|
||||
|
||||
void on_actionButton_clicked();
|
||||
|
||||
private:
|
||||
|
||||
void start();
|
||||
void updateUi();
|
||||
void showError(const QString &message);
|
||||
|
||||
Ui::UploadDialog ui;
|
||||
|
||||
enum {
|
||||
SelectProvider,
|
||||
UploadInProgress,
|
||||
Completed,
|
||||
} mState;
|
||||
|
||||
QFile mFile;
|
||||
|
||||
Upload *mUpload;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // LXIMAGE_UPLOADDIALOG_H
|
79
src/upload/uploaddialog.ui
Normal file
79
src/upload/uploaddialog.ui
Normal file
@ -0,0 +1,79 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>UploadDialog</class>
|
||||
<widget class="QDialog" name="UploadDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>300</width>
|
||||
<height>100</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Upload</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QComboBox" name="providerComboBox"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QProgressBar" name="progressBar">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="linkLineEdit">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<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>
|
||||
<widget class="QPushButton" name="actionButton">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
x
Reference in New Issue
Block a user