summaryrefslogtreecommitdiffstats
path: root/tests/manual/wasm/a11y
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/wasm/a11y')
-rw-r--r--tests/manual/wasm/a11y/CMakeLists.txt3
-rw-r--r--tests/manual/wasm/a11y/basic_widgets/CMakeLists.txt21
-rw-r--r--tests/manual/wasm/a11y/basic_widgets/basic_widgets.html24
-rw-r--r--tests/manual/wasm/a11y/basic_widgets/basica11ywidget.cpp114
-rw-r--r--tests/manual/wasm/a11y/basic_widgets/basica11ywidget.h41
-rw-r--r--tests/manual/wasm/a11y/basic_widgets/main.cpp17
-rw-r--r--tests/manual/wasm/a11y/basic_widgets/tabswidget.cpp63
-rw-r--r--tests/manual/wasm/a11y/basic_widgets/tabswidget.h34
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