diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 378eac2..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build diff --git a/CMakeLists.txt b/CMakeLists.txt index 67e657f..8ac2873 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ project(lximage-qt) include(GNUInstallDirs) # additional cmake files -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") +list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") set(MAJOR_VERSION 0) set(MINOR_VERSION 4) diff --git a/README b/README deleted file mode 100644 index 138184f..0000000 --- a/README +++ /dev/null @@ -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 diff --git a/README.md b/README.md new file mode 100644 index 0000000..e830d19 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# lximage-qt + +The Qt port of LXImage, a simple and fast image viewer. diff --git a/data/lximage-qt-screenshot.desktop.in b/data/lximage-qt-screenshot.desktop.in index ce1f980..bb3f781 100644 --- a/data/lximage-qt-screenshot.desktop.in +++ b/data/lximage-qt-screenshot.desktop.in @@ -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 diff --git a/data/lximage-qt.desktop.in b/data/lximage-qt.desktop.in index 7ce3ece..9fa1f27 100644 --- a/data/lximage-qt.desktop.in +++ b/data/lximage-qt.desktop.in @@ -7,5 +7,5 @@ Icon=lximage-qt Exec=lximage-qt StartupNotify=true Terminal=false -Categories=Graphics;Utility;Core;Qt;Viewer;RasterGraphics;2DGraphics;Photography; +Categories=Graphics;Core;Qt;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; diff --git a/debian/changelog b/debian/changelog index 8c64ec0..0b4497a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,19 @@ +lximage-qt (0.4.0+20150828-1) unstable; urgency=medium + + * Cherry-picked upstream version 0.4.0+20150828. + + -- Alf Gaida Fri, 04 Sep 2015 20:17:43 +0200 + lximage-qt (0.4.0-1) unstable; urgency=low * Initial release (Closes: #795802) + * Fixed control with cme fix + * Fixed docs + * Added gpb.conf + * Added source/local-options + * Added source/options + * Added .gitignore + * Added upstream signing-key and use it in watch file + -- Alf Gaida Fri, 04 Sep 2015 19:41:32 +0200 diff --git a/lximage-qt.kdev4 b/lximage-qt.kdev4 deleted file mode 100644 index 704b26e..0000000 --- a/lximage-qt.kdev4 +++ /dev/null @@ -1,4 +0,0 @@ -[Project] -Name=lximage-qt -Manager=KDevCMakeManager -VersionControl= diff --git a/src/application.cpp b/src/application.cpp index 772036f..9f9af07 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -19,6 +19,7 @@ #include "application.h" +#include #include #include #include @@ -57,10 +58,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, SIGNAL(aboutToQuit()), SLOT(onAboutToQuit())); if(settings_.useFallbackIconTheme()) QIcon::setThemeName(settings_.fallbackIconTheme()); @@ -72,81 +74,38 @@ 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(); - 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 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); - 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); + Q_FOREACH(QString arg, args) { + QFileInfo info(arg); + paths.push_back(info.absoluteFilePath()); } + bool keepRunning = false; if(isPrimaryInstance) { settings_.load(); keepRunning = true; - if(screenshotTool) { screenshot(); } @@ -164,8 +123,6 @@ bool Application::parseCommandLineArgs(int argc, char** argv) { else iface.call("newWindow", paths); } - // cleanup - g_strfreev(file_names); return keepRunning; } @@ -179,12 +136,22 @@ 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->resize(settings_.windowWidth(), settings_.windowHeight()); + if(settings_.windowMaximized()) + window->setWindowState(window->windowState() | Qt::WindowMaximized); + window->show(); } } @@ -206,3 +173,8 @@ void Application::editPreferences() { PreferencesDialog* dlg = new PreferencesDialog(); dlg->show(); } + +void Application::onAboutToQuit() { + qDebug("aboutToQuit"); + settings_.save(); +} diff --git a/src/application.h b/src/application.h index 4ca9dbb..f1af02a 100644 --- a/src/application.h +++ b/src/application.h @@ -34,18 +34,18 @@ 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"); + qDebug("add window"); } void removeWindow() { // call this when you destroy a toplevel window - qDebug("remove"); + qDebug("remove window"); --windowCount_; if(0 == windowCount_) quit(); @@ -61,6 +61,9 @@ public Q_SLOTS: void editPreferences(); void screenshot(); +protected Q_SLOTS: + void onAboutToQuit(); + private: Fm::LibFmQt libFm; bool isPrimaryInstance; diff --git a/src/imageview.h b/src/imageview.h index c894e23..49fd6f3 100644 --- a/src/imageview.h +++ b/src/imageview.h @@ -64,7 +64,7 @@ public: void setAutoZoomFit(bool value) { autoZoomFit_ = value; } - + protected: virtual void wheelEvent(QWheelEvent* event); virtual void mouseDoubleClickEvent(QMouseEvent* event); diff --git a/src/loadimagejob.cpp b/src/loadimagejob.cpp index 498817a..67a733b 100644 --- a/src/loadimagejob.cpp +++ b/src/loadimagejob.cpp @@ -48,7 +48,7 @@ bool LoadImageJob::run() { GInputStream* inputStream = G_INPUT_STREAM(fileStream); while(!g_cancellable_is_cancelled(cancellable_)) { char buffer[4096]; - gssize readSize = g_input_stream_read(inputStream, + gssize readSize = g_input_stream_read(inputStream, buffer, 4096, cancellable_, &error_); if(readSize == -1 || readSize == 0) // error or EOF @@ -57,7 +57,7 @@ bool LoadImageJob::run() { imageBuffer.buffer().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()); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9290cc1..03049bc 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -66,24 +66,27 @@ MainWindow::MainWindow(): Application* app = static_cast(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())); - + 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))); + // 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(); @@ -255,7 +258,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)); @@ -273,7 +276,13 @@ void MainWindow::on_actionOpenFile_triggered() { } void MainWindow::on_actionNewWindow_triggered() { + Application* app = static_cast(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(); } @@ -779,6 +788,33 @@ void MainWindow::changeEvent(QEvent* event) { QWidget::changeEvent(event); } +void MainWindow::resizeEvent(QResizeEvent *event) { + QMainWindow::resizeEvent(event); + Settings& settings = static_cast(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(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)); } diff --git a/src/mainwindow.h b/src/mainwindow.h index cff6fe9..35b77f9 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -50,12 +50,12 @@ class MainWindow : public QMainWindow { public: friend class LoadImageJob; friend class SaveImageJob; - + MainWindow(); virtual ~MainWindow(); void openImageFile(QString fileName); - + QImage image() const { return image_; } @@ -76,10 +76,12 @@ protected: QString openFileName(); QString saveFileName(QString defaultName = QString()); virtual void changeEvent(QEvent * event); + virtual void resizeEvent(QResizeEvent *event); + virtual void closeEvent(QCloseEvent *event); void onImageLoaded(LoadImageJob* job); void onImageSaved(SaveImageJob* job); - + virtual bool eventFilter(QObject* watched, QEvent* event); private Q_SLOTS: void on_actionAbout_triggered(); diff --git a/src/org.lxde.LxImage.Application.xml b/src/org.lxde.LxImage.Application.xml index f6ce2bc..a74cf09 100644 --- a/src/org.lxde.LxImage.Application.xml +++ b/src/org.lxde.LxImage.Application.xml @@ -7,7 +7,7 @@ - + diff --git a/src/preferencesdialog.cpp b/src/preferencesdialog.cpp index 0cdb6b6..73fb8b3 100644 --- a/src/preferencesdialog.cpp +++ b/src/preferencesdialog.cpp @@ -33,7 +33,7 @@ PreferencesDialog::PreferencesDialog(QWidget* parent): Application* app = static_cast(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(); @@ -124,7 +124,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) diff --git a/src/preferencesdialog.h b/src/preferencesdialog.h index 76b6464..5c510ad 100644 --- a/src/preferencesdialog.h +++ b/src/preferencesdialog.h @@ -33,7 +33,7 @@ class PreferencesDialog : public QDialog { public: explicit PreferencesDialog(QWidget* parent = 0); virtual ~PreferencesDialog(); - + virtual void accept(); virtual void done(int r); diff --git a/src/preferencesdialog.ui b/src/preferencesdialog.ui index 7d07ce5..8c86d1c 100644 --- a/src/preferencesdialog.ui +++ b/src/preferencesdialog.ui @@ -73,7 +73,11 @@ - + + + 1 + + diff --git a/src/saveimagejob.cpp b/src/saveimagejob.cpp index a6ccbbe..d3ded31 100644 --- a/src/saveimagejob.cpp +++ b/src/saveimagejob.cpp @@ -40,7 +40,7 @@ SaveImageJob::~SaveImageJob() { // 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_); + GFileOutputStream* fileStream = g_file_replace(gfile, NULL, false, G_FILE_CREATE_NONE, cancellable_, &error_); g_object_unref(gfile); if(fileStream) { // if the file stream is successfually opened diff --git a/src/saveimagejob.h b/src/saveimagejob.h index 3ab154e..d21047d 100644 --- a/src/saveimagejob.h +++ b/src/saveimagejob.h @@ -29,7 +29,7 @@ namespace LxImage { class MainWindow; - + class SaveImageJob : public Job { public: @@ -46,7 +46,7 @@ public: protected: virtual bool run(); virtual void finish(); - + private: ~SaveImageJob(); // prevent direct deletion diff --git a/src/screenshotdialog.cpp b/src/screenshotdialog.cpp index 97ffa2d..afb82ec 100644 --- a/src/screenshotdialog.cpp +++ b/src/screenshotdialog.cpp @@ -47,7 +47,7 @@ ScreenshotDialog::ScreenshotDialog(QWidget* parent, Qt::WindowFlags f): QDialog( ScreenshotDialog::~ScreenshotDialog() { Application* app = static_cast(qApp); - app->removeWindow(); + app->removeWindow(); } void ScreenshotDialog::done(int r) { diff --git a/src/settings.cpp b/src/settings.cpp index dbe587e..b8a29e3 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -31,7 +31,12 @@ Settings::Settings(): showSidePane_(false), fullScreenBgColor_(0, 0, 0), fallbackIconTheme_("oxygen"), - slideShowInterval_(5) { + slideShowInterval_(5), + fixedWindowWidth_(640), + fixedWindowHeight_(480), + lastWindowWidth_(640), + lastWindowHeight_(480), + lastWindowMaximized_(false) { } Settings::~Settings() { @@ -45,15 +50,36 @@ bool Settings::load() { // showThumbnails_; // showSidePane_; int 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; } diff --git a/src/settings.h b/src/settings.h index 754f1dc..54d5644 100644 --- a/src/settings.h +++ b/src/settings.h @@ -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_; }; } diff --git a/src/translations/lximage-qt-screenshot_el.desktop b/src/translations/lximage-qt-screenshot_el.desktop new file mode 100644 index 0000000..8677db6 --- /dev/null +++ b/src/translations/lximage-qt-screenshot_el.desktop @@ -0,0 +1,4 @@ +#Translations +Name[el]=Στιγμιότυπο οθόνης +GenericName[el]=Στιγμιότυπο οθόνης +Comment[el]=Λήψη ενός στιγμιότυπου της οθόνης diff --git a/src/translations/lximage-qt-screenshot_hu.desktop b/src/translations/lximage-qt-screenshot_hu.desktop new file mode 100644 index 0000000..142b1fc --- /dev/null +++ b/src/translations/lximage-qt-screenshot_hu.desktop @@ -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 diff --git a/src/translations/lximage-qt_de.ts b/src/translations/lximage-qt_de.ts index 5ea2abf..3dce942 100644 --- a/src/translations/lximage-qt_de.ts +++ b/src/translations/lximage-qt_de.ts @@ -1,28 +1,28 @@ - + LxImage::Application - + Take a screenshot - Erstelle ein Bildschirmfoto + Bildschirmfoto erstellen - + [FILE1, FILE2,...] - [Datei1, Datei2,...] + [Datei1, Datei2,...] LxImage::MainWindow - + About - Über + Über - + LXImage - a simple and fast image viewer Copyright (C) 2013 @@ -30,7 +30,7 @@ LXDE Project: http://lxde.org/ Authors: Hong Jen Yee (PCMan) <pcman.tw@gmail.com> - LXImage - ein einfacher und schneller Bildbetrachter + LXImage - ein einfacher und schneller Bildbetrachter Copyright (C) 2013 LXDE Project: http://lxde.org/ @@ -39,45 +39,45 @@ Autor: Hong Jen Yee (PCMan) <pcman.tw@gmail.com> - + Open File - Öffne Datei + Datei öffnen - - + + Image files (%1) - Bilddateien (%1) + Bilddateien (%1) - + Save File - Speichere Datei + Datei speichern - + %1 (Loading...) - Image Viewer - %1 (Lade...) - Bildbetrachter + %1 (Lade...) - Bildbetrachter - + %1 (Failed to Load) - Image Viewer - %1 (Fehler beim Laden) - Bildbetrachter + %1 (Fehler beim Laden) - Bildbetrachter - + %1 (%2x%3) - Image Viewer - %1 (%2x%3) - Bildbetrachter + %1 (%2x%3) - Bildbetrachter - + Image Viewer - Bildbetrachter + Bildbetrachter - + Thumbnails - Miniaturen + Miniaturen @@ -85,28 +85,29 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Image Viewer - Bildbetrachter + Bildbetrachter &About - &Über + &Über &Open File - Ö&ffnen + This should be "&Open" (without "File") imho. We are in the File menu. + Ö&ffnen Ctrl+O - Shortcuts werden automatisch übersetzt + Shortcuts are translated automatically. No need to manually translate it to "Strg+O". &Save - &Speichern + &Speichern @@ -116,7 +117,7 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Save &As - Speichern &unter + Speichern &unter @@ -126,7 +127,7 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> &Close - Sch&ließen + Sch&ließen @@ -136,7 +137,7 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Zoom &In - Ver&größern + Ver&größern @@ -146,7 +147,7 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Zoom &Out - Ver&kleinern + Ver&kleinern @@ -156,19 +157,19 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> &Copy to Clipboard - In die &Zwischenablage einfügen + In die &Zwischenablage einfügen Next File - Nächste Datei + Nächste Datei Previous File - Vorige Datei + Vorige Datei @@ -183,32 +184,32 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Original Size - Originalgröße + Originalgröße &Fit - Passen&d + Passen&d &Rotate Clockwise - Im &Uhrzeigersinn drehen + Im &Uhrzeigersinn drehen Rotate &Counterclockwise - &Gegen den Uhrzeigersinn drehen + &Gegen den Uhrzeigersinn drehen P&references - Vo&rgaben + Einste&llungen &Print - &Drucken + &Drucken @@ -218,7 +219,7 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> First File - Erste Datei + Erste Datei @@ -228,7 +229,7 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Last File - Letzte Datei + Letzte Datei @@ -238,7 +239,7 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> &New Window - &Neues Fenster + &Neues Fenster @@ -248,17 +249,17 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Flip &Horizontally - &Horizontal spiegeln + &Horizontal spiegeln Capture Screenshot - Bildschirmfoto erstellen + Bildschirmfoto erstellen F&ull Screen - &Gesamter Bildschirm + &Gesamter Bildschirm @@ -268,22 +269,22 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Flip &Vertically - &Vertikal spiegeln + &Vertikal spiegeln &Paste from Clipboard - &Aus Zwischenablage einfügen + &Aus Zwischenablage einfügen &Slide Show - &Diaschau + &Diaschau &Delete - &Löschen + &Löschen @@ -293,76 +294,76 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Show Thumbnails - Zeige Miniaturen + Miniaturen anzeigen File Properties - Übersetzung von 'file' weggelassen, da redundant. - Eigenschaften + Translation of 'file' skipped, it is redundant (this is the file menu). + Eigenschaften &File - &Datei + &Datei &Help - &Hilfe + &Hilfe Go - Gehe zu + Gehe zu &View - &Ansicht + &Ansicht &Edit - &Bearbeiten + &Bearbeiten Toolbar - Werkzeugleiste + Werkzeugleiste PreferencesDialog - + Preferences - Vorgaben + Einstellungen - + Icon theme: - Symboldesign: + Symboldesign: - + Normal background color: - Normale Hintergrundfarbe: + Normale Hintergrundfarbe: - + Fullscreen background color: - Vollbild-Hintergrundfarbe: + Vollbild-Hintergrundfarbe: - + Slide show interval (seconds): - Diaschau Bildwechsel (Sekunden): + Diaschau Bildwechsel (Sekunden): - + General - Allgemein + Allgemein @@ -370,47 +371,47 @@ Hong Jen Yee (PCMan) <pcman.tw@gmail.com> Screenshot - Bildschirmfoto + Bildschirmfoto Take a screenshot - Erstelle ein Bildschirmfoto + Bildschirmfoto erstellen Region - Bereich + Bereich Whole screen - Genzer Bildschirm + Gesamter Bildschirm Current window only - Nur aktuelles Fenster + Nur aktuelles Fenster Include mouse cursor - Einschließlich Mauszeiger + Einschließlich Mauszeiger seconds - Sekunden + Sekunden Delay: - Verzögerung: + Verzögerung: Include window title and frame - Einschließlich Fenstertitel und Rahmen + Einschließlich Fenstertitel und Rahmen diff --git a/src/translations/lximage-qt_el.desktop b/src/translations/lximage-qt_el.desktop new file mode 100644 index 0000000..7be5e16 --- /dev/null +++ b/src/translations/lximage-qt_el.desktop @@ -0,0 +1,4 @@ +#Translations +Name[el]=LXImage +GenericName[el]=Προβολέας εικόνων +Comment[el]=Ο προβολέας εικόνων του LXQt diff --git a/src/translations/lximage-qt_el.ts b/src/translations/lximage-qt_el.ts new file mode 100644 index 0000000..1fede9c --- /dev/null +++ b/src/translations/lximage-qt_el.ts @@ -0,0 +1,414 @@ + + + + + LxImage::Application + + + Take a screenshot + Λήψη ενός στιγμιότυπου + + + + [FILE1, FILE2,...] + [ΑΡΧΕΙΟ1, ΑΡΧΕΙΟ2,...] + + + + LxImage::MainWindow + + + About + Σχετικά + + + + LXImage - a simple and fast image viewer + +Copyright (C) 2013 +LXDE Project: http://lxde.org/ + +Authors: +Hong Jen Yee (PCMan) <pcman.tw@gmail.com> + LXImage - ένας απλός και γρήγορος προβολέας εικόνων + +Πνευματικά δικαιώματα (C) 2013 +Έργο LXDE: http://lxde.org/ + +Συγγραφείς: +Hong Jen Yee (PCMan) <pcman.tw@gmail.com> + + + + Open File + Άνοιγμα αρχείου + + + + + Image files (%1) + Αρχεία εικόνων (%1) + + + + Save File + Αποθήκευση αρχείου + + + + %1 (Loading...) - Image Viewer + %1 (Φορτώνεται....) - Προβολέας εικόνων + + + + %1 (Failed to Load) - Image Viewer + %1 (Αποτυχία φόρτωσης) - Προβολέας εικόνων + + + + %1 (%2x%3) - Image Viewer + %1 (%2x%3) - Προβολέας εικόνων + + + + Image Viewer + Προβολέας εικόνων + + + + Thumbnails + Εικόνες επισκόπησης + + + + MainWindow + + + Image Viewer + Προβολέας εικόνων + + + + &About + &Σχετικά + + + + &Open File + &Άνοιγμα αρχείου + + + + Ctrl+O + Ctrl+O + + + + &Save + Απο&θήκευση + + + + Ctrl+S + Ctrl+S + + + + Save &As + Αποθήκευση &ως + + + + Ctrl+A + Ctrl+A + + + + &Close + &Κλείσιμο + + + + Ctrl+W + Ctrl+W + + + + Zoom &In + Μεγέ&θυνση + + + + Ctrl++ + Ctrl++ + + + + Zoom &Out + Σμίκρ&υνση + + + + Ctrl+- + Ctrl+- + + + + &Copy to Clipboard + Αντιγραφή στο πρό&χειρο + + + + + Next File + Επόμενο αρχείο + + + + + Previous File + Προηγούμενο αρχείο + + + + PgDown + PgDown + + + + PgUp + PgUp + + + + Original Size + Αρχικό Μέγεθος + + + + &Fit + &Ταίριασμα + + + + &Rotate Clockwise + Περιστροφή &δεξιόστροφα + + + + Rotate &Counterclockwise + Περιστροφή &αριστερόστροφα + + + + P&references + &Επιλογές + + + + &Print + Εκτύ&πωση + + + + Ctrl+P + Ctrl+P + + + + First File + Πρώτο αρχείο + + + + Home + Αρχική + + + + Last File + Τελευταίο αρχείο + + + + End + Τέλος + + + + &New Window + &Νέο παράθυρο + + + + Ctrl+N + Ctrl+N + + + + Flip &Horizontally + Αναστροφή &οριζόντια + + + + Capture Screenshot + Λήψη στιγμιότυπου + + + + F&ull Screen + Π&λήρης οθόνη + + + + F11 + F11 + + + + Flip &Vertically + Αναστροφή &κατακόρυφα + + + + &Paste from Clipboard + &Επικόλληση από το πρόχειρο + + + + &Slide Show + &Προβολή διαφάνειας + + + + &Delete + &Διαγραφή + + + + Del + Del + + + + Show Thumbnails + Εμφάνιση εικόνων επισκόπησης + + + + File Properties + Ιδιότητες αρχείου + + + + &File + &Αρχείο + + + + &Help + &Βοήθεια + + + + Go + Μετάβαση + + + + &View + &Προβολή + + + + &Edit + &Επεξεργασία + + + + Toolbar + Γραμμή εργαλείων + + + + PreferencesDialog + + + Preferences + Προτιμήσεις + + + + Icon theme: + Θέμα εικονιδίων: + + + + Normal background color: + Τυπικό χρώμα παρασκηνίου: + + + + Fullscreen background color: + Χρώμα παρασκηνίου πλήρους οθόνης: + + + + Slide show interval (seconds): + Χρονική καθυστέρηση προβολής διαφανειών (δευτερόλεπτα): + + + + General + Γενικά + + + + ScreenshotDialog + + + Screenshot + Στιγμιότυπο + + + + Take a screenshot + Λήψη στιγμιότυπου + + + + Region + Περιοχή + + + + Whole screen + Ολόκληρη η οθόνη + + + + Current window only + Μόνον το τρέχον παράθυρο + + + + Include mouse cursor + Συμπερίληψη του δρομέα του ποντικιού + + + + seconds + δευτερόλεπτα + + + + Delay: + Καθυστέρηση: + + + + Include window title and frame + Συμπερίληψη του τίτλου και του πλαισίου του παραθύρου + + + diff --git a/src/translations/lximage-qt_hu.desktop b/src/translations/lximage-qt_hu.desktop new file mode 100644 index 0000000..5bcbe7b --- /dev/null +++ b/src/translations/lximage-qt_hu.desktop @@ -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 diff --git a/src/translations/lximage-qt_hu.ts b/src/translations/lximage-qt_hu.ts new file mode 100644 index 0000000..9543145 --- /dev/null +++ b/src/translations/lximage-qt_hu.ts @@ -0,0 +1,414 @@ + + + + + LxImage::Application + + + Take a screenshot + Képernyőkép + + + + [FILE1, FILE2,...] + + + + + LxImage::MainWindow + + + About + Rólunk + + + + LXImage - a simple and fast image viewer + +Copyright (C) 2013 +LXDE Project: http://lxde.org/ + +Authors: +Hong Jen Yee (PCMan) <pcman.tw@gmail.com> + LXImage - az egyszerű és gyors képnéző + +Copyright (C) 2013 +LXDE Project: http://lxde.org/ + +Authors: +Hong Jen Yee (PCMan) <pcman.tw@gmail.com> + + + + Open File + Fájl megnyitás + + + + + Image files (%1) + Képfájlok (%1) + + + + Save File + Fájl mentés + + + + %1 (Loading...) - Image Viewer + %1 (Betöltés...) - Képnéző + + + + %1 (Failed to Load) - Image Viewer + %1 (Betöltés sikertelen) - Képnéző + + + + %1 (%2x%3) - Image Viewer + %1 (Loading...) - Képnéző + + + + Image Viewer + Képnéző + + + + Thumbnails + Bélyegképek + + + + MainWindow + + + Image Viewer + Képnéző + + + + &About + Ról&am + + + + &Open File + &Fájlnyitás + + + + Ctrl+O + + + + + &Save + &Ment + + + + Ctrl+S + + + + + Save &As + &Másként ment + + + + Ctrl+A + + + + + &Close + &Bezár + + + + Ctrl+W + + + + + Zoom &In + &Nagyít + + + + Ctrl++ + + + + + Zoom &Out + &Kicsinyít + + + + Ctrl+- + + + + + &Copy to Clipboard + &Vágólapra másol + + + + + Next File + Következő fájl + + + + + Previous File + Előző fájl + + + + PgDown + + + + + PgUp + + + + + Original Size + Eredeti méret + + + + &Fit + &Kitölt + + + + &Rotate Clockwise + &Jobbra forgat + + + + Rotate &Counterclockwise + &Balra forgat + + + + P&references + &Beállítások + + + + &Print + &Nyomtat + + + + Ctrl+P + + + + + First File + Első fájl + + + + Home + + + + + Last File + Utolsó fájl + + + + End + Vége + + + + &New Window + &Új ablak + + + + Ctrl+N + + + + + Flip &Horizontally + Vízszintesen átfordít + + + + Capture Screenshot + Képernyókép készítés + + + + F&ull Screen + &Teljes kép + + + + F11 + + + + + Flip &Vertically + &Fejtetőre állít + + + + &Paste from Clipboard + Vágóla&pról beilleszt + + + + &Slide Show + &Diavetítés + + + + &Delete + &Törlés + + + + Del + + + + + Show Thumbnails + Bélyegképek + + + + File Properties + Fájljellemzők + + + + &File + &Fájl + + + + &Help + &Segítség + + + + Go + Ugrás + + + + &View + &Nézet + + + + &Edit + &Szerkeszt + + + + Toolbar + Eszközsáv + + + + PreferencesDialog + + + Preferences + Beállítások + + + + Icon theme: + Ikontéma: + + + + Normal background color: + Normál háttérszín: + + + + Fullscreen background color: + Teljeskép háttérszín: + + + + Slide show interval (seconds): + Diaváltás (másodperc): + + + + General + Általános + + + + ScreenshotDialog + + + Screenshot + Képernyőkép + + + + Take a screenshot + Képernyőfénykép + + + + Region + Terület + + + + Whole screen + Teljes kép + + + + Current window only + Aktuális ablak + + + + Include mouse cursor + Egérkurzor is + + + + seconds + másodperc + + + + Delay: + Késleltetés: + + + + Include window title and frame + Ablakkeret és fejléc is + + +