diff --git a/src/document/UBDocumentContainer.cpp b/src/document/UBDocumentContainer.cpp index a8d806f0..4f08cd46 100644 --- a/src/document/UBDocumentContainer.cpp +++ b/src/document/UBDocumentContainer.cpp @@ -52,12 +52,18 @@ void UBDocumentContainer::duplicatePages(QList& pageIndexes) emit documentThumbnailsUpdated(this); } -void UBDocumentContainer::movePageToIndex(int source, int target) +bool UBDocumentContainer::movePageToIndex(int source, int target) { + if (source==0) + { + // Title page - cant be moved + return false; + } UBPersistenceManager::persistenceManager()->moveSceneToIndex(mCurrentDocument, source, target); deleteThumbPage(source); insertThumbPage(target); emit documentThumbnailsUpdated(this); + return true; } void UBDocumentContainer::deletePages(QList& pageIndexes) diff --git a/src/document/UBDocumentContainer.h b/src/document/UBDocumentContainer.h index 54e95f37..6e969b83 100644 --- a/src/document/UBDocumentContainer.h +++ b/src/document/UBDocumentContainer.h @@ -37,7 +37,7 @@ class UBDocumentContainer : public QObject static int sceneIndexFromPage(int sceneIndex); void duplicatePages(QList& pageIndexes); - void movePageToIndex(int source, int target); + bool movePageToIndex(int source, int target); void deletePages(QList& pageIndexes); void addPage(int index); void updatePage(int index); diff --git a/src/document/UBDocumentController.cpp b/src/document/UBDocumentController.cpp index d7a5b6d3..3ed2ed2d 100755 --- a/src/document/UBDocumentController.cpp +++ b/src/document/UBDocumentController.cpp @@ -1032,12 +1032,13 @@ bool UBDocumentController::addFileToDocument(UBDocumentProxy* document) void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source, int target) { - UBDocumentContainer::movePageToIndex(source, target); - - proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); - UBMetadataDcSubsetAdaptor::persist(proxy); + if (UBDocumentContainer::movePageToIndex(source, target)) + { + proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); + UBMetadataDcSubsetAdaptor::persist(proxy); - mDocumentUI->thumbnailWidget->hightlightItem(target); + mDocumentUI->thumbnailWidget->hightlightItem(target); + } } diff --git a/src/gui/UBThumbnailWidget.cpp b/src/gui/UBThumbnailWidget.cpp index bf2f69f5..24f7442f 100644 --- a/src/gui/UBThumbnailWidget.cpp +++ b/src/gui/UBThumbnailWidget.cpp @@ -210,13 +210,18 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event) mMousePressPos = event->pos(); UBSceneThumbnailPixmap* sceneItem = dynamic_cast(itemAt(mMousePressPos)); - if(sceneItem){ - int pageIndex = UBDocumentContainer::pageFromSceneIndex(sceneItem->sceneIndex()); - if(pageIndex == 0){ - event->ignore(); - return; - } + if(sceneItem==NULL) + { + event->ignore(); + return; } + //if(sceneItem){ + // int pageIndex = UBDocumentContainer::pageFromSceneIndex(sceneItem->sceneIndex()); + // if(pageIndex == 0){ + // event->ignore(); + // return; + // } + //} mMousePressScenePos = mapToScene(mMousePressPos); QGraphicsItem* underlyingItem = itemAt(mMousePressPos);