qtquick: Add QML interface to TitleBar_qtquick
This commit is contained in:
@@ -106,7 +106,8 @@ public:
|
||||
|
||||
bool closeButtonEnabled() const;
|
||||
bool floatButtonVisible() const;
|
||||
|
||||
void setCloseButtonEnabled(bool);
|
||||
void setFloatButtonVisible(bool);
|
||||
Q_SIGNALS:
|
||||
void titleChanged();
|
||||
void iconChanged();
|
||||
@@ -133,8 +134,6 @@ private:
|
||||
|
||||
void updateFloatButton();
|
||||
void updateCloseButton();
|
||||
void setCloseButtonEnabled(bool);
|
||||
void setFloatButtonVisible(bool);
|
||||
void setFloatButtonToolTip(const QString &);
|
||||
void init();
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ using namespace KDDockWidgets::Views;
|
||||
|
||||
TitleBar_qtquick::TitleBar_qtquick(Controllers::TitleBar *controller, QQuickItem *parent)
|
||||
: View_qtquick(controller, Type::TitleBar, parent)
|
||||
, m_controller(controller)
|
||||
{
|
||||
setFixedHeight(30);
|
||||
}
|
||||
@@ -36,6 +37,17 @@ TitleBar_qtquick::~TitleBar_qtquick()
|
||||
{
|
||||
}
|
||||
|
||||
void TitleBar_qtquick::init()
|
||||
{
|
||||
// QML inteface signals
|
||||
connect(m_controller, &Controllers::TitleBar::titleChanged, this, &TitleBar_qtquick::titleChanged);
|
||||
connect(m_controller, &Controllers::TitleBar::iconChanged, this, &TitleBar_qtquick::iconChanged);
|
||||
connect(m_controller, &Controllers::TitleBar::isFocusedChanged, this, &TitleBar_qtquick::isFocusedChanged);
|
||||
connect(m_controller, &Controllers::TitleBar::closeButtonEnabledChanged, this, &TitleBar_qtquick::closeButtonEnabledChanged);
|
||||
connect(m_controller, &Controllers::TitleBar::floatButtonVisibleChanged, this, &TitleBar_qtquick::floatButtonVisibleChanged);
|
||||
connect(m_controller, &Controllers::TitleBar::floatButtonToolTipChanged, this, &TitleBar_qtquick::floatButtonToolTipChanged);
|
||||
}
|
||||
|
||||
#ifdef DOCKS_DEVELOPER_MODE
|
||||
|
||||
bool TitleBar_qtquick::isCloseButtonEnabled() const
|
||||
@@ -100,3 +112,43 @@ void TitleBar_qtquick::updateMaximizeButton()
|
||||
{
|
||||
qFatal("Not implemented");
|
||||
}
|
||||
|
||||
bool TitleBar_qtquick::isFocused() const
|
||||
{
|
||||
return m_controller->isFocused();
|
||||
}
|
||||
|
||||
bool TitleBar_qtquick::floatButtonVisible() const
|
||||
{
|
||||
return m_controller->floatButtonVisible();
|
||||
}
|
||||
|
||||
bool TitleBar_qtquick::closeButtonEnabled() const
|
||||
{
|
||||
return m_controller->closeButtonEnabled();
|
||||
}
|
||||
|
||||
QString TitleBar_qtquick::floatButtonToolTip() const
|
||||
{
|
||||
return m_controller->floatButtonToolTip();
|
||||
}
|
||||
|
||||
bool TitleBar_qtquick::hasIcon() const
|
||||
{
|
||||
return m_controller->hasIcon();
|
||||
}
|
||||
|
||||
QString TitleBar_qtquick::title() const
|
||||
{
|
||||
return m_controller->title();
|
||||
}
|
||||
|
||||
void TitleBar_qtquick::setCloseButtonEnabled(bool is)
|
||||
{
|
||||
m_controller->setCloseButtonEnabled(is);
|
||||
}
|
||||
|
||||
void TitleBar_qtquick::setFloatButtonVisible(bool is)
|
||||
{
|
||||
m_controller->setFloatButtonVisible(is);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,14 @@
|
||||
#include "views/TitleBar.h"
|
||||
#include "View_qtquick.h"
|
||||
|
||||
namespace KDDockWidgets::Views {
|
||||
namespace KDDockWidgets {
|
||||
|
||||
|
||||
namespace Controllers {
|
||||
class TitleBar;
|
||||
}
|
||||
|
||||
namespace Views {
|
||||
|
||||
class DOCKS_EXPORT TitleBar_qtquick : public View_qtquick, public Views::TitleBar
|
||||
{
|
||||
@@ -25,6 +32,13 @@ class DOCKS_EXPORT TitleBar_qtquick : public View_qtquick, public Views::TitleBa
|
||||
// These properties is just for the unit-tests
|
||||
Q_PROPERTY(QQuickItem *titleBarQmlItem READ titleBarQmlItem WRITE setTitleBarQmlItem NOTIFY titleBarQmlItemChanged)
|
||||
Q_PROPERTY(QQuickItem *titleBarMouseArea READ titleBarMouseArea CONSTANT)
|
||||
Q_PROPERTY(QString title READ title NOTIFY titleChanged)
|
||||
Q_PROPERTY(bool hasIcon READ hasIcon NOTIFY iconChanged)
|
||||
Q_PROPERTY(bool closeButtonEnabled READ closeButtonEnabled WRITE setCloseButtonEnabled NOTIFY closeButtonEnabledChanged)
|
||||
Q_PROPERTY(bool floatButtonVisible READ floatButtonVisible WRITE setFloatButtonVisible NOTIFY floatButtonVisibleChanged)
|
||||
Q_PROPERTY(QString floatButtonToolTip READ floatButtonToolTip NOTIFY floatButtonToolTipChanged)
|
||||
Q_PROPERTY(bool isFocused READ isFocused NOTIFY isFocusedChanged)
|
||||
|
||||
public:
|
||||
explicit TitleBar_qtquick(Controllers::TitleBar *controller, QQuickItem *parent = nullptr);
|
||||
~TitleBar_qtquick() override;
|
||||
@@ -45,16 +59,38 @@ protected:
|
||||
void setTitleBarQmlItem(QQuickItem *);
|
||||
void updateMaximizeButton() override;
|
||||
|
||||
// QML interface
|
||||
bool isFocused() const;
|
||||
bool floatButtonVisible() const;
|
||||
bool closeButtonEnabled() const;
|
||||
QString floatButtonToolTip() const;
|
||||
bool hasIcon() const;
|
||||
QString title() const;
|
||||
void setCloseButtonEnabled(bool);
|
||||
void setFloatButtonVisible(bool);
|
||||
|
||||
Q_SIGNALS:
|
||||
void titleBarQmlItemChanged();
|
||||
void titleChanged();
|
||||
void iconChanged();
|
||||
void isFocusedChanged();
|
||||
void closeButtonEnabledChanged(bool);
|
||||
void floatButtonVisibleChanged(bool);
|
||||
void floatButtonToolTipChanged(const QString &);
|
||||
|
||||
protected:
|
||||
void init() override;
|
||||
|
||||
private:
|
||||
QQuickItem *floatButton() const;
|
||||
QQuickItem *closeButton() const;
|
||||
|
||||
QPointer<QQuickItem> m_titleBarQmlItem;
|
||||
Controllers::TitleBar *const m_controller;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user