Hello community,

here is the log from the commit of package boomaga for openSUSE:Factory checked 
in at 2018-04-06 17:47:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/boomaga (Old)
 and      /work/SRC/openSUSE:Factory/.boomaga.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "boomaga"

Fri Apr  6 17:47:46 2018 rev:6 rq:593835 version:1.2.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/boomaga/boomaga.changes  2018-01-09 
14:52:59.788355549 +0100
+++ /work/SRC/openSUSE:Factory/.boomaga.new/boomaga.changes     2018-04-06 
17:47:59.802849885 +0200
@@ -1,0 +2,11 @@
+Thu Apr  5 13:28:14 UTC 2018 - lazy.k...@opensuse.org
+
+- Update to 1.2.0.
+  * Fix: The program shows empty page if page contents is a link to
+    the array.
+  * Fix In some cases, the program chose an incorrect value of the
+    DISPLAY variable.
+  * Fix: More accurate handling of comments in the file.
+  * Updated translations.
+
+-------------------------------------------------------------------

Old:
----
  boomaga-1.1.0.tar.gz

New:
----
  boomaga-1.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ boomaga.spec ++++++
--- /var/tmp/diff_new_pack.NMVZLd/_old  2018-04-06 17:48:00.702817355 +0200
+++ /var/tmp/diff_new_pack.NMVZLd/_new  2018-04-06 17:48:00.702817355 +0200
@@ -17,12 +17,12 @@
 
 
 Name:           boomaga
-Version:        1.1.0
+Version:        1.2.0
 Release:        0
 Summary:        Virtual Printer for Viewing a Document before Printing
-License:        GPL-2.0 and LGPL-2.1+
+License:        GPL-2.0-only AND LGPL-2.1-or-later
 Group:          Productivity/Publishing/Other
-Url:            http://boomaga.github.io/
+URL:            http://boomaga.github.io/
 Source0:        
https://github.com/Boomaga/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
 BuildRequires:  cmake
 # SLE12 needs special BuildRequires.

++++++ boomaga-1.1.0.tar.gz -> boomaga-1.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/CMakeLists.txt 
new/boomaga-1.2.0/CMakeLists.txt
--- old/boomaga-1.1.0/CMakeLists.txt    2017-12-19 15:00:32.000000000 +0100
+++ new/boomaga-1.2.0/CMakeLists.txt    2018-02-14 12:39:53.000000000 +0100
@@ -29,7 +29,7 @@
 project(boomaga)
 
 set(MAJOR_VERSION 1)
-set(MINOR_VERSION 1)
+set(MINOR_VERSION 2)
 set(PATCH_VERSION 0)
 set(FULL_VERSION ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION})
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/cups/envinfo.cpp 
new/boomaga-1.2.0/cups/envinfo.cpp
--- old/boomaga-1.1.0/cups/envinfo.cpp  2017-12-19 15:00:32.000000000 +0100
+++ new/boomaga-1.2.0/cups/envinfo.cpp  2018-02-14 12:39:53.000000000 +0100
@@ -45,7 +45,7 @@
     "lxsession" << \
     "Xfce4-session"
 
-#define ENV_VARS \
+#define READ_ENV_VARS \
     "DISPLAY" << \
     "DBUS_SESSION_BUS_ADDRESS" << \
     "XDG_CACHE_HOME" << \
@@ -54,6 +54,13 @@
     "GTK_RC_FILES" << \
     "GTK2_RC_FILES"
 
