diff --git a/resources/images/teacher_close.png b/resources/images/teacher_close.png
index d81f1de5..bee2ea0d 100644
Binary files a/resources/images/teacher_close.png and b/resources/images/teacher_close.png differ
diff --git a/resources/images/teacher_close_disabled.png b/resources/images/teacher_close_disabled.png
new file mode 100644
index 00000000..8f3c988c
Binary files /dev/null and b/resources/images/teacher_close_disabled.png differ
diff --git a/resources/images/teacher_open.png b/resources/images/teacher_open.png
index 9ab58769..17469cc7 100644
Binary files a/resources/images/teacher_open.png and b/resources/images/teacher_open.png differ
diff --git a/resources/images/teacher_open_disabled.png b/resources/images/teacher_open_disabled.png
new file mode 100644
index 00000000..99e78cd9
Binary files /dev/null and b/resources/images/teacher_open_disabled.png differ
diff --git a/resources/sankore.qrc b/resources/sankore.qrc
index 0fff05c3..4c7162ef 100644
--- a/resources/sankore.qrc
+++ b/resources/sankore.qrc
@@ -332,5 +332,7 @@
images/moveUpDisabled.svg
images/teacher_close.png
images/teacher_open.png
+ images/teacher_close_disabled.png
+ images/teacher_open_disabled.png
diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp
index fc743c99..e0152975 100755
--- a/src/board/UBBoardPaletteManager.cpp
+++ b/src/board/UBBoardPaletteManager.cpp
@@ -19,6 +19,7 @@
#include "frameworks/UBFileSystemUtils.h"
#include "core/UBApplication.h"
+#include "core/UBApplicationController.h"
#include "core/UBSettings.h"
#include "core/UBSetting.h"
#include "core/UBDisplayManager.h"
@@ -162,21 +163,20 @@ void UBBoardPaletteManager::setupDockPaletteWidgets()
mpPageNavigWidget = new UBPageNavigationWidget();
mpPageNavigWidget->registerMode(eUBDockPaletteWidget_BOARD);
- connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpPageNavigWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
-
+// connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpPageNavigWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
+
mpLibWidget = new UBLibWidget();
mpLibWidget ->registerMode(eUBDockPaletteWidget_BOARD);
mpLibWidget ->registerMode(eUBDockPaletteWidget_DESKTOP);
+// connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpLibWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
- connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpLibWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
-
-// mpCachePropWidget = new UBCachePropertiesWidget();
-// mpCachePropWidget->registerMode(eUBDockPaletteWidget_BOARD);
-// connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpCachePropWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
+ mpCachePropWidget = new UBCachePropertiesWidget();
+ mpCachePropWidget->registerMode(eUBDockPaletteWidget_BOARD);
+// connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpCachePropWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
- mpTeacherBarWidget = new UBTeacherBarWidget();
- mpTeacherBarWidget->registerMode(eUBDockPaletteWidget_BOARD);
- connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpTeacherBarWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
+ mpTeacherBarWidget = new UBTeacherBarWidget();
+ mpTeacherBarWidget->registerMode(eUBDockPaletteWidget_BOARD);
+// connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpTeacherBarWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode)));
//------------------------------------------------//
// Add the dock palettes
@@ -184,7 +184,7 @@ void UBBoardPaletteManager::setupDockPaletteWidgets()
// LEFT palette widgets
mLeftPalette->registerWidget(mpPageNavigWidget);
- mLeftPalette->addTabWidget(mpPageNavigWidget);
+ mLeftPalette->addTab(mpPageNavigWidget);
mLeftPalette->connectSignals();
@@ -194,24 +194,62 @@ void UBBoardPaletteManager::setupDockPaletteWidgets()
// RIGHT palette widgets
mRightPalette->registerWidget(mpLibWidget);
- mRightPalette->addTabWidget(mpLibWidget);
+ mRightPalette->addTab(mpLibWidget);
-// // ???
-// mRightPalette->registerWidget(mpCachePropWidget);
-// mRightPalette->addTabWidget(mpCachePropWidget);
+ // ???
+ mRightPalette->registerWidget(mpCachePropWidget);
+// mRightPalette->addTab(mpCachePropWidget);
-// // ???
- mRightPalette->registerWidget(mpTeacherBarWidget);
- mRightPalette->addTabWidget(mpTeacherBarWidget);
+ // ???
+ mRightPalette->registerWidget(mpTeacherBarWidget);
+ mRightPalette->addTab(mpTeacherBarWidget);
mRightPalette->connectSignals();
//------------------------------------------------//
- mLeftPalette->showTabWidget(0);
- mRightPalette->showTabWidget(0);
+ changeMode(eUBDockPaletteWidget_BOARD, true);
//------------------------------------------------//
+
+// mLeftPalette->showTabWidget(0);
+// mRightPalette->showTabWidget(0);
+//
+// //------------------------------------------------//
+}
+
+void UBBoardPaletteManager::slot_changeMainMode(UBApplicationController::MainMode mainMode)
+{
+ switch( mainMode )
+ {
+ case UBApplicationController::Board:
+ // call changeMode only when switch NOT from desktop mode
+ if(!UBApplication::applicationController->isShowingDesktop())
+ changeMode(eUBDockPaletteWidget_BOARD);
+ break;
+
+ default:
+ break;
+ }
+}
+
+void UBBoardPaletteManager::slot_changeDesktopMode(bool isDesktop)
+{
+ UBApplicationController::MainMode currMode = UBApplication::applicationController->displayMode();
+ if(!isDesktop)
+ {
+ switch( currMode )
+ {
+ case UBApplicationController::Board:
+ changeMode(eUBDockPaletteWidget_BOARD);
+ break;
+
+ default:
+ break;
+ }
+ }
+ else
+ changeMode(eUBDockPaletteWidget_DESKTOP);
}
void UBBoardPaletteManager::setupPalettes()
@@ -444,6 +482,8 @@ void UBBoardPaletteManager::connectPalettes()
}
+
+
void UBBoardPaletteManager::containerResized()
{
int innerMargin = UBSettings::boardMargin;
@@ -604,8 +644,39 @@ void UBBoardPaletteManager::addItem(const QUrl& pUrl)
}
-void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode)
+void UBBoardPaletteManager::processPalettersWidget(UBDockPalette *paletter, eUBDockPaletteWidgetMode mode)
{
+ //-------------------------------//
+ // get full right palette widgets list, parse it, show all widgets for BOARD mode, and hide all other
+ QVector widgetsList = paletter->GetWidgetsList();
+ for(int i = 0; i < widgetsList.size(); i++)
+ {
+ UBDockPaletteWidget* pNextWidget = widgetsList.at(i);
+ if( pNextWidget != NULL )
+ {
+ if( pNextWidget->GetRegisteredModes().contains(mode) )
+ {
+ paletter->addTab(pNextWidget);
+ }
+ else
+ {
+ paletter->removeTab(pNextWidget->name());
+ }
+ }
+ }
+ //-------------------------------//
+
+ if(widgetsList.size() > 0)
+ paletter->showTabWidget(0);
+
+ paletter->update();
+}
+
+void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool isInit)
+{
+ processPalettersWidget(mRightPalette, newMode);
+ processPalettersWidget(mLeftPalette, newMode);
+
switch( newMode )
{
case eUBDockPaletteWidget_BOARD:
@@ -616,7 +687,8 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode)
mLeftPalette->setVisible(true);
mRightPalette->setVisible(true);
- containerResized();
+ if( !isInit )
+ containerResized();
}
break;
@@ -628,7 +700,8 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode)
mLeftPalette->setVisible(false);
mRightPalette->setVisible(true);
- UBApplication::applicationController->uninotesController()->TransparentWidgetResized();
+ if( !isInit )
+ UBApplication::applicationController->uninotesController()->TransparentWidgetResized();
}
break;
@@ -642,6 +715,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode)
break;
}
+ if( !isInit )
+ UBApplication::boardController->notifyPageChanged();
+
emit signal_changeMode(newMode);
}
@@ -818,3 +894,9 @@ void UBBoardPaletteManager::connectToDocumentController()
{
emit connectToDocController();
}
+
+void UBBoardPaletteManager::refreshPalettes()
+{
+ mRightPalette->update();
+ mLeftPalette->update();
+}
\ No newline at end of file
diff --git a/src/board/UBBoardPaletteManager.h b/src/board/UBBoardPaletteManager.h
index 5fab9c5c..5b3ee587 100644
--- a/src/board/UBBoardPaletteManager.h
+++ b/src/board/UBBoardPaletteManager.h
@@ -27,6 +27,9 @@
#include "gui/UBCachePropertiesWidget.h"
#include "gui/UBTeacherBarWidget.h"
+#include "core/UBApplicationController.h"
+
+
class UBStylusPalette;
class UBClockPalette;
class UBPageNumberPalette;
@@ -37,6 +40,7 @@ class UBFloatingPalette;
class UBServerXMLHttpRequest;
class UBKeyboardPalette;
class UBMainWindow;
+class UBApplicationController;
class UBBoardPaletteManager : public QObject
{
@@ -52,11 +56,14 @@ class UBBoardPaletteManager : public QObject
void showVirtualKeyboard(bool show = true);
void initPalettesPosAtStartup();
void connectToDocumentController();
+ void refreshPalettes();
UBKeyboardPalette *mKeyboardPalette;
// UBRightPalette* createDesktopRightPalette(QWidget* parent);
- void changeMode(eUBDockPaletteWidgetMode newMode);
+ void processPalettersWidget(UBDockPalette *paletter, eUBDockPaletteWidgetMode mode);
+ void changeMode(eUBDockPaletteWidgetMode newMode, bool isInit = false);
+
signals:
void connectToDocController();
@@ -70,6 +77,8 @@ class UBBoardPaletteManager : public QObject
void addItem(const QPixmap& pPixmap, const QPointF& p = QPointF(0.0, 0.0), qreal scale = 1.0, const QUrl& sourceUrl = QUrl());
// void slot_changeMode(eUBDockPaletteWidgetMode newMode);
+ void slot_changeMainMode(UBApplicationController::MainMode);
+ void slot_changeDesktopMode(bool);
private:
diff --git a/src/core/UBApplication.cpp b/src/core/UBApplication.cpp
index 381e52dc..be570848 100644
--- a/src/core/UBApplication.cpp
+++ b/src/core/UBApplication.cpp
@@ -244,6 +244,15 @@ int UBApplication::exec(const QString& pFileToImport)
applicationController = new UBApplicationController(boardController->controlView(), boardController->displayView(), mainWindow, staticMemoryCleaner);
+
+ connect(applicationController, SIGNAL(mainModeChanged(UBApplicationController::MainMode)),
+ boardController->paletteManager(), SLOT(slot_changeMainMode(UBApplicationController::MainMode)));
+
+ connect(applicationController, SIGNAL(desktopMode(bool)),
+ boardController->paletteManager(), SLOT(slot_changeDesktopMode(bool)));
+
+
+
connect(mainWindow->actionDesktop, SIGNAL(triggered(bool)), applicationController, SLOT(showDesktop(bool)));
#ifndef Q_WS_MAC
connect(mainWindow->actionHideApplication, SIGNAL(triggered()), mainWindow, SLOT(showMinimized()));
diff --git a/src/core/UBApplicationController.cpp b/src/core/UBApplicationController.cpp
index f6b002ee..b3560186 100644
--- a/src/core/UBApplicationController.cpp
+++ b/src/core/UBApplicationController.cpp
@@ -336,7 +336,6 @@ void UBApplicationController::showBoard()
mMainWindow->boardToolBar->show();
mMainMode = Board;
- UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_BOARD);
adaptToolBar();
@@ -353,8 +352,6 @@ void UBApplicationController::showBoard()
mUninoteController->hideWindow();
mMainWindow->show();
-// UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_BOARD);
-
emit mainModeChanged(Board);
}
@@ -368,8 +365,6 @@ void UBApplicationController::showInternet()
UBApplication::boardController->hide();
}
- UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_WEB);
-
if (UBSettings::settings()->webUseExternalBrowser->get().toBool())
{
showDesktop(true);
@@ -390,8 +385,6 @@ void UBApplicationController::showInternet()
emit mainModeChanged(Internet);
}
-// UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_WEB);
-
UBApplication::webController->show(UBWebController::WebBrowser);
}
@@ -404,7 +397,6 @@ void UBApplicationController::showDocument()
mMainWindow->documentToolBar->show();
mMainMode = Document;
- UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_DOCUMENT);
adaptToolBar();
@@ -426,8 +418,6 @@ void UBApplicationController::showDocument()
mUninoteController->hideWindow();
-// UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_DOCUMENT);
-
emit mainModeChanged(Document);
}
@@ -439,8 +429,6 @@ void UBApplicationController::showDesktop(bool dontSwitchFrontProcess)
UBApplication::boardController->hide();
mMainWindow->hide();
- UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_DESKTOP);
-
mUninoteController->showWindow();
if (mMirror)
@@ -456,8 +444,6 @@ void UBApplicationController::showDesktop(bool dontSwitchFrontProcess)
UBPlatformUtils::bringPreviousProcessToFront();
}
-// UBApplication::boardController->paletteManager()->changeMode(eUBDockPaletteWidget_DESKTOP);
-
UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector);
}
@@ -627,7 +613,6 @@ void UBApplicationController::hideDesktop()
emit desktopMode(false);
}
-
void UBApplicationController::setMirrorSourceWidget(QWidget* pWidget)
{
if (mMirror)
diff --git a/src/core/UBPersistenceManager.cpp b/src/core/UBPersistenceManager.cpp
index 3987f615..5e3449f5 100644
--- a/src/core/UBPersistenceManager.cpp
+++ b/src/core/UBPersistenceManager.cpp
@@ -1059,3 +1059,89 @@ bool UBPersistenceManager::mayHaveWidget(UBDocumentProxy* pDocumentProxy)
return widgetDir.exists() && widgetDir.entryInfoList(QDir::Dirs).length() > 0;
}
+void UBPersistenceManager::persistTeacherBar(UBDocumentProxy* pDocumentProxy, int page, sTeacherBarInfos infos)
+{
+ if(NULL != pDocumentProxy)
+ {
+ QFile f(pDocumentProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", page + 1));
+ if(f.exists())
+ {
+ if(f.open(QIODevice::ReadOnly))
+ {
+ QDomDocument domDoc;
+ if(domDoc.setContent(f.readAll()))
+ {
+ f.close();
+ if(f.open(QIODevice::WriteOnly))
+ {
+ QDomElement rootElem = domDoc.documentElement();
+ QDomNode teacherBarNode = domDoc.namedItem("teacherBar");
+ if(teacherBarNode.isNull())
+ {
+ // Create the element
+ QDomElement teacherElem = domDoc.createElement("teacherBar");
+ rootElem.appendChild(teacherElem);
+ teacherBarNode = teacherElem;
+ }
+
+ // Set the element values
+ QDomElement teacherBarElem = teacherBarNode.toElement();
+ teacherBarElem.setAttribute("title", infos.title);
+ teacherBarElem.setAttribute("phasis", infos.phasis);
+ teacherBarElem.setAttribute("duration", infos.Duration);
+ teacherBarElem.setAttribute("equipment", infos.material);
+ teacherBarElem.setAttribute("activity", infos.activity);
+ teacherBarElem.setAttribute("action1Teacher", infos.action1Master);
+ teacherBarElem.setAttribute("action1Student", infos.action1Student);
+ teacherBarElem.setAttribute("action2Teacher", infos.action2Master);
+ teacherBarElem.setAttribute("action2Student", infos.action2Student);
+ teacherBarElem.setAttribute("action3Teacher", infos.action3Master);
+ teacherBarElem.setAttribute("action3Student", infos.action3Student);
+
+ // Save the file
+ f.write(domDoc.toString().toAscii());
+ f.close();
+ }
+ }
+ f.close();
+ }
+ }
+ }
+}
+
+sTeacherBarInfos UBPersistenceManager::getTeacherBarInfos(UBDocumentProxy* pDocumentProxy, int page)
+{
+ sTeacherBarInfos infos;
+
+ if(NULL != pDocumentProxy)
+ {
+ QFile f(pDocumentProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", page + 1));
+ if(f.exists())
+ {
+ if(f.open(QIODevice::ReadWrite))
+ {
+ QDomDocument domDoc;
+ if(domDoc.setContent(f.readAll()))
+ {
+ QDomElement rootElem = domDoc.documentElement();
+ QDomNode teacherBarNode = rootElem.namedItem("teacherBar");
+
+ infos.title = teacherBarNode.toElement().attributeNode("title").value();
+ infos.phasis = teacherBarNode.toElement().attributeNode("phasis").value().toInt();
+ infos.Duration = teacherBarNode.toElement().attributeNode("duration").value().toInt();
+ infos.material = teacherBarNode.toElement().attributeNode("equipment").value();
+ infos.activity = teacherBarNode.toElement().attributeNode("activity").value().toInt();
+ infos.action1Master = teacherBarNode.toElement().attributeNode("action1Teacher").value();
+ infos.action1Student = teacherBarNode.toElement().attributeNode("action1Student").value();
+ infos.action2Master = teacherBarNode.toElement().attributeNode("action2Teacher").value();
+ infos.action2Student = teacherBarNode.toElement().attributeNode("action2Student").value();
+ infos.action3Master = teacherBarNode.toElement().attributeNode("action3Teacher").value();
+ infos.action3Student = teacherBarNode.toElement().attributeNode("action3Student").value();
+ }
+ f.close();
+ }
+ }
+ }
+
+ return infos;
+}
diff --git a/src/core/UBPersistenceManager.h b/src/core/UBPersistenceManager.h
index 9189e38f..3c224f04 100644
--- a/src/core/UBPersistenceManager.h
+++ b/src/core/UBPersistenceManager.h
@@ -20,6 +20,21 @@
#include "UBSceneCache.h"
+struct sTeacherBarInfos
+{
+ QString title;
+ int phasis;
+ int Duration;
+ QString material;
+ int activity;
+ QString action1Master;
+ QString action1Student;
+ QString action2Master;
+ QString action2Student;
+ QString action3Master;
+ QString action3Student;
+};
+
class UBDocument;
class UBDocumentProxy;
class UBGraphicsScene;
@@ -60,6 +75,9 @@ class UBPersistenceManager : public QObject
virtual void persistDocumentScene(UBDocumentProxy* pDocumentProxy,
UBGraphicsScene* pScene, const int pSceneIndex);
+ virtual void persistTeacherBar(UBDocumentProxy* pDocumentProxy, int page, sTeacherBarInfos infos);
+ sTeacherBarInfos getTeacherBarInfos(UBDocumentProxy* pDocumentProxy, int page);
+
virtual UBGraphicsScene* createDocumentSceneAt(UBDocumentProxy* pDocumentProxy, int index);
virtual void insertDocumentSceneAt(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* scene, int index);
diff --git a/src/gui/UBCachePropertiesWidget.cpp b/src/gui/UBCachePropertiesWidget.cpp
index 65975628..0d415674 100644
--- a/src/gui/UBCachePropertiesWidget.cpp
+++ b/src/gui/UBCachePropertiesWidget.cpp
@@ -6,6 +6,7 @@
#include "UBCachePropertiesWidget.h"
#include "core/UBApplication.h"
+#include "core/UBApplicationController.h"
#include "board/UBBoardController.h"
#include "domain/UBGraphicsScene.h"
@@ -269,40 +270,59 @@ void UBCachePropertiesWidget::updateShapeButtons()
void UBCachePropertiesWidget::updateCurrentCache()
{
- // Get the current page cache
- QList items = UBApplication::boardController->activeScene()->items();
- foreach(QGraphicsItem* it, items)
+ bool isBoardMode = false;
+ // this widget can work only on Board mode
+ if( UBApplication::applicationController != NULL )
{
- if("Cache" == it->data(Qt::UserRole).toString())
- {
- setEnabled(true);
- emit showTab(name());
- mpCurrentCache = dynamic_cast(it);
- if((NULL != mpCurrentCache) && (!mCaches.contains(mpCurrentCache)))
- {
- mCaches.append(mpCurrentCache);
- }
+ // if app controller is available, and current mode is Board, and no show desktop, than all ok, just process
+ if( UBApplication::applicationController->displayMode() == UBApplicationController::Board &&
+ !UBApplication::applicationController->isShowingDesktop())
+ isBoardMode = true;
+ }
+ // if app controller == null, than we do not know what mode now, so just process
+ else
+ isBoardMode = true;
- // Update the values of the cache properties
- mpSizeSlider->setValue(mpCurrentCache->shapeWidth());
- updateCacheColor(mpCurrentCache->maskColor());
- switch(mpCurrentCache->maskshape())
+ if(isBoardMode)
+ {
+ // Get the current page cache
+ QList items = UBApplication::boardController->activeScene()->items();
+ foreach(QGraphicsItem* it, items)
+ {
+ if("Cache" == it->data(Qt::UserRole).toString())
{
- case eMaskShape_Circle:
- mpCircleButton->setChecked(true);
- mpSquareButton->setChecked(false);
- break;
- case eMaskShap_Rectangle:
- mpCircleButton->setChecked(false);
- mpSquareButton->setChecked(true);
- break;
+ setEnabled(true);
+ emit showTab(name());
+ mpCurrentCache = dynamic_cast(it);
+ if((NULL != mpCurrentCache) && (!mCaches.contains(mpCurrentCache)))
+ {
+ mCaches.append(mpCurrentCache);
+ }
+
+ // Update the values of the cache properties
+ mpSizeSlider->setValue(mpCurrentCache->shapeWidth());
+ updateCacheColor(mpCurrentCache->maskColor());
+ switch(mpCurrentCache->maskshape())
+ {
+ case eMaskShape_Circle:
+ mpCircleButton->setChecked(true);
+ mpSquareButton->setChecked(false);
+ break;
+ case eMaskShap_Rectangle:
+ mpCircleButton->setChecked(false);
+ mpSquareButton->setChecked(true);
+ break;
+ }
+
+ return;
}
-
- return;
}
}
- // If we fall here, that means that this page has no cache
+ // If we fall here, that means:
+ // 1 - that this page has no cache
+ // 2 - we do not on Board page
+ // 3 - we in board mode, but show desktop (as really - desktop mode)
emit hideTab(name());
mpCurrentCache = NULL;
setDisabled(true);
@@ -320,3 +340,4 @@ void UBCachePropertiesWidget::onCacheEnabled()
{
emit showTab(name());
}
+
\ No newline at end of file
diff --git a/src/gui/UBDockPalette.cpp b/src/gui/UBDockPalette.cpp
index 0882b611..b7b7a6f6 100644
--- a/src/gui/UBDockPalette.cpp
+++ b/src/gui/UBDockPalette.cpp
@@ -57,15 +57,15 @@ UBDockPalette::UBDockPalette(QWidget *parent, const char *name)
if (parent)
{
- setAttribute(Qt::WA_NoMousePropagation);
- setAttribute(Qt::WA_TranslucentBackground);
+ setAttribute(Qt::WA_NoMousePropagation);
+ setAttribute(Qt::WA_TranslucentBackground);
}
else
{
- // standalone window
- setAttribute(Qt::WA_TranslucentBackground);
+ // standalone window
+ setAttribute(Qt::WA_TranslucentBackground);
- // !!!! Should be included into Windows after QT recompilation
+ // !!!! Should be included into Windows after QT recompilation
#ifdef Q_WS_MAC
//setAttribute(Qt::WA_MacNoShadow);
#endif
@@ -540,36 +540,35 @@ int UBDockPalette::customMargin()
* \brief Add the given tab widget
* @param widget as the given widget
*/
-void UBDockPalette::addTabWidget(UBDockPaletteWidget *widget)
-{
- if(!mTabWidgets.contains(widget))
- {
- widget->setVisible(true);
- mTabWidgets.append(widget);
- mpStackWidget->addWidget(widget);
- mpStackWidget->setCurrentWidget(widget);
- update();
- }
+void UBDockPalette::addTab(UBDockPaletteWidget *widget)
+{
+ if(!mTabWidgets.contains(widget))
+ {
+ widget->setVisible(true);
+ mTabWidgets.append(widget);
+ mpStackWidget->addWidget(widget);
+ mpStackWidget->setCurrentWidget(widget);
+ update();
+ }
}
-
/**
* \brief Remove the given tab
* @param widgetName as the tab widget name
*/
-void UBDockPalette::removeTab(const QString &widgetName)
-{
- for(int i = 0; i < mTabWidgets.size(); i++)
- {
- UBDockPaletteWidget* pCrntWidget = mTabWidgets.at(i);
- if(NULL != pCrntWidget && (pCrntWidget->name() == widgetName))
- {
- mpStackWidget->removeWidget(pCrntWidget);
- mTabWidgets.remove(i);
- pCrntWidget->hide();
- update();
- break;
- }
- }
+void UBDockPalette::removeTab(const QString &widgetName)
+{
+ for(int i = 0; i < mTabWidgets.size(); i++)
+ {
+ UBDockPaletteWidget* pCrntWidget = mTabWidgets.at(i);
+ if(NULL != pCrntWidget && (pCrntWidget->name() == widgetName))
+ {
+ mpStackWidget->removeWidget(pCrntWidget);
+ mTabWidgets.remove(i);
+ pCrntWidget->hide();
+ update();
+ break;
+ }
+ }
}
/**
@@ -601,7 +600,7 @@ void UBDockPalette::onShowTabWidget(const QString &widgetName)
UBDockPaletteWidget* pCrntWidget = mRegisteredWidgets.at(i);
if(NULL != pCrntWidget && (pCrntWidget->name() == widgetName))
{
- addTabWidget(pCrntWidget);
+ addTab(pCrntWidget);
break;
}
}
diff --git a/src/gui/UBDockPalette.h b/src/gui/UBDockPalette.h
index b69d0653..7380dcb5 100644
--- a/src/gui/UBDockPalette.h
+++ b/src/gui/UBDockPalette.h
@@ -72,10 +72,13 @@ public:
void setBackgroundBrush(const QBrush& brush);
void registerWidget(UBDockPaletteWidget* widget);
- void addTabWidget(UBDockPaletteWidget* widget);
+ void addTab(UBDockPaletteWidget* widget);
void removeTab(const QString& widgetName);
+
void connectSignals();
+ QVector GetWidgetsList() { return mRegisteredWidgets; };
+
public slots:
void onShowTabWidget(const QString& widgetName);
void onHideTabWidget(const QString& widgetName);
@@ -90,7 +93,7 @@ protected:
/** The current dock orientation */
eUBDockOrientation mOrientation;
- /** The current baclground brush */
+ /** The current background brush */
QBrush mBackgroundBrush;
/** The preferred width */
int mPreferredWidth;
@@ -123,7 +126,6 @@ protected:
/** The current widget */
QVector mRegisteredWidgets;
-// QVector mVisibleWidgets; // ???
private slots:
void onToolbarPosUpdated();
diff --git a/src/gui/UBDockPaletteWidget.h b/src/gui/UBDockPaletteWidget.h
index aa97a029..5c37cfff 100644
--- a/src/gui/UBDockPaletteWidget.h
+++ b/src/gui/UBDockPaletteWidget.h
@@ -27,9 +27,7 @@ public:
void registerMode(eUBDockPaletteWidgetMode mode);
- /* The current widget available mode list */
- QVector mRegisteredModes;
-
+ QVector GetRegisteredModes() { return mRegisteredModes; };
signals:
@@ -45,6 +43,9 @@ protected:
QPixmap mIconToLeft; // arrow like this: <
QString mName;
+ /* The current widget available mode list */
+ QVector mRegisteredModes;
+
};
#endif // UBDOCKPALETTEWIDGET_H
diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp
index cd99a01e..d5eb6688 100644
--- a/src/gui/UBTeacherBarWidget.cpp
+++ b/src/gui/UBTeacherBarWidget.cpp
@@ -1,6 +1,13 @@
#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)
@@ -110,6 +117,20 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock
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()
@@ -219,16 +240,78 @@ UBTeacherBarWidget::~UBTeacherBarWidget()
void UBTeacherBarWidget::populateCombos()
{
QStringList qslPhasis;
- qslPhasis << tr("I discover") << tr("I experiment") << tr("I train myself") << tr("I play") << tr("I memorize");
+ 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("Short") << tr("Middle") << tr("Long");
+ qslDuration << tr("") << tr("Short") << tr("Middle") << tr("Long");
mpDuration->insertItems(0, qslDuration);
+ mpDuration->setCurrentIndex(0);
QStringList qslActivity;
- qslActivity << tr("Alone") << tr("By Group") << tr("All together");
+ qslActivity << tr("") << tr("Alone") << tr("By Group") << tr("All together");
mpActivity->insertItems(0, qslActivity);
+ mpActivity->setCurrentIndex(0);
+}
+
+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();
+}
+
+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);
}
UBTeacherStudentAction::UBTeacherStudentAction(int actionNumber, QWidget *parent, const char *name):QWidget(parent)
@@ -327,3 +410,22 @@ 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;
+}
diff --git a/src/gui/UBTeacherBarWidget.h b/src/gui/UBTeacherBarWidget.h
index d6a816ef..555b6ef6 100644
--- a/src/gui/UBTeacherBarWidget.h
+++ b/src/gui/UBTeacherBarWidget.h
@@ -20,6 +20,10 @@ public:
~UBTeacherStudentAction();
QString teacherText();
QString studentText();
+ void setTeacherText(QString text);
+ void setStudentText(QString text);
+ QTextEdit* teacher();
+ QTextEdit* student();
private:
int mActionNumber;
@@ -35,10 +39,16 @@ private:
class UBTeacherBarWidget : public UBDockPaletteWidget
{
+ Q_OBJECT
public:
UBTeacherBarWidget(QWidget* parent=0, const char* name="UBTeacherBarWidget");
~UBTeacherBarWidget();
+private slots:
+ void saveContent();
+ void loadContent();
+ void onValueChanged();
+
private:
void populateCombos();