A small patch

Support specifying client working directory
Clean all compile warnings
This commit is contained in:
wh201906
2021-02-17 01:26:14 +08:00
parent 7f96c061dc
commit aa6b93984c
13 changed files with 312 additions and 197 deletions
+20
View File
@@ -28,6 +28,7 @@ MainWindow::MainWindow(QWidget *parent):
pm3 = new PM3Process(pm3Thread);
pm3Thread->start();
pm3state = false;
clientWorkingDir = new QDir;
util = new Util(this);
mifare = new Mifare(ui, util, this);
@@ -94,6 +95,7 @@ void MainWindow::on_PM3_connectButton_clicked()
{
QStringList args = ui->Set_Client_startArgsEdit->text().replace("<port>", port).split(' ');
saveClientPath(ui->PM3_pathEdit->text());
QProcess envSetProcess;
QFileInfo envScriptPath(ui->Set_Client_envScriptEdit->text());
if(envScriptPath.exists())
@@ -113,6 +115,15 @@ void MainWindow::on_PM3_connectButton_clicked()
else
clientEnv.clear();
emit setProcEnv(&clientEnv);
clientWorkingDir->setPath(QApplication::applicationDirPath());
qDebug() << clientWorkingDir->absolutePath();
clientWorkingDir->mkpath(ui->Set_Client_workingDirEdit->text());
qDebug() << clientWorkingDir->absolutePath();
clientWorkingDir->cd(ui->Set_Client_workingDirEdit->text());
qDebug() << clientWorkingDir->absolutePath();
emit setWorkingDir(clientWorkingDir->absolutePath());
emit connectPM3(ui->PM3_pathEdit->text(), port, args);
}
}
@@ -976,6 +987,7 @@ void MainWindow::uiInit()
settings->beginGroup("Client_Env");
ui->Set_Client_envScriptEdit->setText(settings->value("scriptPath").toString());
ui->Set_Client_workingDirEdit->setText(settings->value("workingDir", "../data").toString());
settings->endGroup();
ui->MF_RW_keyTypeBox->addItem("A", Mifare::KEY_A);
@@ -996,6 +1008,7 @@ void MainWindow::signalInit()
connect(pm3, &PM3Process::PM3StatedChanged, util, &Util::setRunningState);
connect(this, &MainWindow::killPM3, pm3, &PM3Process::kill);
connect(this, &MainWindow::setProcEnv, pm3, &PM3Process::setProcEnv);
connect(this, &MainWindow::setWorkingDir, pm3, &PM3Process::setWorkingDir);
connect(util, &Util::write, pm3, &PM3Process::write);
@@ -1160,3 +1173,10 @@ void MainWindow::on_Set_Client_envScriptEdit_editingFinished()
settings->setValue("scriptPath", ui->Set_Client_envScriptEdit->text());
settings->endGroup();
}
void MainWindow::on_Set_Client_saveWorkingDirButton_clicked()
{
settings->beginGroup("Client_Env");
settings->setValue("workingDir", ui->Set_Client_workingDirEdit->text());
settings->endGroup();
}
+4
View File
@@ -173,6 +173,8 @@ private slots:
void on_Set_Client_envScriptEdit_editingFinished();
void on_Set_Client_saveWorkingDirButton_clicked();
private:
Ui::MainWindow* ui;
QButtonGroup* MFCardTypeBtnGroup;
@@ -199,6 +201,7 @@ private:
QTimer* portSearchTimer;
QStringList portList;
QStringList clientEnv;
QDir* clientWorkingDir;
Mifare* mifare;
Util* util;
@@ -217,5 +220,6 @@ signals:
void killPM3();
void setSerialListener(const QString& name, bool state);
void setProcEnv(const QStringList *env);
void setWorkingDir(const QString& dir);
};
#endif // MAINWINDOW_H
+45 -2
View File
@@ -130,7 +130,7 @@
</sizepolicy>
</property>
<property name="currentIndex">
<number>0</number>
<number>4</number>
</property>
<widget class="QWidget" name="mifareTab">
<attribute name="title">
@@ -1538,7 +1538,7 @@
<attribute name="title">
<string>Settings</string>
</attribute>
<layout class="QHBoxLayout" name="horizontalLayout_15">
<layout class="QHBoxLayout" name="horizontalLayout_18">
<item>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
@@ -1573,6 +1573,49 @@ then put the path of the script there</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_4">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_19">
<property name="text">
<string>Client working directory:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_15">
<item>
<widget class="QLineEdit" name="Set_Client_workingDirEdit">
<property name="text">
<string>../data</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="Set_Client_saveWorkingDirButton">
<property name="text">
<string>Save</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="label_20">
<property name="text">
<string>Note:
On Windows, the client working directory should not be identical to the path of GUI, otherwise the client will use the wrong .dll file.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
+1 -1
View File
@@ -123,7 +123,7 @@ void MF_trailerDecoderDialog::setTableItem(QTableWidget* widget, int row, int co
widget->item(row, column)->setText(text);
}
void MF_trailerDecoderDialog::on_boxChanged(int arg1)
void MF_trailerDecoderDialog::on_boxChanged()
{
quint8 ACBits[4];
ACBits[0] = ui->C0Box->value();
+1 -1
View File
@@ -27,7 +27,7 @@ private slots:
void on_blockSizeChanged(int id, bool st);
void on_boxChanged(int arg1);
void on_boxChanged();
private:
Ui::MF_trailerDecoderDialog *ui;
QRegularExpressionValidator* validator;