Repository navigation
Expand file tree
/
Copy pathaboutform.cpp
More file actions
116 lines (113 loc) · 5.79 KB
/
Copy pathaboutform.cpp
File metadata and controls
116 lines (113 loc) · 5.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
/*
Copyright © 2011-13 Qtrac Ltd. All rights reserved.
This program or module is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation, either version 2 of
the License, or (at your option) any later version. This program is
distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
*/
#include "aboutform.hpp"
// POPPLER_VERSION is supplied via -DPOPPLER_VERSION=... from CMakeLists.txt
#ifndef POPPLER_VERSION
# define POPPLER_VERSION "unknown"
#endif
#include <QApplication>
#include <QHBoxLayout>
#include <QTabWidget>
#include <QTextBrowser>
// From project() in CMakeLists.txt
const QString AboutForm::Version(DISPARPDF_VERSION);
const QString AboutForm::ProgramName("disparPDF");
AboutForm::AboutForm(QWidget *parent) : QDialog(parent)
{
QTextBrowser *aboutBrowser = new QTextBrowser;
aboutBrowser->setReadOnly(true);
aboutBrowser->setOpenExternalLinks(true);
aboutBrowser->setHtml(tr(
"<table border=0>"
"<tr><td width=90%><b>%1 %2</b> by Yuwsuke Kieda</td>"
"<td rowspan=6><img align=right src=\":/icon.png\"></td></tr>"
"<tr><td>Site: <a href='https://github.com/yuw/disparPDF'>github.com/yuw/disparPDF</a></td></tr>"
"<tr><td>This Qt6 port was created with the assistance of AI tools (Claude by Anthropic).</td></tr>"
"<hr/>"
"<tr><td><b>%1 %2</b> is based on ConfrontaPDF 1.1 by Luca Bellonda.</td></tr>"
"<tr><td>ConfrontaPDF is a fork of DiffPDF by Mark Summerfield (2008–2013).</td></tr>"
"<tr><td>Built with Qt %3 and Poppler %4.</td></tr>"
"</table><hr>"
"<p>This program compares the text or the visual appearance of "
"each page in two PDF files and supports batch operations.</p>"
"<hr>"
"<h3>History</h3>"
"<p>The original open source <b>DiffPDF</b> was created and maintained by "
"<b>Mark Summerfield</b> 2008–2013.<br/>"
"Source: <a href='http://www.qtrac.eu/diffpdf-foss.html'>http://www.qtrac.eu/diffpdf-foss.html</a><br/>"
"Mark's commercial versions: <a href='http://www.qtrac.eu/diffpdf.html'>http://www.qtrac.eu/diffpdf.html</a></p>"
"<p><b>ConfrontaPDF</b> is a fork by <b>Luca Bellonda</b>, begun in 2015.<br/>"
"Source: <a href='https://github.com/lbellonda/ConfrontaPDF'>github.com/lbellonda/ConfrontaPDF</a></p>"
"<p>This <b>Qt6 port (v%2)</b> was created by <b>Yuwsuke Kieda</b> in 2026, "
"with the assistance of AI tools.<br/>"
"Source: <a href='https://github.com/yuw/disparPDF'>github.com/yuw/disparPDF</a></p>"
).arg(qApp->applicationName())
.arg(Version).arg(qVersion()).arg(POPPLER_VERSION));
QTextBrowser *contributorsBrowser = new QTextBrowser;
contributorsBrowser->setReadOnly(true);
contributorsBrowser->setHtml(tr("<table>"
"<tr><td>•</td><td><b>Yuwsuke Kieda</b> — "
"Qt6 port (2026), with AI assistance (Claude by Anthropic)</td></tr>"
"<tr><td>•</td><td><b>Luca Bellonda</b> — "
"ConfrontaPDF fork (2015)</td></tr>"
"<tr><td>•</td><td><b>Mark Summerfield</b> — "
"wrote the original DiffPDF</td></tr>"
"<tr><td>•</td><td bgcolor=lightyellow><i>Anonymous Company</i> "
"— funded the addition of the margin exclusion "
"functionality</td></tr>"
"<tr><td>•</td><td><b>David Paleino</b> — "
"Debian packager</td></tr>"
"<tr><td>•</td><td><b>Dirk Loss</b> — creating "
"Mac binaries</td></tr>"
"<tr><td>•</td><td>Florian Heiderich — suggested "
"using composition modes for showing subtle differences</td></tr>"
"<tr><td>•</td><td><b>Jasmin Blanchette</b> — "
"the original idea and subsequent suggestions</td></tr>"
"<tr><td>•</td><td>Liviu Andronic — suggested adding "
"drag and drop</td></tr>"
"<tr><td>•</td><td>Paul Howarth — suggestions "
"resulting in Characters mode</td></tr>"
"<tr><td>•</td><td bgcolor=\"#F0F0F0\"><i>Pavel Fric</i> — "
"Czech translation</td></tr>"
"<tr><td>•</td><td bgcolor=\"#F0F0F0\"><i>Pierre-Alain "
"Bandinelli</i>— French translation</td></tr>"
"<tr><td>•</td><td bgcolor=\"#F0F0F0\"><i>Rainer Krachten</i> "
"— German translation and various suggestions</td></tr>"
"<tr><td>•</td><td>Rory Gordon — suggested adding "
"drag and drop</td></tr>"
"<tr><td>•</td><td>Bryan Huh — subtle bug fix"
"</td></tr>"
"<tr><td>•</td><td><b>Steven Lee</b> — creating "
"Windows binaries</td></tr>"
"</table>"));
QTextBrowser *licenceBrowser = new QTextBrowser;
licenceBrowser->setReadOnly(true);
licenceBrowser->setHtml(tr(
"This program is free software: you can redistribute it "
"and/or modify it under the terms of the GNU General Public License "
"as published by the Free Software Foundation, either version 2 of "
"the License, or (at your option), any "
"later version. This program is distributed in the hope that it will "
"be useful, but WITHOUT ANY WARRANTY; without even the implied "
"warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. "
"See the GNU General Public License (in file <tt>gpl-2.0.txt</tt>) "
"for more details."));
QTabWidget *tabWidget = new QTabWidget;
tabWidget->addTab(aboutBrowser, tr("&About"));
tabWidget->addTab(contributorsBrowser, tr("&Contributors"));
tabWidget->addTab(licenceBrowser, tr("&License"));
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(tabWidget);
setLayout(layout);
resize(520, 486);
setWindowTitle(tr("%1 — About").arg(AboutForm::ProgramName));
}