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.
178 lines
5.4 KiB
178 lines
5.4 KiB
#include "UBTeacherBarWidget.h"
|
|
|
|
#include "core/UBApplication.h"
|
|
#include "core/UBPersistenceManager.h"
|
|
|
|
#include "UBMainWindow.h"
|
|
|
|
#include "document/UBDocumentController.h"
|
|
#include "document/UBDocumentProxy.h"
|
|
|
|
#include "board/UBBoardController.h"
|
|
#include "board/UBBoardPaletteManager.h"
|
|
|
|
#include "gui/UBMediaPlayer.h"
|
|
|
|
#include "customWidgets/UBDraggableLabel.h"
|
|
#include "customWidgets/UBMediaWidget.h"
|
|
#include "customWidgets/UBGlobals.h"
|
|
|
|
#include "core/memcheck.h"
|
|
|
|
UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDockPaletteWidget(parent)
|
|
, mpStackWidget(NULL)
|
|
, mpPreview(NULL)
|
|
, mpDocPreviewWidget(NULL)
|
|
, mpDocEditWidget(NULL)
|
|
{
|
|
setObjectName(name);
|
|
mName = "TeacherBarWidget";
|
|
mVisibleState = true;
|
|
mData.clearLists();
|
|
|
|
setAttribute(Qt::WA_StyledBackground, true);
|
|
setStyleSheet(UBApplication::globalStyleSheet());
|
|
|
|
mIconToLeft = QPixmap(":images/teacher_open.png");
|
|
mIconToRight = QPixmap(":images/teacher_close.png");
|
|
|
|
// Create the GUI
|
|
setLayout(&mLayout);
|
|
|
|
mpStackWidget = new QStackedWidget(this);
|
|
mLayout.addWidget(mpStackWidget);
|
|
mpPageEditWidget = new UBTBPageEditWidget(&mData, mpStackWidget);
|
|
mpPreview = new UBTeacherBarPreviewWidget(&mData, mpStackWidget);
|
|
mpDocPreviewWidget = new UBTBDocumentPreviewWidget(&mData, mpStackWidget);
|
|
mpDocEditWidget = new UBTBDocumentEditWidget(&mData, mpStackWidget);
|
|
|
|
mpStackWidget->addWidget(mpPageEditWidget);
|
|
mpStackWidget->addWidget(mpPreview);
|
|
mpStackWidget->addWidget(mpDocPreviewWidget);
|
|
mpStackWidget->addWidget(mpDocEditWidget);
|
|
|
|
connect(UBApplication::boardController, SIGNAL(activeSceneWillChange()), this, SLOT(saveContent()));
|
|
connect(UBApplication::mainWindow->actionQuit, SIGNAL(triggered()), this, SLOT(saveContent()));
|
|
connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(loadContentInfos()));
|
|
connect(UBApplication::boardController, SIGNAL(activeDocumentChanged()), this, SLOT(onActiveDocumentChanged()));
|
|
|
|
connect(mpPreview, SIGNAL(showEditMode()), this, SLOT(onShowEditMode()));
|
|
connect(mpDocPreviewWidget, SIGNAL(changeTBState(eTeacherBarState)), this, SLOT(onTBStateChanged(eTeacherBarState)));
|
|
connect(mpDocEditWidget, SIGNAL(changeTBState(eTeacherBarState)), this, SLOT(onTBStateChanged(eTeacherBarState)));
|
|
connect(mpPageEditWidget, SIGNAL(changeTBState(eTeacherBarState)), this, SLOT(onTBStateChanged(eTeacherBarState)));
|
|
connect(mpPageEditWidget, SIGNAL(valueChanged()), this, SLOT(onValueChanged()));
|
|
connect(mpDocEditWidget, SIGNAL(valueChanged()), this, SLOT(onValueChanged()));
|
|
}
|
|
|
|
UBTeacherBarWidget::~UBTeacherBarWidget()
|
|
{
|
|
DELETEPTR(mpDocPreviewWidget);
|
|
DELETEPTR(mpDocEditWidget);
|
|
DELETEPTR(mpPageEditWidget);
|
|
DELETEPTR(mpPreview);
|
|
DELETEPTR(mpStackWidget);
|
|
}
|
|
|
|
void UBTeacherBarWidget::onActiveDocumentChanged()
|
|
{
|
|
loadContent(true);
|
|
}
|
|
|
|
void UBTeacherBarWidget::onValueChanged()
|
|
{
|
|
if(isEmpty())
|
|
{
|
|
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();
|
|
}
|
|
|
|
void UBTeacherBarWidget::saveContent()
|
|
{
|
|
mpPageEditWidget->saveFields();
|
|
mData.saveContent();
|
|
}
|
|
|
|
void UBTeacherBarWidget::loadContentInfos()
|
|
{
|
|
loadContent(false);
|
|
}
|
|
|
|
void UBTeacherBarWidget::loadContent(bool docChanged)
|
|
{
|
|
// Clear the old datas
|
|
mpPageEditWidget->clearFields();
|
|
mpPreview->clearFields();
|
|
if(docChanged){
|
|
mpDocEditWidget->clearFields();
|
|
mpDocPreviewWidget->clearFields();
|
|
}
|
|
|
|
// Update the datas
|
|
mData.loadContent(docChanged);
|
|
|
|
// Update the fields
|
|
mpPageEditWidget->updateFields();
|
|
//mpPreview->updateFields();
|
|
if(docChanged){
|
|
mpDocEditWidget->updateFields();
|
|
mpDocPreviewWidget->updateFields();
|
|
}
|
|
|
|
if(!isEmpty()){
|
|
onTBStateChanged(eTeacherBarState_PagePreview);
|
|
}else{
|
|
if(1 == UBApplication::boardController->activeDocument()->pageCount()){
|
|
onTBStateChanged(eTeacherBarState_DocumentEdit);
|
|
}else{
|
|
onTBStateChanged(eTeacherBarState_PageEdit);
|
|
}
|
|
}
|
|
}
|
|
|
|
bool UBTeacherBarWidget::isEmpty()
|
|
{
|
|
return mData.pageTitle() == "" &&
|
|
mData.urls()->empty() &&
|
|
mData.actions()->empty() &&
|
|
mData.medias()->empty() &&
|
|
mData.comments() == "";
|
|
}
|
|
|
|
void UBTeacherBarWidget::onShowEditMode()
|
|
{
|
|
onTBStateChanged(eTeacherBarState_PageEdit);
|
|
}
|
|
|
|
void UBTeacherBarWidget::onTBStateChanged(eTeacherBarState state)
|
|
{
|
|
switch(state){
|
|
case eTeacherBarState_DocumentEdit:
|
|
//mpDocEditWidget->updateFields();
|
|
mpStackWidget->setCurrentWidget(mpDocEditWidget);
|
|
break;
|
|
case eTeacherBarState_DocumentPreview:
|
|
//mpDocPreviewWidget->updateFields();
|
|
mpStackWidget->setCurrentWidget(mpDocPreviewWidget);
|
|
break;
|
|
case eTeacherBarState_PageEdit:
|
|
mpPageEditWidget->clearFields();
|
|
mpPageEditWidget->updateFields();
|
|
mpStackWidget->setCurrentWidget(mpPageEditWidget);
|
|
break;
|
|
case eTeacherBarState_PagePreview:
|
|
saveContent();
|
|
mpPreview->clearFields();
|
|
mpPreview->updateFields();
|
|
mpStackWidget->setCurrentWidget(mpPreview);
|
|
break;
|
|
}
|
|
}
|
|
|
|
|