summaryrefslogtreecommitdiff
path: root/reportdesign/source
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2022-09-06 18:44:10 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-09-07 09:38:15 +0200
commitf5c6ef40dd494f6984c6ed784fccc02806999836 (patch)
tree5c72dfae90994af53b96f067b55f9fca41156cdd /reportdesign/source
parente801c211911deb673c8f75b5072a58c88832b720 (diff)
OXReportControllerObserver does not need a pimpl
it is module private Change-Id: I50bd06aa1b75d7561aee788c69c0482c6293db16 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139540 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'reportdesign/source')
-rw-r--r--reportdesign/source/ui/inc/ReportControllerObserver.hxx14
-rw-r--r--reportdesign/source/ui/report/ReportControllerObserver.cxx44
2 files changed, 21 insertions, 37 deletions
diff --git a/reportdesign/source/ui/inc/ReportControllerObserver.hxx b/reportdesign/source/ui/inc/ReportControllerObserver.hxx
index d77fb3f2ef78..ac317e13d427 100644
--- a/reportdesign/source/ui/inc/ReportControllerObserver.hxx
+++ b/reportdesign/source/ui/inc/ReportControllerObserver.hxx
@@ -21,14 +21,15 @@
#include <com/sun/star/beans/XPropertyChangeListener.hpp>
#include <com/sun/star/beans/PropertyChangeEvent.hpp>
+#include <com/sun/star/container/XChild.hpp>
#include <cppuhelper/implbase.hxx>
-
-#include <memory>
-
+#include <osl/mutex.hxx>
#include <tools/link.hxx>
-
#include "FormattedFieldBeautifier.hxx"
#include "FixedTextColor.hxx"
+#include <memory>
+#include <vector>
+
class VclSimpleEvent;
@@ -45,8 +46,9 @@ namespace rptui
>
{
- const ::std::unique_ptr<OXReportControllerObserverImpl> m_pImpl;
-
+ ::std::vector< css::uno::Reference< css::container::XChild> > m_aSections;
+ ::osl::Mutex m_aMutex;
+ oslInterlockedCount m_nLocks;
FormattedFieldBeautifier m_aFormattedFieldBeautifier;
FixedTextColor m_aFixedTextColor;
diff --git a/reportdesign/source/ui/report/ReportControllerObserver.cxx b/reportdesign/source/ui/report/ReportControllerObserver.cxx
index 8ad7540886cd..b05d3b3d1359 100644
--- a/reportdesign/source/ui/report/ReportControllerObserver.cxx
+++ b/reportdesign/source/ui/report/ReportControllerObserver.cxx
@@ -23,7 +23,6 @@
#include <ReportControllerObserver.hxx>
#include <ReportController.hxx>
-#include <osl/mutex.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
@@ -40,27 +39,10 @@ namespace rptui
typedef std::map<OUString, bool> AllProperties;
typedef std::map<uno::Reference< beans::XPropertySet >, AllProperties> PropertySetInfoCache;
-class OXReportControllerObserverImpl
-{
-public:
- ::std::vector< uno::Reference< container::XChild> > m_aSections;
- ::osl::Mutex m_aMutex;
- oslInterlockedCount m_nLocks;
-
- explicit OXReportControllerObserverImpl();
- OXReportControllerObserverImpl(const OXReportControllerObserverImpl&) = delete;
- OXReportControllerObserverImpl& operator=(const OXReportControllerObserverImpl&) = delete;
-};
-
-
- OXReportControllerObserverImpl::OXReportControllerObserverImpl()
- :m_nLocks(0)
- {
- }
OXReportControllerObserver::OXReportControllerObserver(const OReportController& _rController)
- :m_pImpl(new OXReportControllerObserverImpl )
+ :m_nLocks(0)
,m_aFormattedFieldBeautifier(_rController)
,m_aFixedTextColor(_rController)
{
@@ -91,7 +73,7 @@ public:
// send all Section Objects a 'tingle'
// maybe they need a change in format, color, etc
- for (const uno::Reference<container::XChild>& xChild : m_pImpl->m_aSections)
+ for (const uno::Reference<container::XChild>& xChild : m_aSections)
{
if (xChild.is())
{
@@ -132,15 +114,15 @@ public:
void OXReportControllerObserver::Clear()
{
OEnvLock aLock(*this);
- m_pImpl->m_aSections.clear();
+ m_aSections.clear();
}
// XPropertyChangeListener
void SAL_CALL OXReportControllerObserver::propertyChange(const beans::PropertyChangeEvent& _rEvent)
{
- osl::MutexGuard aGuard( m_pImpl->m_aMutex );
+ osl::MutexGuard aGuard( m_aMutex );
- if ( m_pImpl->m_nLocks != 0 )
+ if ( m_nLocks != 0 )
return;
m_aFormattedFieldBeautifier.notifyPropertyChange(_rEvent);
@@ -151,14 +133,14 @@ public:
void OXReportControllerObserver::Lock()
{
OSL_ENSURE(m_refCount,"Illegal call to dead object!");
- osl_atomic_increment( &m_pImpl->m_nLocks );
+ osl_atomic_increment( &m_nLocks );
}
void OXReportControllerObserver::UnLock()
{
OSL_ENSURE(m_refCount,"Illegal call to dead object!");
- osl_atomic_decrement( &m_pImpl->m_nLocks );
+ osl_atomic_decrement( &m_nLocks );
}
void OXReportControllerObserver::AddSection(const uno::Reference< report::XSection > & _xSection)
@@ -167,7 +149,7 @@ void OXReportControllerObserver::AddSection(const uno::Reference< report::XSecti
try
{
uno::Reference<container::XChild> xChild = _xSection;
- m_pImpl->m_aSections.push_back(xChild);
+ m_aSections.push_back(xChild);
uno::Reference< uno::XInterface > xInt(_xSection);
AddElement(xInt);
}
@@ -184,8 +166,8 @@ void OXReportControllerObserver::RemoveSection(const uno::Reference< report::XSe
try
{
uno::Reference<container::XChild> xChild(_xSection);
- m_pImpl->m_aSections.erase(::std::remove(m_pImpl->m_aSections.begin(),m_pImpl->m_aSections.end(),
- xChild), m_pImpl->m_aSections.end());
+ m_aSections.erase(::std::remove(m_aSections.begin(), m_aSections.end(),
+ xChild), m_aSections.end());
uno::Reference< uno::XInterface > xInt(_xSection);
RemoveElement(xInt);
}
@@ -298,7 +280,7 @@ void OXReportControllerObserver::RemoveElement(const uno::Reference< uno::XInter
void SAL_CALL OXReportControllerObserver::elementInserted(const container::ContainerEvent& evt)
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_pImpl->m_aMutex );
+ ::osl::MutexGuard aGuard( m_aMutex );
// new listener object
uno::Reference< uno::XInterface > xIface( evt.Element, uno::UNO_QUERY );
@@ -312,7 +294,7 @@ void SAL_CALL OXReportControllerObserver::elementInserted(const container::Conta
void SAL_CALL OXReportControllerObserver::elementReplaced(const container::ContainerEvent& evt)
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_pImpl->m_aMutex );
+ ::osl::MutexGuard aGuard( m_aMutex );
uno::Reference< uno::XInterface > xIface(evt.ReplacedElement,uno::UNO_QUERY);
OSL_ENSURE(xIface.is(), "OXReportControllerObserver::elementReplaced: invalid container notification!");
@@ -326,7 +308,7 @@ void SAL_CALL OXReportControllerObserver::elementReplaced(const container::Conta
void SAL_CALL OXReportControllerObserver::elementRemoved(const container::ContainerEvent& evt)
{
SolarMutexGuard aSolarGuard;
- ::osl::MutexGuard aGuard( m_pImpl->m_aMutex );
+ ::osl::MutexGuard aGuard( m_aMutex );
uno::Reference< uno::XInterface > xIface( evt.Element, uno::UNO_QUERY );
if ( xIface.is() )