Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2941

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/41/2941/1

Display the number of active slides in the statusbar

Change-Id: I788070fdf093ec8b9f875ea5e81999990cd04501
---
M sd/inc/drawdoc.hxx
M sd/source/core/PageListWatcher.cxx
M sd/source/core/PageListWatcher.hxx
M sd/source/core/drawdoc2.cxx
M sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
M sd/source/ui/view/drviews4.cxx
M sd/source/ui/view/drviewsa.cxx
7 files changed, 48 insertions(+), 3 deletions(-)



diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx
index 3d89978..d9b9679 100644
--- a/sd/inc/drawdoc.hxx
+++ b/sd/inc/drawdoc.hxx
@@ -343,6 +343,8 @@
     SD_DLLPUBLIC SdPage*GetMasterSdPage(sal_uInt16 nPgNum, PageKind ePgKind);
     SD_DLLPUBLIC sal_uInt16 GetMasterSdPageCount(PageKind ePgKind) const;
 
+    SD_DLLPUBLIC sal_uInt16 GetActiveSdPageCount() const;
+
     sal_uInt16              GetMasterPageUserCount(SdrPage* pMaster) const;
 
     const sd::PresentationSettings& getPresentationSettings() const { return 
maPresentationSettings; }
diff --git a/sd/source/core/PageListWatcher.cxx b/sd/source/core/PageListWatcher.cxx
index 6efa75b..cd4f9ff 100644
--- a/sd/source/core/PageListWatcher.cxx
+++ b/sd/source/core/PageListWatcher.cxx
@@ -32,6 +32,7 @@
     maPageVectorStandard.clear();
     maPageVectorNotes.clear();
     mpHandoutPage = 0L;
+    mnVisiblePageCount = -1;
 
     // build up vectors again
     const sal_uInt32 nPageCount(ImpGetPageCount());
@@ -46,6 +47,7 @@
             case PK_STANDARD:
             {
                 maPageVectorStandard.push_back(pCandidate);
+                if (!pCandidate->IsExcluded()) mnVisiblePageCount++;
                 break;
             }
             case PK_NOTES:
@@ -167,6 +169,22 @@
     return nRetval;
 }
 
+
+sal_uInt32 ImpPageListWatcher::GetVisibleSdPageCount()
+{
+    sal_uInt32 nVisiblePageCount = 0;
+
+    // build up vectors again
+    const sal_uInt32 nPageCount(ImpGetPageCount());
+
+    for(sal_uInt32 a(0L); a < nPageCount; a++)
+    {
+        SdPage* pCandidate = ImpGetPage(a);
+        if ((pCandidate->GetPageKind() == PK_STANDARD)&&(!pCandidate->IsExcluded())) 
nVisiblePageCount++;
+    }
+    return nVisiblePageCount;
+}
+
 //////////////////////////////////////////////////////////////////////////////
 
 sal_uInt32 ImpDrawPageListWatcher::ImpGetPageCount() const
diff --git a/sd/source/core/PageListWatcher.hxx b/sd/source/core/PageListWatcher.hxx
index 177acd2..fd81645 100644
--- a/sd/source/core/PageListWatcher.hxx
+++ b/sd/source/core/PageListWatcher.hxx
@@ -43,6 +43,7 @@
     SdPage*                         mpHandoutPage;
 
     sal_Bool                        mbPageListValid;
+    sal_uInt32                      mnVisiblePageCount;
 
     void ImpRecreateSortedPageListOnDemand();
     virtual sal_uInt32 ImpGetPageCount() const = 0;
@@ -60,6 +61,7 @@
     void Invalidate() { mbPageListValid = sal_False; }
     SdPage* GetSdPage(PageKind ePgKind, sal_uInt32 nPgNum = 0L);
     sal_uInt32 GetSdPageCount(PageKind ePgKind);
+    sal_uInt32 GetVisibleSdPageCount();
 };
 
 //////////////////////////////////////////////////////////////////////////////
diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx
index fd36dd4..0e8f5d6 100644
--- a/sd/source/core/drawdoc2.cxx
+++ b/sd/source/core/drawdoc2.cxx
@@ -66,6 +66,7 @@
 
 #include "PageListWatcher.hxx"
 #include <vcl/virdev.hxx>
