SlideSorterModel.cxx (b862c97c) | SlideSorterModel.cxx (4799f5ba) |
---|---|
1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance --- 159 unchanged lines hidden (view full) --- 168 169bool SlideSorterModel::SetEditMode (EditMode eEditMode) 170{ 171 bool bEditModeChanged = false; 172 if (meEditMode != eEditMode) 173 { 174 meEditMode = eEditMode; 175 UpdatePageList(); | 1/************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance --- 159 unchanged lines hidden (view full) --- 168 169bool SlideSorterModel::SetEditMode (EditMode eEditMode) 170{ 171 bool bEditModeChanged = false; 172 if (meEditMode != eEditMode) 173 { 174 meEditMode = eEditMode; 175 UpdatePageList(); |
176 ClearDescriptorList(); | |
177 bEditModeChanged = true; 178 } 179 return bEditModeChanged; 180} 181 182 183 184 --- 234 unchanged lines hidden (view full) --- 419void SlideSorterModel::SynchronizeDocumentSelection (void) 420{ 421 ::osl::MutexGuard aGuard (maMutex); 422 423 PageEnumeration aAllPages (PageEnumerationProvider::CreateAllPagesEnumeration(*this)); 424 while (aAllPages.HasMoreElements()) 425 { 426 SharedPageDescriptor pDescriptor (aAllPages.GetNextElement()); | 176 bEditModeChanged = true; 177 } 178 return bEditModeChanged; 179} 180 181 182 183 --- 234 unchanged lines hidden (view full) --- 418void SlideSorterModel::SynchronizeDocumentSelection (void) 419{ 420 ::osl::MutexGuard aGuard (maMutex); 421 422 PageEnumeration aAllPages (PageEnumerationProvider::CreateAllPagesEnumeration(*this)); 423 while (aAllPages.HasMoreElements()) 424 { 425 SharedPageDescriptor pDescriptor (aAllPages.GetNextElement()); |
427 pDescriptor->GetPage()->SetSelected(pDescriptor->HasState(PageDescriptor::ST_Selected)); | 426 const bool bIsSelected (pDescriptor->HasState(PageDescriptor::ST_Selected)); 427 pDescriptor->GetPage()->SetSelected(bIsSelected); |
428 } 429} 430 431 432 433 434void SlideSorterModel::SynchronizeModelSelection (void) 435{ 436 ::osl::MutexGuard aGuard (maMutex); 437 438 PageEnumeration aAllPages (PageEnumerationProvider::CreateAllPagesEnumeration(*this)); 439 while (aAllPages.HasMoreElements()) 440 { 441 SharedPageDescriptor pDescriptor (aAllPages.GetNextElement()); | 428 } 429} 430 431 432 433 434void SlideSorterModel::SynchronizeModelSelection (void) 435{ 436 ::osl::MutexGuard aGuard (maMutex); 437 438 PageEnumeration aAllPages (PageEnumerationProvider::CreateAllPagesEnumeration(*this)); 439 while (aAllPages.HasMoreElements()) 440 { 441 SharedPageDescriptor pDescriptor (aAllPages.GetNextElement()); |
442 pDescriptor->SetState(PageDescriptor::ST_Selected, pDescriptor->GetPage()->IsSelected()); | 442 const bool bIsSelected (pDescriptor->GetPage()->IsSelected()); 443 pDescriptor->SetState(PageDescriptor::ST_Selected, bIsSelected); |
443 } 444} 445 446 447 448 449::osl::Mutex& SlideSorterModel::GetMutex (void) 450{ 451 return maMutex; 452} 453 454 455 456 457void SlideSorterModel::SetDocumentSlides ( 458 const Reference<container::XIndexAccess>& rxSlides) 459{ 460 ::osl::MutexGuard aGuard (maMutex); 461 | 444 } 445} 446 447 448 449 450::osl::Mutex& SlideSorterModel::GetMutex (void) 451{ 452 return maMutex; 453} 454 455 456 457 458void SlideSorterModel::SetDocumentSlides ( 459 const Reference<container::XIndexAccess>& rxSlides) 460{ 461 ::osl::MutexGuard aGuard (maMutex); 462 |
462 // Reset the current page so to cause everbody to release references to it. | 463 // Make the current selection persistent and then release the 464 // current set of pages. 465 SynchronizeDocumentSelection(); 466 mxSlides = NULL; 467 ClearDescriptorList (); 468 469 // Reset the current page to cause everbody to release references to it. |
463 mrSlideSorter.GetController().GetCurrentSlideManager()->NotifyCurrentSlideChange(-1); 464 | 470 mrSlideSorter.GetController().GetCurrentSlideManager()->NotifyCurrentSlideChange(-1); 471 |
472 // Set the new set of pages. |
|
465 mxSlides = rxSlides; | 473 mxSlides = rxSlides; |
466 Resync(); | 474 AdaptSize(); 475 SynchronizeModelSelection(); 476 mrSlideSorter.GetController().GetPageSelector().CountSelectedPages(); |
467 | 477 |
478 model::PageEnumeration aSelectedPages ( 479 model::PageEnumerationProvider::CreateSelectedPagesEnumeration(*this)); 480 if (aSelectedPages.HasMoreElements()) 481 { 482 SharedPageDescriptor pDescriptor (aSelectedPages.GetNextElement()); 483 mrSlideSorter.GetController().GetCurrentSlideManager()->NotifyCurrentSlideChange( 484 pDescriptor->GetPage()); 485 } 486 |
|
468 ViewShell* pViewShell = mrSlideSorter.GetViewShell(); 469 if (pViewShell != NULL) 470 { 471 SdPage* pPage = pViewShell->getCurrentPage(); 472 if (pPage != NULL) 473 mrSlideSorter.GetController().GetCurrentSlideManager()->NotifyCurrentSlideChange( 474 pPage); 475 else --- 186 unchanged lines hidden (view full) --- 662 SharedPageDescriptor( 663 new PageDescriptor ( 664 Reference<drawing::XDrawPage>(mxSlides->getByIndex(nIndex),UNO_QUERY), 665 pPage, 666 nIndex))); 667 668 // Update page indices. 669 UpdateIndices(nIndex+1); | 487 ViewShell* pViewShell = mrSlideSorter.GetViewShell(); 488 if (pViewShell != NULL) 489 { 490 SdPage* pPage = pViewShell->getCurrentPage(); 491 if (pPage != NULL) 492 mrSlideSorter.GetController().GetCurrentSlideManager()->NotifyCurrentSlideChange( 493 pPage); 494 else --- 186 unchanged lines hidden (view full) --- 681 SharedPageDescriptor( 682 new PageDescriptor ( 683 Reference<drawing::XDrawPage>(mxSlides->getByIndex(nIndex),UNO_QUERY), 684 pPage, 685 nIndex))); 686 687 // Update page indices. 688 UpdateIndices(nIndex+1); |
670 OSL_TRACE("page inserted"); | |
671} 672 673 674 675 676void SlideSorterModel::DeleteSlide (const SdPage* pPage) 677{ 678 sal_Int32 nIndex(0); --- 21 unchanged lines hidden (view full) --- 700 { 701 if (maPageDescriptors[nIndex]) 702 if (maPageDescriptors[nIndex]->GetPage() != pPage) 703 return; 704 705 maPageDescriptors.erase(maPageDescriptors.begin()+nIndex); 706 UpdateIndices(nIndex); 707 } | 689} 690 691 692 693 694void SlideSorterModel::DeleteSlide (const SdPage* pPage) 695{ 696 sal_Int32 nIndex(0); --- 21 unchanged lines hidden (view full) --- 718 { 719 if (maPageDescriptors[nIndex]) 720 if (maPageDescriptors[nIndex]->GetPage() != pPage) 721 return; 722 723 maPageDescriptors.erase(maPageDescriptors.begin()+nIndex); 724 UpdateIndices(nIndex); 725 } |
708 OSL_TRACE("page removed"); | |
709} 710 711 712 713 714void SlideSorterModel::UpdateIndices (const sal_Int32 nFirstIndex) 715{ 716 for (sal_Int32 nDescriptorIndex=0,nCount=maPageDescriptors.size(); --- 40 unchanged lines hidden --- | 726} 727 728 729 730 731void SlideSorterModel::UpdateIndices (const sal_Int32 nFirstIndex) 732{ 733 for (sal_Int32 nDescriptorIndex=0,nCount=maPageDescriptors.size(); --- 40 unchanged lines hidden --- |