From 47cdb0480090415d5ac60c37107ba55e73d6fead Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Thu, 7 Jun 2012 17:50:42 +0300 Subject: [PATCH] SANKORE-664: Fixed pages shuffling. Fixed refreshing thumbnail of new added page. Some code refactoring and optimizations. --- src/board/UBBoardController.cpp | 5 +++-- src/board/UBBoardController.h | 1 + src/domain/UBGraphicsScene.cpp | 1 + src/gui/UBDocumentNavigator.cpp | 13 ++++++------- src/gui/UBPageNavigationWidget.cpp | 1 - src/gui/UBThumbnailWidget.cpp | 6 +++--- 6 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index b94fbc16..bcbab5a8 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -478,6 +478,7 @@ void UBBoardController::addScene() setActiveDocumentScene(mActiveDocument, mActiveSceneIndex + 1); QApplication::restoreOverrideCursor(); + emit newPageAdded(); } @@ -1233,11 +1234,11 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, if(documentChange) { emit activeDocumentChanged(); + // Notify the navigator palette that the document has changed + emit setDocOnPageNavigator(pDocumentProxy); UBGraphicsTextItem::lastUsedTextColor = QColor(); } - // Notify the navigator palette that the document has changed - emit setDocOnPageNavigator(pDocumentProxy); if (sceneChange) { diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index aa19c5b2..fe1c802f 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -223,6 +223,7 @@ class UBBoardController : public QObject void stopScript(); signals: + void newPageAdded(); void activeSceneWillBePersisted(); void activeSceneWillChange(); void activeSceneChanged(); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 4f9c4a68..0542e598 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -255,6 +255,7 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) , mDocument(parent) , mDarkBackground(false) , mCrossedBackground(false) + , mZoomFactor(1) , mIsDesktopMode(false) , mIsModified(true) , mBackgroundObject(0) diff --git a/src/gui/UBDocumentNavigator.cpp b/src/gui/UBDocumentNavigator.cpp index 1c349038..37544b55 100644 --- a/src/gui/UBDocumentNavigator.cpp +++ b/src/gui/UBDocumentNavigator.cpp @@ -55,8 +55,8 @@ UBDocumentNavigator::UBDocumentNavigator(QWidget *parent, const char *name):QGra setFrameShadow(QFrame::Plain); - connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(addNewPage())); - connect(UBApplication::boardController, SIGNAL(setDocOnPageNavigator(UBDocumentProxy*)), this, SLOT(generateThumbnails())); + connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(generateThumbnails())); + connect(UBApplication::boardController, SIGNAL(newPageAdded()), this, SLOT(addNewPage())); connect(mScene, SIGNAL(selectionChanged()), this, SLOT(onSelectionChanged())); connect(UBApplication::boardController, SIGNAL(documentReorganized(int)), this, SLOT(onMovedToIndex(int))); connect(UBApplication::boardController, SIGNAL(scrollToSelectedPage()), this, SLOT(onScrollToSelectedPage())); @@ -91,7 +91,6 @@ void UBDocumentNavigator::setDocument(UBDocumentProxy *document) if(document) { mCrntDoc = document; - generateThumbnails(); } } @@ -322,11 +321,11 @@ void UBDocumentNavigator::mousePressEvent(QMouseEvent *event) } updateSpecificThumbnail(iOldPage); mCrntItem = pCrntItem; - } - // Then display the related page - emit changeCurrentPage(); - refreshScene(); + // Then display the related page + emit changeCurrentPage(); + refreshScene(); + } } bNavig = false; diff --git a/src/gui/UBPageNavigationWidget.cpp b/src/gui/UBPageNavigationWidget.cpp index 1d13223f..236f97f1 100644 --- a/src/gui/UBPageNavigationWidget.cpp +++ b/src/gui/UBPageNavigationWidget.cpp @@ -119,7 +119,6 @@ void UBPageNavigationWidget::setDocument(UBDocumentProxy *document) if(mNavigator->currentDoc() != document) { mNavigator->setDocument(document); - UBApplication::boardController->notifyPageChanged(); } } diff --git a/src/gui/UBThumbnailWidget.cpp b/src/gui/UBThumbnailWidget.cpp index 4f22cc42..dc87f1b6 100644 --- a/src/gui/UBThumbnailWidget.cpp +++ b/src/gui/UBThumbnailWidget.cpp @@ -751,7 +751,7 @@ UBSceneThumbnailNavigPixmap::UBSceneThumbnailNavigPixmap(const QPixmap& pix, UBD , bCanMoveUp(false) , bCanMoveDown(false) { - if(UBApplication::boardController->pageFromSceneIndex(pSceneIndex)){ + if(0 <= UBApplication::boardController->pageFromSceneIndex(pSceneIndex)){ setAcceptsHoverEvents(true); setFlag(QGraphicsItem::ItemIsSelectable, true); } @@ -826,7 +826,7 @@ void UBSceneThumbnailNavigPixmap::updateButtonsState() bCanMoveDown = false; UBDocumentProxy* p = proxy(); - if(NULL != p && UBApplication::boardController->pageFromSceneIndex(sceneIndex())) + if(NULL != p && 0 <= UBApplication::boardController->pageFromSceneIndex(sceneIndex())) { int iNbPages = p->pageCount(); if(1 < iNbPages) @@ -842,7 +842,7 @@ void UBSceneThumbnailNavigPixmap::updateButtonsState() } } } - if(UBSettings::settings()->teacherGuidePageZeroActivated && sceneIndex()<=1) + if(UBSettings::settings()->teacherGuidePageZeroActivated && sceneIndex()<1) bCanMoveUp = false; if(bCanDelete || bCanMoveUp || bCanMoveDown)