+#include "customshowlist.hxx"
 
 using namespace ::sd;
 
@@ -202,6 +203,11 @@
     return (sal_uInt16)mpMasterPageListWatcher->GetSdPageCount(ePgKind);
 }
 
+sal_uInt16 SdDrawDocument::GetActiveSdPageCount() const
+{
+    return (sal_uInt16)mpDrawPageListWatcher->GetVisibleSdPageCount();
+}
+
 // Adapt the page numbers that are registered in the page objects of the notes
 // pages
 void SdDrawDocument::UpdatePageObjectsInNotes(sal_uInt16 nStartPos)
diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx 
b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
index 6db42a0..bdf802b 100644
--- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
@@ -815,6 +815,8 @@
     SdPage* pPage      = NULL;
     SdPage* pFirstPage = NULL;
     sal_uInt16 nFirstPage;
+    sal_Int32 nPageCount;
+    sal_Int32 nActivePageCount;
     sal_uInt16 nSelectedPages = 
mrSlideSorter.GetController().GetPageSelector().GetSelectedPageCount();
     OUStringBuffer aPageStr;
     String aLayoutStr;
@@ -831,7 +833,14 @@
         {
             pPage = pDescriptor->GetPage();
             nFirstPage = (pPage->GetPageNum()/2) + 1;
-            aPageStr.append(" ").append(static_cast<sal_Int32>(nFirstPage), 10).append(" / 
").append(mrSlideSorter.GetModel().GetPageCount(), 10);
+            nPageCount = mrSlideSorter.GetModel().GetPageCount();
+            nActivePageCount = 
static_cast<sal_Int32>(mrSlideSorter.GetModel().GetDocument()->GetActiveSdPageCount());
+
+            aPageStr.append(" ").append(static_cast<sal_Int32>(nFirstPage), 10).append(" / 
").append(nPageCount, 10);
+            if (nPageCount != nActivePageCount)
+            {
+                aPageStr.append(" (").append(nActivePageCount, 10).append(")");
+            }
         }
       rSet.Put( SfxStringItem( SID_STATUS_PAGE, aPageStr.makeStringAndClear() ) );
     }
diff --git a/sd/source/ui/view/drviews4.cxx b/sd/source/ui/view/drviews4.cxx
index c3511c9..eedd6cc 100644
--- a/sd/source/ui/view/drviews4.cxx
+++ b/sd/source/ui/view/drviews4.cxx
@@ -866,7 +866,7 @@
                                    SID_ATTR_SIZE, SID_ATTR_SIZE,
                                    0L);
 
-//        GetStatusBarState(aSet);  nicht performant bei gedrueckter Modifiertaste!!
+        GetStatusBarState(aSet);
 
         aSet.Put( SfxStringItem( SID_CONTEXT, mpDrawView->GetStatusText() ) );
 
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
index 135b198..56a0f7f 100644
--- a/sd/source/ui/view/drviewsa.cxx
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -735,12 +735,20 @@
     // Display of current page and layer.
     if( SFX_ITEM_AVAILABLE == rSet.GetItemState( SID_STATUS_PAGE ) )
     {
+        sal_Int32 nPageCount = sal_Int32(GetDoc()->GetSdPageCount(mePageKind));
+        sal_Int32 nActivePageCount = sal_Int32(GetDoc()->GetActiveSdPageCount());
         // Always show the slide/page number.
         OUString aOUString = SD_RESSTR(STR_SD_PAGE);
         aOUString += " ";
         aOUString += OUString::valueOf( sal_Int32(maTabControl.GetCurPageId()) );
         aOUString += " / " ;
-        aOUString += OUString::valueOf( sal_Int32(GetDoc()->GetSdPageCount(mePageKind)) );
+        aOUString += OUString::valueOf( nPageCount );
+        if (nPageCount != nActivePageCount)
+        {
+            aOUString += " (";
+            aOUString += OUString::valueOf( nActivePageCount );
+            aOUString += ")";
+        }
 
         // If in layer mode additionally show the layer that contains all
         // selected shapes of the page.  If the shapes are distributed on

-- 
To view, visit https://gerrit.libreoffice.org/2941
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I788070fdf093ec8b9f875ea5e81999990cd04501
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Rob Snelders <libreoffice@ertai.nl>


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.