Krita Source Code Documentation
Loading...
Searching...
No Matches
KisColorLabelSelectorWidgetMenuWrapper Class Reference

#include <kis_color_label_selector_widget.h>

+ Inheritance diagram for KisColorLabelSelectorWidgetMenuWrapper:

Classes

struct  Private
 

Public Member Functions

int calculateMenuOffset () const
 
KisColorLabelSelectorWidgetcolorLabelSelector () const
 
 KisColorLabelSelectorWidgetMenuWrapper (QWidget *parent=nullptr)
 
void showEvent (QShowEvent *e) override
 
 ~KisColorLabelSelectorWidgetMenuWrapper () override
 

Private Attributes

QScopedPointer< Privatem_d
 

Detailed Description

Definition at line 126 of file kis_color_label_selector_widget.h.

Constructor & Destructor Documentation

◆ KisColorLabelSelectorWidgetMenuWrapper()

KisColorLabelSelectorWidgetMenuWrapper::KisColorLabelSelectorWidgetMenuWrapper ( QWidget * parent = nullptr)

Definition at line 256 of file kis_color_label_selector_widget.cpp.

257 : QWidget(parent)
258 , m_d(new Private)
259{
260 m_d->colorLabelSelector = new KisColorLabelSelectorWidget(this);
261 m_d->menuAlignmentOffset = new QSpacerItem(0, 0);
262 QHBoxLayout *layout = new QHBoxLayout(this);
263 layout->setContentsMargins(0, 1, 0, 1);
264 layout->setSpacing(0);
265 layout->addItem(m_d->menuAlignmentOffset);
266 layout->addWidget(m_d->colorLabelSelector);
267}

References m_d.

◆ ~KisColorLabelSelectorWidgetMenuWrapper()

KisColorLabelSelectorWidgetMenuWrapper::~KisColorLabelSelectorWidgetMenuWrapper ( )
override

Definition at line 269 of file kis_color_label_selector_widget.cpp.

270{}

Member Function Documentation

◆ calculateMenuOffset()

int KisColorLabelSelectorWidgetMenuWrapper::calculateMenuOffset ( ) const

Definition at line 284 of file kis_color_label_selector_widget.cpp.

285{
286 bool hasWideItems = false;
287 QMenu *menu = qobject_cast<QMenu*>(parent());
288 bool hasCheckable = false;
289 bool hasIcon = false;
290
291 int menuOffset = 0;
292
293 if (menu) {
294 Q_FOREACH(QAction *action, menu->actions()) {
295 hasCheckable |= action->isCheckable();
296 hasIcon |= action->icon().isNull();
297 hasWideItems |= (hasCheckable || hasIcon);
298
299 if (hasWideItems) {
300 break;
301 }
302 }
303 }
304
305 if (hasWideItems) {
306 QStyleOption opt;
307 opt.initFrom(this);
308 // some copy-pasted code from QFusionStyle style
309 const int hMargin = style()->pixelMetric(QStyle::PM_MenuHMargin, &opt, this);
310 const int iconSize = style()->pixelMetric(QStyle::PM_SmallIconSize, &opt, this);
311 menuOffset = (hMargin + iconSize + 6);
312 }
313
314 return menuOffset;
315}
int iconSize(qreal width, qreal height)
ChildIterator< value_type, is_const > parent(const ChildIterator< value_type, is_const > &it)
Definition KisForest.h:327

References iconSize().

◆ colorLabelSelector()

KisColorLabelSelectorWidget * KisColorLabelSelectorWidgetMenuWrapper::colorLabelSelector ( ) const

Definition at line 272 of file kis_color_label_selector_widget.cpp.

273{
274 return m_d->colorLabelSelector;
275}

References m_d.

◆ showEvent()

void KisColorLabelSelectorWidgetMenuWrapper::showEvent ( QShowEvent * e)
override

Definition at line 277 of file kis_color_label_selector_widget.cpp.

278{
279 Q_UNUSED(e);
280 const int menuOffset = calculateMenuOffset();
281 m_d->menuAlignmentOffset->changeSize(menuOffset, height());
282}

References calculateMenuOffset(), and m_d.

Member Data Documentation

◆ m_d

QScopedPointer<Private> KisColorLabelSelectorWidgetMenuWrapper::m_d
private

Definition at line 142 of file kis_color_label_selector_widget.h.


The documentation for this class was generated from the following files: