diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2 (patch) | |
tree | d3bb9f5d25a2dc09ca81adecf39621d871534297 /kgeography/src/answer.cpp | |
download | tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.tar.gz tdeedu-ce599e4f9f94b4eb00c1b5edb85bce5431ab3df2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdeedu@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kgeography/src/answer.cpp')
-rw-r--r-- | kgeography/src/answer.cpp | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/kgeography/src/answer.cpp b/kgeography/src/answer.cpp new file mode 100644 index 00000000..a468333c --- /dev/null +++ b/kgeography/src/answer.cpp @@ -0,0 +1,116 @@ +/*************************************************************************** + * Copyright (C) 2004 by Albert Astals Cid * + * tsdgeos@terra.es * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + ***************************************************************************/ + +#include <qimage.h> +#include <qlabel.h> +#include <qlayout.h> + +#include <kdialog.h> + +#include "answer.h" + +userAnswer::userAnswer() +{ +} + +userAnswer::userAnswer(const userAnswer &r) +{ + p_question = r.p_question; + p_answer = r.p_answer; + p_correctAnswer = r.p_correctAnswer; + p_correct = r.p_correct; +} + +userAnswer &userAnswer::operator=(const userAnswer &r) +{ + p_question = r.p_question; + p_answer = r.p_answer; + p_correctAnswer = r.p_correctAnswer; + p_correct = r.p_correct; + return *this; +} + +void userAnswer::setQuestion(QVariant question) +{ + p_question = question; +} + +void userAnswer::setAnswer(QVariant answer) +{ + p_answer = answer; +} + +void userAnswer::setAnswerCorrect(bool correct) +{ + p_correct = correct; +} + +void userAnswer::setCorrectAnswer(QVariant correctAnswer) +{ + p_correctAnswer = correctAnswer; +} + +void userAnswer::putWidgets(QWidget *w, QGridLayout *lay, int row) const +{ + QWidget *widgets[3]; + const QVariant *v; + + for (int i = 0; i < 3; i++) + { + if (i == 0) v = &p_question; + else if (i == 1) v = &p_answer; + else v = &p_correctAnswer; + + if (v -> type() == QVariant::String) + { + QLabel *l; + l = new QLabel(w); + l -> setText(v -> toString()); + l -> setMargin(KDialog::marginHint() / 2); + widgets[i] = l; + } + else if (v -> type() == QVariant::Color) + { + QWidget *aux = new QWidget(w); + QHBoxLayout *lay = new QHBoxLayout(aux); + + QFrame *inner = new QFrame(aux); + lay -> addWidget(inner); + inner -> setBackgroundColor(v -> toColor()); + inner -> setLineWidth(1); + lay -> setMargin(KDialog::marginHint() / 2); + widgets[i] = aux; + } + else if (v -> type() == QVariant::Image) + { + QLabel *l; + l = new QLabel(w); + l -> setPixmap(v -> toImage()); + l -> setAlignment(Qt::AlignHCenter); + l -> setMargin(KDialog::marginHint() / 2); + widgets[i] = l; + } + + lay -> addWidget(widgets[i], row, i + 1); + } + + if (!p_correct) + { + QColor back, fore; + back = widgets[0] -> colorGroup().highlight(); + fore = widgets[0] -> colorGroup().highlightedText(); + for (int i = 0; i < 3; i++) + { + widgets[i] -> setPaletteBackgroundColor(back); + widgets[i] -> setPaletteForegroundColor(fore); + } + } +} + |