Skip to content

Commit 079c352

Browse files
committed
fix: Synchronize dss-network-plugin 107x interface
Synchronize dss-network-plugin 107x interface pms: TASK-361719
1 parent 88bfbc6 commit 079c352

2 files changed

Lines changed: 52 additions & 3 deletions

File tree

dss-network-plugin/networkmodule.cpp

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,19 @@
1313

1414
#include <QApplication>
1515
#include <QDBusConnection>
16+
#include <QDBusConnectionInterface>
1617
#include <QDBusInterface>
1718
#include <QDBusMessage>
19+
#include <QDBusServiceWatcher>
1820
#include <QTime>
1921
#include <QWidget>
2022

2123
#define NETWORK_KEY "network-item-key"
2224

25+
static QString networkService = "org.deepin.service.SystemNetwork";
26+
static QString networkPath = "/org/deepin/service/SystemNetwork";
27+
static QString networkInterface = "org.deepin.service.SystemNetwork";
28+
2329
const int CONTENT_SPACING = 10;
2430

2531
static Q_LOGGING_CATEGORY(DNC, "org.deepin.dde.session-shell.network");
@@ -279,5 +285,49 @@ void NetworkPlugin::setMessage(bool visible)
279285
qCInfo(DNC) << "Set message:" << doc.toJson();
280286
}
281287

288+
QString NetworkPlugin::message(const QString &msgData)
289+
{
290+
qDebug() << "message" << msgData;
291+
QJsonDocument json = QJsonDocument::fromJson(msgData.toLatin1());
292+
QJsonObject jsonObject = json.object();
293+
if (!jsonObject.contains("data")) {
294+
qWarning() << "msgData don't containt data" << msgData;
295+
QJsonDocument jsonResult;
296+
QJsonObject resultObject;
297+
resultObject.insert("data", QString("msgData don't containt data %1").arg(msgData));
298+
jsonResult.setObject(resultObject);
299+
return jsonResult.toJson();
300+
}
301+
QJsonObject dataObject = jsonObject.value("data").toObject();
302+
QString locale = dataObject.value("locale").toString();
303+
qDebug() << "read locale" << locale;
304+
m_network->installTranslator(locale);
305+
// 同时更新网络服务的语言
306+
if (QDBusConnection::systemBus().interface()->isServiceRegistered(networkService)) {
307+
qDebug() << "update SystemNetworm Language" << locale;
308+
QDBusInterface dbusInter(networkService, networkPath, networkInterface, QDBusConnection::systemBus());
309+
QDBusPendingCall reply = dbusInter.asyncCall("UpdateLanguage", locale);
310+
reply.waitForFinished();
311+
} else {
312+
qWarning() << networkService << "don't start, wait for it start";
313+
QDBusServiceWatcher *serviceWatcher = new QDBusServiceWatcher(this);
314+
serviceWatcher->setConnection(QDBusConnection::systemBus());
315+
serviceWatcher->addWatchedService(networkService);
316+
connect(serviceWatcher, &QDBusServiceWatcher::serviceRegistered, this, [locale](const QString &service) {
317+
if (service == networkService) {
318+
QDBusInterface dbusInter(networkService, networkPath, networkInterface, QDBusConnection::systemBus());
319+
QDBusPendingCall reply = dbusInter.asyncCall("UpdateLanguage", locale);
320+
reply.waitForFinished();
321+
}
322+
});
323+
}
324+
325+
QJsonDocument jsonResult;
326+
QJsonObject resultObject;
327+
resultObject.insert("data", "success");
328+
jsonResult.setObject(resultObject);
329+
return jsonResult.toJson();
330+
}
331+
282332
} // namespace network
283333
} // namespace dde

dss-network-plugin/networkmodule.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ class NetworkModule : public QObject
3232
virtual QWidget *itemTipsWidget() const;
3333
virtual const QString itemContextMenu() const;
3434
virtual void invokedMenuItem(const QString &menuId, const bool checked) const;
35+
void installTranslator(const QString &locale);
3536

3637
inline dde::network::NetStatus *netStatus() const { return m_netStatus; }
3738

@@ -44,9 +45,6 @@ protected Q_SLOTS:
4445
void onUserChanged(const QString &json);
4546
void onNotify(uint replacesId);
4647

47-
private:
48-
void installTranslator(const QString &locale);
49-
5048
protected:
5149
QWidget *m_contentWidget;
5250
dde::network::NetManager *m_manager;
@@ -93,6 +91,7 @@ class NetworkPlugin : public QObject, public dss::module::TrayModuleInterface
9391

9492
void requestShowContent();
9593
void setMessage(bool visible);
94+
QString message(const QString &msgData) override;
9695

9796
Q_SIGNALS:
9897
void notifyNetworkStateChanged(bool);

0 commit comments

Comments
 (0)