@@ -83,9 +83,9 @@ NetView::NetView(NetManager *manager)
8383 connect (this , &NetView::activated, this , &NetView::onActivated);
8484
8585 // 支持在触摸屏上滚动
86- // QScroller::grabGesture(viewport(), QScroller::LeftMouseButtonGesture);
87- // QScrollerProperties sp;
88- // sp.setScrollMetric(QScrollerProperties::VerticalOvershootPolicy, QScrollerProperties::OvershootAlwaysOff);
86+ // QScroller::grabGesture(viewport(), QScroller::LeftMouseButtonGesture);
87+ // QScrollerProperties sp;
88+ // sp.setScrollMetric(QScrollerProperties::VerticalOvershootPolicy, QScrollerProperties::OvershootAlwaysOff);
8989}
9090
9191NetView::~NetView () = default ;
@@ -143,7 +143,7 @@ void NetView::rowsInserted(const QModelIndex &parent, int start, int end)
143143 NetWirelessOtherItem *otherItem = NetItem::toItem<NetWirelessOtherItem>(item);
144144 if (otherItem) {
145145 updateItemExpand (otherItem);
146- connect (otherItem, &NetWirelessOtherItem::expandedChanged, this , &NetView::onExpandStatusChanged);
146+ connect (otherItem, &NetWirelessOtherItem::expandedChanged, this , &NetView::onExpandStatusChanged, Qt::UniqueConnection );
147147 }
148148 } break ;
149149 case NetType::WirelessMineItem:
@@ -152,8 +152,8 @@ void NetView::rowsInserted(const QModelIndex &parent, int start, int end)
152152 case NetType::VPNControlItem: {
153153 NetVPNControlItem *vpnControlItem = NetItem::toItem<NetVPNControlItem>(item);
154154 if (vpnControlItem) {
155- connect (vpnControlItem, &NetVPNControlItem::expandedChanged, this , &NetView::onExpandStatusChanged);
156- connect (vpnControlItem, &NetVPNControlItem::enabledChanged, this , &NetView::onExpandStatusChanged);
155+ connect (vpnControlItem, &NetVPNControlItem::expandedChanged, this , &NetView::onExpandStatusChanged, Qt::UniqueConnection );
156+ connect (vpnControlItem, &NetVPNControlItem::enabledChanged, this , &NetView::onExpandStatusChanged, Qt::UniqueConnection );
157157 updateItemExpand (vpnControlItem);
158158 }
159159 } break ;
@@ -164,9 +164,9 @@ void NetView::rowsInserted(const QModelIndex &parent, int start, int end)
164164 NetDeviceItem *dev = NetItem::toItem<NetDeviceItem>(item);
165165 if (dev) {
166166 updateItemExpand (dev);
167- connect (dev, &NetDeviceItem::enabledChanged, this , &NetView::onExpandStatusChanged);
167+ connect (dev, &NetDeviceItem::enabledChanged, this , &NetView::onExpandStatusChanged, Qt::UniqueConnection );
168168 if (dev->itemType () == NetType::WirelessDeviceItem)
169- connect (NetItem::toItem<NetWirelessDeviceItem>(dev), &NetWirelessDeviceItem::apModeChanged, this , &NetView::onExpandStatusChanged);
169+ connect (NetItem::toItem<NetWirelessDeviceItem>(dev), &NetWirelessDeviceItem::apModeChanged, this , &NetView::onExpandStatusChanged, Qt::UniqueConnection );
170170 }
171171 } break ;
172172 default :
@@ -281,6 +281,9 @@ void NetView::updateItemExpand(NetItem *item)
281281 return ;
282282 }
283283 QModelIndex sIndex = m_model->index (item);
284+ if (!sIndex .isValid ()) {
285+ return ;
286+ }
284287 QModelIndex index = m_proxyModel->mapFromSource (sIndex );
285288 if (isExpanded (index) != expandItem) {
286289 setExpanded (index, expandItem);
0 commit comments