/* This file is part of the KDE libraries SPDX-FileCopyrightText: 2007 Urs Wolfer SPDX-FileCopyrightText: 2008, 2019 Friedrich W. H. Kossebau SPDX-FileCopyrightText: 2010 Teo Mrnjavac Parts of this class have been take from the KAboutApplication class, which was SPDX-FileCopyrightText: 2000 Waldo Bastian SPDX-FileCopyrightText: 2000 Espen Sand SPDX-License-Identifier: LGPL-2.0-only */ #include "kaboutplugindialog.h" #include "kabstractaboutdialog_p.h" // KF #include #include #include #include // Qt #include #include class KAboutPluginDialogPrivate : public KAbstractAboutDialogPrivate { public: KAboutPluginDialogPrivate(const KPluginMetaData &pluginMetaData, KAboutPluginDialog *parent) : q(parent) , pluginMetaData(pluginMetaData) , pluginLicense(KAboutLicense::byKeyword(pluginMetaData.license())) { } void init(KAboutPluginDialog::Options opt); public: KAboutPluginDialog *const q; const KPluginMetaData pluginMetaData; const KAboutLicense pluginLicense; }; KAboutPluginDialog::KAboutPluginDialog(const KPluginMetaData &pluginMetaData, QWidget *parent) : KAboutPluginDialog(pluginMetaData, NoOptions, parent) { } KAboutPluginDialog::KAboutPluginDialog(const KPluginMetaData &pluginMetaData, Options opt, QWidget *parent) : QDialog(parent) , d(new KAboutPluginDialogPrivate(pluginMetaData, this)) { d->init(opt); } KAboutPluginDialog::~KAboutPluginDialog() { // The delegates want to be deleted before the items it created qDeleteAll(findChildren()); } void KAboutPluginDialogPrivate::init(KAboutPluginDialog::Options opt) { q->setWindowTitle(i18nc("@title:window", "About %1", pluginMetaData.name())); // Set up the title widget... const QIcon pluginIcon = !pluginMetaData.iconName().isEmpty() ? QIcon::fromTheme(pluginMetaData.iconName()) : qApp->windowIcon(); QWidget *titleWidget = createTitleWidget(pluginIcon, pluginMetaData.name(), pluginMetaData.version(), q); // Then the tab bar... QTabWidget *tabWidget = new QTabWidget; tabWidget->setUsesScrollButtons(false); QString extraInformation; // Set up the first page... QWidget *aboutWidget = createAboutWidget(pluginMetaData.description(), // extraInformation, pluginMetaData.copyrightText(), pluginMetaData.website(), {pluginLicense}, q); tabWidget->addTab(aboutWidget, i18nc("@title:tab", "About")); // And here we go, authors page... const int authorCount = pluginMetaData.authors().count(); if (authorCount) { // TODO: add bug report address to plugin metadata QWidget *authorWidget = createAuthorsWidget(pluginMetaData.authors(), false, QString(), QString(), q); const QString authorPageTitle = i18ncp("@title:tab", "Author", "Authors", authorCount); tabWidget->addTab(authorWidget, authorPageTitle); } // And credits page... if (!pluginMetaData.otherContributors().isEmpty()) { QWidget *creditWidget = createCreditWidget(pluginMetaData.otherContributors(), q); tabWidget->addTab(creditWidget, i18nc("@title:tab", "Thanks To")); } // Finally, the optional translators page... if (!(opt & KAboutPluginDialog::HideTranslators) && !pluginMetaData.translators().isEmpty()) { QWidget *translatorWidget = createTranslatorsWidget(pluginMetaData.translators(), q); tabWidget->addTab(translatorWidget, i18nc("@title:tab", "Translation")); } createForm(titleWidget, tabWidget, q); } #include "moc_kaboutplugindialog.cpp"