+#define WRITE_ENV_VARS \
+    "XDG_CACHE_HOME" << \
+    "KDE_FULL_SESSION" << \
+    "QT_PLUGIN_PATH" << \
+    "GTK_RC_FILES" << \
+    "GTK2_RC_FILES"
+
 
 #ifdef Q_OS_FREEBSD
 /************************************************
@@ -172,7 +179,7 @@
     setEnv("BOOMAGA_PROC_FILE", file.fileName());
 
     QStringList extEnv;
-    extEnv << ENV_VARS;
+    extEnv << READ_ENV_VARS;
 
     foreach (QString name, extEnv)
     {
@@ -267,12 +274,14 @@
     if (!file.open(QFile::WriteOnly | QFile::Truncate))
         return false;
 
-    QHashIterator<QString, QString> it(mData);
-    while (it.hasNext())
+    QStringList extEnv;
+    extEnv << WRITE_ENV_VARS;
+
+    foreach (QString name, extEnv)
     {
-        it.next();
-        file.write(QString("%1=%2\n").arg(it.key(), it.value()).toLocal8Bit());
+        file.write(QString("%1=%2\n").arg(name, mData.value(name, 
"")).toLocal8Bit());
     }
+
     file.close();
 
     return true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/pdfmerger/pdfprocessor.cpp 
new/boomaga-1.2.0/gui/pdfmerger/pdfprocessor.cpp
--- old/boomaga-1.1.0/gui/pdfmerger/pdfprocessor.cpp    2017-12-19 
15:00:32.000000000 +0100
+++ new/boomaga-1.2.0/gui/pdfmerger/pdfprocessor.cpp    2018-02-14 
12:39:53.000000000 +0100
@@ -265,14 +265,24 @@
     if (pageDict.contains("LastModified"))  dict.insert("LastModified",  
pageDict.value("LastModified"));
     if (pageDict.contains("StructParents")) dict.insert("StructParents", 
pageDict.value("StructParents"));
 
-    const PDF::Value &v = pageDict.value("Contents");
+    PDF::Value v = pageDict.value("Contents");
+    PDF::Object content;
     bool ok;
 
     // Page content is Link .....................
-    const PDF::Link &link = v.asLink(&ok);
-    if (ok)
+    while (v.isLink())
+    {
+        const PDF::Link &link = v.asLink(&ok);
+        if (!ok)
+            throw QString("Page %1 %2 has incorrect content 
type.").arg(page.objNum()).arg(page.genNum());
+
+        content = mReader.getObject(link);
+        v = content.value();
+    }
+
+    // Page content is Dict (stream) ............
+    if (v.isDict())
     {
-        const PDF::Object &content = mReader.getObject(link);
         xObj.setStream(content.stream());
         if (content.dict().contains("Filter"))
             dict.insert("Filter", content.dict().value("Filter"));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/pdfparser/pdfobject.cpp 
new/boomaga-1.2.0/gui/pdfparser/pdfobject.cpp
--- old/boomaga-1.1.0/gui/pdfparser/pdfobject.cpp       2017-12-19 
15:00:32.000000000 +0100
+++ new/boomaga-1.2.0/gui/pdfparser/pdfobject.cpp       2018-02-14 
12:39:53.000000000 +0100
@@ -221,7 +221,9 @@
 Object::Object(ObjNum objNum, GenNum genNum, const Value &value):
     mObjNum(objNum),
     mGenNum(genNum),
-    mValue(value)
+    mValue(value),
+    mPos(0),
+    mLen(0)
 {
 }
 
@@ -233,7 +235,9 @@
     mObjNum( other.mObjNum),
     mGenNum( other.mGenNum),
     mValue(  other.mValue),
-    mStream( other.mStream)
+    mStream( other.mStream),
+    mPos(    other.mPos),
+    mLen(    other.mLen)
 {
 }
 
@@ -247,6 +251,8 @@
     mGenNum  = other.mGenNum;
     mValue   = other.mValue;
     mStream  = other.mStream;
+    mPos     = other.mPos;
+    mLen     = other.mLen;
     return *this;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/pdfparser/pdfobject.h 
new/boomaga-1.2.0/gui/pdfparser/pdfobject.h
--- old/boomaga-1.1.0/gui/pdfparser/pdfobject.h 2017-12-19 15:00:32.000000000 
+0100
+++ new/boomaga-1.2.0/gui/pdfparser/pdfobject.h 2018-02-14 12:39:53.000000000 
+0100
@@ -72,6 +72,11 @@
     /// identify a specialized subcategory of the general type.
     QString subType() const;
 
+    bool isValid() const { return !mValue.isUndefined(); }
+
+    quint64 pos() const { return mPos; }
+    quint64 len() const { return mLen; }
+
 private:
     QByteArray streamFlateDecode(const QByteArray &source) const;
 
@@ -79,6 +84,8 @@
     PDF::GenNum mGenNum;
     Value mValue;
     QByteArray mStream;
+    quint64 mPos;
+    quint64 mLen;
 };
 
 } // namespace PDF
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/pdfparser/pdfreader.cpp 
new/boomaga-1.2.0/gui/pdfparser/pdfreader.cpp
--- old/boomaga-1.1.0/gui/pdfparser/pdfreader.cpp       2017-12-19 
15:00:32.000000000 +0100
+++ new/boomaga-1.2.0/gui/pdfparser/pdfreader.cpp       2018-02-14 
12:39:53.000000000 +0100
@@ -59,6 +59,7 @@
     bool compareStr(quint64 pos, const char *str) const;
     bool compareWord(quint64 pos, const char *str) const;
     quint64 skipSpace(quint64 pos) const;
+    quint64 skipComment(quint64 pos) const;
     qint64 skipCRLF(quint64 pos) const;
     qint64 indexOf(const char *str, quint64 from) const;
     qint64 indexOfBack(const char *str, quint64 from) const;
@@ -259,8 +260,28 @@
  ************************************************/
 quint64 ReaderData::skipSpace(quint64 pos) const
 {
-    while (pos < mSize && isspace(mData[pos]))
-        pos++;
+    while (pos < mSize)
+    {
+        while (pos < mSize && isspace(mData[pos]))
+            pos++;
+
+        if (mData[pos] != '%')
+            return pos;
+
+        pos = skipComment(pos);
+    }
+
+    return pos;
+}
+
+
+/************************************************
+ *
+ ************************************************/
+quint64 ReaderData::skipComment(quint64 pos) const
+{
+    while (pos < mSize && mData[pos] != '\n' && mData[pos] != '\r')
+        ++pos;
 
     return pos;
 }
@@ -889,8 +910,7 @@
  ************************************************/
 Reader::~Reader()
 {
-    if (mFile && mData)
-            mFile->unmap(const_cast<uchar*>(reinterpret_cast<const 
uchar*>(mData)));
+    close();
 
     delete mFile;
 }
@@ -954,6 +974,10 @@
             pos += strlen("endstream");
     }
 
+    pos = data.skipSpace(pos);
+    pos += strlen("endobj");
+    res->mPos = start;
+    res->mLen = pos - start;
     return pos;
 }
 
@@ -1147,6 +1171,15 @@
 /************************************************
  *
  ************************************************/
