From 1ce49a21e5991821f258f3cfe124ba7a987c29ad Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 12 Feb 2016 13:40:23 +0100 Subject: Add a control for manual testing. Task-number: QTBUG-41186 Task-number: QTBUG-50206 Change-Id: I5de37c187e40ddbe3eccb07b01f895897196ece1 Reviewed-by: Joerg Bornemann --- tests/manual/testcontrol/main.cpp | 124 ++++++++++++++++++++++++++++++ tests/manual/testcontrol/testcontrol.html | 9 +++ tests/manual/testcontrol/testcontrol.ico | Bin 0 -> 766 bytes tests/manual/testcontrol/testcontrol.pro | 6 ++ tests/manual/testcontrol/testcontrol.rc | 2 + 5 files changed, 141 insertions(+) create mode 100644 tests/manual/testcontrol/main.cpp create mode 100644 tests/manual/testcontrol/testcontrol.html create mode 100644 tests/manual/testcontrol/testcontrol.ico create mode 100644 tests/manual/testcontrol/testcontrol.pro create mode 100644 tests/manual/testcontrol/testcontrol.rc (limited to 'tests') diff --git a/tests/manual/testcontrol/main.cpp b/tests/manual/testcontrol/main.cpp new file mode 100644 index 0000000..7baa8f6 --- /dev/null +++ b/tests/manual/testcontrol/main.cpp @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +/* A sample control for testing embedding Active X controls with + * functionality to dump window parameters. See testcontrol.html + * on how to use it with Internet Explorer. */ + +QT_USE_NAMESPACE + +class QTestControl : public QMainWindow +{ + Q_OBJECT + Q_CLASSINFO("ClassID", "{DF16845C-92CD-4AAB-A982-EB9840E7466A}") + Q_CLASSINFO("InterfaceID", "{616F620B-91C5-4410-A74E-6B81C76FFFE1}") + Q_CLASSINFO("EventsID", "{E1816BBA-BF5D-4A31-9855-D6BA43205510}") + +public: + explicit QTestControl(QWidget *parent = Q_NULLPTR); + +public slots: + void appendText(const QString &t) { m_logWindow->appendPlainText(t); } + void testMapToGlobal(); + void dumpWindowInfo(); + void copyAll(); + +private: + QPlainTextEdit *m_logWindow; +}; + +QTestControl::QTestControl(QWidget *parent) + : QMainWindow(parent) + , m_logWindow(new QPlainTextEdit) +{ + QMenuBar *menubar = menuBar(); + QToolBar *toolbar = new QToolBar; + addToolBar(Qt::TopToolBarArea, toolbar); + QMenu *testMenu = menubar->addMenu(QLatin1String("&Test")); + QAction *a = testMenu->addAction(QLatin1String("&Dump Window"), this, &QTestControl::dumpWindowInfo); + toolbar->addAction(a); + a = testMenu->addAction(QLatin1String("&Map to Global"), this, &QTestControl::testMapToGlobal); + toolbar->addAction(a); + + QMenu *editMenu = menubar->addMenu(QLatin1String("&Edit")); + a = editMenu->addAction(QLatin1String("Copy"), this, &QTestControl::dumpWindowInfo); + a->setShortcut(QKeySequence::Copy); + toolbar->addAction(a); + + m_logWindow->setReadOnly(true); + setCentralWidget(m_logWindow); + appendText(QLatin1String(QLibraryInfo::build())); +} + +void QTestControl::testMapToGlobal() +{ + QString text; + QPoint global = mapToGlobal(QPoint(0, 0)); + QDebug(&text) << "\nmapToGlobal:" << global << ", back:" << mapFromGlobal(global) << '\n'; + appendText(text); +} + +void QTestControl::dumpWindowInfo() +{ + QString text; + QDebug debug(&text); + debug.setVerbosity(3); + debug << "\nQWidget: " << this <<"\n\nQWindow: " << windowHandle() << '\n'; + appendText(text); +} + +void QTestControl::copyAll() +{ + QGuiApplication::clipboard()->setText(m_logWindow->toPlainText()); +} + +#include "main.moc" + +QAXFACTORY_BEGIN("{EC08F8FC-2754-47AB-8EFE-56A54057F34F}", "{A095BA0C-224F-4933-A458-2DD7F6B85D90}") + QAXCLASS(QTestControl) +QAXFACTORY_END() diff --git a/tests/manual/testcontrol/testcontrol.html b/tests/manual/testcontrol/testcontrol.html new file mode 100644 index 0000000..f809f68 --- /dev/null +++ b/tests/manual/testcontrol/testcontrol.html @@ -0,0 +1,9 @@ + + +[Object not available! Did you forget to build and register the server?] + diff --git a/tests/manual/testcontrol/testcontrol.ico b/tests/manual/testcontrol/testcontrol.ico new file mode 100644 index 0000000..c80d36a Binary files /dev/null and b/tests/manual/testcontrol/testcontrol.ico differ diff --git a/tests/manual/testcontrol/testcontrol.pro b/tests/manual/testcontrol/testcontrol.pro new file mode 100644 index 0000000..30a0b48 --- /dev/null +++ b/tests/manual/testcontrol/testcontrol.pro @@ -0,0 +1,6 @@ +QT += widgets axserver +TARGET = testcontrol +TEMPLATE = app +SOURCES += main.cpp +CONFIG += warn_off +RC_FILE = testcontrol.rc diff --git a/tests/manual/testcontrol/testcontrol.rc b/tests/manual/testcontrol/testcontrol.rc new file mode 100644 index 0000000..7fa8736 --- /dev/null +++ b/tests/manual/testcontrol/testcontrol.rc @@ -0,0 +1,2 @@ +1 TYPELIB "testcontrol.rc" +1 ICON DISCARDABLE "testcontrol.ico" -- cgit v1.2.1