mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Add an "Icon Size" submenu to the context menu of the Places Panel
FEATURE: 307475 FIXED-IN: 4.10.0 CCBUG: 301959
This commit is contained in:
parent
1353c92cce
commit
6f8060fc6d
|
@ -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);
|
||||
|
||||
|
@ -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<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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -33,6 +33,9 @@ class PlacesView : public KStandardItemListView
|
|||
|
||||
public:
|
||||
explicit PlacesView(QGraphicsWidget* parent = 0);
|
||||
|
||||
void setIconSize(int size);
|
||||
int iconSize() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue