File indexing completed on 2024-05-12 16:02:07
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2013 Jean-Nicolas Artaud <jeannicolasartaud@gmail.com> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "KoColorPopupButton.h" 0008 0009 #include <QResizeEvent> 0010 #include <QStyle> 0011 #include <QStyleOptionToolButton> 0012 0013 #include "WidgetsDebug.h" 0014 0015 KoColorPopupButton::KoColorPopupButton(QWidget *parent) 0016 : QToolButton(parent) 0017 { 0018 setToolButtonStyle(Qt::ToolButtonIconOnly); 0019 } 0020 0021 KoColorPopupButton::~KoColorPopupButton() 0022 { 0023 } 0024 0025 QSize KoColorPopupButton::sizeHint() const 0026 { 0027 QStyleOptionToolButton opt; 0028 initStyleOption(&opt); 0029 0030 return style()->sizeFromContents(QStyle::CT_ToolButton, &opt, QSize(16,16), this); 0031 } 0032 0033 void KoColorPopupButton::resizeEvent(QResizeEvent *e) 0034 { 0035 QStyleOptionToolButton opt; 0036 initStyleOption(&opt); 0037 QSize size = iconSize(); 0038 0039 QSize rect = style()->sizeFromContents(QStyle::CT_ToolButton, &opt, size, this); 0040 int iconWidth = size.width() - rect.width() + e->size().width(); 0041 0042 if (iconWidth != size.width()) { 0043 size.setWidth(iconWidth); 0044 setIconSize(size); 0045 } 0046 QToolButton::resizeEvent(e); 0047 0048 emit iconSizeChanged(); 0049 }