summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@suse.com>2011-11-28 20:08:01 -0500
committerKohei Yoshida <kohei.yoshida@suse.com>2011-11-29 00:04:22 -0500
commit8724aa7d6dc6a89855c0c0a1a5d5b9dc0331a679 (patch)
treeecdf410878457084576bdd8f49c8af8130768d4c /sc
parent12854c322f799a8795b0054293ea987f11170d64 (diff)
Passed the selected sheet info to ScPreview.
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/markdata.hxx6
-rw-r--r--sc/source/core/data/markdata.cxx14
-rw-r--r--sc/source/ui/inc/preview.hxx4
-rw-r--r--sc/source/ui/view/preview.cxx6
-rw-r--r--sc/source/ui/view/prevwsh.cxx1
5 files changed, 25 insertions, 6 deletions
diff --git a/sc/inc/markdata.hxx b/sc/inc/markdata.hxx
index 05157a2f7370..ef2671d82b51 100644
--- a/sc/inc/markdata.hxx
+++ b/sc/inc/markdata.hxx
@@ -45,11 +45,14 @@ class ScRangeList;
class SC_DLLPUBLIC ScMarkData
{
+public:
+ typedef std::set<SCTAB> MarkedTabsType;
private:
+ MarkedTabsType maTabMarked;
+
ScRange aMarkRange; // area
ScRange aMultiRange; // maximum area altogether
ScMarkArray* pMultiSel; // multi selection
- ::std::set<SCTAB> maTabMarked;
bool bMarked:1; // rectangle marked
bool bMultiMarked:1;
@@ -86,6 +89,7 @@ public:
SCTAB GetSelectCount() const;
SCTAB GetFirstSelected() const;
SCTAB GetLastSelected() const;
+ void GetSelectedTabs(MarkedTabsType& rTabs) const;
void SetMarkNegative( bool bFlag ) { bMarkIsNeg = bFlag; }
bool IsMarkNegative() const { return bMarkIsNeg; }
diff --git a/sc/source/core/data/markdata.cxx b/sc/source/core/data/markdata.cxx
index 68a11295ca8f..70df85a89151 100644
--- a/sc/source/core/data/markdata.cxx
+++ b/sc/source/core/data/markdata.cxx
@@ -40,17 +40,17 @@
//------------------------------------------------------------------------
ScMarkData::ScMarkData() :
- pMultiSel( NULL ),
- maTabMarked()
+ maTabMarked(),
+ pMultiSel( NULL )
{
ResetMark();
}
ScMarkData::ScMarkData(const ScMarkData& rData) :
+ maTabMarked( rData.maTabMarked ),
aMarkRange( rData.aMarkRange ),
aMultiRange( rData.aMultiRange ),
- pMultiSel( NULL ),
- maTabMarked( rData.maTabMarked )
+ pMultiSel( NULL )
{
bMarked = rData.bMarked;
bMultiMarked = rData.bMultiMarked;
@@ -228,6 +228,12 @@ SCTAB ScMarkData::GetLastSelected() const
return 0;
}
+void ScMarkData::GetSelectedTabs(MarkedTabsType& rTabs) const
+{
+ MarkedTabsType aTabs(maTabMarked.begin(), maTabMarked.end());
+ rTabs.swap(aTabs);
+}
+
void ScMarkData::MarkToMulti()
{
if ( bMarked && !bMarking )
diff --git a/sc/source/ui/inc/preview.hxx b/sc/source/ui/inc/preview.hxx
index c284cac01fc2..c3c1af53ab55 100644
--- a/sc/source/ui/inc/preview.hxx
+++ b/sc/source/ui/inc/preview.hxx
@@ -31,6 +31,7 @@
#include <vcl/window.hxx>
#include "printfun.hxx" // ScPrintState
+#include "markdata.hxx"
#include <vector>
@@ -41,6 +42,7 @@ class FmFormView;
class ScPreview : public Window
{
private:
+ ScMarkData::MarkedTabsType maSelectedTabs;
// eingestellt:
long nPageNo; // Seite im Dokument
sal_uInt16 nZoom; // eingestellter Zoom
@@ -167,6 +169,8 @@ public:
static void StaticInvalidate();
FmFormView* GetDrawView() { return pDrawView; }
+
+ void SetSelectedTabs(const ScMarkData& rMark);
};
diff --git a/sc/source/ui/view/preview.cxx b/sc/source/ui/view/preview.cxx
index 269b6373e849..41232d0a5fed 100644
--- a/sc/source/ui/view/preview.cxx
+++ b/sc/source/ui/view/preview.cxx
@@ -1545,6 +1545,10 @@ void ScPreview::DrawInvert( long nDragPos, sal_uInt16 nFlags )
Invert( aRect,INVERT_50 );
}
}
-//Issue51656 Add resizeable margin on page preview from maoyg
+
+void ScPreview::SetSelectedTabs(const ScMarkData& rMark)
+{
+ rMark.GetSelectedTabs(maSelectedTabs);
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/view/prevwsh.cxx b/sc/source/ui/view/prevwsh.cxx
index fc152b050f9e..ab33d56e1b6a 100644
--- a/sc/source/ui/view/prevwsh.cxx
+++ b/sc/source/ui/view/prevwsh.cxx
@@ -159,6 +159,7 @@ ScPreviewShell::ScPreviewShell( SfxViewFrame* pViewFrame,
ScViewData* pData = pTabViewShell->GetViewData();
pData->WriteUserDataSequence( aSourceData );
InitStartTable( pData->GetTabNo() );
+ pPreview->SetSelectedTabs(pData->GetMarkData());
// also have to store the TabView's DesignMode state
// (only if draw view exists)