Mercurial > minori
annotate src/gui/dialog/licenses.cc @ 366:886f66775f31
animone: add preliminary AT-SPI stuff
anime_list: finish the regular singular right click menu
| author | Paper <paper@tflc.us> | 
|---|---|
| date | Sun, 17 Nov 2024 19:56:01 -0500 | 
| parents | f81bed4e04ac | 
| children | 8d45d892be88 | 
| 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 "pugixml.hpp" | 
| 
 
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 "utf8proc.h" | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
10 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
11 #include <fmt/core.h> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
12 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
13 #include <QCoreApplication> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
14 #include <QFont> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
15 #include <QHBoxLayout> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
16 #include <QTabWidget> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
17 #include <QTextBrowser> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
18 #include <QTextCharFormat> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
19 #include <QTextCursor> | 
| 
347
 
a0aa8c8c4307
dep/anitomy: port to use UCS-4 rather than wide strings
 
Paper <paper@paper.us.eu.org> 
parents: 
339 
diff
changeset
 | 
20 #include <QFile> | 
| 
339
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
22 #include <curl/curl.h> | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
23 #ifdef WIN32 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
24 # include "sys/win32/dark_theme.h" | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
25 #endif | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
26 | 
| 
365
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
27 static QWidget *create_license_widget(QWidget *parent, const QString& license) { | 
| 
339
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
28 QTextBrowser* paragraph = new QTextBrowser(parent); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
29 paragraph->setFrameShape(QFrame::NoFrame); | 
| 
365
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
30 paragraph->setPlainText(license); | 
| 
339
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
31 paragraph->setFont(QFont("monospace")); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
32 return paragraph; | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
33 } | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
34 | 
| 
365
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
35 static void create_basic_license(QTabWidget *tab_widget, const QString& filename, const QString& title) { | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
36 QFile f(filename); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
37 if (!f.exists()) | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
38 return; | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
39 | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
40 f.open(QFile::ReadOnly | QFile::Text); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
41 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
 | 
42 } | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
43 | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
44 static void create_dual_license(QTabWidget *tab_widget, const QString& filename1, const QString& title1, const QString& filename2, const QString& title2) { | 
| 
 
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 | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
61 QLabel *dual_notice = new QLabel(QCoreApplication::tr("%1 was originally forked from %2, where any changes divergent from %2 are now under a different license. Both the licenses for %1 and %2 are provided below, respectfully:").arg(title1, title2), dual); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
62 dual_notice->setWordWrap(true); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
63 dual_layout->addWidget(dual_notice); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
64 dual_layout->addWidget(create_license_widget(dual, l1)); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
65 dual_layout->addWidget(create_license_widget(dual, l2)); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
66 | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
67 tab_widget->addTab(dual, title1); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
68 } | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
69 | 
| 
339
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
70 LicensesWindow::LicensesWindow(QWidget* parent) : QDialog(parent) { | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
71 resize(641, 500); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
72 setWindowTitle(tr("About Minori")); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
73 setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
74 setAutoFillBackground(true); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
75 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
76 QHBoxLayout* layout = new QHBoxLayout(this); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
77 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
78 setBackgroundRole(QPalette::Base); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
79 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
80 QTabWidget *tab_widget = new QTabWidget(this); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
81 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
82 layout->addWidget(tab_widget); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
83 | 
| 
365
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
84 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
 | 
85 | 
| 
365
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
86 create_dual_license(tab_widget, ":/licenses/LICENSE.MIT.animone", tr("Animone"), ":/licenses/LICENSE.BSD.animone", tr("Anisthesia")); | 
| 
339
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
87 | 
| 
365
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
88 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
 | 
89 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
 | 
90 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
 | 
91 create_basic_license(tab_widget, ":/licenses/LICENSE.pugixml", tr("pugixml")); | 
| 
 
f81bed4e04ac
*: megacommit that probably breaks things
 
Paper <paper@paper.us.eu.org> 
parents: 
347 
diff
changeset
 | 
92 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
 | 
93 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
 | 
94 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
 | 
95 } | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
96 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
97 void LicensesWindow::showEvent(QShowEvent* event) { | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
98 QDialog::showEvent(event); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
99 #ifdef WIN32 | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
100 win32::SetTitleBarsToBlack(session.config.theme.IsInDarkTheme()); | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
101 #endif | 
| 
 
eac06513db86
dialog/about: add licenses button
 
Paper <paper@paper.us.eu.org> 
parents:  
diff
changeset
 | 
102 } | 
