From 4fed17a47575494a90b25daa3b282e6018ca269b Mon Sep 17 00:00:00 2001 From: Leontiy Volodin Date: Thu, 24 Jun 2021 13:31:16 +0300 Subject: [PATCH] Revert "feat: 将保存用户数据的接口从deepinid改为sync.daemon" This reverts commit 78dbf5de28f6f560917578b19d1ed6ba67a25cf8. --- src/frame/modules/sync/syncworker.cpp | 31 +++++++++++++++++++++++++++---- src/frame/modules/sync/syncworker.h | 1 + 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/frame/modules/sync/syncworker.cpp b/src/frame/modules/sync/syncworker.cpp index 8d8d4c8..0b6ed51 100644 --- a/src/frame/modules/sync/syncworker.cpp +++ b/src/frame/modules/sync/syncworker.cpp @@ -23,24 +23,31 @@ SyncWorker::SyncWorker(SyncModel *model, QObject *parent) m_syncInter->setSync(false, false); m_deepinId_inter->setSync(false, false); + QDBusConnection::sessionBus().connect("com.deepin.sync.Daemon", + "/com/deepin/sync/Daemon", + "org.freedesktop.DBus.Properties", + "PropertiesChanged", + "sa{sv}as", + this, SLOT(userInfoChanged(QDBusMessage))); + QDBusConnection::systemBus().connect("com.deepin.license", "/com/deepin/license/Info", "com.deepin.license.Info", "LicenseStateChange", this, SLOT(licenseStateChangeSlot())); connect(m_syncInter, &SyncInter::StateChanged, this, &SyncWorker::onStateChanged, Qt::QueuedConnection); connect(m_syncInter, &SyncInter::LastSyncTimeChanged, this, &SyncWorker::onLastSyncTimeChanged, Qt::QueuedConnection); connect(m_syncInter, &SyncInter::SwitcherChange, this, &SyncWorker::onSyncModuleStateChanged, Qt::QueuedConnection); - connect(m_syncInter, &SyncInter::UserInfoChanged, m_model, &SyncModel::setUserinfo, Qt::QueuedConnection); + connect(m_deepinId_inter, &DeepinId::UserInfoChanged, m_model, &SyncModel::setUserinfo, Qt::QueuedConnection); - auto req = m_syncInter->isValid(); + auto req = m_deepinId_inter->isValid(); m_model->setSyncIsValid(req && valueByQSettings(DCC_CONFIG_FILES, "CloudSync", "AllowCloudSync", false)); - connect(m_syncInter, &DeepinId::serviceValidChanged, this, [=](bool valid) { + connect(m_deepinId_inter, &DeepinId::serviceValidChanged, this, [=](bool valid) { m_model->setSyncIsValid(valid && valueByQSettings(DCC_CONFIG_FILES, "CloudSync", "AllowCloudSync", false)); }); licenseStateChangeSlot(); - m_model->setUserinfo(m_syncInter->userInfo()); + m_model->setUserinfo(m_deepinId_inter->userInfo()); } void SyncWorker::activate() @@ -106,6 +113,22 @@ void SyncWorker::setSync(std::pair state) } } +void SyncWorker::userInfoChanged(QDBusMessage msg) +{ + QList arguments = msg.arguments(); + + QVariantMap changedProps = qdbus_cast(arguments.at(1).value()); + if (changedProps.empty() || changedProps.keys().first().compare("UserInfo")) { + qDebug() << "userInfoChanged changedProps=" << changedProps; + return; + } + QVariantMap userInfo; + QDBusArgument arg = changedProps.value("UserInfo").value(); + arg >> userInfo; + qDebug() << userInfo; + m_model->setUserinfo(userInfo); +} + void SyncWorker::loginUser() { m_deepinId_inter->Login(); diff --git a/src/frame/modules/sync/syncworker.h b/src/frame/modules/sync/syncworker.h index ffd04f1..a5116fd 100644 --- a/src/frame/modules/sync/syncworker.h +++ b/src/frame/modules/sync/syncworker.h @@ -29,6 +29,7 @@ public Q_SLOTS: void loginUser(); void logoutUser(); void setAutoSync(bool autoSync); + void userInfoChanged(QDBusMessage msg); void licenseStateChangeSlot(); private: -- libgit2 1.1.0