diff options
-rw-r--r-- | sc/inc/ViewSettingsSequenceDefines.hxx | 3 | ||||
-rw-r--r-- | sc/inc/sc.hrc | 3 | ||||
-rw-r--r-- | sc/inc/scextopt.hxx | 1 | ||||
-rw-r--r-- | sc/sdi/docsh.sdi | 1 | ||||
-rw-r--r-- | sc/sdi/scalc.sdi | 27 | ||||
-rw-r--r-- | sc/source/filter/excel/xeview.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/excel/xiview.cxx | 4 | ||||
-rw-r--r-- | sc/source/ui/inc/viewdata.hxx | 5 | ||||
-rw-r--r-- | sc/source/ui/view/gridwin4.cxx | 3 | ||||
-rw-r--r-- | sc/source/ui/view/scextopt.cxx | 3 | ||||
-rw-r--r-- | sc/source/ui/view/tabvwshf.cxx | 16 | ||||
-rw-r--r-- | sc/source/ui/view/viewdata.cxx | 17 | ||||
-rw-r--r-- | sc/uiconfig/scalc/toolbar/formatobjectbar.xml | 2 |
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> |