Merge branch 'dbus-interface-fork' into 'dbus-interface'

解决移动热点界面密码输入框错位问题

See merge request kylin-desktop/kylin-nm!653
This commit is contained in:
赵世旭 2022-07-08 07:46:03 +00:00
commit aaea24da26
6 changed files with 115 additions and 104 deletions

View File

@ -34,6 +34,8 @@
#define LINE_MAX_SIZE 16777215, 1
#define LINE_MIN_SIZE 0, 1
#define ICON_SIZE 24,24
#define PASSWORD_FRAME_MIN_HIGHT 60
#define PASSWORD_FRAME_FIX_HIGHT 80
#define PASSWORD_FRAME_MIN_SIZE 550, 60
#define PASSWORD_FRAME_MAX_SIZE 16777215, 86
#define PASSWORD_ITEM_MARGINS 16, 12, 16, 14
@ -176,16 +178,28 @@ void MobileHotspotWidget::paintEvent(QPaintEvent *event)
QWidget::paintEvent(event);
}
void MobileHotspotWidget::resetFrameSize()
{
int height = 0;
for (int i = 0; i < m_hotspotFrame->layout()->count(); i ++) {
QWidget *w = m_hotspotFrame->layout()->itemAt(i)->widget();
if (w != nullptr) {
height += w->height();
}
}
m_hotspotFrame->setFixedHeight(height);
}
void MobileHotspotWidget::initUI()
{
QFrame *hotspotFrame = new QFrame(this);
hotspotFrame->setMinimumSize(FRAME_MIN_SIZE);
hotspotFrame->setMaximumSize(FRAME_MAX_SIZE);
hotspotFrame->setFrameShape(QFrame::Box);
m_hotspotFrame = new QFrame(this);
m_hotspotFrame->setMinimumSize(FRAME_MIN_SIZE);
m_hotspotFrame->setMaximumSize(FRAME_MAX_SIZE);
m_hotspotFrame->setFrameShape(QFrame::Box);
QVBoxLayout *hotspotLyt = new QVBoxLayout(this);
hotspotLyt->setContentsMargins(0, 0, 0, 0);
hotspotFrame->setLayout(hotspotLyt);
m_hotspotFrame->setLayout(hotspotLyt);
m_hotspotTitleLabel = new TitleLabel(this);
m_hotspotTitleLabel->setText(tr("Hotspot"));
@ -212,18 +226,11 @@ void MobileHotspotWidget::initUI()
hotspotLyt->addWidget(m_interfaceFrame);
hotspotLyt->setSpacing(0);
int height = 0;
for (int i = 0; i < hotspotLyt->count(); i ++) {
QWidget *w = hotspotLyt->itemAt(i)->widget();
if (w != nullptr) {
height += w->height();
}
}
hotspotFrame->setFixedHeight(height);
resetFreamSize();
m_Vlayout->addWidget(m_hotspotTitleLabel);
m_Vlayout->addSpacing(8);
m_Vlayout->addWidget(hotspotFrame);
m_Vlayout->addWidget(m_hotspotFrame);
}
@ -272,13 +279,14 @@ void MobileHotspotWidget::onApLineEditTextEdit(QString text)
void MobileHotspotWidget::onPwdTextChanged()
{
if (m_pwdNameLine->text().length() < 8) {
m_passwordFrame->setFixedHeight(PASSWORD_FRAME_FIX_HIGHT);
m_pwdHintLabel->show();
m_pwdHintLabel->setText(tr("Contains at least 8 characters")); //至少包含8个字符
} else {
m_pwdHintLabel->clear();
m_passwordFrame->setFixedHeight(PASSWORD_FRAME_MIN_HIGHT);
m_pwdHintLabel->hide();
}
resetFreamSize();
this->update();
}
void MobileHotspotWidget::onActiveConnectionChanged(QString deviceName, QString ssid, QString uuid, int status)
@ -466,8 +474,6 @@ void MobileHotspotWidget::setPasswordFrame()
m_passwordFrame->setMinimumSize(PASSWORD_FRAME_MIN_SIZE);
m_passwordFrame->setMaximumSize(PASSWORD_FRAME_MAX_SIZE);
QHBoxLayout *passwordHLayout = new QHBoxLayout(m_passwordFrame);
m_pwdLabel = new QLabel(tr("Password"), this);
m_pwdLabel->setMinimumWidth(LABLE_MIN_WIDTH);
m_pwdNameLine = new KPasswordEdit(this);
@ -480,8 +486,9 @@ void MobileHotspotWidget::setPasswordFrame()
QPalette hintTextColor;
hintTextColor.setColor(QPalette::WindowText, Qt::red);
m_pwdHintLabel->setPalette(hintTextColor);
m_pwdHintLabel->setText(tr("Contains at least 8 characters")); //至少包含8个字符
QWidget *pwdInputWidget = new QWidget(this);
QWidget *pwdInputWidget = new QWidget(m_passwordFrame);
QVBoxLayout *pwdInputVLayout = new QVBoxLayout(pwdInputWidget);
pwdInputVLayout->setContentsMargins(CONTENTS_MARGINS);
pwdInputVLayout->setSpacing(0);
@ -493,6 +500,8 @@ void MobileHotspotWidget::setPasswordFrame()
pwdLayout->setSpacing(0);
pwdLayout->addRow(m_pwdLabel, pwdInputWidget);
m_passwordFrame->setLayout(pwdLayout);
m_pwdNameLine->installEventFilter(this);
}

