# 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 ) ;
mpPageEditWidget = new UBTBPageEditWidget ( & mData , this ) ;
mpPreview = new UBTeacherBarPreviewWidget ( & mData , this ) ;
mpDocPreviewWidget = new UBTBDocumentPreviewWidget ( & mData , this ) ;
mpDocEditWidget = new UBTBDocumentEditWidget ( & mData , this ) ;
mpStackWidget = new QStackedWidget ( this ) ;
mLayout . addWidget ( mpStackWidget ) ;
mpStackWidget - > addWidget ( mpPageEditWidget ) ;
mpStackWidget - > addWidget ( mpPreview ) ;
mpStackWidget - > addWidget ( mpDocPreviewWidget ) ;
mpStackWidget - > addWidget ( mpDocEditWidget ) ;
connect ( UBApplication : : boardController , SIGNAL ( activeSceneWillChange ( ) ) , this , SLOT ( saveContent ( ) ) ) ;
connect ( UBApplication : : boardController , SIGNAL ( activeSceneChanged ( ) ) , this , SLOT ( loadContent ( ) ) ) ;
connect ( UBApplication : : mainWindow - > actionQuit , SIGNAL ( triggered ( ) ) , this , SLOT ( saveContent ( ) ) ) ;
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 ( ) ) ) ;
}
UBTeacherBarWidget : : ~ UBTeacherBarWidget ( )
{
DELETEPTR ( mpDocPreviewWidget ) ;
DELETEPTR ( mpDocEditWidget ) ;
DELETEPTR ( mpPageEditWidget ) ;
DELETEPTR ( mpPreview ) ;
DELETEPTR ( mpStackWidget ) ;
}
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 : : loadContent ( )
{
// Clear the old datas
mpPageEditWidget - > clearFields ( ) ;
mpPreview - > clearFields ( ) ;
mpDocEditWidget - > clearFields ( ) ;
mpDocPreviewWidget - > clearFields ( ) ;
// Update the datas
mData . loadContent ( ) ;
// Update the fields
mpPageEditWidget - > updateFields ( ) ;
mpPreview - > updateFields ( ) ;
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 ( ) = = " " & &
mData . sessionTarget ( ) = = " " & &
mData . sessionTitle ( ) = = " " ;
}
void UBTeacherBarWidget : : onShowEditMode ( )
{
mpStackWidget - > setCurrentWidget ( mpPageEditWidget ) ;
}
void UBTeacherBarWidget : : onTBStateChanged ( eTeacherBarState state )
{
switch ( state ) {
case eTeacherBarState_DocumentEdit :
mpStackWidget - > setCurrentWidget ( mpDocEditWidget ) ;
break ;
case eTeacherBarState_DocumentPreview :
mpStackWidget - > setCurrentWidget ( mpDocPreviewWidget ) ;
break ;
case eTeacherBarState_PageEdit :
mpStackWidget - > setCurrentWidget ( mpPageEditWidget ) ;
break ;
case eTeacherBarState_PagePreview :
mpStackWidget - > setCurrentWidget ( mpPreview ) ;
break ;
}
}