Skip to content

Commit 5a46619

Browse files
committed
fix: Synchronize dss-network-plugin 107x interface
Synchronize dss-network-plugin 107x interface pms: TASK-361719
1 parent 952e7b6 commit 5a46619

4 files changed

Lines changed: 61 additions & 8 deletions

File tree

dss-network-plugin/networkmodule.cpp

Lines changed: 51 additions & 1 deletion
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");
@@ -167,7 +173,7 @@ void NetworkModule::installTranslator(const QString &locale)
167173
QApplication::removeTranslator(&translator);
168174
translator.load(QString("/usr/share/dss-network-plugin/translations/dss-network-plugin_%1").arg(locale));
169175
QApplication::installTranslator(&translator);
170-
// m_manager->updateLanguage(localTmp);
176+
m_manager->updateLanguage(localTmp);
171177
}
172178

173179
NetworkPlugin::NetworkPlugin(QObject *parent)
@@ -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);

net-view/operation/netmanager.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -835,9 +835,13 @@ void NetManagerPrivate::clearPasswordRequest(const QString &id)
835835

836836
void NetManagerPrivate::retranslateUi()
837837
{
838-
// for (auto &&item : m_dataMap) {
839-
// item->retranslateUi();
840-
// }
838+
QVector<NetItem *> items;
839+
items.append(m_root->item());
840+
while (!items.isEmpty()) {
841+
NetItem *item = items.takeFirst();
842+
Q_EMIT item->nameChanged(item->name());
843+
items.append(item->getChildren());
844+
}
841845
}
842846

843847
void NetManagerPrivate::onItemDestroyed(QObject *obj)

net-view/operation/private/netmanagerthreadprivate.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ void NetManagerThreadPrivate::userCancelRequest(const QString &id)
299299

300300
void NetManagerThreadPrivate::retranslate(const QString &locale)
301301
{
302-
NetworkController::installTranslator(QLocale().name());
302+
NetworkController::installTranslator(locale);
303303
if (m_isInitialized)
304304
QMetaObject::invokeMethod(this, "doRetranslate", Qt::QueuedConnection, Q_ARG(QString, locale));
305305
}

0 commit comments

Comments
 (0)