File indexing completed on 2024-05-19 05:35:24

0001 //////////////////////////////////////////////////////////////////////////////
0002 // oxygentabdemowidget.cpp
0003 // oxygen tabwidget 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 "oxygentabdemowidget.h"
0012 
0013 #include <QIcon>
0014 
0015 namespace Oxygen
0016 {
0017 //______________________________________________________________
0018 TabDemoWidget::TabDemoWidget(QWidget *parent)
0019     : DemoWidget(parent)
0020     , _left(new QToolButton(nullptr))
0021     , _right(new QToolButton(nullptr))
0022 {
0023     ui.setupUi(this);
0024     connect(ui.tabPositionComboBox, SIGNAL(currentIndexChanged(int)), SLOT(changeTabPosition(int)));
0025     connect(ui.textPositionComboBox, SIGNAL(currentIndexChanged(int)), SLOT(changeTextPosition(int)));
0026     connect(ui.documentModeCheckBox, SIGNAL(toggled(bool)), SLOT(toggleDocumentMode(bool)));
0027     connect(ui.cornerWidgetsCheckBox, SIGNAL(toggled(bool)), SLOT(toggleCornerWidgets(bool)));
0028     connect(ui.tabCloseButtonsCheckBox, SIGNAL(toggled(bool)), SLOT(toggleTabCloseButtons(bool)));
0029     connect(ui.tabBarVisibilityCheckBox, SIGNAL(toggled(bool)), ui.tabWidget, SLOT(toggleTabBarVisibility(bool)));
0030     ui.textPositionComboBox->setCurrentIndex(1);
0031 
0032     _left->setIcon(QIcon::fromTheme(QStringLiteral("tab-new")));
0033     _left->setVisible(false);
0034 
0035     _right->setIcon(QIcon::fromTheme(QStringLiteral("tab-close")));
0036     _right->setText(tr("Right Corner Button"));
0037     _right->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
0038     _right->setVisible(false);
0039 }
0040 
0041 //______________________________________________________________
0042 void TabDemoWidget::toggleCornerWidgets(bool value)
0043 {
0044     if (value) {
0045         ui.tabWidget->setCornerWidget(_left, Qt::TopLeftCorner);
0046         ui.tabWidget->setCornerWidget(_right, Qt::TopRightCorner);
0047     } else {
0048         ui.tabWidget->setCornerWidget(nullptr, Qt::TopLeftCorner);
0049         ui.tabWidget->setCornerWidget(nullptr, Qt::TopRightCorner);
0050     }
0051 
0052     _left->setVisible(value);
0053     _right->setVisible(value);
0054     ui.tabWidget->adjustSize();
0055 }
0056 
0057 //______________________________________________________________
0058 void TabDemoWidget::toggleDocumentMode(bool value)
0059 {
0060     ui.tabWidget->setDocumentMode(value);
0061 }
0062 
0063 //______________________________________________________________
0064 void TabDemoWidget::toggleTabCloseButtons(bool value)
0065 {
0066     ui.tabWidget->setTabsClosable(value);
0067 }
0068 
0069 //______________________________________________________________
0070 void TabDemoWidget::changeTabPosition(int index)
0071 {
0072     switch (index) {
0073     case 1:
0074         ui.tabWidget->setTabPosition(QTabWidget::South);
0075         break;
0076 
0077     case 2:
0078         ui.tabWidget->setTabPosition(QTabWidget::West);
0079         break;
0080 
0081     case 3:
0082         ui.tabWidget->setTabPosition(QTabWidget::East);
0083         break;
0084 
0085     default:
0086     case 0:
0087         ui.tabWidget->setTabPosition(QTabWidget::North);
0088         break;
0089     }
0090 }
0091 
0092 //______________________________________________________________
0093 void TabDemoWidget::changeTextPosition(int index)
0094 {
0095     switch (index) {
0096     case 0:
0097         ui.tabWidget->hideText();
0098         ui.tabWidget->showIcons();
0099         break;
0100 
0101     case 1:
0102         ui.tabWidget->showText();
0103         ui.tabWidget->hideIcons();
0104         break;
0105 
0106     default:
0107     case 2:
0108         ui.tabWidget->showText();
0109         ui.tabWidget->showIcons();
0110         break;
0111     }
0112 }
0113 
0114 //______________________________________________________________
0115 void TabDemoWidget::benchmark(void)
0116 {
0117     if (!isVisible())
0118         return;
0119 
0120     if (true) {
0121         simulator().selectComboBoxItem(ui.tabPositionComboBox, 1);
0122         simulator().selectComboBoxItem(ui.tabPositionComboBox, 2);
0123         simulator().selectComboBoxItem(ui.tabPositionComboBox, 3);
0124         simulator().selectComboBoxItem(ui.tabPositionComboBox, 0);
0125 
0126         simulator().selectComboBoxItem(ui.textPositionComboBox, 0);
0127         simulator().selectComboBoxItem(ui.textPositionComboBox, 2);
0128         simulator().selectComboBoxItem(ui.textPositionComboBox, 1);
0129     }
0130 
0131     if (true) {
0132         simulator().click(ui.documentModeCheckBox);
0133         simulator().click(ui.documentModeCheckBox);
0134 
0135         simulator().click(ui.cornerWidgetsCheckBox);
0136         simulator().click(ui.cornerWidgetsCheckBox);
0137 
0138         simulator().click(ui.tabCloseButtonsCheckBox);
0139         simulator().click(ui.tabCloseButtonsCheckBox);
0140 
0141         simulator().click(ui.tabBarVisibilityCheckBox);
0142         simulator().click(ui.tabBarVisibilityCheckBox);
0143     }
0144 
0145     if (true) {
0146         simulator().selectTab(ui.tabWidget, 1);
0147         simulator().selectTab(ui.tabWidget, 2);
0148         simulator().selectTab(ui.tabWidget, 3);
0149         simulator().selectTab(ui.tabWidget, 0);
0150     }
0151 
0152     // run
0153     simulator().run();
0154 }
0155 }