# # SVN commit 946969 by cloose: # # * Add new option to show KDE3-like menu titles in the classic style menu (simplelauncher). # * Fix capitalization of "Recently used applications" option ( NOT ADDED ON MANDRIVA PATCH ) # # REVIEWED: http://reviewboard.kde.org/r/455/ # --- plasma/applets/kickoff/simpleapplet/simpleapplet.cpp 2009-04-03 23:19:06.000000000 +0200 +++ plasma/applets/kickoff/simpleapplet/simpleapplet.cpp 2009-04-03 23:35:48.000000000 +0200 @@ -3,6 +3,7 @@ Copyright 2008 Sebastian Sauer <mail@dipe.org> Copyright 2008 Helio Chissini de Castro <helio@kde.org> Copyright 2008 Arthur R Mello <arthur@mandriva.com> + Copyright 2009 Christian Loose <christian.loose@kdemail.net> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public @@ -27,6 +28,7 @@ // Qt #include <QtGui/QLabel> +#include <QtGui/QCheckBox> #include <QtGui/QComboBox> #include <QtGui/QSpinBox> #include <QtGui/QGridLayout> @@ -114,11 +116,13 @@ QStringList viewtypes;//QList<MenuLauncherApplet::ViewType> MenuLauncherApplet::FormatType formattype; int maxRecentApps; + bool showMenuTitles; QListWidget *view; KIconButton *iconButton; QComboBox *formatComboBox; QSpinBox *recentApplicationsSpinBox; + QCheckBox *showMenuTitlesCheckBox; QList<QAction*> actions; QAction* switcher; @@ -283,6 +287,7 @@ iconButton(0), formatComboBox(0), switcher(0), + showMenuTitlesCheckBox(0), contextMenuFactory(0) { } @@ -342,6 +347,7 @@ d->formattype = (MenuLauncherApplet::FormatType) fte.keyToValue(ftb); d->setMaxRecentApps(cg.readEntry("maxRecentApps", qMin(5, Kickoff::RecentApplications::self()->maximum()))); + d->showMenuTitles = cg.readEntry("showMenuTitles", true); d->icon->setIcon(KIcon(cg.readEntry("icon", iconname))); @@ -463,7 +469,14 @@ recentLabel->setBuddy(d->recentApplicationsSpinBox); grid->addWidget(d->recentApplicationsSpinBox, 2, 1); - grid->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 3, 0, 1, 3); + + QLabel *showMenuTitlesLabel = new QLabel(i18n("Show menu titles:"), p); + grid->addWidget(showMenuTitlesLabel, 3, 0, Qt::AlignRight); + d->showMenuTitlesCheckBox = new QCheckBox(p); + d->showMenuTitlesCheckBox->setChecked(d->showMenuTitles); + grid->addWidget(d->showMenuTitlesCheckBox, 3, 1); + + grid->addItem(new QSpacerItem(0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding), 4, 0, 1, 3); parent->addPage(p, i18n("Options"), "configure"); connect(parent, SIGNAL(applyClicked()), this, SLOT(configAccepted())); @@ -514,6 +527,13 @@ cg.writeEntry("maxRecentApps", maxRecentApps); } + const bool showMenuTitles = d->showMenuTitlesCheckBox->isChecked(); + if (showMenuTitles != d->showMenuTitles) { + needssaving = true; + d->showMenuTitles = showMenuTitles; + cg.writeEntry("showMenuTitles", showMenuTitles); + } + if (needssaving) { d->updateTooltip(); emit configNeedsSaving(); @@ -605,8 +625,14 @@ if (d->formattype == Name || d->formattype == NameDescription || d->formattype == NameDashDescription) appModel->setPrimaryNamePolicy(Kickoff::ApplicationModel::AppNamePrimary); appModel->setSystemApplicationPolicy(Kickoff::ApplicationModel::ShowApplicationAndSystemPolicy); - d->menuview->addModel(appModel); - d->menuview->addSeparator(); + if (d->showMenuTitles) { + d->menuview->addTitle(i18n("All Applications")); + d->menuview->addModel(appModel); + d->menuview->addTitle(i18n("Actions")); + } else { + d->menuview->addModel(appModel); + d->menuview->addSeparator(); + } } else if(vtname == "Favorites") { d->addModel(new Kickoff::FavoritesModel(d->menuview), Favorites); } else if(vtname == "Computer") { @@ -615,12 +641,18 @@ d->addModel(new Kickoff::RecentlyUsedModel(d->menuview), RecentlyUsed); } else if(vtname == "RecentlyUsedApplications") { if (d->maxRecentApps > 0) { + if (d->showMenuTitles) + d->menuview->addTitle(i18n("Recently Used Applications")); d->menuview->addModel(new Kickoff::RecentlyUsedModel(d->menuview, Kickoff::RecentlyUsedModel::ApplicationsOnly, d->maxRecentApps), Kickoff::MenuView::MergeFirstLevel); - d->menuview->addSeparator(); + if (!d->showMenuTitles) + d->menuview->addSeparator(); } } else if(vtname == "RecentlyUsedDocuments") { + if (d->showMenuTitles) + d->menuview->addTitle(i18n("Recently Used Documents")); d->menuview->addModel(new Kickoff::RecentlyUsedModel(d->menuview, Kickoff::RecentlyUsedModel::DocumentsOnly), Kickoff::MenuView::MergeFirstLevel); - d->menuview->addSeparator(); + if (!d->showMenuTitles) + d->menuview->addSeparator(); } else if(vtname == "Bookmarks") { KMenu* menu = d->menuview; if(d->viewtypes.count() > 1) {