mirror of
https://github.com/barry-ran/QtScrcpy.git
synced 2025-04-20 11:35:56 +00:00
1, fix UI text. 2, add hot-load of mapping script
This commit is contained in:
parent
d6d4edf936
commit
8e3b37e974
14 changed files with 238 additions and 128 deletions
|
@ -51,6 +51,18 @@ void Controller::test(QRect rc)
|
|||
postControlMsg(controlMsg);
|
||||
}
|
||||
|
||||
void Controller::updateScript(QString gameScript)
|
||||
{
|
||||
if (!gameScript.isEmpty()) {
|
||||
InputConvertGame* convertgame = new InputConvertGame(this);
|
||||
convertgame->loadKeyMap(gameScript);
|
||||
m_inputConvert = convertgame;
|
||||
} else {
|
||||
m_inputConvert = new InputConvertNormal(this);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Controller::postTurnOn()
|
||||
{
|
||||
ControlMsg* controlMsg = new ControlMsg(ControlMsg::CMT_BACK_OR_SCREEN_ON);
|
||||
|
@ -161,6 +173,12 @@ void Controller::setScreenPowerMode(ControlMsg::ScreenPowerMode mode)
|
|||
postControlMsg(controlMsg);
|
||||
}
|
||||
|
||||
void Controller::screenShot()
|
||||
{
|
||||
// TODO:
|
||||
qDebug() << "screen shot";
|
||||
}
|
||||
|
||||
void Controller::mouseEvent(const QMouseEvent *from, const QSize &frameSize, const QSize &showSize)
|
||||
{
|
||||
if (m_inputConvert) {
|
||||
|
|
|
@ -20,6 +20,8 @@ public:
|
|||
void postControlMsg(ControlMsg* controlMsg);
|
||||
void test(QRect rc);
|
||||
|
||||
void updateScript(QString gameScript = "");
|
||||
|
||||
// turn the screen on if it was off, press BACK otherwise
|
||||
void postTurnOn();
|
||||
void postGoHome();
|
||||
|
@ -36,6 +38,7 @@ public:
|
|||
void clipboardPaste();
|
||||
void postTextInput(QString& text);
|
||||
void setScreenPowerMode(ControlMsg::ScreenPowerMode mode);
|
||||
void screenShot();
|
||||
|
||||
// for input convert
|
||||
void mouseEvent(const QMouseEvent* from, const QSize& frameSize, const QSize& showSize);
|
||||
|
|
|
@ -90,6 +90,13 @@ Server *Device::getServer()
|
|||
return m_server;
|
||||
}
|
||||
|
||||
void Device::updateScript(QString script)
|
||||
{
|
||||
if(m_controller){
|
||||
m_controller->updateScript(script);
|
||||
}
|
||||
}
|
||||
|
||||
void Device::initSignals()
|
||||
{
|
||||
if (m_controller && m_videoForm) {
|
||||
|
|
|
@ -34,6 +34,8 @@ public:
|
|||
Controller *getController();
|
||||
Server *getServer();
|
||||
|
||||
void updateScript(QString script);
|
||||
|
||||
signals:
|
||||
void deviceDisconnect(QString serial);
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ void ToolForm::initStyle()
|
|||
IconHelper::Instance()->SetIcon(ui->closeScreenBtn, QChar(0xf070), 15);
|
||||
IconHelper::Instance()->SetIcon(ui->powerBtn, QChar(0xf011), 15);
|
||||
IconHelper::Instance()->SetIcon(ui->expandNotifyBtn, QChar(0xf103), 15);
|
||||
IconHelper::Instance()->SetIcon(ui->screenShotBtn, QChar(0xf05b), 15);
|
||||
}
|
||||
|
||||
void ToolForm::mousePressEvent(QMouseEvent *event)
|
||||
|
@ -115,6 +116,13 @@ void ToolForm::on_powerBtn_clicked()
|
|||
}
|
||||
}
|
||||
|
||||
void ToolForm::on_screenShotBtn_clicked()
|
||||
{
|
||||
if (m_videoForm && m_videoForm->getController()) {
|
||||
m_videoForm->getController()->screenShot();
|
||||
}
|
||||
}
|
||||
|
||||
void ToolForm::on_volumeUpBtn_clicked()
|
||||
{
|
||||
if (m_videoForm && m_videoForm->getController()) {
|
||||
|
|
|
@ -40,6 +40,8 @@ private slots:
|
|||
|
||||
void on_powerBtn_clicked();
|
||||
|
||||
void on_screenShotBtn_clicked();
|
||||
|
||||
void on_volumeUpBtn_clicked();
|
||||
|
||||
void on_volumeDownBtn_clicked();
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>63</width>
|
||||
<height>497</height>
|
||||
<height>537</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
@ -133,6 +133,16 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="screenShotBtn">
|
||||
<property name="toolTip">
|
||||
<string>screen shot</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
|
@ -47,6 +47,17 @@ bool DeviceManage::connectDevice(Device::DeviceParams params)
|
|||
return true;
|
||||
}
|
||||
|
||||
void DeviceManage::updateScript(QString script)
|
||||
{
|
||||
QMapIterator<QString, QPointer<Device>> i(m_devices);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
if (i.value()) {
|
||||
i.value()->updateScript(script);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool DeviceManage::disconnectDevice(const QString &serial)
|
||||
{
|
||||
bool ret = false;
|
||||
|
|
|
@ -14,6 +14,8 @@ public:
|
|||
virtual ~DeviceManage();
|
||||
|
||||
bool connectDevice(Device::DeviceParams params);
|
||||
void updateScript(QString script);
|
||||
|
||||
bool disconnectDevice(const QString &serial);
|
||||
void disconnectAllDevice();
|
||||
|
||||
|
|
|
@ -309,7 +309,7 @@ void Dialog::on_stopAllServerBtn_clicked()
|
|||
m_deviceManage.disconnectAllDevice();
|
||||
}
|
||||
|
||||
void Dialog::on_updateGameScriptBtn_clicked()
|
||||
void Dialog::on_refreshGameScriptBtn_clicked()
|
||||
{
|
||||
ui->gameBox->clear();
|
||||
QDir dir(KeyMap::getKeyMapPath());
|
||||
|
@ -327,9 +327,14 @@ void Dialog::on_updateGameScriptBtn_clicked()
|
|||
}
|
||||
}
|
||||
|
||||
void Dialog::on_applyScriptBtn_clicked()
|
||||
{
|
||||
m_deviceManage.updateScript(getGameScript(ui->gameBox->currentText()));
|
||||
}
|
||||
|
||||
void Dialog::on_gameCheck_clicked(bool checked)
|
||||
{
|
||||
if (checked) {
|
||||
on_updateGameScriptBtn_clicked();
|
||||
on_refreshGameScriptBtn_clicked();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,8 @@ private slots:
|
|||
|
||||
void on_stopAllServerBtn_clicked();
|
||||
|
||||
void on_updateGameScriptBtn_clicked();
|
||||
void on_refreshGameScriptBtn_clicked();
|
||||
void on_applyScriptBtn_clicked();
|
||||
void on_gameCheck_clicked(bool checked);
|
||||
|
||||
private:
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>600</width>
|
||||
<height>637</height>
|
||||
<height>723</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
|
@ -101,8 +101,37 @@
|
|||
<property name="title">
|
||||
<string>Wireless</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4" columnstretch="2,0,0,1,2">
|
||||
<item row="3" column="2">
|
||||
<layout class="QGridLayout" name="gridLayout_4" columnstretch="2,0,0,1,2,0">
|
||||
<item row="4" column="4">
|
||||
<widget class="QPushButton" name="wirelessConnectBtn">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>connect</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLineEdit" name="deviceIpEdt">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>128</number>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string notr="true">192.168.0.1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
|
@ -121,40 +150,29 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="3">
|
||||
<item row="4" column="3">
|
||||
<widget class="QLineEdit" name="devicePortEdt">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string notr="true">5555</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLineEdit" name="deviceIpEdt">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string notr="true">192.168.0.1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="4">
|
||||
<widget class="QPushButton" name="wirelessConnectBtn">
|
||||
<property name="text">
|
||||
<string>wireless connect</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="4">
|
||||
<item row="4" column="5">
|
||||
<widget class="QPushButton" name="wirelessDisConnectBtn">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>wireless disconnect</string>
|
||||
<string>disconnect</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
|
@ -236,23 +254,6 @@
|
|||
<string>Start Config</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>bit rate:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3" colspan="2">
|
||||
<widget class="QCheckBox" name="notDisplayCheck">
|
||||
<property name="text">
|
||||
<string>not display</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3" colspan="2">
|
||||
<widget class="QComboBox" name="bitRateBox">
|
||||
<property name="toolTip">
|
||||
|
@ -263,28 +264,36 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="6" colspan="2">
|
||||
<widget class="QCheckBox" name="alwaysTopCheck">
|
||||
<item row="1" column="10" colspan="2">
|
||||
<widget class="QPushButton" name="selectRecordPathBtn">
|
||||
<property name="text">
|
||||
<string>always top</string>
|
||||
<string>select path</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="11" colspan="2">
|
||||
<widget class="QCheckBox" name="useReverseCheck">
|
||||
<item row="0" column="9" colspan="2">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>use reverse</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
<string>record format:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="12">
|
||||
<widget class="QComboBox" name="formatBox"/>
|
||||
<item row="3" column="10" colspan="2">
|
||||
<widget class="QCheckBox" name="gameCheck">
|
||||
<property name="text">
|
||||
<string>custom map</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="8">
|
||||
<widget class="QComboBox" name="videoSizeBox">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_5">
|
||||
|
@ -296,78 +305,105 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="6">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<item row="0" column="11">
|
||||
<widget class="QComboBox" name="formatBox"/>
|
||||
</item>
|
||||
<item row="3" column="8" colspan="2">
|
||||
<widget class="QPushButton" name="applyScriptBtn">
|
||||
<property name="text">
|
||||
<string>video size:</string>
|
||||
<string>apply</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="9" colspan="2">
|
||||
<widget class="QCheckBox" name="closeScreenCheck">
|
||||
<item row="3" column="6" colspan="2">
|
||||
<widget class="QPushButton" name="refreshGameScriptBtn">
|
||||
<property name="text">
|
||||
<string>close screen</string>
|
||||
<string>refresh script</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3" colspan="8">
|
||||
<item row="2" column="9" colspan="3">
|
||||
<widget class="QCheckBox" name="useReverseCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>reverse connection</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" colspan="2">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>bit rate:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<widget class="QCheckBox" name="notDisplayCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>background</string>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3" colspan="7">
|
||||
<widget class="QLineEdit" name="recordPathEdt">
|
||||
<property name="readOnly">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="7">
|
||||
<widget class="QComboBox" name="videoSizeBox">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="11" colspan="2">
|
||||
<widget class="QPushButton" name="selectRecordPathBtn">
|
||||
<property name="text">
|
||||
<string>select path</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="10">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>record format:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="8" colspan="2">
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="5">
|
||||
<item row="3" column="0" colspan="6">
|
||||
<widget class="QComboBox" name="gameBox"/>
|
||||
</item>
|
||||
<item row="3" column="6" colspan="2">
|
||||
<widget class="QPushButton" name="updateGameScriptBtn">
|
||||
<item row="0" column="6" colspan="2">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>update script</string>
|
||||
<string>video size:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="9" colspan="4">
|
||||
<widget class="QCheckBox" name="gameCheck">
|
||||
<item row="2" column="6" colspan="3">
|
||||
<widget class="QCheckBox" name="closeScreenCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>custom map</string>
|
||||
<string>auto screen-off</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3" colspan="2">
|
||||
<widget class="QCheckBox" name="alwaysTopCheck">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>always on top</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -378,6 +414,16 @@
|
|||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<tabstops>
|
||||
<tabstop>bitRateBox</tabstop>
|
||||
<tabstop>formatBox</tabstop>
|
||||
<tabstop>recordPathEdt</tabstop>
|
||||
<tabstop>selectRecordPathBtn</tabstop>
|
||||
<tabstop>gameBox</tabstop>
|
||||
<tabstop>refreshGameScriptBtn</tabstop>
|
||||
<tabstop>serialBox</tabstop>
|
||||
<tabstop>startServerBtn</tabstop>
|
||||
<tabstop>stopServerBtn</tabstop>
|
||||
<tabstop>stopAllServerBtn</tabstop>
|
||||
<tabstop>updateDevice</tabstop>
|
||||
<tabstop>getIPBtn</tabstop>
|
||||
<tabstop>startAdbdBtn</tabstop>
|
||||
|
@ -387,13 +433,8 @@
|
|||
<tabstop>wirelessDisConnectBtn</tabstop>
|
||||
<tabstop>adbCommandEdt</tabstop>
|
||||
<tabstop>adbCommandBtn</tabstop>
|
||||
<tabstop>formatBox</tabstop>
|
||||
<tabstop>recordPathEdt</tabstop>
|
||||
<tabstop>selectRecordPathBtn</tabstop>
|
||||
<tabstop>serialBox</tabstop>
|
||||
<tabstop>startServerBtn</tabstop>
|
||||
<tabstop>stopServerBtn</tabstop>
|
||||
<tabstop>outEdit</tabstop>
|
||||
<tabstop>stopAdbBtn</tabstop>
|
||||
<tabstop>clearOut</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections/>
|
||||
|
|
|
@ -90,8 +90,8 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="249"/>
|
||||
<source>not display</source>
|
||||
<translation>not display</translation>
|
||||
<source>background</source>
|
||||
<translation>background</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="92"/>
|
||||
|
@ -120,8 +120,8 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="269"/>
|
||||
<source>always top</source>
|
||||
<translation>always top</translation>
|
||||
<source>always on top</source>
|
||||
<translation>always on top</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="279"/>
|
||||
|
@ -135,8 +135,8 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="363"/>
|
||||
<source>update script</source>
|
||||
<translation>update script</translation>
|
||||
<source>refresh script</source>
|
||||
<translation>refresh script</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="370"/>
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="249"/>
|
||||
<source>not display</source>
|
||||
<source>background</source>
|
||||
<translation>仅后台录制</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -120,7 +120,7 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="269"/>
|
||||
<source>always top</source>
|
||||
<source>always on top</source>
|
||||
<translation>窗口置顶</translation>
|
||||
</message>
|
||||
<message>
|
||||
|
@ -130,13 +130,13 @@
|
|||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="309"/>
|
||||
<source>close screen</source>
|
||||
<source>auto screen-off</source>
|
||||
<translation>自动息屏</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="363"/>
|
||||
<source>update script</source>
|
||||
<translation>更新脚本</translation>
|
||||
<source>refresh script</source>
|
||||
<translation>刷新脚本</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../dialog.ui" line="370"/>
|
||||
|
|
Loading…
Add table
Reference in a new issue