summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-10-06 10:01:45 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-10-06 10:01:45 +0200
commitf9fe7235e1e848913b76726789776ed5d67fb555 (patch)
treee123fdd6a360103b10b5b87f712bb307d41eca8a
parent89d39bc100aabf5dccbe77c0b5c0c85736e85b39 (diff)
Hold ScAccessibleDocument::mpAccessibleSpreadsheet by rtl::Reference
Change-Id: If5b0c7603bb69697a53954b6adfd5ff91d196503
-rw-r--r--sc/source/ui/Accessibility/AccessibleDocument.cxx33
-rw-r--r--sc/source/ui/inc/AccessibleDocument.hxx2
2 files changed, 16 insertions, 19 deletions
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index 608fd6d71185..7740c1963f52 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -1404,7 +1404,6 @@ ScAccessibleDocument::ScAccessibleDocument(
: ScAccessibleDocumentBase(rxParent),
mpViewShell(pViewShell),
meSplitPos(eSplitPos),
- mpAccessibleSpreadsheet(NULL),
mpChildrenShapes(NULL),
mpTempAccEdit(NULL),
mbCompleteSheetSelected(false)
@@ -1519,7 +1518,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
{
if (mxTempAcc.is() && mpTempAccEdit)
mpTempAccEdit->LostFocus();
- else if (mpAccessibleSpreadsheet)
+ else if (mpAccessibleSpreadsheet.is())
mpAccessibleSpreadsheet->LostFocus();
else
CommitFocusLost();
@@ -1549,7 +1548,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
{
if (mxTempAcc.is() && mpTempAccEdit)
mpTempAccEdit->GotFocus();
- else if (mpAccessibleSpreadsheet)
+ else if (mpAccessibleSpreadsheet.is())
mpAccessibleSpreadsheet->GotFocus();
else
CommitFocusGained();
@@ -1561,7 +1560,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
const SfxSimpleHint* pSimpleHint = static_cast<const SfxSimpleHint*>(&rHint);
// only notify if child exist, otherwise it is not necessary
if ((pSimpleHint->GetId() == SC_HINT_ACC_TABLECHANGED) &&
- mpAccessibleSpreadsheet)
+ mpAccessibleSpreadsheet.is())
{
FreeAccessibleSpreadsheet();
if (mpChildrenShapes)
@@ -1581,7 +1580,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
aEvent.Source = uno::Reference< XAccessibleContext >(this);
CommitChange(aEvent); // all children changed
- if (mpAccessibleSpreadsheet)
+ if (mpAccessibleSpreadsheet.is())
mpAccessibleSpreadsheet->FireFirstCellFocus();
}
else if (pSimpleHint->GetId() == SC_HINT_ACC_MAKEDRAWLAYER)
@@ -1604,7 +1603,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
AddChild(xAcc, true);
- if (mpAccessibleSpreadsheet)
+ if (mpAccessibleSpreadsheet.is())
mpAccessibleSpreadsheet->LostFocus();
else
CommitFocusLost();
@@ -1622,7 +1621,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
mpTempAccEdit = NULL;
RemoveChild(mxTempAcc, true);
- if (mpAccessibleSpreadsheet && mpViewShell && mpViewShell->IsActive())
+ if (mpAccessibleSpreadsheet.is() && mpViewShell && mpViewShell->IsActive())
mpAccessibleSpreadsheet->GotFocus();
else if( mpViewShell && mpViewShell->IsActive())
CommitFocusGained();
@@ -1643,12 +1642,12 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
CommitChange(aEvent);
- if (mpAccessibleSpreadsheet)
+ if (mpAccessibleSpreadsheet.is())
mpAccessibleSpreadsheet->BoundingBoxChanged();
- if (mpAccessibleSpreadsheet && mpViewShell && mpViewShell->IsActive())
+ if (mpAccessibleSpreadsheet.is() && mpViewShell && mpViewShell->IsActive())
mpAccessibleSpreadsheet->FireFirstCellFocus();
}
- else if (mpAccessibleSpreadsheet)
+ else if (mpAccessibleSpreadsheet.is())
{
mpAccessibleSpreadsheet->VisAreaChanged();
}
@@ -1665,7 +1664,7 @@ void SAL_CALL ScAccessibleDocument::selectionChanged( const lang::EventObject& /
throw (uno::RuntimeException, std::exception)
{
bool bSelectionChanged(false);
- if (mpAccessibleSpreadsheet)
+ if (mpAccessibleSpreadsheet.is())
{
bool bOldSelected(mbCompleteSheetSelected);
mbCompleteSheetSelected = IsTableSelected();
@@ -2218,23 +2217,21 @@ SCTAB ScAccessibleDocument::getVisibleTable() const
uno::Reference < XAccessible >
ScAccessibleDocument::GetAccessibleSpreadsheet()
{
- if (!mpAccessibleSpreadsheet && mpViewShell)
+ if (!mpAccessibleSpreadsheet.is() && mpViewShell)
{
mpAccessibleSpreadsheet = new ScAccessibleSpreadsheet(this, mpViewShell, getVisibleTable(), meSplitPos);
- mpAccessibleSpreadsheet->acquire();
mpAccessibleSpreadsheet->Init();
mbCompleteSheetSelected = IsTableSelected();
}
- return mpAccessibleSpreadsheet;
+ return mpAccessibleSpreadsheet.get();
}
void ScAccessibleDocument::FreeAccessibleSpreadsheet()
{
- if (mpAccessibleSpreadsheet)
+ if (mpAccessibleSpreadsheet.is())
{
mpAccessibleSpreadsheet->dispose();
- mpAccessibleSpreadsheet->release();
- mpAccessibleSpreadsheet = NULL;
+ mpAccessibleSpreadsheet.clear();
}
}
@@ -2481,7 +2478,7 @@ com::sun::star::uno::Sequence< com::sun::star::uno::Any > ScAccessibleDocument::
{
return aSeq;
}
- else if( mpAccessibleSpreadsheet )
+ else if( mpAccessibleSpreadsheet.is() )
{
uno::Reference < XAccessible > xFindCellAcc = mpAccessibleSpreadsheet->GetActiveCell();
// add xFindCellAcc to the return the Sequence
diff --git a/sc/source/ui/inc/AccessibleDocument.hxx b/sc/source/ui/inc/AccessibleDocument.hxx
index 6e45caf9958e..1c1b7539cafd 100644
--- a/sc/source/ui/inc/AccessibleDocument.hxx
+++ b/sc/source/ui/inc/AccessibleDocument.hxx
@@ -260,7 +260,7 @@ protected:
private:
ScTabViewShell* mpViewShell;
ScSplitPos meSplitPos;
- ScAccessibleSpreadsheet* mpAccessibleSpreadsheet;
+ rtl::Reference<ScAccessibleSpreadsheet> mpAccessibleSpreadsheet;
ScChildrenShapes* mpChildrenShapes;
ScAccessibleEditObject* mpTempAccEdit;
com::sun::star::uno::Reference<com::sun::star::accessibility::XAccessible> mxTempAcc;