| 1 | /* |
| 2 | This file is part of the KDE libraries |
| 3 | SPDX-FileCopyrightText: 2007 Urs Wolfer <uwolfer at kde.org> |
| 4 | |
| 5 | Parts of this class have been take from the KAboutKDE class, which was |
| 6 | SPDX-FileCopyrightText: 2000 Espen Sand <espen@kde.org> |
| 7 | |
| 8 | SPDX-License-Identifier: LGPL-2.0-only |
| 9 | */ |
| 10 | |
| 11 | #include "kaboutkdedialog_p.h" |
| 12 | |
| 13 | #include <QDialogButtonBox> |
| 14 | #include <QHBoxLayout> |
| 15 | #include <QLabel> |
| 16 | #include <QStandardPaths> |
| 17 | #include <QTabWidget> |
| 18 | #include <QVBoxLayout> |
| 19 | |
| 20 | #include <KLocalizedString> |
| 21 | #include <KTitleWidget> |
| 22 | |
| 23 | #include <kxmlgui_version.h> |
| 24 | |
| 25 | namespace KDEPrivate |
| 26 | { |
| 27 | KAboutKdeDialog::KAboutKdeDialog(QWidget *parent) |
| 28 | : QDialog(parent) |
| 29 | , d(nullptr) |
| 30 | { |
| 31 | setWindowTitle(i18nc("@title:window" , "About KDE" )); |
| 32 | |
| 33 | KTitleWidget *titleWidget = new KTitleWidget(this); |
| 34 | titleWidget->setText(i18n("<html><font size=\"5\">KDE</font><br />Be Free!</html>" )); |
| 35 | titleWidget->setIconSize(QSize(48, 48)); |
| 36 | titleWidget->setIcon(icon: QIcon::fromTheme(QStringLiteral("kde" )), alignment: KTitleWidget::ImageLeft); |
| 37 | |
| 38 | QLabel *about = new QLabel; |
| 39 | about->setMargin(10); |
| 40 | about->setAlignment(Qt::AlignTop); |
| 41 | about->setWordWrap(true); |
| 42 | about->setOpenExternalLinks(true); |
| 43 | about->setTextInteractionFlags(Qt::TextBrowserInteraction); |
| 44 | about->setText( |
| 45 | i18n("<html>" |
| 46 | "<b>KDE</b> is a world-wide community of software engineers, artists, writers, " |
| 47 | "translators and creators who are committed to <a href=\"%1\">Free Software</a> " |
| 48 | "development. KDE produces the Plasma desktop environment, hundreds of applications, " |
| 49 | "and the many software libraries that support them.<br /><br />" |
| 50 | "KDE is a cooperative enterprise: no single entity controls its direction or products. " |
| 51 | "Instead, we work together to achieve the common goal of building the world's finest " |
| 52 | "Free Software. Everyone is welcome to <a href=\"%2\">join and contribute</a> to KDE, including you.<br /><br />" |
| 53 | "Visit <a href=\"%3\">%3</a> for " |
| 54 | "more information about the KDE community and the software we produce.</html>" , |
| 55 | QStringLiteral("https://www.gnu.org/philosophy/free-sw.html" ), |
| 56 | QStringLiteral("https://community.kde.org/Get_Involved" ), |
| 57 | QStringLiteral("https://www.kde.org/" ))); |
| 58 | |
| 59 | QLabel *report = new QLabel; |
| 60 | report->setMargin(10); |
| 61 | report->setAlignment(Qt::AlignTop); |
| 62 | report->setWordWrap(true); |
| 63 | report->setOpenExternalLinks(true); |
| 64 | report->setTextInteractionFlags(Qt::TextBrowserInteraction); |
| 65 | report->setText( |
| 66 | i18n("<html>" |
| 67 | "Software can always be improved, and the KDE team is ready to " |
| 68 | "do so. However, you - the user - must tell us when " |
| 69 | "something does not work as expected or could be done better.<br /><br />" |
| 70 | "KDE has a bug tracking system. Visit " |
| 71 | "<a href=\"%1\">%1</a> or " |
| 72 | "use the \"Report Bug...\" dialog from the \"Help\" menu to report bugs.<br /><br />" |
| 73 | "If you have a suggestion for improvement then you are welcome to use " |
| 74 | "the bug tracking system to register your wish. Make sure you use the " |
| 75 | "severity called \"Wishlist\".</html>" , |
| 76 | QStringLiteral("https://bugs.kde.org/" ))); |
| 77 | |
| 78 | QLabel *join = new QLabel; |
| 79 | join->setMargin(10); |
| 80 | join->setAlignment(Qt::AlignTop); |
| 81 | join->setWordWrap(true); |
| 82 | join->setOpenExternalLinks(true); |
| 83 | join->setTextInteractionFlags(Qt::TextBrowserInteraction); |
| 84 | join->setText( |
| 85 | i18n("<html>" |
| 86 | "You do not have to be a software developer to be a member of the " |
| 87 | "KDE team. You can join the language teams that translate " |
| 88 | "program interfaces. You can provide graphics, themes, sounds, and " |
| 89 | "improved documentation. You decide!" |
| 90 | "<br /><br />" |
| 91 | "Visit " |
| 92 | "<a href=\"%1\">%1</a> " |
| 93 | "for information on some projects in which you can participate." |
| 94 | "<br /><br />" |
| 95 | "If you need more information or documentation, then a visit to " |
| 96 | "<a href=\"%2\">%2</a> " |
| 97 | "will provide you with what you need.</html>" , |
| 98 | QStringLiteral("https://community.kde.org/Get_Involved" ), |
| 99 | QStringLiteral("https://develop.kde.org/" ))); |
| 100 | |
| 101 | QLabel *support = new QLabel; |
| 102 | support->setMargin(10); |
| 103 | support->setAlignment(Qt::AlignTop); |
| 104 | support->setWordWrap(true); |
| 105 | support->setOpenExternalLinks(true); |
| 106 | support->setTextInteractionFlags(Qt::TextBrowserInteraction); |
| 107 | support->setText( |
| 108 | i18n("<html>" |
| 109 | "KDE software is and will always be available free of charge, however creating it is not free.<br /><br />" |
| 110 | "To support development the KDE community has formed the KDE e.V., a non-profit organization " |
| 111 | "legally founded in Germany. KDE e.V. represents the KDE community in legal and financial matters. " |
| 112 | "See <a href=\"%1\">%1</a>" |
| 113 | " for information on KDE e.V.<br /><br />" |
| 114 | "KDE benefits from many kinds of contributions, including financial. " |
| 115 | "We use the funds to reimburse members and others for expenses " |
| 116 | "they incur when contributing. Further funds are used for legal " |
| 117 | "support and organizing conferences and meetings. <br /> <br />" |
| 118 | "We would like to encourage you to support our efforts with a " |
| 119 | "financial donation, using one of the ways described at " |
| 120 | "<a href=\"%2\">%2</a>." |
| 121 | "<br /><br />Thank you very much in advance for your support.</html>" , |
| 122 | QStringLiteral("https://ev.kde.org/" ), |
| 123 | QStringLiteral("https://www.kde.org/community/donations/" ))); |
| 124 | support->setMinimumSize(support->sizeHint()); |
| 125 | |
| 126 | QTabWidget *tabWidget = new QTabWidget; |
| 127 | tabWidget->setUsesScrollButtons(false); |
| 128 | tabWidget->addTab(widget: about, i18nc("@title:tab About KDE" , "&About" )); |
| 129 | tabWidget->addTab(widget: report, i18nc("@title:tab" , "&Report Bugs or Wishes" )); |
| 130 | tabWidget->addTab(widget: join, i18nc("@title:tab" , "&Join KDE" )); |
| 131 | tabWidget->addTab(widget: support, i18nc("@title:tab" , "&Support KDE" )); |
| 132 | |
| 133 | QLabel *image = new QLabel; |
| 134 | QIcon icon(QStringLiteral(":/kxmlgui5/aboutkde.svg" )); |
| 135 | image->setPixmap(icon.pixmap(w: 150, h: 250)); |
| 136 | |
| 137 | QVBoxLayout *sideLayout = new QVBoxLayout; |
| 138 | sideLayout->addWidget(titleWidget); |
| 139 | sideLayout->addWidget(image, stretch: 1000); |
| 140 | |
| 141 | QHBoxLayout *midLayout = new QHBoxLayout; |
| 142 | midLayout->addLayout(layout: sideLayout); |
| 143 | midLayout->addWidget(tabWidget, stretch: 1000); |
| 144 | |
| 145 | QDialogButtonBox *buttonBox = new QDialogButtonBox; |
| 146 | buttonBox->setStandardButtons(QDialogButtonBox::Close); |
| 147 | connect(sender: buttonBox, signal: &QDialogButtonBox::accepted, context: this, slot: &QDialog::accept); |
| 148 | connect(sender: buttonBox, signal: &QDialogButtonBox::rejected, context: this, slot: &QDialog::reject); |
| 149 | |
| 150 | QVBoxLayout *mainLayout = new QVBoxLayout; |
| 151 | mainLayout->addLayout(layout: midLayout); |
| 152 | mainLayout->addWidget(buttonBox); |
| 153 | |
| 154 | setLayout(mainLayout); |
| 155 | } |
| 156 | |
| 157 | } |
| 158 | |
| 159 | #include "moc_kaboutkdedialog_p.cpp" |
| 160 | |