/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. *
*/
void AccessibilityIssue::gotoIssue() const
{ if (!m_pDoc) return;
/* Copying the issueobject because the EnterSelFrameMode ends up calling some sidebar functions that recreate the list of a11y issues and the AccessibilityIssue objects are stored by value in a vector
and the vector is being mutated there and so the instance is overwritten with something else. */
AccessibilityIssue TempIssueObject(*this);
switch (TempIssueObject.m_eIssueObject)
{ case IssueObject::LINKED: case IssueObject::GRAPHIC: case IssueObject::OLE: case IssueObject::TEXTFRAME: case IssueObject::HYPERLINKFLY:
{ bool bSelected
= pWrtShell->GotoFly(UIName(TempIssueObject.m_sObjectID), FLYCNTTYPE_ALL, true);
// bring issue to attention if (bSelected)
{ if (const SwFlyFrameFormat* pFlyFormat
= m_pDoc->FindFlyByName(UIName(TempIssueObject.m_sObjectID), SwNodeType::NONE))
{ if (SwFlyFrame* pFlyFrame
= SwIterator<SwFlyFrame, SwFormat>(*pFlyFormat).First())
{
pWrtShell->GetView().BringToAttention(pFlyFrame->getFrameArea().SVRect());
}
}
}
if (bSelected && pWrtShell->IsFrameSelected())
{
pWrtShell->HideCursor();
pWrtShell->EnterSelFrameMode();
}
if (!bSelected && TempIssueObject.m_eIssueObject == IssueObject::TEXTFRAME)
{
pWrtShell->GotoDrawingObject(TempIssueObject.m_sObjectID);
// bring issue to attention if (SdrPage* pPage
= pWrtShell->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0))
{ if (SdrObject* pObj = pPage->GetObjByName(TempIssueObject.m_sObjectID))
{
pWrtShell->GetView().BringToAttention(pObj->GetLogicRect());
}
}
} if (comphelper::LibreOfficeKit::isActive())
pWrtShell->ShowCursor();
} break; case IssueObject::SHAPE:
{ if (pWrtShell->IsFrameSelected())
pWrtShell->LeaveSelFrameMode();
pWrtShell->GotoDrawingObject(TempIssueObject.m_sObjectID);
// bring issue to attention if (SdrPage* pPage
= pWrtShell->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0))
{ if (SdrObject* pObj = pPage->GetObjByName(TempIssueObject.m_sObjectID))
{
pWrtShell->GetView().BringToAttention(pObj->GetLogicRect());
}
}
if (comphelper::LibreOfficeKit::isActive())
pWrtShell->ShowCursor();
} break; case IssueObject::FORM:
{ bool bIsDesignMode = pWrtShell->GetView().GetFormShell()->IsDesignMode(); if (bIsDesignMode || (!bIsDesignMode && pWrtShell->WarnSwitchToDesignModeDialog()))
{ if (!bIsDesignMode)
pWrtShell->GetView().GetFormShell()->SetDesignMode(true);
pWrtShell->GotoDrawingObject(TempIssueObject.m_sObjectID);
// bring issue to attention if (SdrPage* pPage
= pWrtShell->getIDocumentDrawModelAccess().GetDrawModel()->GetPage(0))
{ if (SdrObject* pObj = pPage->GetObjByName(TempIssueObject.m_sObjectID))
{
pWrtShell->GetView().BringToAttention(pObj->GetLogicRect());
}
}
if (comphelper::LibreOfficeKit::isActive())
pWrtShell->ShowCursor();
}
} break; case IssueObject::TABLE:
{
pWrtShell->GotoTable(UIName(TempIssueObject.m_sObjectID));
// bring issue to attention if (SwTable* pTmpTable
= SwTable::FindTable(TempIssueObject.m_pDoc->FindTableFormatByName(
UIName(TempIssueObject.m_sObjectID))))
{ if (SwTableNode* pTableNode = pTmpTable->GetTableNode())
{
pWrtShell->GetView().BringToAttention(pTableNode);
}
}
// bring issue to attention
pWrtShell->GetView().BringToAttention(pContentNode);
if (comphelper::LibreOfficeKit::isActive())
pWrtShell->ShowCursor();
} break; case IssueObject::FOOTENDNOTE:
{ if (TempIssueObject.m_pTextFootnote)
{
pWrtShell->GotoFootnoteAnchor(*TempIssueObject.m_pTextFootnote);
if (m_sObjectID.isEmpty())
{ // open the dialog "Tools/Options/Languages and Locales - General"
uno::Sequence<beans::PropertyValue> aArgs{ comphelper::makePropertyValue(
u"Language"_ustr, u"*"_ustr) };
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.