[Libreoffice-commits] core.git: sc/inc sc/source
Caolán McNamara
caolanm at redhat.com
Wed Jul 27 10:52:57 UTC 2016
sc/inc/postit.hxx | 2 ++
sc/source/core/data/postit.cxx | 9 +++++++++
sc/source/core/data/table6.cxx | 23 +++++++++++++++++++----
3 files changed, 30 insertions(+), 4 deletions(-)
New commits:
commit 7c84a219e3cc8d623826343f547ba8adacca6d56
Author: Caolán McNamara <caolanm at redhat.com>
Date: Wed Jul 27 11:32:49 2016 +0100
Resolves: tdf#65334 cannot search in cell notes
regression since...
commit c06dbbe7594c2a0b5a5b19f8e183d9c421e6e094
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date: Thu Feb 23 23:36:49 2012 +0100
remove mpNote from ScBaseCell
and requires restoring some code subsequently removed in
commit a1a1131c16227327d17bcf5ad2a5209ddc0f01a1
Date: Sun Mar 4 15:27:27 2012 +0800
Remove unused code
Change-Id: If931c3162cacaeb126e730e3e79c1c47be4ce434
diff --git a/sc/inc/postit.hxx b/sc/inc/postit.hxx
index 8a7dec8..fb962442 100644
--- a/sc/inc/postit.hxx
+++ b/sc/inc/postit.hxx
@@ -118,6 +118,8 @@ public:
/** Returns the caption text of this note. */
OUString GetText() const;
+ /** Returns true, if the caption text of this note contains line breaks. */
+ bool HasMultiLineText() const;
/** Changes the caption text of this note. All text formatting will be lost. */
void SetText( const ScAddress& rPos, const OUString& rText );
diff --git a/sc/source/core/data/postit.cxx b/sc/source/core/data/postit.cxx
index 8eb8331..64f47a5 100644
--- a/sc/source/core/data/postit.cxx
+++ b/sc/source/core/data/postit.cxx
@@ -562,6 +562,15 @@ OUString ScPostIt::GetText() const
return OUString();
}
+bool ScPostIt::HasMultiLineText() const
+{
+ if( const EditTextObject* pEditObj = GetEditTextObject() )
+ return pEditObj->GetParagraphCount() > 1;
+ if( maNoteData.mxInitData.get() )
+ return maNoteData.mxInitData->maSimpleText.indexOf( '\n' ) >= 0;
+ return false;
+}
+
void ScPostIt::SetText( const ScAddress& rPos, const OUString& rText )
{
CreateCaptionFromInitData( rPos );
diff --git a/sc/source/core/data/table6.cxx b/sc/source/core/data/table6.cxx
index 2c63ed4..b5a4499 100644
--- a/sc/source/core/data/table6.cxx
+++ b/sc/source/core/data/table6.cxx
@@ -73,6 +73,7 @@ bool ScTable::SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRo
return false;
bool bMultiLine = false;
+ ScPostIt* pNote = nullptr;
CellType eCellType = aCell.meType;
switch (rSearchItem.GetCellType())
{
@@ -89,8 +90,8 @@ bool ScTable::SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRo
else
aCol[nCol].GetString( nRow, aString );
}
+ break;
}
- break;
case SvxSearchCellType::VALUE:
if ( eCellType == CELLTYPE_EDIT )
bMultiLine = lcl_GetTextWithBreaks(*aCell.mpEditText, pDocument, aString);
@@ -103,7 +104,15 @@ bool ScTable::SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRo
}
break;
case SvxSearchCellType::NOTE:
- break; // don't search this case here
+ {
+ pNote = aCol[nCol].GetCellNote(nRow);
+ if (pNote)
+ {
+ aString = pNote->GetText();
+ bMultiLine = pNote->HasMultiLineText();
+ }
+ break;
+ }
default:
break;
}
@@ -212,8 +221,14 @@ bool ScTable::SearchCell(const SvxSearchItem& rSearchItem, SCCOL nCol, SCROW nRo
}
}
while (bRepeat);
-
- if ( cMatrixFlag != MM_NONE )
+ if (rSearchItem.GetCellType() == SvxSearchCellType::NOTE)
+ {
+ // NB: rich text format is lost.
+ // This is also true of Cells.
+ if (pNote)
+ pNote->SetText( ScAddress( nCol, nRow, nTab ), aString );
+ }
+ else if ( cMatrixFlag != MM_NONE )
{ // don't split Matrix
if ( aString.getLength() > 2 )
{ // remove {} here so that "{=" can be replaced by "{=..."
More information about the Libreoffice-commits
mailing list