starmath: Prefix n to SmCaretPos's Index

Change-Id: Ie1647d8143c4c38ebcf5111bffc291c26704c4c0
Reviewed-on: https://gerrit.libreoffice.org/32428
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Takeshi Abe <tabe@fixedpoint.jp>
This commit is contained in:
Takeshi Abe
2016-12-26 18:41:53 +09:00
parent fd3d7a1f2c
commit d6a7f7fe98
4 changed files with 32 additions and 31 deletions

View File

@@ -20,9 +20,10 @@
/** Representation of caret position with an equation */ /** Representation of caret position with an equation */
struct SmCaretPos{ struct SmCaretPos{
SmCaretPos(SmNode* selectedNode = nullptr, int iIndex = 0) { SmCaretPos(SmNode* selectedNode = nullptr, int iIndex = 0)
pSelectedNode = selectedNode; : pSelectedNode(selectedNode)
Index = iIndex; , nIndex(iIndex)
{
} }
/** Selected node */ /** Selected node */
SmNode* pSelectedNode; SmNode* pSelectedNode;
@@ -36,11 +37,11 @@ struct SmCaretPos{
*/ */
//TODO: Special cases for SmBlankNode is needed //TODO: Special cases for SmBlankNode is needed
//TODO: Consider forgetting about the todo above... As it's really unpleasant. //TODO: Consider forgetting about the todo above... As it's really unpleasant.
int Index; int nIndex;
/** True, if this is a valid caret position */ /** True, if this is a valid caret position */
bool IsValid() const { return pSelectedNode != nullptr; } bool IsValid() const { return pSelectedNode != nullptr; }
bool operator==(const SmCaretPos &pos) const { bool operator==(const SmCaretPos &pos) const {
return pos.pSelectedNode == pSelectedNode && Index == pos.Index; return pos.pSelectedNode == pSelectedNode && nIndex == pos.nIndex;
} }
/** Get the caret position after pNode, regardless of pNode /** Get the caret position after pNode, regardless of pNode
* *

View File

@@ -17,7 +17,7 @@ SmCaretPosGraph::~SmCaretPosGraph() = default;
SmCaretPosGraphEntry* SmCaretPosGraph::Add(SmCaretPos pos, SmCaretPosGraphEntry* SmCaretPosGraph::Add(SmCaretPos pos,
SmCaretPosGraphEntry* left) SmCaretPosGraphEntry* left)
{ {
SAL_WARN_IF( pos.Index < 0, "starmath", "Index shouldn't be -1!" ); SAL_WARN_IF( pos.nIndex < 0, "starmath", "nIndex shouldn't be -1!" );
auto entry = o3tl::make_unique<SmCaretPosGraphEntry>(pos, left, nullptr); auto entry = o3tl::make_unique<SmCaretPosGraphEntry>(pos, left, nullptr);
SmCaretPosGraphEntry* e = entry.get(); SmCaretPosGraphEntry* e = entry.get();
//Set Left and Right to point to the entry itself if they are NULL //Set Left and Right to point to the entry itself if they are NULL

View File

@@ -184,7 +184,7 @@ void SmCursor::DeletePrev(OutputDevice* pDev){
assert(nLineOffset >= 0); assert(nLineOffset >= 0);
//If we're in front of a node who's parent is a TABLE //If we're in front of a node who's parent is a TABLE
if(pLineParent->GetType() == NTABLE && mpPosition->CaretPos.Index == 0 && nLineOffset > 0){ if(pLineParent->GetType() == NTABLE && mpPosition->CaretPos.nIndex == 0 && nLineOffset > 0){
//Now we can merge with nLineOffset - 1 //Now we can merge with nLineOffset - 1
BeginEdit(); BeginEdit();
//Line to merge things into, so we can delete pLine //Line to merge things into, so we can delete pLine
@@ -342,13 +342,13 @@ SmNodeList::iterator SmCursor::FindPositionInLineList(SmNodeList* pLineList,
if((*it)->GetType() == NTEXT) if((*it)->GetType() == NTEXT)
{ {
//Split textnode if needed //Split textnode if needed
if(rCaretPos.Index > 0) if(rCaretPos.nIndex > 0)
{ {
SmTextNode* pText = static_cast<SmTextNode*>(rCaretPos.pSelectedNode); SmTextNode* pText = static_cast<SmTextNode*>(rCaretPos.pSelectedNode);
if (rCaretPos.Index == pText->GetText().getLength()) if (rCaretPos.nIndex == pText->GetText().getLength())
return ++it; return ++it;
OUString str1 = pText->GetText().copy(0, rCaretPos.Index); OUString str1 = pText->GetText().copy(0, rCaretPos.nIndex);
OUString str2 = pText->GetText().copy(rCaretPos.Index); OUString str2 = pText->GetText().copy(rCaretPos.nIndex);
pText->ChangeText(str1); pText->ChangeText(str1);
++it; ++it;
//Insert str2 as new text node //Insert str2 as new text node
@@ -1462,12 +1462,12 @@ bool SmCursor::IsAtTailOfBracket(SmBracketType eBracketType, SmBraceNode** ppBra
if (pNode->GetType() == NTEXT) { if (pNode->GetType() == NTEXT) {
SmTextNode* pTextNode = static_cast<SmTextNode*>(pNode); SmTextNode* pTextNode = static_cast<SmTextNode*>(pNode);
if (pos.Index < pTextNode->GetText().getLength()) { if (pos.nIndex < pTextNode->GetText().getLength()) {
// The cursor is on a text node and at the middle of it. // The cursor is on a text node and at the middle of it.
return false; return false;
} }
} else { } else {
if (pos.Index < 1) { if (pos.nIndex < 1) {
return false; return false;
} }
} }
@@ -1533,9 +1533,9 @@ bool SmCursor::IsAtTailOfBracket(SmBracketType eBracketType, SmBraceNode** ppBra
void SmCursor::MoveAfterBracket(SmBraceNode* pBraceNode) void SmCursor::MoveAfterBracket(SmBraceNode* pBraceNode)
{ {
mpPosition->CaretPos.pSelectedNode = pBraceNode; mpPosition->CaretPos.pSelectedNode = pBraceNode;
mpPosition->CaretPos.Index = 1; mpPosition->CaretPos.nIndex = 1;
mpAnchor->CaretPos.pSelectedNode = pBraceNode; mpAnchor->CaretPos.pSelectedNode = pBraceNode;
mpAnchor->CaretPos.Index = 1; mpAnchor->CaretPos.nIndex = 1;
RequestRepaint(); RequestRepaint();
} }

View File

@@ -176,7 +176,7 @@ SmCaretDrawingVisitor::SmCaretDrawingVisitor( OutputDevice& rDevice,
void SmCaretDrawingVisitor::Visit( SmTextNode* pNode ) void SmCaretDrawingVisitor::Visit( SmTextNode* pNode )
{ {
long i = maPos.Index; long i = maPos.nIndex;
mrDev.SetFont( pNode->GetFont( ) ); mrDev.SetFont( pNode->GetFont( ) );
@@ -212,7 +212,7 @@ void SmCaretDrawingVisitor::DefaultVisit( SmNode* pNode )
SmNode* pLine = SmCursor::FindTopMostNodeInLine( pNode ); SmNode* pLine = SmCursor::FindTopMostNodeInLine( pNode );
//Find coordinates //Find coordinates
long left = pNode->GetLeft( ) + maOffset.X( ) + ( maPos.Index == 1 ? pNode->GetWidth( ) : 0 ); long left = pNode->GetLeft( ) + maOffset.X( ) + ( maPos.nIndex == 1 ? pNode->GetWidth( ) : 0 );
long top = pLine->GetTop( ) + maOffset.Y( ); long top = pLine->GetTop( ) + maOffset.Y( );
long height = pLine->GetHeight( ); long height = pLine->GetHeight( );
long left_line = pLine->GetLeft( ) + maOffset.X( ); long left_line = pLine->GetLeft( ) + maOffset.X( );
@@ -241,7 +241,7 @@ void SmCaretPos2LineVisitor::Visit( SmTextNode* pNode )
//Save device state //Save device state
mpDev->Push( PushFlags::FONT | PushFlags::TEXTCOLOR ); mpDev->Push( PushFlags::FONT | PushFlags::TEXTCOLOR );
long i = maPos.Index; long i = maPos.nIndex;
mpDev->SetFont( pNode->GetFont( ) ); mpDev->SetFont( pNode->GetFont( ) );
@@ -260,7 +260,7 @@ void SmCaretPos2LineVisitor::DefaultVisit( SmNode* pNode )
{ {
//Vertical line ( code from SmCaretDrawingVisitor ) //Vertical line ( code from SmCaretDrawingVisitor )
Point p1 = pNode->GetTopLeft( ); Point p1 = pNode->GetTopLeft( );
if( maPos.Index == 1 ) if( maPos.nIndex == 1 )
p1.Move( pNode->GetWidth( ), 0 ); p1.Move( pNode->GetWidth( ), 0 );
maLine = SmCaretLine( p1.X( ), p1.Y( ), pNode->GetHeight( ) ); maLine = SmCaretLine( p1.X( ), p1.Y( ), pNode->GetHeight( ) );
@@ -528,10 +528,10 @@ SmSetSelectionVisitor::SmSetSelectionVisitor( SmCaretPos startPos, SmCaretPos en
//Visit root node, this is special as this node cannot be selected, but its children can! //Visit root node, this is special as this node cannot be selected, but its children can!
if(pTree->GetType() == NTABLE){ if(pTree->GetType() == NTABLE){
//Change state if maStartPos is in front of this node //Change state if maStartPos is in front of this node
if( maStartPos.pSelectedNode == pTree && maStartPos.Index == 0 ) if( maStartPos.pSelectedNode == pTree && maStartPos.nIndex == 0 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
//Change state if maEndPos is in front of this node //Change state if maEndPos is in front of this node
if( maEndPos.pSelectedNode == pTree && maEndPos.Index == 0 ) if( maEndPos.pSelectedNode == pTree && maEndPos.nIndex == 0 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
SAL_WARN_IF(mbSelecting, "starmath", "Caret positions needed to set mbSelecting about, shouldn't be possible!"); SAL_WARN_IF(mbSelecting, "starmath", "Caret positions needed to set mbSelecting about, shouldn't be possible!");
@@ -575,10 +575,10 @@ void SmSetSelectionVisitor::SetSelectedOnAll( SmNode* pSubTree, bool IsSelected
void SmSetSelectionVisitor::DefaultVisit( SmNode* pNode ) { void SmSetSelectionVisitor::DefaultVisit( SmNode* pNode ) {
//Change state if maStartPos is in front of this node //Change state if maStartPos is in front of this node
if( maStartPos.pSelectedNode == pNode && maStartPos.Index == 0 ) if( maStartPos.pSelectedNode == pNode && maStartPos.nIndex == 0 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
//Change state if maEndPos is in front of this node //Change state if maEndPos is in front of this node
if( maEndPos.pSelectedNode == pNode && maEndPos.Index == 0 ) if( maEndPos.pSelectedNode == pNode && maEndPos.nIndex == 0 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
//Cache current state //Cache current state
@@ -621,12 +621,12 @@ void SmSetSelectionVisitor::DefaultVisit( SmNode* pNode ) {
} }
//Change state if maStartPos is after this node //Change state if maStartPos is after this node
if( maStartPos.pSelectedNode == pNode && maStartPos.Index == 1 ) if( maStartPos.pSelectedNode == pNode && maStartPos.nIndex == 1 )
{ {
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
} }
//Change state if maEndPos is after of this node //Change state if maEndPos is after of this node
if( maEndPos.pSelectedNode == pNode && maEndPos.Index == 1 ) if( maEndPos.pSelectedNode == pNode && maEndPos.nIndex == 1 )
{ {
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
} }
@@ -635,10 +635,10 @@ void SmSetSelectionVisitor::DefaultVisit( SmNode* pNode ) {
void SmSetSelectionVisitor::VisitCompositionNode( SmStructureNode* pNode ) void SmSetSelectionVisitor::VisitCompositionNode( SmStructureNode* pNode )
{ {
//Change state if maStartPos is in front of this node //Change state if maStartPos is in front of this node
if( maStartPos.pSelectedNode == pNode && maStartPos.Index == 0 ) if( maStartPos.pSelectedNode == pNode && maStartPos.nIndex == 0 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
//Change state if maEndPos is in front of this node //Change state if maEndPos is in front of this node
if( maEndPos.pSelectedNode == pNode && maEndPos.Index == 0 ) if( maEndPos.pSelectedNode == pNode && maEndPos.nIndex == 0 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
//Cache current state //Cache current state
@@ -656,10 +656,10 @@ void SmSetSelectionVisitor::VisitCompositionNode( SmStructureNode* pNode )
pNode->SetSelected( WasSelecting && mbSelecting ); pNode->SetSelected( WasSelecting && mbSelecting );
//Change state if maStartPos is after this node //Change state if maStartPos is after this node
if( maStartPos.pSelectedNode == pNode && maStartPos.Index == 1 ) if( maStartPos.pSelectedNode == pNode && maStartPos.nIndex == 1 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
//Change state if maEndPos is after of this node //Change state if maEndPos is after of this node
if( maEndPos.pSelectedNode == pNode && maEndPos.Index == 1 ) if( maEndPos.pSelectedNode == pNode && maEndPos.nIndex == 1 )
mbSelecting = !mbSelecting; mbSelecting = !mbSelecting;
} }
@@ -667,9 +667,9 @@ void SmSetSelectionVisitor::Visit( SmTextNode* pNode ) {
long i1 = -1, long i1 = -1,
i2 = -1; i2 = -1;
if( maStartPos.pSelectedNode == pNode ) if( maStartPos.pSelectedNode == pNode )
i1 = maStartPos.Index; i1 = maStartPos.nIndex;
if( maEndPos.pSelectedNode == pNode ) if( maEndPos.pSelectedNode == pNode )
i2 = maEndPos.Index; i2 = maEndPos.nIndex;
long start, end; long start, end;
pNode->SetSelected(true); pNode->SetSelected(true);