examples/widgets/styles/widgetgallery.cpp
changeset 0 1918ee327afb
child 3 41300fa6a67c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/examples/widgets/styles/widgetgallery.cpp	Mon Jan 11 14:00:40 2010 +0000
@@ -0,0 +1,276 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the examples of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** 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 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.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtGui>
+
+#include "norwegianwoodstyle.h"
+#include "widgetgallery.h"
+
+//! [0]
+WidgetGallery::WidgetGallery(QWidget *parent)
+    : QDialog(parent)
+{
+    originalPalette = QApplication::palette();
+
+    styleComboBox = new QComboBox;
+    styleComboBox->addItem("NorwegianWood");
+    styleComboBox->addItems(QStyleFactory::keys());
+
+    styleLabel = new QLabel(tr("&Style:"));
+    styleLabel->setBuddy(styleComboBox);
+
+    useStylePaletteCheckBox = new QCheckBox(tr("&Use style's standard palette"));
+    useStylePaletteCheckBox->setChecked(true);
+
+    disableWidgetsCheckBox = new QCheckBox(tr("&Disable widgets"));
+
+    createTopLeftGroupBox();
+    createTopRightGroupBox();
+    createBottomLeftTabWidget();
+    createBottomRightGroupBox();
+    createProgressBar();
+//! [0]
+
+//! [1]
+    connect(styleComboBox, SIGNAL(activated(const QString &)),
+//! [1] //! [2]
+            this, SLOT(changeStyle(const QString &)));
+    connect(useStylePaletteCheckBox, SIGNAL(toggled(bool)),
+            this, SLOT(changePalette()));
+    connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)),
+            topLeftGroupBox, SLOT(setDisabled(bool)));
+    connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)),
+            topRightGroupBox, SLOT(setDisabled(bool)));
+    connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)),
+            bottomLeftTabWidget, SLOT(setDisabled(bool)));
+    connect(disableWidgetsCheckBox, SIGNAL(toggled(bool)),
+            bottomRightGroupBox, SLOT(setDisabled(bool)));
+//! [2]
+
+//! [3]
+    QHBoxLayout *topLayout = new QHBoxLayout;
+//! [3] //! [4]
+    topLayout->addWidget(styleLabel);
+    topLayout->addWidget(styleComboBox);
+    topLayout->addStretch(1);
+    topLayout->addWidget(useStylePaletteCheckBox);
+    topLayout->addWidget(disableWidgetsCheckBox);
+
+    QGridLayout *mainLayout = new QGridLayout;
+    mainLayout->addLayout(topLayout, 0, 0, 1, 2);
+    mainLayout->addWidget(topLeftGroupBox, 1, 0);
+    mainLayout->addWidget(topRightGroupBox, 1, 1);
+    mainLayout->addWidget(bottomLeftTabWidget, 2, 0);
+    mainLayout->addWidget(bottomRightGroupBox, 2, 1);
+    mainLayout->addWidget(progressBar, 3, 0, 1, 2);
+    mainLayout->setRowStretch(1, 1);
+    mainLayout->setRowStretch(2, 1);
+    mainLayout->setColumnStretch(0, 1);
+    mainLayout->setColumnStretch(1, 1);
+    setLayout(mainLayout);
+
+    setWindowTitle(tr("Styles"));
+    changeStyle("NorwegianWood");
+}
+//! [4]
+
+//! [5]
+void WidgetGallery::changeStyle(const QString &styleName)
+//! [5] //! [6]
+{
+    if (styleName == "NorwegianWood") {
+        QApplication::setStyle(new NorwegianWoodStyle);
+    } else {
+        QApplication::setStyle(QStyleFactory::create(styleName));
+    }
+    changePalette();
+}
+//! [6]
+
+//! [7]
+void WidgetGallery::changePalette()
+//! [7] //! [8]
+{
+    if (useStylePaletteCheckBox->isChecked())
+        QApplication::setPalette(QApplication::style()->standardPalette());
+    else
+        QApplication::setPalette(originalPalette);
+}
+//! [8]
+
+//! [9]
+void WidgetGallery::advanceProgressBar()
+//! [9] //! [10]
+{
+    int curVal = progressBar->value();
+    int maxVal = progressBar->maximum();
+    progressBar->setValue(curVal + (maxVal - curVal) / 100);
+}
+//! [10]
+
+//! [11]
+void WidgetGallery::createTopLeftGroupBox()
+//! [11] //! [12]
+{
+    topLeftGroupBox = new QGroupBox(tr("Group 1"));
+
+    radioButton1 = new QRadioButton(tr("Radio button 1"));
+    radioButton2 = new QRadioButton(tr("Radio button 2"));
+    radioButton3 = new QRadioButton(tr("Radio button 3"));
+    radioButton1->setChecked(true);
+
+    checkBox = new QCheckBox(tr("Tri-state check box"));
+    checkBox->setTristate(true);
+    checkBox->setCheckState(Qt::PartiallyChecked);
+
+    QVBoxLayout *layout = new QVBoxLayout;
+    layout->addWidget(radioButton1);
+    layout->addWidget(radioButton2);
+    layout->addWidget(radioButton3);
+    layout->addWidget(checkBox);
+    layout->addStretch(1);
+    topLeftGroupBox->setLayout(layout);
+}
+//! [12]
+
+void WidgetGallery::createTopRightGroupBox()
+{
+    topRightGroupBox = new QGroupBox(tr("Group 2"));
+
+    defaultPushButton = new QPushButton(tr("Default Push Button"));
+    defaultPushButton->setDefault(true);
+
+    togglePushButton = new QPushButton(tr("Toggle Push Button"));
+    togglePushButton->setCheckable(true);
+    togglePushButton->setChecked(true);
+
+    flatPushButton = new QPushButton(tr("Flat Push Button"));
+    flatPushButton->setFlat(true);
+
+    QVBoxLayout *layout = new QVBoxLayout;
+    layout->addWidget(defaultPushButton);
+    layout->addWidget(togglePushButton);
+    layout->addWidget(flatPushButton);
+    layout->addStretch(1);
+    topRightGroupBox->setLayout(layout);
+}
+
+void WidgetGallery::createBottomLeftTabWidget()
+{
+    bottomLeftTabWidget = new QTabWidget;
+    bottomLeftTabWidget->setSizePolicy(QSizePolicy::Preferred,
+                                       QSizePolicy::Ignored);
+
+    QWidget *tab1 = new QWidget;
+    tableWidget = new QTableWidget(10, 10);
+
+    QHBoxLayout *tab1hbox = new QHBoxLayout;
+    tab1hbox->setMargin(5);
+    tab1hbox->addWidget(tableWidget);
+    tab1->setLayout(tab1hbox);
+
+    QWidget *tab2 = new QWidget;
+    textEdit = new QTextEdit;
+
+    textEdit->setPlainText(tr("Twinkle, twinkle, little star,\n"
+                              "How I wonder what you are.\n"
+                              "Up above the world so high,\n"
+                              "Like a diamond in the sky.\n"
+                              "Twinkle, twinkle, little star,\n"
+                              "How I wonder what you are!\n"));
+                     
+    QHBoxLayout *tab2hbox = new QHBoxLayout;
+    tab2hbox->setMargin(5);
+    tab2hbox->addWidget(textEdit);
+    tab2->setLayout(tab2hbox);
+
+    bottomLeftTabWidget->addTab(tab1, tr("&Table"));
+    bottomLeftTabWidget->addTab(tab2, tr("Text &Edit"));
+}
+
+void WidgetGallery::createBottomRightGroupBox()
+{
+    bottomRightGroupBox = new QGroupBox(tr("Group 3"));
+    bottomRightGroupBox->setCheckable(true);
+    bottomRightGroupBox->setChecked(true);
+
+    lineEdit = new QLineEdit("s3cRe7");
+    lineEdit->setEchoMode(QLineEdit::Password);
+
+    spinBox = new QSpinBox(bottomRightGroupBox);
+    spinBox->setValue(50);
+
+    dateTimeEdit = new QDateTimeEdit(bottomRightGroupBox);
+    dateTimeEdit->setDateTime(QDateTime::currentDateTime());
+
+    slider = new QSlider(Qt::Horizontal, bottomRightGroupBox);
+    slider->setValue(40);
+
+    scrollBar = new QScrollBar(Qt::Horizontal, bottomRightGroupBox);
+    scrollBar->setValue(60);
+
+    dial = new QDial(bottomRightGroupBox);
+    dial->setValue(30);
+    dial->setNotchesVisible(true);
+
+    QGridLayout *layout = new QGridLayout;
+    layout->addWidget(lineEdit, 0, 0, 1, 2);
+    layout->addWidget(spinBox, 1, 0, 1, 2);
+    layout->addWidget(dateTimeEdit, 2, 0, 1, 2);
+    layout->addWidget(slider, 3, 0);
+    layout->addWidget(scrollBar, 4, 0);
+    layout->addWidget(dial, 3, 1, 2, 1);
+    layout->setRowStretch(5, 1);
+    bottomRightGroupBox->setLayout(layout);
+}
+
+//! [13]
+void WidgetGallery::createProgressBar()
+{
+    progressBar = new QProgressBar;
+    progressBar->setRange(0, 10000);
+    progressBar->setValue(0);
+
+    QTimer *timer = new QTimer(this);
+    connect(timer, SIGNAL(timeout()), this, SLOT(advanceProgressBar()));
+    timer->start(1000);
+}
+//! [13]