aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@qt.io>2017-02-09 11:07:30 +0100
committerMitch Curtis <mitch.curtis@qt.io>2017-02-09 13:12:08 +0000
commit20a7378c8ff930571cc3fce81f1ae67cf1d4a5fe (patch)
tree17d8586b55d4c50672dfefe06b9f386a0dfe6eb7 /src/quicktemplates2
parentb55716eda0216e8173905371989f3cd7bdb452ec (diff)
Add QQuickIcon
This adds the initial API needed to add support for setting icons on buttons, etc., and is also necessary for action support. Follow up commits will add the actual support for icons. Change-Id: I9ab892aa4fe43210e7b18bed3e0ebcec2edb9c91 Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Diffstat (limited to 'src/quicktemplates2')
-rw-r--r--src/quicktemplates2/qquickicon.cpp128
-rw-r--r--src/quicktemplates2/qquickicon_p.h94
-rw-r--r--src/quicktemplates2/quicktemplates2.pri2
3 files changed, 224 insertions, 0 deletions
diff --git a/src/quicktemplates2/qquickicon.cpp b/src/quicktemplates2/qquickicon.cpp
new file mode 100644
index 00000000..48db39fa
--- /dev/null
+++ b/src/quicktemplates2/qquickicon.cpp
@@ -0,0 +1,128 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/private/qobject_p.h>
+#include "qquickicon_p.h"
+
+QT_BEGIN_NAMESPACE
+
+class QQuickIconPrivate : public QObjectPrivate
+{
+ Q_DECLARE_PUBLIC(QQuickIcon)
+
+public:
+ QQuickIconPrivate()
+ : width(0),
+ height(0)
+ {
+ }
+
+ QString name;
+ QString source;
+ int width;
+ int height;
+};
+
+QQuickIcon::QQuickIcon(QObject *parent)
+ : QObject(*(new QQuickIconPrivate), parent)
+{
+}
+
+QString QQuickIcon::name() const
+{
+ Q_D(const QQuickIcon);
+ return d->name;
+}
+
+void QQuickIcon::setName(const QString &name)
+{
+ Q_D(QQuickIcon);
+ if (name == d->name)
+ return;
+
+ d->name = name;
+ emit nameChanged();
+}
+
+QString QQuickIcon::source() const
+{
+ Q_D(const QQuickIcon);
+ return d->source;
+}
+
+void QQuickIcon::setSource(const QString &source)
+{
+ Q_D(QQuickIcon);
+ if (source == d->source)
+ return;
+
+ d->source = source;
+ emit sourceChanged();
+}
+
+int QQuickIcon::width() const
+{
+ Q_D(const QQuickIcon);
+ return d->width;
+}
+
+void QQuickIcon::setWidth(int width)
+{
+ Q_D(QQuickIcon);
+ if (width == d->width)
+ return;
+
+ d->width = width;
+ emit widthChanged();
+}
+
+int QQuickIcon::height() const
+{
+ Q_D(const QQuickIcon);
+ return d->height;
+}
+
+void QQuickIcon::setHeight(int height)
+{
+ Q_D(QQuickIcon);
+ if (height == d->height)
+ return;
+
+ d->height = height;
+ emit heightChanged();
+}
+
+QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickicon_p.h b/src/quicktemplates2/qquickicon_p.h
new file mode 100644
index 00000000..02714d2b
--- /dev/null
+++ b/src/quicktemplates2/qquickicon_p.h
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2017 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Templates 2 module of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL3$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 3 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPLv3 included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 3 requirements
+** will be met: https://www.gnu.org/licenses/lgpl.html.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 2.0 or later as published by the Free
+** Software Foundation and appearing in the file LICENSE.GPL included in
+** the packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 2.0 requirements will be
+** met: http://www.gnu.org/licenses/gpl-2.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#ifndef QQUICKICON_P_H
+#define QQUICKICON_P_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+#include <QtCore/qobject.h>
+#include <QtQuickTemplates2/private/qtquicktemplates2global_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QQuickIconPrivate;
+
+class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickIcon : public QObject
+{
+ Q_OBJECT
+ Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged FINAL)
+ Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged FINAL)
+ Q_PROPERTY(int width READ width WRITE setWidth NOTIFY widthChanged FINAL)
+ Q_PROPERTY(int height READ height WRITE setHeight NOTIFY heightChanged FINAL)
+
+public:
+ explicit QQuickIcon(QObject *parent = nullptr);
+
+ QString name() const;
+ void setName(const QString &name);
+
+ QString source() const;
+ void setSource(const QString &source);
+
+ int width() const;
+ void setWidth(int width);
+
+ int height() const;
+ void setHeight(int height);
+
+Q_SIGNALS:
+ void nameChanged();
+ void sourceChanged();
+ void widthChanged();
+ void heightChanged();
+
+private:
+ Q_DISABLE_COPY(QQuickIcon)
+ Q_DECLARE_PRIVATE(QQuickIcon)
+};
+
+QT_END_NAMESPACE
+
+#endif // QQUICKICON_P_H
diff --git a/src/quicktemplates2/quicktemplates2.pri b/src/quicktemplates2/quicktemplates2.pri
index dfeb899d..34fa001f 100644
--- a/src/quicktemplates2/quicktemplates2.pri
+++ b/src/quicktemplates2/quicktemplates2.pri
@@ -26,6 +26,7 @@ HEADERS += \
$$PWD/qquickframe_p.h \
$$PWD/qquickframe_p_p.h \
$$PWD/qquickgroupbox_p.h \
+ $$PWD/qquickicon_p.h \
$$PWD/qquickitemdelegate_p.h \
$$PWD/qquickitemdelegate_p_p.h \
$$PWD/qquicklabel_p.h \
@@ -100,6 +101,7 @@ SOURCES += \
$$PWD/qquickdrawer.cpp \
$$PWD/qquickframe.cpp \
$$PWD/qquickgroupbox.cpp \
+ $$PWD/qquickicon.cpp \
$$PWD/qquickitemdelegate.cpp \
$$PWD/qquicklabel.cpp \
$$PWD/qquickmenu.cpp \