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