From 6f8060fc6d9f31da42ca7e62606becf9c4006f57 Mon Sep 17 00:00:00 2001 From: Frank Reininghaus Date: Thu, 1 Nov 2012 00:58:32 +0100 Subject: Add an "Icon Size" submenu to the context menu of the Places Panel FEATURE: 307475 FIXED-IN: 4.10.0 CCBUG: 301959 --- src/panels/places/placespanel.cpp | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'src/panels/places/placespanel.cpp') diff --git a/src/panels/places/placespanel.cpp b/src/panels/places/placespanel.cpp index 3c7f2bb9b..bffe325cf 100644 --- a/src/panels/places/placespanel.cpp +++ b/src/panels/places/placespanel.cpp @@ -104,11 +104,11 @@ void PlacesPanel::showEvent(QShowEvent* event) connect(m_model, SIGNAL(errorMessage(QString)), this, SIGNAL(errorMessage(QString))); - PlacesView* view = new PlacesView(); - view->setWidgetCreator(new KItemListWidgetCreator()); - view->setGroupHeaderCreator(new KItemListGroupHeaderCreator()); + m_view = new PlacesView(); + m_view->setWidgetCreator(new KItemListWidgetCreator()); + m_view->setGroupHeaderCreator(new KItemListGroupHeaderCreator()); - m_controller = new KItemListController(m_model, view, this); + m_controller = new KItemListController(m_model, m_view, this); m_controller->setSelectionBehavior(KItemListController::SingleSelection); m_controller->setSingleClickActivation(true); @@ -216,6 +216,33 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos) showAllAction->setChecked(m_model->hiddenItemsShown()); } + menu.addSeparator(); + KMenu* iconSizeSubMenu = new KMenu(i18nc("@item:inmenu", "Icon Size"), &menu); + + typedef QPair PairQStringInt; + QList iconSizes; + + iconSizes << qMakePair(i18nc("Small icon size", "Small (%1x%2)", 16, 16), 16); + iconSizes << qMakePair(i18nc("Medium icon size", "Medium (%1x%2)", 22, 22), 22); + iconSizes << qMakePair(i18nc("Large icon size", "Large (%1x%2)", 32, 32), 32); + iconSizes << qMakePair(i18nc("Huge icon size", "Huge (%1x%2)", 48, 48), 48); + + QMap iconSizeActionMap; + QActionGroup* iconSizeGroup = new QActionGroup(iconSizeSubMenu); + + foreach (const PairQStringInt& pair, iconSizes) { + const QString& text = pair.first; + const int size = pair.second; + + QAction* action = iconSizeSubMenu->addAction(text); + iconSizeActionMap.insert(action, size); + action->setActionGroup(iconSizeGroup); + action->setCheckable(true); + action->setChecked(m_view->iconSize() == size); + } + + menu.addMenu(iconSizeSubMenu); + menu.addSeparator(); foreach (QAction* action, customContextMenuActions()) { menu.addAction(action); @@ -242,6 +269,8 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos) m_model->requestTeardown(index); } else if (action == ejectAction) { m_model->requestEject(index); + } else if (iconSizeActionMap.contains(action)) { + m_view->setIconSize(iconSizeActionMap.value(action)); } } -- cgit v1.3