diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-03-05 01:46:50 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-03-05 01:46:50 +0000 |
commit | 77d1bb6f8d47023aa21aaee830bf3229837233d1 (patch) | |
tree | 751b6c0d12ed0ed73cc1e3fbca7404072ba6cc7a /app-text/diffpdf | |
parent | d13006cca857323814c09f5123b87c1a005bba74 (diff) |
gentoo auto-resync : 05:03:2025 - 01:46:50
Diffstat (limited to 'app-text/diffpdf')
-rw-r--r-- | app-text/diffpdf/Manifest | 3 | ||||
-rw-r--r-- | app-text/diffpdf/diffpdf-2.1.3-r2.ebuild | 40 | ||||
-rw-r--r-- | app-text/diffpdf/diffpdf-2.1.3-r3.ebuild | 37 | ||||
-rw-r--r-- | app-text/diffpdf/files/diffpdf-2.1.3-qt6.patch | 407 |
4 files changed, 446 insertions, 41 deletions
diff --git a/app-text/diffpdf/Manifest b/app-text/diffpdf/Manifest index 9086a4e6824a..ef28be4588e0 100644 --- a/app-text/diffpdf/Manifest +++ b/app-text/diffpdf/Manifest @@ -1,5 +1,6 @@ AUX diffpdf-2.1.3-qt5.patch 6240 BLAKE2B c4f522b41e4b036222f832e194088d2377f5063d35e8eb73714745db7a993d9b38fd9e5111eee69d7f2d86710a45289a8e54d25b8a3217b1ddd2fe53bd59b468 SHA512 96ae465bb5b27ff0b26a7c4686e7656af025669b418b755878627b1baf4b91bf14833e951f80c6510d907419efdb8759dffca3f5b7fb517b5bf20ae1ee6b3406 +AUX diffpdf-2.1.3-qt6.patch 13064 BLAKE2B ba50eb84bdfd31ec44aca89e7de115a69b87ba4a72bfb6b933a79ced1d0b7896b5aa202366062bcda723bc1158a5199572d068a99ee7b9225dde15d7c7146099 SHA512 1e2f99c3257580bbf650468b096a326eb612ad99fb5c08857a5b161d7948a752f3b2a43627277a806991b68f1d467d815ca4f9320b722ef861e84942d2b76568 AUX diffpdf.desktop 152 BLAKE2B e85754380c3e607d6bfe0f4db875983596f8e562d48b8bb732e26a23f9cb6137d7ec700ac2d0596fa3a13d79b6c527de671f46825646e266cf5579f33a1a1511 SHA512 3568a49e3fdcb2fa47688fce4d818cb01545d854890806e4508f228b18b712cbb5641a6e173927990e81c9086bdb49f5b4ffd870e5f0345f26de1b4e799eb0d7 DIST diffpdf-2.1.3.tar.gz 91856 BLAKE2B a94b710674508a5b77ca1e18b48e906568b49ecf10ce5f96d425fceb91746922fdf454ee20ec77913cf3d7467e559e59257e7415bf96c44b9c136e1708d4e73f SHA512 137e00f7c1d696b097f271c51fa5f19d471efb85fb3d5381c096c32f1ff824083b1122bbefa758fb9320ac8e0c9c16e6b88c8b6286bd98388d88c45c714a948d -EBUILD diffpdf-2.1.3-r2.ebuild 850 BLAKE2B ec4d1a2b8e8c9f0565d528c96f221c012a3d7855c2484fb96b1ca9274dd4aeea5e1c9f66f635242421fa6749035907927fca24a8f09df3e3b6616d8d0fe97e7b SHA512 cc56361bfa53763b7e9198f9c817c257a5ec5956c2b3e34132cc184c95f013360b6fdb324ad8123c044b9e11a1cf100cf2954a1e8a3fd8b1b6601a3dd421647f +EBUILD diffpdf-2.1.3-r3.ebuild 822 BLAKE2B 349bdd464bc3264180e643f17c6e425458b9c15a66366b7dc65f9a24d3be7257325a5a0396208b591bea697e975d15527650ff85a57789ba9c171b59c4aef164 SHA512 6a844eed527b197e7a1420a7902800e72a2855be7b7587c403ee4e4fb647610abecf9853a101cb53dc3021b7f43637921e08d5e52728a55502e1bb4460955ebb MISC metadata.xml 248 BLAKE2B ef5873747105ead87c67c434cced8bb3e3785064a37e487a6826c04d707e360f2ca2549d77bf5e7ec4ed7352c2fb5e671afab1873d1ed6cdbc64b83a31711a0b SHA512 9104044b707b65732e34a1d4f25636b881711b6e64cb61be90e69722785e0cd7b4110379eb6051107805469b9d16c772855b09f34e51814e254a0b8a08a6e202 diff --git a/app-text/diffpdf/diffpdf-2.1.3-r2.ebuild b/app-text/diffpdf/diffpdf-2.1.3-r2.ebuild deleted file mode 100644 index 4ac979ae0a43..000000000000 --- a/app-text/diffpdf/diffpdf-2.1.3-r2.ebuild +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit desktop qmake-utils - -DESCRIPTION="Program that textually or visually compares two PDF files" -HOMEPAGE="https://www.qtrac.eu/diffpdf.html" -SRC_URI="http://www.qtrac.eu/${P}.tar.gz" - -LICENSE="GPL-2" -KEYWORDS="~amd64 ~x86" -SLOT="0" -IUSE="" - -BDEPEND="dev-qt/linguist-tools:5" -RDEPEND=" - app-text/poppler[qt5] - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtprintsupport:5 - dev-qt/qtwidgets:5 -" -DEPEND="${RDEPEND}" - -PATCHES=( "${FILESDIR}"/${P}-qt5.patch ) - -src_configure() { - $(qt5_get_bindir)/lrelease diffpdf.pro || die "Generating translations failed" - eqmake5 PREFIX="${EPREFIX}/usr" diffpdf.pro -} - -src_install() { - einstalldocs - dobin diffpdf - doman diffpdf.1 - domenu "${FILESDIR}"/${PN}.desktop - newicon images/icon.png ${PN}.png -} diff --git a/app-text/diffpdf/diffpdf-2.1.3-r3.ebuild b/app-text/diffpdf/diffpdf-2.1.3-r3.ebuild new file mode 100644 index 000000000000..3aa2d346d900 --- /dev/null +++ b/app-text/diffpdf/diffpdf-2.1.3-r3.ebuild @@ -0,0 +1,37 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake desktop + +DESCRIPTION="Program that textually or visually compares two PDF files" +HOMEPAGE="https://web.archive.org/web/20250102202818/https://www.qtrac.eu/diffpdf-foss.html" +SRC_URI="https://web.archive.org/web/20201229194512/http://www.qtrac.eu/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +BDEPEND=" + >=dev-build/cmake-3.16 + >=dev-qt/qttools-6.4.2:6[linguist] +" +RDEPEND=" + >=app-text/poppler-22.12[qt6] + >=dev-qt/qtbase-6.4.2:6[gui,widgets] +" +DEPEND="${RDEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-qt5.patch + "${FILESDIR}"/${P}-qt6.patch +) + +src_install() { + cmake_src_install + einstalldocs + doman diffpdf.1 + domenu "${FILESDIR}"/${PN}.desktop + newicon images/icon.png ${PN}.png +} diff --git a/app-text/diffpdf/files/diffpdf-2.1.3-qt6.patch b/app-text/diffpdf/files/diffpdf-2.1.3-qt6.patch new file mode 100644 index 000000000000..6f15202e0e72 --- /dev/null +++ b/app-text/diffpdf/files/diffpdf-2.1.3-qt6.patch @@ -0,0 +1,407 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +new file mode 100644 +index 0000000..fbaf333 +--- /dev/null ++++ b/CMakeLists.txt +@@ -0,0 +1,25 @@ ++cmake_minimum_required(VERSION 3.16) ++project(diffpdf CXX) ++ ++find_package(Qt6 REQUIRED COMPONENTS Gui LinguistTools PrintSupport Widgets) ++find_package(PkgConfig REQUIRED) ++pkg_search_module(PopplerQt6 REQUIRED IMPORTED_TARGET poppler-qt6>=22.12.0) ++ ++qt_standard_project_setup(REQUIRES 6.4.2 I18N_TRANSLATED_LANGUAGES cz de es fr) ++ ++file(GLOB DiffPDF_SOURCES CONFIGURE_DEPENDS ++ "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" ++ "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp" ++) ++qt_add_executable(diffpdf ${DiffPDF_SOURCES}) ++target_link_libraries(diffpdf ++ PRIVATE ++ PkgConfig::PopplerQt6 ++ Qt6::Core ++ Qt6::PrintSupport ++ Qt6::Widgets ++) ++qt_add_translations(diffpdf RESOURCE_PREFIX "/") ++qt_add_binary_resources(diffpdf_resources resources.qrc) ++add_dependencies(diffpdf diffpdf_resources) ++install(TARGETS diffpdf) +diff --git a/diffpdf_cz.ts b/diffpdf_cz.ts +index 66f718c..36b313f 100644 +--- a/diffpdf_cz.ts ++++ b/diffpdf_cz.ts +@@ -1,7 +1,6 @@ + <?xml version="1.0" encoding="utf-8"?> + <!DOCTYPE TS> + <TS version="2.0" language="cs_CZ"> +-<defaultcodec>UTF-8</defaultcodec> + <context> + <name>AboutForm</name> + <message> +diff --git a/diffpdf_de.ts b/diffpdf_de.ts +index 6b8ee47..3daf0cc 100644 +--- a/diffpdf_de.ts ++++ b/diffpdf_de.ts +@@ -1,7 +1,6 @@ + <?xml version="1.0" encoding="utf-8"?> + <!DOCTYPE TS> + <TS version="2.0" language="de_DE"> +-<defaultcodec>UTF-8</defaultcodec> + <context> + <name>AboutForm</name> + <message> +diff --git a/diffpdf_es.ts b/diffpdf_es.ts +index a35941f..e8c9d8f 100644 +--- a/diffpdf_es.ts ++++ b/diffpdf_es.ts +@@ -1,7 +1,6 @@ + <?xml version="1.0" encoding="utf-8"?> + <!DOCTYPE TS> + <TS version="2.0" language="es_ES"> +-<defaultcodec>UTF-8</defaultcodec> + <context> + <name>AboutForm</name> + <message> +diff --git a/diffpdf_fr.ts b/diffpdf_fr.ts +index 815e9c4..3e3d5e7 100644 +--- a/diffpdf_fr.ts ++++ b/diffpdf_fr.ts +@@ -1,7 +1,6 @@ + <?xml version="1.0" encoding="utf-8"?> + <!DOCTYPE TS> + <TS version="2.0"> +-<defaultcodec>UTF-8</defaultcodec> + <context> + <name>AboutForm</name> + <message> +diff --git a/generic.cpp b/generic.cpp +index 13603e3..ba4ea7a 100644 +--- a/generic.cpp ++++ b/generic.cpp +@@ -17,6 +17,7 @@ + #include <QPen> + #include <QPixmapCache> + #include <QUrl> ++#include <utility> + + const QSize SwatchSize(24, 24); + +@@ -149,8 +150,8 @@ QPixmap penStyleSwatch(const Qt::PenStyle style, const QColor &color) + const TextBoxList getTextBoxes(PdfPage page, const QRectF &rect) + { + TextBoxList boxes; +- foreach (Poppler::TextBox *box, page->textList()) { +- PdfTextBox box_ptr(box); ++ for (auto & box : page->textList()) { ++ PdfTextBox box_ptr(std::move(box)); + if (rect.isEmpty() || rect.contains(box_ptr->boundingBox())) + boxes.append(box_ptr); + } +diff --git a/generic.hpp b/generic.hpp +index 1e9afce..fd48163 100644 +--- a/generic.hpp ++++ b/generic.hpp +@@ -12,7 +12,8 @@ + for more details. + */ + +-#include <poppler-qt5.h> ++#include <poppler-qt6.h> ++#include <memory> + #include <QMetaType> + #include <QPair> + #include <QPixmap> +@@ -22,15 +23,9 @@ class QColor; + class QMimeData; + class QRectF; + +-#if QT_VERSION >= 0x040600 +-typedef QSharedPointer<Poppler::Document> PdfDocument; +-typedef QSharedPointer<Poppler::Page> PdfPage; +-typedef QSharedPointer<Poppler::TextBox> PdfTextBox; +-#else +-typedef std::tr1::shared_ptr<Poppler::Document> PdfDocument; +-typedef std::tr1::shared_ptr<Poppler::Page> PdfPage; +-typedef std::tr1::shared_ptr<Poppler::TextBox> PdfTextBox; +-#endif ++using PdfDocument = std::shared_ptr<Poppler::Document>; ++using PdfPage = std::shared_ptr<Poppler::Page>; ++using PdfTextBox = std::shared_ptr<Poppler::TextBox>; + typedef QList<PdfTextBox> TextBoxList; + + enum InitialComparisonMode{CompareAppearance=0, CompareCharacters=1, +@@ -50,9 +45,9 @@ struct PagePair + + bool isNull() { return left == -1 || right == -1; } + +- const int left; +- const int right; +- const bool hasVisualDifference; ++ int left; ++ int right; ++ bool hasVisualDifference; + }; + Q_DECLARE_METATYPE(PagePair) + +diff --git a/helpform.cpp b/helpform.cpp +index 7a8269f..6354ee4 100644 +--- a/helpform.cpp ++++ b/helpform.cpp +@@ -16,6 +16,7 @@ + #include <QKeySequence> + #include <QSettings> + #include <QShortcut> ++#include <QStringConverter> + #include <QTextBrowser> + #include <QTextStream> + +@@ -31,7 +32,7 @@ HelpForm::HelpForm(const QString &language, QWidget *parent) + QFile file(filename); + file.open(QIODevice::ReadOnly|QIODevice::Text); + QTextStream in(&file); +- in.setCodec("UTF-8"); ++ in.setEncoding(QStringConverter::Utf8); + viewer->setHtml(in.readAll()); + viewer->setReadOnly(true); + setCentralWidget(viewer); +diff --git a/main.cpp b/main.cpp +index 321ecc4..a6063d3 100644 +--- a/main.cpp ++++ b/main.cpp +@@ -16,7 +16,6 @@ + #include <QLibraryInfo> + #include <QLocale> + #include <QSettings> +-#include <QTextCodec> + #include <QTextStream> + #include <QTranslator> + +@@ -101,12 +100,12 @@ int main(int argc, char *argv[]) + } + + QTranslator qtTranslator; +- qtTranslator.load("qt_" + language, +- QLibraryInfo::location(QLibraryInfo::TranslationsPath)); +- app.installTranslator(&qtTranslator); ++ if (qtTranslator.load("qt_" + language, ++ QLibraryInfo::path(QLibraryInfo::TranslationsPath))) ++ app.installTranslator(&qtTranslator); + QTranslator appTranslator; +- appTranslator.load("diffpdf_" + language, ":/"); +- app.installTranslator(&appTranslator); ++ if (appTranslator.load("diffpdf_" + language, ":/")) ++ app.installTranslator(&appTranslator); + + MainWindow window(debug, comparisonMode, filename1, filename2, + language.left(2)); // We want de not de_DE etc. +diff --git a/mainwindow.cpp b/mainwindow.cpp +index c9dac53..bcdc390 100644 +--- a/mainwindow.cpp ++++ b/mainwindow.cpp +@@ -27,18 +27,21 @@ + #include <QComboBox> + #include <QDir> + #include <QDockWidget> ++#include <QElapsedTimer> + #include <QEvent> + #include <QFileDialog> + #include <QGroupBox> + #include <QLabel> + #include <QLineEdit> + #include <QMessageBox> ++#include <QPageLayout> + #include <QPainter> + #include <QPixmapCache> + #include <QPlainTextEdit> + #include <QPrinter> + #include <QPushButton> + #include <QRadioButton> ++#include <QRegularExpression> + #include <QScrollArea> + #include <QScrollBar> + #include <QSettings> +@@ -1249,11 +1252,7 @@ PdfDocument MainWindow::getPdf(const QString &filename) + else if (pdf->isLocked()) { + QMessageBox::warning(this, tr("DiffPDF — Error"), + tr("Cannot read a locked PDF ('%1').").arg(filename)); +-#if QT_VERSION >= 0x040600 +- pdf.clear(); +-#else +- pdf.reset(); +-#endif ++ return {}; + } + return pdf; + } +@@ -1319,7 +1318,8 @@ QList<int> MainWindow::getPageList(int which, PdfDocument pdf) + bool error = false; + QList<int> pages; + QString page_string = pagesEdit->text(); +- page_string = page_string.replace(QRegExp("\\s+"), ""); ++ static QRegularExpression const spaces("\\s+"); ++ page_string = page_string.replace(spaces, ""); + QStringList page_list = page_string.split(","); + bool ok; + foreach (const QString &page, page_list) { +@@ -1387,7 +1387,7 @@ void MainWindow::compare() + } + + comparePrepareUi(); +- QTime time; ++ QElapsedTimer time; + time.start(); + const QPair<int, int> pair = comparePages(filename1, pdf1, filename2, + pdf2); +@@ -1685,8 +1685,8 @@ void MainWindow::saveAsPdf(const int start, const int end, + printer.setOutputFormat(QPrinter::PdfFormat); + printer.setColorMode(QPrinter::Color); + printer.setCreator(tr("DiffPDF")); +- printer.setOrientation(savePages == SaveBothPages +- ? QPrinter::Landscape : QPrinter::Portrait); ++ printer.setPageOrientation(savePages == SaveBothPages ++ ? QPageLayout::Landscape : QPageLayout::Portrait); + QPainter painter(&printer); + painter.setRenderHints(QPainter::Antialiasing| + QPainter::TextAntialiasing|QPainter::SmoothPixmapTransform); +@@ -1802,7 +1802,7 @@ void MainWindow::showZones() + void MainWindow::showZones(const int Width, const TextBoxList &list, + QLabel *label) + { +- if (!label || !label->pixmap() || label->pixmap()->isNull()) ++ if (!label || label->pixmap().isNull()) + return; + const bool ComparingWords = compareComboBox->currentIndex() == + CompareWords; +@@ -1815,7 +1815,7 @@ void MainWindow::showZones(const int Width, const TextBoxList &list, + columnsSpinBox->value()); + const int DPI = static_cast<int>(POINTS_PER_INCH * + (zoomSpinBox->value() / 100.0)); +- QPixmap pixmap = label->pixmap()->copy(); ++ QPixmap pixmap = label->pixmap().copy(); + QPainter painter(&pixmap); + painter.setPen(Qt::green); + for (int i = 0; i < paths.count(); ++i) { +@@ -1844,11 +1844,11 @@ void MainWindow::showMargins() + + void MainWindow::showMargins(QLabel *label) + { +- if (!label || !label->pixmap() || label->pixmap()->isNull()) ++ if (!label || label->pixmap().isNull()) + return; + const int DPI = static_cast<int>(POINTS_PER_INCH * + (zoomSpinBox->value() / 100.0)); +- QPixmap pixmap = label->pixmap()->copy(); ++ QPixmap pixmap = label->pixmap().copy(); + QPainter painter(&pixmap); + painter.setPen(Qt::cyan); + int left = leftMarginSpinBox->value(); +@@ -1880,12 +1880,11 @@ void MainWindow::showMargins(QLabel *label) + + void MainWindow::setAMargin(const QPoint &pos) + { +- if (!marginsGroupBox->isChecked() || !page1Label->pixmap() || +- page1Label->pixmap()->isNull()) ++ if (!marginsGroupBox->isChecked() || page1Label->pixmap().isNull()) + return; + const int DPI = static_cast<int>(POINTS_PER_INCH * + (zoomSpinBox->value() / 100.0)); +- const QSize &size = page1Label->pixmap()->size(); ++ const QSize &size = page1Label->pixmap().size(); + int x = pos.x(); + int y = pos.y(); + const int HorizontalMiddle = size.width() / 2; +diff --git a/mainwindow.hpp b/mainwindow.hpp +index 448d21c..6a04179 100644 +--- a/mainwindow.hpp ++++ b/mainwindow.hpp +@@ -14,12 +14,7 @@ + + #include "generic.hpp" + #include "saveform.hpp" +-#if QT_VERSION >= 0x040600 +-#include <QSharedPointer> +-#else +-#include <tr1/memory> +-#endif +-#include <poppler-qt5.h> ++#include <poppler-qt6.h> + #include <QBrush> + #include <QList> + #include <QMainWindow> +diff --git a/resources.qrc b/resources.qrc +index 5464869..aa0f6be 100644 +--- a/resources.qrc ++++ b/resources.qrc +@@ -3,9 +3,6 @@ + <file alias="icon.png">images/icon.png</file> + <file alias="left.png">images/left.png</file> + <file alias="right.png">images/right.png</file> +-<file>diffpdf_cz.qm</file> +-<file>diffpdf_de.qm</file> +-<file>diffpdf_fr.qm</file> + <file>help.html</file> + <file>help_cz.html</file> + <file>help_de.html</file> +diff --git a/sequence_matcher.cpp b/sequence_matcher.cpp +index cc65425..9dc5d98 100644 +--- a/sequence_matcher.cpp ++++ b/sequence_matcher.cpp +@@ -11,6 +11,7 @@ + */ + + #include "sequence_matcher.hpp" ++#include <algorithm> + #include <QSet> + + +@@ -136,7 +137,7 @@ QList<Match> SequenceMatcher::get_matching_blocks() + offsets.append(Offsets(i + k, a_high, j + k, b_high)); + } + } +- qSort(matching_blocks.begin(), matching_blocks.end(), matchLessThan); ++ std::sort(matching_blocks.begin(), matching_blocks.end(), matchLessThan); + + int i1 = 0; + int j1 = 0; +diff --git a/textitem.cpp b/textitem.cpp +index f7ce133..728cbb3 100644 +--- a/textitem.cpp ++++ b/textitem.cpp +@@ -14,6 +14,7 @@ + + #include <QDir> + #include <QFile> ++#include <QStringConverter> + #include <QTextStream> + + +@@ -130,7 +131,7 @@ const QList<QPainterPath> TextItems::generateZones(const int Width, + const int Column = ((Columns == 1) ? 0 + : (rect.width() > Span) ? Columns : rect.right() / Span); + const int y = normalizedY(static_cast<int>(rect.y()), ToleranceY); +- zonesForColumn.insertMulti(Key(Column, y, rect.x()), zone); ++ zonesForColumn.insert(Key(Column, y, rect.x()), zone); + } + return zonesForColumn.values(); + } +@@ -152,7 +153,7 @@ void TextItems::debug(const int page, const int ToleranceY, + .arg(file.errorString()))); + } + QTextStream out(&file); +- out.setCodec("UTF-8"); ++ out.setEncoding(QStringConverter::Utf8); + out << "Page #" << page << ": " + << (ComparingWords ? "Words" : "Characters") << " mode\n"; + for (int i = 0; i < items.count(); ++i) { +@@ -202,7 +203,7 @@ const TextItems getCharacters(const TextBoxList &list) + TextItems items; + foreach (const PdfTextBox &box, list) { + const QString word = box->text(); +- int limit = word.count() - 1; ++ int limit = word.size() - 1; + for (int i = limit; i >= 0; --i) + if (!word[i].isSpace()) + break; |