Mercurial > minori
annotate src/gui/dialog/licenses.cc @ 375:abd956418fe9
gui/pages/now_playing: automatically update progress when the episode is "finished"
author | Paper <paper@tflc.us> |
---|---|
date | Fri, 25 Jul 2025 11:22:55 -0400 |
parents | ea3a74ed2ef9 |
children |
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 } |