|  | Home · All Classes · Main Classes · Annotated · Grouped Classes · Functions |

# configdialog.cpp Example File
dialogs/configdialog/configdialog.cpp

        #include <QtGui>

        #include "configdialog.h"
        #include "optionbutton.h"
        #include "pages.h"

        ConfigDialog::ConfigDialog()
        {
            contentsWidget = new QListWidget(this);
            contentsWidget->setViewMode(QListView::IconMode);
            contentsWidget->setIconSize(QSize(96, 84));
            contentsWidget->setMovement(QListView::Static);
            contentsWidget->setMaximumWidth(128);
            contentsWidget->setSpacing(12);

            pagesWidget = new QStackedWidget(this);
            pagesWidget->addWidget(new ConfigurationPage);
            pagesWidget->addWidget(new UpdatePage);
            pagesWidget->addWidget(new QueryPage);

            QPushButton *closeButton = new QPushButton(tr("Close"), this);

            createIcons();
            contentsWidget->setCurrentRow(0);

            connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));

            QHBoxLayout *horizontalLayout = new QHBoxLayout;
            horizontalLayout->addWidget(contentsWidget);
            horizontalLayout->addWidget(pagesWidget, 1);

            QHBoxLayout *buttonsLayout = new QHBoxLayout;
            buttonsLayout->addStretch(1);
            buttonsLayout->addWidget(closeButton);

            QVBoxLayout *mainLayout = new QVBoxLayout(this);
            mainLayout->addLayout(horizontalLayout);
            mainLayout->addStretch(1);
            mainLayout->addSpacing(12);
            mainLayout->addLayout(buttonsLayout);

            setWindowTitle(tr("Configuration Dialog"));
        }

        void ConfigDialog::createIcons()
        {
            QListWidgetItem *configButton = new QListWidgetItem(contentsWidget);
            configButton->setIcon(QIcon(":/images/config.png"));
            configButton->setText(tr("Configuration"));
            configButton->setFlags(QAbstractItemModel::ItemIsSelectable
                                   | QAbstractItemModel::ItemIsEnabled);

            QListWidgetItem *updateButton = new QListWidgetItem(contentsWidget);
            updateButton->setIcon(QIcon(":/images/update.png"));
            updateButton->setText(tr("Update"));
            updateButton->setFlags(QAbstractItemModel::ItemIsSelectable
                                   | QAbstractItemModel::ItemIsEnabled);

            QListWidgetItem *queryButton = new QListWidgetItem(contentsWidget);
            queryButton->setIcon(QIcon(":/images/query.png"));
            queryButton->setText(tr("Query"));
            queryButton->setFlags(QAbstractItemModel::ItemIsSelectable
                                  | QAbstractItemModel::ItemIsEnabled);

            connect(contentsWidget,
                    SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
                    this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*)));
        }

        void ConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous)
        {
            if (!current)
                current = previous;

            pagesWidget->setCurrentIndex(contentsWidget->row(current));
        }