diff --git a/kcm/kcm.h b/kcm/kcm.h --- a/kcm/kcm.h +++ b/kcm/kcm.h @@ -62,6 +62,7 @@ void resetCurrentDevice(); private: + void setCurrentDeviceTrusted(bool trusted); void resetDeviceView(); Ui::KdeConnectKcmUi* kcmUi; diff --git a/kcm/kcm.cpp b/kcm/kcm.cpp --- a/kcm/kcm.cpp +++ b/kcm/kcm.cpp @@ -184,16 +184,6 @@ } kcmUi->messages->setVisible(false); - kcmUi->progressBar->setVisible(false); - if (currentDevice->isTrusted()) { - kcmUi->unpair_button->setVisible(true); - kcmUi->pair_button->setVisible(false); - kcmUi->ping_button->setVisible(true); - } else { - kcmUi->unpair_button->setVisible(false); - kcmUi->pair_button->setVisible(true); - kcmUi->ping_button->setVisible(false); - } resetDeviceView(); connect(currentDevice, SIGNAL(pluginsChanged()), this, SLOT(resetCurrentDevice())); @@ -220,7 +210,9 @@ kcmUi->pluginSelector->setConfigurationArguments(QStringList(currentDevice->id())); kcmUi->name_label->setText(currentDevice->name()); - kcmUi->status_label->setText(currentDevice->isTrusted()? i18n("(trusted)") : i18n("(not trusted)")); + setWhenAvailable(currentDevice->isTrusted(), [this](bool trusted) { + setCurrentDeviceTrusted(trusted); + }, this); const QList pluginInfo = KPluginInfo::fromMetaData(KPluginLoader::findPlugins(QStringLiteral("kdeconnect/"))); QList availablePluginInfo; @@ -272,16 +264,20 @@ kcmUi->messages->animatedShow(); } -void KdeConnectKcm::trustedChanged(bool paired) +void KdeConnectKcm::trustedChanged(bool trusted) { DeviceDbusInterface* senderDevice = (DeviceDbusInterface*) sender(); - if (senderDevice != currentDevice) return; + if (senderDevice == currentDevice) + setCurrentDeviceTrusted(trusted); +} - kcmUi->pair_button->setVisible(!paired); - kcmUi->unpair_button->setVisible(paired); +void KdeConnectKcm::setCurrentDeviceTrusted(bool trusted) +{ + kcmUi->pair_button->setVisible(!trusted); + kcmUi->unpair_button->setVisible(trusted); kcmUi->progressBar->setVisible(false); - kcmUi->ping_button->setVisible(paired); - kcmUi->status_label->setText(paired ? i18n("(paired)") : i18n("(unpaired)")); + kcmUi->ping_button->setVisible(trusted); + kcmUi->status_label->setText(trusted ? i18n("(paired)") : i18n("(not paired)")); } void KdeConnectKcm::pluginsConfigChanged()