新建有线网界面单例化

This commit is contained in:
jzxc95 2021-11-29 09:22:31 +08:00
parent 86ef3190fd
commit 4867fc4974
4 changed files with 22 additions and 0 deletions

View File

@ -96,6 +96,8 @@ void MainWindow::firstlyStart()
});
m_secondaryStartTimer->start(5 * 1000);
createPageMap.clear();
//加载key ring
agent_init();
}
@ -613,7 +615,22 @@ void MainWindow::showPropertyWidget(QString devName, QString ssid)
void MainWindow::showCreateWiredConnectWidget(const QString devName)
{
qDebug() << "showCreateWiredConnectWidget! devName = " << devName;
if (createPageMap.contains(devName)) {
if (createPageMap[devName] != nullptr) {
qDebug() << "showCreateWiredConnectWidget" << devName << "already create,just raise";
KWindowSystem::raiseWindow(createPageMap[devName]->winId());
return;
}
}
NetDetail *netDetail = new NetDetail(devName, "", "", false, false, true, this);
connect(netDetail, &NetDetail::createPageClose, [&](QString interfaceName){
qDebug() << interfaceName;
if (createPageMap.contains(interfaceName)) {
createPageMap[interfaceName] = nullptr;
}
});
createPageMap.insert(devName, netDetail);
netDetail->show();
}

View File

@ -9,6 +9,7 @@
#include <QMenu>
#include <QAction>
#include <QDBusInterface>
#include <QMap>
#include "lanpage.h"
#include "wlanpage.h"
#include "netdetails/netdetail.h"
@ -140,6 +141,8 @@ private:
IconActiveType iconStatus = IconActiveType::NOT_CONNECTED;
QMap<QString, NetDetail*> createPageMap;
private slots:
void onTrayIconActivated();
void onShowMainwindowActionTriggled();

View File

@ -120,6 +120,7 @@ void NetDetail::paintEvent(QPaintEvent *event)
void NetDetail::closeEvent(QCloseEvent *event)
{
emit this->detailPageClose(false);
emit this->createPageClose(m_deviceName);
return QDialog::closeEvent(event);
}

View File

@ -135,5 +135,6 @@ private slots:
signals:
void detailPageClose(bool on);
void createPageClose(QString);
};
#endif // NETDETAIL_H