diff --git a/src/declarativeabstractbuttonextension.cpp b/src/declarativeabstractbuttonextension.cpp new file mode 100644 index 0000000..195cbb2 --- /dev/null +++ b/src/declarativeabstractbuttonextension.cpp @@ -0,0 +1,33 @@ +/* + declarativeabstractbuttonextension.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 "declarativeabstractbuttonextension_p.h" + +DeclarativeAbstractButtonExtension::DeclarativeAbstractButtonExtension(QObject *parent) + : DeclarativeWidgetExtension(parent) +{ +} diff --git a/src/declarativeabstractbuttonextension_p.h b/src/declarativeabstractbuttonextension_p.h new file mode 100644 index 0000000..5177d33 --- /dev/null +++ b/src/declarativeabstractbuttonextension_p.h @@ -0,0 +1,41 @@ +/* + declarativeabstractbuttonextension_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 DECLARATIVEABSTRACTBUTTONEXTENSION_P_H +#define DECLARATIVEABSTRACTBUTTONEXTENSION_P_H + +#include "declarativewidgetextension.h" + +class DeclarativeAbstractButtonExtension : public DeclarativeWidgetExtension +{ + Q_OBJECT + +public: + explicit DeclarativeAbstractButtonExtension(QObject *parent = Q_NULLPTR); +}; + +#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 5c0267c..f40c57c 100644 --- a/src/declarativewidgets_plugin.cpp +++ b/src/declarativewidgets_plugin.cpp @@ -49,6 +49,7 @@ #include "declarativeloaderwidget_p.h" #include "declarativemessagebox_p.h" #include "declarativepixmap_p.h" +#include "declarativepushbuttonextension_p.h" #include "declarativeqmlcontext_p.h" #include "declarativequickwidgetextension_p.h" #include "declarativeseparator_p.h" @@ -185,7 +186,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 6d5919b..dc8b562 100644 --- a/src/src.pro +++ b/src/src.pro @@ -86,7 +86,9 @@ HEADERS = \ staticdialogmethodattached_p.h \ toolbarwidgetcontainer_p.h \ widgetcontainerinterface_p.h \ - declarativesizepolicy_p.h + declarativesizepolicy_p.h \ + declarativeabstractbuttonextension_p.h \ + declarativepushbuttonextension_p.h SOURCES = \ abstractdeclarativeobject.cpp \ @@ -137,4 +139,6 @@ SOURCES = \ stackedwidgetwidgetcontainer.cpp \ staticdialogmethodattached.cpp \ toolbarwidgetcontainer.cpp \ - declarativesizepolicy.cpp + declarativesizepolicy.cpp \ + declarativeabstractbuttonextension.cpp \ + declarativepushbuttonextension.cpp