┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/panels/places/placespanel.cpp37
-rw-r--r--src/panels/places/placespanel.h2
-rw-r--r--src/panels/places/placesview.cpp19
-rw-r--r--src/panels/places/placesview.h3
4 files changed, 56 insertions, 5 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));
}
}
diff --git a/src/panels/places/placespanel.h b/src/panels/places/placespanel.h
index 7951cdd9c..16112e8b2 100644
--- a/src/panels/places/placespanel.h
+++ b/src/panels/places/placespanel.h
@@ -28,6 +28,7 @@ class KItemListController;
class PlacesItemEditDialog;
class PlacesItem;
class PlacesItemModel;
+class PlacesView;
class QGraphicsSceneDragDropEvent;
/**
@@ -81,6 +82,7 @@ private:
private:
KItemListController* m_controller;
PlacesItemModel* m_model;
+ PlacesView* m_view;
KUrl m_storageSetupFailedUrl;
Qt::MouseButton m_triggerStorageSetupButton;
diff --git a/src/panels/places/placesview.cpp b/src/panels/places/placesview.cpp
index dce5083d7..a298a5250 100644
--- a/src/panels/places/placesview.cpp
+++ b/src/panels/places/placesview.cpp
@@ -26,10 +26,27 @@ PlacesView::PlacesView(QGraphicsWidget* parent) :
{
const int iconSize = PlacesPanelSettings::iconSize();
if (iconSize >= 0) {
+ setIconSize(iconSize);
+ }
+}
+
+void PlacesView::setIconSize(int size)
+{
+ if (size != iconSize()) {
+ PlacesPanelSettings* settings = PlacesPanelSettings::self();
+ settings->setIconSize(size);
+ settings->writeConfig();
+
KItemListStyleOption option = styleOption();
- option.iconSize = iconSize;
+ option.iconSize = size;
setStyleOption(option);
}
}
+int PlacesView::iconSize() const
+{
+ const KItemListStyleOption option = styleOption();
+ return option.iconSize;
+}
+
#include "placesview.moc"
diff --git a/src/panels/places/placesview.h b/src/panels/places/placesview.h
index 87eb3a50b..19c99c39b 100644
--- a/src/panels/places/placesview.h
+++ b/src/panels/places/placesview.h
@@ -33,6 +33,9 @@ class PlacesView : public KStandardItemListView
public:
explicit PlacesView(QGraphicsWidget* parent = 0);
+
+ void setIconSize(int size);
+ int iconSize() const;
};
#endif