From 886df959d119044c3c21d807020e3136c2e22302 Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 10 Jul 2018 11:26:23 -0700 Subject: [PATCH 1/2] expose totalPages and totalEntries, and use the later to display connections count --- interface/resources/qml/hifi/Pal.qml | 2 +- interface/resources/qml/hifi/models/PSFListModel.qml | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/interface/resources/qml/hifi/Pal.qml b/interface/resources/qml/hifi/Pal.qml index 8dcb76442b..3059707313 100644 --- a/interface/resources/qml/hifi/Pal.qml +++ b/interface/resources/qml/hifi/Pal.qml @@ -765,7 +765,7 @@ Rectangle { TableViewColumn { id: connectionsUserNameHeader; role: "userName"; - title: connectionsTable.rowCount + (connectionsTable.rowCount === 1 ? " NAME" : " NAMES"); + title: connectionsUserModel.totalEntries + (connectionsUserModel.totalEntries === 1 ? " NAME" : " NAMES"); width: connectionsNameCardWidth; movable: false; resizable: false; diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 1bfa2f6ae0..486e488093 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -51,6 +51,8 @@ ListModel { if (!delayedClear) { root.clear(); } currentPageToRetrieve = 1; retrievedAtLeastOnePage = false; + totalPages = 0; + totalEntries = 0; } // Page processing. @@ -59,6 +61,8 @@ ListModel { property var processPage: function (data) { return data; } property var listView; // Optional. For debugging. + property int totalPages: 0; + property int totalEntries: 0; // Check consistency and call processPage. function handlePage(error, response) { var processed; @@ -79,8 +83,10 @@ ListModel { if (response.current_page && response.current_page !== currentPageToRetrieve) { // Not all endpoints specify this property. return fail("Mismatched page, expected:" + currentPageToRetrieve); } + totalPages = response.total_pages; + totalEntries = response.total_entries; processed = processPage(response.data || response); - if (response.total_pages && (response.total_pages === currentPageToRetrieve)) { + if (totalPages && (totalPages === currentPageToRetrieve)) { currentPageToRetrieve = -1; } From 8b713a437f0d11431047b1b947a1b418c3c76a2c Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Tue, 10 Jul 2018 12:14:31 -0700 Subject: [PATCH 2/2] don't store undefined in a qml int. --- interface/resources/qml/hifi/models/PSFListModel.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 486e488093..19f1a3e173 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -83,8 +83,8 @@ ListModel { if (response.current_page && response.current_page !== currentPageToRetrieve) { // Not all endpoints specify this property. return fail("Mismatched page, expected:" + currentPageToRetrieve); } - totalPages = response.total_pages; - totalEntries = response.total_entries; + totalPages = response.total_pages || 0; + totalEntries = response.total_entries || 0; processed = processPage(response.data || response); if (totalPages && (totalPages === currentPageToRetrieve)) { currentPageToRetrieve = -1;