quiz::quiz() : current(NULL), subset(0), correct(0) {
QAction *choose;
+ QAction *about;
window = new QWidget();
- window->setWindowTitle(QApplication::translate("Qtquiz", "Qtquiz"));
+ window->setWindowTitle(QApplication::translate("Qquiz", "Qquiz"));
menu = new QMenuBar(window);
choose = new QAction("Open", window);
QObject::connect(choose, SIGNAL(triggered()), this, SLOT(choose_quiz()));
+ about = new QAction("About", window);
+ QObject::connect(about, SIGNAL(triggered()), this, SLOT(about()));
+
menu->addAction(choose);
+ menu->addAction(about);
+ window->resize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
window->show();
retrieve_quizzes();
menu->addAction(give_up);
display_score();
display_grid();
+ current_time = total_time;
+ display_timer();
+ start_dialog();
if (total_time) {
- current_time = total_time;
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(update_timer()));
timer->start(1000);
}
+ } else {
+ QString message = "Can't read file :\n";
+
+ message.append(current->path.absolutePath());
+ QMessageBox::warning (window, tr("Input file error"), message);
}
}
}
ifstream ifs (filename);
max_label_length = 0;
int i = 0;
+ bool ok;
total_time = 0;
if (!ifs) {
do {
getline(ifs, buffer);
} while (buffer[0] == '#');
+ description = QString::fromStdString(buffer);
+ do {
+ getline(ifs, buffer);
+ } while (buffer[0] == '#');
if (! buffer.compare(0, strlen(SUBSET_PATTERN), SUBSET_PATTERN)) {
- subset = atoi(buffer.substr(strlen(SUBSET_PATTERN)).c_str());
- do {
- getline(ifs, buffer);
- } while (buffer[0] == '#');
+ subset = QString::fromStdString(buffer.substr(strlen(SUBSET_PATTERN))).toInt(&ok);
+ if (!ok) {
+ return 0;
+ }
+ do {
+ getline(ifs, buffer);
+ } while (buffer[0] == '#');
+ }
+ total_time = QString::fromStdString(buffer).toInt(&ok);
+ if (!ok) {
+ return 0;
}
- total_time = atoi(buffer.c_str());
/* convert minutes to seconds */
total_time *= 60;
while (getline(ifs, parse_line)){
QObject::connect(give_up, SIGNAL(triggered()), this, SLOT(end()));
}
+void quiz::start_dialog() {
+
+ QMessageBox::information(window, tr("Description"), description);
+
+}
+
void quiz::buzz(const QString& buffer) {
map <QString, int>::iterator itr;
question *q;
}
void quiz::update_timer() {
-
current_time--;
+ display_timer();
+}
+
+void quiz::display_timer() {
+
QTime t(0, current_time / 60, current_time % 60);
timer_label->setText(t.toString("m:ss"));
if (current_time == 0) {
}
}
}
+
+void quiz::about() {
+ QString message = "";
+ QString version;
+
+ message.append(APP_NAME);
+ message.append("-");
+ version = version.setNum(APP_VERSION);
+ message.append(version);
+ message.append("\n by ");
+ message.append(AUTHOR);
+ QMessageBox::about ( window, tr("About"), message);
+}
+