diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-01-30 20:57:40 +0100 |
---|---|---|
committer | Jari-Pekka Nurmi <jpnurmi@theqtcompany.com> | 2015-02-05 14:50:29 +0200 |
commit | 8b2a1ec43134e191a5f9bb08a73f1a694d52927d (patch) | |
tree | e3e7e8a14316fa488c3a2dab95fbfd3e592ece2b /src/imports/calendar | |
parent | b46d1280b8d43f80d0ed7c38e11008b9d00a8e1d (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.qml | 60 | ||||
-rw-r--r-- | src/imports/calendar/CalendarView.qml | 78 | ||||
-rw-r--r-- | src/imports/calendar/DayOfWeekRow.qml | 75 | ||||
-rw-r--r-- | src/imports/calendar/WeekNumberColumn.qml | 75 | ||||
-rw-r--r-- | src/imports/calendar/calendar.pro | 21 | ||||
-rw-r--r-- | src/imports/calendar/qmldir | 7 | ||||
-rw-r--r-- | src/imports/calendar/qtquickcalendar2plugin.cpp | 71 |
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" |