Improve stability.
This commit is contained in:
parent
64603b47c6
commit
6e44347efd
|
@ -40,7 +40,12 @@ Controller::Controller(QObject* parent)
|
||||||
QTimer::singleShot(0, this, SLOT(invokeLogin()));
|
QTimer::singleShot(0, this, SLOT(invokeLogin()));
|
||||||
}
|
}
|
||||||
|
|
||||||
Controller::~Controller() {}
|
Controller::~Controller() {
|
||||||
|
for (auto c : qAsConst(m_connections)) {
|
||||||
|
c->saveState();
|
||||||
|
c->stopSync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
inline QString accessTokenFileName(const AccountSettings& account) {
|
inline QString accessTokenFileName(const AccountSettings& account) {
|
||||||
QString fileName = account.userId();
|
QString fileName = account.userId();
|
||||||
|
@ -104,10 +109,7 @@ void Controller::addConnection(Connection* c) {
|
||||||
|
|
||||||
m_connections.push_back(c);
|
m_connections.push_back(c);
|
||||||
|
|
||||||
connect(c, &Connection::syncDone, this, [=] {
|
connect(c, &Connection::syncDone, this, [=] { c->sync(30000); });
|
||||||
c->saveState();
|
|
||||||
c->sync(30000);
|
|
||||||
});
|
|
||||||
connect(c, &Connection::loggedOut, this, [=] { dropConnection(c); });
|
connect(c, &Connection::loggedOut, this, [=] { dropConnection(c); });
|
||||||
|
|
||||||
using namespace QMatrixClient;
|
using namespace QMatrixClient;
|
||||||
|
|
|
@ -8,6 +8,7 @@ class Paintable : public QObject {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
Paintable(QObject* parent = nullptr);
|
Paintable(QObject* parent = nullptr);
|
||||||
|
virtual ~Paintable() = default;
|
||||||
|
|
||||||
virtual QImage image(int) = 0;
|
virtual QImage image(int) = 0;
|
||||||
virtual QImage image(int, int) = 0;
|
virtual QImage image(int, int) = 0;
|
||||||
|
|
|
@ -18,11 +18,16 @@ class RoomPaintable : public Paintable {
|
||||||
}
|
}
|
||||||
|
|
||||||
QImage image(int dimension) override {
|
QImage image(int dimension) override {
|
||||||
if (!m_room) return QImage();
|
if (!m_room) {
|
||||||
|
qDebug() << "Room is null";
|
||||||
|
return QImage();
|
||||||
|
}
|
||||||
return m_room->avatar(dimension);
|
return m_room->avatar(dimension);
|
||||||
}
|
}
|
||||||
QImage image(int width, int height) override {
|
QImage image(int width, int height) override {
|
||||||
if (!m_room) return QImage();
|
if (!m_room) {
|
||||||
|
return QImage();
|
||||||
|
}
|
||||||
return m_room->avatar(width, height);
|
return m_room->avatar(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ void UserListModel::setRoom(QMatrixClient::Room* room) {
|
||||||
|
|
||||||
using namespace QMatrixClient;
|
using namespace QMatrixClient;
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
if (m_currentRoom) {
|
if (m_currentRoom && m_currentRoom->connection()) {
|
||||||
m_currentRoom->connection()->disconnect(this);
|
m_currentRoom->connection()->disconnect(this);
|
||||||
m_currentRoom->disconnect(this);
|
m_currentRoom->disconnect(this);
|
||||||
for (User* user : m_users) user->disconnect(this);
|
for (User* user : m_users) user->disconnect(this);
|
||||||
|
|
Loading…
Reference in New Issue