23 #include <QApplication>    24 #include <QAbstractScrollArea>    25 #include <QHBoxLayout>    28 #include <QListIterator>    30 #include <QTreeWidget>    31 #include <QTreeWidgetItem>    32 #include <QVBoxLayout>    33 #include <QtAlgorithms>    36 #include <KLocalizedString>    39 #include <kxmlgui_version.h>    47 #define NAME_OF_TRANSLATORS  "Your names"    48 #define EMAIL_OF_TRANSLATORS "Your emails"    61     const QList<Kwave::PluginManager::PluginModule> &plugin_info
    63     :QDialog(parent), Ui::AboutDialogBase()
    68     KAboutData about_data = KAboutData::applicationData();
    71     QString kde_version = QString::fromLatin1(KXMLGUI_VERSION_STRING);
    72     QString kwave_version = about_data.componentName()+
    73         _(
" ") + about_data.version() + 
_(
" ");
    74     QString header_text = 
_(
"<h2>") + kwave_version +
    75         i18n(
"(built with KDE Frameworks %1)", kde_version) + 
_(
"</h2>");
    76     header->setText(header_text);
    80     foreach (
const KAboutPerson &author, about_data.authors()) {
    83             author.emailAddress(),
    88     authorframe->setWidget(about);
    89     authorframe->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    93     foreach (
const KAboutPerson &credit, about_data.credits()) {
    96             credit.emailAddress(),
   101     thanksframe->setWidget(contrib);
   102     thanksframe->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
   105     QTreeWidget *pluginsinfo = 
new QTreeWidget(pluginsinfoframe);
   106     QVBoxLayout *plugins_layout = 
new QVBoxLayout(pluginsinfoframe);
   107     plugins_layout->addWidget(pluginsinfo);
   108     pluginsinfoframe->setLayout(plugins_layout);
   110     pluginsinfo->setColumnCount(3);
   111     pluginsinfo->setSizePolicy(QSizePolicy::MinimumExpanding,
   112                                QSizePolicy::Expanding);
   113     pluginsinfo->setSelectionMode(QAbstractItemView::NoSelection);
   115     headers << i18n(
"name") << i18n(
"version") << i18n(
"authors");
   116     pluginsinfo->setHeaderLabels(headers);
   117     pluginsinfo->setAllColumnsShowFocus( 
false );
   118     pluginsinfo->setItemsExpandable(
false);
   119     pluginsinfo->setRootIsDecorated(
false);
   121     QList<QTreeWidgetItem *> plugins;
   123     QList<Kwave::PluginManager::PluginModule> list = plugin_info;
   124     if (!list.isEmpty()) {
   131             plugins.append(
new QTreeWidgetItem(
   132                 static_cast<QTreeWidget *>(Q_NULLPTR), item));
   134         pluginsinfo->insertTopLevelItems(0, plugins);
   136     pluginsinfo->resizeColumnToContents(1);
   137     pluginsinfo->resizeColumnToContents(0);
   139     QString num_plugins = i18n(
"Plugins found: %1", plugins.count());
   140     pluginsnumval->setText(num_plugins);
   141     pluginsinfoframe->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
   144     kwave_url_label->setText(
_(
"<a href=\"") +
   145         about_data.homepage() + 
_(
"\">") +
   146         about_data.homepage() + 
_(
"</a>"));
   147     kwave_url_label->setOpenExternalLinks(
true);
   148     kwave_url_label->setTextInteractionFlags(Qt::LinksAccessibleByMouse);
   152     QList<KAboutPerson> translators = about_data.translators();
   162     if (translators.isEmpty()) {
   163         about_data.setTranslator(
   167         translators = about_data.translators();
   171     if (translators.isEmpty() || ((translators.count() == 1) &&
   173         tabwidget->removeTab(4);
   175         foreach (
const KAboutPerson &translator, translators) {
   176             QString website = translator.webAddress();
   180             foreach (
const KAboutPerson &author, about_data.authors())
   181                 if (author.name() == translator.name()) {
   182                     website = author.webAddress();
   188             foreach (
const KAboutPerson &credit, about_data.credits())
   189                 if (credit.name() == translator.name()) {
   190                     website = credit.webAddress();
   196                 translator.emailAddress(),
   202         QString about_team = about_data.aboutTranslationTeam();
   203         if (!about_team.isEmpty()) {
   204             about_team.prepend(
_(
"<br>"));
   205             trans->
addWidget(
new(std::nothrow) QLabel(about_team, trans));
   208         translatorsframe->setWidget(trans);
   209         translatorsframe->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
   213     licenseframe->setReadOnly(
true);
   215     foreach (
const KAboutLicense &license, about_data.licenses()) {
   216         licenses += license.text();
   218     licenseframe->setText(licenses);
   221     buttonBox->setFocus();
 
AboutDialog(QWidget *parent, const QList< Kwave::PluginManager::PluginModule > &plugin_info)
#define EMAIL_OF_TRANSLATORS
void addWidget(QWidget *widget)
static bool pluginInfoDescriptionLessThan(const Kwave::PluginManager::PluginModule &info1, const Kwave::PluginManager::PluginModule &info2)
void addPerson(const QString &name, const QString &email, const QString &url, const QString &task)
#define NAME_OF_TRANSLATORS