diff --git a/src/inventory_wars/gui/InventoryWars/IdleView.qml b/src/inventory_wars/gui/InventoryWars/IdleView.qml index f847a3e..3134343 100644 --- a/src/inventory_wars/gui/InventoryWars/IdleView.qml +++ b/src/inventory_wars/gui/InventoryWars/IdleView.qml @@ -79,20 +79,23 @@ Rectangle { } } - Label { - Layout.alignment: Qt.AlignHCenter - - font.pixelSize: UIStyle.fontSizeL - color: UIStyle.titletextColor - - text: "Leaderboard" - } - ColumnLayout { Layout.fillHeight: true Layout.fillWidth: true spacing: -1 + visible: leaderboard.hasRow + + Label { + Layout.alignment: Qt.AlignHCenter + padding: 10 + + font.pixelSize: UIStyle.fontSizeL + color: UIStyle.titletextColor + + text: "Leaderboard" + } + HorizontalHeaderView { Layout.fillWidth: true syncView: tableView diff --git a/src/inventory_wars/gui/app.py b/src/inventory_wars/gui/app.py index 90b7040..7457a27 100644 --- a/src/inventory_wars/gui/app.py +++ b/src/inventory_wars/gui/app.py @@ -154,6 +154,8 @@ class GameService(QObject): @QmlElement class SqlLeaderboardModel(QSqlTableModel): + selected = Signal() + def __init__(self, parent=None): super().__init__(parent) @@ -164,6 +166,15 @@ class SqlLeaderboardModel(QSqlTableModel): self.select() + def select(self, /): + result = super().select() + self.selected.emit() + return result + + @Property(bool, notify=selected) + def hasRow(self): + return self.rowCount() > 0 + def main(): logging.basicConfig(level=logging.DEBUG)