View File

@ -57,6 +57,7 @@ public:
~MobileHotspotWidget();
private:
QFrame *m_hotspotFrame = nullptr;
QFrame *m_switchFrame = nullptr; //开关
QFrame *m_ApNameFrame = nullptr; //wifi名称
QFrame *m_passwordFrame = nullptr; //密码
@ -95,6 +96,7 @@ private:
QString m_uuid = "";
QString m_hostName = "";
void resetFrameSize();
void initUI();
void initDbusConnect();
void initInterfaceInfo();

View File

@ -4,7 +4,7 @@
<context>
<name>BlacklistItem</name>
<message>
<location filename="../blacklistitem.cpp" line="32"/>
<location filename="../blacklistitem.cpp" line="49"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
@ -12,7 +12,7 @@
<context>
<name>BlacklistPage</name>
<message>
<location filename="../blacklistpage.cpp" line="26"/>
<location filename="../blacklistpage.cpp" line="45"/>
<source>Blacklist</source>
<translation type="unfinished"></translation>
</message>
@ -20,7 +20,7 @@
<context>
<name>ConnectDevListItem</name>
<message>
<location filename="../connectdevlistitem.cpp" line="31"/>
<location filename="../connectdevlistitem.cpp" line="49"/>
<source>drag into blacklist</source>
<translation type="unfinished"></translation>
</message>
@ -28,7 +28,7 @@
<context>
<name>ConnectdevPage</name>
<message>
<location filename="../connectdevpage.cpp" line="27"/>
<location filename="../connectdevpage.cpp" line="46"/>
<source>Connect device</source>
<translation type="unfinished"></translation>
</message>
@ -56,79 +56,79 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="38"/>
<location filename="../mobilehotspotwidget.cpp" line="59"/>
<source>ukui control center</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="41"/>
<location filename="../mobilehotspotwidget.cpp" line="62"/>
<source>ukui control center desktop message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<location filename="../mobilehotspotwidget.cpp" line="138"/>
<source>wirless switch is close or no wireless device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="121"/>
<location filename="../mobilehotspotwidget.cpp" line="142"/>
<source>start to close hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="130"/>
<location filename="../mobilehotspotwidget.cpp" line="151"/>
<source>hotpots name or device is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="137"/>
<location filename="../mobilehotspotwidget.cpp" line="158"/>
<source>start to open hotspot </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="257"/>
<location filename="../mobilehotspotwidget.cpp" line="489"/>
<source>Contains at least 8 characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="172"/>
<location filename="../mobilehotspotwidget.cpp" line="205"/>
<source>Hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="268"/>
<location filename="../mobilehotspotwidget.cpp" line="582"/>
<location filename="../mobilehotspotwidget.cpp" line="295"/>
<location filename="../mobilehotspotwidget.cpp" line="610"/>
<source>hotspot already close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="408"/>
<location filename="../mobilehotspotwidget.cpp" line="435"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="429"/>
<location filename="../mobilehotspotwidget.cpp" line="456"/>
<source>Wi-Fi Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="452"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="490"/>
<location filename="../mobilehotspotwidget.cpp" line="518"/>
<source>Frequency band</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="516"/>
<location filename="../mobilehotspotwidget.cpp" line="544"/>
<source>Net card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="611"/>
<location filename="../mobilehotspotwidget.cpp" line="619"/>
<location filename="../mobilehotspotwidget.cpp" line="639"/>
<location filename="../mobilehotspotwidget.cpp" line="647"/>
<source>hotspot already open</source>
<translation type="unfinished"></translation>
</message>

View File

