@@ -548,18 +548,16 @@ void NetManagerThreadPrivate::doInit()
548548 }
549549 // DSL
550550 if (m_flags.testFlags (NetType::NetManagerFlag::Net_DSL)) {
551- NetDSLControlItemPrivate *vpnControlItem = NetItemNew (DSLControlItem, " NetDSLControlItem" );
552- vpnControlItem->updatename (" DSL" );
553- vpnControlItem->updateenabled (networkController->vpnController ()->enabled ());
554- vpnControlItem->item ()->moveToThread (m_parentThread);
555- Q_EMIT itemAdded (" Root" , vpnControlItem);
551+ NetDSLControlItemPrivate *dslControlItem = NetItemNew (DSLControlItem, " NetDSLControlItem" );
552+ dslControlItem->updatename (" DSL" );
553+ dslControlItem->item ()->moveToThread (m_parentThread);
554+ Q_EMIT itemAdded (" Root" , dslControlItem);
556555
557556 networkController->dslController ()->connectItem (" " );
558- // connect(networkController->dslController(), &DSLController::enableChanged, this, &NetManagerThreadPrivate::onVPNEnableChanged);
559- // connect(networkController->vpnController(), &VPNController::itemChanged, this, vpnItemChanged);
560557 connect (networkController->dslController (), &DSLController::itemAdded, this , &NetManagerThreadPrivate::onDSLAdded);
561558 connect (networkController->dslController (), &DSLController::itemRemoved, this , &NetManagerThreadPrivate::onDSLRemoved);
562559 connect (networkController->dslController (), &DSLController::activeConnectionChanged, this , &NetManagerThreadPrivate::onDslActiveConnectionChanged);
560+ updateDSLEnabledable ();
563561 onDSLAdded (networkController->dslController ()->items ());
564562 }
565563 // Details
@@ -1847,6 +1845,7 @@ void NetManagerThreadPrivate::onDeviceAdded(QList<NetworkDeviceBase *> devices)
18471845 break ;
18481846 }
18491847 }
1848+ updateDSLEnabledable ();
18501849}
18511850
18521851void NetManagerThreadPrivate::onDeviceRemoved (QList<NetworkDeviceBase *> devices)
@@ -1858,6 +1857,7 @@ void NetManagerThreadPrivate::onDeviceRemoved(QList<NetworkDeviceBase *> devices
18581857 if (m_flags.testFlags (NetType::Net_Details)) {
18591858 updateDetails ();
18601859 }
1860+ updateDSLEnabledable ();
18611861}
18621862
18631863void NetManagerThreadPrivate::onConnectivityChanged ()
@@ -1866,6 +1866,20 @@ void NetManagerThreadPrivate::onConnectivityChanged()
18661866 Q_EMIT dataChanged (DataChanged::DeviceStatusChanged, dev->path (), QVariant::fromValue (deviceStatus (dev)));
18671867}
18681868
1869+ void NetManagerThreadPrivate::updateDSLEnabledable ()
1870+ {
1871+ if (!m_flags.testFlags (NetType::NetManagerFlag::Net_DSL)) {
1872+ return ;
1873+ }
1874+ for (auto &&dev : NetworkController::instance ()->devices ()) {
1875+ if (dev->deviceType () == DeviceType::Wired) {
1876+ Q_EMIT dataChanged (DataChanged::DeviceAvailableChanged, " NetDSLControlItem" , QVariant::fromValue (true ));
1877+ return ;
1878+ }
1879+ }
1880+ Q_EMIT dataChanged (DataChanged::DeviceAvailableChanged, " NetDSLControlItem" , QVariant::fromValue (false ));
1881+ }
1882+
18691883void NetManagerThreadPrivate::onConnectionAdded (const QList<WiredConnection *> &conns)
18701884{
18711885 NetworkDeviceBase *dev = qobject_cast<NetworkDeviceBase *>(sender ());
0 commit comments