Alla pressione Silica ri-parenta il RemorseItem dentro la fila dei tre tasti e ci disegna sopra il banner (messaggio + conto alla rovescia) a margini fissi: il suo riquadro non ha la larghezza del tasto, quindi copre i tasti vicini. Il messaggio lo mostra gia' la NoticeBar, che ora ha altezza fissa a una riga e una banda riservata sotto il contenuto in tutte e cinque le pagine.
48 lines
1.6 KiB
QML
48 lines
1.6 KiB
QML
import QtQuick 2.2
|
|
import Sailfish.Silica 1.0
|
|
|
|
// Messaggio dell'ultimo comando, ancorato al bordo inferiore della pagina.
|
|
//
|
|
// Sta FUORI dal contenuto che scorre: prima il messaggio era la prima riga
|
|
// della colonna, quindi premendo un pulsante in fondo alla pagina nasceva
|
|
// fuori dallo schermo e non si capiva se il comando fosse partito.
|
|
//
|
|
// Lo stato sta in ApiClient (api.notice): qui si mostra e basta, cosi' il
|
|
// messaggio e' lo stesso su qualsiasi pagina.
|
|
Rectangle {
|
|
id: root
|
|
|
|
anchors {
|
|
left: parent.left
|
|
right: parent.right
|
|
bottom: parent.bottom
|
|
}
|
|
// Altezza FISSA, una riga sola: le pagine riservano questo spazio sotto la
|
|
// zona che scorre (`anchors.bottomMargin: notice.banda`), cosi' il messaggio
|
|
// non copre mai il contenuto e non sposta niente quando compare.
|
|
readonly property real banda: Theme.fontSizeSmall * 2.2 + 2 * Theme.paddingMedium
|
|
height: banda
|
|
color: Qt.rgba(0, 0, 0, 0.78)
|
|
opacity: api.notice.length > 0 ? 1 : 0
|
|
visible: opacity > 0
|
|
z: 100
|
|
|
|
Behavior on opacity { NumberAnimation { duration: 200 } }
|
|
|
|
Label {
|
|
id: message
|
|
anchors {
|
|
left: parent.left
|
|
right: parent.right
|
|
leftMargin: Theme.horizontalPageMargin
|
|
rightMargin: Theme.horizontalPageMargin
|
|
verticalCenter: parent.verticalCenter
|
|
}
|
|
text: api.notice
|
|
color: api.noticeIsError ? Theme.errorColor : Theme.highlightColor
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
maximumLineCount: 1
|
|
elide: Text.ElideRight
|
|
}
|
|
}
|