diff --git a/redis-desktop-manager/core/connection.cpp b/redis-desktop-manager/core/connection.cpp index 100f3f9e..3d3f6650 100644 --- a/redis-desktop-manager/core/connection.cpp +++ b/redis-desktop-manager/core/connection.cpp @@ -24,12 +24,12 @@ RedisClient::Connection::~Connection() bool RedisClient::Connection::connect() // todo: add block/unblock parameter { - if (m_isTransporterInitialized) - return false; - if (isConnected()) return true; + if (m_isTransporterInitialized) + return false; + //todo : implement unix socket transporter if (config.useSshTunnel()) { transporter = QSharedPointer(new SshTransporter(this)); diff --git a/redis-desktop-manager/models/items/RedisServerItem.cpp b/redis-desktop-manager/models/items/RedisServerItem.cpp index 619791d5..cfffb0d1 100644 --- a/redis-desktop-manager/models/items/RedisServerItem.cpp +++ b/redis-desktop-manager/models/items/RedisServerItem.cpp @@ -88,22 +88,26 @@ RedisClient::Connection * RedisServerItem::getConnection() } void RedisServerItem::reload() -{ - blockSignals(true); - unload(); - blockSignals(false); - +{ + unload(); loadDatabaseList(); } void RedisServerItem::unload() { + if (!isDbInfoLoaded) + return; + setBusyIcon(); + blockSignals(true); removeRows(0, rowCount()); + blockSignals(false); isDbInfoLoaded = false; + connection->disconnect(); + getItemNameFromConnection(); setOfflineIcon();