Kaydet (Commit) 4dbce307 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Actually let's do these earlier so we can bail out early.

Change-Id: I1903efe4dba876e4d373cc329c66595840d7be81
üst 676c5a2a
......@@ -1411,6 +1411,9 @@ bool ScDBDocFunc::RemovePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi)
ScDocShellModificator aModificator(rDocShell);
WaitObject aWait(rDocShell.GetActiveDialogParent());
if (!isEditable(rDocShell, rDPObj.GetOutRange(), bApi))
return false;
SAL_WNODEPRECATED_DECLARATIONS_PUSH
std::auto_ptr<ScDocument> pOldUndoDoc;
std::auto_ptr<ScDPObject> pUndoDPObj;
......@@ -1423,9 +1426,6 @@ bool ScDBDocFunc::RemovePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi)
if (bRecord && !pDoc->IsUndoEnabled())
bRecord = false;
if (!isEditable(rDocShell, rDPObj.GetOutRange(), bApi))
return false;
// delete table
ScRange aRange = rDPObj.GetOutRange();
......@@ -1468,6 +1468,10 @@ bool ScDBDocFunc::CreatePivotTable(const ScDPObject& rDPObj, bool bRecord, bool
ScDocShellModificator aModificator(rDocShell);
WaitObject aWait(rDocShell.GetActiveDialogParent());
// At least one cell in the output range should be editable. Check in advance.
if (!isEditable(rDocShell, ScRange(rDPObj.GetOutRange().aStart), bApi))
return false;
SAL_WNODEPRECATED_DECLARATIONS_PUSH
std::auto_ptr<ScDocument> pNewUndoDoc;
SAL_WNODEPRECATED_DECLARATIONS_POP
......@@ -1476,10 +1480,6 @@ bool ScDBDocFunc::CreatePivotTable(const ScDPObject& rDPObj, bool bRecord, bool
if (bRecord && !pDoc->IsUndoEnabled())
bRecord = false;
// At least one cell in the output range should be editable. Check in advance.
if (!isEditable(rDocShell, ScRange(rDPObj.GetOutRange().aStart), bApi))
return false;
// output range must be set at pNewObj
SAL_WNODEPRECATED_DECLARATIONS_PUSH
std::auto_ptr<ScDPObject> pDestObj(new ScDPObject(rDPObj));
......@@ -1578,6 +1578,9 @@ bool ScDBDocFunc::UpdatePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi)
ScDocShellModificator aModificator( rDocShell );
WaitObject aWait( rDocShell.GetActiveDialogParent() );
if (!isEditable(rDocShell, rDPObj.GetOutRange(), bApi))
return false;
SAL_WNODEPRECATED_DECLARATIONS_PUSH
std::auto_ptr<ScDocument> pOldUndoDoc;
std::auto_ptr<ScDocument> pNewUndoDoc;
......@@ -1589,9 +1592,6 @@ bool ScDBDocFunc::UpdatePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi)
if (bRecord && !pDoc->IsUndoEnabled())
bRecord = false;
if (!isEditable(rDocShell, rDPObj.GetOutRange(), bApi))
return false;
if (bRecord)
{
ScRange aRange = rDPObj.GetOutRange();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment