Commit d15d5805 authored by Claudio Valerio's avatar Claudio Valerio

fixed issue 663

parent 4e7dac2f
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<teacherGuide> <teacherGuide>
<gradeLevels> <gradeLevels>
<gradeLevel label="" baseLevel="Maternelle"/>
<gradeLevel label="Petite Section (3-4 ans)" baseLevel="Maternelle"/> <gradeLevel label="Petite Section (3-4 ans)" baseLevel="Maternelle"/>
<gradeLevel label="Moyenne Section (4-5 ans)" baseLevel="Maternelle"/> <gradeLevel label="Moyenne Section (4-5 ans)" baseLevel="Maternelle"/>
<gradeLevel label="Grande Section (5-6 ans)" baseLevel="Maternelle"/> <gradeLevel label="Grande Section (5-6 ans)" baseLevel="Maternelle"/>
...@@ -22,6 +23,7 @@ ...@@ -22,6 +23,7 @@
<gradeLevel label="Education Spécialisée" baseLevel="Enseignement Professionnel" /> <gradeLevel label="Education Spécialisée" baseLevel="Enseignement Professionnel" />
</gradeLevels> </gradeLevels>
<subjects baseLevel="Maternelle"> <subjects baseLevel="Maternelle">
<subject label="" />
<subject label="Percevoir, sentir, imaginer, créer" /> <subject label="Percevoir, sentir, imaginer, créer" />
<subject label="Découvrir l'écrit" /> <subject label="Découvrir l'écrit" />
<subject label="S'approprier le langage" /> <subject label="S'approprier le langage" />
...@@ -29,6 +31,7 @@ ...@@ -29,6 +31,7 @@
<subject label="Découvrir le monde" /> <subject label="Découvrir le monde" />
</subjects> </subjects>
<subjects baseLevel="Elémentaire"> <subjects baseLevel="Elémentaire">
<subject label="" />
<subject label="Pratiques artistiques" /> <subject label="Pratiques artistiques" />
<subject label="Pratiques artistiques - arts visuels" /> <subject label="Pratiques artistiques - arts visuels" />
<subject label="Pratiques artistiques - éducation musicale" /> <subject label="Pratiques artistiques - éducation musicale" />
...@@ -50,6 +53,7 @@ ...@@ -50,6 +53,7 @@
<subject label="TUIC" /> <subject label="TUIC" />
</subjects> </subjects>
<subjects baseLevel="Collège"> <subjects baseLevel="Collège">
<subject label="" />
<subject label="Pratiques artistiques" /> <subject label="Pratiques artistiques" />
<subject label="Pratiques artistiques - arts visuels" /> <subject label="Pratiques artistiques - arts visuels" />
<subject label="Pratiques artistiques - éducation musicale" /> <subject label="Pratiques artistiques - éducation musicale" />
...@@ -80,6 +84,7 @@ ...@@ -80,6 +84,7 @@
<subject label="Education aux médias" /> <subject label="Education aux médias" />
</subjects> </subjects>
<subjects baseLevel="Lycée"> <subjects baseLevel="Lycée">
<subject label="" />
<subject label="Enseignements artistiques" /> <subject label="Enseignements artistiques" />
<subject label="Agriculture" /> <subject label="Agriculture" />
<subject label="Arts" /> <subject label="Arts" />
...@@ -125,6 +130,7 @@ ...@@ -125,6 +130,7 @@
<subject label="Philosophie" /> <subject label="Philosophie" />
</subjects> </subjects>
<subjects baseLevel="Enseignement Professionnel"> <subjects baseLevel="Enseignement Professionnel">
<subject label="" />
<subject label="Enseignements artistiques" /> <subject label="Enseignements artistiques" />
<subject label="Agriculture" /> <subject label="Agriculture" />
<subject label="Arts" /> <subject label="Arts" />
...@@ -169,6 +175,7 @@ ...@@ -169,6 +175,7 @@
<subject label="Philosophie" /> <subject label="Philosophie" />
</subjects> </subjects>
<types> <types>
<type label="" />
<type label="Activité : Evaluation/Travail à la maison" /> <type label="Activité : Evaluation/Travail à la maison" />
<type label="Activité : Exercice" /> <type label="Activité : Exercice" />
<type label="Activité : Travaux Pratiques" /> <type label="Activité : Travaux Pratiques" />
......
...@@ -45,6 +45,7 @@ ...@@ -45,6 +45,7 @@
#include "board/UBBoardView.h" #include "board/UBBoardView.h"
#include "board/UBBoardController.h" #include "board/UBBoardController.h"
#include "board/UBDrawingController.h" #include "board/UBDrawingController.h"
#include "board/UBBoardPaletteManager.h"
#include "frameworks/UBFileSystemUtils.h" #include "frameworks/UBFileSystemUtils.h"
#include "frameworks/UBStringUtils.h" #include "frameworks/UBStringUtils.h"
...@@ -54,6 +55,9 @@ ...@@ -54,6 +55,9 @@
#include "core/UBPersistenceManager.h" #include "core/UBPersistenceManager.h"
#include "core/UBApplication.h" #include "core/UBApplication.h"
#include "gui/UBTeacherGuideWidget.h"
#include "gui/UBDockTeacherGuideWidget.h"
#include "interfaces/IDataStorage.h" #include "interfaces/IDataStorage.h"
#include "document/UBDocumentContainer.h" #include "document/UBDocumentContainer.h"
...@@ -1142,7 +1146,7 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::writeSvgElement() ...@@ -1142,7 +1146,7 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::writeSvgElement()
bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex) bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex)
{ {
if (mScene->isModified()) if (mScene->isModified() || (UBApplication::boardController->paletteManager()->teacherGuideDockWidget() && UBApplication::boardController->paletteManager()->teacherGuideDockWidget()->teacherGuideWidget()->isModified()))
{ {
//Creating dom structure to store information //Creating dom structure to store information
......
...@@ -38,6 +38,9 @@ ...@@ -38,6 +38,9 @@
#include "gui/UBToolWidget.h" #include "gui/UBToolWidget.h"
#include "gui/UBKeyboardPalette.h" #include "gui/UBKeyboardPalette.h"
#include "gui/UBMagnifer.h" #include "gui/UBMagnifer.h"
#include "gui/UBDockPaletteWidget.h"
#include "gui/UBDockTeacherGuideWidget.h"
#include "gui/UBTeacherGuideWidget.h"
#include "domain/UBGraphicsPixmapItem.h" #include "domain/UBGraphicsPixmapItem.h"
#include "domain/UBGraphicsItemUndoCommand.h" #include "domain/UBGraphicsItemUndoCommand.h"
...@@ -1464,7 +1467,10 @@ void UBBoardController::lastWindowClosed() ...@@ -1464,7 +1467,10 @@ void UBBoardController::lastWindowClosed()
{ {
if (!mCleanupDone) if (!mCleanupDone)
{ {
if (selectedDocument()->pageCount() == 1 && (!mActiveScene || mActiveScene->isEmpty())) bool teacherGuideModified = false;
if(UBApplication::boardController->paletteManager()->teacherGuideDockWidget())
teacherGuideModified = UBApplication::boardController->paletteManager()->teacherGuideDockWidget()->teacherGuideWidget()->isModified();
if (selectedDocument()->pageCount() == 1 && (!mActiveScene || mActiveScene->isEmpty()) && !teacherGuideModified)
{ {
UBPersistenceManager::persistenceManager()->deleteDocument(selectedDocument()); UBPersistenceManager::persistenceManager()->deleteDocument(selectedDocument());
} }
...@@ -1591,7 +1597,7 @@ void UBBoardController::persistCurrentScene() ...@@ -1591,7 +1597,7 @@ void UBBoardController::persistCurrentScene()
if(UBPersistenceManager::persistenceManager() if(UBPersistenceManager::persistenceManager()
&& selectedDocument() && mActiveScene && selectedDocument() && mActiveScene
&& (mActiveSceneIndex >= 0) && (mActiveSceneIndex >= 0)
&& mActiveScene->isModified()) && (mActiveScene->isModified() || (UBApplication::boardController->paletteManager()->teacherGuideDockWidget() && UBApplication::boardController->paletteManager()->teacherGuideDockWidget()->teacherGuideWidget()->isModified())))
{ {
emit activeSceneWillBePersisted(); emit activeSceneWillBePersisted();
......
...@@ -69,6 +69,8 @@ class UBBoardPaletteManager : public QObject ...@@ -69,6 +69,8 @@ class UBBoardPaletteManager : public QObject
void setCurrentWebToolsPalette(UBWebToolsPalette *palette) {mWebToolsCurrentPalette = palette;} void setCurrentWebToolsPalette(UBWebToolsPalette *palette) {mWebToolsCurrentPalette = palette;}
UBWebToolsPalette* mWebToolsCurrentPalette; UBWebToolsPalette* mWebToolsCurrentPalette;
UBDockTeacherGuideWidget* teacherGuideDockWidget() { return mpTeacherGuideWidget;}
void processPalettersWidget(UBDockPalette *paletter, eUBDockPaletteWidgetMode mode); void processPalettersWidget(UBDockPalette *paletter, eUBDockPaletteWidgetMode mode);
void changeMode(eUBDockPaletteWidgetMode newMode, bool isInit = false); void changeMode(eUBDockPaletteWidgetMode newMode, bool isInit = false);
void startDownloads(); void startDownloads();
......
...@@ -40,6 +40,8 @@ ...@@ -40,6 +40,8 @@
#include "gui/UBScreenMirror.h" #include "gui/UBScreenMirror.h"
#include "gui/UBMainWindow.h" #include "gui/UBMainWindow.h"
#include "gui/UBDockTeacherGuideWidget.h"
#include "gui/UBTeacherGuideWidget.h"
#include "domain/UBGraphicsPixmapItem.h" #include "domain/UBGraphicsPixmapItem.h"
#include "domain/UBW3CWidget.h" #include "domain/UBW3CWidget.h"
...@@ -419,7 +421,7 @@ void UBApplicationController::showDocument() ...@@ -419,7 +421,7 @@ void UBApplicationController::showDocument()
if (UBApplication::boardController) if (UBApplication::boardController)
{ {
if (UBApplication::boardController->activeScene()->isModified()) if (UBApplication::boardController->activeScene()->isModified() || (UBApplication::boardController->paletteManager()->teacherGuideDockWidget() && UBApplication::boardController->paletteManager()->teacherGuideDockWidget()->teacherGuideWidget()->isModified()))
UBApplication::boardController->persistCurrentScene(); UBApplication::boardController->persistCurrentScene();
UBApplication::boardController->hide(); UBApplication::boardController->hide();
} }
......
...@@ -25,6 +25,9 @@ ...@@ -25,6 +25,9 @@
#include "core/UBSettings.h" #include "core/UBSettings.h"
#include "core/UBSetting.h" #include "core/UBSetting.h"
#include "gui/UBDockTeacherGuideWidget.h"
#include "gui/UBTeacherGuideWidget.h"
#include "document/UBDocumentProxy.h" #include "document/UBDocumentProxy.h"
#include "adaptors/UBExportPDF.h" #include "adaptors/UBExportPDF.h"
...@@ -33,6 +36,7 @@ ...@@ -33,6 +36,7 @@
#include "adaptors/UBMetadataDcSubsetAdaptor.h" #include "adaptors/UBMetadataDcSubsetAdaptor.h"
#include "board/UBBoardController.h" #include "board/UBBoardController.h"
#include "board/UBBoardPaletteManager.h"
#include "interfaces/IDataStorage.h" #include "interfaces/IDataStorage.h"
...@@ -591,7 +595,6 @@ UBGraphicsScene* UBPersistenceManager::loadDocumentScene(UBDocumentProxy* proxy, ...@@ -591,7 +595,6 @@ UBGraphicsScene* UBPersistenceManager::loadDocumentScene(UBDocumentProxy* proxy,
} }
} }
void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex) void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex)
{ {
checkIfDocumentRepositoryExists(); checkIfDocumentRepositoryExists();
...@@ -603,10 +606,15 @@ void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, ...@@ -603,10 +606,15 @@ void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy,
QDir dir(pDocumentProxy->persistencePath()); QDir dir(pDocumentProxy->persistencePath());
dir.mkpath(pDocumentProxy->persistencePath()); dir.mkpath(pDocumentProxy->persistencePath());
if (pDocumentProxy->isModified()) UBBoardPaletteManager* paletteManager = UBApplication::boardController->paletteManager();
bool teacherGuideModified = false;
if(paletteManager->teacherGuideDockWidget())
teacherGuideModified = paletteManager->teacherGuideDockWidget()->teacherGuideWidget()->isModified();
if (pDocumentProxy->isModified() || teacherGuideModified)
UBMetadataDcSubsetAdaptor::persist(pDocumentProxy); UBMetadataDcSubsetAdaptor::persist(pDocumentProxy);
if (pScene->isModified()) if (pScene->isModified() || teacherGuideModified)
{ {
UBSvgSubsetAdaptor::persistScene(pDocumentProxy, pScene, pSceneIndex); UBSvgSubsetAdaptor::persistScene(pDocumentProxy, pScene, pSceneIndex);
......
...@@ -44,3 +44,8 @@ UBDockTeacherGuideWidget::~UBDockTeacherGuideWidget() ...@@ -44,3 +44,8 @@ UBDockTeacherGuideWidget::~UBDockTeacherGuideWidget()
DELETEPTR(mpTeacherGuideWidget); DELETEPTR(mpTeacherGuideWidget);
DELETEPTR(mpLayout); DELETEPTR(mpLayout);
} }
UBTeacherGuideWidget* UBDockTeacherGuideWidget::teacherGuideWidget()
{
return mpTeacherGuideWidget;
}
...@@ -31,6 +31,8 @@ public: ...@@ -31,6 +31,8 @@ public:
bool visibleInMode(eUBDockPaletteWidgetMode mode){ return mode == eUBDockPaletteWidget_BOARD; } bool visibleInMode(eUBDockPaletteWidgetMode mode){ return mode == eUBDockPaletteWidget_BOARD; }
UBTeacherGuideWidget* teacherGuideWidget();
private: private:
QVBoxLayout* mpLayout; QVBoxLayout* mpLayout;
UBTeacherGuideWidget* mpTeacherGuideWidget; UBTeacherGuideWidget* mpTeacherGuideWidget;
......
...@@ -49,15 +49,12 @@ ...@@ -49,15 +49,12 @@
#define UBTG_SEPARATOR_FIXED_HEIGHT 3 #define UBTG_SEPARATOR_FIXED_HEIGHT 3
typedef enum typedef enum {
{
eUBTGAddSubItemWidgetType_None, eUBTGAddSubItemWidgetType_None,
eUBTGAddSubItemWidgetType_Action , eUBTGAddSubItemWidgetType_Action,
eUBTGAddSubItemWidgetType_Media, eUBTGAddSubItemWidgetType_Media,
eUBTGAddSubItemWidgetType_Url eUBTGAddSubItemWidgetType_Url
}eUBTGAddSubItemWidgetType; } eUBTGAddSubItemWidgetType;
/*************************************************************************** /***************************************************************************
* class UBTeacherGuideEditionWidget * * class UBTeacherGuideEditionWidget *
...@@ -86,18 +83,18 @@ UBTeacherGuideEditionWidget::UBTeacherGuideEditionWidget(QWidget *parent, const ...@@ -86,18 +83,18 @@ UBTeacherGuideEditionWidget::UBTeacherGuideEditionWidget(QWidget *parent, const
mpLayout->addWidget(mpPageNumberLabel); mpLayout->addWidget(mpPageNumberLabel);
// tree basic configuration // tree basic configuration
if(UBSettings::settings()->teacherGuidePageZeroActivated->get().toBool()){ if (UBSettings::settings()->teacherGuidePageZeroActivated->get().toBool()) {
mpDocumentTitle = new QLabel(this); mpDocumentTitle = new QLabel(this);
mpDocumentTitle->setObjectName("UBTGPresentationDocumentTitle"); mpDocumentTitle->setObjectName("UBTGPresentationDocumentTitle");
mpLayout->addWidget(mpDocumentTitle); mpLayout->addWidget(mpDocumentTitle);
} }
mpPageTitle = new UBTGAdaptableText(0,this); mpPageTitle = new UBTGAdaptableText(0, this);
mpPageTitle->setObjectName("UBTGEditionPageTitle"); mpPageTitle->setObjectName("UBTGEditionPageTitle");
mpPageTitle->setPlaceHolderText(tr("Type title here ...")); mpPageTitle->setPlaceHolderText(tr("Type title here ..."));
mpLayout->addWidget(mpPageTitle); mpLayout->addWidget(mpPageTitle);
mpComment = new UBTGAdaptableText(0,this); mpComment = new UBTGAdaptableText(0, this);
mpComment->setObjectName("UBTGEditionComment"); mpComment->setObjectName("UBTGEditionComment");
mpComment->setPlaceHolderText(tr("Type comment here ...")); mpComment->setPlaceHolderText(tr("Type comment here ..."));
mpLayout->addWidget(mpComment); mpLayout->addWidget(mpComment);
...@@ -122,20 +119,20 @@ UBTeacherGuideEditionWidget::UBTeacherGuideEditionWidget(QWidget *parent, const ...@@ -122,20 +119,20 @@ UBTeacherGuideEditionWidget::UBTeacherGuideEditionWidget(QWidget *parent, const
mpTreeWidget->header()->setResizeMode(1, QHeaderView::Fixed); mpTreeWidget->header()->setResizeMode(1, QHeaderView::Fixed);
mpTreeWidget->header()->setDefaultSectionSize(18); mpTreeWidget->header()->setDefaultSectionSize(18);
connect(mpTreeWidget,SIGNAL(itemClicked(QTreeWidgetItem*,int)),this,SLOT(onAddItemClicked(QTreeWidgetItem*,int))); connect(mpTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(onAddItemClicked(QTreeWidgetItem*,int)));
connect(UBApplication::boardController,SIGNAL(activeSceneChanged()),this,SLOT(onActiveSceneChanged())); connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(onActiveSceneChanged()));
mpAddAnActionItem = new UBAddItem(tr("Add an action"),eUBTGAddSubItemWidgetType_Action,mpTreeWidget); mpAddAnActionItem = new UBAddItem(tr("Add an action"), eUBTGAddSubItemWidgetType_Action, mpTreeWidget);
mpAddAMediaItem = new UBAddItem(tr("Add a media"),eUBTGAddSubItemWidgetType_Media,mpTreeWidget); mpAddAMediaItem = new UBAddItem(tr("Add a media"), eUBTGAddSubItemWidgetType_Media, mpTreeWidget);
mpAddALinkItem = new UBAddItem(tr("Add a link"),eUBTGAddSubItemWidgetType_Url,mpTreeWidget); mpAddALinkItem = new UBAddItem(tr("Add a link"), eUBTGAddSubItemWidgetType_Url, mpTreeWidget);
mpRootWidgetItem->addChild(mpAddAnActionItem); mpRootWidgetItem->addChild(mpAddAnActionItem);
mpRootWidgetItem->addChild(mpAddAMediaItem); mpRootWidgetItem->addChild(mpAddAMediaItem);
mpRootWidgetItem->addChild(mpAddALinkItem); mpRootWidgetItem->addChild(mpAddALinkItem);
if(UBSettings::settings()->teacherGuideLessonPagesActivated->get().toBool()){ if (UBSettings::settings()->teacherGuideLessonPagesActivated->get().toBool()) {
UBSvgSubsetAdaptor::addElementToBeStored(QString("teacherGuide"),this); UBSvgSubsetAdaptor::addElementToBeStored(QString("teacherGuide"), this);
connect(UBApplication::boardController,SIGNAL(documentSet(UBDocumentProxy*)),this,SLOT(onActiveDocumentChanged())); connect(UBApplication::boardController, SIGNAL(documentSet(UBDocumentProxy*)), this, SLOT(onActiveDocumentChanged()));
} }
} }
...@@ -149,7 +146,7 @@ UBTeacherGuideEditionWidget::~UBTeacherGuideEditionWidget() ...@@ -149,7 +146,7 @@ UBTeacherGuideEditionWidget::~UBTeacherGuideEditionWidget()
DELETEPTR(mpAddAnActionItem); DELETEPTR(mpAddAnActionItem);
DELETEPTR(mpAddAMediaItem); DELETEPTR(mpAddAMediaItem);
DELETEPTR(mpAddALinkItem); DELETEPTR(mpAddALinkItem);
DELETEPTR(mpTreeWidget) DELETEPTR(mpTreeWidget);
DELETEPTR(mpLayout); DELETEPTR(mpLayout);
} }
...@@ -162,7 +159,7 @@ void UBTeacherGuideEditionWidget::showEvent(QShowEvent* event) ...@@ -162,7 +159,7 @@ void UBTeacherGuideEditionWidget::showEvent(QShowEvent* event)
void UBTeacherGuideEditionWidget::onActiveDocumentChanged() void UBTeacherGuideEditionWidget::onActiveDocumentChanged()
{ {
int activeSceneIndex = UBApplication::boardController->activeSceneIndex(); int activeSceneIndex = UBApplication::boardController->activeSceneIndex();
if(UBApplication::boardController->pageFromSceneIndex(activeSceneIndex) != 0) if (UBApplication::boardController->pageFromSceneIndex(activeSceneIndex) != 0)
load(UBSvgSubsetAdaptor::readTeacherGuideNode(activeSceneIndex)); load(UBSvgSubsetAdaptor::readTeacherGuideNode(activeSceneIndex));
} }
...@@ -172,61 +169,62 @@ void UBTeacherGuideEditionWidget::load(QString element) ...@@ -172,61 +169,62 @@ void UBTeacherGuideEditionWidget::load(QString element)
QDomDocument doc("TeacherGuide"); QDomDocument doc("TeacherGuide");
doc.setContent(element); doc.setContent(element);
for(QDomElement element = doc.documentElement().firstChildElement(); !element.isNull(); element = element.nextSiblingElement()) { for (QDomElement element = doc.documentElement().firstChildElement();
!element.isNull(); element = element.nextSiblingElement()) {
QString tagName = element.tagName(); QString tagName = element.tagName();
if(tagName == "title") if (tagName == "title")
mpPageTitle->setInitialText(element.attribute("value")); mpPageTitle->setInitialText(element.attribute("value"));
else if(tagName == "comment") else if (tagName == "comment")
mpComment->setInitialText(element.attribute("value")); mpComment->setInitialText(element.attribute("value"));
else if(tagName == "media") else if (tagName == "media")
onAddItemClicked(mpAddAMediaItem,0,&element); onAddItemClicked(mpAddAMediaItem, 0, &element);
else if(tagName == "link") else if (tagName == "link")
onAddItemClicked(mpAddALinkItem,0,&element); onAddItemClicked(mpAddALinkItem, 0, &element);
else if(tagName == "action") else if (tagName == "action")
onAddItemClicked(mpAddAnActionItem,0,&element); onAddItemClicked(mpAddAnActionItem, 0, &element);
} }
} }
QVector<tIDataStorage*> UBTeacherGuideEditionWidget::save(int pageIndex) QVector<tIDataStorage*> UBTeacherGuideEditionWidget::save(int pageIndex)
{ {
QVector<tIDataStorage*> result; QVector<tIDataStorage*> result;
if(pageIndex != UBApplication::boardController->currentPage()) if (pageIndex != UBApplication::boardController->currentPage())
return result; return result;
tIDataStorage* data = new tIDataStorage(); tIDataStorage* data = new tIDataStorage();
data->name = "teacherGuide"; data->name = "teacherGuide";
data->type = eElementType_START; data->type = eElementType_START;
data->attributes.insert("version","2.00"); data->attributes.insert("version", "2.00");
result << data; result << data;
data = new tIDataStorage(); data = new tIDataStorage();
data->name = "title"; data->name = "title";
data->type = eElementType_UNIQUE; data->type = eElementType_UNIQUE;
data->attributes.insert("value",mpPageTitle->text()); data->attributes.insert("value", mpPageTitle->text());
if(mpPageTitle->text().length()){ if (mpPageTitle->text().length())
result << data; result << data;
}
data = new tIDataStorage(); data = new tIDataStorage();
data->name = "comment"; data->name = "comment";
data->type = eElementType_UNIQUE; data->type = eElementType_UNIQUE;
data->attributes.insert("value",mpComment->text()); data->attributes.insert("value", mpComment->text());
if(mpComment->text().length()) if (mpComment->text().length())
result << data; result << data;
QList<QTreeWidgetItem*> children = getChildrenList(mpAddAnActionItem); QList<QTreeWidgetItem*> children = getChildrenList(mpAddAnActionItem);
children << getChildrenList(mpAddAMediaItem); children << getChildrenList(mpAddAMediaItem);
children << getChildrenList(mpAddALinkItem); children << getChildrenList(mpAddALinkItem);
foreach(QTreeWidgetItem* widgetItem, children){ foreach(QTreeWidgetItem* widgetItem, children) {
tUBGEElementNode* node = dynamic_cast<iUBTGSaveData*>(mpTreeWidget->itemWidget(widgetItem,0))->saveData(); tUBGEElementNode* node =
if(node){ dynamic_cast<iUBTGSaveData*>(mpTreeWidget->itemWidget(
widgetItem, 0))->saveData();
if (node) {
data = new tIDataStorage(); data = new tIDataStorage();
data->name = node->name; data->name = node->name;
data->type = eElementType_UNIQUE; data->type = eElementType_UNIQUE;
foreach(QString currentKey, node->attributes.keys()) foreach(QString currentKey, node->attributes.keys())
data->attributes.insert(currentKey,node->attributes.value(currentKey)); data->attributes.insert(currentKey,
node->attributes.value(currentKey));
result << data; result << data;
} }
} }
...@@ -241,12 +239,12 @@ QVector<tIDataStorage*> UBTeacherGuideEditionWidget::save(int pageIndex) ...@@ -241,12 +239,12 @@ QVector<tIDataStorage*> UBTeacherGuideEditionWidget::save(int pageIndex)
void UBTeacherGuideEditionWidget::onActiveSceneChanged() void UBTeacherGuideEditionWidget::onActiveSceneChanged()
{ {
int currentPage = UBApplication::boardController->currentPage(); int currentPage = UBApplication::boardController->currentPage();
if(currentPage > 0){ if (currentPage > 0) {
cleanData(); cleanData();
load(UBSvgSubsetAdaptor::readTeacherGuideNode(UBApplication::boardController->activeSceneIndex())); load( UBSvgSubsetAdaptor::readTeacherGuideNode( UBApplication::boardController->activeSceneIndex()));
mpPageNumberLabel->setText(tr("Page: %0").arg(currentPage)); mpPageNumberLabel->setText(tr("Page: %0").arg(currentPage));
UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument(); UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument();
if(mpDocumentTitle) if (mpDocumentTitle)
mpDocumentTitle->setText(documentProxy->metaData(UBSettings::sessionTitle).toString()); mpDocumentTitle->setText(documentProxy->metaData(UBSettings::sessionTitle).toString());
} }
} }
...@@ -259,44 +257,46 @@ void UBTeacherGuideEditionWidget::cleanData() ...@@ -259,44 +257,46 @@ void UBTeacherGuideEditionWidget::cleanData()
children << mpAddAMediaItem->takeChildren(); children << mpAddAMediaItem->takeChildren();
children << mpAddALinkItem->takeChildren(); children << mpAddALinkItem->takeChildren();
foreach(QTreeWidgetItem* item, children){ foreach(QTreeWidgetItem* item, children) {
DELETEPTR(item); DELETEPTR(item);
} }
} }
QList<QTreeWidgetItem*> UBTeacherGuideEditionWidget::getChildrenList(QTreeWidgetItem* widgetItem) QList<QTreeWidgetItem*> UBTeacherGuideEditionWidget::getChildrenList( QTreeWidgetItem* widgetItem)
{ {
QList<QTreeWidgetItem*>result; QList<QTreeWidgetItem*> result;
for(int i=0;i<widgetItem->childCount();i+=1) for (int i = 0; i < widgetItem->childCount(); i += 1)
result << widgetItem->child(i); result << widgetItem->child(i);
return result; return result;
} }
QVector<tUBGEElementNode*> UBTeacherGuideEditionWidget::getPageAndCommentData() QVector<tUBGEElementNode*> UBTeacherGuideEditionWidget::getPageAndCommentData()
{ {
QVector<tUBGEElementNode*>result; QVector<tUBGEElementNode*> result;
tUBGEElementNode* pageTitle = new tUBGEElementNode(); tUBGEElementNode* pageTitle = new tUBGEElementNode();
pageTitle->name = "pageTitle"; pageTitle->name = "pageTitle";
pageTitle->attributes.insert("value",mpPageTitle->text()); pageTitle->attributes.insert("value", mpPageTitle->text());
result << pageTitle; result << pageTitle;
tUBGEElementNode* comment = new tUBGEElementNode(); tUBGEElementNode* comment = new tUBGEElementNode();
comment->name = "comment"; comment->name = "comment";
comment->attributes.insert("value",mpComment->text()); comment->attributes.insert("value", mpComment->text());
result << comment; result << comment;
return result; return result;
} }
QVector<tUBGEElementNode*> UBTeacherGuideEditionWidget::getData() QVector<tUBGEElementNode*> UBTeacherGuideEditionWidget::getData()
{ {
QVector<tUBGEElementNode*>result; QVector<tUBGEElementNode*> result;
QList<QTreeWidgetItem*> children = getChildrenList(mpAddAnActionItem); QList<QTreeWidgetItem*> children = getChildrenList(mpAddAnActionItem);
children << getChildrenList(mpAddAMediaItem); children << getChildrenList(mpAddAMediaItem);
children << getChildrenList(mpAddALinkItem); children << getChildrenList(mpAddALinkItem);
result << getPageAndCommentData(); result << getPageAndCommentData();
foreach(QTreeWidgetItem* widgetItem, children){ foreach(QTreeWidgetItem* widgetItem, children) {
tUBGEElementNode* node = dynamic_cast<iUBTGSaveData*>(mpTreeWidget->itemWidget(widgetItem,0))->saveData(); tUBGEElementNode* node =
if(node) dynamic_cast<iUBTGSaveData*>(mpTreeWidget->itemWidget(
widgetItem, 0))->saveData();
if (node)
result << node; result << node;
} }
return result; return result;
...@@ -304,31 +304,33 @@ QVector<tUBGEElementNode*> UBTeacherGuideEditionWidget::getData() ...@@ -304,31 +304,33 @@ QVector<tUBGEElementNode*> UBTeacherGuideEditionWidget::getData()
void UBTeacherGuideEditionWidget::onAddItemClicked(QTreeWidgetItem* widget, int column, QDomElement *element) void UBTeacherGuideEditionWidget::onAddItemClicked(QTreeWidgetItem* widget, int column, QDomElement *element)
{ {
int addSubItemWidgetType = widget->data(column,Qt::UserRole).toInt(); int addSubItemWidgetType = widget->data(column, Qt::UserRole).toInt();
if(addSubItemWidgetType != eUBTGAddSubItemWidgetType_None){ if (addSubItemWidgetType != eUBTGAddSubItemWidgetType_None) {
QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem(widget); QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem(widget);
newWidgetItem->setData(column,Qt::UserRole,eUBTGAddSubItemWidgetType_None); newWidgetItem->setData(column, Qt::UserRole, eUBTGAddSubItemWidgetType_None);
newWidgetItem->setData(1,Qt::UserRole,eUBTGAddSubItemWidgetType_None); newWidgetItem->setData(1, Qt::UserRole, eUBTGAddSubItemWidgetType_None);
newWidgetItem->setIcon(1,QIcon(":images/close.svg")); newWidgetItem->setIcon(1, QIcon(":images/close.svg"));
switch(addSubItemWidgetType) switch (addSubItemWidgetType) {
{ case eUBTGAddSubItemWidgetType_Action: {
case eUBTGAddSubItemWidgetType_Action:{
UBTGActionWidget* actionWidget = new UBTGActionWidget(widget); UBTGActionWidget* actionWidget = new UBTGActionWidget(widget);
if(element) actionWidget->initializeWithDom(*element); if (element)
mpTreeWidget->setItemWidget(newWidgetItem,0,actionWidget); actionWidget->initializeWithDom(*element);
mpTreeWidget->setItemWidget(newWidgetItem, 0, actionWidget);
break; break;
} }
case eUBTGAddSubItemWidgetType_Media:{ case eUBTGAddSubItemWidgetType_Media: {
UBTGMediaWidget* mediaWidget = new UBTGMediaWidget(widget); UBTGMediaWidget* mediaWidget = new UBTGMediaWidget(widget);
if(element) mediaWidget->initializeWithDom(*element); if (element)
mpTreeWidget->setItemWidget(newWidgetItem,0,mediaWidget); mediaWidget->initializeWithDom(*element);
mpTreeWidget->setItemWidget(newWidgetItem, 0, mediaWidget);
break; break;
} }
case eUBTGAddSubItemWidgetType_Url:{ case eUBTGAddSubItemWidgetType_Url: {
UBTGUrlWidget* urlWidget = new UBTGUrlWidget(); UBTGUrlWidget* urlWidget = new UBTGUrlWidget();
if(element) urlWidget->initializeWithDom(*element); if (element)
mpTreeWidget->setItemWidget(newWidgetItem,0,urlWidget); urlWidget->initializeWithDom(*element);
mpTreeWidget->setItemWidget(newWidgetItem, 0, urlWidget);
break; break;
} }
default: default:
...@@ -337,42 +339,53 @@ void UBTeacherGuideEditionWidget::onAddItemClicked(QTreeWidgetItem* widget, int ...@@ -337,42 +339,53 @@ void UBTeacherGuideEditionWidget::onAddItemClicked(QTreeWidgetItem* widget, int
return; return;
} }
if(addSubItemWidgetType != eUBTGAddSubItemWidgetType_None && !widget->isExpanded() ) if (addSubItemWidgetType != eUBTGAddSubItemWidgetType_None && !widget->isExpanded())
widget->setExpanded(true); widget->setExpanded(true);
else{ else {
//to update the tree and subtrees //to update the tree and subtrees
widget->setExpanded(false); widget->setExpanded(false);
widget->setExpanded(true); widget->setExpanded(true);
} }
} } else if (column == 1
else if(column == 1 && addSubItemWidgetType == eUBTGAddSubItemWidgetType_None){ && addSubItemWidgetType == eUBTGAddSubItemWidgetType_None) {
UBTGMediaWidget* media = dynamic_cast<UBTGMediaWidget*>(mpTreeWidget->itemWidget(widget,0)); UBTGMediaWidget* media = dynamic_cast<UBTGMediaWidget*>(mpTreeWidget->itemWidget(widget, 0));
if(media) media->removeSource(); if (media)
media->removeSource();
int index = mpTreeWidget->currentIndex().row(); int index = mpTreeWidget->currentIndex().row();
QTreeWidgetItem* toBeDeletedWidgetItem = widget->parent()->takeChild(index); QTreeWidgetItem* toBeDeletedWidgetItem = widget->parent()->takeChild(
index);
delete toBeDeletedWidgetItem; delete toBeDeletedWidgetItem;
} }
} }
bool UBTeacherGuideEditionWidget::isModified()
{
bool result = false;
result |= mpPageTitle->text().length() > 0;
result |= mpComment->text().length() > 0;
result |= mpAddAnActionItem->childCount() > 0;
result |= mpAddAMediaItem->childCount() > 0;
result |= mpAddALinkItem->childCount() > 0;
return result;
}
/*************************************************************************** /***************************************************************************
* class UBTeacherGuidePresentationWidget * * class UBTeacherGuidePresentationWidget *
***************************************************************************/ ***************************************************************************/
typedef enum typedef enum {
{
tUBTGActionAssociateOnClickItem_NONE, tUBTGActionAssociateOnClickItem_NONE,
tUBTGActionAssociateOnClickItem_URL, tUBTGActionAssociateOnClickItem_URL,
tUBTGActionAssociateOnClickItem_MEDIA, tUBTGActionAssociateOnClickItem_MEDIA,
tUBTGActionAssociateOnClickItem_EXPAND tUBTGActionAssociateOnClickItem_EXPAND
}tUBTGActionAssociateOnClickItem; } tUBTGActionAssociateOnClickItem;
typedef enum typedef enum {
{
tUBTGTreeWidgetItemRole_HasAnAction = Qt::UserRole, tUBTGTreeWidgetItemRole_HasAnAction = Qt::UserRole,
tUBTGTreeWidgetItemRole_HasAnUrl tUBTGTreeWidgetItemRole_HasAnUrl
}tUBTGTreeWidgetItemRole; } tUBTGTreeWidgetItemRole;
UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *parent, const char *name) : QWidget(parent) UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *parent, const char *name) :
QWidget(parent)
, mpPageTitle(NULL) , mpPageTitle(NULL)
, mpComment(NULL) , mpComment(NULL)
, mpLayout(NULL) , mpLayout(NULL)
...@@ -402,10 +415,10 @@ UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *pare ...@@ -402,10 +415,10 @@ UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *pare
mpModePushButton->setMaximumWidth(32); mpModePushButton->setMaximumWidth(32);
mpModePushButton->installEventFilter(this); mpModePushButton->installEventFilter(this);
connect(mpModePushButton,SIGNAL(clicked()),parentWidget(),SLOT(changeMode())); connect(mpModePushButton, SIGNAL(clicked()), parentWidget(), SLOT(changeMode()));
mpButtonTitleLayout->addWidget(mpModePushButton); mpButtonTitleLayout->addWidget(mpModePushButton);
if(UBSettings::settings()->teacherGuidePageZeroActivated->get().toBool()){ if (UBSettings::settings()->teacherGuidePageZeroActivated->get().toBool()) {
mpDocumentTitle = new QLabel(this); mpDocumentTitle = new QLabel(this);
mpDocumentTitle->setObjectName("UBTGPresentationDocumentTitle"); mpDocumentTitle->setObjectName("UBTGPresentationDocumentTitle");
mpButtonTitleLayout->addWidget(mpDocumentTitle); mpButtonTitleLayout->addWidget(mpDocumentTitle);
...@@ -413,13 +426,13 @@ UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *pare ...@@ -413,13 +426,13 @@ UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *pare
mpLayout->addLayout(mpButtonTitleLayout); mpLayout->addLayout(mpButtonTitleLayout);
mpPageTitle = new UBTGAdaptableText(0,this); mpPageTitle = new UBTGAdaptableText(0, this);
mpPageTitle->setObjectName("UBTGPresentationPageTitle"); mpPageTitle->setObjectName("UBTGPresentationPageTitle");
mpPageTitle->setReadOnly(true); mpPageTitle->setReadOnly(true);
mpPageTitle->setStyleSheet("background-color:transparent"); mpPageTitle->setStyleSheet("background-color:transparent");
mpLayout->addWidget(mpPageTitle); mpLayout->addWidget(mpPageTitle);
mpComment = new UBTGAdaptableText(0,this); mpComment = new UBTGAdaptableText(0, this);
mpComment->setObjectName("UBTGPresentationComment"); mpComment->setObjectName("UBTGPresentationComment");
mpComment->setReadOnly(true); mpComment->setReadOnly(true);
mpComment->setStyleSheet("background-color:transparent"); mpComment->setStyleSheet("background-color:transparent");
...@@ -440,8 +453,8 @@ UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *pare ...@@ -440,8 +453,8 @@ UBTeacherGuidePresentationWidget::UBTeacherGuidePresentationWidget(QWidget *pare
mpTreeWidget->setDropIndicatorShown(false); mpTreeWidget->setDropIndicatorShown(false);
mpTreeWidget->header()->close(); mpTreeWidget->header()->close();
mpTreeWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); mpTreeWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
connect(mpTreeWidget,SIGNAL(itemClicked(QTreeWidgetItem*,int)),this,SLOT(onAddItemClicked(QTreeWidgetItem*,int))); connect(mpTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*,int)), this, SLOT(onAddItemClicked(QTreeWidgetItem*,int)));
connect(UBApplication::boardController,SIGNAL(activeSceneChanged()),this,SLOT(onActiveSceneChanged())); connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(onActiveSceneChanged()));
} }
UBTeacherGuidePresentationWidget::~UBTeacherGuidePresentationWidget() UBTeacherGuidePresentationWidget::~UBTeacherGuidePresentationWidget()
...@@ -461,7 +474,7 @@ UBTeacherGuidePresentationWidget::~UBTeacherGuidePresentationWidget() ...@@ -461,7 +474,7 @@ UBTeacherGuidePresentationWidget::~UBTeacherGuidePresentationWidget()
bool UBTeacherGuidePresentationWidget::eventFilter(QObject* object, QEvent* event) bool UBTeacherGuidePresentationWidget::eventFilter(QObject* object, QEvent* event)
{ {
Q_UNUSED(object); Q_UNUSED(object);
if(event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverMove || event->type() == QEvent::HoverLeave) if (event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverMove || event->type() == QEvent::HoverLeave)
return true; return true;
return false; return false;
} }
...@@ -472,7 +485,7 @@ void UBTeacherGuidePresentationWidget::cleanData() ...@@ -472,7 +485,7 @@ void UBTeacherGuidePresentationWidget::cleanData()
mpComment->showText(""); mpComment->showText("");
//tree clean //tree clean
QList<QTreeWidgetItem*> itemToRemove = mpRootWidgetItem->takeChildren(); QList<QTreeWidgetItem*> itemToRemove = mpRootWidgetItem->takeChildren();
foreach(QTreeWidgetItem* eachItem, itemToRemove){ foreach(QTreeWidgetItem* eachItem, itemToRemove) {
DELETEPTR(eachItem); DELETEPTR(eachItem);
} }
// the mpMediaSwitchItem is deleted by the previous loop but the pointer is not set to zero // the mpMediaSwitchItem is deleted by the previous loop but the pointer is not set to zero
...@@ -482,81 +495,81 @@ void UBTeacherGuidePresentationWidget::cleanData() ...@@ -482,81 +495,81 @@ void UBTeacherGuidePresentationWidget::cleanData()
void UBTeacherGuidePresentationWidget::onActiveSceneChanged() void UBTeacherGuidePresentationWidget::onActiveSceneChanged()
{ {
cleanData(); cleanData();
mpPageNumberLabel->setText(tr("Page: %0").arg(UBApplication::boardController->currentPage())); mpPageNumberLabel->setText( tr("Page: %0").arg(UBApplication::boardController->currentPage()));
UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument(); UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument();
if(mpDocumentTitle) if (mpDocumentTitle)
mpDocumentTitle->setText(documentProxy->metaData(UBSettings::sessionTitle).toString()); mpDocumentTitle->setText( documentProxy->metaData(UBSettings::sessionTitle).toString());
} }
void UBTeacherGuidePresentationWidget::createMediaButtonItem() void UBTeacherGuidePresentationWidget::createMediaButtonItem()
{ {
if(!mpMediaSwitchItem){ if (!mpMediaSwitchItem) {
mpMediaSwitchItem = new QTreeWidgetItem(mpRootWidgetItem); mpMediaSwitchItem = new QTreeWidgetItem(mpRootWidgetItem);
mpMediaSwitchItem->setText(0,"+"); mpMediaSwitchItem->setText(0, "+");
mpMediaSwitchItem->setExpanded(false); mpMediaSwitchItem->setExpanded(false);
mpMediaSwitchItem->setData(0,tUBTGTreeWidgetItemRole_HasAnAction,tUBTGActionAssociateOnClickItem_EXPAND); mpMediaSwitchItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_EXPAND);
mpMediaSwitchItem->setData(0,Qt::BackgroundRole,QVariant(QColor(200,200,200))); mpMediaSwitchItem->setData(0, Qt::BackgroundRole, QVariant(QColor(200, 200, 200)));
mpMediaSwitchItem->setData(0,Qt::FontRole, QVariant(QFont(QApplication::font().family(),16))); mpMediaSwitchItem->setData(0, Qt::FontRole, QVariant(QFont(QApplication::font().family(), 16)));
mpMediaSwitchItem->setData(0,Qt::TextAlignmentRole,QVariant(Qt::AlignCenter)); mpMediaSwitchItem->setData(0, Qt::TextAlignmentRole, QVariant(Qt::AlignCenter));
mpRootWidgetItem->addChild(mpMediaSwitchItem); mpRootWidgetItem->addChild(mpMediaSwitchItem);
} }
} }
void UBTeacherGuidePresentationWidget::showData( QVector<tUBGEElementNode*> data)
void UBTeacherGuidePresentationWidget::showData(QVector<tUBGEElementNode*> data)
{ {
cleanData(); cleanData();
foreach(tUBGEElementNode* element, data){ foreach(tUBGEElementNode* element, data) {
if(element->name == "pageTitle") if (element->name == "pageTitle")
mpPageTitle->showText(element->attributes.value("value")); mpPageTitle->showText(element->attributes.value("value"));
else if (element->name == "comment") else if (element->name == "comment")
mpComment->showText(element->attributes.value("value")); mpComment->showText(element->attributes.value("value"));
else if(element->name == "action"){ else if (element->name == "action") {
QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem(mpRootWidgetItem); QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem( mpRootWidgetItem);
newWidgetItem->setText(0,element->attributes.value("task")); newWidgetItem->setText(0, element->attributes.value("task"));
newWidgetItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); newWidgetItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
QString colorString = element->attributes.value("owner").toInt() == 0 ? "red":"green"; QString colorString = element->attributes.value("owner").toInt() == 0 ? "red" : "green";
UBTGAdaptableText* textWidget = new UBTGAdaptableText(newWidgetItem,0); UBTGAdaptableText* textWidget = new UBTGAdaptableText(newWidgetItem,
0);
textWidget->bottomMargin(14); textWidget->bottomMargin(14);
textWidget->setStyleSheet("QWidget {background: #EEEEEE; border:none; color:" + colorString + ";}"); textWidget->setStyleSheet( "QWidget {background: #EEEEEE; border:none; color:" + colorString + ";}");
textWidget->showText(element->attributes.value("task")); textWidget->showText(element->attributes.value("task"));
textWidget->document()->setDefaultFont(QFont(QApplication::font().family(),11)); textWidget->document()->setDefaultFont( QFont(QApplication::font().family(), 11));
mpTreeWidget->setItemWidget(newWidgetItem,0,textWidget); mpTreeWidget->setItemWidget(newWidgetItem, 0, textWidget);
mpRootWidgetItem->addChild(newWidgetItem); mpRootWidgetItem->addChild(newWidgetItem);
} }
else if(element->name == "media"){ else if (element->name == "media") {
createMediaButtonItem(); createMediaButtonItem();
QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem(mpMediaSwitchItem); QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem( mpMediaSwitchItem);
newWidgetItem->setIcon(0,QIcon(":images/teacherGuide/"+ element->attributes.value("mediaType") +".png")); newWidgetItem->setIcon(0, QIcon( ":images/teacherGuide/" + element->attributes.value("mediaType") + ".png"));
newWidgetItem->setText(0,element->attributes.value("title")); newWidgetItem->setText(0, element->attributes.value("title"));
newWidgetItem->setData(0,tUBTGTreeWidgetItemRole_HasAnAction,tUBTGActionAssociateOnClickItem_MEDIA); newWidgetItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_MEDIA);
newWidgetItem->setData(0,Qt::FontRole, QVariant(QFont(QApplication::font().family(),11))); newWidgetItem->setData(0, Qt::FontRole, QVariant(QFont(QApplication::font().family(), 11)));
QString mimeTypeString; QString mimeTypeString;
#ifdef Q_WS_WIN #ifdef Q_WS_WIN
mimeTypeString = QUrl::fromLocalFile(UBApplication::boardController->selectedDocument()->persistencePath()+ "/" + element->attributes.value("relativePath")).toString(); mimeTypeString = QUrl::fromLocalFile(UBApplication::boardController->selectedDocument()->persistencePath()+ "/" + element->attributes.value("relativePath")).toString();
#else #else
mimeTypeString = UBApplication::boardController->selectedDocument()->persistencePath()+ "/" + element->attributes.value("relativePath"); mimeTypeString = UBApplication::boardController->selectedDocument()->persistencePath() + "/" + element->attributes.value("relativePath");
#endif #endif
newWidgetItem->setData(0, TG_USER_ROLE_MIME_TYPE, mimeTypeString); newWidgetItem->setData(0, TG_USER_ROLE_MIME_TYPE, mimeTypeString);
newWidgetItem->setFlags(Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsSelectable); newWidgetItem->setFlags( Qt::ItemIsDragEnabled | Qt::ItemIsEnabled | Qt::ItemIsSelectable);
mpRootWidgetItem->addChild(newWidgetItem); mpRootWidgetItem->addChild(newWidgetItem);
QTreeWidgetItem* mediaItem = new QTreeWidgetItem(newWidgetItem); QTreeWidgetItem* mediaItem = new QTreeWidgetItem(newWidgetItem);
mediaItem->setData(0,tUBTGTreeWidgetItemRole_HasAnAction,tUBTGActionAssociateOnClickItem_NONE); mediaItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_NONE);
UBTGMediaWidget* mediaWidget = new UBTGMediaWidget(element->attributes.value("relativePath"),newWidgetItem); UBTGMediaWidget* mediaWidget = new UBTGMediaWidget(element->attributes.value("relativePath"), newWidgetItem);
newWidgetItem->setExpanded(false); newWidgetItem->setExpanded(false);
mpTreeWidget->setItemWidget(mediaItem,0,mediaWidget); mpTreeWidget->setItemWidget(mediaItem, 0, mediaWidget);
} }
else if(element->name == "link"){ else if (element->name == "link") {
createMediaButtonItem(); createMediaButtonItem();
QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem(mpMediaSwitchItem); QTreeWidgetItem* newWidgetItem = new QTreeWidgetItem( mpMediaSwitchItem);
newWidgetItem->setIcon(0,QIcon(":images/teacherGuide/link.png")); newWidgetItem->setIcon(0, QIcon(":images/teacherGuide/link.png"));
newWidgetItem->setText(0,element->attributes.value("title")); newWidgetItem->setText(0, element->attributes.value("title"));
newWidgetItem->setData(0,tUBTGTreeWidgetItemRole_HasAnAction,tUBTGActionAssociateOnClickItem_URL); newWidgetItem->setData(0, tUBTGTreeWidgetItemRole_HasAnAction, tUBTGActionAssociateOnClickItem_URL);
newWidgetItem->setData(0,tUBTGTreeWidgetItemRole_HasAnUrl,QVariant(element->attributes.value("url"))); newWidgetItem->setData(0, tUBTGTreeWidgetItemRole_HasAnUrl, QVariant(element->attributes.value("url")));
newWidgetItem->setData(0,Qt::FontRole, QVariant(QFont(QApplication::font().family(),11))); newWidgetItem->setData(0, Qt::FontRole, QVariant(QFont(QApplication::font().family(), 11)));
newWidgetItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable); newWidgetItem->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
mpRootWidgetItem->addChild(newWidgetItem); mpRootWidgetItem->addChild(newWidgetItem);
} }
...@@ -565,20 +578,20 @@ void UBTeacherGuidePresentationWidget::showData(QVector<tUBGEElementNode*> data) ...@@ -565,20 +578,20 @@ void UBTeacherGuidePresentationWidget::showData(QVector<tUBGEElementNode*> data)
void UBTeacherGuidePresentationWidget::onAddItemClicked(QTreeWidgetItem* widget, int column) void UBTeacherGuidePresentationWidget::onAddItemClicked(QTreeWidgetItem* widget, int column)
{ {
int associateAction = widget->data(column,tUBTGTreeWidgetItemRole_HasAnAction).toInt(); int associateAction = widget->data(column,
if(column == 0 && associateAction != tUBTGActionAssociateOnClickItem_NONE){ tUBTGTreeWidgetItemRole_HasAnAction).toInt();
switch(associateAction) if (column == 0 && associateAction != tUBTGActionAssociateOnClickItem_NONE) {
{ switch (associateAction) {
case tUBTGActionAssociateOnClickItem_EXPAND: case tUBTGActionAssociateOnClickItem_EXPAND:
widget->setExpanded(!widget->isExpanded()); widget->setExpanded(!widget->isExpanded());
if(widget->isExpanded()) if (widget->isExpanded())
mpMediaSwitchItem->setText(0,"-"); mpMediaSwitchItem->setText(0, "-");
else else
mpMediaSwitchItem->setText(0,"+"); mpMediaSwitchItem->setText(0, "+");
break; break;
case tUBTGActionAssociateOnClickItem_URL: case tUBTGActionAssociateOnClickItem_URL:
widget->data(column,tUBTGTreeWidgetItemRole_HasAnUrl).toString(); widget->data(column, tUBTGTreeWidgetItemRole_HasAnUrl).toString();
UBApplication::webController->loadUrl(QUrl(widget->data(column,tUBTGTreeWidgetItemRole_HasAnUrl).toString())); UBApplication::webController->loadUrl( QUrl( widget->data(column, tUBTGTreeWidgetItemRole_HasAnUrl).toString()));
break; break;
case tUBTGActionAssociateOnClickItem_MEDIA: case tUBTGActionAssociateOnClickItem_MEDIA:
widget->setExpanded(!widget->isExpanded()); widget->setExpanded(!widget->isExpanded());
...@@ -589,11 +602,11 @@ void UBTeacherGuidePresentationWidget::onAddItemClicked(QTreeWidgetItem* widget, ...@@ -589,11 +602,11 @@ void UBTeacherGuidePresentationWidget::onAddItemClicked(QTreeWidgetItem* widget,
} }
} }
/*************************************************************************** /***************************************************************************
* class UBTeacherGuidePageZeroEditionWidget * * class UBTeacherGuidePageZeroWidget *
***************************************************************************/ ***************************************************************************/
UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, const char* name): QWidget(parent) UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, const char* name) :
QWidget(parent)
, mpLayout(NULL) , mpLayout(NULL)
, mpButtonTitleLayout(NULL) , mpButtonTitleLayout(NULL)
, mpModePushButton(NULL) , mpModePushButton(NULL)
...@@ -622,7 +635,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons ...@@ -622,7 +635,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons
, mpSchoolTypeValueLabel(NULL) , mpSchoolTypeValueLabel(NULL)
, mpSeparatorIndex(NULL) , mpSeparatorIndex(NULL)
, mpLicenceLabel(NULL) , mpLicenceLabel(NULL)
, mpLicenceBox(NULL) , mpLicenceBox( NULL)
, mpLicenceIcon(NULL) , mpLicenceIcon(NULL)
, mpLicenceLayout(NULL) , mpLicenceLayout(NULL)
, mpSceneItemSessionTitle(NULL) , mpSceneItemSessionTitle(NULL)
...@@ -644,9 +657,9 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons ...@@ -644,9 +657,9 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons
mpModePushButton->setMaximumWidth(32); mpModePushButton->setMaximumWidth(32);
mpModePushButton->installEventFilter(this); mpModePushButton->installEventFilter(this);
mpButtonTitleLayout->addWidget(mpModePushButton); mpButtonTitleLayout->addWidget(mpModePushButton);
connect(mpModePushButton,SIGNAL(clicked()),this,SLOT(switchToMode())); connect(mpModePushButton, SIGNAL(clicked()), this, SLOT(switchToMode()));
mpSessionTitle = new UBTGAdaptableText(0,this,"UBTGSessionTitle"); mpSessionTitle = new UBTGAdaptableText(0, this, "UBTGSessionTitle");
mpSessionTitle->setPlaceHolderText(tr("Type session title here ...")); mpSessionTitle->setPlaceHolderText(tr("Type session title here ..."));
mpButtonTitleLayout->addWidget(mpSessionTitle); mpButtonTitleLayout->addWidget(mpSessionTitle);
...@@ -663,7 +676,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons ...@@ -663,7 +676,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons
mpAuthorsLabel->setStyleSheet(chapterStyle); mpAuthorsLabel->setStyleSheet(chapterStyle);
mpLayout->addWidget(mpAuthorsLabel); mpLayout->addWidget(mpAuthorsLabel);
mpAuthors = new UBTGAdaptableText(0,this); mpAuthors = new UBTGAdaptableText(0, this);
mpAuthors->setObjectName("UBTGZeroPageInputText"); mpAuthors->setObjectName("UBTGZeroPageInputText");
mpAuthors->setPlaceHolderText(tr("Type authors here ...")); mpAuthors->setPlaceHolderText(tr("Type authors here ..."));
mpLayout->addWidget(mpAuthors); mpLayout->addWidget(mpAuthors);
...@@ -687,7 +700,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons ...@@ -687,7 +700,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons
mpObjectivesLabel->setStyleSheet(chapterStyle); mpObjectivesLabel->setStyleSheet(chapterStyle);
mpLayout->addWidget(mpObjectivesLabel); mpLayout->addWidget(mpObjectivesLabel);
mpObjectives = new UBTGAdaptableText(0,this); mpObjectives = new UBTGAdaptableText(0, this);
mpObjectives->setObjectName("UBTGZeroPageInputText"); mpObjectives->setObjectName("UBTGZeroPageInputText");
mpObjectives->setPlaceHolderText(tr("Type objectives here...")); mpObjectives->setPlaceHolderText(tr("Type objectives here..."));
mpLayout->addWidget(mpObjectives); mpLayout->addWidget(mpObjectives);
...@@ -708,7 +721,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons ...@@ -708,7 +721,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons
mpKeywordsLabel->setText(tr("Keywords:")); mpKeywordsLabel->setText(tr("Keywords:"));
mpKeywordsLabel->setStyleSheet(chapterStyle); mpKeywordsLabel->setStyleSheet(chapterStyle);
mpLayout->addWidget(mpKeywordsLabel); mpLayout->addWidget(mpKeywordsLabel);
mpKeywords = new UBTGAdaptableText(0,this); mpKeywords = new UBTGAdaptableText(0, this);
mpKeywords->setPlaceHolderText(tr("Type keywords here ...")); mpKeywords->setPlaceHolderText(tr("Type keywords here ..."));
mpLayout->addWidget(mpKeywords); mpLayout->addWidget(mpKeywords);
...@@ -720,7 +733,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons ...@@ -720,7 +733,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons
mpSchoolLevelBox = new QComboBox(this); mpSchoolLevelBox = new QComboBox(this);
mpSchoolLevelBox->setMinimumHeight(22); mpSchoolLevelBox->setMinimumHeight(22);
mpSchoolLevelBox->setObjectName("DockPaletteWidgetComboBox"); mpSchoolLevelBox->setObjectName("DockPaletteWidgetComboBox");
connect(mpSchoolLevelBox,SIGNAL(currentIndexChanged(QString)),this,SLOT(onSchoolLevelChanged(QString))); connect(mpSchoolLevelBox, SIGNAL(currentIndexChanged(QString)), this, SLOT(onSchoolLevelChanged(QString)));
mpLayout->addWidget(mpSchoolLevelBox); mpLayout->addWidget(mpSchoolLevelBox);
mpSchoolLevelValueLabel = new QLabel(this); mpSchoolLevelValueLabel = new QLabel(this);
mpLayout->addWidget(mpSchoolLevelValueLabel); mpLayout->addWidget(mpSchoolLevelValueLabel);
...@@ -771,8 +784,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons ...@@ -771,8 +784,7 @@ UBTeacherGuidePageZeroWidget::UBTeacherGuidePageZeroWidget(QWidget* parent, cons
mpLayout->addLayout(mpLicenceLayout); mpLayout->addLayout(mpLicenceLayout);
mpLayout->addStretch(1); mpLayout->addStretch(1);
connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(onActiveSceneChanged()));
connect(UBApplication::boardController,SIGNAL(activeSceneChanged()), this, SLOT(onActiveSceneChanged()));
fillComboBoxes(); fillComboBoxes();
} }
...@@ -812,7 +824,7 @@ UBTeacherGuidePageZeroWidget::~UBTeacherGuidePageZeroWidget() ...@@ -812,7 +824,7 @@ UBTeacherGuidePageZeroWidget::~UBTeacherGuidePageZeroWidget()
bool UBTeacherGuidePageZeroWidget::eventFilter(QObject* object, QEvent* event) bool UBTeacherGuidePageZeroWidget::eventFilter(QObject* object, QEvent* event)
{ {
Q_UNUSED(object); Q_UNUSED(object);
if(event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverMove || event->type() == QEvent::HoverLeave) if (event->type() == QEvent::HoverEnter || event->type() == QEvent::HoverMove || event->type() == QEvent::HoverLeave)
return true; return true;
return false; return false;
} }
...@@ -821,7 +833,7 @@ void UBTeacherGuidePageZeroWidget::fillComboBoxes() ...@@ -821,7 +833,7 @@ void UBTeacherGuidePageZeroWidget::fillComboBoxes()
{ {
QString parametersConfigFilePath = UBSettings::settings()->applicationCustomizationDirectory() + "/teacherGuide/indexingParameters.xml"; QString parametersConfigFilePath = UBSettings::settings()->applicationCustomizationDirectory() + "/teacherGuide/indexingParameters.xml";
QFile parametersFile(parametersConfigFilePath); QFile parametersFile(parametersConfigFilePath);
if(!parametersFile.exists()){ if (!parametersFile.exists()) {
qCritical() << "UBTeacherGuidePageZeroEditionWidget fillComboBoxes file not found " << parametersConfigFilePath; qCritical() << "UBTeacherGuidePageZeroEditionWidget fillComboBoxes file not found " << parametersConfigFilePath;
return; return;
} }
...@@ -833,48 +845,54 @@ void UBTeacherGuidePageZeroWidget::fillComboBoxes() ...@@ -833,48 +845,54 @@ void UBTeacherGuidePageZeroWidget::fillComboBoxes()
QDomElement rootElement = doc.elementsByTagName("teacherGuide").at(0).toElement(); QDomElement rootElement = doc.elementsByTagName("teacherGuide").at(0).toElement();
QDomNodeList subjects = rootElement.elementsByTagName("subjects"); QDomNodeList subjects = rootElement.elementsByTagName("subjects");
for(int baseLevelCounter = 0; baseLevelCounter < subjects.count(); baseLevelCounter += 1){ for (int baseLevelCounter = 0; baseLevelCounter < subjects.count(); baseLevelCounter += 1) {
QDomNode subjectsForBaseLevel = subjects.at(baseLevelCounter); QDomNode subjectsForBaseLevel = subjects.at(baseLevelCounter);
QDomNodeList subjectsList = subjectsForBaseLevel.childNodes(); QDomNodeList subjectsList = subjectsForBaseLevel.childNodes();
QStringList subjectsRelatedToBaseLevel; QStringList subjectsRelatedToBaseLevel;
for(int j = 0; j < subjectsList.count(); j += 1){ for (int j = 0; j < subjectsList.count(); j += 1) {
subjectsRelatedToBaseLevel.append(subjectsList.at(j).toElement().attribute("label")); subjectsRelatedToBaseLevel.append(subjectsList.at(j).toElement().attribute("label"));
} }
mSubjects.insert(subjectsForBaseLevel.toElement().attribute("baseLevel"),subjectsRelatedToBaseLevel); mSubjects.insert( subjectsForBaseLevel.toElement().attribute("baseLevel"), subjectsRelatedToBaseLevel);
} }
QDomNodeList gradeLevels = rootElement.elementsByTagName("gradeLevels").at(0).childNodes(); QDomNodeList gradeLevels = rootElement.elementsByTagName("gradeLevels").at(0).childNodes();
for(int i=0; i<gradeLevels.count();i+=1){ for (int i = 0; i < gradeLevels.count(); i += 1) {
mGradeLevelsMap.insert(gradeLevels.at(i).toElement().attribute("label"),gradeLevels.at(i).toElement().attribute("baseLevel")); mGradeLevelsMap.insert(gradeLevels.at(i).toElement().attribute("label"), gradeLevels.at(i).toElement().attribute("baseLevel"));
mpSchoolLevelBox->addItem(gradeLevels.at(i).toElement().attribute("label")); mpSchoolLevelBox->addItem( gradeLevels.at(i).toElement().attribute("label"));
} }
QDomNodeList types = rootElement.elementsByTagName("types").at(0).childNodes(); QDomNodeList types = rootElement.elementsByTagName("types").at(0).childNodes();
for(int i=0; i<types.count();i+=1) for (int i = 0; i < types.count(); i += 1)
mpSchoolTypeBox->addItem(types.at(i).toElement().attribute("label")); mpSchoolTypeBox->addItem(types.at(i).toElement().attribute("label"));
parametersFile.close(); parametersFile.close();
QStringList licences; QStringList licences;
licences << tr("Attribution CC BY") << tr("Attribution-NoDerivs CC BY-ND") << tr("Attribution-ShareAlike CC BY-SA") << tr("Attribution-NonCommercial CC BY-NC") << tr("Attribution-NonCommercial-NoDerivs CC BY-NC-ND") << tr("Attribution-NonCommercial-ShareAlike CC BY-NC-SA") << tr("Public domain") << tr("Copyright"); licences << tr("Attribution CC BY") << tr("Attribution-NoDerivs CC BY-ND")
<< tr("Attribution-ShareAlike CC BY-SA")
<< tr("Attribution-NonCommercial CC BY-NC")
<< tr("Attribution-NonCommercial-NoDerivs CC BY-NC-ND")
<< tr("Attribution-NonCommercial-ShareAlike CC BY-NC-SA")
<< tr("Public domain") << tr("Copyright");
mpLicenceBox->addItems(licences); mpLicenceBox->addItems(licences);
QStringList licenceIconList; QStringList licenceIconList;
licenceIconList << ":images/licenses/ccby.png" << ":images/licenses/ccbynd.png" << ":images/licenses/ccbysa.png" << ":images/licenses/ccbync.png" << ":images/licenses/ccbyncnd.png" << ":images/licenses/ccbyncsa.png"; licenceIconList << ":images/licenses/ccby.png"
for(int i = 0; i < licenceIconList.count(); i+=1) << ":images/licenses/ccbynd.png" << ":images/licenses/ccbysa.png"
mpLicenceBox->setItemData(i,licenceIconList.at(i)); << ":images/licenses/ccbync.png" << ":images/licenses/ccbyncnd.png"
<< ":images/licenses/ccbyncsa.png";
for (int i = 0; i < licenceIconList.count(); i += 1)
mpLicenceBox->setItemData(i, licenceIconList.at(i));
} }
void UBTeacherGuidePageZeroWidget::onSchoolLevelChanged(QString schoolLevel) void UBTeacherGuidePageZeroWidget::onSchoolLevelChanged(QString schoolLevel)
{ {
QStringList subjects = mSubjects.value(mGradeLevelsMap.value(schoolLevel)); QStringList subjects = mSubjects.value(mGradeLevelsMap.value(schoolLevel));
mpSchoolSubjectsBox->clear(); mpSchoolSubjectsBox->clear();
if(subjects.count()){ if (subjects.count()) {
mpSchoolSubjectsItemLabel->setEnabled(true); mpSchoolSubjectsItemLabel->setEnabled(true);
mpSchoolSubjectsBox->setEnabled(true); mpSchoolSubjectsBox->setEnabled(true);
mpSchoolSubjectsBox->addItems(subjects); mpSchoolSubjectsBox->addItems(subjects);
} } else {
else{
mpSchoolSubjectsItemLabel->setDisabled(true); mpSchoolSubjectsItemLabel->setDisabled(true);
mpSchoolSubjectsBox->setDisabled(true); mpSchoolSubjectsBox->setDisabled(true);
} }
...@@ -883,17 +901,17 @@ void UBTeacherGuidePageZeroWidget::onSchoolLevelChanged(QString schoolLevel) ...@@ -883,17 +901,17 @@ void UBTeacherGuidePageZeroWidget::onSchoolLevelChanged(QString schoolLevel)
void UBTeacherGuidePageZeroWidget::onActiveSceneChanged() void UBTeacherGuidePageZeroWidget::onActiveSceneChanged()
{ {
UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument(); UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument();
if(documentProxy && UBApplication::boardController->currentPage() == 0){ if (documentProxy && UBApplication::boardController->currentPage() == 0) {
QDateTime creationDate = documentProxy->documentDate(); QDateTime creationDate = documentProxy->documentDate();
mpCreationLabel->setText(tr("Created the:\n") + creationDate.toString(Qt::DefaultLocaleShortDate)); mpCreationLabel->setText( tr("Created the:\n") + creationDate.toString(Qt::DefaultLocaleShortDate));
QDateTime updatedDate = documentProxy->lastUpdate(); QDateTime updatedDate = documentProxy->lastUpdate();
mpLastModifiedLabel->setText(tr("Updated the:\n") + updatedDate.toString(Qt::DefaultLocaleShortDate)); mpLastModifiedLabel->setText( tr("Updated the:\n") + updatedDate.toString(Qt::DefaultLocaleShortDate));
loadData(); loadData();
updateSceneTitle(); updateSceneTitle();
} }
} }
void UBTeacherGuidePageZeroWidget::hideEvent ( QHideEvent * event ) void UBTeacherGuidePageZeroWidget::hideEvent(QHideEvent * event)
{ {
persistData(); persistData();
QWidget::hideEvent(event); QWidget::hideEvent(event);
...@@ -902,56 +920,56 @@ void UBTeacherGuidePageZeroWidget::hideEvent ( QHideEvent * event ) ...@@ -902,56 +920,56 @@ void UBTeacherGuidePageZeroWidget::hideEvent ( QHideEvent * event )
void UBTeacherGuidePageZeroWidget::loadData() void UBTeacherGuidePageZeroWidget::loadData()
{ {
UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument(); UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument();
mpSessionTitle->setText(documentProxy->metaData(UBSettings::sessionTitle).toString()); mpSessionTitle->setText( documentProxy->metaData(UBSettings::sessionTitle).toString());
mpAuthors->setText(documentProxy->metaData(UBSettings::sessionAuthors).toString()); mpAuthors->setText( documentProxy->metaData(UBSettings::sessionAuthors).toString());
mpObjectives->setText(documentProxy->metaData(UBSettings::sessionObjectives).toString()); mpObjectives->setText( documentProxy->metaData(UBSettings::sessionObjectives).toString());
mpKeywords->setText(documentProxy->metaData(UBSettings::sessionKeywords).toString()); mpKeywords->setText( documentProxy->metaData(UBSettings::sessionKeywords).toString());
int currentIndex = mpSchoolLevelBox->findText(documentProxy->metaData(UBSettings::sessionGradeLevel).toString()); int currentIndex = mpSchoolLevelBox->findText(documentProxy->metaData(UBSettings::sessionGradeLevel).toString());
mpSchoolLevelBox->setCurrentIndex((currentIndex!=-1) ? currentIndex : 0); mpSchoolLevelBox->setCurrentIndex((currentIndex != -1) ? currentIndex : 0);
currentIndex = mpSchoolSubjectsBox->findText(documentProxy->metaData(UBSettings::sessionSubjects).toString()); currentIndex = mpSchoolSubjectsBox->findText(documentProxy->metaData(UBSettings::sessionSubjects).toString());
mpSchoolSubjectsBox->setCurrentIndex((currentIndex!=-1) ? currentIndex : 0); mpSchoolSubjectsBox->setCurrentIndex((currentIndex != -1) ? currentIndex : 0);
currentIndex = mpSchoolTypeBox->findText(documentProxy->metaData(UBSettings::sessionType).toString()); currentIndex = mpSchoolTypeBox->findText(documentProxy->metaData(UBSettings::sessionType).toString());
mpSchoolTypeBox->setCurrentIndex((currentIndex!=-1) ? currentIndex : 0); mpSchoolTypeBox->setCurrentIndex((currentIndex != -1) ? currentIndex : 0);
currentIndex = mpLicenceBox->findText(documentProxy->metaData(UBSettings::sessionLicence).toString()); currentIndex = mpLicenceBox->findText(documentProxy->metaData(UBSettings::sessionLicence).toString());
mpLicenceBox->setCurrentIndex((currentIndex!=-1) ? currentIndex : 0); mpLicenceBox->setCurrentIndex((currentIndex != -1) ? currentIndex : 0);
} }
void UBTeacherGuidePageZeroWidget::persistData() void UBTeacherGuidePageZeroWidget::persistData()
{ {
// check necessary because at document closing hide event is send after boardcontroller set // check necessary because at document closing hide event is send after boardcontroller set
// to NULL // to NULL
if(UBApplication::boardController){ if (UBApplication::boardController) {
UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument(); UBDocumentProxy* documentProxy = UBApplication::boardController->selectedDocument();
documentProxy->setMetaData(UBSettings::sessionTitle,mpSessionTitle->text()); documentProxy->setMetaData(UBSettings::sessionTitle, mpSessionTitle->text());
documentProxy->setMetaData(UBSettings::sessionAuthors, mpAuthors->text()); documentProxy->setMetaData(UBSettings::sessionAuthors, mpAuthors->text());
documentProxy->setMetaData(UBSettings::sessionObjectives,mpObjectives->text()); documentProxy->setMetaData(UBSettings::sessionObjectives, mpObjectives->text());
documentProxy->setMetaData(UBSettings::sessionKeywords,mpKeywords->text()); documentProxy->setMetaData(UBSettings::sessionKeywords, mpKeywords->text());
documentProxy->setMetaData(UBSettings::sessionGradeLevel,mpSchoolLevelBox->currentText()); documentProxy->setMetaData(UBSettings::sessionGradeLevel, mpSchoolLevelBox->currentText());
documentProxy->setMetaData(UBSettings::sessionSubjects,mpSchoolSubjectsBox->currentText()); documentProxy->setMetaData(UBSettings::sessionSubjects, mpSchoolSubjectsBox->currentText());
documentProxy->setMetaData(UBSettings::sessionType,mpSchoolTypeBox->currentText()); documentProxy->setMetaData(UBSettings::sessionType, mpSchoolTypeBox->currentText());
documentProxy->setMetaData(UBSettings::sessionLicence,mpLicenceBox->currentText()); documentProxy->setMetaData(UBSettings::sessionLicence, mpLicenceBox->currentText());
} }
} }
void UBTeacherGuidePageZeroWidget::updateSceneTitle() void UBTeacherGuidePageZeroWidget::updateSceneTitle()
{ {
QString sessionTitle = mpSessionTitle->text(); QString sessionTitle = mpSessionTitle->text();
if(!sessionTitle.isEmpty()) if (!sessionTitle.isEmpty())
UBApplication::boardController->activeScene()->textForObjectName(mpSessionTitle->text()); UBApplication::boardController->activeScene()->textForObjectName(mpSessionTitle->text());
} }
void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode) void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode)
{ {
if(mode == tUBTGZeroPageMode_EDITION){ if (mode == tUBTGZeroPageMode_EDITION) {
QString inputStyleSheet("QTextEdit { background: white; border-radius: 10px; border: 2px;}"); QString inputStyleSheet("QTextEdit { background: white; border-radius: 10px; border: 2px;}");
mpModePushButton->hide(); mpModePushButton->hide();
mpSessionTitle->setReadOnly(false); mpSessionTitle->setReadOnly(false);
mpSessionTitle->setStyleSheet(inputStyleSheet); mpSessionTitle->setStyleSheet(inputStyleSheet);
QFont titleFont(QApplication::font().family(),11,-1); QFont titleFont(QApplication::font().family(), 11, -1);
mpSessionTitle->document()->setDefaultFont(titleFont); mpSessionTitle->document()->setDefaultFont(titleFont);
mpAuthors->setReadOnly(false); mpAuthors->setReadOnly(false);
mpAuthors->setStyleSheet(inputStyleSheet); mpAuthors->setStyleSheet(inputStyleSheet);
...@@ -969,13 +987,13 @@ void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode) ...@@ -969,13 +987,13 @@ void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode)
mpLicenceValueLabel->hide(); mpLicenceValueLabel->hide();
mpLicenceBox->show(); mpLicenceBox->show();
} }
else{ else {
QString inputStyleSheet("QTextEdit { background: transparent; border: none;}"); QString inputStyleSheet( "QTextEdit { background: transparent; border: none;}");
mpModePushButton->show(); mpModePushButton->show();
mpSessionTitle->showText(mpSessionTitle->text()); mpSessionTitle->showText(mpSessionTitle->text());
mpSessionTitle->setStyleSheet(inputStyleSheet); mpSessionTitle->setStyleSheet(inputStyleSheet);
updateSceneTitle(); updateSceneTitle();
QFont titleFont(QApplication::font().family(),14,1); QFont titleFont(QApplication::font().family(), 14, 1);
mpSessionTitle->document()->setDefaultFont(titleFont); mpSessionTitle->document()->setDefaultFont(titleFont);
mpAuthors->setStyleSheet(inputStyleSheet); mpAuthors->setStyleSheet(inputStyleSheet);
mpAuthors->setTextColor(QColor(Qt::black)); mpAuthors->setTextColor(QColor(Qt::black));
...@@ -997,7 +1015,7 @@ void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode) ...@@ -997,7 +1015,7 @@ void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode)
mpSchoolTypeBox->hide(); mpSchoolTypeBox->hide();
mpLicenceValueLabel->setText(mpLicenceBox->currentText()); mpLicenceValueLabel->setText(mpLicenceBox->currentText());
QString licenceIconPath = mpLicenceBox->itemData(mpLicenceBox->currentIndex()).toString(); QString licenceIconPath = mpLicenceBox->itemData(mpLicenceBox->currentIndex()).toString();
if(!licenceIconPath.isEmpty()){ if (!licenceIconPath.isEmpty()) {
mpLicenceIcon->setPixmap(QPixmap(licenceIconPath)); mpLicenceIcon->setPixmap(QPixmap(licenceIconPath));
mpLicenceIcon->show(); mpLicenceIcon->show();
} }
...@@ -1010,85 +1028,101 @@ void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode) ...@@ -1010,85 +1028,101 @@ void UBTeacherGuidePageZeroWidget::switchToMode(tUBTGZeroPageMode mode)
QVector<tUBGEElementNode*> UBTeacherGuidePageZeroWidget::getData() QVector<tUBGEElementNode*> UBTeacherGuidePageZeroWidget::getData()
{ {
QVector<tUBGEElementNode*>result; QVector<tUBGEElementNode*> result;
tUBGEElementNode* elementNode = new tUBGEElementNode(); tUBGEElementNode* elementNode = new tUBGEElementNode();
elementNode->name = "sessionTitle"; elementNode->name = "sessionTitle";
elementNode->attributes.insert("value",mpSessionTitle->text()); elementNode->attributes.insert("value", mpSessionTitle->text());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "authors"; elementNode->name = "authors";
elementNode->attributes.insert("value",mpAuthors->text()); elementNode->attributes.insert("value", mpAuthors->text());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "creationDate"; elementNode->name = "creationDate";
elementNode->attributes.insert("value",mpCreationLabel->text()); elementNode->attributes.insert("value", mpCreationLabel->text());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "lastModifiedDate"; elementNode->name = "lastModifiedDate";
elementNode->attributes.insert("value",mpLastModifiedLabel->text()); elementNode->attributes.insert("value", mpLastModifiedLabel->text());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "goals"; elementNode->name = "goals";
elementNode->attributes.insert("value",mpObjectives->text()); elementNode->attributes.insert("value", mpObjectives->text());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "keywords"; elementNode->name = "keywords";
elementNode->attributes.insert("value",mpKeywords->text()); elementNode->attributes.insert("value", mpKeywords->text());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "schoolLevel"; elementNode->name = "schoolLevel";
elementNode->attributes.insert("value",mpSchoolLevelBox->currentText()); elementNode->attributes.insert("value", mpSchoolLevelBox->currentText());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "schoolBranch"; elementNode->name = "schoolBranch";
elementNode->attributes.insert("value",mpSchoolSubjectsBox->currentText()); elementNode->attributes.insert("value", mpSchoolSubjectsBox->currentText());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "schoolType"; elementNode->name = "schoolType";
elementNode->attributes.insert("value",mpSchoolTypeBox->currentText()); elementNode->attributes.insert("value", mpSchoolTypeBox->currentText());
result << elementNode; result << elementNode;
elementNode = new tUBGEElementNode(); elementNode = new tUBGEElementNode();
elementNode->name = "licence"; elementNode->name = "licence";
elementNode->attributes.insert("value",mpLicenceBox->currentText()); elementNode->attributes.insert("value", mpLicenceBox->currentText());
result << elementNode; result << elementNode;
return result; return result;
} }
bool UBTeacherGuidePageZeroWidget::isModified()
{
bool result = false;
result |= mpSessionTitle->text().length() > 0;
result |= mpAuthors->text().length() > 0;
result |= mpObjectives->text().length() > 0;
result |= mpKeywords->text().length() > 0;
result |= mpSchoolLevelBox->currentIndex() > 0;
result |= mpSchoolSubjectsBox->currentIndex() > 0;
result |= mpSchoolTypeBox->currentIndex() > 0;
result |= mpLicenceBox->currentIndex() > 0;
return result;
}
/*************************************************************************** /***************************************************************************
* class UBTeacherGuideWidget * * class UBTeacherGuideWidget *
***************************************************************************/ ***************************************************************************/
UBTeacherGuideWidget::UBTeacherGuideWidget(QWidget* parent, const char* name): QStackedWidget(parent) UBTeacherGuideWidget::UBTeacherGuideWidget(QWidget* parent, const char* name) :
QStackedWidget(parent)
, mpPageZeroWidget(NULL) , mpPageZeroWidget(NULL)
, mpEditionWidget(NULL) , mpEditionWidget(NULL)
, mpPresentationWidget(NULL) , mpPresentationWidget(NULL)
{ {
setObjectName(name); setObjectName(name);
if(UBSettings::settings()->teacherGuidePageZeroActivated->get().toBool()){ if (UBSettings::settings()->teacherGuidePageZeroActivated->get().toBool()) {
mpPageZeroWidget = new UBTeacherGuidePageZeroWidget(this); mpPageZeroWidget = new UBTeacherGuidePageZeroWidget(this);
addWidget(mpPageZeroWidget); addWidget(mpPageZeroWidget);
} }
if(UBSettings::settings()->teacherGuideLessonPagesActivated->get().toBool()){ if (UBSettings::settings()->teacherGuideLessonPagesActivated->get().toBool()) {
mpEditionWidget = new UBTeacherGuideEditionWidget(this); mpEditionWidget = new UBTeacherGuideEditionWidget(this);
addWidget(mpEditionWidget); addWidget(mpEditionWidget);
mpPresentationWidget = new UBTeacherGuidePresentationWidget(this); mpPresentationWidget = new UBTeacherGuidePresentationWidget(this);
addWidget(mpPresentationWidget); addWidget(mpPresentationWidget);
} }
connect(UBApplication::boardController->controlView(),SIGNAL(clickOnBoard()),this,SLOT(showPresentationMode())); connect(UBApplication::boardController->controlView(),
SIGNAL(clickOnBoard()), this, SLOT(showPresentationMode()));
connectToStylusPalette(); connectToStylusPalette();
connect(UBApplication::boardController,SIGNAL(activeSceneChanged()),this,SLOT(onActiveSceneChanged())); connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this,
SLOT(onActiveSceneChanged()));
} }
UBTeacherGuideWidget::~UBTeacherGuideWidget() UBTeacherGuideWidget::~UBTeacherGuideWidget()
{ {
DELETEPTR(mpPageZeroWidget); DELETEPTR(mpPageZeroWidget);
...@@ -1096,32 +1130,32 @@ UBTeacherGuideWidget::~UBTeacherGuideWidget() ...@@ -1096,32 +1130,32 @@ UBTeacherGuideWidget::~UBTeacherGuideWidget()
DELETEPTR(mpPresentationWidget); DELETEPTR(mpPresentationWidget);
} }
void UBTeacherGuideWidget::onActiveSceneChanged() void UBTeacherGuideWidget::onActiveSceneChanged()
{ {
if(UBApplication::boardController->currentPage() == 0){ if (UBApplication::boardController->currentPage() == 0) {
setCurrentWidget(mpPageZeroWidget); setCurrentWidget(mpPageZeroWidget);
mpPageZeroWidget->switchToMode(tUBTGZeroPageMode_EDITION); mpPageZeroWidget->switchToMode(tUBTGZeroPageMode_EDITION);
}else }
else
setCurrentWidget(mpEditionWidget); setCurrentWidget(mpEditionWidget);
} }
void UBTeacherGuideWidget::connectToStylusPalette() void UBTeacherGuideWidget::connectToStylusPalette()
{ {
if(UBApplication::boardController->paletteManager()) if (UBApplication::boardController->paletteManager())
connect(UBApplication::boardController->paletteManager()->stylusPalette(),SIGNAL(itemOnActionPaletteChanged()),this,SLOT(showPresentationMode())); connect( UBApplication::boardController->paletteManager()->stylusPalette(), SIGNAL(itemOnActionPaletteChanged()), this, SLOT(showPresentationMode()));
else else
QTimer::singleShot(100,this,SLOT(connectToStylusPalette())); QTimer::singleShot(100, this, SLOT(connectToStylusPalette()));
} }
void UBTeacherGuideWidget::showPresentationMode() void UBTeacherGuideWidget::showPresentationMode()
{ {
if(currentWidget()==mpPageZeroWidget){ if (currentWidget() == mpPageZeroWidget) {
mCurrentData = mpPageZeroWidget->getData(); mCurrentData = mpPageZeroWidget->getData();
mpPageZeroWidget->switchToMode(tUBTGZeroPageMode_PRESENTATION); mpPageZeroWidget->switchToMode(tUBTGZeroPageMode_PRESENTATION);
} }
else if(currentWidget()==mpEditionWidget){ else if (currentWidget() == mpEditionWidget) {
mCurrentData = mpEditionWidget->getData(); mCurrentData = mpEditionWidget->getData();
mpPresentationWidget->showData(mCurrentData); mpPresentationWidget->showData(mCurrentData);
setCurrentWidget(mpPresentationWidget); setCurrentWidget(mpPresentationWidget);
...@@ -1130,9 +1164,17 @@ void UBTeacherGuideWidget::showPresentationMode() ...@@ -1130,9 +1164,17 @@ void UBTeacherGuideWidget::showPresentationMode()
void UBTeacherGuideWidget::changeMode() void UBTeacherGuideWidget::changeMode()
{ {
if(currentWidget() == mpEditionWidget) if (currentWidget() == mpEditionWidget)
setCurrentWidget(mpPresentationWidget); setCurrentWidget(mpPresentationWidget);
else else
setCurrentWidget(mpEditionWidget); setCurrentWidget(mpEditionWidget);
} }
bool UBTeacherGuideWidget::isModified()
{
if (currentWidget() == mpPageZeroWidget)
return mpPageZeroWidget->isModified();
else
return mpEditionWidget->isModified();
}
...@@ -50,6 +50,8 @@ public: ...@@ -50,6 +50,8 @@ public:
void load(QString element); void load(QString element);
QVector<tIDataStorage*> save(int pageIndex); QVector<tIDataStorage*> save(int pageIndex);
bool isModified();
public slots: public slots:
void onAddItemClicked(QTreeWidgetItem* widget, int column, QDomElement* element = 0); void onAddItemClicked(QTreeWidgetItem* widget, int column, QDomElement* element = 0);
void onActiveSceneChanged(); void onActiveSceneChanged();
...@@ -124,6 +126,7 @@ public: ...@@ -124,6 +126,7 @@ public:
~UBTeacherGuidePageZeroWidget(); ~UBTeacherGuidePageZeroWidget();
QVector<tUBGEElementNode*> getData(); QVector<tUBGEElementNode*> getData();
bool isModified();
public slots: public slots:
...@@ -198,6 +201,8 @@ public: ...@@ -198,6 +201,8 @@ public:
explicit UBTeacherGuideWidget(QWidget* parent = 0, const char* name="UBTeacherGuideWidget"); explicit UBTeacherGuideWidget(QWidget* parent = 0, const char* name="UBTeacherGuideWidget");
~UBTeacherGuideWidget(); ~UBTeacherGuideWidget();
bool isModified();
public slots: public slots:
void changeMode(); void changeMode();
void showPresentationMode(); void showPresentationMode();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment