56 QToolButton::paintEvent(event);
59 QStylePainter painter(
this);
60 QStyleOptionToolButton opt;
61 initStyleOption(&opt);
62 QStyleOptionToolButton panelOpt = opt;
65 QRect& panelRect = panelOpt.rect;
68 panelRect.setWidth(panelRect.width() * 2);
71 panelRect.setLeft(panelRect.left() - panelRect.width());
72 panelRect.setWidth(panelRect.width() * 3);
75 panelRect.setLeft(panelRect.left() - panelRect.width());
81 if (!isChecked() && !isDown() && !(panelOpt.state & QStyle::State_MouseOver)) {
84 panelOpt.state |= (QStyle::State_On | QStyle::State_Sunken);
85 QPalette panelPal(panelOpt.palette);
87 c = panelPal.color(QPalette::Button);
89 panelPal.setColor(QPalette::Button, c);
90 c = panelPal.color(QPalette::Window);
92 panelPal.setColor(QPalette::Window, c);
93 panelOpt.palette = panelPal;
94 painter.setOpacity(0.5);
98 if (!isChecked() && !isDown() && !(panelOpt.state & QStyle::State_MouseOver)) {
102 panelOpt.state |= (QStyle::State_On | QStyle::State_Sunken);
103 QPalette panelPal(panelOpt.palette);
105 c = panelPal.color(QPalette::Button);
107 panelPal.setColor(QPalette::Button, c);
108 c = panelPal.color(QPalette::Window);
110 panelPal.setColor(QPalette::Window, c);
111 panelOpt.palette = panelPal;
112 painter.setOpacity(0.5);
117 painter.drawPrimitive(QStyle::PE_PanelButtonTool, panelOpt);
118 painter.setOpacity(1.0);
122 const int y1 = opt.rect.top() + 1;
123 const int y2 = opt.rect.bottom() - 1;
124 painter.setOpacity(0.4);
126 const int x = opt.rect.right();
127 painter.setPen(QPen(opt.palette.color(QPalette::Dark), 0));
128 painter.drawLine(x, y1, x, y2);
130 painter.setOpacity(1.0);
133 painter.drawControl(QStyle::CE_ToolButtonLabel, opt);
144 if (!actions().isEmpty()) {
145 QAction* action = actions().first();
146 setToolTip(i18nc(
"@info:tooltip of custom triple button",
"%1", action->toolTip()));