mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 11:25:14 +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)),
|
connect(m_model, SIGNAL(errorMessage(QString)),
|
||||||
this, SIGNAL(errorMessage(QString)));
|
this, SIGNAL(errorMessage(QString)));
|
||||||
|
|
||||||
PlacesView* view = new PlacesView();
|
m_view = new PlacesView();
|
||||||
view->setWidgetCreator(new KItemListWidgetCreator<PlacesItemListWidget>());
|
m_view->setWidgetCreator(new KItemListWidgetCreator<PlacesItemListWidget>());
|
||||||
view->setGroupHeaderCreator(new KItemListGroupHeaderCreator<PlacesItemListGroupHeader>());
|
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->setSelectionBehavior(KItemListController::SingleSelection);
|
||||||
m_controller->setSingleClickActivation(true);
|
m_controller->setSingleClickActivation(true);
|
||||||
|
|
||||||
|
@ -216,6 +216,33 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
|
||||||
showAllAction->setChecked(m_model->hiddenItemsShown());
|
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();
|
menu.addSeparator();
|
||||||
foreach (QAction* action, customContextMenuActions()) {
|
foreach (QAction* action, customContextMenuActions()) {
|
||||||
menu.addAction(action);
|
menu.addAction(action);
|
||||||
|
@ -242,6 +269,8 @@ void PlacesPanel::slotItemContextMenuRequested(int index, const QPointF& pos)
|
||||||
m_model->requestTeardown(index);
|
m_model->requestTeardown(index);
|
||||||
} else if (action == ejectAction) {
|
} else if (action == ejectAction) {
|
||||||
m_model->requestEject(index);
|
m_model->requestEject(index);
|
||||||
|
} else if (iconSizeActionMap.contains(action)) {
|
||||||
|
m_view->setIconSize(iconSizeActionMap.value(action));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ class KItemListController;
|
||||||
class PlacesItemEditDialog;
|
class PlacesItemEditDialog;
|
||||||
class PlacesItem;
|
class PlacesItem;
|
||||||
class PlacesItemModel;
|
class PlacesItemModel;
|
||||||
|
class PlacesView;
|
||||||
class QGraphicsSceneDragDropEvent;
|
class QGraphicsSceneDragDropEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -81,6 +82,7 @@ private:
|
||||||
private:
|
private:
|
||||||
KItemListController* m_controller;
|
KItemListController* m_controller;
|
||||||
PlacesItemModel* m_model;
|
PlacesItemModel* m_model;
|
||||||
|
PlacesView* m_view;
|
||||||
|
|
||||||
KUrl m_storageSetupFailedUrl;
|
KUrl m_storageSetupFailedUrl;
|
||||||
Qt::MouseButton m_triggerStorageSetupButton;
|
Qt::MouseButton m_triggerStorageSetupButton;
|
||||||
|
|
|
@ -26,10 +26,27 @@ PlacesView::PlacesView(QGraphicsWidget* parent) :
|
||||||
{
|
{
|
||||||
const int iconSize = PlacesPanelSettings::iconSize();
|
const int iconSize = PlacesPanelSettings::iconSize();
|
||||||
if (iconSize >= 0) {
|
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();
|
KItemListStyleOption option = styleOption();
|
||||||
option.iconSize = iconSize;
|
option.iconSize = size;
|
||||||
setStyleOption(option);
|
setStyleOption(option);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int PlacesView::iconSize() const
|
||||||
|
{
|
||||||
|
const KItemListStyleOption option = styleOption();
|
||||||
|
return option.iconSize;
|
||||||
|
}
|
||||||
|
|
||||||
#include "placesview.moc"
|
#include "placesview.moc"
|
||||||
|
|
|
@ -33,6 +33,9 @@ class PlacesView : public KStandardItemListView
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit PlacesView(QGraphicsWidget* parent = 0);
|
explicit PlacesView(QGraphicsWidget* parent = 0);
|
||||||
|
|
||||||
|
void setIconSize(int size);
|
||||||
|
int iconSize() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue