From 18d24f9d375519496c1ac31339e432b2b8b0eb30 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Thu, 20 Oct 2011 09:45:00 +0200 Subject: [PATCH 1/5] Finished the teacher bar --- resources/images/teacher_close.png | Bin 855 -> 1043 bytes resources/images/teacher_close_disabled.png | Bin 0 -> 1043 bytes resources/images/teacher_open.png | Bin 842 -> 1034 bytes resources/images/teacher_open_disabled.png | Bin 0 -> 1030 bytes resources/sankore.qrc | 2 + src/board/UBBoardPaletteManager.cpp | 6 +++ src/board/UBBoardPaletteManager.h | 1 + src/gui/UBTeacherBarWidget.cpp | 55 ++++++++++++++++++-- src/gui/UBTeacherBarWidget.h | 3 ++ 9 files changed, 64 insertions(+), 3 deletions(-) create mode 100644 resources/images/teacher_close_disabled.png create mode 100644 resources/images/teacher_open_disabled.png diff --git a/resources/images/teacher_close.png b/resources/images/teacher_close.png index d81f1de50f3d3d52ae34229874cf794e93703f4f..bee2ea0d948eb65c3d538ec6f28c3c00ea3f82d5 100644 GIT binary patch delta 974 zcmV;<12O#929pSoHwpg${{a7>y{D6rKp=k;4G$4n!3pvJ00WarL_t(Y$F-MBPa9Vh z$A9hJ! zcxG-FCXTFPFovG((fsxMpL@5(qpa3yHMX{%U|H7n1V<&5 zQdpM7*47iYx3_ODD5a!aE)$7F*xvqSY+89)G7^bUE|ha2>IF7}9kH00AO5r&6 zSWd*#r$1fD-syD6<)*Oh&PaRLB8G!LtNWNYl+qxkSGbcbU?k+|FGBdI6C@=v$Hz+e4bM2-hfyG>^^(J?#?c)#u-8g zlv4eqg4MZznJn}I!Rxof_I!We=j5b+onRp63&dhCdN5EtDwUo1s#v^5#v2a`p%AjzgB zxulDf0YV6b5Q91yV{m_a9+60tVzD?>zY7V|;TlpxDc@ybzQCc?#|9=mR0-VCJ*?30YJrzwL?(i4*&oF07*qoM6N<$g4(_3O8@`> delta 784 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 N002ovPDHLkV1g&Y>iPfx literal 0 HcmV?d00001 diff --git a/resources/images/teacher_open.png b/resources/images/teacher_open.png index 9ab587699af5ae90ea3c0b06482d5f7dcbb968bc..17469cc79ec9e6aa7f694d92459b597e2e45ecd5 100644 GIT binary patch delta 965 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 A_y7O^ literal 0 HcmV?d00001 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 14006a5e..94c28397 100755 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -734,3 +734,9 @@ void UBBoardPaletteManager::connectToDocumentController() { emit connectToDocController(); } + +void UBBoardPaletteManager::refreshPalettes() +{ + mRightPalette->update(); + mLeftPalette->update(); +} diff --git a/src/board/UBBoardPaletteManager.h b/src/board/UBBoardPaletteManager.h index f2313a71..1399898a 100644 --- a/src/board/UBBoardPaletteManager.h +++ b/src/board/UBBoardPaletteManager.h @@ -51,6 +51,7 @@ class UBBoardPaletteManager : public QObject void showVirtualKeyboard(bool show = true); void initPalettesPosAtStartup(); void connectToDocumentController(); + void refreshPalettes(); UBKeyboardPalette *mKeyboardPalette; UBRightPalette* createDesktopRightPalette(QWidget* parent); diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index ca505470..2644cb0f 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -7,6 +7,7 @@ #include "document/UBDocumentProxy.h" #include "board/UBBoardController.h" +#include "board/UBBoardPaletteManager.h" UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDockPaletteWidget(parent) , mpLayout(NULL) @@ -119,6 +120,17 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock 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() @@ -228,17 +240,17 @@ 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); } @@ -276,6 +288,33 @@ void UBTeacherBarWidget::loadContent() mpAction3->setStudentText(nextInfos.action3Student); } +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"); + } + + // TODO: refresh the icon + UBApplication::boardController->paletteManager()->refreshPalettes(); +} + UBTeacherStudentAction::UBTeacherStudentAction(int actionNumber, QWidget *parent, const char *name):QWidget(parent) , mpActionLabel(NULL) , mpTeacherLabel(NULL) @@ -381,3 +420,13 @@ 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 7e2744ec..555b6ef6 100644 --- a/src/gui/UBTeacherBarWidget.h +++ b/src/gui/UBTeacherBarWidget.h @@ -22,6 +22,8 @@ public: QString studentText(); void setTeacherText(QString text); void setStudentText(QString text); + QTextEdit* teacher(); + QTextEdit* student(); private: int mActionNumber; @@ -45,6 +47,7 @@ public: private slots: void saveContent(); void loadContent(); + void onValueChanged(); private: void populateCombos(); From cc3c31c3a6bafe5faef00cc767ab8cdd19fb5174 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Thu, 20 Oct 2011 11:18:12 +0200 Subject: [PATCH 2/5] merged conflicts (>_<#) --- src/board/UBBoardPaletteManager.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 3338582e..fb907b52 100755 --- a/src/board/UBBoardPaletteManager.cpp +++ b/src/board/UBBoardPaletteManager.cpp @@ -162,20 +162,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))); +// 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))); +// connect(this, SIGNAL(signal_changeMode(eUBDockPaletteWidgetMode)), mpTeacherBarWidget, SLOT(slot_changeMode(eUBDockPaletteWidgetMode))); //------------------------------------------------// // Add the dock palettes @@ -196,7 +196,7 @@ void UBBoardPaletteManager::setupDockPaletteWidgets() mRightPalette->addTabWidget(mpLibWidget); // // ??? -// mRightPalette->registerWidget(mpCachePropWidget); +// mRightPalette->registerWidget(mpCachePropWidget); // mRightPalette->addTabWidget(mpCachePropWidget); // // ??? From f145ebd28807d973cb56c5cca7d66bae5885e8e6 Mon Sep 17 00:00:00 2001 From: Anatoly Mihalchenko Date: Thu, 20 Oct 2011 17:29:06 +0300 Subject: [PATCH 3/5] SANKORE-329 implement correct widget processing mechanism --- src/board/UBBoardPaletteManager.cpp | 117 ++++++++++++++++++++++----- src/board/UBBoardPaletteManager.h | 10 ++- src/core/UBApplication.cpp | 9 +++ src/core/UBApplicationController.cpp | 15 ---- src/gui/UBCachePropertiesWidget.cpp | 75 ++++++++++------- src/gui/UBDockPalette.cpp | 61 +++++++------- src/gui/UBDockPalette.h | 8 +- src/gui/UBDockPaletteWidget.h | 7 +- 8 files changed, 201 insertions(+), 101 deletions(-) diff --git a/src/board/UBBoardPaletteManager.cpp b/src/board/UBBoardPaletteManager.cpp index 145e4035..ff8f0c71 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,20 +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 @@ -183,7 +184,7 @@ void UBBoardPaletteManager::setupDockPaletteWidgets() // LEFT palette widgets mLeftPalette->registerWidget(mpPageNavigWidget); - mLeftPalette->addTabWidget(mpPageNavigWidget); + mLeftPalette->addTab(mpPageNavigWidget); mLeftPalette->connectSignals(); @@ -193,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() @@ -605,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: @@ -617,7 +687,8 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode) mLeftPalette->setVisible(true); mRightPalette->setVisible(true); - containerResized(); + if( !isInit ) + containerResized(); } break; @@ -629,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; @@ -643,6 +715,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode) break; } + if( !isInit ) + UBApplication::boardController->notifyPageChanged(); + emit signal_changeMode(newMode); } diff --git a/src/board/UBBoardPaletteManager.h b/src/board/UBBoardPaletteManager.h index 5fab9c5c..c95f61c4 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 { @@ -56,7 +60,9 @@ class UBBoardPaletteManager : public QObject 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 +76,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/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 From c984888c5f70b75e1bb7f2267a28a97d1c1e93fd Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Thu, 20 Oct 2011 16:48:26 +0200 Subject: [PATCH 4/5] Adapted some files related to the teacherbar --- src/core/UBPersistenceManager.cpp | 86 +++++++++++++++++++++++++++++++ src/core/UBPersistenceManager.h | 18 +++++++ src/gui/UBTeacherBarWidget.cpp | 38 +++++++++++++- src/gui/UBTeacherBarWidget.h | 1 + 4 files changed, 142 insertions(+), 1 deletion(-) 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/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index 1cc481fe..6df5f793 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -125,7 +125,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock 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->teacher(), SIGNAL(textChanged()), dynamic_cast(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())); @@ -242,14 +242,17 @@ void UBTeacherBarWidget::populateCombos() QStringList qslPhasis; 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("") << tr("Short") << tr("Middle") << tr("Long"); mpDuration->insertItems(0, qslDuration); + mpDuration->setCurrentIndex(0); QStringList qslActivity; qslActivity << tr("") << tr("Alone") << tr("By Group") << tr("All together"); mpActivity->insertItems(0, qslActivity); + mpActivity->setCurrentIndex(0); } void UBTeacherBarWidget::onValueChanged() @@ -278,6 +281,39 @@ void UBTeacherBarWidget::onValueChanged() 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) , mpActionLabel(NULL) , mpTeacherLabel(NULL) diff --git a/src/gui/UBTeacherBarWidget.h b/src/gui/UBTeacherBarWidget.h index 55fd98d3..555b6ef6 100644 --- a/src/gui/UBTeacherBarWidget.h +++ b/src/gui/UBTeacherBarWidget.h @@ -39,6 +39,7 @@ private: class UBTeacherBarWidget : public UBDockPaletteWidget { + Q_OBJECT public: UBTeacherBarWidget(QWidget* parent=0, const char* name="UBTeacherBarWidget"); ~UBTeacherBarWidget(); From 50062d9d680e01a65672bb055818a007023f3fda Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Thu, 20 Oct 2011 16:54:30 +0200 Subject: [PATCH 5/5] Removing a bad piece of code --- src/gui/UBTeacherBarWidget.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index 6df5f793..d5eb6688 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -125,7 +125,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock 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()), dynamic_cast(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()));