mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-06 05:23:58 -06:00
Ensure that local votes are displayed right away
So even before an update is received, ensure that the data is updated CURA-6013
This commit is contained in:
parent
e92bd01fb2
commit
04f3601c27
2 changed files with 38 additions and 9 deletions
|
@ -9,8 +9,16 @@ Item
|
|||
property real rating: 0
|
||||
property int indexHovered: -1
|
||||
property string packageId: ""
|
||||
|
||||
property int numRatings: 0
|
||||
|
||||
// If the widget was used to vote, but the vote isn't sent to remote yet, we do want to fake some things.
|
||||
property int _numRatings: _localRating != 0 ? numRatings + 1 : numRatings
|
||||
property int _localRating: 0
|
||||
onVisibleChanged: _localRating = 0 // Reset the _localRating
|
||||
|
||||
property int userRating: 0
|
||||
|
||||
width: contentRow.width
|
||||
height: contentRow.height
|
||||
MouseArea
|
||||
|
@ -50,7 +58,10 @@ Item
|
|||
{
|
||||
return indexHovered >= index
|
||||
}
|
||||
|
||||
if(ratingWidget._localRating > 0)
|
||||
{
|
||||
return _localRating >= index +1
|
||||
}
|
||||
if(ratingWidget.userRating > 0)
|
||||
{
|
||||
return userRating >= index +1
|
||||
|
@ -73,7 +84,7 @@ Item
|
|||
{
|
||||
return "#5a5a5a"
|
||||
}
|
||||
if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0) && isStarFilled)
|
||||
if((ratingWidget.indexHovered >= 0 || ratingWidget.userRating > 0 || ratingWidget._localRating > 0) && isStarFilled)
|
||||
{
|
||||
return UM.Theme.getColor("primary")
|
||||
}
|
||||
|
@ -82,19 +93,19 @@ Item
|
|||
}
|
||||
onClicked:
|
||||
{
|
||||
if(userRating == 0)
|
||||
{
|
||||
//User didn't vote yet, locally fake it
|
||||
numRatings += 1
|
||||
}
|
||||
userRating = index + 1 // Fake local data
|
||||
// Ensure that the local rating is updated (even though it's not on the server just yet)
|
||||
_localRating = index + 1
|
||||
toolbox.ratePackage(ratingWidget.packageId, index + 1)
|
||||
}
|
||||
}
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: "(" + numRatings + ")"
|
||||
text: "(" + _numRatings + ")"
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
height: parent.height
|
||||
color: "#5a5a5a"
|
||||
font: UM.Theme.getFont("small")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue