diff --git a/src/declarativepushbutton.cpp b/src/declarativeabstractbuttonextension.cpp similarity index 77% rename from src/declarativepushbutton.cpp rename to src/declarativeabstractbuttonextension.cpp index e99cf5e..195cbb2 100644 --- a/src/declarativepushbutton.cpp +++ b/src/declarativeabstractbuttonextension.cpp @@ -1,9 +1,9 @@ /* - declarativepushbutton.cpp + declarativeabstractbuttonextension.cpp This file is part of DeclarativeWidgets, library and tools for creating QtWidget UIs with QML. - Copyright (C) 2013-2018 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com + Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com Author: Lova Widmark Licensees holding valid commercial KDAB DeclarativeWidgets licenses may use this file in @@ -25,8 +25,9 @@ along with this program. If not, see . */ -#include "declarativepushbutton_p.h" +#include "declarativeabstractbuttonextension_p.h" -DeclarativePushButton::DeclarativePushButton(QWidget *parent) : QPushButton(parent) +DeclarativeAbstractButtonExtension::DeclarativeAbstractButtonExtension(QObject *parent) + : DeclarativeWidgetExtension(parent) { } diff --git a/src/declarativepushbutton_p.h b/src/declarativeabstractbuttonextension_p.h similarity index 68% rename from src/declarativepushbutton_p.h rename to src/declarativeabstractbuttonextension_p.h index a33a66f..5177d33 100644 --- a/src/declarativepushbutton_p.h +++ b/src/declarativeabstractbuttonextension_p.h @@ -1,9 +1,9 @@ /* - declarativepushbutton_p.h + declarativeabstractbuttonextension_p.h This file is part of DeclarativeWidgets, library and tools for creating QtWidget UIs with QML. - Copyright (C) 2013-2018 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com + Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com Author: Lova Widmark Licensees holding valid commercial KDAB DeclarativeWidgets licenses may use this file in @@ -25,18 +25,17 @@ along with this program. If not, see . */ -#ifndef DECLARATIVEPUSHBUTTON_P_H -#define DECLARATIVEPUSHBUTTON_P_H +#ifndef DECLARATIVEABSTRACTBUTTONEXTENSION_P_H +#define DECLARATIVEABSTRACTBUTTONEXTENSION_P_H -#include +#include "declarativewidgetextension.h" -class DeclarativePushButton : public QPushButton +class DeclarativeAbstractButtonExtension : public DeclarativeWidgetExtension { - Q_OBJECT - Q_PROPERTY(bool isDefault READ isDefault WRITE setDefault) + Q_OBJECT - public: - explicit DeclarativePushButton(QWidget *parent = 0); +public: + explicit DeclarativeAbstractButtonExtension(QObject *parent = Q_NULLPTR); }; -#endif // DECLARATIVEPUSHBUTTON_P_H +#endif // DECLARATIVEABSTRACTBUTTONEXTENSION_P_H diff --git a/src/declarativepushbuttonextension.cpp b/src/declarativepushbuttonextension.cpp new file mode 100644 index 0000000..25a6132 --- /dev/null +++ b/src/declarativepushbuttonextension.cpp @@ -0,0 +1,61 @@ +/* + declarativepushbuttonextension.cpp + + This file is part of DeclarativeWidgets, library and tools for creating QtWidget UIs with QML. + + Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com + Author: Lova Widmark + + Licensees holding valid commercial KDAB DeclarativeWidgets licenses may use this file in + accordance with DeclarativeWidgets Commercial License Agreement provided with the Software. + + Contact info@kdab.com if any conditions of this licensing are not clear to you. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include "declarativepushbuttonextension_p.h" + +#include + +DeclarativePushButtonExtension::DeclarativePushButtonExtension(QObject *parent) + : DeclarativeAbstractButtonExtension(parent) +{ +} + +bool DeclarativePushButtonExtension::isDefault() const +{ + return pushButton()->isDefault(); +} + +void DeclarativePushButtonExtension::setIsDefault(bool isDefault) +{ + QPushButton *button = pushButton(); + + if (button->isDefault() == isDefault) + return; + + button->setDefault(isDefault); + + emit isDefaultChanged(); +} + +QPushButton *DeclarativePushButtonExtension::pushButton() const +{ + QPushButton *pushButton = qobject_cast(extendedObject()); + + Q_ASSERT(pushButton); + + return pushButton; +} diff --git a/src/declarativepushbuttonextension_p.h b/src/declarativepushbuttonextension_p.h new file mode 100644 index 0000000..d2f566e --- /dev/null +++ b/src/declarativepushbuttonextension_p.h @@ -0,0 +1,56 @@ +/* + declarativepushbuttonextension_p.h + + This file is part of DeclarativeWidgets, library and tools for creating QtWidget UIs with QML. + + Copyright (C) 2018 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com + Author: Lova Widmark + + Licensees holding valid commercial KDAB DeclarativeWidgets licenses may use this file in + accordance with DeclarativeWidgets Commercial License Agreement provided with the Software. + + Contact info@kdab.com if any conditions of this licensing are not clear to you. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef DECLARATIVEPUSHBUTTONEXTENSION_P_H +#define DECLARATIVEPUSHBUTTONEXTENSION_P_H + +#include "declarativeabstractbuttonextension_p.h" + +QT_BEGIN_NAMESPACE +class QPushButton; +QT_END_NAMESPACE + +class DeclarativePushButtonExtension : public DeclarativeAbstractButtonExtension +{ + Q_OBJECT + + Q_PROPERTY(bool isDefault READ isDefault WRITE setIsDefault NOTIFY isDefaultChanged) + +public: + explicit DeclarativePushButtonExtension(QObject *parent = Q_NULLPTR); + + bool isDefault() const; + void setIsDefault(bool isDefault); + +Q_SIGNALS: + void isDefaultChanged(); + +private: + QPushButton *pushButton() const; +}; + +#endif // DECLARATIVEPUSHBUTTONEXTENSION_P_H diff --git a/src/declarativewidgets_plugin.cpp b/src/declarativewidgets_plugin.cpp index 1202222..f8bc35d 100644 --- a/src/declarativewidgets_plugin.cpp +++ b/src/declarativewidgets_plugin.cpp @@ -48,6 +48,7 @@ #include "declarativeline_p.h" #include "declarativeloaderwidget_p.h" #include "declarativemessagebox_p.h" +#include "declarativepushbuttonextension_p.h" #include "declarativeqmlcontext_p.h" #include "declarativequickwidgetextension_p.h" #include "declarativeseparator_p.h" @@ -69,7 +70,6 @@ #include "scrollareawidgetcontainer_p.h" #include "stackedwidgetwidgetcontainer_p.h" #include "toolbarwidgetcontainer_p.h" -#include "declarativepushbutton_p.h" #include #include @@ -182,7 +182,7 @@ void ExtensionpluginPlugin::registerTypes(const char *uri) qmlRegisterExtendedType(uri, 1, 0, "MessageBox"); qmlRegisterExtendedType(uri, 1, 0, "PlainTextEdit"); qmlRegisterExtendedType(uri, 1, 0, "ProgressBar"); - qmlRegisterExtendedType(uri, 1, 0, "PushButton"); + qmlRegisterExtendedType(uri, 1, 0, "PushButton"); qmlRegisterExtendedType(uri, 1, 0, "RadioButton"); qmlRegisterExtendedType >(uri, 1, 0, "ScrollArea"); qmlRegisterExtendedType(uri, 1, 0, "ScrollBar"); diff --git a/src/src.pro b/src/src.pro index 015f00a..dc8b562 100644 --- a/src/src.pro +++ b/src/src.pro @@ -87,7 +87,8 @@ HEADERS = \ toolbarwidgetcontainer_p.h \ widgetcontainerinterface_p.h \ declarativesizepolicy_p.h \ - declarativepushbutton_p.h + declarativeabstractbuttonextension_p.h \ + declarativepushbuttonextension_p.h SOURCES = \ abstractdeclarativeobject.cpp \ @@ -139,4 +140,5 @@ SOURCES = \ staticdialogmethodattached.cpp \ toolbarwidgetcontainer.cpp \ declarativesizepolicy.cpp \ - declarativepushbutton.cpp + declarativeabstractbuttonextension.cpp \ + declarativepushbuttonextension.cpp