完善用户切换的功能

master
donghualin 2 years ago
parent 5e51629157
commit 13b6249da6
  1. 17
      dp4-login-plugin/dp4_login_module.cpp
  2. 9
      dp4-login-plugin/dp4loginwidget.cpp
  3. 2
      dp4-login-plugin/dp4loginwidget.h

@ -77,7 +77,12 @@ std::string Dp4LoginModule::onMessage(const std::string &message)
QJsonObject data = msgObj.value("Data").toObject(); QJsonObject data = msgObj.value("Data").toObject();
qInfo() << "Cmd type: " << cmdType; qInfo() << "Cmd type: " << cmdType;
if (cmdType == "CurrentUserChanged") { if (cmdType == "CurrentUserChanged") {
QJsonObject data = msgObj.value("Data").toObject();
QString userName = data.value("Name").toString();
QString fullName = data.value("Fullname").toString();
QString avatar = data.value("Avatar").toString();
Dp4LoginWidget *loginWidget = static_cast<Dp4LoginWidget *>(content());
loginWidget->setCurrentAccount(userName, fullName, avatar);
} else if (cmdType == "GetConfigs") { } else if (cmdType == "GetConfigs") {
QJsonObject retDataObj; QJsonObject retDataObj;
retDataObj["ShowAvatar"] = false; retDataObj["ShowAvatar"] = false;
@ -101,6 +106,16 @@ std::string Dp4LoginModule::onMessage(const std::string &message)
// 验证后接收到了错误的消息 // 验证后接收到了错误的消息
Dp4LoginWidget *loginWidget = static_cast<Dp4LoginWidget *>(content()); Dp4LoginWidget *loginWidget = static_cast<Dp4LoginWidget *>(content());
loginWidget->setMessage(data.value("type").toString(), data.value("message").toString()); loginWidget->setMessage(data.value("type").toString(), data.value("message").toString());
} else if (cmdType == "GetAuthenInfo") {
QJsonObject retDataObj;
// 是否需要调用外部的登录方式
retDataObj.insert("AuthenType", "password");
retObj["Data"] = retDataObj;
} else if (cmdType == "IsPluginEnabled") {
QJsonObject retDataObj;
// 当前插件自动启动
retDataObj.insert("IsPluginEnabled", true);
retObj["Data"] = retDataObj;
} }
QJsonDocument doc; QJsonDocument doc;

@ -72,6 +72,15 @@ void Dp4LoginWidget::setMessage(const QString &type, const QString &message)
} }
} }
void Dp4LoginWidget::setCurrentAccount(const QString &accountName, const QString &fullname, const QString &avatar)
{
// TODO: 切换账户后,会处罚该函数,请在此处完善(这里设置在切换账户后把当前的用户名设置为切换后的用户名,具体业务请开发根据实际要求来)
// accountName为登录账户名,fullname为当前账户在控制中心显示的名称,avatar表示当前用户的图标,就是控制中心设置的那个图标
m_username->setText(accountName);
m_password->clear();
qDebug() << "accountName" << accountName << fullname << avatar;
}
void Dp4LoginWidget::Logon() void Dp4LoginWidget::Logon()
{ {
// TODO: 这里由开发人员自行添加dp的验证流程,如果在dde-session-shell验证之前,请在这里写验证流程, // TODO: 这里由开发人员自行添加dp的验证流程,如果在dde-session-shell验证之前,请在这里写验证流程,

@ -11,7 +11,6 @@ struct AuthCallbackData;
} }
}; };
class Dp4LoginWidget : public QWidget class Dp4LoginWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
@ -22,6 +21,7 @@ public:
void setCallback(dss::module::LoginCallBack *callback); void setCallback(dss::module::LoginCallBack *callback);
void updateAuthenResult(int type, int state); void updateAuthenResult(int type, int state);
void setMessage(const QString &type, const QString &message); void setMessage(const QString &type, const QString &message);
void setCurrentAccount(const QString &accountName, const QString &fullname, const QString &avatar);
private: private:
void Logon(); void Logon();

Loading…
Cancel
Save