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