diff options
author | Sunil Thaha <sunil.thaha@nokia.com> | 2012-08-21 15:11:48 +1000 |
---|---|---|
committer | Sunil Thaha <sunil.thaha+qt@gmail.com> | 2012-08-21 07:29:26 +0200 |
commit | 8b3982051badc30d387366bea517cbaaf0a44455 (patch) | |
tree | 56de6eb123760620910f5360407ee0929224777f /src/objectBrowser/qtestbrowserdlg_p.h | |
parent | eeb6f6284e40dd0182070b11f2e106437a31b7e1 (diff) |
QtSystemTest rocks
Initial version of QtSystemTest based on the former QtUiTest
Change-Id: I99b72d26dc623ce5e4a665d3dda380b9fe4eef9d
Reviewed-by: Shane Bradley <shane.bradley@nokia.com>
Reviewed-by: Sunil Thaha <sunil.thaha+qt@gmail.com>
Reviewed-by: David Clark <dac@dclark.org.uk>
Diffstat (limited to 'src/objectBrowser/qtestbrowserdlg_p.h')
-rw-r--r-- | src/objectBrowser/qtestbrowserdlg_p.h | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/src/objectBrowser/qtestbrowserdlg_p.h b/src/objectBrowser/qtestbrowserdlg_p.h new file mode 100644 index 0000000..ecdfa8e --- /dev/null +++ b/src/objectBrowser/qtestbrowserdlg_p.h @@ -0,0 +1,210 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of QtSystemTest. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + + +#ifndef QTESTBROWSERDLG_P_H +#define QTESTBROWSERDLG_P_H + +#include <QDialog> +#include <QLabel> +#include <QVariant> +#include <QVariantMap> +#include <QtSystemTest/qstglobal.h> + +class QstConnection; + +QT_BEGIN_NAMESPACE +class QAction; +class QMenu; +class QPushButton; +class QMouseEvent; +class QPaintEvent; +class QTreeWidget; +class QTreeWidgetItem; +class QTableWidget; +class QTableWidgetItem; +class QComboBox; +class QLineEdit; +class QSpinBox; +class QTabWidget; +class QCheckBox; +QT_END_NAMESPACE + +class TestImageViewer : public QLabel +{ + Q_OBJECT + +public: + TestImageViewer( QWidget * parent = 0, Qt::WindowFlags f = 0 ); + ~TestImageViewer(); + void setSelectedArea(const QRect& rect); + +protected: + void mouseReleaseEvent(QMouseEvent *event); + void paintEvent(QPaintEvent *event); + +signals: + void clicked(const QPoint&); + +private: + QRect m_selectedArea; +}; + +class QSYSTEMTEST_EXPORT QTestBrowserDlg : public QDialog +{ + Q_OBJECT + +public: + QTestBrowserDlg(QstConnection*, const QVariantMap& = QVariantMap(), const QVariantMap& = QVariantMap()); + ~QTestBrowserDlg(); + + virtual QSize sizeHint() const; + virtual void contextMenuEvent(QContextMenuEvent *e); + void setSystemTest ( QstConnection *test ); + void setImage( const QPixmap& ); + void setBaseItems( const QVariantMap& = QVariantMap(), const QVariantMap& = QVariantMap() ); + void setObjectMap ( const QVariantMap& ); + +public slots: + void closeWindow(); + void onImageClicked(const QPoint&); + void onItemChanged(QTreeWidgetItem *item, QTreeWidgetItem *prev); + void onAppContextChanged(const QString& context); + void addQueryRow(const QString &property = QString(), const QVariant &value = QString()); + void doQuery(); + void clearQuery(); + void copyQuery(); + void expandAll(); + void collapseAll(); + void refresh(); + void refreshImage(); + void showMatch(int); + void viewMethods(); + void selectItem(const QString& item); + void onPropertyDoubleClicked(QTableWidgetItem *item); + void onTabCloseRequested(int); + void onPropertyContextMenu(const QPoint&); + void onMethodsContextMenu(const QPoint&); + void refreshProperties(); + void viewPropertyMethods(); + void viewPropertyProperties(); + void addPropertyAsQueryCondition(); + void copyTableItemValue(); + void copyTable(); + void onConnectionClosed(); + void onQueryItemChanged(QTableWidgetItem *item); + void onQueryContextMenu(const QPoint&); + void onResultsItemSelected(); + void onMenuQueryCondition(QAction *action); + void onAppFinished(const QString&); + void onAppStarted(const QString&); + +protected: + bool eventFilter( QObject *obj, QEvent *event); + +private: + void createActions(); + void createWidgets(); + QTabWidget *createQueryTab(); + void updateAppContext(); + + void addItemToTree(const QString &item, QTreeWidgetItem *parent = 0); + void initTable(QTableWidget *table, const QStringList&); + void initPropertyTable(QTableWidget *table); + void initMethodsTable(QTableWidget *table); + void updatePropertyTable(QTableWidget *table, const QVariantMap &propertyMap); + void updateMethodsTable(QTableWidget *table, const QVariantList &methods); + QTableWidgetItem *valueToTableItem(const QVariant &value, const QVariant &previous = QVariant()); + QString valueToString(const QVariant &value); + QString currentTabSignature() const; + bool tableItemIsWidgetIdentifier(const QTableWidgetItem *item); + QVariantMap widgetSpec(const QString &signature); + void openPropertyTab(const QString &signature); + QVariantMap queryMap() const; + + QVariantMap m_baseItem; + QVariantMap m_imgItem; + QString m_appId; + QString m_visibleTabItem; + QPoint m_origin; + QVariantMap m_map; + QVariantMap m_geometry; + QVariantMap m_children; + QVariantMap m_window; + QMap<QString,QTreeWidgetItem*> m_treeMap; + QStringList m_matches; + QStringList m_tabItemSignatures; + QString m_currentWindowSignature; + + QstConnection *m_test; + TestImageViewer *m_image; + QComboBox *m_appContext; + QTreeWidget *m_tree; + QTabWidget *m_queryTab; + QTabWidget *m_propertyTab; + QTableWidget *m_itemPropertyTable; + QTableWidget *m_queryTable; + QTableWidget *m_resultsTable; + QTableWidgetItem *m_contextTableItem; + + QCheckBox *m_flagInvisible; + QCheckBox *m_flagDisabled; + QCheckBox *m_flagIgnoreScan; + + QAction *m_refreshAction; + QAction *m_expandAction; + QAction *m_collapseAction; + QAction *m_methodsAction; + + // Table context menu actions + QAction *m_propertyRefreshAction; + QAction *m_propertyMethodsAction; + QAction *m_propertyPropertiesAction; + QAction *m_propertyQueryAction; + QAction *m_propertyCopyAction; + QAction *m_propertyCopyTableAction; + + // Query actions + QAction *m_queryClearAction; + QAction *m_queryCopyAction; +}; + +#endif |