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 {
KAboutKdeDialog(QWidget * parent)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 - Be Free!</font></html>"));
35     titleWidget->setIconSize(QSize(48, 48));
36     titleWidget->setIcon(QIcon::fromTheme(QStringLiteral("kde")), 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 national 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://techbase.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(about, i18nc("@title:tab About KDE", "&About"));
129     tabWidget->addTab(report, i18nc("@title:tab", "&Report Bugs or Wishes"));
130     tabWidget->addTab(join, i18nc("@title:tab", "&Join KDE"));
131     tabWidget->addTab(support, i18nc("@title:tab", "&Support KDE"));
132 
133     QLabel *image = new QLabel;
134     QIcon icon(QStringLiteral(":/kxmlgui5/aboutkde.svg"));
135     image->setPixmap(icon.pixmap(150, 250));
136 
137     QHBoxLayout *midLayout = new QHBoxLayout;
138     midLayout->addWidget(image);
139     midLayout->addWidget(tabWidget);
140 
141     QDialogButtonBox *buttonBox = new QDialogButtonBox;
142     buttonBox->setStandardButtons(QDialogButtonBox::Close);
143     connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept);
144     connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject);
145 
146     QVBoxLayout *mainLayout = new QVBoxLayout;
147     mainLayout->addWidget(titleWidget);
148     mainLayout->addLayout(midLayout);
149     mainLayout->addWidget(buttonBox);
150 
151     setLayout(mainLayout);
152 }
153 
154 }
155