summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2018-09-05 21:12:23 +0200
committerMiklos Vajna <vmiklos@collabora.com>2020-10-21 11:09:10 +0200
commit7b23396950ac3fa79093bfdd4038d5f7b818db33 (patch)
tree6e8fbdfe16484fe8aef372b6d8a79a2162f29cd1
parentba352b96595e9b31d57a5fb2829eccca433f28f7 (diff)
tdf#124513 Allow to use multiple Formula dialog instances
[ The 6.2 version deals with a non-welded ScFormulaDlg. ] Conflicts: sc/source/ui/app/inputwin.cxx sc/source/ui/formdlg/formula.cxx (cherry picked from commit e5f74d20c2b72b107fe719cc888d779f17e5d57c) Change-Id: Ia24556f40dd06e3acb40f24334ab972e2dada26a
-rw-r--r--sc/inc/scmod.hxx7
-rw-r--r--sc/source/ui/app/inputhdl.cxx5
-rw-r--r--sc/source/ui/app/inputwin.cxx3
-rw-r--r--sc/source/ui/app/scmod.cxx34
-rw-r--r--sc/source/ui/formdlg/formula.cxx81
-rw-r--r--sc/source/ui/inc/formula.hxx1
-rw-r--r--sc/source/ui/inc/tabvwsh.hxx7
-rw-r--r--sc/source/ui/view/cellsh3.cxx5
-rw-r--r--sc/source/ui/view/tabvwsh4.cxx2
-rw-r--r--sc/source/ui/view/tabvwsha.cxx2
-rw-r--r--sc/source/ui/view/tabvwshc.cxx11
11 files changed, 82 insertions, 76 deletions
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index 3a389ecc2d45..351d6d3bb95f 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -98,7 +98,6 @@ class ScModule: public SfxModule, public SfxListener, public utl::ConfigurationL
std::unique_ptr<SvtCTLOptions> m_pCTLOptions;
std::unique_ptr<SvtUserOptions> m_pUserOptions;
std::unique_ptr<SfxErrorHandler> m_pErrorHdl;
- std::unique_ptr<ScFormEditData> m_pFormEditData;
sal_uInt16 m_nCurRefDlgId;
bool m_bIsWaterCan:1;
bool m_bIsInEditCommand:1;
@@ -203,7 +202,6 @@ public:
void InputSelection( const EditView* pView );
void InputChanged( const EditView* pView );
ScInputHandler* GetInputHdl( ScTabViewShell* pViewSh = nullptr, bool bUseRef = true );
-
void SetRefInputHdl( ScInputHandler* pNew );
ScInputHandler* GetRefInputHdl() { return m_pRefInputHandler;}
@@ -214,14 +212,9 @@ public:
void InputSetSelection( sal_Int32 nStart, sal_Int32 nEnd );
void InputReplaceSelection( const OUString& rStr );
void InputTurnOffWinEngine();
- OUString InputGetFormulaStr();
void ActivateInputWindow( const OUString* pStr = nullptr,
bool bMatrix = false );
- void InitFormEditData();
- void ClearFormEditData();
- ScFormEditData* GetFormEditData() { return m_pFormEditData.get(); }
-
// input of reference:
SC_DLLPUBLIC void SetRefDialog( sal_uInt16 nId, bool bVis, SfxViewFrame* pViewFrm = nullptr );
bool IsModalMode(SfxObjectShell* pDocSh = nullptr);
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 36af4bd5979c..c464a8c46268 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -3633,9 +3633,12 @@ void ScInputHandler::NotifyChange( const ScInputHdlState* pState,
{
ScModule* pScMod = SC_MOD();
+ ScTabViewShell* pScTabViewShell = pScMod ? dynamic_cast<ScTabViewShell*>(pScMod->GetViewShell()) : nullptr;
+
// Also take foreign reference input into account here (e.g. FunctionsAutoPilot),
// FormEditData, if we're switching from Help to Calc:
- if ( !bFormulaMode && !pScMod->IsFormulaMode() && !pScMod->GetFormEditData() )
+ if ( !bFormulaMode && !pScMod->IsFormulaMode() &&
+ ( !pScTabViewShell || !pScTabViewShell->GetFormEditData() ) )
{
bool bIgnore = false;
if ( bModified )
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 3669d3840793..9cc8116efa19 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -74,6 +74,7 @@
#include <AccessibleEditObject.hxx>
#include <AccessibleText.hxx>
#include <svtools/miscopt.hxx>
+#include <comphelper/lok.hxx>
#include <comphelper/string.hxx>
#include <com/sun/star/frame/XLayoutManager.hpp>
#include <helpids.h>
@@ -313,7 +314,7 @@ void ScInputWindow::Select()
{
//! new method at ScModule to query if function autopilot is open
SfxViewFrame* pViewFrm = SfxViewFrame::Current();
- if ( pViewFrm && !pViewFrm->GetChildWindow( SID_OPENDLG_FUNCTION ) )
+ if ( pViewFrm && ( comphelper::LibreOfficeKit::isActive() || !pViewFrm->GetChildWindow( SID_OPENDLG_FUNCTION ) ) )
{
pViewFrm->GetDispatcher()->Execute( SID_OPENDLG_FUNCTION,
SfxCallMode::SYNCHRON | SfxCallMode::RECORD );
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 27c145d15c76..3bf42ebaf870 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -188,8 +188,6 @@ ScModule::~ScModule()
SfxItemPool::Free(m_pMessagePool);
- m_pFormEditData.reset();
-
m_pDragData.reset();
m_pErrorHdl.reset();
@@ -676,16 +674,6 @@ void ScModule::SetSelectionTransfer( ScSelectionTransferObj* pNew )
m_pSelTransfer = pNew;
}
-void ScModule::InitFormEditData()
-{
- m_pFormEditData.reset( new ScFormEditData );
-}
-
-void ScModule::ClearFormEditData()
-{
- m_pFormEditData.reset();
-}
-
void ScModule::SetViewOptions( const ScViewOptions& rOpt )
{
if ( !m_pViewCfg )
@@ -1339,7 +1327,7 @@ void ScModule::ModifyOptions( const SfxItemSet& rOptSet )
*/
ScInputHandler* ScModule::GetInputHdl( ScTabViewShell* pViewSh, bool bUseRef )
{
- if ( m_pRefInputHandler && bUseRef )
+ if ( !comphelper::LibreOfficeKit::isActive() && m_pRefInputHandler && bUseRef )
return m_pRefInputHandler;
ScInputHandler* pHdl = nullptr;
@@ -1464,15 +1452,6 @@ void ScModule::InputTurnOffWinEngine()
pHdl->InputTurnOffWinEngine();
}
-OUString ScModule::InputGetFormulaStr()
-{
- ScInputHandler* pHdl = GetInputHdl();
- OUString aStr;
- if ( pHdl )
- aStr = pHdl->GetFormString();
- return aStr;
-}
-
void ScModule::ActivateInputWindow( const OUString* pStrFormula, bool bMatrix )
{
ScInputHandler* pHdl = GetInputHdl();
@@ -1514,7 +1493,8 @@ void ScModule::SetRefDialog( sal_uInt16 nId, bool bVis, SfxViewFrame* pViewFrm )
{
//TODO: Move reference dialog handling to view
// Just keep function autopilot here for references to other documents
- if(m_nCurRefDlgId==0 || (nId==m_nCurRefDlgId && !bVis))
+ if ( m_nCurRefDlgId == 0 || ( nId == m_nCurRefDlgId && !bVis )
+ || ( comphelper::LibreOfficeKit::isActive() && m_nCurRefDlgId == SID_OPENDLG_FUNCTION ) )
{
if ( !pViewFrm )
pViewFrm = SfxViewFrame::Current();
@@ -1661,7 +1641,13 @@ bool ScModule::IsFormulaMode()
if ( m_nCurRefDlgId )
{
- SfxChildWindow* pChildWnd = lcl_GetChildWinFromCurrentView( m_nCurRefDlgId );
+ SfxChildWindow* pChildWnd = nullptr;
+
+ if ( comphelper::LibreOfficeKit::isActive() )
+ pChildWnd = lcl_GetChildWinFromCurrentView( m_nCurRefDlgId );
+ else
+ pChildWnd = lcl_GetChildWinFromAnyView( m_nCurRefDlgId );
+
if ( pChildWnd )
{
IAnyRefDialog* pRefDlg = dynamic_cast<IAnyRefDialog*>(pChildWnd->GetWindow());
diff --git a/sc/source/ui/formdlg/formula.cxx b/sc/source/ui/formdlg/formula.cxx
index df788d2101d1..6ecb7b449330 100644
--- a/sc/source/ui/formdlg/formula.cxx
+++ b/sc/source/ui/formdlg/formula.cxx
@@ -64,11 +64,12 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
vcl::Window* pParent, const ScViewData* pViewData, const formula::IFunctionManager* _pFunctionMgr )
: formula::FormulaDlg( pB, pCW, pParent, _pFunctionMgr,this)
, m_aHelper(this,pB)
+ , m_pViewShell( nullptr )
{
m_aHelper.SetWindow(this);
ScModule* pScMod = SC_MOD();
pScMod->InputEnterHandler();
- ScTabViewShell* pScViewShell = nullptr;
+ m_pViewShell = nullptr;
// title has to be from the view that opened the dialog,
// even if it's not the current view
@@ -81,9 +82,9 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
SfxViewFrame* pMyViewFrm = pMyDisp->GetFrame();
if (pMyViewFrm)
{
- pScViewShell = dynamic_cast<ScTabViewShell*>( pMyViewFrm->GetViewShell() );
- if( pScViewShell )
- pScViewShell->UpdateInputHandler(true);
+ m_pViewShell = dynamic_cast<ScTabViewShell*>( pMyViewFrm->GetViewShell() );
+ if( m_pViewShell )
+ m_pViewShell->UpdateInputHandler(true);
}
}
}
@@ -97,12 +98,11 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
m_xOpCodeMapper.set(ScServiceProvider::MakeInstance(ScServiceProvider::Type::OPCODEMAPPER,
static_cast<ScDocShell*>(m_pDoc->GetDocumentShell())),uno::UNO_QUERY);
- ScInputHandler* pInputHdl = SC_MOD()->GetInputHdl(pScViewShell);
+ ScInputHandler* pInputHdl = SC_MOD()->GetInputHdl(m_pViewShell);
- OSL_ENSURE( pInputHdl, "Missing input handler :-/" );
+ assert(pInputHdl && "Missing input handler :-/");
- if ( pInputHdl )
- pInputHdl->NotifyChange( nullptr );
+ pInputHdl->NotifyChange( nullptr );
ScFormulaReferenceHelper::enableInput( true );
ScFormulaReferenceHelper::EnableSpreadsheets();
@@ -112,10 +112,10 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
notifyChange();
fill();
- ScFormEditData* pData = pScMod->GetFormEditData();
+ ScFormEditData* pData = m_pViewShell->GetFormEditData();
if (!pData)
{
- pScMod->SetRefInputHdl(pScMod->GetInputHdl());
+ pScMod->SetRefInputHdl(pInputHdl);
m_pDoc = pViewData->GetDocument();
SCCOL nCol = pViewData->GetCurX();
@@ -123,9 +123,9 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
SCTAB nTab = pViewData->GetTabNo();
m_CursorPos = ScAddress( nCol, nRow, nTab );
- pScMod->InitFormEditData(); // create new
- pData = pScMod->GetFormEditData();
- pData->SetInputHandler(pScMod->GetInputHdl());
+ m_pViewShell->InitFormEditData(); // create new
+ pData = m_pViewShell->GetFormEditData();
+ pData->SetInputHandler(pInputHdl);
pData->SetDocShell(pViewData->GetDocShell());
OSL_ENSURE(pData,"FormEditData not available");
@@ -146,12 +146,12 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
sal_Int32 nFEnd = 0;
if ( GetFormulaHelper().GetNextFunc( aFormula, false, nFStart, &nFEnd) )
{
- pScMod->InputReplaceSelection( aFormula );
- pScMod->InputSetSelection( nFStart, nFEnd );
+ pInputHdl->InputReplaceSelection( aFormula );
+ pInputHdl->InputSetSelection( nFStart, nFEnd );
sal_Int32 PrivStart, PrivEnd;
- pScMod->InputGetSelection( PrivStart, PrivEnd);
+ pInputHdl->InputGetSelection( PrivStart, PrivEnd);
- eMode = SetMeText(pScMod->InputGetFormulaStr(),PrivStart, PrivEnd, bMatrix, true, true);
+ eMode = SetMeText(pInputHdl->GetFormString(),PrivStart, PrivEnd, bMatrix, true, true);
pData->SetFStart( nFStart );
}
else
@@ -164,11 +164,11 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
if ( aFormula.startsWith("=") )
aNewFormula = aFormula;
- pScMod->InputReplaceSelection( aNewFormula );
- pScMod->InputSetSelection( 1, aNewFormula.getLength()+1 );
+ pInputHdl->InputReplaceSelection( aNewFormula );
+ pInputHdl->InputSetSelection( 1, aNewFormula.getLength()+1 );
sal_Int32 PrivStart, PrivEnd;
- pScMod->InputGetSelection( PrivStart, PrivEnd);
- SetMeText(pScMod->InputGetFormulaStr(),PrivStart, PrivEnd,bMatrix,false,false);
+ pInputHdl->InputGetSelection( PrivStart, PrivEnd);
+ SetMeText(pInputHdl->GetFormString(),PrivStart, PrivEnd,bMatrix,false,false);
pData->SetFStart( 1 ); // after "="
}
@@ -183,9 +183,7 @@ ScFormulaDlg::ScFormulaDlg( SfxBindings* pB, SfxChildWindow* pCW,
void ScFormulaDlg::notifyChange()
{
- ScModule* pScMod = SC_MOD();
-
- ScInputHandler* pInputHdl = pScMod->GetInputHdl();
+ ScInputHandler* pInputHdl = m_pViewShell->GetInputHandler();
if ( pInputHdl )
pInputHdl->NotifyChange( nullptr );
}
@@ -193,7 +191,7 @@ void ScFormulaDlg::notifyChange()
void ScFormulaDlg::fill()
{
ScModule* pScMod = SC_MOD();
- ScFormEditData* pData = pScMod->GetFormEditData();
+ ScFormEditData* pData = static_cast<ScFormEditData*>(getFormEditData());
notifyChange();
OUString rStrExp;
if (pData)
@@ -223,11 +221,11 @@ void ScFormulaDlg::fill()
pData->SetInputHandler(pInputHdl);
}
- OUString aOldFormulaTmp(pScMod->InputGetFormulaStr());
- pScMod->InputSetSelection( 0, aOldFormulaTmp.getLength());
+ OUString aOldFormulaTmp(pData->GetInputHandler()->GetFormString());
+ pData->GetInputHandler()->InputSetSelection( 0, aOldFormulaTmp.getLength());
rStrExp=pData->GetUndoStr();
- pScMod->InputReplaceSelection(rStrExp);
+ pData->GetInputHandler()->InputReplaceSelection(rStrExp);
SetMeText(rStrExp);
@@ -244,16 +242,18 @@ ScFormulaDlg::~ScFormulaDlg()
void ScFormulaDlg::dispose()
{
- ScModule* pScMod = SC_MOD();
- ScFormEditData* pData = pScMod->GetFormEditData();
+ ScFormEditData* pData = m_pViewShell->GetFormEditData();
+
m_aHelper.dispose();
if (pData) // close doesn't destroy;
{
//set back reference input handler
- pScMod->SetRefInputHdl(nullptr);
+ SC_MOD()->SetRefInputHdl(nullptr);
StoreFormEditData(pData);
}
+
+ m_pViewShell->ClearFormEditData();
formula::FormulaDlg::dispose();
}
@@ -564,8 +564,8 @@ void ScFormulaDlg::setDispatcherLock( bool bLock )
}
void ScFormulaDlg::deleteFormData()
{
- ScModule* pScMod = SC_MOD();
- pScMod->ClearFormEditData(); // pData is invalid!
+ if (m_pViewShell)
+ m_pViewShell->ClearFormEditData(); // pData is invalid!
}
void ScFormulaDlg::clear()
{
@@ -582,10 +582,9 @@ void ScFormulaDlg::clear()
}
void ScFormulaDlg::switchBack()
{
- ScModule* pScMod = SC_MOD();
// back to the document
// (foreign doc could be above - #34222#)
- ScInputHandler* pHdl = pScMod->GetInputHdl();
+ ScInputHandler* pHdl = m_pViewShell->GetInputHandler();
if ( pHdl )
{
pHdl->ViewShellGone(nullptr); // -> get active view
@@ -610,8 +609,10 @@ void ScFormulaDlg::switchBack()
}
formula::FormEditData* ScFormulaDlg::getFormEditData() const
{
- ScModule* pScMod = SC_MOD();
- return pScMod->GetFormEditData();
+ ScTabViewShell* pViewShell = m_pViewShell;
+ if (pViewShell)
+ return pViewShell->GetFormEditData();
+ return nullptr;
}
void ScFormulaDlg::setCurrentFormula(const OUString& _sReplacement)
{
@@ -647,8 +648,10 @@ void ScFormulaDlg::getSelection(sal_Int32& _nStart, sal_Int32& _nEnd) const
}
OUString ScFormulaDlg::getCurrentFormula() const
{
- ScModule* pScMod = SC_MOD();
- return pScMod->InputGetFormulaStr();
+ ScFormEditData* pData = m_pViewShell->GetFormEditData();
+ if (pData && pData->GetInputHandler())
+ return pData->GetInputHandler()->GetFormString();
+ return "";
}
formula::IFunctionManager* ScFormulaDlg::getFunctionManager()
{
diff --git a/sc/source/ui/inc/formula.hxx b/sc/source/ui/inc/formula.hxx
index a40b55ecb9e1..c276fa49dccf 100644
--- a/sc/source/ui/inc/formula.hxx
+++ b/sc/source/ui/inc/formula.hxx
@@ -41,6 +41,7 @@ class ScFormulaDlg final : public formula::FormulaDlg,
ScDocument* m_pDoc;
ScAddress m_CursorPos;
+ ScTabViewShell* m_pViewShell;
mutable std::shared_ptr<ScCompiler> m_xCompiler;
public:
diff --git a/sc/source/ui/inc/tabvwsh.hxx b/sc/source/ui/inc/tabvwsh.hxx
index d35f1f67e1b6..2f17319efeaf 100644
--- a/sc/source/ui/inc/tabvwsh.hxx
+++ b/sc/source/ui/inc/tabvwsh.hxx
@@ -89,6 +89,7 @@ enum ObjectSelectionType
OST_Media
};
+class ScFormEditData;
class SC_DLLPUBLIC ScTabViewShell: public SfxViewShell, public ScDBFunc
{
private:
@@ -113,6 +114,7 @@ private:
std::unique_ptr<FmFormShell> pFormShell;
+ std::unique_ptr<ScFormEditData> mpFormEditData;
std::unique_ptr<ScInputHandler, o3tl::default_delete<ScInputHandler>> mpInputHandler; // for OLE input cell
std::unique_ptr<::editeng::SvxBorderLine> pCurFrameLine;
@@ -163,7 +165,6 @@ private:
bool mbInSwitch;
OUString maName;
OUString maScope;
-
private:
void Construct( TriState nForceDesignMode );
@@ -391,6 +392,10 @@ public:
static bool isAnyEditViewInRange(bool bColumns, SCCOLROW nStart, SCCOLROW nEnd);
css::uno::Reference<css::drawing::XShapes> getSelectedXShapes();
static css::uno::Reference<css::datatransfer::XTransferable2> GetClipData(vcl::Window* pWin);
+
+ void InitFormEditData();
+ void ClearFormEditData();
+ ScFormEditData* GetFormEditData() { return mpFormEditData.get(); }
};
#endif
diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx
index f62eecd2b881..364cbe888f37 100644
--- a/sc/source/ui/view/cellsh3.cxx
+++ b/sc/source/ui/view/cellsh3.cxx
@@ -45,6 +45,7 @@
#include <markdata.hxx>
#include <scabstdlg.hxx>
#include <columnspanset.hxx>
+#include <comphelper/lok.hxx>
#include <memory>
@@ -307,8 +308,8 @@ void ScCellShell::Execute( SfxRequest& rReq )
sal_uInt16 nId = SID_OPENDLG_FUNCTION;
SfxViewFrame* pViewFrm = pTabViewShell->GetViewFrame();
SfxChildWindow* pWnd = pViewFrm->GetChildWindow( nId );
-
- pScMod->SetRefDialog( nId, pWnd == nullptr );
+ bool bVis = comphelper::LibreOfficeKit::isActive() || pWnd == nullptr;
+ pScMod->SetRefDialog( nId, bVis );
rReq.Ignore();
}
break;
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index 696ca8babcf1..30e9def2e4a2 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -21,6 +21,7 @@
#include <scitems.hxx>
#include <editeng/eeitem.hxx>
+#include <formdata.hxx>
#include <sfx2/app.hxx>
#include <svx/dialogs.hrc>
@@ -1777,6 +1778,7 @@ ScTabViewShell::~ScTabViewShell()
pPivotShell.reset();
pAuditingShell.reset();
pCurFrameLine.reset();
+ mpFormEditData.reset();
mpInputHandler.reset();
pPivotSource.reset();
pDialogDPObject.reset();
diff --git a/sc/source/ui/view/tabvwsha.cxx b/sc/source/ui/view/tabvwsha.cxx
index d8d8c22a6615..815ae6745a80 100644
--- a/sc/source/ui/view/tabvwsha.cxx
+++ b/sc/source/ui/view/tabvwsha.cxx
@@ -737,7 +737,7 @@ void ScTabViewShell::ExecuteSave( SfxRequest& rReq )
// we will save the doc immediately afterwards, the modified state event
// is clobbered. To avoid that, we notify all views immediately of the
// modified state, apply the modification, then save the document.
- ScInputHandler* pHdl = SC_MOD()->GetInputHdl();
+ ScInputHandler* pHdl = GetInputHandler();
if (pHdl != nullptr && pHdl->GetModified())
SfxLokHelper::notifyAllViews(LOK_CALLBACK_STATE_CHANGED, ".uno:ModifiedStatus=true");
}
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index 85f7dba8d8ca..12d57de75962 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -59,6 +59,7 @@
#include <condformatdlg.hxx>
#include <xmlsourcedlg.hxx>
#include <condformatdlgitem.hxx>
+#include <formdata.hxx>
#include <RandomNumberGeneratorDialog.hxx>
#include <SamplingDialog.hxx>
@@ -740,4 +741,14 @@ const OUString ScTabViewShell::DoAutoSum(bool& rRangeFinder, bool& rSubTotal)
return aFormula;
}
+void ScTabViewShell::InitFormEditData()
+{
+ mpFormEditData.reset(new ScFormEditData);
+}
+
+void ScTabViewShell::ClearFormEditData()
+{
+ mpFormEditData.reset();
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */