aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/calendar
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-01-30 20:57:40 +0100
committerJari-Pekka Nurmi <jpnurmi@theqtcompany.com>2015-02-05 14:50:29 +0200
commit8b2a1ec43134e191a5f9bb08a73f1a694d52927d (patch)
treee3e7e8a14316fa488c3a2dab95fbfd3e592ece2b /src/imports/calendar
parentb46d1280b8d43f80d0ed7c38e11008b9d00a8e1d (diff)
Import the Qt Quick Controls 2 prototype
Change-Id: Ib8c0c4160958e5cfea29a6e9df1b3f1fb19715fc Reviewed-by: Jari-Pekka Nurmi <jpnurmi@theqtcompany.com>
Diffstat (limited to 'src/imports/calendar')
-rw-r--r--src/imports/calendar/CalendarDelegate.qml60
-rw-r--r--src/imports/calendar/CalendarView.qml78
-rw-r--r--src/imports/calendar/DayOfWeekRow.qml75
-rw-r--r--src/imports/calendar/WeekNumberColumn.qml75
-rw-r--r--src/imports/calendar/calendar.pro21
-rw-r--r--src/imports/calendar/qmldir7
-rw-r--r--src/imports/calendar/qtquickcalendar2plugin.cpp71
7 files changed, 387 insertions, 0 deletions
diff --git a/src/imports/calendar/CalendarDelegate.qml b/src/imports/calendar/CalendarDelegate.qml
new file mode 100644
index 00000000..a6b000b7
--- /dev/null
+++ b/src/imports/calendar/CalendarDelegate.qml
@@ -0,0 +1,60 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Calendar 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$
+**
+****************************************************************************/
+
+import QtQuick 2.4
+import QtQuick.Controls 2.0
+import QtQuick.Calendar 2.0
+
+Item {
+ property alias text: label.text
+ property alias color: label.color
+ property real padding
+
+ implicitWidth: label.implicitWidth * 3
+ implicitHeight: label.implicitHeight * 3
+
+ Text {
+ id: label
+ x: padding
+ y: padding
+ width: parent.width - 2 * padding
+ height: parent.height - 2 * padding
+ minimumPointSize: 8
+ fontSizeMode: Text.Fit
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+}
diff --git a/src/imports/calendar/CalendarView.qml b/src/imports/calendar/CalendarView.qml
new file mode 100644
index 00000000..ce6e9908
--- /dev/null
+++ b/src/imports/calendar/CalendarView.qml
@@ -0,0 +1,78 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Calendar 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$
+**
+****************************************************************************/
+
+import QtQuick 2.4
+import QtQuick.Controls 2.0
+import QtQuick.Calendar 2.0
+
+AbstractCalendarView {
+ id: control
+
+ property Component delegate: CalendarDelegate {
+ width: grid.width ? grid.width / 7 : implicitWidth
+ height: grid.height ? grid.height / 6 : implicitHeight
+ opacity: model.month === control.month ? 1 : 0
+ color: model.today ? style.accentColor : style.textColor
+ text: model.day
+ padding: style.padding
+ }
+
+ contentWidth: grid.implicitWidth
+ contentHeight: grid.implicitHeight
+
+ implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + padding.left + padding.right)
+ implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + padding.top + padding.bottom)
+
+ Accessible.name: title
+
+ contentItem: Grid {
+ id: grid
+
+ rows: 6
+ columns: 7
+
+ x: padding.left
+ y: padding.top
+ width: parent.width - padding.left - padding.right
+ height: parent.height - padding.top - padding.bottom
+
+ Repeater {
+ id: repeater
+ model: control.source
+ delegate: control.delegate
+ }
+ }
+}
diff --git a/src/imports/calendar/DayOfWeekRow.qml b/src/imports/calendar/DayOfWeekRow.qml
new file mode 100644
index 00000000..5a33b5ee
--- /dev/null
+++ b/src/imports/calendar/DayOfWeekRow.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Calendar 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$
+**
+****************************************************************************/
+
+import QtQuick 2.4
+import QtQuick.Controls 2.0
+import QtQuick.Calendar 2.0
+
+AbstractDayOfWeekRow {
+ id: control
+
+ property Component delegate: Text {
+ text: model.shortName
+ font.bold: true
+ color: control.style.textColor
+ width: row.width ? row.width / 7 : implicitWidth
+ height: row.height ? row.height : implicitHeight
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentWidth: row.implicitWidth
+ contentHeight: row.implicitHeight
+
+ implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + padding.left + padding.right)
+ implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + padding.top + padding.bottom)
+
+ padding { top: style.padding; bottom: style.padding }
+
+ contentItem: Row {
+ id: row
+
+ x: padding.left
+ y: padding.top
+ width: parent.width - padding.left - padding.right
+ height: parent.height - padding.top - padding.bottom
+
+ Repeater {
+ model: control.source
+ delegate: control.delegate
+ }
+ }
+}
diff --git a/src/imports/calendar/WeekNumberColumn.qml b/src/imports/calendar/WeekNumberColumn.qml
new file mode 100644
index 00000000..e2d1f63c
--- /dev/null
+++ b/src/imports/calendar/WeekNumberColumn.qml
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Calendar 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$
+**
+****************************************************************************/
+
+import QtQuick 2.4
+import QtQuick.Controls 2.0
+import QtQuick.Calendar 2.0
+
+AbstractWeekNumberColumn {
+ id: control
+
+ property Component delegate: Text {
+ text: model.weekNumber
+ font.bold: true
+ color: control.style.textColor
+ width: column.width ? column.width : implicitWidth
+ height: column.height ? column.height / 6 : implicitHeight
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ contentWidth: column.implicitWidth
+ contentHeight: column.implicitHeight
+
+ implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + padding.left + padding.right)
+ implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + padding.top + padding.bottom)
+
+ padding { left: style.padding; right: style.padding }
+
+ contentItem: Column {
+ id: column
+
+ x: padding.left
+ y: padding.top
+ width: parent.width - padding.left - padding.right
+ height: parent.height - padding.top - padding.bottom
+
+ Repeater {
+ model: control.source
+ delegate: control.delegate
+ }
+ }
+}
diff --git a/src/imports/calendar/calendar.pro b/src/imports/calendar/calendar.pro
new file mode 100644
index 00000000..625be272
--- /dev/null
+++ b/src/imports/calendar/calendar.pro
@@ -0,0 +1,21 @@
+TARGET = qtquickcalendar2plugin
+TARGETPATH = QtQuick/Calendar.2
+IMPORT_VERSION = 2.0
+
+QT += qml quick
+QT += core-private gui-private qml-private quick-private quickcontrols-private quickcalendar-private
+
+OTHER_FILES += \
+ qmldir
+
+QML_FILES = \
+ CalendarDelegate.qml \
+ CalendarView.qml \
+ DayOfWeekRow.qml \
+ WeekNumberColumn.qml
+
+SOURCES += \
+ $$PWD/qtquickcalendar2plugin.cpp
+
+CONFIG += no_cxx_module
+load(qml_plugin)
diff --git a/src/imports/calendar/qmldir b/src/imports/calendar/qmldir
new file mode 100644
index 00000000..af87241f
--- /dev/null
+++ b/src/imports/calendar/qmldir
@@ -0,0 +1,7 @@
+module QtQuick.Calendar
+plugin qtquickcalendar2plugin
+classname QtQuickCalendar2Plugin
+CalendarDelegate 2.0 CalendarDelegate.qml
+CalendarView 2.0 CalendarView.qml
+DayOfWeekRow 2.0 DayOfWeekRow.qml
+WeekNumberColumn 2.0 WeekNumberColumn.qml
diff --git a/src/imports/calendar/qtquickcalendar2plugin.cpp b/src/imports/calendar/qtquickcalendar2plugin.cpp
new file mode 100644
index 00000000..8e84e094
--- /dev/null
+++ b/src/imports/calendar/qtquickcalendar2plugin.cpp
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the Qt Quick Calendar 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 <QtQml/qqmlextensionplugin.h>
+
+#include <QtQuickCalendar/private/qquickabstractcalendarview_p.h>
+#include <QtQuickCalendar/private/qquickabstractdayofweekrow_p.h>
+#include <QtQuickCalendar/private/qquickabstractweeknumbercolumn_p.h>
+#include <QtQuickCalendar/private/qquickcalendarmodel_p.h>
+#include <QtQuickCalendar/private/qquickdayofweekmodel_p.h>
+#include <QtQuickCalendar/private/qquickmonthmodel_p.h>
+#include <QtQuickCalendar/private/qquickweeknumbermodel_p.h>
+
+QT_BEGIN_NAMESPACE
+
+class QtQuickCalendar2Plugin: public QQmlExtensionPlugin
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0")
+
+public:
+ void registerTypes(const char *uri);
+};
+
+void QtQuickCalendar2Plugin::registerTypes(const char *uri)
+{
+ qmlRegisterType<QQuickAbstractCalendarView>(uri, 2, 0, "AbstractCalendarView");
+ qmlRegisterType<QQuickAbstractDayOfWeekRow>(uri, 2, 0, "AbstractDayOfWeekRow");
+ qmlRegisterType<QQuickAbstractWeekNumberColumn>(uri, 2, 0, "AbstractWeekNumberColumn");
+ qmlRegisterType<QQuickCalendarModel>(uri, 2, 0, "CalendarModel");
+ qmlRegisterType<QQuickDayOfWeekModel>(uri, 2, 0, "DayOfWeekModel");
+ qmlRegisterType<QQuickMonthModel>(uri, 2, 0, "MonthModel");
+ qmlRegisterType<QQuickWeekNumberModel>(uri, 2, 0, "WeekNumberModel");
+}
+
+QT_END_NAMESPACE
+
+#include "qtquickcalendar2plugin.moc"