Commit fccc1afd authored by Clément Fauconnier's avatar Clément Fauconnier

several fixes on document mode (buttons' state update, no active document on trash)

parent 98fb3435
...@@ -504,8 +504,6 @@ UBDocumentProxy* UBPersistenceManager::createDocumentFromDir(const QString& pDoc ...@@ -504,8 +504,6 @@ UBDocumentProxy* UBPersistenceManager::createDocumentFromDir(const QString& pDoc
doc->setUuid(QUuid::createUuid()); doc->setUuid(QUuid::createUuid());
doc->setPageCount(sceneCount(doc)); doc->setPageCount(sceneCount(doc));
UBMetadataDcSubsetAdaptor::persist(doc);
for(int i = 0; i < doc->pageCount(); i++) for(int i = 0; i < doc->pageCount(); i++)
{ {
UBSvgSubsetAdaptor::setSceneUuid(doc, i, QUuid::createUuid()); UBSvgSubsetAdaptor::setSceneUuid(doc, i, QUuid::createUuid());
...@@ -519,6 +517,7 @@ UBDocumentProxy* UBPersistenceManager::createDocumentFromDir(const QString& pDoc ...@@ -519,6 +517,7 @@ UBDocumentProxy* UBPersistenceManager::createDocumentFromDir(const QString& pDoc
addDoc = true; addDoc = true;
} }
if (addDoc) { if (addDoc) {
UBMetadataDcSubsetAdaptor::persist(doc);
mDocumentTreeStructureModel->addDocument(doc); mDocumentTreeStructureModel->addDocument(doc);
emit proxyListChanged(); emit proxyListChanged();
emit documentCreated(doc); emit documentCreated(doc);
......
...@@ -1292,12 +1292,13 @@ void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool ...@@ -1292,12 +1292,13 @@ void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool
? QItemSelectionModel::Select ? QItemSelectionModel::Select
: QItemSelectionModel::Deselect; : QItemSelectionModel::Deselect;
selectionModel()->select(proxy->mapFromSource(indexCurrentDoc), QItemSelectionModel::Rows | sel);
setCurrentIndex(pExpand setCurrentIndex(pExpand
? indexCurrentDoc ? indexCurrentDoc
: QModelIndex()); : QModelIndex());
selectionModel()->select(proxy->mapFromSource(indexCurrentDoc), QItemSelectionModel::Rows | sel);
while (indexCurrentDoc.parent().isValid()) { while (indexCurrentDoc.parent().isValid()) {
setExpanded(indexCurrentDoc.parent(), pExpand); setExpanded(indexCurrentDoc.parent(), pExpand);
indexCurrentDoc = indexCurrentDoc.parent(); indexCurrentDoc = indexCurrentDoc.parent();
...@@ -1808,6 +1809,8 @@ void UBDocumentController::TreeViewSelectionChanged(const QItemSelection &select ...@@ -1808,6 +1809,8 @@ void UBDocumentController::TreeViewSelectionChanged(const QItemSelection &select
//if multi-selection //if multi-selection
if(list.count() > 1){ if(list.count() > 1){
//selectOnlyTopLevelItems(mDocumentUI->documentTreeView->selectionModel()->selectedRows());
//check if the selection is in the same top-level folder //check if the selection is in the same top-level folder
QModelIndex sourceIndex1 = mapIndexToSource(list.at(list.count()-1)); QModelIndex sourceIndex1 = mapIndexToSource(list.at(list.count()-1));
QModelIndex sourceIndex2 = mapIndexToSource(list.at(list.count()-2)); QModelIndex sourceIndex2 = mapIndexToSource(list.at(list.count()-2));
...@@ -1868,7 +1871,6 @@ void UBDocumentController::TreeViewSelectionChanged(const QItemSelection &select ...@@ -1868,7 +1871,6 @@ void UBDocumentController::TreeViewSelectionChanged(const QItemSelection &select
} }
*/ */
} }
} }
void UBDocumentController::itemSelectionChanged(LastSelectedElementType newSelection) void UBDocumentController::itemSelectionChanged(LastSelectedElementType newSelection)
...@@ -2330,8 +2332,10 @@ void UBDocumentController::moveIndexesToTrash(const QModelIndexList &list, UBDoc ...@@ -2330,8 +2332,10 @@ void UBDocumentController::moveIndexesToTrash(const QModelIndexList &list, UBDoc
UBDocumentProxy *proxy = docModel->proxyForIndex(sourceSibling); UBDocumentProxy *proxy = docModel->proxyForIndex(sourceSibling);
docModel->setCurrentDocument(proxy);
setDocument(proxy); setDocument(proxy);
UBApplication::boardController->setActiveDocumentScene(proxy,0,true);
docModel->setCurrentDocument(proxy);
selectionModel->select(sibling, QItemSelectionModel::ClearAndSelect); selectionModel->select(sibling, QItemSelectionModel::ClearAndSelect);
...@@ -2344,8 +2348,9 @@ void UBDocumentController::moveIndexesToTrash(const QModelIndexList &list, UBDoc ...@@ -2344,8 +2348,9 @@ void UBDocumentController::moveIndexesToTrash(const QModelIndexList &list, UBDoc
UBDocumentProxy *proxy = docModel->proxyForIndex(sourceSibling); UBDocumentProxy *proxy = docModel->proxyForIndex(sourceSibling);
docModel->setCurrentDocument(proxy);
setDocument(proxy); setDocument(proxy);
UBApplication::boardController->setActiveDocumentScene(proxy,0,true);
docModel->setCurrentDocument(proxy);
selectionModel->select(sibling, QItemSelectionModel::ClearAndSelect); selectionModel->select(sibling, QItemSelectionModel::ClearAndSelect);
...@@ -2572,7 +2577,6 @@ void UBDocumentController::importFile() ...@@ -2572,7 +2577,6 @@ void UBDocumentController::importFile()
createdDocument = docManager->importFile(selectedFile, groupName); createdDocument = docManager->importFile(selectedFile, groupName);
if (createdDocument) { if (createdDocument) {
selectDocument(createdDocument, true, true); selectDocument(createdDocument, true, true);
...@@ -2704,10 +2708,18 @@ void UBDocumentController::pageSelectionChanged() ...@@ -2704,10 +2708,18 @@ void UBDocumentController::pageSelectionChanged()
if (mIsClosing) if (mIsClosing)
return; return;
UBDocumentTreeModel *docModel = UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel;
bool pageSelected = mDocumentUI->thumbnailWidget->selectedItems().count() > 0; bool pageSelected = mDocumentUI->thumbnailWidget->selectedItems().count() > 0;
bool docSelected = docModel->isDocument(firstSelectedTreeIndex());
bool folderSelected = docModel->isCatalog(firstSelectedTreeIndex());
if (pageSelected) if (pageSelected)
itemSelectionChanged(Page); itemSelectionChanged(Page);
else if (docSelected)
itemSelectionChanged(Document);
else if (folderSelected)
itemSelectionChanged(Folder);
else else
itemSelectionChanged(None); itemSelectionChanged(None);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment