Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package prison-qt5 for openSUSE:Factory 
checked in at 2021-11-15 15:25:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/prison-qt5 (Old)
 and      /work/SRC/openSUSE:Factory/.prison-qt5.new.1890 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "prison-qt5"

Mon Nov 15 15:25:52 2021 rev:61 rq:931126 version:5.88.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/prison-qt5/prison-qt5.changes    2021-10-18 
22:01:15.918053341 +0200
+++ /work/SRC/openSUSE:Factory/.prison-qt5.new.1890/prison-qt5.changes  
2021-11-15 15:27:20.597839343 +0100
@@ -1,0 +2,18 @@
+Sun Nov  7 09:13:41 UTC 2021 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Strip 'Source' URL for faster submissions
+
+-------------------------------------------------------------------
+Sun Nov  7 09:08:29 UTC 2021 - Christophe Giboudeaux <christo...@krop.fr>
+
+- Update to 5.88.0
+  * New feature release
+  * For more details please see:
+  * https://kde.org/announcements/frameworks/5/5.88.0
+- Changes since 5.87.0:
+  * Decrease the preferred size for PDF417 barcodes
+  * Add PDF417 barcode support
+  * Add FreeBSD CI
+  * Add Android CI
+
+-------------------------------------------------------------------

Old:
----
  prison-5.87.0.tar.xz
  prison-5.87.0.tar.xz.sig

New:
----
  prison-5.88.0.tar.xz
  prison-5.88.0.tar.xz.sig

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

Other differences:
------------------
++++++ prison-qt5.spec ++++++
--- /var/tmp/diff_new_pack.v5xdNG/_old  2021-11-15 15:27:21.005839456 +0100
+++ /var/tmp/diff_new_pack.v5xdNG/_new  2021-11-15 15:27:21.009839458 +0100
@@ -19,7 +19,7 @@
 %define sonum   5
 %define rname prison
 %define _libname KF5Prison
-%define _tar_path 5.87
+%define _tar_path 5.88
 # Full KF5 version (e.g. 5.33.0)
 %{!?_kf5_version: %global _kf5_version %{version}}
 # Last major and minor KF5 version (e.g. 5.33)
@@ -27,15 +27,15 @@
 # Only needed for the package signature condition
 %bcond_without lang
 Name:           prison-qt5
-Version:        5.87.0
+Version:        5.88.0
 Release:        0
 Summary:        Barcode abstraction layer library
 License:        MIT
 Group:          System/GUI/KDE
 URL:            https://www.kde.org
-Source:         
https://download.kde.org/stable/frameworks/%{_tar_path}/%{rname}-%{version}.tar.xz
+Source:         %{rname}-%{version}.tar.xz
 %if %{with lang}
-Source1:        
https://download.kde.org/stable/frameworks/%{_tar_path}/%{rname}-%{version}.tar.xz.sig
+Source1:        %{rname}-%{version}.tar.xz.sig
 Source2:        frameworks.keyring
 %endif
 BuildRequires:  extra-cmake-modules >= %{_kf5_bugfix_version}
@@ -45,6 +45,7 @@
 BuildRequires:  cmake(Qt5Core) >= 5.15.0
 BuildRequires:  cmake(Qt5Gui) >= 5.15.0
 BuildRequires:  cmake(Qt5Quick) >= 5.15.0
+BuildRequires:  cmake(ZXing) >= 1.2.0
 BuildRequires:  pkgconfig(libdmtx)
 BuildRequires:  pkgconfig(libqrencode)
 


++++++ prison-5.87.0.tar.xz -> prison-5.88.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/.gitlab-ci.yml 
new/prison-5.88.0/.gitlab-ci.yml
--- old/prison-5.87.0/.gitlab-ci.yml    2021-10-02 14:23:47.000000000 +0200
+++ new/prison-5.88.0/.gitlab-ci.yml    2021-10-31 08:05:00.000000000 +0100
@@ -3,3 +3,5 @@
 
 include:
   - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml
