tdf#117436 - Set text cell to accommodate potential multiline cells
Set text cell to accommodate potential multline cells during the copy and paste process of a table from Base to Calc. Change-Id: I8032627aee8190b0956be80d64144dc4d7fb07e6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/185092 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
This commit is contained in:
parent
9bc5b89c14
commit
e695245b62
@ -1212,7 +1212,9 @@ public:
|
|||||||
* Call this if you are not sure whether to put this as an edit text or a
|
* Call this if you are not sure whether to put this as an edit text or a
|
||||||
* simple text.
|
* simple text.
|
||||||
*/
|
*/
|
||||||
SC_DLLPUBLIC void SetTextCell( const ScAddress& rPos, const OUString& rStr );
|
SC_DLLPUBLIC void SetTextCell(const ScAddress& rPos, const OUString& rStr,
|
||||||
|
const ScSetStringParam* pParam = nullptr);
|
||||||
|
|
||||||
void SetEmptyCell( const ScAddress& rPos );
|
void SetEmptyCell( const ScAddress& rPos );
|
||||||
SC_DLLPUBLIC void SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
|
SC_DLLPUBLIC void SetValue( SCCOL nCol, SCROW nRow, SCTAB nTab, const double& rVal );
|
||||||
SC_DLLPUBLIC void SetValue( const ScAddress& rPos, double fVal );
|
SC_DLLPUBLIC void SetValue( const ScAddress& rPos, double fVal );
|
||||||
|
@ -3502,7 +3502,9 @@ SCROW ScDocument::GetFirstEditTextRow( const ScRange& rRange ) const
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScDocument::SetTextCell( const ScAddress& rPos, const OUString& rStr )
|
|
||||||
|
void ScDocument::SetTextCell(const ScAddress& rPos, const OUString& rStr,
|
||||||
|
const ScSetStringParam* pParam)
|
||||||
{
|
{
|
||||||
if (ScTable* pTable = FetchTable(rPos.Tab()))
|
if (ScTable* pTable = FetchTable(rPos.Tab()))
|
||||||
{
|
{
|
||||||
@ -3514,9 +3516,14 @@ void ScDocument::SetTextCell( const ScAddress& rPos, const OUString& rStr )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ScSetStringParam aParam;
|
if (pParam)
|
||||||
aParam.setTextInput();
|
pTable->SetString(rPos.Col(), rPos.Row(), rPos.Tab(), rStr, pParam);
|
||||||
pTable->SetString(rPos.Col(), rPos.Row(), rPos.Tab(), rStr, &aParam);
|
else
|
||||||
|
{
|
||||||
|
ScSetStringParam aParam;
|
||||||
|
aParam.setTextInput();
|
||||||
|
pTable->SetString(rPos.Col(), rPos.Row(), rPos.Tab(), rStr, &aParam);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -397,11 +397,6 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu
|
|||||||
pFormatter->ChangeIntl( LANGUAGE_SYSTEM);
|
pFormatter->ChangeIntl( LANGUAGE_SYSTEM);
|
||||||
}
|
}
|
||||||
|
|
||||||
// #105460#, #i4180# String cells can't contain tabs or linebreaks
|
|
||||||
// -> replace with spaces
|
|
||||||
aStr = aStr.replaceAll( "\t", " " );
|
|
||||||
aStr = aStr.replaceAll( "\n", " " );
|
|
||||||
|
|
||||||
if (bTextFormat)
|
if (bTextFormat)
|
||||||
{
|
{
|
||||||
aParam.mbDetectNumberFormat = false;
|
aParam.mbDetectNumberFormat = false;
|
||||||
@ -414,7 +409,8 @@ void ScEEImport::WriteToDocument( bool bSizeColsRows, double nOutputFactor, SvNu
|
|||||||
aParam.mbDetectScientificNumberFormat = bConvertScientific;
|
aParam.mbDetectScientificNumberFormat = bConvertScientific;
|
||||||
}
|
}
|
||||||
|
|
||||||
mpDoc->SetString(nCol, nRow, nTab, aStr, &aParam);
|
// tdf#117436 - set text cell to accommodate potential multiline cells
|
||||||
|
mpDoc->SetTextCell(ScAddress(nCol, nRow, nTab), aStr, &aParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (std::unique_ptr<EditTextObject> pTextObject = IsValidSel(*mpEngine, pE->aSel) ? mpEngine->CreateTextObject(pE->aSel) : nullptr)
|
else if (std::unique_ptr<EditTextObject> pTextObject = IsValidSel(*mpEngine, pE->aSel) ? mpEngine->CreateTextObject(pE->aSel) : nullptr)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user