You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
431 lines
13 KiB
431 lines
13 KiB
#include "UBTeacherBarWidget.h"
|
|
|
|
#include "core/UBApplication.h"
|
|
#include "core/UBPersistenceManager.h"
|
|
|
|
#include "document/UBDocumentController.h"
|
|
#include "document/UBDocumentProxy.h"
|
|
|
|
#include "board/UBBoardController.h"
|
|
#include "board/UBBoardPaletteManager.h"
|
|
|
|
UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDockPaletteWidget(parent)
|
|
, mpLayout(NULL)
|
|
, mpTitleLayout(NULL)
|
|
, mpPhasisLayout(NULL)
|
|
, mpDurationLayout(NULL)
|
|
, mpEquipmentLayout(NULL)
|
|
, mpActivityLayout(NULL)
|
|
, mpTitleLabel(NULL)
|
|
, mpPhasisLabel(NULL)
|
|
, mpDurationLabel(NULL)
|
|
, mpEquipmentLabel(NULL)
|
|
, mpActivityLabel(NULL)
|
|
, mpTitle(NULL)
|
|
, mpEquipment(NULL)
|
|
, mpPhasis(NULL)
|
|
, mpDuration(NULL)
|
|
, mpActivity(NULL)
|
|
, mpAction1(NULL)
|
|
, mpAction2(NULL)
|
|
, mpAction3(NULL)
|
|
, mpContainer(NULL)
|
|
, mpContainerLayout(NULL)
|
|
{
|
|
setObjectName(name);
|
|
mName = "TeacherBarWidget";
|
|
|
|
setAttribute(Qt::WA_StyledBackground, true);
|
|
setStyleSheet(UBApplication::globalStyleSheet());
|
|
|
|
mIconToLeft = QPixmap(":images/teacher_open.png");
|
|
mIconToRight = QPixmap(":images/teacher_close.png");
|
|
|
|
// Create the GUI
|
|
mpContainerLayout = new QVBoxLayout(this);
|
|
setLayout(mpContainerLayout);
|
|
|
|
mpContainer = new QWidget(this);
|
|
mpContainer->setObjectName("DockPaletteWidgetBox");
|
|
mpContainerLayout->addWidget(mpContainer);
|
|
|
|
mpLayout = new QVBoxLayout(mpContainer);
|
|
mpContainer->setLayout(mpLayout);
|
|
|
|
// Title
|
|
mpTitleLabel = new QLabel(tr("Title"), mpContainer);
|
|
mpTitleLabel->setMinimumWidth(LABEL_MINWIDHT);
|
|
mpTitleLabel->setAlignment(Qt::AlignRight);
|
|
mpTitle = new QLineEdit(mpContainer);
|
|
mpTitle->setObjectName("DockPaletteWidgetLineEdit");
|
|
mpTitleLayout = new QHBoxLayout();
|
|
mpTitleLayout->addWidget(mpTitleLabel, 0);
|
|
mpTitleLayout->addWidget(mpTitle, 1);
|
|
mpLayout->addLayout(mpTitleLayout);
|
|
|
|
// Phasis
|
|
mpPhasisLabel = new QLabel(tr("Phasis"), mpContainer);
|
|
mpPhasisLabel->setMinimumWidth(LABEL_MINWIDHT);
|
|
mpPhasisLabel->setAlignment(Qt::AlignRight);
|
|
mpPhasis = new QComboBox(mpContainer);
|
|
mpPhasis->setObjectName("DockPaletteWidgetComboBox");
|
|
mpPhasisLayout = new QHBoxLayout();
|
|
mpPhasisLayout->addWidget(mpPhasisLabel, 0);
|
|
mpPhasisLayout->addWidget(mpPhasis, 1);
|
|
mpLayout->addLayout(mpPhasisLayout);
|
|
|
|
// Duration
|
|
mpDurationLabel = new QLabel(tr("Duration"), mpContainer);
|
|
mpDurationLabel->setMinimumWidth(LABEL_MINWIDHT);
|
|
mpDurationLabel->setAlignment(Qt::AlignRight);
|
|
mpDuration = new QComboBox(mpContainer);
|
|
mpDuration->setObjectName("DockPaletteWidgetComboBox");
|
|
mpDurationLayout = new QHBoxLayout();
|
|
mpDurationLayout->addWidget(mpDurationLabel, 0);
|
|
mpDurationLayout->addWidget(mpDuration, 1);
|
|
mpLayout->addLayout(mpDurationLayout);
|
|
|
|
// Equipment
|
|
mpEquipmentLabel = new QLabel(tr("Equipment"), mpContainer);
|
|
mpEquipmentLabel->setMinimumWidth(LABEL_MINWIDHT);
|
|
mpEquipmentLabel->setAlignment(Qt::AlignRight);
|
|
mpEquipment = new QLineEdit(mpContainer);
|
|
mpEquipment->setObjectName("DockPaletteWidgetLineEdit");
|
|
mpEquipmentLayout = new QHBoxLayout();
|
|
mpEquipmentLayout->addWidget(mpEquipmentLabel, 0);
|
|
mpEquipmentLayout->addWidget(mpEquipment, 1);
|
|
mpLayout->addLayout(mpEquipmentLayout);
|
|
|
|
// Activity
|
|
mpActivityLabel = new QLabel(tr("Activity"), mpContainer);
|
|
mpActivityLabel->setMinimumWidth(LABEL_MINWIDHT);
|
|
mpActivityLabel->setAlignment(Qt::AlignRight);
|
|
mpActivity = new QComboBox(mpContainer);
|
|
mpActivity->setObjectName("DockPaletteWidgetComboBox");
|
|
mpActivityLayout = new QHBoxLayout();
|
|
mpActivityLayout->addWidget(mpActivityLabel, 0);
|
|
mpActivityLayout->addWidget(mpActivity, 1);
|
|
mpLayout->addLayout(mpActivityLayout);
|
|
|
|
// Actions
|
|
mpAction1 = new UBTeacherStudentAction(1, mpContainer);
|
|
mpAction2 = new UBTeacherStudentAction(2, mpContainer);
|
|
mpAction3 = new UBTeacherStudentAction(3, mpContainer);
|
|
|
|
mpLayout->addWidget(mpAction1);
|
|
mpLayout->addWidget(mpAction2);
|
|
mpLayout->addWidget(mpAction3);
|
|
|
|
populateCombos();
|
|
|
|
connect(UBApplication::boardController, SIGNAL(activeSceneWillChange()), this, SLOT(saveContent()));
|
|
connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(loadContent()));
|
|
connect(mpTitle, SIGNAL(textChanged(QString)), this, SLOT(onValueChanged()));
|
|
connect(mpPhasis, SIGNAL(currentIndexChanged(int)), this, SLOT(onValueChanged()));
|
|
connect(mpDuration, SIGNAL(currentIndexChanged(int)), this, SLOT(onValueChanged()));
|
|
connect(mpEquipment, SIGNAL(textChanged(QString)), this, SLOT(onValueChanged()));
|
|
connect(mpActivity, SIGNAL(currentIndexChanged(int)), this, SLOT(onValueChanged()));
|
|
connect(mpAction1->teacher(), SIGNAL(textChanged()), this, SLOT(onValueChanged()));
|
|
connect(mpAction1->student(), SIGNAL(textChanged()), this, SLOT(onValueChanged()));
|
|
connect(mpAction2->teacher(), SIGNAL(textChanged()), this, SLOT(onValueChanged()));
|
|
connect(mpAction2->student(), SIGNAL(textChanged()), this, SLOT(onValueChanged()));
|
|
connect(mpAction3->teacher(), SIGNAL(textChanged()), this, SLOT(onValueChanged()));
|
|
connect(mpAction3->student(), SIGNAL(textChanged()), this, SLOT(onValueChanged()));
|
|
}
|
|
|
|
UBTeacherBarWidget::~UBTeacherBarWidget()
|
|
{
|
|
if(NULL != mpAction3)
|
|
{
|
|
delete mpAction3;
|
|
mpAction3 = NULL;
|
|
}
|
|
if(NULL != mpAction2)
|
|
{
|
|
delete mpAction2;
|
|
mpAction2 = NULL;
|
|
}
|
|
if(NULL != mpAction1)
|
|
{
|
|
delete mpAction1;
|
|
mpAction1 = NULL;
|
|
}
|
|
if(NULL != mpActivityLabel)
|
|
{
|
|
delete mpActivityLabel;
|
|
mpActivityLabel = NULL;
|
|
}
|
|
if(NULL != mpActivity)
|
|
{
|
|
delete mpActivity;
|
|
mpActivity = NULL;
|
|
}
|
|
if(NULL != mpActivityLayout)
|
|
{
|
|
delete mpActivityLayout;
|
|
mpActivityLayout = NULL;
|
|
}
|
|
if(NULL != mpEquipmentLabel)
|
|
{
|
|
delete mpEquipmentLabel;
|
|
mpEquipmentLabel = NULL;
|
|
}
|
|
if(NULL != mpEquipment)
|
|
{
|
|
delete mpEquipment;
|
|
mpEquipment = NULL;
|
|
}
|
|
if(NULL != mpEquipmentLayout)
|
|
{
|
|
delete mpEquipmentLayout;
|
|
mpEquipmentLayout = NULL;
|
|
}
|
|
if(NULL != mpDurationLabel)
|
|
{
|
|
delete mpDurationLabel;
|
|
mpDurationLabel = NULL;
|
|
}
|
|
if(NULL != mpDuration)
|
|
{
|
|
delete mpDuration;
|
|
mpDuration = NULL;
|
|
}
|
|
if(NULL != mpDurationLayout)
|
|
{
|
|
delete mpDurationLayout;
|
|
mpDurationLayout = NULL;
|
|
}
|
|
if(NULL != mpPhasisLabel)
|
|
{
|
|
delete mpPhasisLabel;
|
|
mpPhasisLabel = NULL;
|
|
}
|
|
if(NULL != mpPhasisLayout)
|
|
{
|
|
delete mpPhasisLayout;
|
|
mpPhasisLayout = NULL;
|
|
}
|
|
if(NULL != mpTitleLabel)
|
|
{
|
|
delete mpTitleLabel;
|
|
mpTitleLabel = NULL;
|
|
}
|
|
if(NULL != mpTitle)
|
|
{
|
|
delete mpTitle;
|
|
mpTitle = NULL;
|
|
}
|
|
if(NULL != mpTitleLayout)
|
|
{
|
|
delete mpTitleLayout;
|
|
mpTitleLayout = NULL;
|
|
}
|
|
if(NULL != mpLayout)
|
|
{
|
|
delete mpLayout;
|
|
mpLayout = NULL;
|
|
}
|
|
if(NULL != mpContainer)
|
|
{
|
|
delete mpContainer;
|
|
mpContainer = NULL;
|
|
}
|
|
if(NULL != mpContainerLayout)
|
|
{
|
|
delete mpContainerLayout;
|
|
mpContainerLayout = NULL;
|
|
}
|
|
}
|
|
|
|
void UBTeacherBarWidget::populateCombos()
|
|
{
|
|
QStringList qslPhasis;
|
|
qslPhasis << tr("") << tr("I discover") << tr("I experiment") << tr("I train myself") << tr("I play") << tr("I memorize");
|
|
mpPhasis->insertItems(0, qslPhasis);
|
|
mpPhasis->setCurrentIndex(0);
|
|
|
|
QStringList qslDuration;
|
|
qslDuration << tr("") << tr("Short") << tr("Middle") << tr("Long");
|
|
mpDuration->insertItems(0, qslDuration);
|
|
mpDuration->setCurrentIndex(0);
|
|
|
|
QStringList qslActivity;
|
|
qslActivity << tr("") << tr("Alone") << tr("By Group") << tr("All together");
|
|
mpActivity->insertItems(0, qslActivity);
|
|
mpActivity->setCurrentIndex(0);
|
|
}
|
|
|
|
void UBTeacherBarWidget::saveContent()
|
|
{
|
|
sTeacherBarInfos infos;
|
|
infos.title = mpTitle->text();
|
|
infos.phasis = mpPhasis->currentIndex();
|
|
infos.Duration = mpDuration->currentIndex();
|
|
infos.material = mpEquipment->text();
|
|
infos.activity = mpActivity->currentIndex();
|
|
infos.action1Master = mpAction1->teacherText();
|
|
infos.action1Student = mpAction1->studentText();
|
|
infos.action2Master = mpAction2->teacherText();
|
|
infos.action2Student = mpAction2->studentText();
|
|
infos.action3Master = mpAction3->teacherText();
|
|
infos.action3Student = mpAction3->studentText();
|
|
UBPersistenceManager::persistenceManager()->persistTeacherBar(UBApplication::boardController->activeDocument(), UBApplication::boardController->activeSceneIndex(), infos);
|
|
}
|
|
|
|
void UBTeacherBarWidget::loadContent()
|
|
{
|
|
sTeacherBarInfos nextInfos = UBPersistenceManager::persistenceManager()->getTeacherBarInfos(UBApplication::boardController->activeDocument(), UBApplication::boardController->activeSceneIndex());
|
|
mpTitle->setText(nextInfos.title);
|
|
mpPhasis->setCurrentIndex(nextInfos.phasis);
|
|
mpDuration->setCurrentIndex(nextInfos.Duration);
|
|
mpEquipment->setText(nextInfos.material);
|
|
mpActivity->setCurrentIndex(nextInfos.activity);
|
|
mpAction1->setTeacherText(nextInfos.action1Master);
|
|
mpAction1->setStudentText(nextInfos.action1Student);
|
|
mpAction2->setTeacherText(nextInfos.action2Master);
|
|
mpAction2->setStudentText(nextInfos.action2Student);
|
|
mpAction3->setTeacherText(nextInfos.action3Master);
|
|
mpAction3->setStudentText(nextInfos.action3Student);
|
|
}
|
|
|
|
void UBTeacherBarWidget::onValueChanged()
|
|
{
|
|
if( mpTitle->text() == ""
|
|
&& mpDuration->currentIndex() == 0
|
|
&& mpPhasis->currentIndex() == 0
|
|
&& mpEquipment->text() == ""
|
|
&& mpActivity->currentIndex() == 0
|
|
&& mpAction1->teacherText() == ""
|
|
&& mpAction1->studentText() == ""
|
|
&& mpAction2->teacherText() == ""
|
|
&& mpAction2->studentText() == ""
|
|
&& mpAction3->teacherText() == ""
|
|
&& mpAction3->studentText() == "")
|
|
{
|
|
mIconToLeft = QPixmap(":images/teacher_open_disabled.png");
|
|
mIconToRight = QPixmap(":images/teacher_close_disabled.png");
|
|
}
|
|
else
|
|
{
|
|
mIconToLeft = QPixmap(":images/teacher_open.png");
|
|
mIconToRight = QPixmap(":images/teacher_close.png");
|
|
}
|
|
|
|
UBApplication::boardController->paletteManager()->refreshPalettes();
|
|
}
|
|
|
|
UBTeacherStudentAction::UBTeacherStudentAction(int actionNumber, QWidget *parent, const char *name):QWidget(parent)
|
|
, mpActionLabel(NULL)
|
|
, mpTeacherLabel(NULL)
|
|
, mpStudentLabel(NULL)
|
|
, mpTeacher(NULL)
|
|
, mpStudent(NULL)
|
|
, mpLayout(NULL)
|
|
, mpTeacherLayout(NULL)
|
|
, mpStudentLayout(NULL)
|
|
{
|
|
setObjectName(name);
|
|
mActionNumber = actionNumber;
|
|
|
|
setAttribute(Qt::WA_StyledBackground, true);
|
|
setStyleSheet(UBApplication::globalStyleSheet());
|
|
|
|
// Create the GUI
|
|
mpLayout = new QVBoxLayout(this);
|
|
setLayout(mpLayout);
|
|
|
|
mpActionLabel = new QLabel(tr("Action %0").arg(mActionNumber), this);
|
|
mpLayout->addWidget(mpActionLabel, 0);
|
|
|
|
mpTeacherLayout = new QHBoxLayout();
|
|
mpTeacherLabel = new QLabel(tr("Teacher"), this);
|
|
mpTeacherLabel->setAlignment(Qt::AlignTop);
|
|
mpTeacher = new QTextEdit(this);
|
|
mpTeacher->setObjectName("TeacherStudentBox");
|
|
mpTeacherLayout->addWidget(mpTeacherLabel, 0);
|
|
mpTeacherLayout->addWidget(mpTeacher, 1);
|
|
mpLayout->addLayout(mpTeacherLayout, 1);
|
|
|
|
mpStudentLayout = new QHBoxLayout();
|
|
mpStudentLabel = new QLabel(tr("Student"), this);
|
|
mpStudentLabel->setAlignment(Qt::AlignTop);
|
|
mpStudent = new QTextEdit(this);
|
|
mpStudent->setObjectName("TeacherStudentBox");
|
|
mpStudentLayout->addWidget(mpStudentLabel, 0);
|
|
mpStudentLayout->addWidget(mpStudent, 1);
|
|
mpLayout->addLayout(mpStudentLayout, 1);
|
|
}
|
|
|
|
UBTeacherStudentAction::~UBTeacherStudentAction()
|
|
{
|
|
if(NULL != mpActionLabel)
|
|
{
|
|
delete mpActionLabel;
|
|
mpActionLabel = NULL;
|
|
}
|
|
if(NULL != mpTeacherLabel)
|
|
{
|
|
delete mpTeacherLabel;
|
|
mpTeacherLabel = NULL;
|
|
}
|
|
if(NULL != mpTeacher)
|
|
{
|
|
delete mpTeacher;
|
|
mpTeacher = NULL;
|
|
}
|
|
if(NULL != mpTeacherLayout)
|
|
{
|
|
delete mpTeacherLayout;
|
|
mpTeacherLayout = NULL;
|
|
}
|
|
if(NULL != mpStudentLabel)
|
|
{
|
|
delete mpStudentLabel;
|
|
mpStudentLabel = NULL;
|
|
}
|
|
if(NULL != mpStudent)
|
|
{
|
|
delete mpStudent;
|
|
mpStudent = NULL;
|
|
}
|
|
if(NULL != mpStudentLayout)
|
|
{
|
|
delete mpStudentLayout;
|
|
mpStudentLayout = NULL;
|
|
}
|
|
if(NULL != mpLayout)
|
|
{
|
|
delete mpLayout;
|
|
mpLayout = NULL;
|
|
}
|
|
}
|
|
|
|
QString UBTeacherStudentAction::teacherText()
|
|
{
|
|
return mpTeacher->document()->toPlainText();
|
|
}
|
|
|
|
QString UBTeacherStudentAction::studentText()
|
|
{
|
|
return mpStudent->document()->toPlainText();
|
|
}
|
|
|
|
void UBTeacherStudentAction::setTeacherText(QString text)
|
|
{
|
|
mpTeacher->setText(text);
|
|
}
|
|
|
|
void UBTeacherStudentAction::setStudentText(QString text)
|
|
{
|
|
mpStudent->setText(text);
|
|
}
|
|
|
|
QTextEdit* UBTeacherStudentAction::teacher()
|
|
{
|
|
return mpTeacher;
|
|
}
|
|
|
|
QTextEdit* UBTeacherStudentAction::student()
|
|
{
|
|
return mpStudent;
|
|
}
|
|
|