コード例 #1
0
ファイル: mainwindow.cpp プロジェクト: kssanath/ECE497
void OptionsGamestate::registerScore(int score, int level) {
    if( score <= 0 )
        return;
    if( mainWindow->getHiscores().size() >= max_hiscore_entries_c ) {
        // check we get onto the board
        Hiscore lastHiscore = mainWindow->getHiscores().at(max_hiscore_entries_c-1);
        if( score < lastHiscore.getScore() ||
            ( score == lastHiscore.getScore() && level <= lastHiscore.getLevel() ) ) {
            return;
        }
    }
    //QWidget *enterHiscoreWindow = new QWidget(mainWindow);
    QDialog *enterHiscoreWindow = new QDialog(mainWindow);
    QVBoxLayout *layout = new QVBoxLayout();
    enterHiscoreWindow->setLayout(layout);

    QLineEdit *nameEdit = NULL;
    {
        QString text = "You scored " + QString::number(score) + "!  Enter your name:";
        QLabel *scoreLabel = new QLabel(text);
        layout->addWidget(scoreLabel);
    }
    /*{
        QLabel *label = new QLabel("Enter your name:");
        layout->addWidget(label);
    }*/
    {
        nameEdit = new QLineEdit("");
        layout->addWidget(nameEdit);
        /*QHBoxLayout *h_layout = new QHBoxLayout();
        layout->addLayout(h_layout);
        QLabel *nameLabel = new QLabel(tr("Enter Name:"));
        h_layout->addWidget(nameLabel);
        nameEdit = new QLineEdit("");
        h_layout->addWidget(nameEdit);*/
    }
    layout->addStretch();
    {
        QPushButton *okayButton = new QPushButton("Okay");
        layout->addWidget(okayButton);
        connect(okayButton, SIGNAL(clicked()), enterHiscoreWindow, SLOT(accept()));
    }

    enterHiscoreWindow->showFullScreen();
    enterHiscoreWindow->exec();

    QString name = nameEdit->text();
    qDebug("Entered name: %s", name.toStdString().c_str());
    Hiscore hiscore(name, score, level);
    this->mainWindow->addHiscore(hiscore);

    delete enterHiscoreWindow;
}