17#include "titlebarwidget.h"
24#include <QResizeEvent>
29#include "platformhandler.h"
30#include "buttonappearancewatcher.h"
32TitleBarWidget::TitleBarWidget(
QWidget* parent)
41 vLayout->
addWidget(createCustomTitleBarWidget(
this));
46TitleBarWidget::~TitleBarWidget()
50QWidget* TitleBarWidget::createCustomTitleBarWidget(
QWidget* parent)
52 bool isDarkmode = PlatformHandler::isDarkMode();
65 closeButtonRes.lightMode =
QIcon(
"://icons/themes/playful/window/window-close-button-normal.svg");
66 closeButtonRes.darkMode =
QIcon(
"://icons/themes/playful/window/window-close-button-normal-darkm.svg");
68 QIcon closeIcon = closeButtonRes.iconForMode(isDarkmode);
71 closeHoverButtonRes.lightMode =
QIcon(
"://icons/themes/playful/window/window-close-button-active.svg");
72 closeHoverButtonRes.darkMode = closeHoverButtonRes.lightMode;
74 mCloseButton->
setIcon(closeIcon);
84 dockButtonRes.lightMode =
QIcon(
"://icons/themes/playful/window/window-float-button-normal.svg");
85 dockButtonRes.darkMode =
QIcon(
"://icons/themes/playful/window/window-float-button-normal-darkm.svg");
88 dockHoverButtonRes.lightMode =
QIcon(
"://icons/themes/playful/window/window-float-button-active.svg");
89 dockHoverButtonRes.darkMode = dockHoverButtonRes.lightMode;
93 QIcon dockIcon = dockButtonRes.iconForMode(isDarkmode);
107 containerLayout->
addWidget(mCloseButton);
113 containerLayout->
addWidget(mCloseButton);
119 containerWidget->
setLayout(containerLayout);
123 return containerWidget;
126QString TitleBarWidget::flatButtonStylesheet()
const
128 return "QToolButton { border: 0; }";
131void TitleBarWidget::setTitle(
const QString &title)
136void TitleBarWidget::hideButtons(
bool hide)
142void TitleBarWidget::resizeEvent(
QResizeEvent *resizeEvent)
146 hideButtonsIfNeeded(resizeEvent->
size().
width());
149void TitleBarWidget::hideButtonsIfNeeded(
int width)
151 if (
width <= mWidthOfFullLayout) {
158void TitleBarWidget::showEvent(
QShowEvent* event)
177 painter.drawRect(this->
rect());
181 pen.setWidth(penWidth);
void setSpacing(int spacing)
void setAlignment(Qt::Alignment)
void setText(const QString &)
void setContentsMargins(int left, int top, int right, int bottom)
virtual QSize sizeHint() const const=0
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
void installEventFilter(QObject *filterObj)
QObject * parent() const const
const QSize & size() const const