Skip to content

Commit

Permalink
add loading indicator for loading new chapters
Browse files Browse the repository at this point in the history
  • Loading branch information
mgn-norm committed Sep 19, 2021
1 parent 0afcf49 commit 5843bea
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 3 deletions.
8 changes: 6 additions & 2 deletions src/models/ChaptersModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,13 @@ void ChaptersModel::gotChapters(const QJsonDocument& reply)
return;
}

beginResetModel();
_loading = !_chapters.size();
emit loadingChanged();

_chapters.clear();

beginInsertRows({}, _chapters.size(), _chapters.size() + reply.array().count() - 1);

for (const auto& entry_arr : reply.array()) {
const auto& entry = entry_arr.toObject();
auto& info = _chapters.emplace_back();
Expand All @@ -71,7 +75,7 @@ void ChaptersModel::gotChapters(const QJsonDocument& reply)
}
emit lastReadChapterChanged();

endResetModel();
endInsertRows();

if (!_cachedChapters) {
_cachedChapters = true;
Expand Down
5 changes: 4 additions & 1 deletion src/models/ChaptersModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ class ChaptersModel : public QAbstractListModel, public QQmlParserStatus
Q_OBJECT

Q_PROPERTY(NetworkManager* nm READ getNetworkManager WRITE setNetworkManager NOTIFY networkManagerChanged)
Q_PROPERTY(qint32 mangaNumber MEMBER _mangaNumber NOTIFY mangaNumberChanged)
Q_PROPERTY(qint32 mangaNumber MEMBER _mangaNumber NOTIFY mangaNumberChanged)
Q_PROPERTY(qint32 lastReadChapter MEMBER _lastReadChapter NOTIFY lastReadChapterChanged)
Q_PROPERTY(bool loading MEMBER _loading NOTIFY loadingChanged)

NetworkManager* _networkManager = nullptr;
bool _cachedChapters = false;
bool _loading = true;


qint32 _mangaNumber;
Expand Down Expand Up @@ -91,6 +93,7 @@ class ChaptersModel : public QAbstractListModel, public QQmlParserStatus
void networkManagerChanged();
void mangaNumberChanged();
void lastReadChapterChanged();
void loadingChanged();

public slots:
void gotChapters(const QJsonDocument& reply);
Expand Down
10 changes: 10 additions & 0 deletions src/models/DownloadsModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -218,11 +218,21 @@ QHash<int, QByteArray> DownloadsModel::roleNames() const {
return roles;
}

/******************************************************************************
*
* Method: clear()
*
*****************************************************************************/
void DownloadsModel::clear()
{
_networkManager->get("downloads/clear");
}

/******************************************************************************
*
* Method: cancel()
*
*****************************************************************************/
void DownloadsModel::cancel(qint32 index)
{
_networkManager->deleteResource(
Expand Down
19 changes: 19 additions & 0 deletions src/qml/MangaDetails.qml
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,25 @@ Item {
onClicked: popup.open()
}
}

RowLayout {
width: parent.width
height: busyIndicator.running ? 50 : 0
Text {
text: qsTr("loading new chapters...")
visible: busyIndicator.running
Layout.alignment: Qt.AlignRight
font.pixelSize: 20
Layout.fillWidth: true
Layout.leftMargin: 4
}
BusyIndicator {
id: busyIndicator
running: chaptersModel.loading
Layout.alignment: Qt.AlignLeft
Layout.rightMargin: 4
}
}
}

ListView {
Expand Down

0 comments on commit 5843bea

Please sign in to comment.