|
1 | | -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. |
| 1 | +// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd. |
2 | 2 | // |
3 | 3 | // SPDX-License-Identifier: GPL-3.0-or-later |
4 | 4 |
|
@@ -42,7 +42,6 @@ TableWidget::TableWidget(QWidget *parent) |
42 | 42 | , mp_removeDriver(new QAction(tr("Uninstall drivers"), this)) |
43 | 43 | , mp_WakeupMachine(new QAction(tr("Allow it to wake the computer"), this)) |
44 | 44 | , mp_Menu(new DMenu(this)) |
45 | | - , m_Enable(false) |
46 | 45 |
|
47 | 46 | { |
48 | 47 | qCDebug(appLog) << "TableWidget instance created"; |
@@ -106,12 +105,8 @@ void TableWidget::setHeaderLabels(const QStringList &lst) |
106 | 105 | { |
107 | 106 | qCDebug(appLog) << "Setting header labels to:" << lst; |
108 | 107 | QStringList headers; |
109 | | - for (int i = 0; i < lst.size(); i++) { |
110 | | - if (i < lst.size() - 1) { |
111 | | - headers.append(lst[i]); |
112 | | - } else { |
113 | | - m_Enable = lst[i] == "yes" ? true : false; |
114 | | - } |
| 108 | + for (int i = 0; i < lst.size() - 1; i++) { |
| 109 | + headers.append(lst[i]); |
115 | 110 | } |
116 | 111 |
|
117 | 112 | if (mp_Table) { |
@@ -270,19 +265,22 @@ void TableWidget::slotShowMenu(const QPoint &point) |
270 | 265 | mp_Menu->addAction(mp_Refresh); |
271 | 266 | mp_Menu->addAction(mp_Export); |
272 | 267 | QModelIndexList selected = mp_Table->selectionModel()->selectedRows(); |
273 | | - // 选中item状态下才有启用/禁用按钮 |
274 | | - if (m_Enable && selected.size() > 0) { |
275 | | - mp_Menu->addAction(mp_Enable); |
276 | | - } |
277 | | - // 主板、内存、cpu等没有驱动,无需右键按钮 |
278 | | - // 选中item状态下才有卸载、更新按钮 |
| 268 | + |
| 269 | + // 先获取当前行的设备能力 |
279 | 270 | bool canUninstall = true , canEnable = true; |
280 | 271 | QStandardItem* item = mp_Table->item(row,0); |
281 | 272 | if(item){ // 获取该设备是否可以更新卸载驱动 |
282 | 273 | qCDebug(appLog) << "Getting device capabilities from item data"; |
283 | 274 | canUninstall = item->data(Qt::UserRole).toString()=="true" ? true : false; |
284 | 275 | canEnable = item->data(Qt::UserRole+1).toString()=="true" ? true : false; |
285 | 276 | } |
| 277 | + |
| 278 | + // 选中item状态下才有启用/禁用按钮 |
| 279 | + if (canEnable && selected.size() > 0) { |
| 280 | + mp_Menu->addAction(mp_Enable); |
| 281 | + } |
| 282 | + // 主板、内存、cpu等没有驱动,无需右键按钮 |
| 283 | + // 选中item状态下才有卸载、更新按钮 |
286 | 284 | if(!canEnable){ |
287 | 285 | qCDebug(appLog) << "Device cannot be enabled/disabled, disabling action"; |
288 | 286 | mp_Enable->setEnabled(false); |
|
0 commit comments