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")); |