+Object Reader::getObject(const XRefEntry &xrefEntry) const
+{
+    return getObject(xrefEntry.objNum(), xrefEntry.genNum());
+}
+
+
+/************************************************
+ *
+ ************************************************/
 const Value Reader::find(const QString &path) const
 {
     QStringList objects = path.split('/', QString::SkipEmptyParts);
@@ -1178,6 +1211,15 @@
 /************************************************
  *
  ************************************************/
+QByteArray Reader::rawData(quint64 pos, quint64 len) const
+{
+    return QByteArray::fromRawData(mData + pos, len);
+}
+
+
+/************************************************
+ *
+ ************************************************/
 void Reader::open(const QString &fileName, quint64 startPos, quint64 endPos)
 {
     mFile = new QFile(fileName);
@@ -1215,8 +1257,22 @@
 /************************************************
  *
  ************************************************/
+void Reader::close()
+{
+    if (mFile && mData)
+        mFile->unmap(const_cast<uchar*>(reinterpret_cast<const 
uchar*>(mData)));
+    mData = nullptr;
+    mSize = 0;
+}
+
+
+/************************************************
+ *
+ ************************************************/
 void Reader::load()
 {
+    mXRefTable.clear();
+    mTrailerDict.clear();
     ReaderData data(mData, mSize, mTextCodec);
 
     // Check header ...................................
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/pdfparser/pdfreader.h 
new/boomaga-1.2.0/gui/pdfparser/pdfreader.h
--- old/boomaga-1.1.0/gui/pdfparser/pdfreader.h 2017-12-19 15:00:32.000000000 
+0100
+++ new/boomaga-1.2.0/gui/pdfparser/pdfreader.h 2018-02-14 12:39:53.000000000 
+0100
@@ -72,31 +72,41 @@
     /// Constructs a Reader object.
     Reader();
 
-    ///Destroys the object and frees its resources.
+    ///Destroys the object and frees its resources, closing it if necessary.
     virtual ~Reader();
 
     /// Reads PDF document from the existing file, starting at position 
startPos until endPos.
     /// If endPos is 0 (the default), Reader reads all bytes starting at 
position startPos
     /// until the end of the file. If the fileName has no path or a relative 
path, the path
     /// used will be the application's current directory path at the time of 
the open() call.
-    void open(const QString &fileName, quint64 startPos, quint64 endPos);
+    void open(const QString &fileName, quint64 startPos = 0, quint64 endPos = 
0);
 
     /// Reads PDF document from first size bytes of the data.
     /// The bytes are not copied. The Reader will contain the data pointer. 
The caller
     /// guarantees that data will not be deleted or modified as long as this 
Reader exist.
     void open(const char * const data, quint64 size);
 
-    const XRefTable &xRefTable() { return mXRefTable; }
+    /// Closes this reader for reading.
+    void close();
+
+    const XRefTable &xRefTable() const { return mXRefTable; }
     const Dict &trailerDict() const { return mTrailerDict; }
     Dict trailerDict() { return mTrailerDict; }
 
     Object getObject(const Link &link) const;
     Object getObject(uint objNum, quint16 genNum) const;
+    Object getObject(const XRefEntry &xrefEntry) const;
 
     const Value find(const QString &path) const;
 
     quint32 pageCount();
 
+    /// Constructs a QByteArray that uses len bytes from the data,
+    /// starting at position pos. The bytes are not copied.
+    /// The caller guarantees that reader will not be closed as long
+    /// as this QByteArray and any copies of it exist.
+    QByteArray rawData(quint64 pos, quint64 len) const;
+
 protected:
     void   load();
     Value  readValue(quint64 *pos) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/pdfparser/pdfvalue.cpp 
new/boomaga-1.2.0/gui/pdfparser/pdfvalue.cpp
--- old/boomaga-1.1.0/gui/pdfparser/pdfvalue.cpp        2017-12-19 
15:00:32.000000000 +0100
+++ new/boomaga-1.2.0/gui/pdfparser/pdfvalue.cpp        2018-02-14 
12:39:53.000000000 +0100
@@ -477,6 +477,15 @@
 /************************************************
  *
  ************************************************/
+void PDF::Dict::clear()
+{
+    values().clear();
+}
+
+
+/************************************************
+ *
+ ************************************************/
 QMap<QString, Value> Dict::values()
 {
     assert(mType == Type::Dict);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/pdfparser/pdfvalue.h 
new/boomaga-1.2.0/gui/pdfparser/pdfvalue.h
--- old/boomaga-1.1.0/gui/pdfparser/pdfvalue.h  2017-12-19 15:00:32.000000000 
+0100
+++ new/boomaga-1.2.0/gui/pdfparser/pdfvalue.h  2018-02-14 12:39:53.000000000 
+0100
@@ -294,6 +294,9 @@
     {
     };
 
+    /// Removes all items from the dictionary.
+    void clear();
+
     /// Returns the value associated with the key key.
     /// If the dictionary contains no item with key key, the function returns 
defaultValue.
     /// If no defaultValue is specified, the function returns a Value with 
type Undefined.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/translations/boomaga_uk_UA.desktop 
new/boomaga-1.2.0/gui/translations/boomaga_uk_UA.desktop
--- old/boomaga-1.1.0/gui/translations/boomaga_uk_UA.desktop    1970-01-01 
01:00:00.000000000 +0100
+++ new/boomaga-1.2.0/gui/translations/boomaga_uk_UA.desktop    2018-02-14 
12:39:53.000000000 +0100
@@ -0,0 +1,20 @@
+[Desktop Entry]
+Exec=boomaga %U
+Icon=boomaga
+Terminal=false
+Type=Application
+StartupNotify=true
+Categories=Qt;Office;
+MimeType=application/x-boomaga-boo;
+
+Name=Boomaga
+GenericName=Virtual printer
+Comment=Virtual printer for viewing and editing a document before printing.
+
+
+
+# Translations
+Comment[uk_UA]=Віртуальний принтер, який дає змогу переглянути і відредагувати 
документ перед друком.
+GenericName[uk_UA]=Віртуальний принтер
+Name[uk_UA]=Boomaga
+Icon[uk_UA]=boomaga
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/gui/translations/boomaga_uk_UA.ts 
new/boomaga-1.2.0/gui/translations/boomaga_uk_UA.ts
--- old/boomaga-1.1.0/gui/translations/boomaga_uk_UA.ts 1970-01-01 
01:00:00.000000000 +0100
+++ new/boomaga-1.2.0/gui/translations/boomaga_uk_UA.ts 2018-02-14 
12:39:53.000000000 +0100
@@ -0,0 +1,737 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS language="uk_UA" version="2.1">
+<context>
+    <name>AboutDialog</name>
+    <message>
+        <source> About Boomaga</source>
+        <translation>Про програму</translation>
+    </message>
+    <message>
+        <source>About</source>
+        <translation>Про</translation>
+    </message>
+    <message>
+        <source>Authors</source>
+        <translation>Автори</translation>
+    </message>
+    <message>
+        <source>Thanks</source>
+        <translation>Подяки</translation>
+    </message>
+    <message>
+        <source>Translations</source>
+        <translation>Переклади</translation>
+    </message>
+    <message>
+        <source>Version: %1</source>
+        <translation>Версія: %1</translation>
+    </message>
+    <message>
+        <source>Boomaga provides a virtual printer for CUPS. This can be used 
for print preview or for print booklets.</source>
+        <translation>Boomaga надає віртуальний притрер для CUPS, який може 
бути використаний для попереднього перегляду або друку книг. </translation>
+    </message>
+    <message>
+        <source>Copyright: %1-%2 %3</source>
+        <translation>Авторські права: %1-%2-%3</translation>
+    </message>
+    <message>
+        <source>Homepage: %1</source>
+        <translation>Домашня сторінка: %1</translation>
+    </message>
+    <message>
+        <source>License: %1</source>
+        <translation>Ліцензія: %1</translation>
+    </message>
+    <message>
+        <source>If you are interested in working with our development team, 
&lt;a %1&gt;join us&lt;/a&gt;.</source>
+        <translation>Хочете працювати з нашою командою розробників - &lt;a 
%1&gt;приєднуйтесь&lt;/a&gt;.</translation>
+    </message>
+    <message>
+        <source>Special thanks to:</source>
+        <translation>Окрема подяка: </translation>
+    </message>
+    <message>
+        <source>If you want to help translate, we will be glad to see you in 
our translation team on &lt;a %1&gt;Transifex server&lt;/a&gt;.</source>
+        <translation> Якщо ви хочете допомогти з перекладом, ми будемо раді 
бачити вас в нашій команді перекладачів на сервері &lt;a 
%1&gt;Transifex&lt;/a&gt;.</translation>
+    </message>
+    <message>
+        <source>Boomaga is developed by the &lt;a %1&gt;Boomaga Team and 
contributors&lt;/a&gt; on GitHub.</source>
+        <translation>Boomaga розробляється &lt;a %1&gt;Командою розробників 
Boomaga та сторонніми учасниками&lt;/a&gt; на GitHub.</translation>
+    </message>
+</context>
+<context>
+    <name>ConfigDialog</name>
+    <message>
+        <source>Preferences</source>
+        <translation>Налаштування</translation>
+    </message>
+    <message>
+        <source>Divide your long booklets into smaller sub-booklets for 
printing.</source>
+        <translation>Розділяти під час друку велику книгу на невеликі 
зошити.</translation>
+    </message>
+    <message>
+        <source>Print as sub-booklets</source>
+        <translation>Друкувати з розбивкою на зошити</translation>
+    </message>
+    <message>
+        <source>Maximum number of sheets in your sub-booklet.</source>
+        <translation>Максимальна кількість листів у зошиті.</translation>
+    </message>
+    <message>
+        <source>Sheets per sub-booklet:</source>
+        <translation>Листів у зошиті:</translation>
+    </message>
+    <message>
+        <source>Autosave your jobs every time you print.</source>
+        <translation>Автоматично зберігати завдання після друку.</translation>
+    </message>
+    <message>
+        <source>AutoSave the recent sessions</source>
+        <translation>Автоматично зберігати сесії</translation>
+    </message>
+    <message>
+        <source>Allow negative page margins:</source>
+        <translation>Дозволяти від&apos;ємні поля</translation>
+    </message>
+    <message>
+        <source>Select directory for saved jobs.</source>
+        <translation>Виберіть директорію для збереження завдань.</translation>
+    </message>
+    <message>
+        <source>Directory for saved sessions:</source>
+        <translation>Директорія для збережених сесій:</translation>
+    </message>
+</context>
+<context>
+    <name>ExportToPdf</name>
+    <message>
+        <source>Print to PDF</source>
+        <translation>Друк у PDF</translation>
+    </message>
+    <message>
+        <source>File name</source>
+        <translation>Вихідний файл</translation>
+    </message>
+    <message>
+        <source>Output file:</source>
+        <translation>Назва:</translation>
+    </message>
+    <message>
+        <source>...</source>
+        <translation>...</translation>
+    </message>
+    <message>
+        <source>Meta info</source>
+        <translation>Метадані</translation>
+    </message>
+    <message>
+        <source>Author:</source>
+        <translation>Автор:</translation>
+    </message>
+    <message>
+        <source> The name of the person who created the document.</source>
+        <translation>Ім&apos;я особи, що створила цей документ.</translation>
+    </message>
+    <message>
+        <source>Title:</source>
+        <translation>Заголовок:</translation>
+    </message>
+    <message>
+        <source>Subject:</source>
+        <translation>Тема:</translation>
+    </message>
+    <message>
+        <source> The subject of the document.</source>
+        <translation>Тема документа.</translation>
+    </message>
+    <message>
+        <source> Keywords associated with the document.</source>
+        <translation>Ключові слова, пов&apos;язані зі змістом 
документа</translation>
+    </message>
+    <message>
+        <source>Keywords:</source>
+        <translation>Ключові слова:</translation>
+    </message>
+    <message>
+        <source>PDF files (*.pdf);;All files (*.*)</source>
+        <translation>PDF-файли (*.pdf);;Усі файли (*.*)</translation>
+    </message>
+    <message>
+        <source>Overwrite file?</source>
+        <translation>Перезаписати файл?</translation>
+    </message>
+    <message>
+        <source>A file named &quot;%1&quot; already exists.
+Are you sure you want to overwrite it?</source>
+        <translation>Файл з іменем &quot;%1&quot; вже існує. 
+Ви впевпевні, що хочете переписати його?</translation>
+    </message>
+    <message>
+        <source> The document&apos;s title.</source>
+        <translation>Заголовок документа.</translation>
+    </message>
+</context>
+<context>
+    <name>JobListView</name>
+    <message>
+        <source>%1 pages</source>
+        <translation>%1 сторінок</translation>
+    </message>
+</context>
+<context>
+    <name>MainWindow</name>
+    <message>
+        <source>&amp;File</source>
+        <translation>&amp;Файл</translation>
+    </message>
+    <message>
+        <source>&amp;Preferences</source>
+        <translation>&amp;Налаштування</translation>
+    </message>
+    <message>
+        <source>Help</source>
+        <translation>Допомога</translation>
+    </message>
+    <message>
+        <source>Layout</source>
+        <translation>Розташування</translation>
+    </message>
+    <message>
+        <source>1 up</source>
+        <translation>1 сторінка на аркуш</translation>
+    </message>
+    <message>
+        <source>2 up</source>
+        <translation>2 сторінки на аркуш</translation>
+    </message>
+    <message>
+        <source>Booklet</source>
+        <translation>Книгою</translation>
+    </message>
+    <message>
+        <source>Print on both sides of a sheet.</source>
+        <comment>MainForm::Double-sided checkbox tooltip</comment>
+        <translation>Двосторонній друк</translation>
+    </message>
+    <message>
+        <source>Double-sided</source>
+        <comment>MainForm::Double-sided checkbox</comment>
+        <translation>Двосторонній</translation>
+    </message>
+    <message>
+        <source>Jobs</source>
+        <translation>Завдання</translation>
+    </message>
+    <message>
+        <source>Printer</source>
+        <translation>Принтер</translation>
+    </message>
+    <message>
+        <source>Configure...</source>
+        <translation>Налаштувати...</translation>
+    </message>
+    <message>
+        <source>Toolbar</source>
+        <translation>Панель інструментів</translation>
+    </message>
+    <message>
+        <source>&amp;Print</source>
+        <translation>&amp;Друк</translation>
+    </message>
+    <message>
+        <source>E&amp;xit</source>
+        <translation>Ви&amp;хід</translation>
+    </message>
+    <message>
+        <source>Print and Close</source>
+        <translation>Друк і вихід</translation>
+    </message>
+    <message>
+        <source>Ctrl+P</source>
+        <translation>Ctrl+P</translation>
+    </message>
+    <message>
+        <source>Next sheet</source>
+        <translation>Наступний</translation>
+    </message>
+    <message>
+        <source>Previous sheet</source>
+        <translation>Попередній</translation>
+    </message>
+    <message>
+        <source>About Boomaga</source>
+        <translation>Про програму</translation>
+    </message>
+    <message>
+        <source>Boomaga</source>
+        <translation>Boomaga</translation>
+    </message>
+    <message>
+        <source>%v of %m</source>
+        <comment>Format for QProgressBar 
(http://qt-project.org/doc/qt-4.8/qprogressbar.html#format-prop)</comment>
+        <translation>%v з %m</translation>
+    </message>
+    <message>
+        <source>Print the all pages on %1.</source>
+        <translation>Друкуються усі сторінки на %1</translation>
+    </message>
+    <message>
+        <source>Print the odd pages on %1.&lt;p&gt;When finished, turn the 
pages, insert them into the printer&lt;br&gt;and click the Continue 
button.</source>
+        <translation>Друкуються непарні сторінки на %1.&lt;p&gt;Після 
закінчення перегорніть стос паперу, вставте його в принтер&lt;br&gt; і  
натисніть кнопку &quot;Продовжити&quot;.</translation>
+    </message>
+    <message>
+        <source>Print the even pages on %1.</source>
+        <translation>Друкуються парні сторінки на %1.</translation>
+    </message>
+    <message>
+        <source>Continue</source>
+        <translation>Продовжити</translation>
+    </message>
+    <message>
+        <source>%1 pages</source>
+        <comment>Status bar</comment>
+        <translation>%1 сторінок</translation>
+    </message>
+    <message>
+        <source>%1 page</source>
+        <comment>Status bar</comment>
+        <translation>%1 сторінка</translation>
+    </message>
+    <message>
+        <source>%1 sheets</source>
+        <comment>Status bar</comment>
+        <translation>%1 аркуш.</translation>
+    </message>
+    <message>
+        <source>%1 sheet</source>
+        <comment>Status bar</comment>
+        <translation>%1 аркуш</translation>
+    </message>
+    <message>
+        <source>Sheet %1 of %2</source>
+        <comment>Status bar</comment>
+        <translation>Акруш %1 з %2</translation>
+    </message>
+    <message>
+        <source>Insert blank page after this page</source>
+        <translation>Вставити порожню сторінку після цієї</translation>
+    </message>
+    <message>
+        <source>Delete this page</source>
+        <translation>Видалити цю сторінку</translation>
+    </message>
+    <message>
+        <source>Undo delete</source>
+        <translation>Відмінити видалення</translation>
+    </message>
+    <message>
+        <source>Insert blank page before this page</source>
+        <translation>Вставити порошню сторінку перед цією</translation>
+    </message>
+    <message>
+        <source>Save</source>
+        <translation>Зберегти</translation>
+    </message>
+    <message>
+        <source>Save project</source>
+        <translation>Зберегти проект</translation>
+    </message>
+    <message>
+        <source>Ctrl+S</source>
+        <translation>Ctrl+S</translation>
+    </message>
+    <message>
+        <source>Save as...</source>
+        <translation>Зберегти як...</translation>
+    </message>
+    <message>
+        <source>Save project under a new name</source>
+        <translation>Зберегти проект з новою назвою</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+S</source>
+        <translation>Ctrl+Shift+S</translation>
+    </message>
+    <message>
+        <source>Open...</source>
+        <translation>Відкрити...</translation>
+    </message>
+    <message>
+        <source>Open an existing project</source>
+        <translation>Відкрити існуючий проект</translation>
+    </message>
+    <message>
+        <source>Ctrl+O</source>
+        <translation>Ctrl+O</translation>
+    </message>
+    <message>
+        <source>Page %1</source>
+        <comment>'Undo deletion' menu item</comment>
+        <translation>Сторінка %1</translation>
+    </message>
+    <message>
+        <source>Boomaga files (*.boo);;All files (*.*)</source>
+        <translation>Файли Boomaga(*.boo);;Усі файли (*.*)</translation>
+    </message>
+    <message>
+        <source>Project saved successfully.</source>
+        <translation>Проект збережено.</translation>
+    </message>
+    <message>
+        <source>All supported files (*.pdf *.boo);;Boomaga files (*.boo);;PDF 
files (*.pdf);;All files (*.*)</source>
+        <translation>Усі підтримувані файли (*.pdf *.boo);;Проект Boomaga 
(*.boo);;Документ PDF (*.pdf);;Усі файли (*.*)</translation>
+    </message>
+    <message>
+        <source>4 up horizontal</source>
+        <translation>4 стор. на аркуші горизонтально</translation>
+    </message>
+    <message>
+        <source>4 up vertical</source>
+        <translation>4 стор. на аркуші вертикально</translation>
+    </message>
+    <message>
+        <source>8 up horizontal</source>
+        <translation>8 стор. на аркуші горизонтально</translation>
+    </message>
+    <message>
+        <source>8 up vertical</source>
+        <translation>8 стор. на аркуші вертикально</translation>
+    </message>
+    <message>
+        <source>Start new booklet from this page</source>
+        <translation>Почати новий зошит з цієї сторінки</translation>
+    </message>
+    <message>
+        <source>Don&apos;t start new booklet from this page</source>
+        <translation>Не починати новий зошит з цієї сторінки</translation>
+    </message>
+    <message>
+        <source>Rotate page to the left</source>
+        <translation>Повернути сторінку проти годинникової 
стрілки</translation>
+    </message>
+    <message>
+        <source>Rotate page to the right</source>
+        <translation>Повернути сторінку за годинниковою стрілкою</translation>
+    </message>
+    <message>
+        <source>Rename job</source>
+        <translation>Перейменувати завдання</translation>
+    </message>
+    <message>
+        <source>Rotate job to the left</source>
+        <translation>Повернути завдання проти годинникової 
стрілки</translation>
+    </message>
+    <message>
+        <source>Rotate job to the right</source>
+        <translation>Повернути завдання за годинниковою стрілкою</translation>
+    </message>
+    <message>
+        <source>Job title:</source>
+        <translation>Назва завдання:</translation>
+    </message>
+    <message>
+        <source>Export the project to PDF</source>
+        <translation>Експортувати проект у PDF</translation>
+    </message>
+    <message>
+        <source>Ctrl+E</source>
+        <translation>Ctrl+E</translation>
+    </message>
+    <message>
+        <source>Clone job...</source>
+        <translation>Клонувати завдання...</translation>
+    </message>
+    <message>
+        <source>Clone job</source>
+        <translation>Клонування завдання</translation>
+    </message>
+    <message>
+        <source>Number of copies:</source>
+        <translation>Кількість копій</translation>
+    </message>
+    <message>
+        <source>Print with options...</source>
+        <translation>Друк з заданням налаштувань...</translation>
+    </message>
+    <message>
+        <source>Select number of copies before printing.</source>
+        <translation>Вибір кількості копій до друку.</translation>
+    </message>
+    <message>
+        <source>Ctrl+Shift+P</source>
+        <translation>Ctrl+Shift+P</translation>
+    </message>
+    <message>
+        <source>Sub-booklets</source>
+        <translation>Зошити</translation>
+    </message>
+    <message>
+        <source>Undo delete page</source>
+        <translation>Відмінити видалення сторінок</translation>
+    </message>
+    <message>
+        <source>Page %1 of %2</source>
+        <comment>Status bar</comment>
+        <translation>Стор. %1 з %2</translation>
+    </message>
+    <message>
+        <source>Recent files</source>
+        <translation>Останні файли</translation>
+    </message>
+    <message>
+        <source>&amp;Edit page</source>
+        <translation>Редагування &amp;сторінки</translation>
+    </message>
+    <message>
+        <source>Edit &amp;job</source>
+        <translation>Редагування &amp;завдання</translation>
+    </message>
+    <message>
+        <source>&amp;Export to PDF...</source>
+        <translation>&amp;Експорт у PDF...</translation>
+    </message>
+    <message>
+        <source>Delete pages until the end of the job</source>
+        <translation>Видалити сторінки до кінця завдання.</translation>
+    </message>
+    <message>
+        <source>Delete current job</source>
+        <translation>Видалити поточне завдання</translation>
+    </message>
+    <message>
+        <source>Auto saving</source>
+        <translation>Авто збереження</translation>
+    </message>
+    <message>
+        <source>I can&apos;t create directory &quot;%1&quot;</source>
+        <translation>Не вдалося створити директорію %1</translation>
+    </message>
+    <message>
+        <source>%1 %2: Page %3</source>
+        <comment>'Undo deletion' menu item, (%1 - is a job number, %2 - is a 
job title, %3 - is a page number in this job</comment>
+        <translation>%1 %2: сторінка %3</translation>
+    </message>
+</context>
+<context>
+    <name>PdfMerger</name>
+    <message>
+        <source>I can&apos;t write file &quot;%1&quot;</source>
+        <translation>Не вдалося записати файл: &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>PrintDialog</name>
+    <message>
+        <source>Print document</source>
+        <translation>Друк документа</translation>
+    </message>
+    <message>
+        <source>Number of copies:</source>
+        <translation>Кількість копій:</translation>
+    </message>
+    <message>
+        <source>Collate copies:</source>
+        <translation>Розібрати за копіями:</translation>
+    </message>
+</context>
+<context>
+    <name>PrinterSettings</name>
+    <message>
+        <source>Margins (mm)</source>
+        <translation>Поля (мм)</translation>
+    </message>
+    <message>
+        <source>Right:</source>
+        <translation>Праве:</translation>
+    </message>
+    <message>
+        <source>Bottom:</source>
+        <translation>Нижнє:</translation>
+    </message>
+    <message>
+        <source>Internal:</source>
+        <translation>Внутрішнє:</translation>
+    </message>
+    <message>
+        <source>Left:</source>
+        <translation>Ліве:</translation>
+    </message>
+    <message>
+        <source>Top:</source>
+        <translation>Верхнє:</translation>
+    </message>
+    <message>
+        <source>Draw border</source>
+        <translation>Друкувати рамку</translation>
+    </message>
+    <message>
+        <source>Print in reverse order</source>
+        <translation>Друкувати в зворотньому порядку</translation>
+    </message>
+    <message>
+        <source>Printer has duplexer</source>
+        <translation>Дуплексний принтер</translation>
+    </message>
+    <message>
+        <source>Manual with reverse (suitable for most printers)</source>
+        <translation>Вручну зі зміною порядку (більшість 
принтерів)</translation>
+    </message>
+    <message>
+        <source>Manual without reverse</source>
+        <translation>Вручну без зміни порядку</translation>
+    </message>
+    <message>
+        <source>Preferences of &quot;%1&quot;</source>
+        <translation>Налаштування %1</translation>
+    </message>
+    <message>
+        <source>Profiles</source>
+        <translation>Профілі</translation>
+    </message>
+    <message>
+        <source>+</source>
+        <translation>+</translation>
+    </message>
+    <message>
+        <source>-</source>
+        <translation>-</translation>
+    </message>
+    <message>
+        <source>Reset to default</source>
+        <translation>Скинути</translation>
+    </message>
+    <message>
+        <source>Profile %1</source>
+        <comment>Defaul name for created printer profile in the Printer 
Settings diaog</comment>
+        <translation>Профіль: %1</translation>
+    </message>
+    <message>
+        <source>Color mode:</source>
+        <translation>Режим кольору:</translation>
+    </message>
+    <message>
+        <source>Default</source>
+        <translation>За замовчуванням</translation>
+    </message>
+    <message>
+        <source>Force grayscale</source>
+        <translation>Чорно-білий друк</translation>
+    </message>
+    <message>
+        <source>Force color</source>
+        <translation>Кольоровий друк</translation>
+    </message>
+    <message>
+        <source>Settings</source>
+        <translation>Налаштування</translation>
+    </message>
+    <message>
+        <source>Print on both sides</source>
+        <translation>Двосторонній друк</translation>
+    </message>
+    <message>
+        <source>Flip on short edge</source>
+        <translation>Оправа по короткій стороні</translation>
+    </message>
+    <message>
+        <source>Flip on long edge</source>
+        <translation>Оправа по довгій стороні</translation>
+    </message>
+</context>
+<context>
+    <name>Project</name>
+    <message>
+        <source>Boomaga</source>
+        <comment>Error message title</comment>
+        <translation>Boomaga</translation>
+    </message>
+    <message>
+        <source>I can&apos;t write to file &apos;%1&apos;</source>
+        <translation>Не вдалос записати файл: &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>I can&apos;t open file &quot;%1&quot; (No such file or 
directory)</source>
+        <translation>Не вдалося відкрити файл: &quot;%1&quot; (Немає такого 
файлу)</translation>
+    </message>
+    <message>
+        <source>I can&apos;t open file &quot;%1&quot; (Access denied)</source>
+        <translation>Не вдалося відкрити файл: &quot;%1&quot; (Немає прав 
доступу)</translation>
+    </message>
+    <message>
+        <source>I can&apos;t open file &quot;%1&quot;</source>
+        <translation>Не вдалося відкрити файл: &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>I can&apos;t read file &quot;%1&quot; either because it&apos;s 
not a supported file type, or because the file has been damaged.</source>
+        <translation>Не вдалося прочитати файл: &quot;%1&quot;, файл зіпсовано 
або файли такого типу не підтримуються.</translation>
+    </message>
+</context>
+<context>
+    <name>ProjectFile</name>
+    <message>
+        <source>I can&apos;t open file &quot;%1&quot;</source>
+        <translation>Не вдалося відкрити файл: &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>I can&apos;t write to file &apos;%1&apos;</source>
+        <translation>Не вдалося записати файл: &quot;%1&quot;</translation>
+    </message>
+</context>
+<context>
+    <name>QObject</name>
+    <message>
+        <source>I can&apos;t read from file &apos;%1&apos;</source>
+        <translation>Не вдалося прочитати файл: &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>I can&apos;t write to file &apos;%1&apos;</source>
+        <translation>Не вдалося записати файл: &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Untitled</source>
+        <translation>Без назви</translation>
+    </message>
+    <message>
+        <source>Default</source>
+        <comment>Printer profile default name</comment>
+        <translation>За замовчуванням</translation>
+    </message>
+</context>
+<context>
+    <name>Settings</name>
+    <message>
+        <source>~/Untitled.pdf</source>
+        <translation>~/Без_назви.pdf</translation>
+    </message>
+</context>
+<context>
+    <name>SubBookletView</name>
+    <message>
+        <source>Sub-booklet %1</source>
+        <translation>Зошит %1</translation>
+    </message>
+    <message>
+        <source>%1 pages</source>
+        <translation>%1 сторінок</translation>
+    </message>
+</context>
+<context>
+    <name>TmpPdfFile</name>
+    <message>
+        <source>I can&apos;t create temporary file &quot;%1&quot;</source>
+        <translation>Не вдалося створити тимчасовий файл: 
&quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>Something is wrong. I can't find boomagamerger program.
+Please reinstall me.</source>
+        <translation>Невдача знову спіткала українських спортсменів... Не 
вдалося знати програму boomagameter. Спробуйте перевстановити 
мене.</translation>
+    </message>
+    <message>
+        <source>I can&apos;t read file &apos;%1&apos;</source>
+        <translation>Не вдалося прочитати файл: &quot;%1&quot;</translation>
+    </message>
+    <message>
+        <source>I can&apos;t write to file &apos;%1&apos;</source>
+        <translation>Не вдалося записати файл: &quot;%1&quot;</translation>
+    </message>
+</context>
+</TS>
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/boomaga-1.1.0/gui/translations/translatorsinfo/translators_uk_UA.info 
new/boomaga-1.2.0/gui/translations/translatorsinfo/translators_uk_UA.info
--- old/boomaga-1.1.0/gui/translations/translatorsinfo/translators_uk_UA.info   
1970-01-01 01:00:00.000000000 +0100
+++ new/boomaga-1.2.0/gui/translations/translatorsinfo/translators_uk_UA.info   
2018-02-14 12:39:53.000000000 +0100
@@ -0,0 +1,42 @@
+_help = --
+
+
+translator_1_nameEnglish = Mykhailo Lytvyn
+translator_1_nameNative  = Михайло Литвин
+translator_1_contact     = lytvyn.at
+
+translator_2_nameEnglish =  
+translator_2_nameNative  =  
+translator_2_contact     = --
+
+translator_3_nameEnglish = --
+translator_3_nameNative  = --
+translator_3_contact     = --
+
+translator_4_nameEnglish = --
+translator_4_nameNative  = --
+translator_4_contact     = --
+
+translator_5_nameEnglish = --
+translator_5_nameNative  = --
+translator_5_contact     = --
+
+translator_6_nameEnglish = --
+translator_6_nameNative  = --
+translator_6_contact     = --
+
+translator_7_nameEnglish = --
+translator_7_nameNative  = --
+translator_7_contact     = --
+
+translator_8_nameEnglish = --
+translator_8_nameNative  = --
+translator_8_contact     = --
+
+translator_9_nameEnglish = --
+translator_9_nameNative  = --
+translator_9_contact     = --
+
+translator_10_nameEnglish = --
+translator_10_nameNative  = --
+translator_10_contact     = --
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/scripts/testBackend.sh 
new/boomaga-1.2.0/scripts/testBackend.sh
--- old/boomaga-1.1.0/scripts/testBackend.sh    1970-01-01 01:00:00.000000000 
+0100
+++ new/boomaga-1.2.0/scripts/testBackend.sh    2018-02-14 12:39:53.000000000 
+0100
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+FILE=$1
+
+if [ "$FILE" = "" ]; then
+       echo "Missing file operand"
+       echo ""
+       echo "Usage:  testBackend.sh PDF_FILE"
+       exit 1
+fi
+
+FILE=$(readlink -e "${FILE}")
+
+
+boomagabackend=""
+
+dir=$(pwd)
+while [[ "$dir" != "/" ]]; do
+       if [ -d "${dir}/.git" ]; then 
+               boomagabackend=$(find "$dir" -name "boomagabackend")
+               break
+       fi
+
+       dir=$(dirname $dir)
+       sleep 1
+done
+
+
+if [ "$boomagabackend" == "" ]; then
+       boomagabackend=$(find "/usr/local/lib" "/usr/lib" -name 
"boomagabackend" 2>/dev/null)
+fi
+
+if [ "$boomagabackend" == "" ]; then
+       "echo boomagabackend not found"
+fi
+
+
+echo "################"
+echo "# program - $boomagabackend"
+echo "# file    - $FILE"
+echo "#"
+
+
+#               <jobId> <title> <count> <options> <user>
+cat "${FILE}" | $boomagabackend 123    "title" 1               ""              
  $USER         
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/boomaga-1.1.0/scripts/testDBUS.sh 
new/boomaga-1.2.0/scripts/testDBUS.sh
--- old/boomaga-1.1.0/scripts/testDBUS.sh       1970-01-01 01:00:00.000000000 
+0100
+++ new/boomaga-1.2.0/scripts/testDBUS.sh       2018-02-14 12:39:53.000000000 
+0100
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+FILE=$1
+
+if [ "$FILE" = "" ]; then
+       echo "Missing file operand"
+       echo ""
+       echo "Usage:  testDBUS.sh PDF_FILE"
+       exit 1
+fi
+
+FILE=$(readlink -e "${FILE}")
+
+###########################
+# D-Bus arguments
+#
+# string file
+# string title
+# bool   autoRemove
+# string options
+# uint   count
+dbus-send \
+       --session \
+       --type=method_call \
+       --print-reply \
+       --dest=org.boomaga /boomaga org.boomaga.add \
+       string:"${FILE}" \
+       string:'title' \
+       boolean:false \
+       string:'options' \
+       uint32:1
+


Reply via email to