Verified Commit 2a523449 authored by Alexander Lohnau's avatar Alexander Lohnau 💬
Browse files

Run clang-format

If you want git blame to ignore formatting revisions run:
git config blame.ignoreRevsFile .git-blame-ignore-revs
parent 76b78ba7
......@@ -3,16 +3,16 @@
*
* SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include <QTest>
#include <QSignalSpy>
#include <QStyleHints>
#include "../src/decoratedclient.h"
#include "../src/decorationsettings.h"
#include "mockdecoration.h"
#include "mockbridge.h"
#include "mockbutton.h"
#include "mockclient.h"
#include "mockdecoration.h"
#include "mocksettings.h"
#include <QSignalSpy>
#include <QStyleHints>
#include <QTest>
Q_DECLARE_METATYPE(Qt::MouseButton)
......@@ -1336,15 +1336,15 @@ void DecorationButtonTest::testContains_data()
QTest::addColumn<bool>("contains");
// Button geometry: QRectF(0, 0, 10, 10).
QTest::newRow("on left edge") << QPointF(0, 5) << true;
QTest::newRow("on top edge") << QPointF(5, 0) << true;
QTest::newRow("on right edge") << QPointF(9, 5) << true;
QTest::newRow("on bottom edge") << QPointF(5, 9) << true;
QTest::newRow("inside") << QPointF(5, 5) << true;
QTest::newRow("outside 1") << QPointF(-1, 5) << false;
QTest::newRow("outside 2") << QPointF(5, -1) << false;
QTest::newRow("outside 3") << QPointF(10, 5) << false;
QTest::newRow("outside 4") << QPointF(5, 10) << false;
QTest::newRow("on left edge") << QPointF(0, 5) << true;
QTest::newRow("on top edge") << QPointF(5, 0) << true;
QTest::newRow("on right edge") << QPointF(9, 5) << true;
QTest::newRow("on bottom edge") << QPointF(5, 9) << true;
QTest::newRow("inside") << QPointF(5, 5) << true;
QTest::newRow("outside 1") << QPointF(-1, 5) << false;
QTest::newRow("outside 2") << QPointF(5, -1) << false;
QTest::newRow("outside 3") << QPointF(10, 5) << false;
QTest::newRow("outside 4") << QPointF(5, 10) << false;
}
void DecorationButtonTest::testContains()
......
......@@ -3,14 +3,14 @@
*
* SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include <QTest>
#include <QSignalSpy>
#include <QVariant>
#include "../src/decorationsettings.h"
#include "mockbridge.h"
#include "mockclient.h"
#include "mockdecoration.h"
#include "mocksettings.h"
#include <QSignalSpy>
#include <QTest>
#include <QVariant>
class DecorationTest : public QObject
{
......@@ -23,27 +23,28 @@ private Q_SLOTS:
};
#ifdef _MSC_VER
QMap<QString, QVariant> makeMap(const QString& key, const QVariant &value);
QMap<QString, QVariant> makeMap(const QString &key, const QVariant &value);
#endif
void DecorationTest::testCreate()
{
// just test that creating the Decoration doesn't crash
MockBridge bridge;
const QString bridgeKey = QStringLiteral("bridge");
MockDecoration deco1(nullptr, QVariantList({
MockDecoration deco1(nullptr,
QVariantList({
#ifdef _MSC_VER
makeMap(bridgeKey, QVariant::fromValue(5)),
makeMap(bridgeKey, QVariant::fromValue(5)),
#else
QVariantMap({ {bridgeKey, QVariant::fromValue(5)} }),
QVariantMap({{bridgeKey, QVariant::fromValue(5)}}),
#endif
QVariant::fromValue(bridgeKey),
QVariantMap(),
QVariant::fromValue(bridgeKey),
QVariantMap(),
#ifdef _MSC_VER
makeMap(bridgeKey, QVariant::fromValue(&bridge)),
makeMap(bridgeKey, QVariant::fromValue(&bridge)),
#else
QVariantMap({ {bridgeKey, QVariant::fromValue(&bridge)} })
QVariantMap({{bridgeKey, QVariant::fromValue(&bridge)}})
#endif
}));
}));
QVERIFY(!deco1.client().isNull());
}
......@@ -81,19 +82,19 @@ void DecorationTest::testSection_data()
QRect r(1, 1, 98, 8);
QMargins m(1, 10, 1, 1);
QTest::newRow("topLeft") << r << m << QPoint(0, 0) << Qt::TopLeftSection;
QTest::newRow("top@Left") << r << m << QPoint(1, 0) << Qt::TopSection;
QTest::newRow("top@Right") << r << m << QPoint(100, 0) << Qt::TopSection;
QTest::newRow("topRight") << r << m << QPoint(101, 0) << Qt::TopRightSection;
QTest::newRow("right@top") << r << m << QPoint(101, 1) << Qt::RightSection;
QTest::newRow("topLeft") << r << m << QPoint(0, 0) << Qt::TopLeftSection;
QTest::newRow("top@Left") << r << m << QPoint(1, 0) << Qt::TopSection;
QTest::newRow("top@Right") << r << m << QPoint(100, 0) << Qt::TopSection;
QTest::newRow("topRight") << r << m << QPoint(101, 0) << Qt::TopRightSection;
QTest::newRow("right@top") << r << m << QPoint(101, 1) << Qt::RightSection;
QTest::newRow("right@bottom") << r << m << QPoint(101, 109) << Qt::RightSection;
QTest::newRow("bottomRight") << r << m << QPoint(101, 110) << Qt::BottomRightSection;
QTest::newRow("bottomRight") << r << m << QPoint(101, 110) << Qt::BottomRightSection;
QTest::newRow("bottom@right") << r << m << QPoint(100, 110) << Qt::BottomSection;
QTest::newRow("bottom@left") << r << m << QPoint(1, 110) << Qt::BottomSection;
QTest::newRow("bottomLeft") << r << m << QPoint(0, 110) << Qt::BottomLeftSection;
QTest::newRow("left@Top") << r << m << QPoint(0, 1) << Qt::LeftSection;
QTest::newRow("left@Bottom") << r << m << QPoint(0, 109) << Qt::LeftSection;
QTest::newRow("title") << r << m << QPoint(1, 1) << Qt::TitleBarArea;
QTest::newRow("bottom@left") << r << m << QPoint(1, 110) << Qt::BottomSection;
QTest::newRow("bottomLeft") << r << m << QPoint(0, 110) << Qt::BottomLeftSection;
QTest::newRow("left@Top") << r << m << QPoint(0, 1) << Qt::LeftSection;
QTest::newRow("left@Bottom") << r << m << QPoint(0, 109) << Qt::LeftSection;
QTest::newRow("title") << r << m << QPoint(1, 1) << Qt::TitleBarArea;
}
void DecorationTest::testSection()
......
......@@ -17,13 +17,15 @@ class MockBridge : public KDecoration2::DecorationBridge
Q_OBJECT
public:
std::unique_ptr<KDecoration2::DecoratedClientPrivate> createClient(KDecoration2::DecoratedClient *client, KDecoration2::Decoration *decoration) override;
std::unique_ptr<KDecoration2::DecorationSettingsPrivate> settings(KDecoration2::DecorationSettings *parent) override;
void update(KDecoration2::Decoration *decoration, const QRect &geometry) override;
std::unique_ptr<KDecoration2::DecorationSettingsPrivate> settings(KDecoration2::DecorationSettings *parent) override;
void update(KDecoration2::Decoration *decoration, const QRect &geometry) override;
MockClient * lastCreatedClient() const {
MockClient *lastCreatedClient() const
{
return m_lastCreatedClient;
}
MockSettings *lastCreatedSettings() const {
MockSettings *lastCreatedSettings() const
{
return m_lastCreatedSettings;
}
......
......@@ -225,7 +225,6 @@ void MockClient::requestShowToolTip(const QString &text)
void MockClient::requestHideToolTip()
{
}
QSize MockClient::size() const
......
......@@ -6,9 +6,9 @@
#include "mockdecoration.h"
#include "mockbridge.h"
#include <utility>
#include <QMap>
#include <QVariantMap>
#include <utility>
MockDecoration::MockDecoration(QObject *parent, const QVariantList &args)
: Decoration(parent, args)
......@@ -16,7 +16,8 @@ MockDecoration::MockDecoration(QObject *parent, const QVariantList &args)
}
#ifdef _MSC_VER
QMap<QString, QVariant> makeMap(const QString& key, const QVariant &value) {
QMap<QString, QVariant> makeMap(const QString &key, const QVariant &value)
{
QMap<QString, QVariant> ret;
ret.insert(key, value);
return ret;
......
......@@ -16,12 +16,12 @@ KDecoration2::BorderSize MockSettings::borderSize() const
return KDecoration2::BorderSize::Normal;
}
QVector< KDecoration2::DecorationButtonType > MockSettings::decorationButtonsLeft() const
QVector<KDecoration2::DecorationButtonType> MockSettings::decorationButtonsLeft() const
{
return QVector<KDecoration2::DecorationButtonType>();
}
QVector< KDecoration2::DecorationButtonType > MockSettings::decorationButtonsRight() const
QVector<KDecoration2::DecorationButtonType> MockSettings::decorationButtonsRight() const
{
return QVector<KDecoration2::DecorationButtonType>();
}
......
......@@ -14,8 +14,8 @@ public:
explicit MockSettings(KDecoration2::DecorationSettings *parent);
KDecoration2::BorderSize borderSize() const override;
QVector< KDecoration2::DecorationButtonType > decorationButtonsLeft() const override;
QVector< KDecoration2::DecorationButtonType > decorationButtonsRight() const override;
QVector<KDecoration2::DecorationButtonType> decorationButtonsLeft() const override;
QVector<KDecoration2::DecorationButtonType> decorationButtonsRight() const override;
bool isAlphaChannelSupported() const override;
bool isCloseOnDoubleClickOnMenu() const override;
bool isOnAllDesktopsAvailable() const override;
......
......@@ -3,9 +3,9 @@
*
* SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include <QTest>
#include <QSignalSpy>
#include "../src/decorationshadow.h"
#include <QSignalSpy>
#include <QTest>
Q_DECLARE_METATYPE(QMargins)
......@@ -24,10 +24,10 @@ void DecorationShadowTest::testPadding_data()
QTest::addColumn<QByteArray>("propertyName");
QTest::addColumn<QMargins>("padding");
QTest::newRow("top") << QByteArrayLiteral("paddingTop") << QMargins(0, 10, 0, 0);
QTest::newRow("right") << QByteArrayLiteral("paddingRight") << QMargins(0, 0, 10, 0);
QTest::newRow("top") << QByteArrayLiteral("paddingTop") << QMargins(0, 10, 0, 0);
QTest::newRow("right") << QByteArrayLiteral("paddingRight") << QMargins(0, 0, 10, 0);
QTest::newRow("bottom") << QByteArrayLiteral("paddingBottom") << QMargins(0, 0, 0, 10);
QTest::newRow("left") << QByteArrayLiteral("paddingLeft") << QMargins(10, 0, 0, 0);
QTest::newRow("left") << QByteArrayLiteral("paddingLeft") << QMargins(10, 0, 0, 0);
}
void DecorationShadowTest::testPadding()
......@@ -74,15 +74,14 @@ void DecorationShadowTest::testSizes_data()
QTest::addColumn<QRect>("shadowRect");
QTest::addColumn<QSize>("shadowSize");
QTest::newRow("topLeft") << QByteArrayLiteral("topLeftGeometry") << QRect(1, 2, 5, 5) << QRect(0, 0, 1, 2) << QSize(6, 7);
QTest::newRow("top") << QByteArrayLiteral("topGeometry") << QRect(1, 2, 1, 5) << QRect(1, 0, 1, 2) << QSize(3, 7);
QTest::newRow("topRight") << QByteArrayLiteral("topRightGeometry") << QRect(0, 2, 2, 1) << QRect(2, 0, 1, 2) << QSize(3, 3);
QTest::newRow("right") << QByteArrayLiteral("rightGeometry") << QRect(0, 0, 1, 2) << QRect(1, 0, 1, 2) << QSize(2, 4);
QTest::newRow("topLeft") << QByteArrayLiteral("topLeftGeometry") << QRect(1, 2, 5, 5) << QRect(0, 0, 1, 2) << QSize(6, 7);
QTest::newRow("top") << QByteArrayLiteral("topGeometry") << QRect(1, 2, 1, 5) << QRect(1, 0, 1, 2) << QSize(3, 7);
QTest::newRow("topRight") << QByteArrayLiteral("topRightGeometry") << QRect(0, 2, 2, 1) << QRect(2, 0, 1, 2) << QSize(3, 3);
QTest::newRow("right") << QByteArrayLiteral("rightGeometry") << QRect(0, 0, 1, 2) << QRect(1, 0, 1, 2) << QSize(2, 4);
QTest::newRow("bottomRight") << QByteArrayLiteral("bottomRightGeometry") << QRect(0, 0, 1, 4) << QRect(1, 4, 1, 2) << QSize(2, 6);
QTest::newRow("bottom") << QByteArrayLiteral("bottomGeometry") << QRect(0, 0, 1, 1) << QRect(0, 1, 1, 2) << QSize(1, 3);
QTest::newRow("bottomLeft") << QByteArrayLiteral("bottomLeftGeometry") << QRect(1, 0, 1, 1) << QRect(0, 1, 1, 2) << QSize(2, 3);
QTest::newRow("left") << QByteArrayLiteral("leftGeometry") << QRect(1, 0, 1, 2) << QRect(0, 0, 1, 2) << QSize(2, 2);
QTest::newRow("bottom") << QByteArrayLiteral("bottomGeometry") << QRect(0, 0, 1, 1) << QRect(0, 1, 1, 2) << QSize(1, 3);
QTest::newRow("bottomLeft") << QByteArrayLiteral("bottomLeftGeometry") << QRect(1, 0, 1, 1) << QRect(0, 1, 1, 2) << QSize(2, 3);
QTest::newRow("left") << QByteArrayLiteral("leftGeometry") << QRect(1, 0, 1, 2) << QRect(0, 0, 1, 2) << QSize(2, 2);
}
void DecorationShadowTest::testSizes()
......
......@@ -4,15 +4,14 @@
* SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include "decoratedclient.h"
#include "decoration.h"
#include "private/decoratedclientprivate.h"
#include "private/decorationbridge.h"
#include "decoration.h"
#include <QColor>
namespace KDecoration2
{
DecoratedClient::DecoratedClient(Decoration *parent, DecorationBridge *bridge)
: QObject()
, d(std::move(bridge->createClient(this, parent)))
......@@ -21,11 +20,11 @@ DecoratedClient::DecoratedClient(Decoration *parent, DecorationBridge *bridge)
DecoratedClient::~DecoratedClient() = default;
#define DELEGATE(type, method) \
type DecoratedClient::method() const \
{ \
return d->method(); \
}
#define DELEGATE(type, method) \
type DecoratedClient::method() const \
{ \
return d->method(); \
}
DELEGATE(bool, isActive)
DELEGATE(QString, caption)
......@@ -72,7 +71,7 @@ bool DecoratedClient::isApplicationMenuActive() const
return false;
}
QPointer< Decoration > DecoratedClient::decoration() const
QPointer<Decoration> DecoratedClient::decoration() const
{
return QPointer<Decoration>(d->decoration());
}
......
......@@ -6,21 +6,20 @@
#ifndef KDECORATION2_DECORATED_CLIENT_H
#define KDECORATION2_DECORATED_CLIENT_H
#include <kdecoration2/kdecoration2_export.h>
#include "decorationdefines.h"
#include <kdecoration2/kdecoration2_export.h>
#include <QFont>
#include <QIcon>
#include <QObject>
#include <QPalette>
#include <QPointer>
#include <QtGui/qwindowdefs.h>
#include <QIcon>
#include <QPalette>
#include <QFont>
#include <memory>
namespace KDecoration2
{
class Decoration;
class DecorationBridge;
class DecoratedClientPrivate;
......
......@@ -4,24 +4,24 @@
* SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
*/
#include "decoration.h"
#include "decoration_p.h"
#include "decoratedclient.h"
#include "private/decoratedclientprivate.h"
#include "private/decorationbridge.h"
#include "decoration_p.h"
#include "decorationbutton.h"
#include "decorationsettings.h"
#include "private/decoratedclientprivate.h"
#include "private/decorationbridge.h"
#include <QCoreApplication>
#include <QHoverEvent>
namespace KDecoration2
{
namespace {
namespace
{
DecorationBridge *findBridge(const QVariantList &args)
{
for (const auto &arg: args) {
if (auto bridge = arg.toMap().value(QStringLiteral("bridge")).value<DecorationBridge*>()) {
for (const auto &arg : args) {
if (auto bridge = arg.toMap().value(QStringLiteral("bridge")).value<DecorationBridge *>()) {
return bridge;
}
}
......@@ -55,11 +55,11 @@ void Decoration::Private::updateSectionUnderMouse(const QPoint &mousePosition)
return;
}
const QSize size = q->size();
const int corner = 2*settings->largeSpacing();
const bool left = mousePosition.x() < borders.left();
const bool top = mousePosition.y() < borders.top();
const int corner = 2 * settings->largeSpacing();
const bool left = mousePosition.x() < borders.left();
const bool top = mousePosition.y() < borders.top();
const bool bottom = size.height() - mousePosition.y() <= borders.bottom();
const bool right = size.width() - mousePosition.x() <= borders.right();
const bool right = size.width() - mousePosition.x() <= borders.right();
if (left) {
if (top && mousePosition.y() < titleBar.top() + corner) {
setSectionUnderMouse(Qt::TopLeftSection);
......@@ -115,25 +115,25 @@ void Decoration::Private::addButton(DecorationButton *button)
{
Q_ASSERT(!buttons.contains(button));
buttons << button;
QObject::connect(button, &QObject::destroyed, q,
[this](QObject *o) {
auto it = buttons.begin();
while (it != buttons.end()) {
if (*it == static_cast<DecorationButton*>(o)) {
it = buttons.erase(it);
} else {
it++;
}
QObject::connect(button, &QObject::destroyed, q, [this](QObject *o) {
auto it = buttons.begin();
while (it != buttons.end()) {
if (*it == static_cast<DecorationButton *>(o)) {
it = buttons.erase(it);
} else {
it++;
}
}
);
});
}
Decoration::Decoration(QObject *parent, const QVariantList &args)
: QObject(parent)
, d(new Private(this, args))
{
connect(this, &Decoration::bordersChanged, this, [this]{ update(); });
connect(this, &Decoration::bordersChanged, this, [this] {
update();
});
}
Decoration::~Decoration() = default;
......@@ -148,11 +148,11 @@ QWeakPointer<DecoratedClient> Decoration::client() const
return d->client.toWeakRef();
}
#define DELEGATE(name) \
void Decoration::name() \
{ \
d->client->d->name(); \
}
#define DELEGATE(name) \
void Decoration::name() \
{ \
d->client->d->name(); \
}
DELEGATE(requestClose)
DELEGATE(requestContextHelp)
......@@ -209,29 +209,29 @@ void Decoration::requestShowApplicationMenu(const QRect &rect, int actionId)
}
}
#define DELEGATE(name, variableName, type, emitValue) \
void Decoration::name(type a) \
{ \
if (d->variableName == a) { \
return; \
} \
d->variableName = a; \
emit variableName##Changed(emitValue); \
}
#define DELEGATE(name, variableName, type, emitValue) \
void Decoration::name(type a) \
{ \
if (d->variableName == a) { \
return; \
} \
d->variableName = a; \
emit variableName##Changed(emitValue); \
}
DELEGATE(setBorders, borders, const QMargins&, )
DELEGATE(setResizeOnlyBorders, resizeOnlyBorders, const QMargins&, )
DELEGATE(setTitleBar, titleBar, const QRect&, )
DELEGATE(setBorders, borders, const QMargins &, )
DELEGATE(setResizeOnlyBorders, resizeOnlyBorders, const QMargins &, )
DELEGATE(setTitleBar, titleBar, const QRect &, )
DELEGATE(setOpaque, opaque, bool, d->opaque)
DELEGATE(setShadow, shadow, const QSharedPointer<DecorationShadow> &, d->shadow)
#undef DELEGATE
#define DELEGATE(name, type) \
type Decoration::name() const \
{ \
return d->name; \
}
#define DELEGATE(name, type) \
type Decoration::name() const \
{ \
return d->name; \
}
DELEGATE(borders, QMargins)
DELEGATE(resizeOnlyBorders, QMargins)
......@@ -246,15 +246,15 @@ bool Decoration::isOpaque() const
return d->opaque;
}
#define BORDER(name, Name) \
int Decoration::border##Name() const \
{ \
return d->borders.name(); \
} \
int Decoration::resizeOnlyBorder##Name() const \
{ \
return d->resizeOnlyBorders.name(); \
}
#define BORDER(name, Name) \
int Decoration::border##Name() const \
{ \
return d->borders.name(); \
} \
int Decoration::resizeOnlyBorder##Name() const \
{ \
return d->resizeOnlyBorders.name(); \
}
BORDER(left, Left)
BORDER(right, Right)
......@@ -265,7 +265,7 @@ BORDER(bottom, Bottom)
QSize Decoration::size() const
{
const QMargins &b = d->borders;
return QSize(d->client->width() + b.left() + b.right(),
return QSize(d->client->width() + b.left() + b.right(), //
(d->client->isShaded() ? 0 : d->client->height()) + b.top() + b.bottom());
}
......@@ -278,25 +278,25 @@ bool Decoration::event(QEvent *event)
{
switch (event->type()) {
case QEvent::HoverEnter:
hoverEnterEvent(static_cast<QHoverEvent*>(event));
hoverEnterEvent(static_cast<QHoverEvent *>(event));
return true;
case QEvent::HoverLeave:
hoverLeaveEvent(static_cast<QHoverEvent*>(event));
hoverLeaveEvent(static_cast<QHoverEvent *>(event));
return true;
case QEvent::HoverMove:
hoverMoveEvent(static_cast<QHoverEvent*>(event));
hoverMoveEvent(static_cast<QHoverEvent *>(event));
return true;
case QEvent::MouseButtonPress:
mousePressEvent(static_cast<QMouseEvent*>(event));
mousePressEvent(static_cast<QMouseEvent *>(event));
return true;
case QEvent::MouseButtonRelease:
mouseReleaseEvent(static_cast<QMouseEvent*>(event));
mouseReleaseEvent(static_cast<QMouseEvent *>(event));
return true;
case QEvent::MouseMove:
mouseMoveEvent(static_cast<QMouseEvent*>(event));
mouseMoveEvent(static_cast<QMouseEvent *>(event));
return true;
case QEvent::Wheel:
wheelEvent(static_cast<QWheelEvent*>(event));
wheelEvent(static_cast<QWheelEvent *>(event));
return true;
default:
return QObject::event(event);
......@@ -396,12 +396,12 @@ void Decoration::update()
update(QRect());
}
void Decoration::setSettings(const QSharedPointer< DecorationSettings > &settings)
void Decoration::setSettings(const QSharedPointer<DecorationSettings> &settings)
{
d->settings = settings;
}
QSharedPointer< DecorationSettings > Decoration::settings() const
QSharedPointer<DecorationSettings> Decoration::settings() const
{
return d->settings;
}
......
......@@ -6,8 +6,8 @@
#ifndef KDECORATION2_DECORATION_H
#define KDECORATION2_DECORATION_H
#include <kdecoration2/kdecoration2_export.h>
#include "decorationshadow.h"
#include <kdecoration2/kdecoration2_export.h>
#include <QMargins>
#include <QObject>
......@@ -25,7 +25,6 @@ class QWheelEvent;
**/
namespace KDecoration2
{
class DecorationPrivate;
class DecoratedClient;
class DecorationButton;
......@@ -61,15 +60,15 @@ class KDECORATIONS2_EXPORT Decoration : public QObject
{
Q_OBJECT
Q_PROPERTY(QMargins borders READ borders NOTIFY bordersChanged)
Q_PROPERTY(int borderLeft READ borderLeft NOTIFY bordersChanged)
Q_PROPERTY(int borderRight READ borderRight NOTIFY bordersChanged)
Q_PROPERTY(int borderTop READ borderTop NOTIFY bordersChanged)
Q_PROPERTY(int borderBottom READ borderBottom NOTIFY bordersChanged)
Q_PROPERTY(int borderLeft READ borderLeft NOTIFY bordersChanged)
Q_PROPERTY(int borderRight READ borderRight NOTIFY bordersChanged)
Q_PROPERTY(int borderTop READ borderTop NOTIFY bordersChanged)
Q_PROPERTY(int borderBottom READ borderBottom NOTIFY bordersChanged)
Q_PROPERTY(QMargins resizeOnlyBorders READ resizeOnlyBorders NOTIFY resizeOnlyBordersChanged)
Q_PROPERTY(int resizeOnlyBorderLeft READ resizeOnlyBorderLeft NOTIFY resizeOnlyBordersChanged)
Q_PROPERTY(int resizeOnlyBorderRight READ resizeOnlyBorderRight NOTIFY resizeOnlyBordersChanged)
Q_PROPERTY(int resizeOnlyBorderTop READ resizeOnlyBorderTop NOTIFY resizeOnlyBordersChanged)
Q_PROPERTY(int resizeOnlyBorderBottom READ resizeOnlyBorderBottom NOTIFY resizeOnlyBordersChanged)
Q_PROPERTY(int resizeOnlyBorderLeft READ resizeOnlyBorderLeft NOTIFY resizeOnlyBordersChanged)
Q_PROPERTY(int resizeOnlyBorderRight READ resizeOnlyBorderRight NOTIFY resizeOnlyBordersChanged)