@ -4,7 +4,7 @@
<context>
<name>BlacklistItem</name>
<message>
<location filename="../blacklistitem.cpp" line="30"/>
<location filename="../blacklistitem.cpp" line="49"/>
<source>Remove</source>
<translation></translation>
</message>
@ -12,7 +12,7 @@
<context>
<name>BlacklistPage</name>
<message>
<location filename="../blacklistpage.cpp" line="26"/>
<location filename="../blacklistpage.cpp" line="45"/>
<source>Blacklist</source>
<translation></translation>
</message>
@ -20,7 +20,7 @@
<context>
<name>ConnectDevListItem</name>
<message>
<location filename="../connectdevlistitem.cpp" line="30"/>
<location filename="../connectdevlistitem.cpp" line="49"/>
<source>drag into blacklist</source>
<translation></translation>
</message>
@ -28,7 +28,7 @@
<context>
<name>ConnectdevPage</name>
<message>
<location filename="../connectdevpage.cpp" line="27"/>
<location filename="../connectdevpage.cpp" line="46"/>
<source>Connect device</source>
<translation></translation>
</message>
@ -56,27 +56,27 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="38"/>
<location filename="../mobilehotspotwidget.cpp" line="59"/>
<source>ukui control center</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="41"/>
<location filename="../mobilehotspotwidget.cpp" line="62"/>
<source>ukui control center desktop message</source>
<translation>ukui </translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<location filename="../mobilehotspotwidget.cpp" line="138"/>
<source>wirless switch is close or no wireless device</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="121"/>
<location filename="../mobilehotspotwidget.cpp" line="142"/>
<source>start to close hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="130"/>
<location filename="../mobilehotspotwidget.cpp" line="151"/>
<source>hotpots name or device is invalid</source>
<translation></translation>
</message>
@ -85,54 +85,54 @@
<translation type="vanished">!</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="137"/>
<location filename="../mobilehotspotwidget.cpp" line="158"/>
<source>start to open hotspot </source>
<translation> </translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="257"/>
<location filename="../mobilehotspotwidget.cpp" line="489"/>
<source>Contains at least 8 characters</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="172"/>
<location filename="../mobilehotspotwidget.cpp" line="205"/>
<source>Hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="268"/>
<location filename="../mobilehotspotwidget.cpp" line="582"/>
<location filename="../mobilehotspotwidget.cpp" line="295"/>
<location filename="../mobilehotspotwidget.cpp" line="610"/>
<source>hotspot already close</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="408"/>
<location filename="../mobilehotspotwidget.cpp" line="435"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="429"/>
<location filename="../mobilehotspotwidget.cpp" line="456"/>
<source>Wi-Fi Name</source>
<translation>Wi-Fiཡི</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="452"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="490"/>
<location filename="../mobilehotspotwidget.cpp" line="518"/>
<source>Frequency band</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="516"/>
<location filename="../mobilehotspotwidget.cpp" line="544"/>
<source>Net card</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="611"/>
<location filename="../mobilehotspotwidget.cpp" line="619"/>
<location filename="../mobilehotspotwidget.cpp" line="639"/>
<location filename="../mobilehotspotwidget.cpp" line="647"/>
<source>hotspot already open</source>
<translation></translation>
</message>

View File

@ -4,7 +4,7 @@
<context>
<name>BlacklistItem</name>
<message>
<location filename="../blacklistitem.cpp" line="32"/>
<location filename="../blacklistitem.cpp" line="49"/>
<source>Remove</source>
<translation type="unfinished"></translation>
</message>
@ -12,7 +12,7 @@
<context>
<name>BlacklistPage</name>
<message>
<location filename="../blacklistpage.cpp" line="26"/>
<location filename="../blacklistpage.cpp" line="45"/>
<source>Blacklist</source>
<translation type="unfinished"></translation>
</message>
@ -20,7 +20,7 @@
<context>
<name>ConnectDevListItem</name>
<message>
<location filename="../connectdevlistitem.cpp" line="31"/>
<location filename="../connectdevlistitem.cpp" line="49"/>
<source>drag into blacklist</source>
<translation type="unfinished"></translation>
</message>
@ -28,7 +28,7 @@
<context>
<name>ConnectdevPage</name>
<message>
<location filename="../connectdevpage.cpp" line="27"/>
<location filename="../connectdevpage.cpp" line="46"/>
<source>Connect device</source>
<translation type="unfinished"></translation>
</message>
@ -56,79 +56,79 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="38"/>
<location filename="../mobilehotspotwidget.cpp" line="59"/>
<source>ukui control center</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="41"/>
<location filename="../mobilehotspotwidget.cpp" line="62"/>
<source>ukui control center desktop message</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<location filename="../mobilehotspotwidget.cpp" line="138"/>
<source>wirless switch is close or no wireless device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="121"/>
<location filename="../mobilehotspotwidget.cpp" line="142"/>
<source>start to close hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="130"/>
<location filename="../mobilehotspotwidget.cpp" line="151"/>
<source>hotpots name or device is invalid</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="137"/>
<location filename="../mobilehotspotwidget.cpp" line="158"/>
<source>start to open hotspot </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="257"/>
<location filename="../mobilehotspotwidget.cpp" line="489"/>
<source>Contains at least 8 characters</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="172"/>
<location filename="../mobilehotspotwidget.cpp" line="205"/>
<source>Hotspot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="268"/>
<location filename="../mobilehotspotwidget.cpp" line="582"/>
<location filename="../mobilehotspotwidget.cpp" line="295"/>
<location filename="../mobilehotspotwidget.cpp" line="610"/>
<source>hotspot already close</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="408"/>
<location filename="../mobilehotspotwidget.cpp" line="435"/>
<source>Open</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="429"/>
<location filename="../mobilehotspotwidget.cpp" line="456"/>
<source>Wi-Fi Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="452"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="490"/>
<location filename="../mobilehotspotwidget.cpp" line="518"/>
<source>Frequency band</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="516"/>
<location filename="../mobilehotspotwidget.cpp" line="544"/>
<source>Net card</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="611"/>
<location filename="../mobilehotspotwidget.cpp" line="619"/>
<location filename="../mobilehotspotwidget.cpp" line="639"/>
<location filename="../mobilehotspotwidget.cpp" line="647"/>
<source>hotspot already open</source>
<translation type="unfinished"></translation>
</message>

