diff options
| author | Frank Reininghaus <[email protected]> | 2012-11-01 00:58:32 +0100 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2012-11-01 00:58:32 +0100 |
| commit | 6f8060fc6d9f31da42ca7e62606becf9c4006f57 (patch) | |
| tree | a9a111ea759f4b2560dd8b3041fc452de8653519 /src/panels/places/placespanel.cpp | |
| parent | 1353c92cce7ebc805b51d90f0bbb0c95dca0f2cb (diff) | |
Add an "Icon Size" submenu to the context menu of the Places Panel
FEATURE: 307475
FIXED-IN: 4.10.0
CCBUG: 301959
Diffstat (limited to 'src/panels/places/placespanel.cpp')
| -rw-r--r-- | src/panels/places/placespanel.cpp | 37 |
1 files changed, 33 insertions, 4 deletions
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<PlacesItemListWidget>()); - view->setGroupHeaderCreator(new KItemListGroupHeaderCreator<PlacesItemListGroupHeader>()); + m_view = new PlacesView(); + m_view->setWidgetCreator(new KItemListWidgetCreator<PlacesItemListWidget>()); + m_view->setGroupHeaderCreator(new KItemListGroupHeaderCreator<PlacesItemListGroupHeader>()); - 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); @@ -217,6 +217,33 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos) } menu.addSeparator(); + KMenu* iconSizeSubMenu = new KMenu(i18nc("@item:inmenu", "Icon Size"), &menu); + + typedef QPair<QString, int> PairQStringInt; + QList<PairQStringInt> 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<QAction*, int> 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)); } } |
