Override from QToolButton to have our own SideBarButton

Has proper size when vertical.
Text isn't vertical yet though.
This commit is contained in:
Sergio Martins
2020-09-20 19:06:47 +01:00
parent c4b420bd31
commit db615da0ee
2 changed files with 50 additions and 9 deletions

View File

@@ -12,10 +12,11 @@
#ifndef KD_SIDEBARWIDGET_P_H
#define KD_SIDEBARWIDGET_P_H
#include "../../docks_export.h"
#include "../SideBar_p.h"
#include <QToolButton>
QT_BEGIN_NAMESPACE
class QBoxLayout;
class QAbstractButton;
@@ -25,6 +26,19 @@ namespace KDDockWidgets {
class DockWidget;
class Frame;
class SideBarWidget;
class SideBarButton : public QToolButton
{
Q_OBJECT
public:
explicit SideBarButton(SideBarWidget *parent);
bool isVertical() const;
void paintEvent(QPaintEvent *) override;
QSize sizeHint() const override;
private:
SideBarWidget *const m_sideBar;
};
class DOCKS_EXPORT SideBarWidget : public SideBar
{
@@ -37,7 +51,7 @@ protected:
void removeDockWidget_Impl(DockWidgetBase *dock) override;
// virtual so users can provide their own buttons
virtual QAbstractButton* createButton();
virtual SideBarButton *createButton(SideBarWidget *parent) const;
private:
QBoxLayout *const m_layout;