summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-09-01 19:42:38 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-09-03 11:17:55 +0200
commit48def32f9ce8f10baa6bb0f01ddfe5dfa16ecdfc (patch)
treec4bb40dca19750798ccf8b3c7258a73b025e0fb9
parent37ee5d5a41c99cddae0652d839539df91f28f35d (diff)
restore m_aModelChangeListener
which disappeared, apparently by accident with... commit 56e1133f724896aec3f5b5c409fb5917a3b13eb4 Date: Sun Dec 8 19:33:42 2013 -0200 Convert chart 3D scene illumination to .ui and then a bunch of cleanups removed the unused code Change-Id: I53fe4f6878dda4f7b8d76a04213b5c6d1366a165 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101917 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--chart2/Library_chartcore.mk1
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx3
-rw-r--r--chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx2
-rw-r--r--chart2/source/inc/ModifyListenerCallBack.hxx58
-rw-r--r--chart2/source/tools/ModifyListenerCallBack.cxx114
-rw-r--r--compilerplugins/clang/unusedmethods.results2
-rw-r--r--solenv/clang-format/excludelist2
7 files changed, 180 insertions, 2 deletions
diff --git a/chart2/Library_chartcore.mk b/chart2/Library_chartcore.mk
index 1e285392c42f..3882c379a7a0 100644
--- a/chart2/Library_chartcore.mk
+++ b/chart2/Library_chartcore.mk
@@ -204,6 +204,7 @@ $(eval $(call gb_Library_add_exception_objects,chartcore,\
chart2/source/tools/LogarithmicRegressionCurveCalculator \
chart2/source/tools/MeanValueRegressionCurveCalculator \
chart2/source/tools/MediaDescriptorHelper \
+ chart2/source/tools/ModifyListenerCallBack \
chart2/source/tools/ModifyListenerHelper \
chart2/source/tools/MovingAverageRegressionCurveCalculator \
chart2/source/tools/NameContainer \
diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
index 27566a2a1251..3ee495b7f84d 100644
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
+++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.cxx
@@ -189,6 +189,7 @@ ThreeD_SceneIllumination_TabPage::ThreeD_SceneIllumination_TabPage(weld::Contain
: m_xSceneProperties( xSceneProperties )
, m_aTimerTriggeredControllerLock( xChartModel )
, m_bInCommitToModel( false )
+ , m_aModelChangeListener( LINK( this, ThreeD_SceneIllumination_TabPage, fillControlsFromModel ) )
, m_xChartModel( xChartModel )
, m_pTopLevel(pTopLevel)
, m_xBuilder(Application::CreateBuilder(pParent, "modules/schart/ui/tp_3D_SceneIllumination.ui"))
@@ -243,6 +244,8 @@ ThreeD_SceneIllumination_TabPage::ThreeD_SceneIllumination_TabPage(weld::Contain
m_xCtl_Preview->SetUserSelectionChangeCallback( LINK( this, ThreeD_SceneIllumination_TabPage, PreviewSelectHdl ) );
ClickLightSourceButtonHdl(*m_xBtn_Light2->get_widget());
+
+ m_aModelChangeListener.startListening( uno::Reference< util::XModifyBroadcaster >(m_xSceneProperties, uno::UNO_QUERY) );
}
ThreeD_SceneIllumination_TabPage::~ThreeD_SceneIllumination_TabPage()
diff --git a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
index 27606079ec91..5af02536d127 100644
--- a/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
+++ b/chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx
@@ -19,6 +19,7 @@
#ifndef INCLUDED_CHART2_SOURCE_CONTROLLER_DIALOGS_TP_3D_SCENEILLUMINATION_HXX
#define INCLUDED_CHART2_SOURCE_CONTROLLER_DIALOGS_TP_3D_SCENEILLUMINATION_HXX
+#include <ModifyListenerCallBack.hxx>
#include <TimerTriggeredControllerLock.hxx>
#include <vcl/weld.hxx>
#include <svx/dlgctl3d.hxx>
@@ -65,6 +66,7 @@ private:
bool m_bInCommitToModel;
+ ModifyListenerCallBack m_aModelChangeListener;
css::uno::Reference<css::frame::XModel> m_xChartModel;
weld::Window* m_pTopLevel;
diff --git a/chart2/source/inc/ModifyListenerCallBack.hxx b/chart2/source/inc/ModifyListenerCallBack.hxx
new file mode 100644
index 000000000000..f53f10fbb9ad
--- /dev/null
+++ b/chart2/source/inc/ModifyListenerCallBack.hxx
@@ -0,0 +1,58 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#ifndef INCLUDED_CHART2_SOURCE_INC_MODIFYLISTENERCALLBACK_HXX
+#define INCLUDED_CHART2_SOURCE_INC_MODIFYLISTENERCALLBACK_HXX
+
+#include <tools/link.hxx>
+#include <com/sun/star/util/XModifyBroadcaster.hpp>
+#include <com/sun/star/util/XModifyListener.hpp>
+#include "charttoolsdllapi.hxx"
+
+namespace chart {
+
+/** Use this class as a member if you want to listen on a XModifyBroadcaster
+without becoming a XModifyListener yourself
+ */
+
+class ModifyListenerCallBack_impl;
+
+class OOO_DLLPUBLIC_CHARTTOOLS ModifyListenerCallBack
+{
+public:
+ explicit ModifyListenerCallBack( const Link<void*,void>& rCallBack );
+
+ virtual ~ModifyListenerCallBack();
+
+ void startListening( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyBroadcaster >& xBroadcaster );
+ SAL_DLLPRIVATE void stopListening();
+
+private: //methods
+ ModifyListenerCallBack( const ModifyListenerCallBack& ) = delete;
+
+private: //member
+ ModifyListenerCallBack_impl* pModifyListener_impl;
+ css::uno::Reference< css::util::XModifyListener > m_xModifyListener;
+};
+
+} // namespace chart
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/chart2/source/tools/ModifyListenerCallBack.cxx b/chart2/source/tools/ModifyListenerCallBack.cxx
new file mode 100644
index 000000000000..55d681061f8d
--- /dev/null
+++ b/chart2/source/tools/ModifyListenerCallBack.cxx
@@ -0,0 +1,114 @@
+/* -*- 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/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include <ModifyListenerCallBack.hxx>
+#include <cppuhelper/compbase.hxx>
+#include <MutexContainer.hxx>
+
+using namespace ::com::sun::star;
+using ::com::sun::star::uno::Reference;
+
+namespace chart {
+
+typedef ::cppu::WeakComponentImplHelper< css::util::XModifyListener >
+ ModifyListenerCallBack_Base;
+
+class ModifyListenerCallBack_impl
+ : public ::chart::MutexContainer
+ , public ModifyListenerCallBack_Base
+{
+public:
+ explicit ModifyListenerCallBack_impl( const Link<void*,void>& rCallBack );
+
+ void startListening( const Reference< util::XModifyBroadcaster >& xBroadcaster );
+ void stopListening();
+
+ //XModifyListener
+ virtual void SAL_CALL modified( const lang::EventObject& aEvent ) override;
+
+ //XEventListener
+ virtual void SAL_CALL disposing( const lang::EventObject& Source ) override;
+
+ using ::cppu::WeakComponentImplHelperBase::disposing;
+
+private:
+ Link<void*,void> m_aLink;//will be called on modify
+ Reference< util::XModifyBroadcaster > m_xBroadcaster;//broadcaster to listen at
+};
+
+ModifyListenerCallBack_impl::ModifyListenerCallBack_impl( const Link<void*,void>& rCallBack )
+ : ModifyListenerCallBack_Base( m_aMutex )
+ , m_aLink( rCallBack )
+{
+}
+
+//XModifyListener
+void SAL_CALL ModifyListenerCallBack_impl::modified( const lang::EventObject& /*aEvent*/ )
+{
+ m_aLink.Call(nullptr);
+}
+
+//XEventListener
+void SAL_CALL ModifyListenerCallBack_impl::disposing( const lang::EventObject& /*Source*/ )
+{
+ m_xBroadcaster.clear();
+}
+
+void ModifyListenerCallBack_impl::startListening( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyBroadcaster >& xBroadcaster )
+{
+ if( m_xBroadcaster == xBroadcaster )
+ return;
+
+ stopListening();
+ m_xBroadcaster = xBroadcaster;
+ if( m_xBroadcaster.is() )
+ m_xBroadcaster->addModifyListener( this );
+}
+void ModifyListenerCallBack_impl::stopListening()
+{
+ if( m_xBroadcaster.is() )
+ {
+ m_xBroadcaster->removeModifyListener( this );
+ m_xBroadcaster.clear();
+ }
+}
+
+ModifyListenerCallBack::ModifyListenerCallBack( const Link<void*,void>& rCallBack )
+ : pModifyListener_impl( new ModifyListenerCallBack_impl(rCallBack) )
+ , m_xModifyListener( pModifyListener_impl )
+{
+}
+
+ModifyListenerCallBack::~ModifyListenerCallBack()
+{
+ stopListening();
+}
+
+void ModifyListenerCallBack::startListening( const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyBroadcaster >& xBroadcaster )
+{
+ pModifyListener_impl->startListening( xBroadcaster );
+}
+void ModifyListenerCallBack::stopListening()
+{
+ pModifyListener_impl->stopListening();
+}
+
+} // namespace chart
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/compilerplugins/clang/unusedmethods.results b/compilerplugins/clang/unusedmethods.results
index 3b45782a7e5c..81fa3f339a1c 100644
--- a/compilerplugins/clang/unusedmethods.results
+++ b/compilerplugins/clang/unusedmethods.results
@@ -40,8 +40,6 @@ canvas/inc/vclwrapper.hxx:137
void canvas::vcltools::VCLObject::swap(VCLObject<Wrappee_> &)
canvas/source/vcl/impltools.hxx:103
vclcanvas::tools::LocalGuard::LocalGuard()
-chart2/source/controller/dialogs/tp_3D_SceneIllumination.hxx:55
- void chart::ThreeD_SceneIllumination_TabPage::LinkStubfillControlsFromModel(void *,void *)
connectivity/inc/sdbcx/VGroup.hxx:61
connectivity::sdbcx::OGroup::OGroup(_Bool)
connectivity/inc/sdbcx/VGroup.hxx:62
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index 970a45ca64e6..e78748adc6a8 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -1171,6 +1171,7 @@ chart2/source/inc/LinearRegressionCurveCalculator.hxx
chart2/source/inc/LogarithmicRegressionCurveCalculator.hxx
chart2/source/inc/MeanValueRegressionCurveCalculator.hxx
chart2/source/inc/MediaDescriptorHelper.hxx
+chart2/source/inc/ModifyListenerCallBack.hxx
chart2/source/inc/ModifyListenerHelper.hxx
chart2/source/inc/MovingAverageRegressionCurveCalculator.hxx
chart2/source/inc/NameContainer.hxx
@@ -1334,6 +1335,7 @@ chart2/source/tools/LinearRegressionCurveCalculator.cxx
chart2/source/tools/LogarithmicRegressionCurveCalculator.cxx
chart2/source/tools/MeanValueRegressionCurveCalculator.cxx
chart2/source/tools/MediaDescriptorHelper.cxx
+chart2/source/tools/ModifyListenerCallBack.cxx
chart2/source/tools/ModifyListenerHelper.cxx
chart2/source/tools/MovingAverageRegressionCurveCalculator.cxx
chart2/source/tools/NameContainer.cxx