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

# tictactoedialog.cpp Example File
designer/taskmenuextension/tictactoedialog.cpp

        /****************************************************************************
        **
        ** Copyright (C) 2005-2006 Trolltech ASA. All rights reserved.
        **
        ** This file is part of the example classes of the Qt Toolkit.
        **
        ** Licensees holding valid Qt Preview licenses may use this file in
        ** accordance with the Qt Preview License Agreement provided with the
        ** Software.
        **
        ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
        ** information about Qt Commercial License Agreements.
        **
        ** Contact info@trolltech.com if any conditions of this licensing are
        ** not clear to you.
        **
        ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
        ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        **
        ****************************************************************************/

        #include <QtGui>
        #include <QtDesigner>

        #include "tictactoe.h"
        #include "tictactoedialog.h"

        TicTacToeDialog::TicTacToeDialog(TicTacToe *tic, QWidget *parent)
            : QDialog(parent)
        {
            ticTacToe = tic;
            editor = new TicTacToe;
            editor->setState(ticTacToe->state());

            buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok
                                             | QDialogButtonBox::Cancel
                                             | QDialogButtonBox::Reset);

            connect(buttonBox->button(QDialogButtonBox::Reset), SIGNAL(clicked()),
                    this, SLOT(resetState()));
            connect(buttonBox, SIGNAL(accepted()), this, SLOT(saveState()));
            connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));

            QVBoxLayout *mainLayout = new QVBoxLayout;
            mainLayout->addWidget(editor);
            mainLayout->addWidget(buttonBox);

            setLayout(mainLayout);
            setWindowTitle(tr("Edit State"));
        }

        QSize TicTacToeDialog::sizeHint() const
        {
            return QSize(250, 250);
        }

        void TicTacToeDialog::resetState()
        {
            editor->clearBoard();
        }

        void TicTacToeDialog::saveState()
        {
            if (QDesignerFormWindowInterface *formWindow
                    = QDesignerFormWindowInterface::findFormWindow(ticTacToe)) {
                formWindow->cursor()->setProperty("state", editor->state());
            }
            accept();
        }