diff options
author | Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> | 2015-02-06 19:40:08 +0100 |
---|---|---|
committer | Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com> | 2015-02-13 15:27:50 +0000 |
commit | 0674b38c9cd12fde6b41ef4be079352878befa9a (patch) | |
tree | e93c60bdc89af0d5c66dcd194fcc5a43014c6ef7 /src/controls/Private/TableViewItemDelegateLoader.qml | |
parent | 82c7760b819f73ebc7f4ba6203fa2fc92b383236 (diff) | |
download | qtquickcontrols-0674b38c9cd12fde6b41ef4be079352878befa9a.tar.gz |
BasicTableView: Refactor and specialize ItemDelegateLoader
Change-Id: If95725e428025000d65984c81a1d7e1bac78e484
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
Diffstat (limited to 'src/controls/Private/TableViewItemDelegateLoader.qml')
-rw-r--r-- | src/controls/Private/TableViewItemDelegateLoader.qml | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/src/controls/Private/TableViewItemDelegateLoader.qml b/src/controls/Private/TableViewItemDelegateLoader.qml new file mode 100644 index 00000000..6214bdb3 --- /dev/null +++ b/src/controls/Private/TableViewItemDelegateLoader.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2015 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the Qt Quick Controls 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$ +** +****************************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the Qt API. It exists purely as an +// implementation detail. This file may change from version to +// version without notice, or even be removed. +// +// We mean it. +// + +import QtQuick 2.5 +import QtQuick.Controls 1.4 +import QtQuick.Controls.Styles 1.4 + +/*! + \qmltype TableViewItemDelegateLoader + \internal + \qmlabstract + \inqmlmodule QtQuick.Controls.Private +*/ + +Loader { + id: itemDelegateLoader + + width: __column ? __column.width : 0 + height: parent ? parent.height : 0 + visible: __column ? __column.visible : false + sourceComponent: __model === undefined || styleData.row === -1 ? null + : __column && __column.delegate ? __column.delegate : __itemDelegate + + // All these properties are internal + property int __index + property Item __rowItem: null + property var __model: __rowItem ? __rowItem.itemModel : undefined + property var __modelData: __rowItem ? __rowItem.itemModelData : undefined + property TableViewColumn __column: null + property Component __itemDelegate: null + property var __mouseArea: null + property var __style: null + + // These properties are exposed to the item delegate + readonly property var model: __model + readonly property var modelData: __modelData + + property QtObject styleData: QtObject { + readonly property int row: __rowItem ? __rowItem.rowIndex : -1 + readonly property int column: __index + readonly property int elideMode: __column ? __column.elideMode : Text.ElideLeft + readonly property int textAlignment: __column ? __column.horizontalAlignment : Text.AlignLeft + readonly property bool selected: __rowItem ? __rowItem.itemSelected : false + readonly property bool hasActiveFocus: __rowItem ? __rowItem.activeFocus : false + readonly property bool pressed: __mouseArea && row === __mouseArea.pressedRow && column === __mouseArea.pressedColumn + readonly property color textColor: __rowItem ? __rowItem.itemTextColor : "black" + readonly property string role: __column ? __column.role : "" + readonly property var value: model && model.hasOwnProperty(role) ? model[role] // Qml ListModel and QAbstractItemModel + : modelData && modelData.hasOwnProperty(role) ? modelData[role] // QObjectList / QObject + : modelData != undefined ? modelData : "" // Models without role + } +} |