@@ -28,6 +28,7 @@ MainWindow::MainWindow(QWidget *parent):
2828 pm3 = new PM3Process (pm3Thread);
2929 pm3Thread->start ();
3030 pm3state = false ;
31+ clientWorkingDir = new QDir;
3132
3233 util = new Util (this );
3334 mifare = new Mifare (ui, util, this );
@@ -94,6 +95,7 @@ void MainWindow::on_PM3_connectButton_clicked()
9495 {
9596 QStringList args = ui->Set_Client_startArgsEdit ->text ().replace (" <port>" , port).split (' ' );
9697 saveClientPath (ui->PM3_pathEdit ->text ());
98+
9799 QProcess envSetProcess;
98100 QFileInfo envScriptPath (ui->Set_Client_envScriptEdit ->text ());
99101 if (envScriptPath.exists ())
@@ -113,6 +115,15 @@ void MainWindow::on_PM3_connectButton_clicked()
113115 else
114116 clientEnv.clear ();
115117 emit setProcEnv (&clientEnv);
118+
119+ clientWorkingDir->setPath (QApplication::applicationDirPath ());
120+ qDebug () << clientWorkingDir->absolutePath ();
121+ clientWorkingDir->mkpath (ui->Set_Client_workingDirEdit ->text ());
122+ qDebug () << clientWorkingDir->absolutePath ();
123+ clientWorkingDir->cd (ui->Set_Client_workingDirEdit ->text ());
124+ qDebug () << clientWorkingDir->absolutePath ();
125+ emit setWorkingDir (clientWorkingDir->absolutePath ());
126+
116127 emit connectPM3 (ui->PM3_pathEdit ->text (), port, args);
117128 }
118129}
@@ -976,6 +987,7 @@ void MainWindow::uiInit()
976987
977988 settings->beginGroup (" Client_Env" );
978989 ui->Set_Client_envScriptEdit ->setText (settings->value (" scriptPath" ).toString ());
990+ ui->Set_Client_workingDirEdit ->setText (settings->value (" workingDir" , " ../data" ).toString ());
979991 settings->endGroup ();
980992
981993 ui->MF_RW_keyTypeBox ->addItem (" A" , Mifare::KEY_A);
@@ -996,6 +1008,7 @@ void MainWindow::signalInit()
9961008 connect (pm3, &PM3Process::PM3StatedChanged, util, &Util::setRunningState);
9971009 connect (this , &MainWindow::killPM3, pm3, &PM3Process::kill);
9981010 connect (this , &MainWindow::setProcEnv, pm3, &PM3Process::setProcEnv);
1011+ connect (this , &MainWindow::setWorkingDir, pm3, &PM3Process::setWorkingDir);
9991012
10001013 connect (util, &Util::write, pm3, &PM3Process::write);
10011014
@@ -1160,3 +1173,10 @@ void MainWindow::on_Set_Client_envScriptEdit_editingFinished()
11601173 settings->setValue (" scriptPath" , ui->Set_Client_envScriptEdit ->text ());
11611174 settings->endGroup ();
11621175}
1176+
1177+ void MainWindow::on_Set_Client_saveWorkingDirButton_clicked ()
1178+ {
1179+ settings->beginGroup (" Client_Env" );
1180+ settings->setValue (" workingDir" , ui->Set_Client_workingDirEdit ->text ());
1181+ settings->endGroup ();
1182+ }
0 commit comments