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 ---