diff --git a/saoriview.cpp b/saoriview.cpp index 9160e35..aa05350 100644 --- a/saoriview.cpp +++ b/saoriview.cpp @@ -47,6 +47,7 @@ m_viewname = view; m_account = account; m_viewList.append(this); + m_maxid = 0; auto saoriaccount = SaoriApplication::saori()->findAccount(m_account); if (saoriaccount) { @@ -86,6 +87,20 @@ QWidget::resizeEvent(e); } +void SaoriView::reload() +{ + qDebug() << "reload."; + auto saoriaccount = SaoriApplication::saori()->findAccount(m_account); + if (saoriaccount == nullptr) return; + if (m_entries.count() == 0) m_maxid = 0; + else { + m_maxid = m_entries.first()->id(); + } + QUrlQuery query; + query.addQueryItem("since_id",QString::number(m_maxid)); + saoriaccount->getTimelineData(m_viewname,query); +} + const QString SaoriView::statusParser(const QJsonObject json) { QString result; @@ -193,6 +208,9 @@ } entry->setContent(statusParser(j.toObject())); } + if (m_entries.count()) { + if (m_entries.first()->id() > m_maxid) reload(); + } } void SaoriView::linkClicked(const QUrl &url) @@ -208,3 +226,8 @@ { ui->scrollArea->verticalScrollBar()->setValue(0); } + +void SaoriView::on_pushButton_reload_clicked() +{ + reload(); +} diff --git a/saoriview.h b/saoriview.h index 5cf9730..42c7d40 100644 --- a/saoriview.h +++ b/saoriview.h @@ -50,11 +50,13 @@ QString m_viewname; QString m_account; QList m_entries; + qlonglong m_maxid; static QList m_viewList; protected: virtual void resizeEvent(QResizeEvent *e); + void reload(); const QString statusParser(const QJsonObject json); const QString accountParser(const QJsonObject json); const QString mediaParser(const QJsonObject json); @@ -71,6 +73,7 @@ void openMediaView(const QUrl); private slots: void on_pushButton_newest_clicked(); + void on_pushButton_reload_clicked(); }; #endif // SAORIVIEW_H