View File

@ -4,7 +4,7 @@
<context>
<name>BlacklistItem</name>
<message>
<location filename="../blacklistitem.cpp" line="32"/>
<location filename="../blacklistitem.cpp" line="49"/>
<source>Remove</source>
<translation></translation>
</message>
@ -12,7 +12,7 @@
<context>
<name>BlacklistPage</name>
<message>
<location filename="../blacklistpage.cpp" line="26"/>
<location filename="../blacklistpage.cpp" line="45"/>
<source>Blacklist</source>
<translation></translation>
</message>
@ -20,7 +20,7 @@
<context>
<name>ConnectDevListItem</name>
<message>
<location filename="../connectdevlistitem.cpp" line="31"/>
<location filename="../connectdevlistitem.cpp" line="49"/>
<source>drag into blacklist</source>
<translation></translation>
</message>
@ -28,7 +28,7 @@
<context>
<name>ConnectdevPage</name>
<message>
<location filename="../connectdevpage.cpp" line="27"/>
<location filename="../connectdevpage.cpp" line="46"/>
<source>Connect device</source>
<translation></translation>
</message>
@ -56,27 +56,27 @@
<context>
<name>MobileHotspotWidget</name>
<message>
<location filename="../mobilehotspotwidget.cpp" line="38"/>
<location filename="../mobilehotspotwidget.cpp" line="59"/>
<source>ukui control center</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="41"/>
<location filename="../mobilehotspotwidget.cpp" line="62"/>
<source>ukui control center desktop message</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="117"/>
<location filename="../mobilehotspotwidget.cpp" line="138"/>
<source>wirless switch is close or no wireless device</source>
<translation>线线</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="121"/>
<location filename="../mobilehotspotwidget.cpp" line="142"/>
<source>start to close hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="130"/>
<location filename="../mobilehotspotwidget.cpp" line="151"/>
<source>hotpots name or device is invalid</source>
<translation></translation>
</message>
@ -85,54 +85,54 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="137"/>
<location filename="../mobilehotspotwidget.cpp" line="158"/>
<source>start to open hotspot </source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="257"/>
<location filename="../mobilehotspotwidget.cpp" line="489"/>
<source>Contains at least 8 characters</source>
<translation>8</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="172"/>
<location filename="../mobilehotspotwidget.cpp" line="205"/>
<source>Hotspot</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="268"/>
<location filename="../mobilehotspotwidget.cpp" line="582"/>
<location filename="../mobilehotspotwidget.cpp" line="295"/>
<location filename="../mobilehotspotwidget.cpp" line="610"/>
<source>hotspot already close</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="408"/>
<location filename="../mobilehotspotwidget.cpp" line="435"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="429"/>
<location filename="../mobilehotspotwidget.cpp" line="456"/>
<source>Wi-Fi Name</source>
<translation>Wi-Fi名称</translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="452"/>
<location filename="../mobilehotspotwidget.cpp" line="477"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="490"/>
<location filename="../mobilehotspotwidget.cpp" line="518"/>
<source>Frequency band</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="516"/>
<location filename="../mobilehotspotwidget.cpp" line="544"/>
<source>Net card</source>
<translation></translation>
</message>
<message>
<location filename="../mobilehotspotwidget.cpp" line="611"/>
<location filename="../mobilehotspotwidget.cpp" line="619"/>
<location filename="../mobilehotspotwidget.cpp" line="639"/>
<location filename="../mobilehotspotwidget.cpp" line="647"/>
<source>hotspot already open</source>
<translation></translation>
</message>