licensewizard.cpp

来自「qt-x11-opensource-src-4.1.4.tar.gz源码」· C++ 代码 · 共 287 行

CPP
287
字号
/******************************************************************************** Copyright (C) 2004-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** 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 "licensewizard.h"LicenseWizard::LicenseWizard(QWidget *parent)    : ComplexWizard(parent){    titlePage = new TitlePage(this);    evaluatePage = new EvaluatePage(this);    registerPage = new RegisterPage(this);    detailsPage = new DetailsPage(this);    finishPage = new FinishPage(this);    setFirstPage(titlePage);    setWindowTitle(tr("Complex Wizard"));    resize(480, 200);}TitlePage::TitlePage(LicenseWizard *wizard)    : LicenseWizardPage(wizard){    topLabel = new QLabel(tr("<center><font color=\"blue\" size=\"5\"><b><i>"                             "Super Product One</i></b></font></center>"));    registerRadioButton = new QRadioButton(tr("&Register your copy"));    evaluateRadioButton = new QRadioButton(tr("&Evaluate our product"));    setFocusProxy(registerRadioButton);    QVBoxLayout *layout = new QVBoxLayout;    layout->addWidget(topLabel);    layout->addSpacing(10);    layout->addWidget(registerRadioButton);    layout->addWidget(evaluateRadioButton);    layout->addStretch(1);    setLayout(layout);}void TitlePage::resetPage(){    registerRadioButton->setChecked(true);}WizardPage *TitlePage::nextPage(){    if (evaluateRadioButton->isChecked())        return wizard->evaluatePage;    else        return wizard->registerPage;}EvaluatePage::EvaluatePage(LicenseWizard *wizard)    : LicenseWizardPage(wizard){    topLabel = new QLabel(tr("<center><b>Evaluate Super Product One"                             "</b></center>"));    nameLabel = new QLabel(tr("&Name:"));    nameLineEdit = new QLineEdit;    nameLabel->setBuddy(nameLineEdit);    setFocusProxy(nameLineEdit);    emailLabel = new QLabel(tr("&Email address:"));    emailLineEdit = new QLineEdit;    emailLabel->setBuddy(emailLineEdit);    bottomLabel = new QLabel(tr("Please fill in both fields.\nThis will "                                "entitle you to a 30-day evaluation."));    connect(nameLineEdit, SIGNAL(textChanged(QString)),            this, SIGNAL(completeStateChanged()));    connect(emailLineEdit, SIGNAL(textChanged(QString)),            this, SIGNAL(completeStateChanged()));    QGridLayout *layout = new QGridLayout;    layout->addWidget(topLabel, 0, 0, 1, 2);    layout->setRowMinimumHeight(1, 10);    layout->addWidget(nameLabel, 2, 0);    layout->addWidget(nameLineEdit, 2, 1);    layout->addWidget(emailLabel, 3, 0);    layout->addWidget(emailLineEdit, 3, 1);    layout->setRowMinimumHeight(4, 10);    layout->addWidget(bottomLabel, 5, 0, 1, 2);    layout->setRowStretch(6, 1);    setLayout(layout);}void EvaluatePage::resetPage(){    nameLineEdit->clear();    emailLineEdit->clear();}WizardPage *EvaluatePage::nextPage(){    return wizard->finishPage;}bool EvaluatePage::isComplete(){    return !nameLineEdit->text().isEmpty() && !emailLineEdit->text().isEmpty();}RegisterPage::RegisterPage(LicenseWizard *wizard)    : LicenseWizardPage(wizard){    topLabel = new QLabel(tr("<center><b>Register your copy of Super Product "                             "One</b></center>"));    nameLabel = new QLabel(tr("&Name:"));    nameLineEdit = new QLineEdit;    nameLabel->setBuddy(nameLineEdit);    setFocusProxy(nameLineEdit);    upgradeKeyLabel = new QLabel(tr("&Upgrade key:"));    upgradeKeyLineEdit = new QLineEdit;    upgradeKeyLabel->setBuddy(upgradeKeyLineEdit);    bottomLabel = new QLabel(tr("If you have an upgrade key, please fill in "                                "the appropriate field."));    connect(nameLineEdit, SIGNAL(textChanged(QString)),            this, SIGNAL(completeStateChanged()));    QGridLayout *layout = new QGridLayout;    layout->addWidget(topLabel, 0, 0, 1, 2);    layout->setRowMinimumHeight(1, 10);    layout->addWidget(nameLabel, 2, 0);    layout->addWidget(nameLineEdit, 2, 1);    layout->addWidget(upgradeKeyLabel, 3, 0);    layout->addWidget(upgradeKeyLineEdit, 3, 1);    layout->setRowMinimumHeight(4, 10);    layout->addWidget(bottomLabel, 5, 0, 1, 2);    layout->setRowStretch(6, 1);    setLayout(layout);}void RegisterPage::resetPage(){    nameLineEdit->clear();    upgradeKeyLineEdit->clear();}WizardPage *RegisterPage::nextPage(){    if (upgradeKeyLineEdit->text().isEmpty())        return wizard->detailsPage;    else        return wizard->finishPage;}bool RegisterPage::isComplete(){    return !nameLineEdit->text().isEmpty();}DetailsPage::DetailsPage(LicenseWizard *wizard)    : LicenseWizardPage(wizard){    topLabel = new QLabel(tr("<center><b>Fill in your details</b></center>"));    companyLabel = new QLabel(tr("&Company name:"));    companyLineEdit = new QLineEdit;    companyLabel->setBuddy(companyLineEdit);    setFocusProxy(companyLineEdit);    emailLabel = new QLabel(tr("&Email address:"));    emailLineEdit = new QLineEdit;    emailLabel->setBuddy(emailLineEdit);    postalLabel = new QLabel(tr("&Postal address:"));    postalLineEdit = new QLineEdit;    postalLabel->setBuddy(postalLineEdit);    connect(companyLineEdit, SIGNAL(textChanged(QString)),            this, SIGNAL(completeStateChanged()));    connect(emailLineEdit, SIGNAL(textChanged(QString)),            this, SIGNAL(completeStateChanged()));    connect(postalLineEdit, SIGNAL(textChanged(QString)),            this, SIGNAL(completeStateChanged()));    QGridLayout *layout = new QGridLayout;    layout->addWidget(topLabel, 0, 0, 1, 2);    layout->setRowMinimumHeight(1, 10);    layout->addWidget(companyLabel, 2, 0);    layout->addWidget(companyLineEdit, 2, 1);    layout->addWidget(emailLabel, 3, 0);    layout->addWidget(emailLineEdit, 3, 1);    layout->addWidget(postalLabel, 4, 0);    layout->addWidget(postalLineEdit, 4, 1);    layout->setRowStretch(5, 1);    setLayout(layout);}void DetailsPage::resetPage(){    companyLineEdit->clear();    emailLineEdit->clear();    postalLineEdit->clear();}WizardPage *DetailsPage::nextPage(){    return wizard->finishPage;}bool DetailsPage::isComplete(){    return !companyLineEdit->text().isEmpty()           && !emailLineEdit->text().isEmpty()           && !postalLineEdit->text().isEmpty();}FinishPage::FinishPage(LicenseWizard *wizard)    : LicenseWizardPage(wizard){    topLabel = new QLabel(tr("<center><b>Complete your registration"                             "</b></center>"));    bottomLabel = new QLabel;    bottomLabel->setWordWrap(true);    agreeCheckBox = new QCheckBox(tr("I agree to the terms and conditions of "                                     "the license"));    setFocusProxy(agreeCheckBox);    connect(agreeCheckBox, SIGNAL(toggled(bool)),            this, SIGNAL(completeStateChanged()));    QVBoxLayout *layout = new QVBoxLayout;    layout->addWidget(topLabel);    layout->addSpacing(10);    layout->addWidget(bottomLabel);    layout->addWidget(agreeCheckBox);    layout->addStretch(1);    setLayout(layout);}void FinishPage::resetPage(){    QString licenseText;    if (wizard->historyPages().contains(wizard->evaluatePage)) {        licenseText = tr("Evaluation License Agreement: "                         "You can use this software for 30 days and make one "                         "back up, but you are not allowed to distribute it.");    } else if (wizard->historyPages().contains(wizard->detailsPage)) {        licenseText = tr("First-Time License Agreement: "                         "You can use this software subject to the license "                         "you will receive by email.");    } else {        licenseText = tr("Upgrade License Agreement: "                         "This software is licensed under the terms of your "                         "current license.");    }    bottomLabel->setText(licenseText);    agreeCheckBox->setChecked(false);}bool FinishPage::isComplete(){    return agreeCheckBox->isChecked();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?