fix(Components/StatusTagSelector): Updates and fixes in the component
Moved `remove` function below remove contact signal also removed online status badge from CreateChatView Fixed as well name tags to be adapting on parent's width and scrolling the list to the end when this is bigger than the available width. Switcehd to use nameCountLimit property where needed
This commit is contained in:
parent
9e6fbe955a
commit
d924768892
@ -170,27 +170,6 @@ Page {
|
|||||||
font.pixelSize: 15
|
font.pixelSize: 15
|
||||||
}
|
}
|
||||||
|
|
||||||
StatusBadge {
|
|
||||||
id: statusBadge
|
|
||||||
width: 15
|
|
||||||
height: 15
|
|
||||||
anchors.left: contactImage.right
|
|
||||||
anchors.leftMargin: -8
|
|
||||||
anchors.bottom: contactImage.bottom
|
|
||||||
border.width: 3
|
|
||||||
border.color: Theme.palette.statusAppNavBar.backgroundColor
|
|
||||||
color: {
|
|
||||||
if (model.onlineStatus === 1)
|
|
||||||
return Theme.palette.successColor1;
|
|
||||||
else if (model.onlineStatus === 2)
|
|
||||||
return Theme.palette.pinColor1;
|
|
||||||
else if (model.onlineStatus === 3)
|
|
||||||
return Theme.palette.dangerColor1;
|
|
||||||
|
|
||||||
return "transparent"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
|
cursorShape: enabled ? Qt.PointingHandCursor : Qt.ArrowCursor
|
||||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||||
|
@ -19,17 +19,21 @@ Item {
|
|||||||
property ListModel namesModel: ListModel { }
|
property ListModel namesModel: ListModel { }
|
||||||
|
|
||||||
function find(model, criteria) {
|
function find(model, criteria) {
|
||||||
for (var i = 0; i < model.count; ++i) if (criteria(model.get(i))) return model.get(i);
|
for (var i = 0; i < model.count; ++i) if (criteria(model.get(i))) return model.get(i);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function insertTag(name, id) {
|
function insertTag(name, id) {
|
||||||
if (!find(namesModel, function(item) { return item.publicId === id }) && namesModel.count < root.nameCountLimit) {
|
if (!find(namesModel, function(item) { return item.publicId === id }) && namesModel.count < root.nameCountLimit) {
|
||||||
namesModel.insert(namesModel.count, {"name": name, "publicId": id});
|
namesModel.insert(namesModel.count, {"name": name, "publicId": id});
|
||||||
|
addMember(id);
|
||||||
edit.clear();
|
edit.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
signal addMember(string memberId)
|
||||||
|
signal removeMember(string memberId)
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
radius: 8
|
radius: 8
|
||||||
@ -47,47 +51,53 @@ Item {
|
|||||||
text: root.toLabelText
|
text: root.toLabelText
|
||||||
}
|
}
|
||||||
|
|
||||||
ListView {
|
ScrollView {
|
||||||
id: namesList
|
Layout.fillWidth: true
|
||||||
Layout.preferredWidth: (count >= 5) ? (parent.width - warningTextLabel.width - 30) : childrenRect.width
|
|
||||||
implicitHeight: 30
|
implicitHeight: 30
|
||||||
visible: (count > 0)
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
model: namesModel
|
visible: (namesList.count > 0)
|
||||||
orientation: ListView.Horizontal
|
contentWidth: namesList.contentWidth
|
||||||
spacing: 8
|
ScrollBar.vertical.policy: ScrollBar.AlwaysOff
|
||||||
|
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
|
||||||
clip: true
|
clip: true
|
||||||
onWidthChanged: {
|
ListView {
|
||||||
positionViewAtEnd();
|
id: namesList
|
||||||
}
|
anchors.fill: parent
|
||||||
|
model: namesModel
|
||||||
delegate: Rectangle {
|
orientation: ListView.Horizontal
|
||||||
id: nameDelegate
|
spacing: 8
|
||||||
width: (nameText.contentWidth + 34)
|
onContentWidthChanged: {
|
||||||
height: 30
|
positionViewAtEnd();
|
||||||
color: mouseArea.containsMouse ? Theme.palette.miscColor1 : Theme.palette.primaryColor1
|
|
||||||
radius: 8
|
|
||||||
StatusBaseText {
|
|
||||||
id: nameText
|
|
||||||
anchors.left: parent.left
|
|
||||||
anchors.leftMargin: 8
|
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
|
||||||
color: Theme.palette.indirectColor1
|
|
||||||
text: name
|
|
||||||
}
|
}
|
||||||
StatusIcon {
|
delegate: Rectangle {
|
||||||
anchors.left: nameText.right
|
id: nameDelegate
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
width: (nameText.contentWidth + 34)
|
||||||
color: Theme.palette.indirectColor1
|
height: 30
|
||||||
icon: "close"
|
color: mouseArea.containsMouse ? Theme.palette.miscColor1 : Theme.palette.primaryColor1
|
||||||
}
|
radius: 8
|
||||||
MouseArea {
|
StatusBaseText {
|
||||||
id: mouseArea
|
id: nameText
|
||||||
anchors.fill: parent
|
anchors.left: parent.left
|
||||||
hoverEnabled: true
|
anchors.leftMargin: 8
|
||||||
cursorShape: Qt.PointingHandCursor
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
onClicked: {
|
color: Theme.palette.indirectColor1
|
||||||
namesModel.remove(index, 1);
|
text: name
|
||||||
|
}
|
||||||
|
StatusIcon {
|
||||||
|
anchors.left: nameText.right
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
color: Theme.palette.indirectColor1
|
||||||
|
icon: "close"
|
||||||
|
}
|
||||||
|
MouseArea {
|
||||||
|
id: mouseArea
|
||||||
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
cursorShape: Qt.PointingHandCursor
|
||||||
|
onClicked: {
|
||||||
|
removeMember(publicId);
|
||||||
|
namesModel.remove(index, 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -106,7 +116,8 @@ Item {
|
|||||||
color: Theme.palette.directColor1
|
color: Theme.palette.directColor1
|
||||||
Keys.onPressed: {
|
Keys.onPressed: {
|
||||||
if ((event.key === Qt.Key_Backspace || event.key === Qt.Key_Escape)
|
if ((event.key === Qt.Key_Backspace || event.key === Qt.Key_Escape)
|
||||||
&& getText(cursorPosition, (cursorPosition-1)) === "") {
|
&& getText(cursorPosition, (cursorPosition-1)) === "") {
|
||||||
|
removeMember(namesModel.get(namesList.count-1).publicId);
|
||||||
namesModel.remove((namesList.count-1), 1);
|
namesModel.remove((namesList.count-1), 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -114,12 +125,12 @@ Item {
|
|||||||
|
|
||||||
StatusBaseText {
|
StatusBaseText {
|
||||||
id: warningTextLabel
|
id: warningTextLabel
|
||||||
visible: (namesModel.count === 5)
|
visible: (namesModel.count === root.nameCountLimit)
|
||||||
Layout.preferredWidth: 120
|
Layout.preferredWidth: 120
|
||||||
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
|
Layout.alignment: Qt.AlignVCenter | Qt.AlignRight
|
||||||
font.pixelSize: 10
|
font.pixelSize: 10
|
||||||
color: Theme.palette.dangerColor1
|
color: Theme.palette.dangerColor1
|
||||||
text: root.warningText
|
text: root.nameCountLimit + " " + root.warningText
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user