resolved merge conflict

preferencesAboutTextFull
Ivan Ilin 13 years ago
commit 023fddb607
  1. BIN
      resources/images/teacher_close.png
  2. BIN
      resources/images/teacher_close_disabled.png
  3. BIN
      resources/images/teacher_open.png
  4. BIN
      resources/images/teacher_open_disabled.png
  5. 2
      resources/sankore.qrc
  6. 128
      src/board/UBBoardPaletteManager.cpp
  7. 11
      src/board/UBBoardPaletteManager.h
  8. 9
      src/core/UBApplication.cpp
  9. 15
      src/core/UBApplicationController.cpp
  10. 86
      src/core/UBPersistenceManager.cpp
  11. 18
      src/core/UBPersistenceManager.h
  12. 75
      src/gui/UBCachePropertiesWidget.cpp
  13. 61
      src/gui/UBDockPalette.cpp
  14. 8
      src/gui/UBDockPalette.h
  15. 7
      src/gui/UBDockPaletteWidget.h
  16. 108
      src/gui/UBTeacherBarWidget.cpp
  17. 10
      src/gui/UBTeacherBarWidget.h

Binary file not shown.

Before

Width:  |  Height:  |  Size: 855 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 842 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@ -332,5 +332,7 @@
<file>images/moveUpDisabled.svg</file>
<file>images/teacher_close.png</file>
<file>images/teacher_open.png</file>
<file>images/teacher_close_disabled.png</file>
<file>images/teacher_open_disabled.png</file>
</qresource>
</RCC>

@ -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<UBDockPaletteWidget*> 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();
}

@ -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:

@ -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()));

@ -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)

@ -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 <teacherBar> 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;
}

@ -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);

@ -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<QGraphicsItem*> 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<UBGraphicsCache*>(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<QGraphicsItem*> 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<UBGraphicsCache*>(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());
}

@ -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;
}
}

@ -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<UBDockPaletteWidget*> 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<UBDockPaletteWidget*> mRegisteredWidgets;
// QVector<UBDockPaletteWidget*> mVisibleWidgets; // ???
private slots:
void onToolbarPosUpdated();

@ -27,9 +27,7 @@ public:
void registerMode(eUBDockPaletteWidgetMode mode);
/* The current widget available mode list */
QVector<eUBDockPaletteWidgetMode> mRegisteredModes;
QVector<eUBDockPaletteWidgetMode> GetRegisteredModes() { return mRegisteredModes; };
signals:
@ -45,6 +43,9 @@ protected:
QPixmap mIconToLeft; // arrow like this: <
QString mName;
/* The current widget available mode list */
QVector<eUBDockPaletteWidgetMode> mRegisteredModes;
};
#endif // UBDOCKPALETTEWIDGET_H

@ -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;
}

@ -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();

Loading…
Cancel
Save