diff --git a/libs/editor/connectioneditorbase.h b/libs/editor/connectioneditorbase.h --- a/libs/editor/connectioneditorbase.h +++ b/libs/editor/connectioneditorbase.h @@ -74,6 +74,7 @@ private: bool m_initialized; bool m_valid; + int m_pendingReplies; NetworkManager::ConnectionSettings::Ptr m_connection; ConnectionWidget *m_connectionWidget; QList m_settingWidgets; diff --git a/libs/editor/connectioneditorbase.cpp b/libs/editor/connectioneditorbase.cpp --- a/libs/editor/connectioneditorbase.cpp +++ b/libs/editor/connectioneditorbase.cpp @@ -66,6 +66,7 @@ : QWidget(parent, f) , m_initialized(false) , m_valid(false) + , m_pendingReplies(0) , m_connection(connection) { } @@ -400,6 +401,7 @@ } if (requestSecrets) { + m_pendingReplies++; reply = connection->secrets(settingName); QDBusPendingCallWatcher *watcher = new QDBusPendingCallWatcher(reply, this); watcher->setProperty("connection", connection->name()); @@ -414,7 +416,9 @@ } // We should be now fully initialized as we don't wait for secrets - m_initialized = true; + if (m_pendingReplies == 0) { + m_initialized = true; + } } void ConnectionEditorBase::replyFinished(QDBusPendingCallWatcher *watcher) @@ -452,6 +456,7 @@ validChanged(true); // We should be now fully with secrets + m_pendingReplies--; m_initialized = true; }