mirror of
https://github.com/redis/RedisDesktopManager.git
synced 2026-10-29 11:36:44 +08:00
Handle connection exceptions properly in TreeOperations::getDatabases
This commit is contained in:
@@ -27,7 +27,11 @@ void TreeOperations::getDatabases(std::function<void (RedisClient::DatabaseList)
|
||||
bool connected = m_connection->isConnected();
|
||||
|
||||
if (connected) {
|
||||
m_connection->refreshServerInfo();
|
||||
try {
|
||||
m_connection->refreshServerInfo();
|
||||
} catch (const RedisClient::Connection::Exception& e) {
|
||||
throw ConnectionsTree::Operations::Exception(QObject::tr("Connection error: ") + QString(e.what()));
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
connected = m_connection->connect(true);
|
||||
|
||||
@@ -123,12 +123,19 @@ void DatabaseItem::loadKeys(std::function<void ()> callback)
|
||||
return;
|
||||
}
|
||||
|
||||
m_operations->getDatabases([this](QMap<int, int> dbMapping){
|
||||
std::function<void(RedisClient::DatabaseList)> dbLoadCallback = [this](QMap<int, int> dbMapping){
|
||||
if (dbMapping.contains(m_dbIndex)) {
|
||||
m_keysCount = dbMapping[m_dbIndex];
|
||||
emit m_model.itemChanged(getSelf());
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
try {
|
||||
m_operations->getDatabases(dbLoadCallback);
|
||||
} catch (const ConnectionsTree::Operations::Exception& e) {
|
||||
unlock();
|
||||
emit m_model.error(QObject::tr("Cannot load databases:\n\n") + QString(e.what()));
|
||||
}
|
||||
|
||||
m_operations->loadNamespaceItems(qSharedPointerDynamicCast<AbstractNamespaceItem>(self),
|
||||
filter, [this, callback](const QString& err) {
|
||||
|
||||
Reference in New Issue
Block a user