+  - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/android.yml
+  - 
https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/CMakeLists.txt 
new/prison-5.88.0/CMakeLists.txt
--- old/prison-5.87.0/CMakeLists.txt    2021-10-02 14:23:47.000000000 +0200
+++ new/prison-5.88.0/CMakeLists.txt    2021-10-31 08:05:00.000000000 +0100
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 3.16)
 
-set(KF_VERSION "5.87.0") # handled by release scripts
+set(KF_VERSION "5.88.0") # handled by release scripts
 project(prison VERSION ${KF_VERSION})
 
 # ECM setup
@@ -38,6 +38,8 @@
 set_package_properties(QRencode PROPERTIES TYPE REQUIRED)
 find_package(Dmtx)
 set_package_properties(Dmtx PROPERTIES TYPE RECOMMENDED)
+find_package(ZXing 1.2.0)
+set_package_properties(ZXing PROPERTIES TYPE RECOMMENDED)
 
 if (Qt5_POSITION_INDEPENDENT_CODE)
   set(CMAKE_POSITION_INDEPENDENT_CODE ON)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/CMakeLists.txt 
new/prison-5.88.0/src/lib/CMakeLists.txt
--- old/prison-5.87.0/src/lib/CMakeLists.txt    2021-10-02 14:23:47.000000000 
+0200
+++ new/prison-5.88.0/src/lib/CMakeLists.txt    2021-10-31 08:05:00.000000000 
+0100
@@ -2,6 +2,9 @@
 if(TARGET Dmtx::Dmtx)
     set(HAVE_DMTX 1)
 endif()
+if (TARGET ZXing::ZXing)
+    set(HAVE_ZXING 1)
+endif()
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config-prison.h.in 
${CMAKE_CURRENT_BINARY_DIR}/config-prison.h)
 
 add_library(KF5Prison)
@@ -28,6 +31,10 @@
 if(TARGET Dmtx::Dmtx)
     target_sources(KF5Prison PRIVATE datamatrixbarcode.cpp)
 endif()
