fix: 修复无线网络和蓝牙显示问题

无线网络hover效果与分割线重叠问题,计算弹窗高度有问题,导致分割线与WirelessItem重叠
无线网络和蓝牙右侧margin按设计需求设置为10

Log: 优化无线网络和蓝牙显示效果
Bug: https://pms.uniontech.com/zentao/bug-view-81667.html
Bug: https://pms.uniontech.com/zentao/bug-view-81641.html
Change-Id: I4152b0eca000c74303e3f132cc000069e2114b21
This commit is contained in:
yanghongwei 2021-06-22 17:50:27 +08:00
parent f02d529942
commit 12383fd53e
3 changed files with 12 additions and 13 deletions

View File

@ -49,7 +49,7 @@ SettingLabel::SettingLabel(QString text, QWidget *parent)
setContentsMargins(0, 0, 0, 0); setContentsMargins(0, 0, 0, 0);
m_layout->setMargin(0); m_layout->setMargin(0);
m_layout->setSpacing(4); m_layout->setSpacing(4);
m_layout->setContentsMargins(20, 0, 8, 0); m_layout->setContentsMargins(20, 0, 6, 0);
m_layout->addWidget(m_label, 0, Qt::AlignLeft | Qt::AlignHCenter); m_layout->addWidget(m_label, 0, Qt::AlignLeft | Qt::AlignHCenter);
m_layout->addStretch(); m_layout->addStretch();

View File

@ -61,13 +61,15 @@ DeviceControlWidget::DeviceControlWidget(QWidget *parent)
QHBoxLayout *infoLayout = new QHBoxLayout; QHBoxLayout *infoLayout = new QHBoxLayout;
infoLayout->setMargin(0); infoLayout->setMargin(0);
infoLayout->setSpacing(0); infoLayout->setSpacing(0);
infoLayout->setContentsMargins(0, 0, 0, 0); infoLayout->setContentsMargins(20, 0, 0, 0);
infoLayout->addWidget(m_deviceName); infoLayout->addWidget(m_deviceName);
infoLayout->addStretch(); infoLayout->addStretch();
infoLayout->addWidget(m_loadingIndicator); infoLayout->addWidget(m_loadingIndicator);
infoLayout->addSpacing(4); infoLayout->addSpacing(4);
infoLayout->addWidget(m_switchBtn); infoLayout->addWidget(m_switchBtn);
infoLayout->addSpacing(8); // DSwitchButton 按照设计要求: 在保持现有控件的尺寸下,这里需要预留绘制focusRect的区域,borderWidth为2,间隙宽度为2
// 所以此处按设计的要求 10-4 = 6
infoLayout->addSpacing(6);
QVBoxLayout *centralLayout = new QVBoxLayout; QVBoxLayout *centralLayout = new QVBoxLayout;
centralLayout->addLayout(infoLayout); centralLayout->addLayout(infoLayout);

View File

@ -76,7 +76,9 @@ NetworkItem::NetworkItem(QWidget *parent)
QHBoxLayout *switchWirelessLayout = new QHBoxLayout; QHBoxLayout *switchWirelessLayout = new QHBoxLayout;
switchWirelessLayout->setMargin(0); switchWirelessLayout->setMargin(0);
switchWirelessLayout->setSpacing(0); switchWirelessLayout->setSpacing(0);
switchWirelessLayout->setContentsMargins(20, 0, 8, 0); // DSwitchButton 按照设计要求: 在保持现有控件的尺寸下,这里需要预留绘制focusRect的区域,borderWidth为2,间隙宽度为2
// 所以此处按设计的要求 10-4 = 6 right margin
switchWirelessLayout->setContentsMargins(20, 0, 6, 0);
switchWirelessLayout->addWidget(wirelessTitle); switchWirelessLayout->addWidget(wirelessTitle);
switchWirelessLayout->addStretch(); switchWirelessLayout->addStretch();
switchWirelessLayout->addWidget(m_loadingIndicator); switchWirelessLayout->addWidget(m_loadingIndicator);
@ -101,7 +103,7 @@ NetworkItem::NetworkItem(QWidget *parent)
// 有线网络控制器 // 有线网络控制器
QHBoxLayout *switchWiredLayout = new QHBoxLayout; QHBoxLayout *switchWiredLayout = new QHBoxLayout;
switchWiredLayout->setContentsMargins(20, 0, 10, 0); switchWiredLayout->setContentsMargins(20, 0, 6, 0);
switchWiredLayout->addWidget(wiredTitle); switchWiredLayout->addWidget(wiredTitle);
switchWiredLayout->addStretch(); switchWiredLayout->addStretch();
switchWiredLayout->addWidget(m_switchWiredBtn); switchWiredLayout->addWidget(m_switchWiredBtn);
@ -1075,7 +1077,6 @@ void NetworkItem::getPluginState()
void NetworkItem::updateView() void NetworkItem::updateView()
{ {
int height = 0;
// 固定显示高度即为固定示项目数 // 固定显示高度即为固定示项目数
const int constDisplayItemCnt = 10; const int constDisplayItemCnt = 10;
auto wirelessCnt = m_wirelessItems.size(); auto wirelessCnt = m_wirelessItems.size();
@ -1085,18 +1086,14 @@ void NetworkItem::updateView()
if (wirelessItem && wirelessItem->device()->enabled()) if (wirelessItem && wirelessItem->device()->enabled())
// 单个设备开关控制项 // 单个设备开关控制项
wirelessItem->setControlPanelVisible(wirelessCnt != 1); wirelessItem->setControlPanelVisible(wirelessCnt != 1);
height += wirelessItem->itemApplet()->height();
} }
} }
// 设备总控开关只与是否有设备相关 // 设备总控开关只与是否有设备相关
m_wirelessControlPanel->setVisible(m_wirelessItems.size()); m_wirelessControlPanel->setVisible(wirelessCnt);
height += m_wirelessItems.size() ? TITLE_HEIGHT + 2 : 0;// 分割线
m_wiredControlPanel->setVisible(m_wiredItems.size()); m_wiredControlPanel->setVisible(m_wiredItems.size());
height += m_wiredItems.size() ? TITLE_HEIGHT : 0;
height += m_wiredLayout->count() * ITEM_HEIGHT;
m_applet->widget()->setFixedHeight(height); m_applet->widget()->adjustSize();
m_applet->setFixedHeight(qMin(height, constDisplayItemCnt * ITEM_HEIGHT)); m_applet->setFixedHeight(qMin(m_applet->widget()->height(), constDisplayItemCnt * ITEM_HEIGHT));
if (m_wirelessControlPanel->isVisible()) { if (m_wirelessControlPanel->isVisible()) {
if (!m_wirelessScanTimer->isActive()) if (!m_wirelessScanTimer->isActive())