summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kyoshida@novell.com>2010-09-15 21:15:49 +0200
committerFridrich Štrba <fridrich.strba@bluewin.ch>2010-09-15 21:15:49 +0200
commitfe8f3ddf3a6eef5320ea185a32d042a22fb94a30 (patch)
tree7d6120b5d3d44ecbcb37ddecea939f6cb2440add /sc
parent340f9bd08cfe91054d3ed36e13c26d4fccce154f (diff)
sc-sheet-gridline-toggle.diff: Toggle gridline display per sheet.
i#14893
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/ViewSettingsSequenceDefines.hxx3
-rw-r--r--sc/inc/sc.hrc3
-rw-r--r--sc/inc/scextopt.hxx1
-rw-r--r--sc/sdi/docsh.sdi1
-rw-r--r--sc/sdi/scalc.sdi27
-rw-r--r--sc/source/filter/excel/xeview.cxx2
-rw-r--r--sc/source/filter/excel/xiview.cxx4
-rw-r--r--sc/source/ui/inc/viewdata.hxx5
-rw-r--r--sc/source/ui/view/gridwin4.cxx3
-rw-r--r--sc/source/ui/view/scextopt.cxx3
-rw-r--r--sc/source/ui/view/tabvwshf.cxx16
-rw-r--r--sc/source/ui/view/viewdata.cxx17
-rw-r--r--sc/uiconfig/scalc/toolbar/formatobjectbar.xml2
13 files changed, 82 insertions, 5 deletions
diff --git a/sc/inc/ViewSettingsSequenceDefines.hxx b/sc/inc/ViewSettingsSequenceDefines.hxx
index f23229d31a43..a8086fbdbe40 100644
--- a/sc/inc/ViewSettingsSequenceDefines.hxx
+++ b/sc/inc/ViewSettingsSequenceDefines.hxx
@@ -61,7 +61,7 @@
// this are the defines for the position of the settings in the
// TableViewSettingsSequence
-#define SC_TABLE_VIEWSETTINGS_COUNT 15
+#define SC_TABLE_VIEWSETTINGS_COUNT 16
#define SC_CURSOR_X 0
#define SC_CURSOR_Y 1
@@ -78,6 +78,7 @@
#define SC_TABLE_ZOOM_VALUE 12
#define SC_TABLE_PAGE_VIEW_ZOOM_VALUE 13
#define SC_TABLE_TAB_BG_COLOR 14
+#define SC_TABLE_SHOWGRID 15
#define SC_CURSORPOSITIONX "CursorPositionX"
#define SC_CURSORPOSITIONY "CursorPositionY"
diff --git a/sc/inc/sc.hrc b/sc/inc/sc.hrc
index cc9cc9b582a2..c73abeef4df8 100644
--- a/sc/inc/sc.hrc
+++ b/sc/inc/sc.hrc
@@ -1657,6 +1657,9 @@
// Autoformat for DataPilot
#define SID_PIVOT_AFMT (SC_OOO_BUILD_START + 1)
+// Toggle sheet grid
+#define FID_TAB_TOGGLE_GRID (SC_OOO_BUILD_START + 2)
+
#endif
diff --git a/sc/inc/scextopt.hxx b/sc/inc/scextopt.hxx
index ad3fd4b1b51e..4b3c86e14b18 100644
--- a/sc/inc/scextopt.hxx
+++ b/sc/inc/scextopt.hxx
@@ -76,6 +76,7 @@ struct ScExtTabSettings
bool mbSelected; /// true = Sheet is selected.
bool mbFrozenPanes; /// true = Frozen panes; false = Normal splits.
bool mbPageMode; /// true = Pagebreak mode; false = Normal view mode.
+ bool mbShowGrid; /// Whether or not to display gridlines.
explicit ScExtTabSettings();
};
diff --git a/sc/sdi/docsh.sdi b/sc/sdi/docsh.sdi
index 94cd06d9f699..edf00e877e1f 100644
--- a/sc/sdi/docsh.sdi
+++ b/sc/sdi/docsh.sdi
@@ -61,6 +61,7 @@ interface TableSelection
FID_TAB_RENAME [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
FID_TAB_RTL [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
FID_TAB_SET_TAB_BG_COLOR [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
+ FID_TAB_TOGGLE_GRID [ ExecMethod = ExecuteTable; StateMethod = GetStateTable; ]
SID_TABLE_ACTIVATE [ ExecMethod = Execute; ]
}
diff --git a/sc/sdi/scalc.sdi b/sc/sdi/scalc.sdi
index 9a5d959d9d5b..e88d3725b8aa 100644
--- a/sc/sdi/scalc.sdi
+++ b/sc/sdi/scalc.sdi
@@ -7799,6 +7799,33 @@ SfxVoidItem ShareDocument SID_SHARE_DOC
]
//--------------------------------------------------------------------------
+SfxBoolItem ToggleSheetGrid FID_TAB_TOGGLE_GRID
+
+[
+ /* flags: */
+ AutoUpdate = FALSE,
+ Cachable = Cachable,
+ FastCall = FALSE,
+ HasCoreId = FALSE,
+ HasDialog = FALSE,
+ ReadOnlyDoc = TRUE,
+ Toggle = FALSE,
+ Container = FALSE,
+ RecordAbsolute = FALSE,
+ RecordPerSet;
+ Synchron;
+
+ /* config: */
+ AccelConfig = TRUE,
+ MenuConfig = TRUE,
+ StatusBarConfig = FALSE,
+ ToolBoxConfig = TRUE,
+ GroupId = GID_FORMAT;
+]
+
+
+
+//--------------------------------------------------------------------------
SvxColorItem TabBgColor FID_TAB_SET_TAB_BG_COLOR
[
diff --git a/sc/source/filter/excel/xeview.cxx b/sc/source/filter/excel/xeview.cxx
index 035afd0a5830..9cc691db940d 100644
--- a/sc/source/filter/excel/xeview.cxx
+++ b/sc/source/filter/excel/xeview.cxx
@@ -313,7 +313,6 @@ XclExpTabViewSettings::XclExpTabViewSettings( const XclExpRoot& rRoot, SCTAB nSc
const ScViewOptions& rViewOpt = GetDoc().GetViewOptions();
maData.mbShowFormulas = rViewOpt.GetOption( VOPT_FORMULAS );
- maData.mbShowGrid = rViewOpt.GetOption( VOPT_GRID );
maData.mbShowHeadings = rViewOpt.GetOption( VOPT_HEADER );
maData.mbShowZeros = rViewOpt.GetOption( VOPT_NULLVALS );
maData.mbShowOutline = rViewOpt.GetOption( VOPT_OUTLINER );
@@ -388,6 +387,7 @@ XclExpTabViewSettings::XclExpTabViewSettings( const XclExpRoot& rRoot, SCTAB nSc
else
maData.maGridColor = rGridColor;
}
+ maData.mbShowGrid = rTabSett.mbShowGrid;
// view mode and zoom
maData.mbPageMode = (GetBiff() == EXC_BIFF8) && rTabSett.mbPageMode;
diff --git a/sc/source/filter/excel/xiview.cxx b/sc/source/filter/excel/xiview.cxx
index f75032ff461e..1b047de977ab 100644
--- a/sc/source/filter/excel/xiview.cxx
+++ b/sc/source/filter/excel/xiview.cxx
@@ -274,6 +274,9 @@ void XclImpTabViewSettings::Finalize()
else
rTabSett.maGridColor = maData.maGridColor;
+ // show grid option
+ rTabSett.mbShowGrid = maData.mbShowGrid;
+
// view mode and zoom
if( maData.mnCurrentZoom != 0 )
(maData.mbPageMode ? maData.mnPageZoom : maData.mnNormalZoom) = maData.mnCurrentZoom;
@@ -288,7 +291,6 @@ void XclImpTabViewSettings::Finalize()
// set Excel sheet settings globally at Calc document, take settings from displayed sheet
ScViewOptions aViewOpt( rDoc.GetViewOptions() );
aViewOpt.SetOption( VOPT_FORMULAS, maData.mbShowFormulas );
- aViewOpt.SetOption( VOPT_GRID, maData.mbShowGrid );
aViewOpt.SetOption( VOPT_HEADER, maData.mbShowHeadings );
aViewOpt.SetOption( VOPT_NULLVALS, maData.mbShowZeros );
aViewOpt.SetOption( VOPT_OUTLINER, maData.mbShowOutline );
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index 05560b0872b2..52923d1d240c 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -139,6 +139,8 @@ private:
SCCOL nPosX[2];
SCROW nPosY[2];
+ bool bShowGrid; // per-sheet show grid-lines option.
+
BOOL bOldCurValid; // "virtuelle" Cursorpos. bei zusammengefassten
ScViewDataTable();
@@ -320,6 +322,9 @@ public:
const Fraction& GetZoomX() const { return bPagebreak ? pThisTab->aPageZoomX : pThisTab->aZoomX; }
const Fraction& GetZoomY() const { return bPagebreak ? pThisTab->aPageZoomY : pThisTab->aZoomY; }
+ void SetShowGrid( bool bShow );
+ bool GetShowGrid() const { return pThisTab->bShowGrid; }
+
const MapMode& GetLogicMode( ScSplitPos eWhich );
const MapMode& GetLogicMode(); // Offset 0
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 69deeb4e432f..ae18459d8d97 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -572,7 +572,8 @@ void ScGridWindow::Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, ScUpdateMod
aOutputData.SetEditObject( GetEditObject() );
aOutputData.SetViewShell( pViewData->GetViewShell() );
- BOOL bGrid = rOpts.GetOption( VOPT_GRID );
+ BOOL bGrid = rOpts.GetOption( VOPT_GRID ) && pViewData->GetShowGrid();
+
BOOL bPage = rOpts.GetOption( VOPT_PAGEBREAKS );
if ( eMode == SC_UPDATE_CHANGED )
diff --git a/sc/source/ui/view/scextopt.cxx b/sc/source/ui/view/scextopt.cxx
index d5816ecdd289..fe5a91f54bd4 100644
--- a/sc/source/ui/view/scextopt.cxx
+++ b/sc/source/ui/view/scextopt.cxx
@@ -57,7 +57,8 @@ ScExtTabSettings::ScExtTabSettings() :
mnPageZoom( 0 ),
mbSelected( false ),
mbFrozenPanes( false ),
- mbPageMode( false )
+ mbPageMode( false ),
+ mbShowGrid( true )
{
}
diff --git a/sc/source/ui/view/tabvwshf.cxx b/sc/source/ui/view/tabvwshf.cxx
index 20a10f149a3a..39a188e176d5 100644
--- a/sc/source/ui/view/tabvwshf.cxx
+++ b/sc/source/ui/view/tabvwshf.cxx
@@ -32,6 +32,7 @@
#include "scitems.hxx"
#include <sfx2/request.hxx>
+#include <sfx2/bindings.hxx>
#include <sfx2/viewfrm.hxx>
#include <basic/sbstar.hxx>
#include <layout/layout.hxx>
@@ -691,6 +692,17 @@ void ScTabViewShell::ExecuteTable( SfxRequest& rReq )
}
break;
+ case FID_TAB_TOGGLE_GRID:
+ {
+ bool bShowGrid = pViewData->GetShowGrid();
+ pViewData->SetShowGrid(!bShowGrid);
+ SfxBindings& rBindings = GetViewFrame()->GetBindings();
+ rBindings.Invalidate( FID_TAB_TOGGLE_GRID );
+ PaintGrid();
+ rReq.Done();
+ }
+ break;
+
case FID_TAB_SET_TAB_BG_COLOR:
case FID_TAB_MENU_SET_TAB_BG_COLOR:
{
@@ -954,6 +966,10 @@ void ScTabViewShell::GetStateTable( SfxItemSet& rSet )
rSet.Put( SvxColorItem( aColor, nWhich ) );
}
break;
+
+ case FID_TAB_TOGGLE_GRID:
+ rSet.Put( SfxBoolItem(nWhich, pViewData->GetShowGrid()) );
+ break;
}
nWhich = aIter.NextWhich();
}
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 8f463c2a86b3..d662c2e6d018 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -101,6 +101,7 @@ ScViewDataTable::ScViewDataTable() :
nFixPosY( 0 ),
nCurX( 0 ),
nCurY( 0 ),
+ bShowGrid( true ),
bOldCurValid( FALSE )
{
nPosX[0]=nPosX[1]=0;
@@ -160,6 +161,9 @@ void ScViewDataTable::WriteUserDataSequence(uno::Sequence <beans::PropertyValue>
pSettings[SC_TABLE_ZOOM_VALUE].Value <<= nZoomValue;
pSettings[SC_TABLE_PAGE_VIEW_ZOOM_VALUE].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_PAGEVIEWZOOMVALUE));
pSettings[SC_TABLE_PAGE_VIEW_ZOOM_VALUE].Value <<= nPageZoomValue;
+
+ pSettings[SC_TABLE_SHOWGRID].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNO_SHOWGRID));
+ pSettings[SC_TABLE_SHOWGRID].Value <<= static_cast<sal_Bool>(bShowGrid);
}
}
@@ -264,6 +268,10 @@ void ScViewDataTable::ReadUserDataSequence(const uno::Sequence <beans::PropertyV
aPageZoomX = aPageZoomY = aZoom;
rHasZoom = true;
}
+ else if (sName.compareToAscii(SC_UNO_SHOWGRID) == 0)
+ {
+ aSettings[i].Value >>= bShowGrid;
+ }
else if (sName.compareToAscii(SC_TABLESELECTED) == 0)
{
bool bSelected = false;
@@ -743,6 +751,12 @@ void ScViewData::SetZoom( const Fraction& rNewX, const Fraction& rNewY, BOOL bAl
SetZoom( rNewX, rNewY, vTabs );
}
+void ScViewData::SetShowGrid( bool bShow )
+{
+ CreateSelectedTabData();
+ pTabData[nTabNo]->bShowGrid = bShow;
+}
+
void ScViewData::RefreshZoom()
{
// recalculate zoom-dependent values (only for current sheet)
@@ -2526,6 +2540,7 @@ void ScViewData::WriteExtOptions( ScExtDocOptions& rDocOpt ) const
if( rGridColor.GetColor() != SC_STD_GRIDCOLOR )
rTabSett.maGridColor = rGridColor;
}
+ rTabSett.mbShowGrid = pViewTab->bShowGrid;
// view mode and zoom
rTabSett.mbPageMode = bPagebreak;
@@ -2658,6 +2673,8 @@ void ScViewData::ReadExtOptions( const ScExtDocOptions& rDocOpt )
if( rTabSett.mnPageZoom )
rViewTab.aPageZoomX = rViewTab.aPageZoomY = Fraction( rTabSett.mnPageZoom, 100L );
+ rViewTab.bShowGrid = rTabSett.mbShowGrid;
+
// get some settings from displayed Excel sheet, set at Calc document
if( nTab == GetTabNo() )
{
diff --git a/sc/uiconfig/scalc/toolbar/formatobjectbar.xml b/sc/uiconfig/scalc/toolbar/formatobjectbar.xml
index 49c31d72f176..773befcc8ac7 100644
--- a/sc/uiconfig/scalc/toolbar/formatobjectbar.xml
+++ b/sc/uiconfig/scalc/toolbar/formatobjectbar.xml
@@ -50,4 +50,6 @@
<toolbar:toolbaritem xlink:href=".uno:InsertColumns" toolbar:helpid="helpid:26268" toolbar:visible="false" />
<toolbar:toolbaritem xlink:href=".uno:DeleteRows" toolbar:helpid="helpid:26236" toolbar:visible="false" />
<toolbar:toolbaritem xlink:href=".uno:DeleteColumns" toolbar:helpid="helpid:26237" toolbar:visible="false" />
+ <toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleSheetGrid" toolbar:helpid="helpid:26238" toolbar:visible="true" />
</toolbar:toolbar>