Update libqmatrixclient && add a progress bar.
This commit is contained in:
parent
6ecef7608c
commit
56b820e1a8
|
@ -1 +1 @@
|
||||||
Subproject commit f5651c74ddddd8c66b3b42b471fbe2ff278c0d9a
|
Subproject commit 5f2b4caa9b9cd63e1652d6550ceebecdb52df424
|
|
@ -100,6 +100,14 @@ Item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ProgressBar {
|
||||||
|
Layout.fillWidth: true
|
||||||
|
z: 10
|
||||||
|
|
||||||
|
visible: currentRoom && currentRoom.busy
|
||||||
|
indeterminate: true
|
||||||
|
}
|
||||||
|
|
||||||
ListView {
|
ListView {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
@ -122,11 +130,9 @@ Item {
|
||||||
onContentYChanged: {
|
onContentYChanged: {
|
||||||
// Check whether we're about to bump into the ceiling in 2 seconds
|
// Check whether we're about to bump into the ceiling in 2 seconds
|
||||||
var curVelocity = verticalVelocity // Snapshot the current speed
|
var curVelocity = verticalVelocity // Snapshot the current speed
|
||||||
if(curVelocity < 0 && contentY + curVelocity*2 < originY)
|
if(curVelocity < 0 && contentY + curVelocity * 2 < originY)
|
||||||
{
|
{
|
||||||
// Request the amount of messages enough to scroll at this
|
currentRoom.getPreviousContent(50);
|
||||||
// rate for 3 more seconds
|
|
||||||
currentRoom.getPreviousContent(20);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,8 +165,8 @@ Item {
|
||||||
console.log("Scrolling to position", lastScrollPosition)
|
console.log("Scrolling to position", lastScrollPosition)
|
||||||
messageListView.currentIndex = lastScrollPosition
|
messageListView.currentIndex = lastScrollPosition
|
||||||
}
|
}
|
||||||
if (messageListView.contentY < messageListView.originY + 10)
|
if (messageListView.contentY < messageListView.originY + 10 || currentRoom.timelineSize === 0)
|
||||||
currentRoom.getPreviousContent(100)
|
currentRoom.getPreviousContent(50)
|
||||||
}
|
}
|
||||||
console.log("Model timeline reset")
|
console.log("Model timeline reset")
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,6 +17,8 @@ SpectralRoom::SpectralRoom(Connection* connection, QString roomId,
|
||||||
&SpectralRoom::countChanged);
|
&SpectralRoom::countChanged);
|
||||||
connect(this, &SpectralRoom::highlightCountChanged, this,
|
connect(this, &SpectralRoom::highlightCountChanged, this,
|
||||||
&SpectralRoom::countChanged);
|
&SpectralRoom::countChanged);
|
||||||
|
connect(this, &Room::addedMessages, this,
|
||||||
|
[=] { setBusy(false); });
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpectralRoom::chooseAndUploadFile() {
|
void SpectralRoom::chooseAndUploadFile() {
|
||||||
|
@ -175,3 +177,8 @@ void SpectralRoom::saveViewport(int topIndex, int bottomIndex) {
|
||||||
setFirstDisplayedEvent(maxTimelineIndex() - topIndex);
|
setFirstDisplayedEvent(maxTimelineIndex() - topIndex);
|
||||||
setLastDisplayedEvent(maxTimelineIndex() - bottomIndex);
|
setLastDisplayedEvent(maxTimelineIndex() - bottomIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SpectralRoom::getPreviousContent(int limit) {
|
||||||
|
setBusy(true);
|
||||||
|
Room::getPreviousContent(limit);
|
||||||
|
}
|
||||||
|
|
|
@ -15,6 +15,8 @@ class SpectralRoom : public Room {
|
||||||
Q_PROPERTY(QString usersTyping READ getUsersTyping NOTIFY typingChanged)
|
Q_PROPERTY(QString usersTyping READ getUsersTyping NOTIFY typingChanged)
|
||||||
Q_PROPERTY(QString cachedInput READ cachedInput WRITE setCachedInput NOTIFY
|
Q_PROPERTY(QString cachedInput READ cachedInput WRITE setCachedInput NOTIFY
|
||||||
cachedInputChanged)
|
cachedInputChanged)
|
||||||
|
Q_PROPERTY(bool busy READ busy NOTIFY busyChanged)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit SpectralRoom(Connection* connection, QString roomId,
|
explicit SpectralRoom(Connection* connection, QString roomId,
|
||||||
JoinState joinState = {});
|
JoinState joinState = {});
|
||||||
|
@ -29,6 +31,14 @@ class SpectralRoom : public Room {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool busy() { return m_busy; }
|
||||||
|
void setBusy(bool value) {
|
||||||
|
if (m_busy != value) {
|
||||||
|
m_busy = value;
|
||||||
|
emit busyChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool hasUsersTyping();
|
bool hasUsersTyping();
|
||||||
QString getUsersTyping();
|
QString getUsersTyping();
|
||||||
|
|
||||||
|
@ -42,10 +52,14 @@ class SpectralRoom : public Room {
|
||||||
Q_INVOKABLE int savedBottomVisibleIndex() const;
|
Q_INVOKABLE int savedBottomVisibleIndex() const;
|
||||||
Q_INVOKABLE void saveViewport(int topIndex, int bottomIndex);
|
Q_INVOKABLE void saveViewport(int topIndex, int bottomIndex);
|
||||||
|
|
||||||
|
Q_INVOKABLE void getPreviousContent(int limit = 10);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_cachedInput;
|
QString m_cachedInput;
|
||||||
QSet<const QMatrixClient::RoomEvent*> highlights;
|
QSet<const QMatrixClient::RoomEvent*> highlights;
|
||||||
|
|
||||||
|
bool m_busy;
|
||||||
|
|
||||||
QString getMIME(const QUrl& fileUrl) const;
|
QString getMIME(const QUrl& fileUrl) const;
|
||||||
void postFile(const QUrl& localFile, const QUrl& mxcUrl);
|
void postFile(const QUrl& localFile, const QUrl& mxcUrl);
|
||||||
|
|
||||||
|
@ -59,6 +73,7 @@ class SpectralRoom : public Room {
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void cachedInputChanged();
|
void cachedInputChanged();
|
||||||
|
void busyChanged();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void chooseAndUploadFile();
|
void chooseAndUploadFile();
|
||||||
|
|
Loading…
Reference in New Issue