Warning, /pim/kube/views/calendar/qml/AttendeeListEditor.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * Copyright (C) 2017 Michael Bohlender, <michael.bohlender@kdemail.net> 0003 * Copyright (C) 2017 Christian Mollekopf, <mollekopf@kolabsys.com> 0004 * 0005 * This program is free software; you can redistribute it and/or modify 0006 * it under the terms of the GNU General Public License as published by 0007 * the Free Software Foundation; either version 2 of the License, or 0008 * (at your option) any later version. 0009 * 0010 * This program is distributed in the hope that it will be useful, 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0013 * GNU General Public License for more details. 0014 * 0015 * You should have received a copy of the GNU General Public License along 0016 * with this program; if not, write to the Free Software Foundation, Inc., 0017 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0018 */ 0019 0020 0021 import QtQuick 2.7 0022 import QtQuick.Layouts 1.1 0023 import QtQuick.Controls 2.2 0024 0025 import org.kube.framework 1.0 as Kube 0026 0027 FocusScope { 0028 id: root 0029 property var controller 0030 property var completer 0031 0032 property alias count: listView.count 0033 0034 implicitHeight: listView.implicitHeight + lineEdit.height 0035 0036 ColumnLayout { 0037 anchors.fill: parent 0038 0039 spacing: Kube.Units.smallSpacing 0040 0041 Kube.ListView { 0042 id: listView 0043 Layout.fillWidth: true 0044 Layout.fillHeight: true 0045 spacing: Kube.Units.smallSpacing 0046 currentIndex: -1 0047 0048 model: controller.model 0049 delegate: Kube.ListDelegate { 0050 height: Kube.Units.gridUnit + Kube.Units.smallSpacing * 2 //smallSpacing for padding 0051 selectionEnabled: false 0052 0053 Rectangle { 0054 anchors.fill: parent 0055 color: Kube.Colors.darkBackgroundColor 0056 opacity: 0.7 0057 } 0058 0059 RowLayout { 0060 anchors { 0061 fill: parent 0062 leftMargin: Kube.Units.smallSpacing 0063 rightMargin: Kube.Units.smallSpacing 0064 } 0065 spacing: Kube.Units.smallSpacing 0066 0067 Kube.Label { 0068 Layout.maximumWidth: parent.width - statusLabel.width - iconButton.width - 4 * Kube.Units.smallSpacing 0069 text: model.name 0070 elide: Text.ElideRight 0071 color: Kube.Colors.highlightedTextColor 0072 MouseArea { 0073 id: mouseArea 0074 anchors.fill: parent 0075 hoverEnabled: true 0076 } 0077 ToolTip.visible: mouseArea.containsMouse 0078 ToolTip.text: text 0079 } 0080 0081 Item { 0082 Layout.fillWidth: true 0083 Layout.fillHeight: true 0084 } 0085 0086 Kube.Label { 0087 id: statusLabel 0088 text: model.status == Kube.EventController.Accepted ? qsTr("Attending") : qsTr("Invited") 0089 font.italic: true 0090 font.pointSize: Kube.Units.smallFontSize 0091 color: Kube.Colors.highlightedTextColor 0092 } 0093 Kube.IconButton { 0094 id: iconButton 0095 height: Kube.Units.gridUnit 0096 width: height 0097 onClicked: root.controller.remove(model.id) 0098 padding: 0 0099 iconName: Kube.Icons.remove 0100 } 0101 } 0102 } 0103 } 0104 0105 FocusScope { 0106 height: Kube.Units.gridUnit + Kube.Units.smallSpacing * 2 0107 width: parent.width 0108 focus: true 0109 0110 Kube.TextButton { 0111 id: button 0112 text: "+ " + qsTr("Add attendee") 0113 textColor: Kube.Colors.highlightColor 0114 focus: true 0115 onClicked: { 0116 lineEdit.visible = true 0117 lineEdit.forceActiveFocus() 0118 } 0119 } 0120 0121 Kube.AutocompleteLineEdit { 0122 id: lineEdit 0123 anchors { 0124 left: parent.left 0125 right: parent.right 0126 } 0127 visible: false 0128 0129 placeholderText: "+ " + qsTr("Add attendee") 0130 model: root.completer.model 0131 onSearchTermChanged: root.completer.searchString = searchTerm 0132 onAccepted: { 0133 root.controller.add({name: text}); 0134 clear() 0135 visible = false 0136 button.forceActiveFocus(Qt.TabFocusReason) 0137 } 0138 onAborted: { 0139 clear() 0140 visible = false 0141 button.forceActiveFocus(Qt.TabFocusReason) 0142 } 0143 } 0144 } 0145 } 0146 }