File indexing completed on 2024-05-19 05:35:24
0001 ////////////////////////////////////////////////////////////////////////////// 0002 // oxygenmdidemowidget.cpp 0003 // oxygen mdi windows demo widget 0004 // ------------------- 0005 // 0006 // SPDX-FileCopyrightText: 2010 Hugo Pereira Da Costa <hugo.pereira@free.fr> 0007 // 0008 // SPDX-License-Identifier: MIT 0009 ////////////////////////////////////////////////////////////////////////////// 0010 0011 #include "oxygenmdidemowidget.h" 0012 0013 #include <QIcon> 0014 #include <QMdiSubWindow> 0015 #include <QMenu> 0016 #include <QMenuBar> 0017 0018 namespace Oxygen 0019 { 0020 //______________________________________________________________ 0021 MdiDemoWidget::MdiDemoWidget(QWidget *parent) 0022 : DemoWidget(parent) 0023 { 0024 setLayout(new QVBoxLayout()); 0025 layout()->setContentsMargins(0, 0, 0, 0); 0026 QMenuBar *menuBar = new QMenuBar(this); 0027 layout()->addWidget(menuBar); 0028 0029 QWidget *widget = new QWidget(this); 0030 layout()->addWidget(widget); 0031 ui.setupUi(widget); 0032 0033 QMenu *menu = menuBar->addMenu(i18n("Layout")); 0034 connect(menu->addAction(i18n("Tile")), SIGNAL(triggered()), this, SLOT(setLayoutTiled())); 0035 connect(menu->addAction(i18n("Cascade")), SIGNAL(triggered()), this, SLOT(setLayoutCascade())); 0036 connect(menu->addAction(i18n("Tabs")), SIGNAL(triggered()), this, SLOT(setLayoutTabbed())); 0037 0038 menu = menuBar->addMenu(i18n("Tools")); 0039 QAction *action; 0040 connect(action = menu->addAction(QIcon::fromTheme(QStringLiteral("arrow-right")), i18n("Select Next Window")), 0041 SIGNAL(triggered()), 0042 ui.mdiArea, 0043 SLOT(activateNextSubWindow())); 0044 action->setShortcut(Qt::CTRL | Qt::Key_Tab); 0045 addAction(action); 0046 0047 connect(action = menu->addAction(QIcon::fromTheme(QStringLiteral("arrow-left")), i18n("Select Previous Window")), 0048 SIGNAL(triggered()), 0049 ui.mdiArea, 0050 SLOT(activatePreviousSubWindow())); 0051 action->setShortcut(Qt::CTRL | Qt::SHIFT | Qt::Key_Tab); 0052 addAction(action); 0053 } 0054 0055 //______________________________________________________________ 0056 void MdiDemoWidget::setLayoutTiled(void) 0057 { 0058 ui.mdiArea->setViewMode(QMdiArea::SubWindowView); 0059 ui.mdiArea->tileSubWindows(); 0060 } 0061 0062 //______________________________________________________________ 0063 void MdiDemoWidget::setLayoutCascade(void) 0064 { 0065 ui.mdiArea->setViewMode(QMdiArea::SubWindowView); 0066 ui.mdiArea->cascadeSubWindows(); 0067 } 0068 0069 //______________________________________________________________ 0070 void MdiDemoWidget::setLayoutTabbed(void) 0071 { 0072 ui.mdiArea->setViewMode(QMdiArea::TabbedView); 0073 } 0074 0075 //______________________________________________________________ 0076 void MdiDemoWidget::benchmark(void) 0077 { 0078 if (!isVisible()) 0079 return; 0080 0081 if (true) { 0082 // slide windows 0083 const auto children = ui.mdiArea->findChildren<QMdiSubWindow *>(); 0084 for (QMdiSubWindow *window : children) { 0085 simulator().click(window); 0086 simulator().slide(window, QPoint(20, 20)); 0087 simulator().slide(window, QPoint(-20, -20)); 0088 } 0089 } 0090 0091 if (true) { 0092 const auto children = ui.toolBox->findChildren<QAbstractButton *>(); 0093 0094 for (QAbstractButton *button : children) { 0095 simulator().click(button); 0096 } 0097 0098 for (QAbstractButton *button : children) { 0099 simulator().click(button); 0100 } 0101 } 0102 0103 simulator().run(); 0104 } 0105 }