annotate src/gui/dialog/licenses.cc @ 376:5d716acb2774

gui/dialog/dialog: fix win32 build
author Paper <paper@tflc.us>
date Fri, 25 Jul 2025 12:28:38 -0400
parents ea3a74ed2ef9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
1 #include "gui/dialog/licenses.h"
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
2 #include "core/json.h"
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
3 #include "core/session.h"
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
4 #include "core/strings.h"
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
5 #include "gui/widgets/text.h"
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
6
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
7 #include <fmt/core.h>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
8
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
9 #include <QCoreApplication>
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
10 #include <QFile>
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
11 #include <QFont>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
12 #include <QHBoxLayout>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
13 #include <QTabWidget>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
14 #include <QTextBrowser>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
15 #include <QTextCharFormat>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
16 #include <QTextCursor>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
17
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
18 #include <curl/curl.h>
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
19 #ifdef WIN32
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
20 # include "sys/win32/dark_theme.h"
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
21 #endif
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
22
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
23 static QWidget *create_license_widget(QWidget *parent, const QString &license)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
24 {
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
25 QTextBrowser *paragraph = new QTextBrowser(parent);
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
26 paragraph->setFrameShape(QFrame::NoFrame);
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
27 paragraph->setPlainText(license);
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
28 paragraph->setFont(QFont("monospace"));
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
29 return paragraph;
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
30 }
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
31
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
32 static void create_basic_license(QTabWidget *tab_widget, const QString &filename, const QString &title)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
33 {
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
34 QFile f(filename);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
35 if (!f.exists())
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
36 return;
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
37
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
38 f.open(QFile::ReadOnly | QFile::Text);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
39 tab_widget->addTab(create_license_widget(tab_widget, f.readAll()), title);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
40 }
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
41
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
42 static void create_dual_license(QTabWidget *tab_widget, const QString &filename1, const QString &title1,
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
43 const QString &filename2, const QString &title2)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
44 {
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
45 QString l1, l2;
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
46 {
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
47 QFile f1(filename1), f2(filename2);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
48 if (!f1.exists() || !f2.exists())
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
49 return;
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
50
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
51 f1.open(QFile::ReadOnly | QFile::Text);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
52 f2.open(QFile::ReadOnly | QFile::Text);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
53
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
54 l1 = f1.readAll();
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
55 l2 = f2.readAll();
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
56 }
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
57
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
58 QWidget *dual = new QWidget(tab_widget);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
59 QVBoxLayout *dual_layout = new QVBoxLayout(dual);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
60
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
61 QLabel *dual_notice = new QLabel(
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
62 QCoreApplication::tr("%1 was originally forked from %2, where any changes divergent from %2 are now under a "
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
63 "different license. Both the licenses for %1 and %2 are provided below, respectfully:")
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
64 .arg(title1, title2),
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
65 dual);
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
66 dual_notice->setWordWrap(true);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
67 dual_layout->addWidget(dual_notice);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
68 dual_layout->addWidget(create_license_widget(dual, l1));
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
69 dual_layout->addWidget(create_license_widget(dual, l2));
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
70
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
71 tab_widget->addTab(dual, title1);
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
72 }
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
73
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
74 LicensesWindow::LicensesWindow(QWidget *parent) : Dialog(parent)
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
75 {
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
76 resize(641, 500);
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
77 setWindowTitle(tr("About Minori"));
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
78 setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
79 setAutoFillBackground(true);
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
80
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
81 QHBoxLayout *layout = new QHBoxLayout(this);
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
82
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
83 setBackgroundRole(QPalette::Base);
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
84
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
85 QTabWidget *tab_widget = new QTabWidget(this);
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
86
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
87 layout->addWidget(tab_widget);
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
88
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
89 create_basic_license(tab_widget, ":/licenses/LICENSE.minori", tr("Minori"));
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
90
370
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
91 create_dual_license(tab_widget, ":/licenses/LICENSE.MIT.animone", tr("Animone"), ":/licenses/LICENSE.BSD.animone",
ea3a74ed2ef9 *: hm, last commit wasn't quite finished?
Paper <paper@tflc.us>
parents: 368
diff changeset
92 tr("Anisthesia"));
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
93
365
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
94 create_basic_license(tab_widget, ":/licenses/LICENSE.anitomy", tr("Anitomy"));
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
95 create_basic_license(tab_widget, ":/licenses/LICENSE.fmt", tr("fmt"));
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
96 create_basic_license(tab_widget, ":/licenses/LICENSE.nlohmann", tr("JSON for Modern C++"));
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
97 create_basic_license(tab_widget, ":/licenses/LICENSE.semver", tr("semver"));
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
98 create_basic_license(tab_widget, ":/licenses/LICENSE.toml11", tr("toml11"));
f81bed4e04ac *: megacommit that probably breaks things
Paper <paper@paper.us.eu.org>
parents: 347
diff changeset
99 create_basic_license(tab_widget, ":/licenses/LICENSE.utf8proc", tr("utf8proc"));
339
eac06513db86 dialog/about: add licenses button
Paper <paper@paper.us.eu.org>
parents:
diff changeset
100 }