4 changed files with 78 additions and 2 deletions
@ -0,0 +1,57 @@ |
|||||||
|
import QtQuick 2.6 |
||||||
|
import QtQuick.Layouts 1.0 |
||||||
|
import QtQuick.Controls 2.14 |
||||||
|
import QtQuick.Controls.Material 2.0 |
||||||
|
|
||||||
|
import ".." |
||||||
|
|
||||||
|
Item { |
||||||
|
id: toaster |
||||||
|
width: rect.width |
||||||
|
height: rect.height |
||||||
|
visible: false |
||||||
|
|
||||||
|
property int _y |
||||||
|
property string _text |
||||||
|
|
||||||
|
function show(item, text) { |
||||||
|
_text = text |
||||||
|
var r = item.mapToItem(parent, item.x, item.y) |
||||||
|
x = r.x |
||||||
|
y = r.y - toaster.height - constants.paddingLarge |
||||||
|
toaster._y = y - 35 |
||||||
|
ani.restart() |
||||||
|
} |
||||||
|
|
||||||
|
SequentialAnimation { |
||||||
|
id: ani |
||||||
|
running: false |
||||||
|
PropertyAction { target: toaster; property: 'visible'; value: true } |
||||||
|
PropertyAction { target: toaster; property: 'opacity'; value: 1 } |
||||||
|
PauseAnimation { duration: 1000} |
||||||
|
ParallelAnimation { |
||||||
|
NumberAnimation { target: toaster; property: 'y'; to: toaster._y; duration: 1000; easing.type: Easing.InQuad } |
||||||
|
NumberAnimation { target: toaster; property: 'opacity'; to: 0; duration: 1000 } |
||||||
|
} |
||||||
|
PropertyAction { target: toaster; property: 'visible'; value: false } |
||||||
|
} |
||||||
|
|
||||||
|
Rectangle { |
||||||
|
id: rect |
||||||
|
width: contentItem.width |
||||||
|
height: contentItem.height |
||||||
|
color: constants.colorAlpha(Material.dialogColor, 0.90) |
||||||
|
border { |
||||||
|
color: Material.accentColor |
||||||
|
width: 1 |
||||||
|
} |
||||||
|
|
||||||
|
RowLayout { |
||||||
|
id: contentItem |
||||||
|
Label { |
||||||
|
Layout.margins: 10 |
||||||
|
text: toaster._text |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue