Kaydet (Commit) e2170dd7 authored tarafından Markus Mohrhard's avatar Markus Mohrhard

prevent to create cond formats with empty range, fdo#58778

Change-Id: I54bac843dc60c419c23c6d3f22c8d2f4b5805327
üst c106167f
...@@ -467,12 +467,20 @@ void ScCondFormatDlg::SetReference(const ScRange& rRef, ScDocument*) ...@@ -467,12 +467,20 @@ void ScCondFormatDlg::SetReference(const ScRange& rRef, ScDocument*)
ScConditionalFormat* ScCondFormatDlg::GetConditionalFormat() const ScConditionalFormat* ScCondFormatDlg::GetConditionalFormat() const
{ {
rtl::OUString aRangeStr = maEdRange.GetText(); rtl::OUString aRangeStr = maEdRange.GetText();
if(aRangeStr.isEmpty())
return NULL;
ScRangeList aRange; ScRangeList aRange;
sal_uInt16 nFlags = aRange.Parse(aRangeStr, mpDoc, SCA_VALID, mpDoc->GetAddressConvention(), maPos.Tab()); sal_uInt16 nFlags = aRange.Parse(aRangeStr, mpDoc, SCA_VALID, mpDoc->GetAddressConvention(), maPos.Tab());
ScConditionalFormat* pFormat = maCondFormList.GetConditionalFormat(); ScConditionalFormat* pFormat = maCondFormList.GetConditionalFormat();
if(nFlags & SCA_VALID && !aRange.empty() && pFormat) if(nFlags & SCA_VALID && !aRange.empty() && pFormat)
pFormat->AddRange(aRange); pFormat->AddRange(aRange);
else
{
delete pFormat;
pFormat = NULL;
}
return pFormat; return pFormat;
} }
......
...@@ -275,14 +275,14 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl) ...@@ -275,14 +275,14 @@ IMPL_LINK_NOARG(ScCondFormatManagerDlg, AddBtnHdl)
if(pDlg->Execute() == RET_OK) if(pDlg->Execute() == RET_OK)
{ {
ScConditionalFormat* pNewFormat = pDlg->GetConditionalFormat(); ScConditionalFormat* pNewFormat = pDlg->GetConditionalFormat();
if(!pNewFormat) if(pNewFormat)
return 0; {
mpFormatList->InsertNew(pNewFormat);
mpFormatList->InsertNew(pNewFormat); pNewFormat->SetKey(FindKey(mpFormatList));
pNewFormat->SetKey(FindKey(mpFormatList)); maCtrlManager.Update();
maCtrlManager.Update();
mbModified = true; mbModified = true;
}
} }
Show(true, 0); Show(true, 0);
pScMod->SetRefDialog( nId, false ); pScMod->SetRefDialog( nId, false );
......
...@@ -1886,7 +1886,10 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) ...@@ -1886,7 +1886,10 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
if( pCondFormatDlg->Execute() == RET_OK ) if( pCondFormatDlg->Execute() == RET_OK )
{ {
ScConditionalFormat* pFormat = pCondFormatDlg->GetConditionalFormat(); ScConditionalFormat* pFormat = pCondFormatDlg->GetConditionalFormat();
pData->GetDocShell()->GetDocFunc().ReplaceConditionalFormat(nKey, pFormat, aPos.Tab(), pFormat->GetRange()); if(pFormat)
pData->GetDocShell()->GetDocFunc().ReplaceConditionalFormat(nKey, pFormat, aPos.Tab(), pFormat->GetRange());
else
pData->GetDocShell()->GetDocFunc().ReplaceConditionalFormat(nKey, NULL, aPos.Tab(), ScRangeList());
} }
pScMod->SetRefDialog( nId, false ); pScMod->SetRefDialog( nId, false );
......
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