diff options
Diffstat (limited to 'tests/manual/wasm/a11y')
-rw-r--r-- | tests/manual/wasm/a11y/CMakeLists.txt | 3 | ||||
-rw-r--r-- | tests/manual/wasm/a11y/basic_widgets/CMakeLists.txt | 21 | ||||
-rw-r--r-- | tests/manual/wasm/a11y/basic_widgets/basic_widgets.html | 24 | ||||
-rw-r--r-- | tests/manual/wasm/a11y/basic_widgets/basica11ywidget.cpp | 114 | ||||
-rw-r--r-- | tests/manual/wasm/a11y/basic_widgets/basica11ywidget.h | 41 | ||||
-rw-r--r-- | tests/manual/wasm/a11y/basic_widgets/main.cpp | 17 | ||||
-rw-r--r-- | tests/manual/wasm/a11y/basic_widgets/tabswidget.cpp | 63 | ||||
-rw-r--r-- | tests/manual/wasm/a11y/basic_widgets/tabswidget.h | 34 |
8 files changed, 317 insertions, 0 deletions
diff --git a/tests/manual/wasm/a11y/CMakeLists.txt b/tests/manual/wasm/a11y/CMakeLists.txt new file mode 100644 index 0000000000..5268d53c8b --- /dev/null +++ b/tests/manual/wasm/a11y/CMakeLists.txt @@ -0,0 +1,3 @@ +if(QT_FEATURE_widgets) +add_subdirectory(basic_widgets) +endif() diff --git a/tests/manual/wasm/a11y/basic_widgets/CMakeLists.txt b/tests/manual/wasm/a11y/basic_widgets/CMakeLists.txt new file mode 100644 index 0000000000..11534bdf68 --- /dev/null +++ b/tests/manual/wasm/a11y/basic_widgets/CMakeLists.txt @@ -0,0 +1,21 @@ +qt_internal_add_manual_test(a11y_basic_widgets + GUI + SOURCES + tabswidget.cpp + tabswidget.h + basica11ywidget.h + basica11ywidget.cpp + main.cpp + LIBRARIES + Qt::Core + Qt::Gui + Qt::Widgets +) + +add_custom_command( + TARGET a11y_basic_widgets PRE_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_CURRENT_SOURCE_DIR}/basic_widgets.html + ${CMAKE_CURRENT_BINARY_DIR}/basic_widgets.html + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/basic_widgets.html +) diff --git a/tests/manual/wasm/a11y/basic_widgets/basic_widgets.html b/tests/manual/wasm/a11y/basic_widgets/basic_widgets.html new file mode 100644 index 0000000000..091809be5c --- /dev/null +++ b/tests/manual/wasm/a11y/basic_widgets/basic_widgets.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> + +<script src="a11y_basic_widgets.js" async></script> + +<script> + window.onload = async () => { + let qt_instance = await a11y_basic_widgets_entry({ + qtContainerElements: [document.getElementById("qt_container")], + }); + } +</script> + + +</head> + +<body> + <h1>Qt Accessibility Tester</H1> + <div id="qt_container" style="width:640px; height:640px"></div> +</body> + +</html> diff --git a/tests/manual/wasm/a11y/basic_widgets/basica11ywidget.cpp b/tests/manual/wasm/a11y/basic_widgets/basica11ywidget.cpp new file mode 100644 index 0000000000..dc1688f5b9 --- /dev/null +++ b/tests/manual/wasm/a11y/basic_widgets/basica11ywidget.cpp @@ -0,0 +1,114 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "basica11ywidget.h" + +BasicA11yWidget::BasicA11yWidget() : + m_toolBar (new QToolBar()), + m_layout(new QVBoxLayout), + m_tabWidget(new QTabWidget) +{ + createActions(); + createMenus(); + createToolBar(); + m_lblDateTime =new QLabel("Select Chrono Menu for todays date and time."); + m_layout->addWidget(m_lblDateTime); + m_tabWidget->addTab(new GeneralTab(), ("General Widget")); + m_editView =new EditViewTab(); + m_tabWidget->addTab(m_editView, ("Edit Widget")); + m_layout->addWidget(m_tabWidget); + + m_layout->addStretch(); + + connect(m_editView, &EditViewTab::connectToToolBar, this,&BasicA11yWidget::connectToolBar); + setLayout(m_layout); + +} +void BasicA11yWidget::handleButton() { + + QDialog *asmSmplDlg = new QDialog(this); + QVBoxLayout *vlayout = new QVBoxLayout(asmSmplDlg); + asmSmplDlg->setWindowTitle("WebAssembly Dialog box "); + QLabel *label = new QLabel("Accessibility Demo sample application developed in Qt."); + QAbstractButton *bExit = new QPushButton("Exit"); + vlayout->addWidget(label); + vlayout->addWidget(bExit); + asmSmplDlg->setLayout(vlayout); + auto p = asmSmplDlg->palette(); + p.setColor( asmSmplDlg->backgroundRole(), Qt::gray); + asmSmplDlg->setPalette(p); + asmSmplDlg->show(); + asmSmplDlg->connect(bExit, SIGNAL(clicked()), asmSmplDlg, SLOT(close())); +} + +void BasicA11yWidget::createToolBar() +{ + m_copyAct = new QAction(tr("&Copy"), this); + m_copyAct->setShortcuts(QKeySequence::Copy); + + m_pasteAct = new QAction(tr("&Paste"), this); + m_pasteAct->setStatusTip(tr("To paste selected text")); + m_pasteAct->setShortcuts(QKeySequence::Paste); + + m_cutAct = new QAction(tr("C&ut"), this); + m_cutAct->setShortcuts(QKeySequence::Cut); + + m_toolBar->addAction(m_copyAct); + m_toolBar->addAction(m_cutAct); + m_toolBar->addAction(m_pasteAct); + m_layout->addWidget(m_toolBar); + +} +void BasicA11yWidget::connectToolBar() +{ + connect(m_copyAct, &QAction::triggered, m_editView->getTextEdit(), &QPlainTextEdit::copy); + connect(m_pasteAct, &QAction::triggered, m_editView->getTextEdit(), &QPlainTextEdit::paste); + connect(m_cutAct, &QAction::triggered, m_editView->getTextEdit(), &QPlainTextEdit::cut); +} +void BasicA11yWidget::createActions() +{ + m_DateAct = new QAction( tr("&Date"), this); + m_DateAct->setStatusTip(tr("To tell you todays date.")); + connect(m_DateAct, &QAction::triggered, this, &BasicA11yWidget::todaysDate); + + m_TimeAct = new QAction(tr("&Time"), this); + m_TimeAct->setStatusTip(tr("To tell you current time.")); + connect(m_TimeAct, &QAction::triggered, this, &BasicA11yWidget::currentTime); + +} +void BasicA11yWidget::createMenus() +{ + m_menuBar = new QMenuBar(); + + m_TodayMenu = m_menuBar->addMenu(tr("&Chrono")); + m_TodayMenu->addAction(m_DateAct); + m_TodayMenu->addAction(m_TimeAct); + + m_aboutAct = new QAction(tr("&About"), this); + m_aboutAct->setStatusTip(tr("Show the application's About box")); + connect(m_aboutAct, &QAction::triggered, this, &BasicA11yWidget::about); + + m_helpMenu = m_menuBar->addMenu(tr("&Help")); + m_helpMenu->addAction(m_aboutAct); + + m_layout->setMenuBar(m_menuBar); +} + +void BasicA11yWidget::todaysDate() +{ + QDateTime dt=QDateTime::currentDateTime(); + QString str = "Today's Date:"+ dt.date().toString(); + m_lblDateTime->setText(str); +} + +void BasicA11yWidget::currentTime() +{ + QDateTime dt=QDateTime::currentDateTime(); + QString str = "Current Time:"+ dt.time().toString(); + m_lblDateTime->setText(str); +} + +void BasicA11yWidget::about() +{ + handleButton(); +} diff --git a/tests/manual/wasm/a11y/basic_widgets/basica11ywidget.h b/tests/manual/wasm/a11y/basic_widgets/basica11ywidget.h new file mode 100644 index 0000000000..b990d163e5 --- /dev/null +++ b/tests/manual/wasm/a11y/basic_widgets/basica11ywidget.h @@ -0,0 +1,41 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include <QtWidgets> +#include "tabswidget.h" + +class BasicA11yWidget: public QWidget +{ + Q_OBJECT +private: + QMenu* m_helpMenu = nullptr; + QMenu* m_TodayMenu = nullptr; + QMenuBar* m_menuBar = nullptr; + QToolBar* m_toolBar = nullptr; + QLabel* m_lblDateTime = nullptr; + QVBoxLayout* m_layout = nullptr ; + QTabWidget* m_tabWidget = nullptr; + EditViewTab *m_editView = nullptr; + + QAction* m_DateAct = nullptr; + QAction* m_TimeAct = nullptr; + QAction* m_aboutAct = nullptr; + QAction* m_copyAct = nullptr; + QAction* m_pasteAct = nullptr; + QAction* m_cutAct = nullptr; + +public slots: + void connectToolBar(); +public: + BasicA11yWidget() ; + void createActions(); + void createMenus(); + void createToolBar(); + + void todaysDate(); + void currentTime(); + void about(); + QToolBar* getToolbar(){return m_toolBar;} + void handleButton(); + +}; diff --git a/tests/manual/wasm/a11y/basic_widgets/main.cpp b/tests/manual/wasm/a11y/basic_widgets/main.cpp new file mode 100644 index 0000000000..52d72428bb --- /dev/null +++ b/tests/manual/wasm/a11y/basic_widgets/main.cpp @@ -0,0 +1,17 @@ +// Copyright (C) 2022 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include <QApplication> +#include <QtWidgets> +#include "basica11ywidget.h" + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + + BasicA11yWidget a11yWidget; + a11yWidget.show(); + + return app.exec(); +} + diff --git a/tests/manual/wasm/a11y/basic_widgets/tabswidget.cpp b/tests/manual/wasm/a11y/basic_widgets/tabswidget.cpp new file mode 100644 index 0000000000..63428c965a --- /dev/null +++ b/tests/manual/wasm/a11y/basic_widgets/tabswidget.cpp @@ -0,0 +1,63 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#include "tabswidget.h" + +GeneralTab::GeneralTab(QWidget *parent) + : QWidget(parent) +{ + QVBoxLayout *layout = new QVBoxLayout(); + layout->setSizeConstraint(QLayout::SetMaximumSize); + + layout->addWidget(new QLabel("This is a text label")); + + QPushButton *btn = new QPushButton("This is a push button"); + layout->addWidget(btn); + connect(btn, &QPushButton::released, this, [=] () { + btn->setText("You clicked me"); + }); + + layout->addWidget(new QCheckBox("This is a check box")); + + layout->addWidget(new QRadioButton("Radio 1")); + layout->addWidget(new QRadioButton("Radio 2")); + + QSlider *slider = new QSlider(Qt::Horizontal); + slider->setTickInterval(10); + slider->setTickPosition(QSlider::TicksAbove); + layout->addWidget(slider); + + QSpinBox *spin = new QSpinBox(); + spin->setValue(10); + spin->setSingleStep(1); + layout->addWidget(spin); + layout->addStretch(); + + QScrollBar *scrollBar = new QScrollBar(Qt::Horizontal); + scrollBar->setFocusPolicy(Qt::StrongFocus); + layout->addWidget(scrollBar); + + setLayout(layout); +} + + +EditViewTab::EditViewTab(QWidget *parent) : + QWidget(parent) +{ + QVBoxLayout *layout = new QVBoxLayout(); + layout->setSizeConstraint(QLayout::SetMaximumSize); + textEdit = new QPlainTextEdit(); + textEdit->setPlaceholderText("Enter Text here"); + layout->addWidget(textEdit); + setLayout(layout); + +} + +void EditViewTab::showEvent( QShowEvent* event ) { + if (!b_connected) + { + emit connectToToolBar(); + b_connected=true; + } + QWidget::showEvent( event ); +} diff --git a/tests/manual/wasm/a11y/basic_widgets/tabswidget.h b/tests/manual/wasm/a11y/basic_widgets/tabswidget.h new file mode 100644 index 0000000000..6405c0dab7 --- /dev/null +++ b/tests/manual/wasm/a11y/basic_widgets/tabswidget.h @@ -0,0 +1,34 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +#ifndef TABDIALOG_H +#define TABDIALOG_H +#include <QTabWidget> +#include <QtWidgets> + +class GeneralTab : public QWidget +{ + Q_OBJECT + +public: + + explicit GeneralTab(QWidget *parent = nullptr); +}; + +class EditViewTab : public QWidget +{ + + Q_OBJECT +private: + bool b_connected = false; + QPlainTextEdit* textEdit =nullptr; + QToolBar* m_toolbar= nullptr; +public: + void showEvent( QShowEvent* event ) ; + QPlainTextEdit* getTextEdit(){return textEdit;} + explicit EditViewTab( QWidget *parent = nullptr); +signals: + void connectToToolBar(); +}; + +#endif |