diff --git a/common-plugin/networkdialog/item/netitem.cpp b/common-plugin/networkdialog/item/netitem.cpp index 2b6196773..abb8aab67 100644 --- a/common-plugin/networkdialog/item/netitem.cpp +++ b/common-plugin/networkdialog/item/netitem.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -267,6 +267,7 @@ void WiredItem::initUi() m_connectionIconAction = new DViewItemAction(Qt::AlignLeft | Qt::AlignVCenter, QSize(20, 20), QSize(8, 20), false); + m_connectionIconAction->setObjectName("ConnectionIconAction"); standardItem()->setActionList(Qt::LeftEdge, { emptyAction, m_connectionIconAction }); updateView(); @@ -371,6 +372,7 @@ QString WirelessItem::getStrengthStateString(int strength) void WirelessItem::initUi(QWidget *parent) { m_expandItem = new DViewItemAction(Qt::AlignBottom, QSize(PANELWIDTH, 20), QSize(PANELWIDTH, 20), false); + m_expandItem->setObjectName("ExpandItem"); m_stackWidget = new DStackedWidget(parent); // 初始化展开输入控件 initExpandUi(); @@ -379,15 +381,18 @@ void WirelessItem::initUi(QWidget *parent) m_expandItem->setVisible(false); // 左侧的加密图标 m_securityAction = new DViewItemAction(Qt::AlignLeft , QSize(20, 35), QSize(20, 35), false); + m_securityAction->setObjectName("SecurityAction"); updateSrcirityIcon(); // 绘制WiFi图标 m_wifiLabel = new DViewItemAction(Qt::AlignLeft , QSize(20, 35), QSize(8, 35), false); + m_wifiLabel->setObjectName("WifiLabel"); updateWifiIcon(); standardItem()->setSizeHint(QSize(-1, 36)); standardItem()->setActionList(Qt::LeftEdge, { m_securityAction, m_wifiLabel }); m_topItem = new DViewItemAction(Qt::AlignTop, QSize(-1, 1), QSize(-1, 1), false); + m_topItem->setObjectName("TopItem"); standardItem()->setActionList(Qt::TopEdge, { m_topItem }); m_topItem->setVisible(false); // 绘制右侧的连接图标 @@ -524,6 +529,8 @@ void WirelessItem::createPasswordEdit() // 密码输入窗 DWidget *passwdWidget = new DWidget(m_stackWidget); m_passwdEdit = new DPasswordEdit(passwdWidget); + m_passwdEdit->setObjectName("PasswdEdit"); + m_passwdEdit->setAccessibleName("PasswdEdit"); m_passwdEdit->lineEdit()->setPlaceholderText(tr("Password")); m_passwdEdit->lineEdit()->setMaxLength(256); m_passwdEdit->setContextMenuPolicy(Qt::NoContextMenu); @@ -532,6 +539,8 @@ void WirelessItem::createPasswordEdit() DPushButton *cancelButtion = new DPushButton(tr("Cancel", "button"), passwdWidget); // 取消 m_connectButton = new DSuggestButton(tr("Connect", "button"), passwdWidget); // 连接 + m_connectButton->setObjectName("ConnectButton"); + m_connectButton->setAccessibleName("ConnectButton"); cancelButtion->setFixedHeight(36); cancelButtion->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); m_connectButton->setFixedHeight(36); @@ -566,6 +575,8 @@ void WirelessItem::createSsidEdit() // ssid输入窗 DWidget *ssidWidget = new DWidget(m_stackWidget); m_ssidEdit = new DLineEdit(ssidWidget); + m_ssidEdit->setObjectName("SsidEdit"); + m_ssidEdit->setAccessibleName("SsidEdit"); m_ssidEdit->setPlaceholderText(tr("Name (SSID)")); m_ssidEdit->lineEdit()->setMaxLength(256); m_ssidEdit->setContextMenuPolicy(Qt::NoContextMenu); @@ -574,6 +585,10 @@ void WirelessItem::createSsidEdit() DPushButton *cancelButtion = new DPushButton(tr("Cancel", "button"), ssidWidget); // 取消 DPushButton *connectButton = new DSuggestButton(tr("Connect", "button"), ssidWidget); // 连接 + cancelButtion->setObjectName("SsidCancelBtn"); + cancelButtion->setAccessibleName("SsidCancelBtn"); + connectButton->setObjectName("SsidConnectBtn"); + connectButton->setAccessibleName("SsidConnectBtn"); cancelButtion->setFixedHeight(36); cancelButtion->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); connectButton->setFixedHeight(36); diff --git a/dcc-network-plugin/window/controllitemsmodel.cpp b/dcc-network-plugin/window/controllitemsmodel.cpp index d89b18f38..e1f6df6d4 100644 --- a/dcc-network-plugin/window/controllitemsmodel.cpp +++ b/dcc-network-plugin/window/controllitemsmodel.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -34,6 +34,8 @@ struct ControllItemsAction , conn(_conn) , item(new DStandardItem()) { + iconAction->setObjectName("IconAction"); + spinnerAction->setObjectName("SpinnerAction"); iconAction->setData(QVariant::fromValue(conn)); rightList.append(spinnerAction); rightList.append(iconAction); diff --git a/dcc-network-plugin/window/editpage/connectioneditpage.cpp b/dcc-network-plugin/window/editpage/connectioneditpage.cpp index ff6d80330..88d6fdc0a 100644 --- a/dcc-network-plugin/window/editpage/connectioneditpage.cpp +++ b/dcc-network-plugin/window/editpage/connectioneditpage.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -97,6 +97,10 @@ void ConnectionEditPage::initUI() m_disconnectBtn = m_buttonTuple_conn->leftButton(); m_removeBtn = m_buttonTuple_conn->rightButton(); + m_disconnectBtn->setObjectName("DisconnectBtn"); + m_disconnectBtn->setAccessibleName("DisconnectBtn"); + m_removeBtn->setObjectName("RemoveBtn"); + m_removeBtn->setAccessibleName("RemoveBtn"); // GSettingWatcher::instance()->bind("removeConnection", m_removeBtn); m_disconnectBtn->setText(tr("Disconnect", "button")); diff --git a/dcc-network-plugin/window/editpage/connectionvpneditpage.cpp b/dcc-network-plugin/window/editpage/connectionvpneditpage.cpp index 0de3379ad..b7560f7b5 100644 --- a/dcc-network-plugin/window/editpage/connectionvpneditpage.cpp +++ b/dcc-network-plugin/window/editpage/connectionvpneditpage.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -168,6 +168,8 @@ void ConnectionVpnEditPage::initSettingsWidgetByType(ConnectionVpnEditPage::VpnT if (SupportedExportVpnList.contains(vpnType) && !connectionUuid().isEmpty()) { if (!m_exportButton) { m_exportButton = new QPushButton(this); + m_exportButton->setObjectName("ExportButton"); + m_exportButton->setAccessibleName("ExportButton"); m_exportButton->setText(tr("Export", "button")); connect(m_exportButton, &QPushButton::clicked, this, &ConnectionVpnEditPage::exportConnConfig); addHeaderButton(m_exportButton); diff --git a/dcc-network-plugin/window/sections/ethernetsection.cpp b/dcc-network-plugin/window/sections/ethernetsection.cpp index 52cb74418..374a79065 100644 --- a/dcc-network-plugin/window/sections/ethernetsection.cpp +++ b/dcc-network-plugin/window/sections/ethernetsection.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -130,6 +130,8 @@ void EthernetSection::initUI() { m_deviceMacLine->setTitle(tr("Device MAC Addr")); m_deviceMacComboBox = m_deviceMacLine->comboBox(); + m_deviceMacComboBox->setObjectName("DeviceMacComboBox"); + m_deviceMacComboBox->setAccessibleName("DeviceMacComboBox"); for (const QString &key : m_macStrMap.keys()) m_deviceMacComboBox->addItem(key, m_macStrMap.value(key)); diff --git a/dcc-network-plugin/window/sections/ipvxsection.cpp b/dcc-network-plugin/window/sections/ipvxsection.cpp index 925c1a65d..6a17ab92e 100644 --- a/dcc-network-plugin/window/sections/ipvxsection.cpp +++ b/dcc-network-plugin/window/sections/ipvxsection.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -223,6 +223,8 @@ void IpvxSection::initUI() m_neverDefault->setVisible(false); m_methodChooser = m_methodLine->comboBox(); + m_methodChooser->setObjectName("MethodChooser"); + m_methodChooser->setAccessibleName("MethodChooser"); m_methodLine->setTitle(tr("Method")); appendItem(m_methodLine); appendItem(m_ipAddress); diff --git a/dcc-network-plugin/window/sections/multiipvxsection.cpp b/dcc-network-plugin/window/sections/multiipvxsection.cpp index f50440314..a795cdfd2 100644 --- a/dcc-network-plugin/window/sections/multiipvxsection.cpp +++ b/dcc-network-plugin/window/sections/multiipvxsection.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -45,6 +45,8 @@ MultiIpvxSection::MultiIpvxSection(Setting::Ptr ipvSetting, QFrame *parent) m_headerEditWidget->setFixedHeight(30); m_methodChooser = m_methodLine->comboBox(); + m_methodChooser->setObjectName("MethodChooser_2"); + m_methodChooser->setAccessibleName("MethodChooser_2"); m_methodLine->setTitle(tr("Method")); appendItem(m_methodLine); @@ -359,6 +361,10 @@ IPInputSection::IPInputSection(IpAddress ipAddress, QFrame *parent) , m_deleteButton(new DIconButton(DStyle::SP_DeleteButton, this)) { initUi(); + m_newIpButton->setObjectName("NewIpBtn"); + m_newIpButton->setAccessibleName("NewIpBtn"); + m_deleteButton->setObjectName("DeleteIpBtn"); + m_deleteButton->setAccessibleName("DeleteIpBtn"); initConnection(); } @@ -445,6 +451,10 @@ IPV4InputSection::IPV4InputSection(IpAddress ipAddress, QFrame *parent) , m_netmaskIpv4(new LineEditWidget(this)) { initUi(); + m_newIpButton->setObjectName("NewIpBtn"); + m_newIpButton->setAccessibleName("NewIpBtn"); + m_deleteButton->setObjectName("DeleteIpBtn"); + m_deleteButton->setAccessibleName("DeleteIpBtn"); initConnection(); } @@ -591,6 +601,10 @@ IPV6InputSection::IPV6InputSection(IpAddress ipAddress, QFrame *parent) , m_prefixIpv6(new SpinBoxWidget(this)) { initUi(); + m_newIpButton->setObjectName("NewIpBtn"); + m_newIpButton->setAccessibleName("NewIpBtn"); + m_deleteButton->setObjectName("DeleteIpBtn"); + m_deleteButton->setAccessibleName("DeleteIpBtn"); } IPV6InputSection::~IPV6InputSection() diff --git a/dcc-network-plugin/window/sections/wirelesssection.cpp b/dcc-network-plugin/window/sections/wirelesssection.cpp index 0565a56a2..f49833f10 100644 --- a/dcc-network-plugin/window/sections/wirelesssection.cpp +++ b/dcc-network-plugin/window/sections/wirelesssection.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -136,6 +136,8 @@ void WirelessSection::initUI() m_deviceMacLine->setTitle(tr("Device MAC Addr")); m_deviceMacComboBox = m_deviceMacLine->comboBox(); + m_deviceMacComboBox->setObjectName("DeviceMacComboBox_2"); + m_deviceMacComboBox->setAccessibleName("DeviceMacComboBox_2"); for (const QString &key : m_macStrMap.keys()) m_deviceMacComboBox->addItem(key, m_macStrMap.value(key).first); diff --git a/dcc-network-plugin/window/widgets/buttoneditwidget.cpp b/dcc-network-plugin/window/widgets/buttoneditwidget.cpp index f501570c1..85bd89aeb 100644 --- a/dcc-network-plugin/window/widgets/buttoneditwidget.cpp +++ b/dcc-network-plugin/window/widgets/buttoneditwidget.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -60,6 +60,12 @@ ButtonEditWidget::ButtonEditWidget(QFrame *parent) , m_reduceBtn(new DIconButton(DStyle::SP_DeleteButton, this)) { m_title->setFixedWidth(110); + m_edit->setObjectName("IpEdit"); + m_edit->setAccessibleName("IpEdit"); + m_addBtn->setObjectName("AddBtn"); + m_addBtn->setAccessibleName("AddBtn"); + m_reduceBtn->setObjectName("ReduceBtn"); + m_reduceBtn->setAccessibleName("ReduceBtn"); m_edit->setContextMenuPolicy(Qt::NoContextMenu); m_addBtn->setFixedSize(QSize(19, 19)); diff --git a/dcc-network-plugin/window/widgets/filechoosewidget.cpp b/dcc-network-plugin/window/widgets/filechoosewidget.cpp index 32ea7ca8f..0ff128633 100644 --- a/dcc-network-plugin/window/widgets/filechoosewidget.cpp +++ b/dcc-network-plugin/window/widgets/filechoosewidget.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -24,6 +24,8 @@ FileChooseWidget::FileChooseWidget(QWidget *parent) , m_fileChooserEdit(new DFileChooserEdit(this)) , m_title(new QLabel) { + m_fileChooserEdit->setObjectName("FileChooserEdit"); + m_fileChooserEdit->setAccessibleName("FileChooserEdit"); m_title->setFixedWidth(110); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(m_title); diff --git a/dcc-network-plugin/window/wirelessdevicemodel.cpp b/dcc-network-plugin/window/wirelessdevicemodel.cpp index 20d5c15ed..584305b7f 100644 --- a/dcc-network-plugin/window/wirelessdevicemodel.cpp +++ b/dcc-network-plugin/window/wirelessdevicemodel.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -37,6 +37,9 @@ struct ItemAction , ap(_ap) , item(new DStandardItem()) { + secureAction->setObjectName("SecureAction"); + iconAction->setObjectName("IconAction_2"); + spinnerAction->setObjectName("SpinnerAction_2"); iconAction->setData(QVariant::fromValue(ap)); leftList.append(secureAction); rightList.append(spinnerAction); diff --git a/dcc-network/qml/DeviceStatusItem.qml b/dcc-network/qml/DeviceStatusItem.qml index de32f8b02..e36c833f3 100644 --- a/dcc-network/qml/DeviceStatusItem.qml +++ b/dcc-network/qml/DeviceStatusItem.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -66,6 +66,7 @@ RowLayout { } } D.Switch { + Accessible.name: "DeviceStatusItem_Switch" checked: root.netItem.isEnabled enabled: root.netItem.enabledable onClicked: { diff --git a/dcc-network/qml/NetButton.qml b/dcc-network/qml/NetButton.qml index 6e92a4fc0..e24269560 100644 --- a/dcc-network/qml/NetButton.qml +++ b/dcc-network/qml/NetButton.qml @@ -1,9 +1,10 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 Button { + Accessible.name: "NetButton_Button" implicitHeight: implicitContentHeight + 6 implicitWidth: implicitContentWidth + 10 topPadding: 0 diff --git a/dcc-network/qml/NetFileChooseEdit.qml b/dcc-network/qml/NetFileChooseEdit.qml index 4e3d83290..76fc74d13 100644 --- a/dcc-network/qml/NetFileChooseEdit.qml +++ b/dcc-network/qml/NetFileChooseEdit.qml @@ -31,6 +31,7 @@ RowLayout { } D.LineEdit { id: edit + Accessible.name: "FileChooseEdit" Layout.preferredWidth: edit.implicitWidth - browseBtn.width - root.spacing onTextChanged: { if (!initialized) { @@ -54,6 +55,8 @@ RowLayout { } NetButton { + Accessible.name: "BrowseBtn" + Accessible.role: Accessible.Button id: browseBtn text: "..." onClicked: { diff --git a/dcc-network/qml/NetItemEditor.qml b/dcc-network/qml/NetItemEditor.qml index a82004dc9..da497fd77 100644 --- a/dcc-network/qml/NetItemEditor.qml +++ b/dcc-network/qml/NetItemEditor.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -9,6 +9,7 @@ import org.deepin.dtk 1.0 as D import org.deepin.dcc 1.0 D.ItemDelegate { + Accessible.name: "NetItemEditor_ItemDelegate" Layout.fillWidth: true backgroundVisible: false checkable: false diff --git a/dcc-network/qml/NetPasswordEdit.qml b/dcc-network/qml/NetPasswordEdit.qml index c5e038dab..d47a9ce6a 100644 --- a/dcc-network/qml/NetPasswordEdit.qml +++ b/dcc-network/qml/NetPasswordEdit.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 @@ -8,6 +8,7 @@ import org.deepin.dcc 1.0 D.PasswordEdit { property var dataItem + Accessible.name: "PasswordEdit" property bool newInput: false property bool initialized: false signal textUpdated diff --git a/dcc-network/qml/NetworkMain.qml b/dcc-network/qml/NetworkMain.qml index 452a37fb1..62562ff51 100644 --- a/dcc-network/qml/NetworkMain.qml +++ b/dcc-network/qml/NetworkMain.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.0 @@ -42,6 +42,8 @@ DccObject { } } PageAirplane { + Accessible.name: "NetworkMain_PageAirplane" + Accessible.role: Accessible.Grouping name: "airplaneMode" parentName: "network" weight: 3040 @@ -56,18 +58,24 @@ DccObject { DelegateChoice { roleValue: NetType.WiredDeviceItem delegate: PageWiredDevice { + Accessible.name: "NetworkMain_PageWiredDevice" + Accessible.role: Accessible.Grouping netItem: model.item } } DelegateChoice { roleValue: NetType.WirelessDeviceItem delegate: PageWirelessDevice { + Accessible.name: "NetworkMain_PageWirelessDevice" + Accessible.role: Accessible.Grouping netItem: model.item } } DelegateChoice { roleValue: NetType.VPNControlItem delegate: PageVPN { + Accessible.name: "NetworkMain_PageVPN" + Accessible.role: Accessible.Grouping name: "networkVpn" parentName: "network" weight: 3010 @@ -77,6 +85,8 @@ DccObject { DelegateChoice { roleValue: NetType.DSLControlItem delegate: PageDSL { + Accessible.name: "NetworkMain_PageDSL" + Accessible.role: Accessible.Grouping name: "dsl" parentName: "network" weight: 3020 @@ -86,6 +96,8 @@ DccObject { DelegateChoice { roleValue: NetType.HotspotControlItem delegate: PageHotspot { + Accessible.name: "NetworkMain_PageHotspot" + Accessible.role: Accessible.Grouping name: "personalHotspot" parentName: "network" isAirplane: dccData.root.isEnabled @@ -96,6 +108,8 @@ DccObject { DelegateChoice { roleValue: NetType.SystemProxyControlItem delegate: PageSystemProxy { + Accessible.name: "NetworkMain_PageSystemProxy" + Accessible.role: Accessible.Grouping name: "systemProxy" parentName: "network" weight: 3050 @@ -105,6 +119,8 @@ DccObject { DelegateChoice { roleValue: NetType.AppProxyControlItem delegate: PageAppProxy { + Accessible.name: "NetworkMain_PageAppProxy" + Accessible.role: Accessible.Grouping name: "applicationProxy" parentName: "network" weight: 3060 @@ -114,6 +130,8 @@ DccObject { DelegateChoice { roleValue: NetType.DetailsItem delegate: PageDetails { + Accessible.name: "NetworkMain_PageDetails" + Accessible.role: Accessible.Grouping name: "networkDetails" parentName: "network" weight: 3070 diff --git a/dcc-network/qml/PageAirplane.qml b/dcc-network/qml/PageAirplane.qml index e906a989f..ce5ff0c35 100644 --- a/dcc-network/qml/PageAirplane.qml +++ b/dcc-network/qml/PageAirplane.qml @@ -28,6 +28,7 @@ DccObject { implicitHeight: switchControl.implicitHeight implicitWidth: switchControl.implicitWidth D.Switch { + Accessible.name: "SwitchControl" id: switchControl anchors.fill: parent checked: netItem.isEnabled diff --git a/dcc-network/qml/PageAppProxy.qml b/dcc-network/qml/PageAppProxy.qml index 1696cfbcb..bf2b01f8a 100644 --- a/dcc-network/qml/PageAppProxy.qml +++ b/dcc-network/qml/PageAppProxy.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -62,6 +62,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: D.Switch { + Accessible.name: "PageAppProxy_Switch" checked: proxyEnable enabled: netItem.enabledable onClicked: { @@ -92,6 +93,7 @@ DccObject { weight: 10 pageType: DccObject.Editor page: ComboBox { + Accessible.name: "PageAppProxy_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -250,6 +252,7 @@ DccObject { weight: 30 pageType: DccObject.Item page: Button { + Accessible.name: "Cancel_3" implicitHeight: implicitContentHeight + 10 implicitWidth: implicitContentWidth + 10 topPadding: 0 @@ -272,6 +275,7 @@ DccObject { weight: 40 pageType: DccObject.Item page: Button { + Accessible.name: "Save_2" implicitHeight: implicitContentHeight + 10 implicitWidth: implicitContentWidth + 10 topPadding: 0 diff --git a/dcc-network/qml/PageDSL.qml b/dcc-network/qml/PageDSL.qml index 98e6be4f2..fda235a2b 100644 --- a/dcc-network/qml/PageDSL.qml +++ b/dcc-network/qml/PageDSL.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -41,6 +41,7 @@ DccObject { } delegate: ItemDelegate { + Accessible.name: "ItemDelegate_2" id: itemDelegate implicitHeight: 36 text: model.item.name @@ -59,6 +60,8 @@ DccObject { visible: model.item.status === NetType.CS_Connected && !itemDelegate.hovered } NetButton { + Accessible.name: "Disconnect_2" + Accessible.role: Accessible.Button implicitHeight: implicitContentHeight - 4 topInset: -4 bottomInset: -4 @@ -96,6 +99,8 @@ DccObject { } } PageDSLSettings { + Accessible.name: "DslSettings" + Accessible.role: Accessible.Grouping id: dslSettings name: "dslSettings" parentName: root.name + "/body/networkList" @@ -142,6 +147,8 @@ DccObject { weight: 40 pageType: DccObject.Item page: NetButton { + Accessible.name: "AddPppoEConnection" + Accessible.role: Accessible.Button Layout.alignment: Qt.AlignRight text: qsTr("Add PPPoE connection") onClicked: { diff --git a/dcc-network/qml/PageDSLSettings.qml b/dcc-network/qml/PageDSLSettings.qml index 5340ede26..c62c46705 100644 --- a/dcc-network/qml/PageDSLSettings.qml +++ b/dcc-network/qml/PageDSLSettings.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Layouts 1.15 @@ -37,30 +37,40 @@ DccObject { } } SectionGeneric { + Accessible.name: "SectionGeneric_2" + Accessible.role: Accessible.Grouping id: sectionGeneric parentName: root.parentUrl + "/body" weight: 100 onEditClicked: modified = true } SectionPPPOE { + Accessible.name: "SectionPppoe" + Accessible.role: Accessible.Grouping id: sectionPPPOE parentName: root.parentUrl + "/body" weight: 200 onEditClicked: modified = true } SectionIPv4 { + Accessible.name: "SectionIpv4_2" + Accessible.role: Accessible.Grouping id: sectionIPv4 parentName: root.parentUrl + "/body" weight: 300 onEditClicked: modified = true } SectionDNS { + Accessible.name: "SectionDns_2" + Accessible.role: Accessible.Grouping id: sectionDNS parentName: root.parentUrl + "/body" weight: 400 onEditClicked: modified = true } SectionDevice { + Accessible.name: "SectionDevice" + Accessible.role: Accessible.Grouping id: sectionDevice parentName: root.parentUrl + "/body" weight: 500 @@ -68,6 +78,8 @@ DccObject { onEditClicked: modified = true } SectionPPP { + Accessible.name: "SectionPpp" + Accessible.role: Accessible.Grouping id: sectionPPP parentName: root.parentUrl + "/body" weight: 600 @@ -105,6 +117,8 @@ DccObject { pageType: DccObject.Item visible: config && config.connection.uuid !== "{00000000-0000-0000-0000-000000000000}" page: NetButton { + Accessible.name: "PageDslsettings_NetButton" + Accessible.role: Accessible.Button contentItem: D.IconLabel { text: qsTr("Delete") color: "red" @@ -136,6 +150,7 @@ DccObject { Layout.topMargin: 10 Layout.bottomMargin: 10 Button { + Accessible.name: "Cancel_4" Layout.fillWidth: true text: qsTr("Cancel") onClicked: close() @@ -147,6 +162,7 @@ DccObject { } D.Button { + Accessible.name: "Component_Button_2" Layout.fillWidth: true contentItem: D.IconLabel { text: qsTr("Delete") @@ -180,6 +196,8 @@ DccObject { weight: 30 pageType: DccObject.Item page: NetButton { + Accessible.name: "Cancel_5" + Accessible.role: Accessible.Button text: qsTr("Cancel") onClicked: { root.finished() @@ -193,6 +211,8 @@ DccObject { enabled: root.modified pageType: DccObject.Item page: NetButton { + Accessible.name: "Save_3" + Accessible.role: Accessible.Button text: qsTr("Save") onClicked: { if (!sectionGeneric.checkInput() || !sectionPPPOE.checkInput() || !sectionIPv4.checkInput() || !sectionDNS.checkInput() || !sectionDevice.checkInput() || !sectionPPP.checkInput()) { diff --git a/dcc-network/qml/PageDetails.qml b/dcc-network/qml/PageDetails.qml index 4a9fb30ac..f93be8a88 100644 --- a/dcc-network/qml/PageDetails.qml +++ b/dcc-network/qml/PageDetails.qml @@ -61,6 +61,8 @@ DccObject { elide: Text.ElideMiddle } D.ActionButton { + Accessible.name: "CopyBtn" + Accessible.role: Accessible.Button property bool clipboard: false Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.preferredWidth: 30 @@ -119,6 +121,7 @@ DccObject { id: repeater model: infoItem.details delegate: ItemDelegate { + Accessible.name: "ModelData" implicitHeight: 36 text: modelData[0] font: D.DTK.fontManager.t6 @@ -130,6 +133,7 @@ DccObject { leftPadding: 10 rightPadding: 10 content: TextInput { + Accessible.name: "TextInput" id: textInput text: modelData[1] color: palette.text @@ -142,7 +146,9 @@ DccObject { id: menuLoader active: false sourceComponent: D.Menu { + Accessible.name: "Loader_Menu" D.MenuItem { + Accessible.name: "Copy" text: qsTr("Copy") enabled: textInput.selectionStart !== textInput.selectionEnd onTriggered: { @@ -150,6 +156,7 @@ DccObject { } } D.MenuItem { + Accessible.name: "SelectAll" text: qsTr("Select All") onTriggered: { textInput.selectAll() @@ -189,6 +196,8 @@ DccObject { pageType: DccObject.Item visible: dccData.netCheckAvailable() page: NetButton { + Accessible.name: "NetworkDetection" + Accessible.role: Accessible.Button text: qsTr("Network Detection") Layout.alignment: Qt.AlignRight onClicked: { diff --git a/dcc-network/qml/PageHotspot.qml b/dcc-network/qml/PageHotspot.qml index 2d3683fea..7c5d82807 100644 --- a/dcc-network/qml/PageHotspot.qml +++ b/dcc-network/qml/PageHotspot.qml @@ -100,6 +100,7 @@ DccObject { implicitHeight: switchControl.implicitHeight implicitWidth: switchControl.implicitWidth D.Switch { + Accessible.name: "SwitchControl_2" id: switchControl anchors.fill: parent checked: root.hotspotStatus === PageHotspot.Status.Enabled || root.hotspotStatus === PageHotspot.Status.Enabling @@ -204,6 +205,8 @@ DccObject { } D.ActionButton { Layout.alignment: Qt.AlignRight + Accessible.name: "EditBtn" + Accessible.role: Accessible.Button focusPolicy: Qt.NoFocus Layout.preferredWidth: 30 Layout.preferredHeight: 30 @@ -266,6 +269,8 @@ DccObject { id: colLayout width: parent.width NetItemEditor { + Accessible.name: "NameSsid" + Accessible.role: Accessible.Button text: qsTr("Name (SSID)") corners: getCornersForBackground(0, colLayout.children.length) content: D.LineEdit { @@ -280,9 +285,12 @@ DccObject { } } NetItemEditor { + Accessible.name: "Security" + Accessible.role: Accessible.Button text: qsTr("Security") corners: getCornersForBackground(1, colLayout.children.length) content: D.ComboBox { + Accessible.name: "NetItemEditor_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -309,6 +317,8 @@ DccObject { } } NetItemEditor { + Accessible.name: "Password_2" + Accessible.role: Accessible.Button text: qsTr("Password") corners: getCornersForBackground(2, colLayout.children.length) visible: keyMgmt.length !== 0 @@ -333,9 +343,12 @@ DccObject { } } NetItemEditor { + Accessible.name: "Band" + Accessible.role: Accessible.Button text: qsTr("Band") corners: getCornersForBackground(3, colLayout.children.length) content: D.ComboBox { + Accessible.name: "NetItemEditor_ComboBox_2" flat: true textRole: "text" valueRole: "value" @@ -364,6 +377,7 @@ DccObject { Layout.topMargin: 10 Layout.bottomMargin: 10 Button { + Accessible.name: "Cancel_8" Layout.fillWidth: true text: qsTr("Cancel") onClicked: close() @@ -467,6 +481,7 @@ DccObject { RowLayout { id: layoutView TextInput { + Accessible.name: "80211WirelessSecurity" text: root.config.hasOwnProperty("802-11-wireless-security") ? root.config["802-11-wireless-security"].psk : "" color: this.palette.text selectedTextColor: this.palette.highlightedText @@ -476,6 +491,8 @@ DccObject { } D.ActionButton { focusPolicy: Qt.NoFocus + Accessible.name: "PasswordToggleBtn" + Accessible.role: Accessible.Button onClicked: isEchoMode = !isEchoMode icon.name: isEchoMode ? "entry_password_shown" : "entry_password_hide" } @@ -533,6 +550,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "PageHotspot_ComboBox" function updateCurrentIndex() { if (root.config["802-11-wireless"].hasOwnProperty("mac-address")) { currentIndex = indexOfValue(macToString(root.config["802-11-wireless"]["mac-address"])) diff --git a/dcc-network/qml/PageSettings.qml b/dcc-network/qml/PageSettings.qml index 676435050..f09ba1707 100644 --- a/dcc-network/qml/PageSettings.qml +++ b/dcc-network/qml/PageSettings.qml @@ -37,6 +37,8 @@ DccObject { } } SectionGeneric { + Accessible.name: "SectionGeneric_3" + Accessible.role: Accessible.Grouping id: sectionGeneric parentName: root.parentUrl + "/body" weight: 100 @@ -44,30 +46,40 @@ DccObject { onEditClicked: modified = true } SectionSecret { + Accessible.name: "SectionSecret" + Accessible.role: Accessible.Grouping id: sectionSecret parentName: root.parentUrl + "/body" weight: 200 onEditClicked: modified = true } SectionIPv4 { + Accessible.name: "SectionIpv4_3" + Accessible.role: Accessible.Grouping id: sectionIPv4 parentName: root.parentUrl + "/body" weight: 300 onEditClicked: modified = true } SectionIPv6 { + Accessible.name: "SectionIpv6_2" + Accessible.role: Accessible.Grouping id: sectionIPv6 parentName: root.parentUrl + "/body" weight: 400 onEditClicked: modified = true } SectionDNS { + Accessible.name: "SectionDns_3" + Accessible.role: Accessible.Grouping id: sectionDNS parentName: root.parentUrl + "/body" weight: 500 onEditClicked: modified = true } SectionDevice { + Accessible.name: "SectionDevice_2" + Accessible.role: Accessible.Grouping id: sectionDevice parentName: root.parentUrl + "/body" weight: 600 @@ -109,6 +121,8 @@ DccObject { pageType: DccObject.Item visible: config && config.connection.uuid !== "{00000000-0000-0000-0000-000000000000}" page: NetButton { + Accessible.name: "PageSettings_NetButton" + Accessible.role: Accessible.Button contentItem: D.IconLabel { text: qsTr("Delete") color: "red" @@ -140,6 +154,7 @@ DccObject { Layout.topMargin: 10 Layout.bottomMargin: 10 Button { + Accessible.name: "Cancel_6" Layout.fillWidth: true text: qsTr("Cancel") onClicked: close() @@ -151,6 +166,7 @@ DccObject { } D.Button { + Accessible.name: "Component_Button_3" Layout.fillWidth: true contentItem: D.IconLabel { text: qsTr("Delete") @@ -184,6 +200,8 @@ DccObject { weight: 30 pageType: DccObject.Item page: NetButton { + Accessible.name: "Cancel_7" + Accessible.role: Accessible.Button text: qsTr("Cancel") onClicked: { root.finished() @@ -197,6 +215,8 @@ DccObject { enabled: root.modified pageType: DccObject.Item page: NetButton { + Accessible.name: "Save_4" + Accessible.role: Accessible.Button text: qsTr("Save") onClicked: { if (!sectionGeneric.checkInput() || !sectionSecret.checkInput() || !sectionIPv4.checkInput() || !sectionIPv6.checkInput() || !sectionDNS.checkInput() || !sectionDevice.checkInput()) { diff --git a/dcc-network/qml/PageSystemProxy.qml b/dcc-network/qml/PageSystemProxy.qml index 15128c1d9..a4c2d7c49 100644 --- a/dcc-network/qml/PageSystemProxy.qml +++ b/dcc-network/qml/PageSystemProxy.qml @@ -43,6 +43,7 @@ DccObject { Component { id: devCheck D.Switch { + Accessible.name: "Component_Switch_2" checked: netItem.isEnabled enabled: netItem.enabledable onClicked: { @@ -69,6 +70,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: D.Switch { + Accessible.name: "PageSystemProxy_Switch" checked: root.method !== NetType.None enabled: netItem.enabledable onClicked: { @@ -100,6 +102,7 @@ DccObject { visible: method !== NetType.None pageType: DccObject.Editor page: ComboBox { + Accessible.name: "PageSystemProxy_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -162,6 +165,8 @@ DccObject { } } SystemProxyConfigItem { + Accessible.name: "Http" + Accessible.role: Accessible.Grouping id: http name: "http" parentName: root.name + "/menu/body" @@ -178,6 +183,8 @@ DccObject { } } SystemProxyConfigItem { + Accessible.name: "Https" + Accessible.role: Accessible.Grouping id: https name: "https" parentName: root.name + "/menu/body" @@ -194,6 +201,8 @@ DccObject { } } SystemProxyConfigItem { + Accessible.name: "Ftp" + Accessible.role: Accessible.Grouping id: ftp name: "ftp" parentName: root.name + "/menu/body" @@ -210,6 +219,8 @@ DccObject { } } SystemProxyConfigItem { + Accessible.name: "Socks" + Accessible.role: Accessible.Grouping id: socks name: "socks" parentName: root.name + "/menu/body" @@ -235,6 +246,7 @@ DccObject { weight: 80 pageType: DccObject.Item page: TextArea { + Accessible.name: "DccObjConfig" wrapMode: TextEdit.WordWrap text: dccObj.config onTextChanged: { @@ -279,6 +291,7 @@ DccObject { weight: 30 pageType: DccObject.Item page: Button { + Accessible.name: "DccObjDisplayName" implicitHeight: implicitContentHeight + 10 implicitWidth: implicitContentWidth + 10 topPadding: 0 @@ -299,6 +312,7 @@ DccObject { weight: 40 pageType: DccObject.Item page: Button { + Accessible.name: "DccObjDisplayName_2" implicitHeight: implicitContentHeight + 10 implicitWidth: implicitContentWidth + 10 topPadding: 0 diff --git a/dcc-network/qml/PageVPN.qml b/dcc-network/qml/PageVPN.qml index 9720c94ed..6b4be4632 100644 --- a/dcc-network/qml/PageVPN.qml +++ b/dcc-network/qml/PageVPN.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -24,6 +24,7 @@ DccObject { Component { id: devCheck D.Switch { + Accessible.name: "Component_Switch" checked: netItem.isEnabled enabled: netItem.enabledable onClicked: { @@ -65,6 +66,7 @@ DccObject { } delegate: ItemDelegate { + Accessible.name: "ItemDelegate" id: itemDelegate implicitHeight: 36 text: model.item.name @@ -83,6 +85,8 @@ DccObject { visible: model.item.status === NetType.CS_Connected && !itemDelegate.hovered } NetButton { + Accessible.name: "Disconnect" + Accessible.role: Accessible.Button implicitHeight: implicitContentHeight - 4 topInset: -4 bottomInset: -4 @@ -119,6 +123,8 @@ DccObject { } } PageVPNSettings { + Accessible.name: "VpnSettings" + Accessible.role: Accessible.Grouping id: vpnSettings name: "vpnSettings" parentName: root.name + "/menu/body/networkList" @@ -173,6 +179,8 @@ DccObject { weight: 30 pageType: DccObject.Item page: NetButton { + Accessible.name: "ImportVpn" + Accessible.role: Accessible.Button text: qsTr("Import VPN") Layout.alignment: Qt.AlignRight onClicked: { @@ -229,6 +237,7 @@ DccObject { horizontalAlignment: Text.AlignHCenter } Button { + Accessible.name: "Ok" Layout.fillWidth: true Layout.margins: 10 text: qsTr("OK") @@ -244,6 +253,8 @@ DccObject { weight: 40 pageType: DccObject.Item page: NetButton { + Accessible.name: "AddVpn" + Accessible.role: Accessible.Button text: qsTr("Add VPN") Layout.alignment: Qt.AlignRight onClicked: { diff --git a/dcc-network/qml/PageVPNSettings.qml b/dcc-network/qml/PageVPNSettings.qml index 77344486e..bd70486b7 100644 --- a/dcc-network/qml/PageVPNSettings.qml +++ b/dcc-network/qml/PageVPNSettings.qml @@ -73,6 +73,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "PageVpnsettings_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -115,12 +116,16 @@ DccObject { } SectionGeneric { + Accessible.name: "SectionGeneric" + Accessible.role: Accessible.Grouping id: sectionGeneric parentName: root.parentUrl + "/body" weight: 100 onEditClicked: modified = true } SectionVPN { + Accessible.name: "SectionVpn" + Accessible.role: Accessible.Grouping id: sectionVPN vpnType: root.vpnType parentName: root.parentUrl + "/body" @@ -128,6 +133,8 @@ DccObject { onEditClicked: modified = true } SectionIPv4 { + Accessible.name: "SectionIpv4" + Accessible.role: Accessible.Grouping id: sectionIPv4 type: NetType.VPNControlItem parentName: root.parentUrl + "/body" @@ -136,6 +143,8 @@ DccObject { onEditClicked: modified = true } SectionIPv6 { + Accessible.name: "SectionIpv6" + Accessible.role: Accessible.Grouping id: sectionIPv6 type: NetType.VPNControlItem parentName: root.parentUrl + "/body" @@ -157,6 +166,8 @@ DccObject { } } SectionDNS { + Accessible.name: "SectionDns" + Accessible.role: Accessible.Grouping id: sectionDNS parentName: root.parentUrl + "/body" weight: 1200 @@ -176,6 +187,8 @@ DccObject { pageType: DccObject.Item visible: config && config.connection.uuid !== "{00000000-0000-0000-0000-000000000000}" page: NetButton { + Accessible.name: "PageVpnsettings_NetButton" + Accessible.role: Accessible.Button contentItem: D.IconLabel { text: qsTr("Delete") color: "red" @@ -207,6 +220,7 @@ DccObject { Layout.topMargin: 10 Layout.bottomMargin: 10 Button { + Accessible.name: "Cancel" Layout.fillWidth: true text: qsTr("Cancel") onClicked: close() @@ -218,6 +232,7 @@ DccObject { } D.Button { + Accessible.name: "Component_Button" Layout.fillWidth: true contentItem: D.IconLabel { text: qsTr("Delete") @@ -242,6 +257,8 @@ DccObject { visible: config && config.connection.uuid !== "{00000000-0000-0000-0000-000000000000}" && (vpnType & (NetUtils.VpnTypeEnum["l2tp"] | NetUtils.VpnTypeEnum["openvpn"])) pageType: DccObject.Item page: NetButton { + Accessible.name: "Export" + Accessible.role: Accessible.Button text: qsTr("Export") onClicked: { exportFileDialog.createObject(this).open() @@ -279,6 +296,8 @@ DccObject { weight: 40 pageType: DccObject.Item page: NetButton { + Accessible.name: "Cancel_2" + Accessible.role: Accessible.Button text: qsTr("Cancel") onClicked: { root.finished() @@ -292,6 +311,8 @@ DccObject { enabled: root.modified pageType: DccObject.Item page: NetButton { + Accessible.name: "Save" + Accessible.role: Accessible.Button text: qsTr("Save") onClicked: { if (!sectionGeneric.checkInput() || !sectionVPN.checkInput() || !sectionIPv4.checkInput() || !sectionIPv6.checkInput() || !sectionDNS.checkInput()) { diff --git a/dcc-network/qml/PageWiredDevice.qml b/dcc-network/qml/PageWiredDevice.qml index db5b4e6e7..8a9ab4a4c 100644 --- a/dcc-network/qml/PageWiredDevice.qml +++ b/dcc-network/qml/PageWiredDevice.qml @@ -26,6 +26,8 @@ DccObject { weight: 1010 + netItem.pathIndex pageType: DccObject.MenuEditor page: DeviceStatusItem { + Accessible.name: "PageWiredDevice_DeviceStatusItem" + Accessible.role: Accessible.Grouping netItem: root.netItem connectedNameVisible: false statusVisible: true @@ -48,6 +50,8 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: DeviceStatusItem { + Accessible.name: "PageWiredDevice_DeviceStatusItem_2" + Accessible.role: Accessible.Grouping netItem: root.netItem statusVisible: false } @@ -85,6 +89,7 @@ DccObject { } delegate: ItemDelegate { + Accessible.name: "ItemDelegate_4" id: itemDelegate height: 36 text: model.item.name @@ -131,6 +136,8 @@ DccObject { && !itemDelegate.hovered } NetButton { + Accessible.name: "ModelItemStatus_2" + Accessible.role: Accessible.Button implicitHeight: implicitContentHeight - 4 topInset: -4 bottomInset: -4 @@ -280,6 +287,8 @@ DccObject { } } PageSettings { + Accessible.name: "WiredSettings" + Accessible.role: Accessible.Grouping id: wiredSettings name: "wiredSettings" parentName: root.name + "/page/body/networkList" @@ -330,6 +339,8 @@ DccObject { weight: 40 pageType: DccObject.Item page: NetButton { + Accessible.name: "DccObjDisplayName_3" + Accessible.role: Accessible.Button text: dccObj.displayName Layout.alignment: Qt.AlignRight onClicked: { diff --git a/dcc-network/qml/PageWirelessDevice.qml b/dcc-network/qml/PageWirelessDevice.qml index 9706e8ed5..4d03cf586 100644 --- a/dcc-network/qml/PageWirelessDevice.qml +++ b/dcc-network/qml/PageWirelessDevice.qml @@ -28,6 +28,8 @@ DccObject { weight: 2010 + netItem.pathIndex pageType: DccObject.MenuEditor page: DeviceStatusItem{ + Accessible.name: "PageWirelessDevice_DeviceStatusItem" + Accessible.role: Accessible.Grouping netItem: root.netItem connectedNameVisible: true statusVisible: true @@ -49,6 +51,7 @@ DccObject { DelegateChoice { roleValue: NetType.WirelessItem delegate: ItemDelegate { + Accessible.name: "ItemDelegate_3" id: itemDelegate height: 36 text: model.item.name @@ -95,6 +98,8 @@ DccObject { && !itemDelegate.hovered } NetButton { + Accessible.name: "ModelItemStatus" + Accessible.role: Accessible.Button implicitHeight: implicitContentHeight - 4 topInset: -4 bottomInset: -4 @@ -246,6 +251,7 @@ DccObject { DelegateChoice { roleValue: NetType.WirelessHiddenItem delegate: ItemDelegate { + Accessible.name: "Repeater_ItemDelegate" implicitHeight: 36 checked: true backgroundVisible: false @@ -282,6 +288,8 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: DeviceStatusItem{ + Accessible.name: "PageWirelessDevice_DeviceStatusItem_2" + Accessible.role: Accessible.Grouping netItem: root.netItem statusVisible: false } @@ -407,6 +415,8 @@ DccObject { } } PageSettings { + Accessible.name: "WirelessSettings" + Accessible.role: Accessible.Grouping id: wirelessSettings name: "wirelessSettings" parentName: root.name + "/page/otherNetwork" diff --git a/dcc-network/qml/SectionDNS.qml b/dcc-network/qml/SectionDNS.qml index a4775115d..9332952d2 100644 --- a/dcc-network/qml/SectionDNS.qml +++ b/dcc-network/qml/SectionDNS.qml @@ -176,6 +176,7 @@ DccObject { page: RowLayout { D.LineEdit { text: root.config[index] + Accessible.name: "DnsEdit_" + index // 移除正则验证器,改用手动验证以支持IPv6 // 显式允许所有字符输入,包括冒号 inputMethodHints: Qt.ImhNone diff --git a/dcc-network/qml/SectionDevice.qml b/dcc-network/qml/SectionDevice.qml index a0a6b4798..2a98c9dbf 100644 --- a/dcc-network/qml/SectionDevice.qml +++ b/dcc-network/qml/SectionDevice.qml @@ -107,6 +107,7 @@ DccTitleObject { canSearch: false pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionDevice_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -167,6 +168,7 @@ DccTitleObject { canSearch: false pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionDevice_Switch" checked: hasMTU onClicked: { hasMTU = checked @@ -183,6 +185,7 @@ DccTitleObject { visible: hasMTU pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionDevice_SpinBox" editable: true from: 1280 to: 9000 diff --git a/dcc-network/qml/SectionGeneric.qml b/dcc-network/qml/SectionGeneric.qml index d470b8fda..cf8c4a972 100644 --- a/dcc-network/qml/SectionGeneric.qml +++ b/dcc-network/qml/SectionGeneric.qml @@ -85,6 +85,7 @@ DccTitleObject { weight: 20 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionGeneric_Switch" checked: !root.config.hasOwnProperty("autoconnect") || root.config.autoconnect onClicked: { root.config.autoconnect = checked @@ -101,6 +102,7 @@ DccTitleObject { visible: type === NetType.WirelessItem pageType: DccObject.Editor page: ComboBox { + Accessible.name: "SectionGeneric_ComboBox" flat: true textRole: "text" valueRole: "value" diff --git a/dcc-network/qml/SectionIPv4.qml b/dcc-network/qml/SectionIPv4.qml index 390f8bb4a..034438116 100644 --- a/dcc-network/qml/SectionIPv4.qml +++ b/dcc-network/qml/SectionIPv4.qml @@ -225,6 +225,7 @@ DccObject { canSearch: false pageType: DccObject.Editor page: ComboBox { + Accessible.name: "SectionIpv4_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -259,6 +260,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionIpv4_Switch" checked: root.neverDefault onClicked: { root.neverDefault = checked @@ -289,6 +291,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: ComboBox { + Accessible.name: "SectionIpv4_ComboBox_2" flat: true textRole: "text" valueRole: "value" diff --git a/dcc-network/qml/SectionIPv6.qml b/dcc-network/qml/SectionIPv6.qml index 8424be977..4c957fc00 100644 --- a/dcc-network/qml/SectionIPv6.qml +++ b/dcc-network/qml/SectionIPv6.qml @@ -228,6 +228,7 @@ DccObject { canSearch: false pageType: DccObject.Editor page: ComboBox { + Accessible.name: "SectionIpv6_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -262,6 +263,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionIpv6_Switch" checked: root.neverDefault onClicked: { root.neverDefault = checked @@ -291,6 +293,7 @@ DccObject { backgroundType: DccObject.Normal pageType: DccObject.Editor page: ComboBox { + Accessible.name: "SectionIpv6_ComboBox_2" flat: true textRole: "text" valueRole: "value" @@ -438,6 +441,7 @@ DccObject { canSearch: false pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionIpv6_SpinBox" editable: true value: root.addressData.length > index ? root.addressData[index].prefix : 64 from: 0 diff --git a/dcc-network/qml/SectionPPP.qml b/dcc-network/qml/SectionPPP.qml index 2fdfd8ed7..f4eb73ad9 100644 --- a/dcc-network/qml/SectionPPP.qml +++ b/dcc-network/qml/SectionPPP.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -39,6 +39,7 @@ DccTitleObject { Component { id: switchItem D.Switch { + Accessible.name: "Component_Switch_3" checked: root.config.hasOwnProperty(dccObj.name) && root.config[dccObj.name] onClicked: { root.config[dccObj.name] = checked @@ -61,6 +62,7 @@ DccTitleObject { weight: 10 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionPpp_Switch" checked: mppe onClicked: { mppe = checked @@ -184,6 +186,7 @@ DccTitleObject { weight: 140 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionPpp_Switch_2" checked: root.config["lcp-echo-failure"] === 5 && root.config["lcp-echo-interval"] === 30 onClicked: { if (checked) { diff --git a/dcc-network/qml/SectionPPPOE.qml b/dcc-network/qml/SectionPPPOE.qml index b532955aa..385090c89 100644 --- a/dcc-network/qml/SectionPPPOE.qml +++ b/dcc-network/qml/SectionPPPOE.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -97,6 +97,8 @@ DccTitleObject { weight: 30 pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "Password" + Accessible.role: Accessible.EditableText dataItem: root text: root.config.hasOwnProperty("password") ? root.config.password : "" onTextUpdated: root.config.password = text diff --git a/dcc-network/qml/SectionSecret.qml b/dcc-network/qml/SectionSecret.qml index 2047670bf..e3b24f143 100644 --- a/dcc-network/qml/SectionSecret.qml +++ b/dcc-network/qml/SectionSecret.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -337,6 +337,7 @@ DccTitleObject { visible: root.type === NetType.WirelessItem || root.type === NetType.WirelessHiddenItem pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionSecret_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -375,6 +376,7 @@ DccTitleObject { visible: root.type === NetType.WiredItem pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionSecret_Switch" checked: root.keyMgmt === "wpa-eap" onClicked: { if ((root.keyMgmt === "wpa-eap") !== checked) { @@ -393,6 +395,7 @@ DccTitleObject { visible: root.keyMgmt === "wpa-eap" pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionSecret_ComboBox_2" flat: true textRole: "text" valueRole: "value" @@ -446,6 +449,7 @@ DccTitleObject { visible: root.keyMgmt !== "" pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionSecret_ComboBox_3" flat: true textRole: "text" valueRole: "value" @@ -478,6 +482,8 @@ DccTitleObject { visible: root.keyMgmt !== "" && root.pwdFlays !== 2 pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "RootPwdStr" + Accessible.role: Accessible.EditableText text: root.pwdStr dataItem: root onTextUpdated: root.pwdStr = text @@ -492,6 +498,7 @@ DccTitleObject { visible: root.keyMgmt === "none" pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionSecret_ComboBox_4" flat: true textRole: "text" valueRole: "value" @@ -521,6 +528,8 @@ DccTitleObject { visible: root.keyMgmt === "wpa-eap" && root.eapType === "tls" pageType: DccObject.Editor page: NetFileChooseEdit { + Accessible.name: "PrivateKey" + Accessible.role: Accessible.EditableText dataItem: root placeholderText: qsTr("Required") text: root.config802_1x && root.config802_1x.hasOwnProperty("private-key") ? removeTrailingNull(root.config802_1x["private-key"]) : "" @@ -554,6 +563,7 @@ DccTitleObject { visible: root.keyMgmt === "wpa-eap" && root.eapType === "fast" pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionSecret_ComboBox_5" flat: true textRole: "text" valueRole: "value" @@ -592,6 +602,8 @@ DccTitleObject { weight: 110 pageType: DccObject.Editor page: NetFileChooseEdit { + Accessible.name: "SectionSecret_NetFileChooseEdit" + Accessible.role: Accessible.EditableText dataItem: root text: root.config802_1x && root.config802_1x.hasOwnProperty(dccObj.name) ? removeTrailingNull(root.config802_1x[dccObj.name]) : "" onTextUpdated: root.config802_1x[dccObj.name] = text @@ -606,6 +618,8 @@ DccTitleObject { visible: root.keyMgmt === "wpa-eap" && (root.eapType === "tls" || root.eapType === "ttls" || root.eapType === "peap") pageType: DccObject.Editor page: NetFileChooseEdit { + Accessible.name: "SectionSecret_NetFileChooseEdit_2" + Accessible.role: Accessible.EditableText dataItem: root text: root.config802_1x && root.config802_1x.hasOwnProperty(dccObj.name) ? removeTrailingNull(root.config802_1x[dccObj.name]) : "" onTextUpdated: root.config802_1x[dccObj.name] = text @@ -620,6 +634,8 @@ DccTitleObject { visible: root.keyMgmt === "wpa-eap" && root.eapType === "tls" pageType: DccObject.Editor page: NetFileChooseEdit { + Accessible.name: "Required" + Accessible.role: Accessible.EditableText dataItem: root placeholderText: qsTr("Required") text: root.config802_1x && root.config802_1x.hasOwnProperty(dccObj.name) ? removeTrailingNull(root.config802_1x[dccObj.name]) : "" @@ -635,6 +651,7 @@ DccTitleObject { visible: root.keyMgmt === "wpa-eap" && root.eapType === "peap" pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionSecret_ComboBox_6" flat: true textRole: "text" valueRole: "value" @@ -670,6 +687,7 @@ DccTitleObject { visible: root.keyMgmt === "wpa-eap" && (root.eapType === "fast" || root.eapType === "ttls" || root.eapType === "peap") pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionSecret_ComboBox_7" flat: true textRole: "text" valueRole: "value" diff --git a/dcc-network/qml/SectionVPN.qml b/dcc-network/qml/SectionVPN.qml index d98fcb373..33b36a937 100644 --- a/dcc-network/qml/SectionVPN.qml +++ b/dcc-network/qml/SectionVPN.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -355,6 +355,7 @@ DccTitleObject { RowLayout { D.LineEdit { id: fileEdit + Accessible.name: "VpnFileEdit" text: root.dataMap.hasOwnProperty(dccObj.name) ? NetUtils.removeTrailingNull(root.dataMap[dccObj.name]) : "" onTextChanged: { if (showAlert) { @@ -375,6 +376,8 @@ DccTitleObject { } } NetButton { + Accessible.name: "Component_NetButton" + Accessible.role: Accessible.Button text: "..." onClicked: { fileDialog.createObject(this, { @@ -389,6 +392,7 @@ DccTitleObject { RowLayout { D.LineEdit { id: fileEdit + Accessible.name: "VpnRequiredFileEdit" placeholderText: qsTr("Required") text: root.dataMap.hasOwnProperty(dccObj.name) ? NetUtils.removeTrailingNull(root.dataMap[dccObj.name]) : "" onTextChanged: { @@ -410,6 +414,8 @@ DccTitleObject { } } NetButton { + Accessible.name: "Component_NetButton_2" + Accessible.role: Accessible.Button text: "..." onClicked: { fileDialog.createObject(this, { @@ -422,6 +428,7 @@ DccTitleObject { Component { id: gatewayLineEdit D.LineEdit { + Accessible.name: "VpnGatewayEdit" placeholderText: qsTr("Required") text: root.dataMap.hasOwnProperty(dccObj.name) ? root.dataMap[dccObj.name] : "" onTextChanged: { @@ -448,6 +455,7 @@ DccTitleObject { id: requiredLineEdit D.LineEdit { placeholderText: qsTr("Required") + Accessible.name: "VpnRequiredEdit" text: root.dataMap.hasOwnProperty(dccObj.name) ? root.dataMap[dccObj.name] : "" onTextChanged: { if (showAlert) { @@ -472,6 +480,7 @@ DccTitleObject { id: lineEdit D.LineEdit { text: root.dataMap.hasOwnProperty(dccObj.name) ? root.dataMap[dccObj.name] : "" + Accessible.name: "VpnLineEdit" onTextChanged: { if (showAlert) { errorKey = "" @@ -494,6 +503,7 @@ DccTitleObject { Component { id: switchItem D.Switch { + Accessible.name: "Component_Switch_4" checked: root.dataMap.hasOwnProperty(dccObj.name) && root.dataMap[dccObj.name] === "yes" onClicked: { if (checked) { @@ -594,6 +604,7 @@ DccTitleObject { visible: root.vpnType & (NetUtils.VpnTypeEnum["strongswan"]) pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox" flat: true textRole: "text" valueRole: "value" @@ -633,6 +644,7 @@ DccTitleObject { page: RowLayout { D.LineEdit { id: usercertEdit + Accessible.name: "VpnUserCertEdit" placeholderText: root.vpnType === NetUtils.VpnTypeEnum["strongswan"] ? "" : qsTr("Required") text: root.dataMap.hasOwnProperty(dccObj.name) ? NetUtils.removeTrailingNull(root.dataMap[dccObj.name]) : "" onTextChanged: { @@ -654,6 +666,8 @@ DccTitleObject { } } NetButton { + Accessible.name: "SectionVpn_NetButton" + Accessible.role: Accessible.Button text: "..." onClicked: { fileDialog.createObject(this, { @@ -674,6 +688,7 @@ DccTitleObject { page: RowLayout { D.LineEdit { id: userkeyEdit + Accessible.name: "VpnUserKeyEdit" placeholderText: root.vpnType === NetUtils.VpnTypeEnum["strongswan"] ? "" : qsTr("Required") text: root.dataMap.hasOwnProperty(dccObj.name) ? NetUtils.removeTrailingNull(root.dataMap[dccObj.name]) : "" onTextChanged: { @@ -695,6 +710,8 @@ DccTitleObject { } } NetButton { + Accessible.name: "SectionVpn_NetButton_2" + Accessible.role: Accessible.Button text: "..." onClicked: { fileDialog.createObject(this, { @@ -743,6 +760,7 @@ DccTitleObject { visible: root.vpnType & (NetUtils.VpnTypeEnum["openvpn"]) pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_2" flat: true textRole: "text" valueRole: "value" @@ -796,6 +814,7 @@ DccTitleObject { visible: (root.vpnType & (NetUtils.VpnTypeEnum["l2tp"] | NetUtils.VpnTypeEnum["pptp"])) || (root.vpnType & (NetUtils.VpnTypeEnum["openvpn"])) && (root.dataMap["connection-type"] === "password" || root.dataMap["connection-type"] === "password-tls") pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_3" flat: true textRole: "text" valueRole: "value" @@ -834,6 +853,8 @@ DccTitleObject { visible: ((root.vpnType & NetUtils.VpnTypeEnum["strongswan"]) && (root.dataMap["method"] === "eap" || root.dataMap["method"] === "psk")) || (root.dataMap["password-flags"] === "0" && ((root.vpnType & (NetUtils.VpnTypeEnum["l2tp"] | NetUtils.VpnTypeEnum["pptp"])) || (root.vpnType & (NetUtils.VpnTypeEnum["openvpn"])) && (root.dataMap["connection-type"] === "password" || root.dataMap["connection-type"] === "password-tls"))) pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "RootSecretMapHasOwnPropertydccObjNamerootSecretMap" + Accessible.role: Accessible.EditableText dataItem: root text: root.secretMap.hasOwnProperty(dccObj.name) ? root.secretMap[dccObj.name] : "" onTextUpdated: root.secretMap[dccObj.name] = text @@ -868,6 +889,7 @@ DccTitleObject { visible: (root.vpnType & (NetUtils.VpnTypeEnum["openvpn"])) && (root.dataMap["connection-type"] === "password-tls" || root.dataMap["connection-type"] === "tls") pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_4" flat: true textRole: "text" valueRole: "value" @@ -898,6 +920,8 @@ DccTitleObject { visible: root.dataMap["cert-pass-flags"] === "0" && (root.vpnType & (NetUtils.VpnTypeEnum["openvpn"])) && (root.dataMap["connection-type"] === "password-tls" || root.dataMap["connection-type"] === "tls") pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "RootSecretMapHasOwnPropertydccObjNamerootSecretMap_2" + Accessible.role: Accessible.EditableText dataItem: root text: root.secretMap.hasOwnProperty(dccObj.name) ? root.secretMap[dccObj.name] : "" onTextUpdated: root.secretMap[dccObj.name] = text @@ -922,6 +946,7 @@ DccTitleObject { visible: (root.vpnType & (NetUtils.VpnTypeEnum["openvpn"])) && (root.dataMap["connection-type"] === "static-key") pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch" checked: root.dataMap.hasOwnProperty("static-key-direction") onClicked: { if (checked) { @@ -942,6 +967,7 @@ DccTitleObject { visible: root.dataMap.hasOwnProperty(this.name) && (root.vpnType & (NetUtils.VpnTypeEnum["openvpn"])) && (root.dataMap["connection-type"] === "static-key") pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_5" flat: true textRole: "text" valueRole: "value" @@ -1033,6 +1059,7 @@ DccTitleObject { visible: root.vpnType & (NetUtils.VpnTypeEnum["strongswan"]) pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_2" checked: root.dataMap.hasOwnProperty(dccObj.name) ? root.dataMap[dccObj.name] === "yes" : false onClicked: { root.dataMap[dccObj.name] = checked ? "yes" : "no" @@ -1090,6 +1117,7 @@ DccTitleObject { visible: root.vpnType & (NetUtils.VpnTypeEnum["vpnc"]) pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_6" flat: true textRole: "text" valueRole: "value" @@ -1121,6 +1149,8 @@ DccTitleObject { visible: root.dataMap["Xauth password-flags"] === "0" && (root.vpnType & (NetUtils.VpnTypeEnum["vpnc"])) pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "RootSecretMapHasOwnPropertydccObjNamerootSecretMap_3" + Accessible.role: Accessible.EditableText dataItem: root text: root.secretMap.hasOwnProperty(dccObj.name) ? root.secretMap[dccObj.name] : "" onTextUpdated: root.secretMap[dccObj.name] = text @@ -1145,6 +1175,7 @@ DccTitleObject { visible: root.vpnType & (NetUtils.VpnTypeEnum["vpnc"]) pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_7" flat: true textRole: "text" valueRole: "value" @@ -1176,6 +1207,8 @@ DccTitleObject { visible: root.dataMap["IPSec secret-flags"] === "0" && (root.vpnType & (NetUtils.VpnTypeEnum["vpnc"])) pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "RootSecretMapHasOwnPropertydccObjNamerootSecretMap_4" + Accessible.role: Accessible.EditableText dataItem: root text: root.secretMap.hasOwnProperty(dccObj.name) ? root.secretMap[dccObj.name] : "" onTextUpdated: root.secretMap[dccObj.name] = text @@ -1190,6 +1223,7 @@ DccTitleObject { visible: root.vpnType & (NetUtils.VpnTypeEnum["vpnc"]) pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_3" checked: root.dataMap.hasOwnProperty(dccObj.name) && root.dataMap[dccObj.name] === "hybrid" onClicked: { if (checked) { @@ -1239,6 +1273,7 @@ DccTitleObject { weight: 10 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_4" checked: mppe onClicked: { mppe = checked @@ -1255,6 +1290,7 @@ DccTitleObject { visible: mppe pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_8" flat: true textRole: "text" valueRole: "value" @@ -1395,6 +1431,7 @@ DccTitleObject { weight: 140 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_5" checked: root.dataMap["lcp-echo-failure"] === "5" && root.dataMap["lcp-echo-interval"] === "30" onClicked: { if (checked) { @@ -1511,6 +1548,7 @@ DccTitleObject { weight: 10 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_6" checked: root.dataMap.hasOwnProperty("port") onClicked: { if (checked) { @@ -1532,6 +1570,7 @@ DccTitleObject { visible: root.dataMap.hasOwnProperty("port") pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionVpn_SpinBox" editable: true value: root.dataMap.hasOwnProperty(dccObj.name) ? parseInt(root.dataMap[dccObj.name], 10) : 1194 from: 0 @@ -1555,6 +1594,7 @@ DccTitleObject { weight: 30 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_7" checked: root.dataMap.hasOwnProperty("reneg-seconds") onClicked: { if (checked) { @@ -1576,6 +1616,7 @@ DccTitleObject { visible: root.dataMap.hasOwnProperty("reneg-seconds") pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionVpn_SpinBox_2" editable: true value: root.dataMap.hasOwnProperty(dccObj.name) ? parseInt(root.dataMap[dccObj.name], 10) : 0 from: 0 @@ -1599,6 +1640,7 @@ DccTitleObject { weight: 50 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_8" checked: root.dataMap["comp-lzo"] === "yes" || root.dataMap["comp-lzo"] === "adaptive" onClicked: { if (checked) { @@ -1637,6 +1679,7 @@ DccTitleObject { weight: 80 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_9" checked: root.dataMap.hasOwnProperty("tunnel-mtu") onClicked: { if (checked) { @@ -1658,6 +1701,7 @@ DccTitleObject { visible: root.dataMap.hasOwnProperty("tunnel-mtu") pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionVpn_SpinBox_3" editable: true value: root.dataMap.hasOwnProperty(dccObj.name) ? parseInt(root.dataMap[dccObj.name], 10) : 1500 from: 1280 @@ -1681,6 +1725,7 @@ DccTitleObject { weight: 100 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_10" checked: root.dataMap.hasOwnProperty("fragment-size") onClicked: { if (checked) { @@ -1702,6 +1747,7 @@ DccTitleObject { visible: root.dataMap.hasOwnProperty("fragment-size") pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionVpn_SpinBox_4" editable: true value: root.dataMap.hasOwnProperty(dccObj.name) ? parseInt(root.dataMap[dccObj.name], 10) : 1300 from: 0 @@ -1770,6 +1816,7 @@ DccTitleObject { weight: 20 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_9" flat: true textRole: "text" valueRole: "value" @@ -1805,6 +1852,7 @@ DccTitleObject { weight: 40 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_10" flat: true textRole: "text" valueRole: "value" @@ -1834,6 +1882,7 @@ DccTitleObject { weight: 50 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_11" flat: true textRole: "text" valueRole: "value" @@ -1866,6 +1915,7 @@ DccTitleObject { weight: 60 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_12" flat: true textRole: "text" valueRole: "value" @@ -1895,6 +1945,7 @@ DccTitleObject { weight: 70 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_13" flat: true textRole: "text" valueRole: "value" @@ -1930,6 +1981,7 @@ DccTitleObject { weight: 80 pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionVpn_SpinBox_5" editable: true value: root.dataMap.hasOwnProperty(dccObj.name) ? parseInt(root.dataMap[dccObj.name], 10) : 0 from: 0 @@ -1953,6 +2005,7 @@ DccTitleObject { weight: 90 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_11" checked: root.dataMap[dccObj.name] === "0" onClicked: { if (checked) { @@ -1990,6 +2043,7 @@ DccTitleObject { weight: 10 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_14" flat: true textRole: "text" valueRole: "value" @@ -2064,6 +2118,7 @@ DccTitleObject { weight: 20 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_15" flat: true textRole: "text" valueRole: "value" @@ -2132,6 +2187,7 @@ DccTitleObject { weight: 10 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_16" flat: true textRole: "text" valueRole: "value" @@ -2173,6 +2229,7 @@ DccTitleObject { visible: root.dataMap["proxy-type"] !== "none" pageType: DccObject.Editor page: D.SpinBox { + Accessible.name: "SectionVpn_SpinBox_6" editable: true value: root.dataMap.hasOwnProperty(dccObj.name) ? parseInt(root.dataMap[dccObj.name], 10) : 0 from: 0 @@ -2220,6 +2277,8 @@ DccTitleObject { visible: root.dataMap["proxy-type"] === "http" pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "RootSecretMapHasOwnPropertydccObjNamerootSecretMap_5" + Accessible.role: Accessible.EditableText text: root.secretMap.hasOwnProperty(dccObj.name) ? root.secretMap[dccObj.name] : "" dataItem: root onTextUpdated: root.secretMap[dccObj.name] = text @@ -2260,6 +2319,7 @@ DccTitleObject { weight: 20 pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_17" flat: true textRole: "text" valueRole: "value" @@ -2302,6 +2362,7 @@ DccTitleObject { weight: 40 pageType: DccObject.Editor page: D.Switch { + Accessible.name: "SectionVpn_Switch_12" checked: root.dataMap.hasOwnProperty("ta-dir") onClicked: { if (checked) { @@ -2323,6 +2384,7 @@ DccTitleObject { visible: root.dataMap.hasOwnProperty(this.name) pageType: DccObject.Editor page: D.ComboBox { + Accessible.name: "SectionVpn_ComboBox_18" flat: true textRole: "text" valueRole: "value" diff --git a/dcc-network/qml/SystemProxyConfigItem.qml b/dcc-network/qml/SystemProxyConfigItem.qml index 59a07af9e..b303949d8 100644 --- a/dcc-network/qml/SystemProxyConfigItem.qml +++ b/dcc-network/qml/SystemProxyConfigItem.qml @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd. // SPDX-License-Identifier: GPL-3.0-or-later import QtQuick 2.15 import QtQuick.Controls 2.15 @@ -91,6 +91,7 @@ DccObject { weight: 30 pageType: DccObject.Editor page: Switch { + Accessible.name: "SystemProxyConfigItem_Switch" checked: root.config.auth onClicked: { if (root.config.auth !== checked) { @@ -138,6 +139,8 @@ DccObject { weight: 50 pageType: DccObject.Editor page: NetPasswordEdit { + Accessible.name: "RootConfigPassword" + Accessible.role: Accessible.EditableText dataItem: root text: root.config.password onTextUpdated: root.config.password = text diff --git a/dock-hotspot-plugin/quickpanel.cpp b/dock-hotspot-plugin/quickpanel.cpp index 4ce4bf0d1..5f9dd242e 100644 --- a/dock-hotspot-plugin/quickpanel.cpp +++ b/dock-hotspot-plugin/quickpanel.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2023 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -17,6 +17,8 @@ QuickPanel::QuickPanel(QWidget *parent) m_text(new DLabel(this)) { connect(m_icon,&DIconButton::clicked,this,&QuickPanel::iconClicked); + m_icon->setObjectName("HotspotQuickPanelIcon"); + m_icon->setAccessibleName("HotspotQuickPanelIcon"); initUi(); } diff --git a/dock-network-plugin/quickpanelwidget.cpp b/dock-network-plugin/quickpanelwidget.cpp index e61f7c41e..1a907ea60 100644 --- a/dock-network-plugin/quickpanelwidget.cpp +++ b/dock-network-plugin/quickpanelwidget.cpp @@ -1,5 +1,5 @@ // Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd. -// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2018 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later @@ -69,6 +69,8 @@ QuickPanelWidget::QuickPanelWidget(QWidget *parent) , m_stateLabel(new DLabel(this)) , m_expandLabel(new DIconButton(this)) { + m_expandLabel->setObjectName("ExpandLabel"); + m_expandLabel->setAccessibleName("ExpandLabel"); initUi(); initConnection(); } diff --git a/dss_example/dsstestwidget.cpp b/dss_example/dsstestwidget.cpp index b78e0b406..79e37aa2b 100644 --- a/dss_example/dsstestwidget.cpp +++ b/dss_example/dsstestwidget.cpp @@ -26,6 +26,8 @@ DssTestWidget::DssTestWidget(dde::network::NetworkPlugin *networkPlugin, QWidget { QWidget *iconWidget = new QWidget(this); m_iconButton = new DFloatingButton(iconWidget); + m_iconButton->setObjectName("IconButton"); + m_iconButton->setAccessibleName("IconButton"); m_iconButton->setIconSize(QSize(26, 26)); m_iconButton->setFixedSize(QSize(52, 52)); m_iconButton->setAutoExclusive(true); diff --git a/net-view/window/private/netdelegate.cpp b/net-view/window/private/netdelegate.cpp index 5b55b4696..fa5372ef2 100644 --- a/net-view/window/private/netdelegate.cpp +++ b/net-view/window/private/netdelegate.cpp @@ -506,6 +506,8 @@ NetDeviceWidget::NetDeviceWidget(NetDeviceItem *item, QWidget *parent) : NetWidget(item, parent) , m_switchBut(new DSwitchButton(this)) { + m_switchBut->setObjectName("SwitchBut"); + m_switchBut->setAccessibleName("SwitchBut"); QWidget *widget = new QWidget(this); widget->setFixedHeight(36); QHBoxLayout *layout = new QHBoxLayout(widget); @@ -620,6 +622,8 @@ NetWirelessWidget::NetWirelessWidget(NetWirelessItem *item, QWidget *parent) , m_loading(new DSpinner(this)) , m_status(dde::network::NetType::NetConnectionStatus::CS_UnConnected) { + m_disconnectBtn->setObjectName("DisconnectBtn_2"); + m_disconnectBtn->setAccessibleName("DisconnectBtn_2"); QWidget *widget = new QWidget(this); if (item->hasConnection()) { widget->setFixedHeight(36); diff --git a/net-view/window/private/netsecretwidget.cpp b/net-view/window/private/netsecretwidget.cpp index 04922b22b..795851d44 100644 --- a/net-view/window/private/netsecretwidget.cpp +++ b/net-view/window/private/netsecretwidget.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2019 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2019 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: LGPL-3.0-or-later #include "netsecretwidget.h" @@ -78,6 +78,8 @@ void NetSecretWidget::initUI(const QVariantMap ¶m) lineEdit->setPlaceholderText(m_secretKeyStrMap.value(key)); } lineEdit->lineEdit()->setMaxLength(256); + lineEdit->setObjectName("SecretLineEdit_" + key); + lineEdit->setAccessibleName("SecretLineEdit_" + key); lineEdit->setContextMenuPolicy(Qt::NoContextMenu); if (!focusWidget && lineEdit->text().isEmpty()) focusWidget = lineEdit; @@ -89,6 +91,10 @@ void NetSecretWidget::initUI(const QVariantMap ¶m) } DPushButton *cancelButtion = new DPushButton(tr("Cancel", "button"), this); // 取消 DPushButton *connectButton = new DSuggestButton(tr("Connect", "button"), this); // 连接 + cancelButtion->setObjectName("SecretCancelBtn"); + cancelButtion->setAccessibleName("SecretCancelBtn"); + connectButton->setObjectName("SecretConnectBtn"); + connectButton->setAccessibleName("SecretConnectBtn"); QHBoxLayout *butLayout = new QHBoxLayout; cancelButtion->setAutoDefault(true); connectButton->setAutoDefault(true); diff --git a/network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.cpp b/network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.cpp index 837b0131c..1dc245b04 100644 --- a/network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.cpp +++ b/network-service-plugin/dde-network-secret-dialog/src/networksecretdialog.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2011 - 2022 UnionTech Software Technology Co., Ltd. +// SPDX-FileCopyrightText: 2011 - 2026 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -125,6 +125,8 @@ void NetworkSecretDialog::initUI() lineEdit->setClearButtonEnabled(true); lineEdit->setCopyEnabled(false); lineEdit->setCutEnabled(false); + lineEdit->setObjectName("SecretDialogLineEdit_" + secret); + lineEdit->setAccessibleName("SecretDialogLineEdit_" + secret); gridLayout->addWidget(new QLabel(label + ":"), row, 0); gridLayout->addWidget(lineEdit, row, 1); m_lineEditList.append(lineEdit); diff --git a/tests/at/spi/apply_qml_fixes.py b/tests/at/spi/apply_qml_fixes.py new file mode 100644 index 000000000..08b18422c --- /dev/null +++ b/tests/at/spi/apply_qml_fixes.py @@ -0,0 +1,145 @@ +#!/usr/bin/env python3 +# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd. +# SPDX-License-Identifier: LGPL-3.0-or-later +"""Apply AT-SPI Accessible.name (and Accessible.role for custom types) to QML files.""" +import sys +import yaml +import re +from pathlib import Path +from collections import defaultdict + +# Standard QML types that have implicit Accessible.role — only need name +STANDARD_TYPES = { + 'Switch', 'Button', 'ComboBox', 'SpinBox', 'ItemDelegate', + 'TextInput', 'TextArea', 'MenuItem', 'Menu', + 'TextField', 'CheckBox', 'RadioButton', 'Slider', 'ProgressBar', + 'ScrollView', 'TabBar', 'TabButton', 'ToolButton', 'DelayButton', +} + +# Role mapping for custom (non-standard) QML component types +CUSTOM_ROLE_MAP = { + 'NetButton': 'Accessible.Button', + 'NetPasswordEdit': 'Accessible.EditableText', + 'NetFileChooseEdit': 'Accessible.EditableText', + 'NetItemEditor': 'Accessible.Button', + 'DeviceStatusItem': 'Accessible.Grouping', + 'SystemProxyConfigItem': 'Accessible.Grouping', + 'SectionGeneric': 'Accessible.Grouping', + 'SectionIPv4': 'Accessible.Grouping', + 'SectionIPv6': 'Accessible.Grouping', + 'SectionDNS': 'Accessible.Grouping', + 'SectionDevice': 'Accessible.Grouping', + 'SectionVPN': 'Accessible.Grouping', + 'SectionSecret': 'Accessible.Grouping', + 'SectionPPPOE': 'Accessible.Grouping', + 'SectionPPP': 'Accessible.Grouping', + 'PageAirplane': 'Accessible.Grouping', + 'PageWiredDevice': 'Accessible.Grouping', + 'PageWirelessDevice': 'Accessible.Grouping', + 'PageVPN': 'Accessible.Grouping', + 'PageVPNSettings': 'Accessible.Grouping', + 'PageDSL': 'Accessible.Grouping', + 'PageDSLSettings': 'Accessible.Grouping', + 'PageHotspot': 'Accessible.Grouping', + 'PageSystemProxy': 'Accessible.Grouping', + 'PageAppProxy': 'Accessible.Grouping', + 'PageDetails': 'Accessible.Grouping', + 'PageSettings': 'Accessible.Grouping', +} + + +def find_opening_brace(lines, start_idx): + """Find the line index containing the opening '{' for an element starting at start_idx.""" + # The element type might span multiple lines before the { + # Accumulate text from start_idx until we find a { + brace_depth = 0 + found_brace = False + for i in range(start_idx, min(start_idx + 5, len(lines))): + line = lines[i] + # Check if this line has the opening brace + # We need to handle cases like "D.Switch {" or "ComboBox {" + if '{' in line: + return i + return start_idx # fallback + + +def apply_fixes(gaps_file, src_dir): + with open(gaps_file) as f: + data = yaml.safe_load(f) + + gaps = data['gaps'] + # Group by source file + by_file = defaultdict(list) + for g in gaps: + by_file[g['source_file']].append(g) + + total_fixed = 0 + total_skipped = 0 + + for rel_path, file_gaps in sorted(by_file.items()): + file_path = Path(src_dir) / rel_path + if not file_path.exists(): + print(f" SKIP (not found): {rel_path}") + total_skipped += len(file_gaps) + continue + + with open(file_path, 'r') as f: + lines = f.readlines() + + # Sort gaps by line number in descending order so insertions don't shift earlier gaps + file_gaps_sorted = sorted(file_gaps, key=lambda g: g['line'], reverse=True) + + for gap in file_gaps_sorted: + line_num = gap['line'] # 1-indexed + element_type = gap['element_type'] + suggested_name = gap['suggested_name'] + role = gap.get('role', '') + + line_idx = line_num - 1 # 0-indexed + + # Find the opening brace + brace_idx = find_opening_brace(lines, line_idx) + if brace_idx >= len(lines): + print(f" SKIP (no brace): {rel_path}:{line_num} {element_type}") + total_skipped += 1 + continue + + # Determine indentation from the brace line + brace_line = lines[brace_idx] + indent = '' + for ch in brace_line: + if ch in ' \t': + indent += ch + else: + break + # Child indent = parent indent + 4 spaces + child_indent = indent + ' ' + + # Build the properties to insert + props = [] + props.append(f'{child_indent}Accessible.name: "{suggested_name}"\n') + + # Add role for custom types (non-standard or empty role) + if element_type not in STANDARD_TYPES or not role: + custom_role = CUSTOM_ROLE_MAP.get(element_type, 'Accessible.Grouping') + props.append(f'{child_indent}Accessible.role: {custom_role}\n') + + # Insert after the brace line + insert_at = brace_idx + 1 + for j, prop in enumerate(props): + lines.insert(insert_at + j, prop) + + total_fixed += 1 + + # Write back + with open(file_path, 'w') as f: + f.writelines(lines) + print(f" Fixed {len(file_gaps_sorted)} gap(s) in {rel_path}") + + print(f"\nTotal: {total_fixed} fixed, {total_skipped} skipped") + + +if __name__ == '__main__': + gaps_file = sys.argv[1] if len(sys.argv) > 1 else 'tests/at/spi/qml_gaps.yaml' + src_dir = sys.argv[2] if len(sys.argv) > 2 else '.' + apply_fixes(gaps_file, src_dir) diff --git a/tests/at/spi/expected_names.yaml b/tests/at/spi/expected_names.yaml new file mode 100644 index 000000000..648f4f812 --- /dev/null +++ b/tests/at/spi/expected_names.yaml @@ -0,0 +1,1099 @@ +# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd. +# SPDX-License-Identifier: LGPL-3.0-or-later +version: '1.0' +cpp: +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_connectionIconAction + class: WiredItem + accessible_name: '' + object_name: ConnectionIconAction + type: DViewItemAction * +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_securityAction + class: WirelessItem + accessible_name: '' + object_name: SecurityAction + type: DViewItemAction * +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_wifiLabel + class: WirelessItem + accessible_name: '' + object_name: WifiLabel + type: DViewItemAction * +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_expandItem + class: WirelessItem + accessible_name: '' + object_name: ExpandItem + type: DViewItemAction * +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_topItem + class: WirelessItem + accessible_name: '' + object_name: TopItem + type: DViewItemAction * +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_passwdEdit + class: WirelessItem + accessible_name: PasswdEdit + object_name: PasswdEdit + type: DPasswordEdit * +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_ssidEdit + class: WirelessItem + accessible_name: SsidEdit + object_name: SsidEdit + type: DLineEdit * +- file: common-plugin/networkdialog/item/netitem.cpp + variable: m_connectButton + class: WirelessItem + accessible_name: ConnectButton + object_name: ConnectButton + type: DPushButton * +- file: common-plugin/networkdialog/networkpanel.cpp + variable: m_netListView + class: NetworkPanel + accessible_name: list_network + object_name: '' + type: DListView * +- file: dcc-network-plugin/window/controllitemsmodel.cpp + variable: iconAction + class: ControllItemsAction + accessible_name: '' + object_name: IconAction + type: DViewItemAction * +- file: dcc-network-plugin/window/controllitemsmodel.cpp + variable: spinnerAction + class: ControllItemsAction + accessible_name: '' + object_name: SpinnerAction + type: DViewItemAction * +- file: dcc-network-plugin/window/editpage/connectioneditpage.cpp + variable: m_disconnectBtn + class: ConnectionEditPage + accessible_name: DisconnectBtn + object_name: DisconnectBtn + type: QPushButton * +- file: dcc-network-plugin/window/editpage/connectioneditpage.cpp + variable: m_removeBtn + class: ConnectionEditPage + accessible_name: RemoveBtn + object_name: RemoveBtn + type: QPushButton * +- file: dcc-network-plugin/window/editpage/connectionvpneditpage.cpp + variable: m_exportButton + class: ConnectionVpnEditPage + accessible_name: ExportButton + object_name: ExportButton + type: QPushButton * +- file: dcc-network-plugin/window/sections/ethernetsection.cpp + variable: m_deviceMacComboBox + class: EthernetSection + accessible_name: DeviceMacComboBox + object_name: DeviceMacComboBox + type: QComboBox * +- file: dcc-network-plugin/window/sections/ipvxsection.cpp + variable: m_methodChooser + class: IpvxSection + accessible_name: MethodChooser + object_name: MethodChooser + type: QComboBox * +- file: dcc-network-plugin/window/sections/multiipvxsection.cpp + variable: m_methodChooser + class: MultiIpvxSection + accessible_name: MethodChooser_2 + object_name: MethodChooser_2 + type: QComboBox * +- file: dcc-network-plugin/window/sections/wirelesssection.cpp + variable: m_deviceMacComboBox + class: WirelessSection + accessible_name: DeviceMacComboBox_2 + object_name: DeviceMacComboBox_2 + type: QComboBox * +- file: dcc-network-plugin/window/widgets/filechoosewidget.cpp + variable: m_fileChooserEdit + class: QLabel + accessible_name: FileChooserEdit + object_name: FileChooserEdit + type: Dtk::Widget::DFileChooserEdit * +- file: dcc-network-plugin/window/wirelessdevicemodel.cpp + variable: secureAction + class: ItemAction + accessible_name: '' + object_name: SecureAction + type: DViewItemAction * +- file: dcc-network-plugin/window/wirelessdevicemodel.cpp + variable: iconAction + class: ItemAction + accessible_name: '' + object_name: IconAction_2 + type: DViewItemAction * +- file: dcc-network-plugin/window/wirelessdevicemodel.cpp + variable: spinnerAction + class: ItemAction + accessible_name: '' + object_name: SpinnerAction_2 + type: DViewItemAction * +- file: dock-network-plugin/quickpanelwidget.cpp + variable: m_expandLabel + class: QLabel + accessible_name: ExpandLabel + object_name: ExpandLabel + type: Dtk::Widget::DIconButton * +- file: dss-network-plugin/notification/actionbutton.cpp + variable: m_menuButton + class: ActionButton + accessible_name: MenuButton + object_name: '' + type: Button * +- file: dss-network-plugin/notification/bubble.cpp + variable: m_icon + class: Bubble + accessible_name: AppIcon + object_name: '' + type: AppIcon * +- file: dss-network-plugin/notification/bubble.cpp + variable: m_body + class: Bubble + accessible_name: AppBody + object_name: '' + type: AppBody * +- file: dss-network-plugin/notification/bubble.cpp + variable: m_actionButton + class: Bubble + accessible_name: ActionButton + object_name: '' + type: ActionButton * +- file: dss-network-plugin/notification/bubble.cpp + variable: m_closeButton + class: Bubble + accessible_name: CloseButton + object_name: '' + type: DDialogCloseButton * +- file: dss-network-plugin/notification/button.cpp + variable: m_button + class: Button + accessible_name: ButtonContent + object_name: '' + type: ButtonContent * +- file: dss-network-plugin/notification/button.cpp + variable: m_menuArea + class: Button + accessible_name: ButtonMenu + object_name: '' + type: ButtonMenu * +- file: dss-network-plugin/notification/button.cpp + variable: m_menu + class: Button + accessible_name: Menu + object_name: '' + type: DMenu * +- file: dss_example/dsstestwidget.cpp + variable: m_iconButton + class: DssTestWidget + accessible_name: IconButton + object_name: IconButton + type: DFloatingButton * +- file: net-view/window/private/netdelegate.cpp + variable: m_switchBut + class: QLabel + accessible_name: SwitchBut + object_name: SwitchBut + type: Dtk::Widget::DSwitchButton * +- file: net-view/window/private/netdelegate.cpp + variable: m_disconnectBtn + class: QLabel + accessible_name: DisconnectBtn_2 + object_name: DisconnectBtn_2 + type: NetCommonButton * +qml: +- file: dcc-network/qml/DeviceStatusItem.qml + element_type: Switch + accessible_name: DeviceStatusItem_Switch + accessible_role: '' + line: 68 +- file: dcc-network/qml/NetButton.qml + element_type: Button + accessible_name: NetButton_Button + accessible_role: '' + line: 6 +- file: dcc-network/qml/NetFileChooseEdit.qml + element_type: NetButton + accessible_name: BrowseBtn + accessible_role: Accessible.Button + line: 56 +- file: dcc-network/qml/NetItemEditor.qml + element_type: ItemDelegate + accessible_name: NetItemEditor_ItemDelegate + accessible_role: '' + line: 11 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageAirplane + accessible_name: NetworkMain_PageAirplane + accessible_role: Accessible.Grouping + line: 44 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageWiredDevice + accessible_name: NetworkMain_PageWiredDevice + accessible_role: Accessible.Grouping + line: 60 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageWirelessDevice + accessible_name: NetworkMain_PageWirelessDevice + accessible_role: Accessible.Grouping + line: 68 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageVPN + accessible_name: NetworkMain_PageVPN + accessible_role: Accessible.Grouping + line: 76 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageDSL + accessible_name: NetworkMain_PageDSL + accessible_role: Accessible.Grouping + line: 87 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageHotspot + accessible_name: NetworkMain_PageHotspot + accessible_role: Accessible.Grouping + line: 98 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageSystemProxy + accessible_name: NetworkMain_PageSystemProxy + accessible_role: Accessible.Grouping + line: 110 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageAppProxy + accessible_name: NetworkMain_PageAppProxy + accessible_role: Accessible.Grouping + line: 121 +- file: dcc-network/qml/NetworkMain.qml + element_type: PageDetails + accessible_name: NetworkMain_PageDetails + accessible_role: Accessible.Grouping + line: 132 +- file: dcc-network/qml/PageAirplane.qml + element_type: Switch + accessible_name: SwitchControl + accessible_role: '' + line: 30 +- file: dcc-network/qml/PageAppProxy.qml + element_type: Switch + accessible_name: PageAppProxy_Switch + accessible_role: '' + line: 64 +- file: dcc-network/qml/PageAppProxy.qml + element_type: ComboBox + accessible_name: PageAppProxy_ComboBox + accessible_role: '' + line: 95 +- file: dcc-network/qml/PageAppProxy.qml + element_type: Button + accessible_name: Cancel_3 + accessible_role: '' + line: 254 +- file: dcc-network/qml/PageAppProxy.qml + element_type: Button + accessible_name: Save_2 + accessible_role: '' + line: 277 +- file: dcc-network/qml/PageDSL.qml + element_type: ItemDelegate + accessible_name: ItemDelegate_2 + accessible_role: '' + line: 43 +- file: dcc-network/qml/PageDSL.qml + element_type: NetButton + accessible_name: Disconnect_2 + accessible_role: Accessible.Button + line: 62 +- file: dcc-network/qml/PageDSL.qml + element_type: PageDSLSettings + accessible_name: DslSettings + accessible_role: Accessible.Grouping + line: 101 +- file: dcc-network/qml/PageDSL.qml + element_type: NetButton + accessible_name: AddPppoEConnection + accessible_role: Accessible.Button + line: 149 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: SectionGeneric + accessible_name: SectionGeneric_2 + accessible_role: Accessible.Grouping + line: 39 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: SectionPPPOE + accessible_name: SectionPppoe + accessible_role: Accessible.Grouping + line: 47 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: SectionIPv4 + accessible_name: SectionIpv4_2 + accessible_role: Accessible.Grouping + line: 55 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: SectionDNS + accessible_name: SectionDns_2 + accessible_role: Accessible.Grouping + line: 63 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: SectionDevice + accessible_name: SectionDevice + accessible_role: Accessible.Grouping + line: 71 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: SectionPPP + accessible_name: SectionPpp + accessible_role: Accessible.Grouping + line: 80 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: NetButton + accessible_name: PageDslsettings_NetButton + accessible_role: Accessible.Button + line: 119 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: Button + accessible_name: Cancel_4 + accessible_role: '' + line: 152 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: Button + accessible_name: Component_Button_2 + accessible_role: '' + line: 164 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: NetButton + accessible_name: Cancel_5 + accessible_role: Accessible.Button + line: 198 +- file: dcc-network/qml/PageDSLSettings.qml + element_type: NetButton + accessible_name: Save_3 + accessible_role: Accessible.Button + line: 213 +- file: dcc-network/qml/PageDetails.qml + element_type: ItemDelegate + accessible_name: ModelData + accessible_role: '' + line: 121 +- file: dcc-network/qml/PageDetails.qml + element_type: TextInput + accessible_name: TextInput + accessible_role: '' + line: 133 +- file: dcc-network/qml/PageDetails.qml + element_type: Menu + accessible_name: Loader_Menu + accessible_role: '' + line: 146 +- file: dcc-network/qml/PageDetails.qml + element_type: MenuItem + accessible_name: Copy + accessible_role: '' + line: 148 +- file: dcc-network/qml/PageDetails.qml + element_type: MenuItem + accessible_name: SelectAll + accessible_role: '' + line: 156 +- file: dcc-network/qml/PageDetails.qml + element_type: NetButton + accessible_name: NetworkDetection + accessible_role: Accessible.Button + line: 196 +- file: dcc-network/qml/PageHotspot.qml + element_type: Switch + accessible_name: SwitchControl_2 + accessible_role: '' + line: 102 +- file: dcc-network/qml/PageHotspot.qml + element_type: NetItemEditor + accessible_name: NameSsid + accessible_role: Accessible.Button + line: 269 +- file: dcc-network/qml/PageHotspot.qml + element_type: NetItemEditor + accessible_name: Security + accessible_role: Accessible.Button + line: 285 +- file: dcc-network/qml/PageHotspot.qml + element_type: ComboBox + accessible_name: NetItemEditor_ComboBox + accessible_role: '' + line: 290 +- file: dcc-network/qml/PageHotspot.qml + element_type: NetItemEditor + accessible_name: Password_2 + accessible_role: Accessible.Button + line: 317 +- file: dcc-network/qml/PageHotspot.qml + element_type: NetItemEditor + accessible_name: Band + accessible_role: Accessible.Button + line: 343 +- file: dcc-network/qml/PageHotspot.qml + element_type: ComboBox + accessible_name: NetItemEditor_ComboBox_2 + accessible_role: '' + line: 348 +- file: dcc-network/qml/PageHotspot.qml + element_type: Button + accessible_name: Cancel_8 + accessible_role: '' + line: 377 +- file: dcc-network/qml/PageHotspot.qml + element_type: TextInput + accessible_name: 80211WirelessSecurity + accessible_role: '' + line: 481 +- file: dcc-network/qml/PageHotspot.qml + element_type: ComboBox + accessible_name: PageHotspot_ComboBox + accessible_role: '' + line: 548 +- file: dcc-network/qml/PageSettings.qml + element_type: SectionGeneric + accessible_name: SectionGeneric_3 + accessible_role: Accessible.Grouping + line: 39 +- file: dcc-network/qml/PageSettings.qml + element_type: SectionSecret + accessible_name: SectionSecret + accessible_role: Accessible.Grouping + line: 48 +- file: dcc-network/qml/PageSettings.qml + element_type: SectionIPv4 + accessible_name: SectionIpv4_3 + accessible_role: Accessible.Grouping + line: 56 +- file: dcc-network/qml/PageSettings.qml + element_type: SectionIPv6 + accessible_name: SectionIpv6_2 + accessible_role: Accessible.Grouping + line: 64 +- file: dcc-network/qml/PageSettings.qml + element_type: SectionDNS + accessible_name: SectionDns_3 + accessible_role: Accessible.Grouping + line: 72 +- file: dcc-network/qml/PageSettings.qml + element_type: SectionDevice + accessible_name: SectionDevice_2 + accessible_role: Accessible.Grouping + line: 80 +- file: dcc-network/qml/PageSettings.qml + element_type: NetButton + accessible_name: PageSettings_NetButton + accessible_role: Accessible.Button + line: 123 +- file: dcc-network/qml/PageSettings.qml + element_type: Button + accessible_name: Cancel_6 + accessible_role: '' + line: 156 +- file: dcc-network/qml/PageSettings.qml + element_type: Button + accessible_name: Component_Button_3 + accessible_role: '' + line: 168 +- file: dcc-network/qml/PageSettings.qml + element_type: NetButton + accessible_name: Cancel_7 + accessible_role: Accessible.Button + line: 202 +- file: dcc-network/qml/PageSettings.qml + element_type: NetButton + accessible_name: Save_4 + accessible_role: Accessible.Button + line: 217 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: Switch + accessible_name: Component_Switch_2 + accessible_role: '' + line: 45 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: Switch + accessible_name: PageSystemProxy_Switch + accessible_role: '' + line: 72 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: ComboBox + accessible_name: PageSystemProxy_ComboBox + accessible_role: '' + line: 104 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: SystemProxyConfigItem + accessible_name: Http + accessible_role: Accessible.Grouping + line: 167 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: SystemProxyConfigItem + accessible_name: Https + accessible_role: Accessible.Grouping + line: 185 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: SystemProxyConfigItem + accessible_name: Ftp + accessible_role: Accessible.Grouping + line: 203 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: SystemProxyConfigItem + accessible_name: Socks + accessible_role: Accessible.Grouping + line: 221 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: TextArea + accessible_name: DccObjConfig + accessible_role: '' + line: 248 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: Button + accessible_name: DccObjDisplayName + accessible_role: '' + line: 293 +- file: dcc-network/qml/PageSystemProxy.qml + element_type: Button + accessible_name: DccObjDisplayName_2 + accessible_role: '' + line: 314 +- file: dcc-network/qml/PageVPN.qml + element_type: Switch + accessible_name: Component_Switch + accessible_role: '' + line: 26 +- file: dcc-network/qml/PageVPN.qml + element_type: ItemDelegate + accessible_name: ItemDelegate + accessible_role: '' + line: 68 +- file: dcc-network/qml/PageVPN.qml + element_type: NetButton + accessible_name: Disconnect + accessible_role: Accessible.Button + line: 87 +- file: dcc-network/qml/PageVPN.qml + element_type: PageVPNSettings + accessible_name: VpnSettings + accessible_role: Accessible.Grouping + line: 125 +- file: dcc-network/qml/PageVPN.qml + element_type: NetButton + accessible_name: ImportVpn + accessible_role: Accessible.Button + line: 181 +- file: dcc-network/qml/PageVPN.qml + element_type: Button + accessible_name: Ok + accessible_role: '' + line: 239 +- file: dcc-network/qml/PageVPN.qml + element_type: NetButton + accessible_name: AddVpn + accessible_role: Accessible.Button + line: 255 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: ComboBox + accessible_name: PageVpnsettings_ComboBox + accessible_role: '' + line: 75 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: SectionGeneric + accessible_name: SectionGeneric + accessible_role: Accessible.Grouping + line: 118 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: SectionVPN + accessible_name: SectionVpn + accessible_role: Accessible.Grouping + line: 126 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: SectionIPv4 + accessible_name: SectionIpv4 + accessible_role: Accessible.Grouping + line: 135 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: SectionIPv6 + accessible_name: SectionIpv6 + accessible_role: Accessible.Grouping + line: 145 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: SectionDNS + accessible_name: SectionDns + accessible_role: Accessible.Grouping + line: 168 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: NetButton + accessible_name: PageVpnsettings_NetButton + accessible_role: Accessible.Button + line: 189 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: Button + accessible_name: Cancel + accessible_role: '' + line: 222 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: Button + accessible_name: Component_Button + accessible_role: '' + line: 234 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: NetButton + accessible_name: Export + accessible_role: Accessible.Button + line: 259 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: NetButton + accessible_name: Cancel_2 + accessible_role: Accessible.Button + line: 298 +- file: dcc-network/qml/PageVPNSettings.qml + element_type: NetButton + accessible_name: Save + accessible_role: Accessible.Button + line: 313 +- file: dcc-network/qml/PageWiredDevice.qml + element_type: DeviceStatusItem + accessible_name: PageWiredDevice_DeviceStatusItem + accessible_role: Accessible.Grouping + line: 28 +- file: dcc-network/qml/PageWiredDevice.qml + element_type: DeviceStatusItem + accessible_name: PageWiredDevice_DeviceStatusItem_2 + accessible_role: Accessible.Grouping + line: 52 +- file: dcc-network/qml/PageWiredDevice.qml + element_type: ItemDelegate + accessible_name: ItemDelegate_4 + accessible_role: '' + line: 91 +- file: dcc-network/qml/PageWiredDevice.qml + element_type: NetButton + accessible_name: ModelItemStatus_2 + accessible_role: Accessible.Button + line: 138 +- file: dcc-network/qml/PageWiredDevice.qml + element_type: PageSettings + accessible_name: WiredSettings + accessible_role: Accessible.Grouping + line: 289 +- file: dcc-network/qml/PageWiredDevice.qml + element_type: NetButton + accessible_name: DccObjDisplayName_3 + accessible_role: Accessible.Button + line: 341 +- file: dcc-network/qml/PageWirelessDevice.qml + element_type: DeviceStatusItem + accessible_name: PageWirelessDevice_DeviceStatusItem + accessible_role: Accessible.Grouping + line: 30 +- file: dcc-network/qml/PageWirelessDevice.qml + element_type: ItemDelegate + accessible_name: ItemDelegate_3 + accessible_role: '' + line: 53 +- file: dcc-network/qml/PageWirelessDevice.qml + element_type: NetButton + accessible_name: ModelItemStatus + accessible_role: Accessible.Button + line: 100 +- file: dcc-network/qml/PageWirelessDevice.qml + element_type: ItemDelegate + accessible_name: Repeater_ItemDelegate + accessible_role: '' + line: 253 +- file: dcc-network/qml/PageWirelessDevice.qml + element_type: DeviceStatusItem + accessible_name: PageWirelessDevice_DeviceStatusItem_2 + accessible_role: Accessible.Grouping + line: 290 +- file: dcc-network/qml/PageWirelessDevice.qml + element_type: PageSettings + accessible_name: WirelessSettings + accessible_role: Accessible.Grouping + line: 417 +- file: dcc-network/qml/SectionDevice.qml + element_type: ComboBox + accessible_name: SectionDevice_ComboBox + accessible_role: '' + line: 109 +- file: dcc-network/qml/SectionDevice.qml + element_type: Switch + accessible_name: SectionDevice_Switch + accessible_role: '' + line: 170 +- file: dcc-network/qml/SectionDevice.qml + element_type: SpinBox + accessible_name: SectionDevice_SpinBox + accessible_role: '' + line: 187 +- file: dcc-network/qml/SectionGeneric.qml + element_type: Switch + accessible_name: SectionGeneric_Switch + accessible_role: '' + line: 87 +- file: dcc-network/qml/SectionGeneric.qml + element_type: ComboBox + accessible_name: SectionGeneric_ComboBox + accessible_role: '' + line: 104 +- file: dcc-network/qml/SectionIPv4.qml + element_type: ComboBox + accessible_name: SectionIpv4_ComboBox + accessible_role: '' + line: 227 +- file: dcc-network/qml/SectionIPv4.qml + element_type: Switch + accessible_name: SectionIpv4_Switch + accessible_role: '' + line: 262 +- file: dcc-network/qml/SectionIPv4.qml + element_type: ComboBox + accessible_name: SectionIpv4_ComboBox_2 + accessible_role: '' + line: 293 +- file: dcc-network/qml/SectionIPv6.qml + element_type: ComboBox + accessible_name: SectionIpv6_ComboBox + accessible_role: '' + line: 230 +- file: dcc-network/qml/SectionIPv6.qml + element_type: Switch + accessible_name: SectionIpv6_Switch + accessible_role: '' + line: 265 +- file: dcc-network/qml/SectionIPv6.qml + element_type: ComboBox + accessible_name: SectionIpv6_ComboBox_2 + accessible_role: '' + line: 295 +- file: dcc-network/qml/SectionIPv6.qml + element_type: SpinBox + accessible_name: SectionIpv6_SpinBox + accessible_role: '' + line: 443 +- file: dcc-network/qml/SectionPPP.qml + element_type: Switch + accessible_name: Component_Switch_3 + accessible_role: '' + line: 41 +- file: dcc-network/qml/SectionPPP.qml + element_type: Switch + accessible_name: SectionPpp_Switch + accessible_role: '' + line: 64 +- file: dcc-network/qml/SectionPPP.qml + element_type: Switch + accessible_name: SectionPpp_Switch_2 + accessible_role: '' + line: 188 +- file: dcc-network/qml/SectionPPPOE.qml + element_type: NetPasswordEdit + accessible_name: Password + accessible_role: Accessible.EditableText + line: 99 +- file: dcc-network/qml/SectionSecret.qml + element_type: ComboBox + accessible_name: SectionSecret_ComboBox + accessible_role: '' + line: 339 +- file: dcc-network/qml/SectionSecret.qml + element_type: Switch + accessible_name: SectionSecret_Switch + accessible_role: '' + line: 378 +- file: dcc-network/qml/SectionSecret.qml + element_type: ComboBox + accessible_name: SectionSecret_ComboBox_2 + accessible_role: '' + line: 397 +- file: dcc-network/qml/SectionSecret.qml + element_type: ComboBox + accessible_name: SectionSecret_ComboBox_3 + accessible_role: '' + line: 451 +- file: dcc-network/qml/SectionSecret.qml + element_type: NetPasswordEdit + accessible_name: RootPwdStr + accessible_role: Accessible.EditableText + line: 484 +- file: dcc-network/qml/SectionSecret.qml + element_type: ComboBox + accessible_name: SectionSecret_ComboBox_4 + accessible_role: '' + line: 500 +- file: dcc-network/qml/SectionSecret.qml + element_type: NetFileChooseEdit + accessible_name: PrivateKey + accessible_role: Accessible.EditableText + line: 530 +- file: dcc-network/qml/SectionSecret.qml + element_type: ComboBox + accessible_name: SectionSecret_ComboBox_5 + accessible_role: '' + line: 565 +- file: dcc-network/qml/SectionSecret.qml + element_type: NetFileChooseEdit + accessible_name: SectionSecret_NetFileChooseEdit + accessible_role: Accessible.EditableText + line: 604 +- file: dcc-network/qml/SectionSecret.qml + element_type: NetFileChooseEdit + accessible_name: SectionSecret_NetFileChooseEdit_2 + accessible_role: Accessible.EditableText + line: 620 +- file: dcc-network/qml/SectionSecret.qml + element_type: NetFileChooseEdit + accessible_name: Required + accessible_role: Accessible.EditableText + line: 636 +- file: dcc-network/qml/SectionSecret.qml + element_type: ComboBox + accessible_name: SectionSecret_ComboBox_6 + accessible_role: '' + line: 653 +- file: dcc-network/qml/SectionSecret.qml + element_type: ComboBox + accessible_name: SectionSecret_ComboBox_7 + accessible_role: '' + line: 689 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetButton + accessible_name: Component_NetButton + accessible_role: Accessible.Button + line: 377 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetButton + accessible_name: Component_NetButton_2 + accessible_role: Accessible.Button + line: 414 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: Component_Switch_4 + accessible_role: '' + line: 500 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox + accessible_role: '' + line: 601 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetButton + accessible_name: SectionVpn_NetButton + accessible_role: Accessible.Button + line: 662 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetButton + accessible_name: SectionVpn_NetButton_2 + accessible_role: Accessible.Button + line: 705 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_2 + accessible_role: '' + line: 755 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_3 + accessible_role: '' + line: 809 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetPasswordEdit + accessible_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap + accessible_role: Accessible.EditableText + line: 848 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_4 + accessible_role: '' + line: 884 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetPasswordEdit + accessible_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_2 + accessible_role: Accessible.EditableText + line: 915 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch + accessible_role: '' + line: 941 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_5 + accessible_role: '' + line: 962 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_2 + accessible_role: '' + line: 1054 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_6 + accessible_role: '' + line: 1112 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetPasswordEdit + accessible_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_3 + accessible_role: Accessible.EditableText + line: 1144 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_7 + accessible_role: '' + line: 1170 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetPasswordEdit + accessible_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_4 + accessible_role: Accessible.EditableText + line: 1202 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_3 + accessible_role: '' + line: 1218 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_4 + accessible_role: '' + line: 1268 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_8 + accessible_role: '' + line: 1285 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_5 + accessible_role: '' + line: 1426 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_6 + accessible_role: '' + line: 1543 +- file: dcc-network/qml/SectionVPN.qml + element_type: SpinBox + accessible_name: SectionVpn_SpinBox + accessible_role: '' + line: 1565 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_7 + accessible_role: '' + line: 1589 +- file: dcc-network/qml/SectionVPN.qml + element_type: SpinBox + accessible_name: SectionVpn_SpinBox_2 + accessible_role: '' + line: 1611 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_8 + accessible_role: '' + line: 1635 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_9 + accessible_role: '' + line: 1674 +- file: dcc-network/qml/SectionVPN.qml + element_type: SpinBox + accessible_name: SectionVpn_SpinBox_3 + accessible_role: '' + line: 1696 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_10 + accessible_role: '' + line: 1720 +- file: dcc-network/qml/SectionVPN.qml + element_type: SpinBox + accessible_name: SectionVpn_SpinBox_4 + accessible_role: '' + line: 1742 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_9 + accessible_role: '' + line: 1811 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_10 + accessible_role: '' + line: 1847 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_11 + accessible_role: '' + line: 1877 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_12 + accessible_role: '' + line: 1910 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_13 + accessible_role: '' + line: 1940 +- file: dcc-network/qml/SectionVPN.qml + element_type: SpinBox + accessible_name: SectionVpn_SpinBox_5 + accessible_role: '' + line: 1976 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_11 + accessible_role: '' + line: 2000 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_14 + accessible_role: '' + line: 2038 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_15 + accessible_role: '' + line: 2113 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_16 + accessible_role: '' + line: 2182 +- file: dcc-network/qml/SectionVPN.qml + element_type: SpinBox + accessible_name: SectionVpn_SpinBox_6 + accessible_role: '' + line: 2224 +- file: dcc-network/qml/SectionVPN.qml + element_type: NetPasswordEdit + accessible_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_5 + accessible_role: Accessible.EditableText + line: 2272 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_17 + accessible_role: '' + line: 2314 +- file: dcc-network/qml/SectionVPN.qml + element_type: Switch + accessible_name: SectionVpn_Switch_12 + accessible_role: '' + line: 2357 +- file: dcc-network/qml/SectionVPN.qml + element_type: ComboBox + accessible_name: SectionVpn_ComboBox_18 + accessible_role: '' + line: 2379 +- file: dcc-network/qml/SystemProxyConfigItem.qml + element_type: Switch + accessible_name: SystemProxyConfigItem_Switch + accessible_role: '' + line: 93 +- file: dcc-network/qml/SystemProxyConfigItem.qml + element_type: NetPasswordEdit + accessible_name: RootConfigPassword + accessible_role: Accessible.EditableText + line: 141 diff --git a/tests/at/spi/name_map.txt b/tests/at/spi/name_map.txt new file mode 100644 index 000000000..178571936 --- /dev/null +++ b/tests/at/spi/name_map.txt @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd. +# SPDX-License-Identifier: LGPL-3.0-or-later +m_connectionIconAction -> ConnectionIconAction # common-plugin/networkdialog/item/netitem.cpp:174 +m_securityAction -> SecurityAction # common-plugin/networkdialog/item/netitem.cpp:231 +m_wifiLabel -> WifiLabel # common-plugin/networkdialog/item/netitem.cpp:232 +m_connectionAction -> ConnectionAction # common-plugin/networkdialog/item/netitem.cpp:233 +m_expandItem -> ExpandItem # common-plugin/networkdialog/item/netitem.cpp:239 +m_topItem -> TopItem # common-plugin/networkdialog/item/netitem.cpp:240 +m_passwdEdit -> PasswdEdit # common-plugin/networkdialog/item/netitem.cpp:242 +m_ssidEdit -> SsidEdit # common-plugin/networkdialog/item/netitem.cpp:243 +m_connectButton -> ConnectButton # common-plugin/networkdialog/item/netitem.cpp:246 +m_parentWidget -> ParentWidget # common-plugin/networkdialog/networkpanel.cpp:140 +iconAction -> IconAction # dcc-network-plugin/window/controllitemsmodel.cpp:23 +spinnerAction -> SpinnerAction # dcc-network-plugin/window/controllitemsmodel.cpp:24 +m_disconnectBtn -> DisconnectBtn # dcc-network-plugin/window/editpage/connectioneditpage.cpp:112 +m_removeBtn -> RemoveBtn # dcc-network-plugin/window/editpage/connectioneditpage.cpp:113 +m_exportButton -> ExportButton # dcc-network-plugin/window/editpage/connectionvpneditpage.cpp:42 +m_deviceMacComboBox -> DeviceMacComboBox # dcc-network-plugin/window/sections/ethernetsection.cpp:48 +m_methodChooser -> MethodChooser # dcc-network-plugin/window/sections/ipvxsection.cpp:71 +m_methodChooser -> MethodChooser # dcc-network-plugin/window/sections/multiipvxsection.cpp:68 +m_deviceMacComboBox -> DeviceMacComboBox # dcc-network-plugin/window/sections/wirelesssection.cpp:57 +m_fileChooserEdit -> FileChooserEdit # dcc-network-plugin/window/widgets/filechoosewidget.cpp:34 +secureAction -> SecureAction # dcc-network-plugin/window/wirelessdevicemodel.cpp:23 +iconAction -> IconAction # dcc-network-plugin/window/wirelessdevicemodel.cpp:24 +spinnerAction -> SpinnerAction # dcc-network-plugin/window/wirelessdevicemodel.cpp:25 +m_expandLabel -> ExpandLabel # dock-network-plugin/quickpanelwidget.cpp:50 +m_iconButton -> IconButton # dss_example/dsstestwidget.cpp:41 +m_view -> View # net-view/window/private/netdelegate.cpp:81 +m_switchBut -> SwitchBut # net-view/window/private/netdelegate.cpp:139 +m_disconnectBtn -> DisconnectBtn # net-view/window/private/netdelegate.cpp:208 diff --git a/tests/at/spi/pre_report.json b/tests/at/spi/pre_report.json new file mode 100644 index 000000000..ab07b2e35 --- /dev/null +++ b/tests/at/spi/pre_report.json @@ -0,0 +1,15 @@ +{ + "version": "1.0", + "source_dir": "/home/deepin/dde-network-core", + "stats": { + "total_files": 218, + "parsed_files": 218, + "failed_files": 0 + }, + "summary": { + "total_widgets": 39, + "with_names": 11, + "missing_names": 28, + "coverage": "28.2%" + } +} \ No newline at end of file diff --git a/tests/at/spi/pre_scan_gaps.yaml b/tests/at/spi/pre_scan_gaps.yaml new file mode 100644 index 000000000..75a323b4a --- /dev/null +++ b/tests/at/spi/pre_scan_gaps.yaml @@ -0,0 +1,429 @@ +# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd. +# SPDX-License-Identifier: LGPL-3.0-or-later +version: '1.0' +summary: + total_widgets: 39 + with_names: 11 + missing_names: 28 + coverage: 28.2% +gaps: +- variable: m_connectionIconAction + type: DViewItemAction * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WiredItem + line: 174 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_securityAction + type: DViewItemAction * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 231 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_wifiLabel + type: DViewItemAction * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 232 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_connectionAction + type: DViewItemAction * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 233 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_expandItem + type: DViewItemAction * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 239 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_topItem + type: DViewItemAction * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 240 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_passwdEdit + type: DPasswordEdit * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 242 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_ssidEdit + type: DLineEdit * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 243 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: text + context: '' + is_action: false + action_owner: '' +- variable: m_connectButton + type: DPushButton * + source_file: common-plugin/networkdialog/item/netitem.cpp + class_name: WirelessItem + line: 246 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_parentWidget + type: QAbstractItemView * + source_file: common-plugin/networkdialog/networkpanel.cpp + class_name: NetworkDelegate + line: 140 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: iconAction + type: DViewItemAction * + source_file: dcc-network-plugin/window/controllitemsmodel.cpp + class_name: ControllItemsAction + line: 23 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: spinnerAction + type: DViewItemAction * + source_file: dcc-network-plugin/window/controllitemsmodel.cpp + class_name: ControllItemsAction + line: 24 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_disconnectBtn + type: QPushButton * + source_file: dcc-network-plugin/window/editpage/connectioneditpage.cpp + class_name: ConnectionEditPage + line: 112 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_removeBtn + type: QPushButton * + source_file: dcc-network-plugin/window/editpage/connectioneditpage.cpp + class_name: ConnectionEditPage + line: 113 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_exportButton + type: QPushButton * + source_file: dcc-network-plugin/window/editpage/connectionvpneditpage.cpp + class_name: ConnectionVpnEditPage + line: 42 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_deviceMacComboBox + type: QComboBox * + source_file: dcc-network-plugin/window/sections/ethernetsection.cpp + class_name: EthernetSection + line: 48 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: combo box + context: '' + is_action: false + action_owner: '' +- variable: m_methodChooser + type: QComboBox * + source_file: dcc-network-plugin/window/sections/ipvxsection.cpp + class_name: IpvxSection + line: 71 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: combo box + context: '' + is_action: false + action_owner: '' +- variable: m_methodChooser + type: QComboBox * + source_file: dcc-network-plugin/window/sections/multiipvxsection.cpp + class_name: MultiIpvxSection + line: 68 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: combo box + context: '' + is_action: false + action_owner: '' +- variable: m_deviceMacComboBox + type: QComboBox * + source_file: dcc-network-plugin/window/sections/wirelesssection.cpp + class_name: WirelessSection + line: 57 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: combo box + context: '' + is_action: false + action_owner: '' +- variable: m_fileChooserEdit + type: Dtk::Widget::DFileChooserEdit * + source_file: dcc-network-plugin/window/widgets/filechoosewidget.cpp + class_name: QLabel + line: 34 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: secureAction + type: DViewItemAction * + source_file: dcc-network-plugin/window/wirelessdevicemodel.cpp + class_name: ItemAction + line: 23 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: iconAction + type: DViewItemAction * + source_file: dcc-network-plugin/window/wirelessdevicemodel.cpp + class_name: ItemAction + line: 24 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: spinnerAction + type: DViewItemAction * + source_file: dcc-network-plugin/window/wirelessdevicemodel.cpp + class_name: ItemAction + line: 25 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_expandLabel + type: Dtk::Widget::DIconButton * + source_file: dock-network-plugin/quickpanelwidget.cpp + class_name: QLabel + line: 50 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_iconButton + type: DFloatingButton * + source_file: dss_example/dsstestwidget.cpp + class_name: DssTestWidget + line: 41 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_view + type: const QAbstractItemView * + source_file: net-view/window/private/netdelegate.cpp + class_name: QLabel + line: 81 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_switchBut + type: Dtk::Widget::DSwitchButton * + source_file: net-view/window/private/netdelegate.cpp + class_name: QLabel + line: 139 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_disconnectBtn + type: NetCommonButton * + source_file: net-view/window/private/netdelegate.cpp + class_name: QLabel + line: 208 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' diff --git a/tests/at/spi/pre_scan_ok.yaml b/tests/at/spi/pre_scan_ok.yaml new file mode 100644 index 000000000..c733932a9 --- /dev/null +++ b/tests/at/spi/pre_scan_ok.yaml @@ -0,0 +1,169 @@ +# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd. +# SPDX-License-Identifier: LGPL-3.0-or-later +version: '1.0' +widgets: +- variable: m_netListView + type: DListView * + source_file: common-plugin/networkdialog/networkpanel.cpp + class_name: NetworkPanel + line: 91 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: list_network + display_text: '' + role: list + context: '' + is_action: false + action_owner: '' +- variable: ap + type: AccessPoints * + source_file: dcc-network-plugin/window/wirelessdevicemodel.cpp + class_name: ItemAction + line: 29 + instantiation: '' + has_object_name: true + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_icon + type: DIconButton * + source_file: dock-hotspot-plugin/quickpanel.cpp + class_name: '' + line: 43 + instantiation: '' + has_object_name: false + has_accessible_name: false + existing_object_name: '' + existing_accessible_name: '' + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_menuButton + type: Button * + source_file: dss-network-plugin/notification/actionbutton.cpp + class_name: ActionButton + line: 57 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: MenuButton + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_icon + type: AppIcon * + source_file: dss-network-plugin/notification/bubble.cpp + class_name: Bubble + line: 83 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: AppIcon + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_body + type: AppBody * + source_file: dss-network-plugin/notification/bubble.cpp + class_name: Bubble + line: 84 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: AppBody + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_actionButton + type: ActionButton * + source_file: dss-network-plugin/notification/bubble.cpp + class_name: Bubble + line: 85 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: ActionButton + display_text: '' + role: push button + context: '' + is_action: false + action_owner: '' +- variable: m_closeButton + type: DDialogCloseButton * + source_file: dss-network-plugin/notification/bubble.cpp + class_name: Bubble + line: 86 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: CloseButton + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_button + type: ButtonContent * + source_file: dss-network-plugin/notification/button.cpp + class_name: Button + line: 136 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: ButtonContent + display_text: '' + role: '' + context: '' + is_action: false + action_owner: '' +- variable: m_menuArea + type: ButtonMenu * + source_file: dss-network-plugin/notification/button.cpp + class_name: Button + line: 137 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: ButtonMenu + display_text: '' + role: menu + context: '' + is_action: false + action_owner: '' +- variable: m_menu + type: DMenu * + source_file: dss-network-plugin/notification/button.cpp + class_name: Button + line: 138 + instantiation: '' + has_object_name: false + has_accessible_name: true + existing_object_name: '' + existing_accessible_name: Menu + display_text: '' + role: menu + context: '' + is_action: false + action_owner: '' diff --git a/tests/at/spi/qml_gaps.yaml b/tests/at/spi/qml_gaps.yaml new file mode 100644 index 000000000..0c3447a98 --- /dev/null +++ b/tests/at/spi/qml_gaps.yaml @@ -0,0 +1,2680 @@ +# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd. +# SPDX-License-Identifier: LGPL-3.0-or-later +version: '1.0' +source: qml +summary: + total_elements: 178 + with_names: 0 + missing_names: 178 + coverage: 0.0% +gaps: +- element_type: Switch + id: '' + source_file: dcc-network/qml/DeviceStatusItem.qml + line: 68 + column: 7 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: DeviceStatusItem_Switch +- element_type: Button + id: '' + source_file: dcc-network/qml/NetButton.qml + line: 6 + column: 1 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: push button + suggested_name: NetButton_Button +- element_type: NetButton + id: browseBtn + source_file: dcc-network/qml/NetFileChooseEdit.qml + line: 56 + column: 5 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '...' + role: '' + suggested_name: BrowseBtn +- element_type: ItemDelegate + id: '' + source_file: dcc-network/qml/NetItemEditor.qml + line: 11 + column: 3 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: push button + suggested_name: NetItemEditor_ItemDelegate +- element_type: PageAirplane + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 44 + column: 5 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageAirplane +- element_type: PageWiredDevice + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 58 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageWiredDevice +- element_type: PageWirelessDevice + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 64 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageWirelessDevice +- element_type: PageVPN + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 70 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageVPN +- element_type: PageDSL + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 79 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageDSL +- element_type: PageHotspot + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 88 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageHotspot +- element_type: PageSystemProxy + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 98 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageSystemProxy +- element_type: PageAppProxy + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 107 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageAppProxy +- element_type: PageDetails + id: '' + source_file: dcc-network/qml/NetworkMain.qml + line: 116 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: NetworkMain_PageDetails +- element_type: Switch + id: switchControl + source_file: dcc-network/qml/PageAirplane.qml + line: 30 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: toggle button + suggested_name: SwitchControl +- element_type: Switch + id: '' + source_file: dcc-network/qml/PageAppProxy.qml + line: 64 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: PageAppProxy_Switch +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/PageAppProxy.qml + line: 94 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: PageAppProxy_ComboBox +- element_type: Button + id: '' + source_file: dcc-network/qml/PageAppProxy.qml + line: 252 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Cancel + role: push button + suggested_name: Cancel_3 +- element_type: Button + id: '' + source_file: dcc-network/qml/PageAppProxy.qml + line: 274 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Save + role: push button + suggested_name: Save_2 +- element_type: ItemDelegate + id: itemDelegate + source_file: dcc-network/qml/PageDSL.qml + line: 43 + column: 31 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Repeater + object_name: '' + text_property: model.item.name + role: push button + suggested_name: ItemDelegate_2 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageDSL.qml + line: 61 + column: 29 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: ItemDelegate + object_name: '' + text_property: Disconnect + role: '' + suggested_name: Disconnect_2 +- element_type: PageDSLSettings + id: dslSettings + source_file: dcc-network/qml/PageDSL.qml + line: 98 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: DslSettings +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageDSL.qml + line: 144 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Add PPPoE connection + role: '' + suggested_name: AddPppoEConnection +- element_type: SectionGeneric + id: sectionGeneric + source_file: dcc-network/qml/PageDSLSettings.qml + line: 39 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionGeneric_2 +- element_type: SectionPPPOE + id: sectionPPPOE + source_file: dcc-network/qml/PageDSLSettings.qml + line: 45 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionPppoe +- element_type: SectionIPv4 + id: sectionIPv4 + source_file: dcc-network/qml/PageDSLSettings.qml + line: 51 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionIpv4_2 +- element_type: SectionDNS + id: sectionDNS + source_file: dcc-network/qml/PageDSLSettings.qml + line: 57 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionDns_2 +- element_type: SectionDevice + id: sectionDevice + source_file: dcc-network/qml/PageDSLSettings.qml + line: 63 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionDevice +- element_type: SectionPPP + id: sectionPPP + source_file: dcc-network/qml/PageDSLSettings.qml + line: 70 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionPpp +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageDSLSettings.qml + line: 107 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: PageDslsettings_NetButton +- element_type: Button + id: '' + source_file: dcc-network/qml/PageDSLSettings.qml + line: 138 + column: 25 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Cancel + role: push button + suggested_name: Cancel_4 +- element_type: Button + id: '' + source_file: dcc-network/qml/PageDSLSettings.qml + line: 149 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: push button + suggested_name: Component_Button_2 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageDSLSettings.qml + line: 182 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Cancel + role: '' + suggested_name: Cancel_5 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageDSLSettings.qml + line: 195 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Save + role: '' + suggested_name: Save_3 +- element_type: ItemDelegate + id: '' + source_file: dcc-network/qml/PageDetails.qml + line: 121 + column: 39 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Repeater + object_name: '' + text_property: modelData + role: push button + suggested_name: ModelData +- element_type: TextInput + id: textInput + source_file: dcc-network/qml/PageDetails.qml + line: 132 + column: 42 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: ItemDelegate + object_name: '' + text_property: modelData + role: text + suggested_name: TextInput +- element_type: Menu + id: '' + source_file: dcc-network/qml/PageDetails.qml + line: 144 + column: 60 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Loader + object_name: '' + text_property: '' + role: menu + suggested_name: Loader_Menu +- element_type: MenuItem + id: '' + source_file: dcc-network/qml/PageDetails.qml + line: 145 + column: 47 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Menu + object_name: '' + text_property: Copy + role: menu item + suggested_name: Copy +- element_type: MenuItem + id: '' + source_file: dcc-network/qml/PageDetails.qml + line: 152 + column: 47 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Menu + object_name: '' + text_property: Select All + role: menu item + suggested_name: SelectAll +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageDetails.qml + line: 191 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Network Detection + role: '' + suggested_name: NetworkDetection +- element_type: Switch + id: switchControl + source_file: dcc-network/qml/PageHotspot.qml + line: 102 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: toggle button + suggested_name: SwitchControl_2 +- element_type: NetItemEditor + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 268 + column: 33 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Name (SSID) + role: '' + suggested_name: NameSsid +- element_type: NetItemEditor + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 282 + column: 33 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Security + role: '' + suggested_name: Security +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 285 + column: 48 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: NetItemEditor + object_name: '' + text_property: '' + role: combo box + suggested_name: NetItemEditor_ComboBox +- element_type: NetItemEditor + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 311 + column: 33 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Password + role: '' + suggested_name: Password_2 +- element_type: NetItemEditor + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 335 + column: 33 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Band + role: '' + suggested_name: Band +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 338 + column: 48 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: NetItemEditor + object_name: '' + text_property: '' + role: combo box + suggested_name: NetItemEditor_ComboBox_2 +- element_type: Button + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 366 + column: 29 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Cancel + role: push button + suggested_name: Cancel_8 +- element_type: TextInput + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 469 + column: 25 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: 802-11-wireless-security + role: text + suggested_name: 80211WirelessSecurity +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/PageHotspot.qml + line: 535 + column: 25 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: PageHotspot_ComboBox +- element_type: SectionGeneric + id: sectionGeneric + source_file: dcc-network/qml/PageSettings.qml + line: 39 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionGeneric_3 +- element_type: SectionSecret + id: sectionSecret + source_file: dcc-network/qml/PageSettings.qml + line: 46 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionSecret +- element_type: SectionIPv4 + id: sectionIPv4 + source_file: dcc-network/qml/PageSettings.qml + line: 52 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionIpv4_3 +- element_type: SectionIPv6 + id: sectionIPv6 + source_file: dcc-network/qml/PageSettings.qml + line: 58 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionIpv6_2 +- element_type: SectionDNS + id: sectionDNS + source_file: dcc-network/qml/PageSettings.qml + line: 64 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionDns_3 +- element_type: SectionDevice + id: sectionDevice + source_file: dcc-network/qml/PageSettings.qml + line: 70 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionDevice_2 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageSettings.qml + line: 111 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: PageSettings_NetButton +- element_type: Button + id: '' + source_file: dcc-network/qml/PageSettings.qml + line: 142 + column: 25 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Cancel + role: push button + suggested_name: Cancel_6 +- element_type: Button + id: '' + source_file: dcc-network/qml/PageSettings.qml + line: 153 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: push button + suggested_name: Component_Button_3 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageSettings.qml + line: 186 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Cancel + role: '' + suggested_name: Cancel_7 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageSettings.qml + line: 199 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Save + role: '' + suggested_name: Save_4 +- element_type: Switch + id: '' + source_file: dcc-network/qml/PageSystemProxy.qml + line: 45 + column: 11 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: toggle button + suggested_name: Component_Switch_2 +- element_type: Switch + id: '' + source_file: dcc-network/qml/PageSystemProxy.qml + line: 71 + column: 25 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: PageSystemProxy_Switch +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/PageSystemProxy.qml + line: 102 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: PageSystemProxy_ComboBox +- element_type: SystemProxyConfigItem + id: http + source_file: dcc-network/qml/PageSystemProxy.qml + line: 164 + column: 13 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: Http +- element_type: SystemProxyConfigItem + id: https + source_file: dcc-network/qml/PageSystemProxy.qml + line: 180 + column: 13 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: Https +- element_type: SystemProxyConfigItem + id: ftp + source_file: dcc-network/qml/PageSystemProxy.qml + line: 196 + column: 13 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: Ftp +- element_type: SystemProxyConfigItem + id: socks + source_file: dcc-network/qml/PageSystemProxy.qml + line: 212 + column: 13 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: Socks +- element_type: TextArea + id: '' + source_file: dcc-network/qml/PageSystemProxy.qml + line: 237 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: dccObj.config + role: text + suggested_name: DccObjConfig +- element_type: Button + id: '' + source_file: dcc-network/qml/PageSystemProxy.qml + line: 281 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: dccObj.displayName + role: push button + suggested_name: DccObjDisplayName +- element_type: Button + id: '' + source_file: dcc-network/qml/PageSystemProxy.qml + line: 301 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: dccObj.displayName + role: push button + suggested_name: DccObjDisplayName_2 +- element_type: Switch + id: '' + source_file: dcc-network/qml/PageVPN.qml + line: 26 + column: 11 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: toggle button + suggested_name: Component_Switch +- element_type: ItemDelegate + id: itemDelegate + source_file: dcc-network/qml/PageVPN.qml + line: 67 + column: 35 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Repeater + object_name: '' + text_property: model.item.name + role: push button + suggested_name: ItemDelegate +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageVPN.qml + line: 85 + column: 33 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: ItemDelegate + object_name: '' + text_property: Disconnect + role: '' + suggested_name: Disconnect +- element_type: PageVPNSettings + id: vpnSettings + source_file: dcc-network/qml/PageVPN.qml + line: 121 + column: 17 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: VpnSettings +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageVPN.qml + line: 175 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Import VPN + role: '' + suggested_name: ImportVpn +- element_type: Button + id: '' + source_file: dcc-network/qml/PageVPN.qml + line: 231 + column: 29 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: OK + role: push button + suggested_name: Ok +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageVPN.qml + line: 246 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Add VPN + role: '' + suggested_name: AddVpn +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/PageVPNSettings.qml + line: 75 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: PageVpnsettings_ComboBox +- element_type: SectionGeneric + id: sectionGeneric + source_file: dcc-network/qml/PageVPNSettings.qml + line: 117 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionGeneric +- element_type: SectionVPN + id: sectionVPN + source_file: dcc-network/qml/PageVPNSettings.qml + line: 123 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionVpn +- element_type: SectionIPv4 + id: sectionIPv4 + source_file: dcc-network/qml/PageVPNSettings.qml + line: 130 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionIpv4 +- element_type: SectionIPv6 + id: sectionIPv6 + source_file: dcc-network/qml/PageVPNSettings.qml + line: 138 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionIpv6 +- element_type: SectionDNS + id: sectionDNS + source_file: dcc-network/qml/PageVPNSettings.qml + line: 159 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionDns +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageVPNSettings.qml + line: 178 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: PageVpnsettings_NetButton +- element_type: Button + id: '' + source_file: dcc-network/qml/PageVPNSettings.qml + line: 209 + column: 25 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: Cancel + role: push button + suggested_name: Cancel +- element_type: Button + id: '' + source_file: dcc-network/qml/PageVPNSettings.qml + line: 220 + column: 27 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: push button + suggested_name: Component_Button +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageVPNSettings.qml + line: 244 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Export + role: '' + suggested_name: Export +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageVPNSettings.qml + line: 281 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Cancel + role: '' + suggested_name: Cancel_2 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageVPNSettings.qml + line: 294 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Save + role: '' + suggested_name: Save +- element_type: DeviceStatusItem + id: '' + source_file: dcc-network/qml/PageWiredDevice.qml + line: 28 + column: 11 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: PageWiredDevice_DeviceStatusItem +- element_type: DeviceStatusItem + id: '' + source_file: dcc-network/qml/PageWiredDevice.qml + line: 50 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: PageWiredDevice_DeviceStatusItem_2 +- element_type: ItemDelegate + id: itemDelegate + source_file: dcc-network/qml/PageWiredDevice.qml + line: 87 + column: 35 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Repeater + object_name: '' + text_property: model.item.name + role: push button + suggested_name: ItemDelegate_4 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageWiredDevice.qml + line: 133 + column: 37 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: ItemDelegate + object_name: '' + text_property: model.item.status + role: '' + suggested_name: ModelItemStatus_2 +- element_type: PageSettings + id: wiredSettings + source_file: dcc-network/qml/PageWiredDevice.qml + line: 282 + column: 17 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: WiredSettings +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageWiredDevice.qml + line: 332 + column: 23 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: dccObj.displayName + role: '' + suggested_name: DccObjDisplayName_3 +- element_type: DeviceStatusItem + id: '' + source_file: dcc-network/qml/PageWirelessDevice.qml + line: 30 + column: 11 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: PageWirelessDevice_DeviceStatusItem +- element_type: ItemDelegate + id: itemDelegate + source_file: dcc-network/qml/PageWirelessDevice.qml + line: 51 + column: 35 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Repeater + object_name: '' + text_property: model.item.name + role: push button + suggested_name: ItemDelegate_3 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/PageWirelessDevice.qml + line: 97 + column: 37 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: ItemDelegate + object_name: '' + text_property: model.item.status + role: '' + suggested_name: ModelItemStatus +- element_type: ItemDelegate + id: '' + source_file: dcc-network/qml/PageWirelessDevice.qml + line: 248 + column: 35 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Repeater + object_name: '' + text_property: '' + role: push button + suggested_name: Repeater_ItemDelegate +- element_type: DeviceStatusItem + id: '' + source_file: dcc-network/qml/PageWirelessDevice.qml + line: 284 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: PageWirelessDevice_DeviceStatusItem_2 +- element_type: PageSettings + id: wirelessSettings + source_file: dcc-network/qml/PageWirelessDevice.qml + line: 409 + column: 9 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: WirelessSettings +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionDevice.qml + line: 109 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionDevice_ComboBox +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionDevice.qml + line: 169 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionDevice_Switch +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionDevice.qml + line: 185 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionDevice_SpinBox +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionGeneric.qml + line: 87 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionGeneric_Switch +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionGeneric.qml + line: 103 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionGeneric_ComboBox +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionIPv4.qml + line: 227 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionIpv4_ComboBox +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionIPv4.qml + line: 261 + column: 17 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionIpv4_Switch +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionIPv4.qml + line: 291 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionIpv4_ComboBox_2 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionIPv6.qml + line: 230 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionIpv6_ComboBox +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionIPv6.qml + line: 264 + column: 17 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionIpv6_Switch +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionIPv6.qml + line: 293 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionIpv6_ComboBox_2 +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionIPv6.qml + line: 440 + column: 29 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionIpv6_SpinBox +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionPPP.qml + line: 41 + column: 11 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: toggle button + suggested_name: Component_Switch_3 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionPPP.qml + line: 63 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionPpp_Switch +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionPPP.qml + line: 186 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionPpp_Switch_2 +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SectionPPPOE.qml + line: 99 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: password + role: '' + suggested_name: Password +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 339 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionSecret_ComboBox +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 377 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionSecret_Switch +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 395 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionSecret_ComboBox_2 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 448 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionSecret_ComboBox_3 +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 480 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: root.pwdStr + role: '' + suggested_name: RootPwdStr +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 494 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionSecret_ComboBox_4 +- element_type: NetFileChooseEdit + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 523 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: private-key + role: '' + suggested_name: PrivateKey +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 556 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionSecret_ComboBox_5 +- element_type: NetFileChooseEdit + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 594 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionSecret_NetFileChooseEdit +- element_type: NetFileChooseEdit + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 608 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: '' + suggested_name: SectionSecret_NetFileChooseEdit_2 +- element_type: NetFileChooseEdit + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 622 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: Required + role: '' + suggested_name: Required +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 637 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionSecret_ComboBox_6 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionSecret.qml + line: 672 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionSecret_ComboBox_7 +- element_type: NetButton + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 377 + column: 13 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '...' + role: '' + suggested_name: Component_NetButton +- element_type: NetButton + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 412 + column: 13 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '...' + role: '' + suggested_name: Component_NetButton_2 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 496 + column: 11 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: Component + object_name: '' + text_property: '' + role: toggle button + suggested_name: Component_Switch_4 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 596 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox +- element_type: NetButton + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 656 + column: 17 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '...' + role: '' + suggested_name: SectionVpn_NetButton +- element_type: NetButton + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 697 + column: 17 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '...' + role: '' + suggested_name: SectionVpn_NetButton_2 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 745 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_2 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 798 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_3 +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 836 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: root.secretMap.hasOwnPropertydccObj.nameroot.secretMap + role: '' + suggested_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 870 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_4 +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 900 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: root.secretMap.hasOwnPropertydccObj.nameroot.secretMap + role: '' + suggested_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_2 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 924 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 944 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_5 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1035 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_2 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1092 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_6 +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1123 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: root.secretMap.hasOwnPropertydccObj.nameroot.secretMap + role: '' + suggested_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_3 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1147 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_7 +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1178 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: root.secretMap.hasOwnPropertydccObj.nameroot.secretMap + role: '' + suggested_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_4 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1192 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_3 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1241 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_4 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1257 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_8 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1397 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_5 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1513 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_6 +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1534 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionVpn_SpinBox +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1557 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_7 +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1578 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionVpn_SpinBox_2 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1601 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_8 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1639 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_9 +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1660 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionVpn_SpinBox_3 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1683 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_10 +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1704 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionVpn_SpinBox_4 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1772 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_9 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1807 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_10 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1836 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_11 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1868 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_12 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1897 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_13 +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1932 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionVpn_SpinBox_5 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1955 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_11 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 1992 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_14 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 2066 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_15 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 2134 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_16 +- element_type: SpinBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 2175 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: spin box + suggested_name: SectionVpn_SpinBox_6 +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 2222 + column: 19 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: root.secretMap.hasOwnPropertydccObj.nameroot.secretMap + role: '' + suggested_name: RootSecretMapHasOwnPropertydccObjNamerootSecretMap_5 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 2262 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_17 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 2304 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SectionVpn_Switch_12 +- element_type: ComboBox + id: '' + source_file: dcc-network/qml/SectionVPN.qml + line: 2325 + column: 21 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: combo box + suggested_name: SectionVpn_ComboBox_18 +- element_type: Switch + id: '' + source_file: dcc-network/qml/SystemProxyConfigItem.qml + line: 93 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: '' + role: toggle button + suggested_name: SystemProxyConfigItem_Switch +- element_type: NetPasswordEdit + id: '' + source_file: dcc-network/qml/SystemProxyConfigItem.qml + line: 140 + column: 15 + has_accessible_name: false + has_accessible_role: false + has_accessible_ignored: false + accessible_name: '' + accessible_role: '' + parent_type: '' + object_name: '' + text_property: root.config.password + role: '' + suggested_name: RootConfigPassword diff --git a/tests/at/spi/qml_ok.yaml b/tests/at/spi/qml_ok.yaml new file mode 100644 index 000000000..5afef4354 --- /dev/null +++ b/tests/at/spi/qml_ok.yaml @@ -0,0 +1,5 @@ +# SPDX-FileCopyrightText: 2026 UnionTech Software Technology Co., Ltd. +# SPDX-License-Identifier: LGPL-3.0-or-later +version: '1.0' +source: qml +widgets: [] diff --git a/tests/at/spi/qml_report.json b/tests/at/spi/qml_report.json new file mode 100644 index 000000000..2f4f9db5e --- /dev/null +++ b/tests/at/spi/qml_report.json @@ -0,0 +1,13 @@ +{ + "version": "1.0", + "source_dir": "/home/deepin/dde-network-core", + "stats": { + "total_files": 29 + }, + "summary": { + "total_elements": 178, + "with_names": 0, + "missing_names": 178, + "coverage": "0.0%" + } +} \ No newline at end of file