@@ -168,12 +168,22 @@ void Dialog::initUI()
168168 // 加载IP历史记录
169169 loadIpHistory ();
170170
171+ // 加载端口历史记录
172+ loadPortHistory ();
173+
171174 // 为deviceIpEdt添加右键菜单
172175 if (ui->deviceIpEdt ->lineEdit ()) {
173176 ui->deviceIpEdt ->lineEdit ()->setContextMenuPolicy (Qt::CustomContextMenu);
174177 connect (ui->deviceIpEdt ->lineEdit (), &QWidget::customContextMenuRequested,
175178 this , &Dialog::showIpEditMenu);
176179 }
180+
181+ // 为devicePortEdt添加右键菜单
182+ if (ui->devicePortEdt ->lineEdit ()) {
183+ ui->devicePortEdt ->lineEdit ()->setContextMenuPolicy (Qt::CustomContextMenu);
184+ connect (ui->devicePortEdt ->lineEdit (), &QWidget::customContextMenuRequested,
185+ this , &Dialog::showPortEditMenu);
186+ }
177187}
178188
179189void Dialog::updateBootConfig (bool toView)
@@ -361,22 +371,25 @@ void Dialog::on_wirelessConnectBtn_clicked()
361371 return ;
362372 }
363373 QString addr = ui->deviceIpEdt ->currentText ().trimmed ();
364- if (!ui->devicePortEdt ->text ().isEmpty ()) {
365- addr += " :" ;
366- addr += ui->devicePortEdt ->text ().trimmed ();
367- } else if (!ui->devicePortEdt ->placeholderText ().isEmpty ()) {
374+ if (!ui->devicePortEdt ->currentText ().isEmpty ()) {
368375 addr += " :" ;
369- addr += ui->devicePortEdt ->placeholderText ().trimmed ();
376+ addr += ui->devicePortEdt ->currentText ().trimmed ();
370377 } else {
371- outLog ( " error: device port is null " , false );
372- return ;
378+ // 使用默认端口5555
379+ addr += " :5555 " ;
373380 }
374381
375382 // 保存IP历史记录 - 只保存IP部分,不包含端口
376383 QString ip = addr.split (" :" ).first ();
377384 if (!ip.isEmpty ()) {
378385 saveIpHistory (ip);
379386 }
387+
388+ // 保存端口历史记录
389+ QString port = addr.split (" :" ).last ();
390+ if (!port.isEmpty () && port != ip) {
391+ savePortHistory (port);
392+ }
380393
381394 outLog (" wireless connect..." , false );
382395 QStringList adbArgs;
@@ -831,3 +844,45 @@ void Dialog::showIpEditMenu(const QPoint &pos)
831844 menu->exec (ui->deviceIpEdt ->lineEdit ()->mapToGlobal (pos));
832845 delete menu;
833846}
847+
848+ void Dialog::loadPortHistory ()
849+ {
850+ QStringList portList = Config::getInstance ().getPortHistory ();
851+ ui->devicePortEdt ->clear ();
852+ ui->devicePortEdt ->addItems (portList);
853+ ui->devicePortEdt ->setContentsMargins (0 , 0 , 0 , 0 );
854+
855+ if (ui->devicePortEdt ->lineEdit ()) {
856+ ui->devicePortEdt ->lineEdit ()->setMaxLength (6 );
857+ ui->devicePortEdt ->lineEdit ()->setPlaceholderText (" 5555" );
858+ }
859+ }
860+
861+ void Dialog::savePortHistory (const QString &port)
862+ {
863+ if (port.isEmpty ()) {
864+ return ;
865+ }
866+
867+ Config::getInstance ().savePortHistory (port);
868+
869+ // 更新ComboBox
870+ loadPortHistory ();
871+ ui->devicePortEdt ->setCurrentText (port);
872+ }
873+
874+ void Dialog::showPortEditMenu (const QPoint &pos)
875+ {
876+ QMenu *menu = ui->devicePortEdt ->lineEdit ()->createStandardContextMenu ();
877+ menu->addSeparator ();
878+
879+ QAction *clearHistoryAction = new QAction (tr (" Clear History" ), menu);
880+ connect (clearHistoryAction, &QAction::triggered, this , [this ]() {
881+ Config::getInstance ().clearPortHistory ();
882+ loadPortHistory ();
883+ });
884+
885+ menu->addAction (clearHistoryAction);
886+ menu->exec (ui->devicePortEdt ->lineEdit ()->mapToGlobal (pos));
887+ delete menu;
888+ }
0 commit comments