+if(TARGET ZXing::ZXing)
+    target_sources(KF5Prison PRIVATE pdf417barcode.cpp)
+endif()
+kde_source_files_enable_exceptions(pdf417barcode.cpp)
 
 ecm_qt_declare_logging_category(KF5Prison
     HEADER prison_debug.h
@@ -58,6 +65,9 @@
 if(TARGET Dmtx::Dmtx)
     target_link_libraries(KF5Prison PRIVATE Dmtx::Dmtx)
 endif()
+if(TARGET ZXing::ZXing)
+    target_link_libraries(KF5Prison PRIVATE ZXing::ZXing)
+endif()
 
 install(TARGETS KF5Prison EXPORT KF5PrisonTargets 
${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/abstractbarcode.cpp 
new/prison-5.88.0/src/lib/abstractbarcode.cpp
--- old/prison-5.87.0/src/lib/abstractbarcode.cpp       2021-10-02 
14:23:47.000000000 +0200
+++ new/prison-5.88.0/src/lib/abstractbarcode.cpp       2021-10-31 
08:05:00.000000000 +0100
@@ -5,6 +5,8 @@
 */
 
 #include "abstractbarcode.h"
+#include "config-prison.h"
+#include "pdf417barcode.h"
 
 #include <QColor>
 #include <QPainter>
@@ -152,6 +154,13 @@
     case OneDimension:
         return QSizeF(d->m_cache.width() * (devicePixelRatio < 2 ? 2 : 1), 
std::max(d->m_cache.height(), 50));
     case TwoDimensions:
+        // TODO KF6: clean this up once preferredSize is virtual
+#if HAVE_ZXING
+        // the smallest element of a PDF417 code is 1x 3px, for 
Aztec/QR/DataMatrix it's just 1x1 px
+        if (dynamic_cast<const Pdf417Barcode *>(this)) {
+            return d->m_cache.size() * (devicePixelRatio < 2 ? 2 : 1);
+        }
+#endif
         return d->m_cache.size() * (devicePixelRatio < 2 ? 4 : 2);
     }
     return {};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/abstractbarcode.h 
new/prison-5.88.0/src/lib/abstractbarcode.h
--- old/prison-5.87.0/src/lib/abstractbarcode.h 2021-10-02 14:23:47.000000000 
+0200
+++ new/prison-5.88.0/src/lib/abstractbarcode.h 2021-10-31 08:05:00.000000000 
+0100
@@ -114,7 +114,7 @@
      * @see trueMinimumSize
      * @since 5.69
      */
-    QSizeF preferredSize(qreal devicePixelRatio) const;
+    QSizeF preferredSize(qreal devicePixelRatio) const; // TODO KF6: make 
virtual
 
     /**
      * @return the foreground color (by default black) to be used for the 
barcode.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/config-prison.h.in 
new/prison-5.88.0/src/lib/config-prison.h.in
--- old/prison-5.87.0/src/lib/config-prison.h.in        2021-10-02 
14:23:47.000000000 +0200
+++ new/prison-5.88.0/src/lib/config-prison.h.in        2021-10-31 
08:05:00.000000000 +0100
@@ -8,5 +8,6 @@
 #define PRISON_CONFIG_H
 
 #cmakedefine HAVE_DMTX
+#cmakedefine01 HAVE_ZXING
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/pdf417barcode.cpp 
new/prison-5.88.0/src/lib/pdf417barcode.cpp
--- old/prison-5.87.0/src/lib/pdf417barcode.cpp 1970-01-01 01:00:00.000000000 
+0100
+++ new/prison-5.88.0/src/lib/pdf417barcode.cpp 2021-10-31 08:05:00.000000000 
+0100
@@ -0,0 +1,50 @@
+/*
+    SPDX-FileCopyrightText: 2021 Volker Krause <vkra...@kde.org>
+
+    SPDX-License-Identifier: MIT
+*/
+
+#include "pdf417barcode.h"
+
+#include <ZXing/BitMatrix.h>
+#include <ZXing/MultiFormatWriter.h>
+
+using namespace Prison;
+
+Pdf417Barcode::Pdf417Barcode()
+    : AbstractBarcode(TwoDimensions)
+{
+}
+
+QImage Pdf417Barcode::paintImage(const QSizeF &size)
+{
+    Q_UNUSED(size);
+
+    std::wstring input;
+    if (!data().isEmpty()) {
+        input = data().toStdWString();
+    } else {
+        const auto b = byteArrayData();
+        input.reserve(b.size());
+        std::copy(b.begin(), b.end(), std::back_inserter(input));
+    }
+
+    try {
+        ZXing::MultiFormatWriter writer(ZXing::BarcodeFormat::PDF417);
+        // ISO/IEC 15438:2006(E) ??5.8.3 Quiet Zone
+        writer.setMargin(2);
+        // aspect ratio 4 is hard-coded in ZXing
+        const auto matrix = writer.encode(input, 4, 1);
+
+        QImage image(matrix.width(), matrix.height(), QImage::Format_ARGB32);
+        for (int y = 0; y < matrix.height(); ++y) {
+            for (int x = 0; x < matrix.width(); ++x) {
+                image.setPixel(x, y, matrix.get(x, y) ? 
foregroundColor().rgb() : backgroundColor().rgb());
+            }
+        }
+
+        return image;
+    } catch (const std::invalid_argument &e) {
+    }; // input too large
+    return {};
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/pdf417barcode.h 
new/prison-5.88.0/src/lib/pdf417barcode.h
--- old/prison-5.87.0/src/lib/pdf417barcode.h   1970-01-01 01:00:00.000000000 
+0100
+++ new/prison-5.88.0/src/lib/pdf417barcode.h   2021-10-31 08:05:00.000000000 
+0100
@@ -0,0 +1,29 @@
+/*
+    SPDX-FileCopyrightText: 2021 Volker Krause <vkra...@kde.org>
+
+    SPDX-License-Identifier: MIT
+*/
+
+#ifndef PRISON_PDF417BARCODE_H
+#define PRISON_PDF417BARCODE_H
+
+#include "abstractbarcode.h"
+
+namespace Prison
+{
+/** PDF417 barcode.
+ *  @see https://en.wikipedia.org/wiki/PDF417
+ *  @see ISO/IEC 15438
+ */
+class Pdf417Barcode : public AbstractBarcode
+{
+public:
+    explicit Pdf417Barcode();
+
+protected:
+    QImage paintImage(const QSizeF &size) override;
+};
+
+}
+
+#endif // PRISON_PDF417BARCODE_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/prison.cpp 
new/prison-5.88.0/src/lib/prison.cpp
--- old/prison-5.87.0/src/lib/prison.cpp        2021-10-02 14:23:47.000000000 
+0200
+++ new/prison-5.88.0/src/lib/prison.cpp        2021-10-31 08:05:00.000000000 
+0100
@@ -10,6 +10,7 @@
 #include "code39barcode.h"
 #include "code93barcode.h"
 #include "datamatrixbarcode.h"
+#include "pdf417barcode.h"
 #include "qrcodebarcode.h"
 #include <config-prison.h>
 
@@ -34,6 +35,10 @@
         return new Code93Barcode;
     case Prison::Code128:
         return new Code128Barcode;
+#if HAVE_ZXING
+    case Prison::PDF417:
+        return new Pdf417Barcode;
+#endif
     }
     return nullptr;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/lib/prison.h 
new/prison-5.88.0/src/lib/prison.h
--- old/prison-5.87.0/src/lib/prison.h  2021-10-02 14:23:47.000000000 +0200
+++ new/prison-5.88.0/src/lib/prison.h  2021-10-31 08:05:00.000000000 +0100
@@ -35,7 +35,8 @@
     Code93,
     /** Code 128 barcode */
     Code128,
-
+    /** PDF417 barcode */
+    PDF417,
 };
 /**
  * Factory method to create a barcode of a given type.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/src/quick/barcodequickitem.h 
new/prison-5.88.0/src/quick/barcodequickitem.h
--- old/prison-5.87.0/src/quick/barcodequickitem.h      2021-10-02 
14:23:47.000000000 +0200
+++ new/prison-5.88.0/src/quick/barcodequickitem.h      2021-10-31 
08:05:00.000000000 +0100
@@ -46,10 +46,11 @@
         Code39 = Prison::Code39,
         Code93 = Prison::Code93,
         Code128 = Prison::Code128,
+        PDF417 = Prison::PDF417,
     };
     Q_ENUM(BarcodeType)
     explicit BarcodeQuickItem(QQuickItem *parent = nullptr);
-    ~BarcodeQuickItem();
+    ~BarcodeQuickItem() override;
 
     QVariant content() const;
     void setContent(const QVariant &data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/tests/barcode.qml 
new/prison-5.88.0/tests/barcode.qml
--- old/prison-5.87.0/tests/barcode.qml 2021-10-02 14:23:47.000000000 +0200
+++ new/prison-5.88.0/tests/barcode.qml 2021-10-31 08:05:00.000000000 +0100
@@ -24,7 +24,7 @@
             }
             ComboBox {
                 id: typeCombobox
-                model: [ "Null", "QRCode", "DataMatrix", "Aztec", "Code39", 
"Code93", "Code128" ]
+                model: [ "Null", "QRCode", "DataMatrix", "Aztec", "Code39", 
"Code93", "Code128", "PDF417" ]
                 currentIndex: 3
             }
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/prison-5.87.0/tests/barcodeexamplewidget.h 
new/prison-5.88.0/tests/barcodeexamplewidget.h
--- old/prison-5.87.0/tests/barcodeexamplewidget.h      2021-10-02 
14:23:47.000000000 +0200
+++ new/prison-5.88.0/tests/barcodeexamplewidget.h      2021-10-31 
08:05:00.000000000 +0100
@@ -25,7 +25,7 @@
      * @param parent the parent in QWidget hierarchy
      */
     BarcodeExampleWidget(Prison::AbstractBarcode *barcode, QWidget *parent = 
nullptr);
-    virtual ~BarcodeExampleWidget();
+    ~BarcodeExampleWidget() override;
     /**
      * sets the data shown to data, and triggers a repaint and resize if needed
      * @param data QString holding the data to be shown

Reply via email to