diff options
author | Michael Stahl <mstahl@redhat.com> | 2011-10-31 21:18:24 +0100 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2011-10-31 21:18:24 +0100 |
commit | 7edb1da8c566c8c17b6bf9dd4f88101c14a07df8 (patch) | |
tree | 8cd098bc13c07811e17af668652fa5efc7c546e6 /dbaccess | |
parent | 17f1adc78adf3b8b943dc36882855b901259d4c1 (diff) |
move CloseVeto from dbaccess to unotools
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/Library_dbu.mk | 1 | ||||
-rw-r--r-- | dbaccess/Library_dbui.mk | 1 | ||||
-rw-r--r-- | dbaccess/source/ui/app/AppController.cxx | 4 | ||||
-rw-r--r-- | dbaccess/source/ui/app/closeveto.cxx | 183 | ||||
-rw-r--r-- | dbaccess/source/ui/app/closeveto.hxx | 70 |
5 files changed, 2 insertions, 257 deletions
diff --git a/dbaccess/Library_dbu.mk b/dbaccess/Library_dbu.mk index 0f7ca599a7da..0419c297b368 100644 --- a/dbaccess/Library_dbu.mk +++ b/dbaccess/Library_dbu.mk @@ -107,7 +107,6 @@ $(eval $(call gb_Library_add_exception_objects,dbu,\ dbaccess/source/ui/app/AppSwapWindow \ dbaccess/source/ui/app/AppTitleWindow \ dbaccess/source/ui/app/AppView \ - dbaccess/source/ui/app/closeveto \ dbaccess/source/ui/app/subcomponentmanager \ dbaccess/source/ui/browser/AsyncronousLink \ dbaccess/source/ui/browser/brwctrlr \ diff --git a/dbaccess/Library_dbui.mk b/dbaccess/Library_dbui.mk index 7a9117aa1cbd..3c6bfb265da4 100644 --- a/dbaccess/Library_dbui.mk +++ b/dbaccess/Library_dbui.mk @@ -125,7 +125,6 @@ $(eval $(call gb_Library_add_exception_objects,dbui,\ dbaccess/source/ui/app/AppSwapWindow \ dbaccess/source/ui/app/AppTitleWindow \ dbaccess/source/ui/app/AppView \ - dbaccess/source/ui/app/closeveto \ dbaccess/source/ui/app/subcomponentmanager \ dbaccess/source/ui/browser/genericcontroller \ dbaccess/source/ui/browser/dsbrowserDnD \ diff --git a/dbaccess/source/ui/app/AppController.cxx b/dbaccess/source/ui/app/AppController.cxx index e02e1874f400..e530eae10acb 100644 --- a/dbaccess/source/ui/app/AppController.cxx +++ b/dbaccess/source/ui/app/AppController.cxx @@ -33,7 +33,6 @@ #include "dbustrings.hrc" #include "advancedsettingsdlg.hxx" #include "subcomponentmanager.hxx" -#include "closeveto.hxx" /** === begin UNO includes === **/ #include <com/sun/star/beans/NamedValue.hpp> @@ -104,6 +103,7 @@ #include <vcl/menu.hxx> #include <vcl/lstbox.hxx> +#include <unotools/closeveto.hxx> #include <unotools/pathoptions.hxx> #include <unotools/tempfile.hxx> #include <unotools/internaloptions.hxx> @@ -1962,7 +1962,7 @@ IMPL_LINK( OApplicationController, OnCreateWithPilot, void*, _pType ) // ----------------------------------------------------------------------------- void OApplicationController::newElementWithPilot( ElementType _eType ) { - CloseVeto aKeepDoc( getFrame() ); + utl::CloseVeto aKeepDoc( getFrame() ); // prevent the document being closed while the wizard is open OSL_ENSURE( getContainer(), "OApplicationController::newElementWithPilot: without a view?" ); diff --git a/dbaccess/source/ui/app/closeveto.cxx b/dbaccess/source/ui/app/closeveto.cxx deleted file mode 100644 index 588bdae48832..000000000000 --- a/dbaccess/source/ui/app/closeveto.cxx +++ /dev/null @@ -1,183 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#include "precompiled_dbaccess.hxx" - -#include "closeveto.hxx" - -/** === begin UNO includes === **/ -#include <com/sun/star/util/XCloseable.hpp> -/** === end UNO includes === **/ - -#include <cppuhelper/implbase1.hxx> -#include <rtl/ref.hxx> -#include <tools/diagnose_ex.h> - -//...................................................................................................................... -namespace dbaui -{ -//...................................................................................................................... - - /** === begin UNO using === **/ - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::uno::UNO_QUERY; - using ::com::sun::star::uno::UNO_QUERY_THROW; - using ::com::sun::star::uno::UNO_SET_THROW; - using ::com::sun::star::uno::Exception; - using ::com::sun::star::uno::RuntimeException; - using ::com::sun::star::uno::Any; - using ::com::sun::star::uno::makeAny; - using ::com::sun::star::uno::Sequence; - using ::com::sun::star::uno::Type; - using ::com::sun::star::util::XCloseable; - using ::com::sun::star::util::XCloseListener; - using ::com::sun::star::util::CloseVetoException; - using ::com::sun::star::lang::EventObject; - /** === end UNO using === **/ - - //================================================================================================================== - //= CloseListener_Impl - //================================================================================================================== - typedef ::cppu::WeakImplHelper1 < XCloseListener - > CloseListener_Base; - class DBACCESS_DLLPRIVATE CloseListener_Impl : public CloseListener_Base - { - public: - CloseListener_Impl() - :m_bHasOwnership( false ) - { - } - - // XCloseListener - virtual void SAL_CALL queryClosing( const EventObject& Source, ::sal_Bool GetsOwnership ) throw (CloseVetoException, RuntimeException); - virtual void SAL_CALL notifyClosing( const EventObject& Source ) throw (RuntimeException); - - // XEventListener - virtual void SAL_CALL disposing( const EventObject& Source) throw (RuntimeException); - - bool hasOwnership() const { return m_bHasOwnership; } - - protected: - ~CloseListener_Impl() - { - } - - private: - bool m_bHasOwnership; - }; - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL CloseListener_Impl::queryClosing( const EventObject& i_source, ::sal_Bool i_deliverOwnership ) throw (CloseVetoException, RuntimeException) - { - (void)i_source; - - if ( !m_bHasOwnership ) - m_bHasOwnership = i_deliverOwnership; - - throw CloseVetoException(); - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL CloseListener_Impl::notifyClosing( const EventObject& i_source ) throw (RuntimeException) - { - (void)i_source; - } - - //------------------------------------------------------------------------------------------------------------------ - void SAL_CALL CloseListener_Impl::disposing( const EventObject& i_source ) throw (RuntimeException) - { - (void)i_source; - } - - //================================================================================================================== - //= CloseVeto_Data - //================================================================================================================== - struct DBACCESS_DLLPRIVATE CloseVeto_Data - { - Reference< XCloseable > xCloseable; - ::rtl::Reference< CloseListener_Impl > pListener; - }; - - //================================================================================================================== - //= operations - //================================================================================================================== - namespace - { - //-------------------------------------------------------------------------------------------------------------- - void lcl_init( CloseVeto_Data& i_data, const Reference< XInterface >& i_closeable ) - { - i_data.xCloseable.set( i_closeable, UNO_QUERY ); - ENSURE_OR_RETURN_VOID( i_data.xCloseable.is(), "CloseVeto: the component is not closeable!" ); - - i_data.pListener = new CloseListener_Impl; - i_data.xCloseable->addCloseListener( i_data.pListener.get() ); - } - - //-------------------------------------------------------------------------------------------------------------- - void lcl_deinit( CloseVeto_Data& i_data ) - { - if ( !i_data.xCloseable.is() ) - return; - - i_data.xCloseable->removeCloseListener( i_data.pListener.get() ); - if ( i_data.pListener->hasOwnership() ) - { - try - { - i_data.xCloseable->close( sal_True ); - } - catch( const CloseVetoException& ) { } - catch( const Exception& ) - { - DBG_UNHANDLED_EXCEPTION(); - } - } - } - } - - //================================================================================================================== - //= CloseVeto - //================================================================================================================== - //------------------------------------------------------------------------------------------------------------------ - CloseVeto::CloseVeto( const Reference< XInterface >& i_closeable ) - :m_pData( new CloseVeto_Data ) - { - lcl_init( *m_pData, i_closeable ); - } - - //------------------------------------------------------------------------------------------------------------------ - CloseVeto::~CloseVeto() - { - lcl_deinit( *m_pData ); - } - -//...................................................................................................................... -} // namespace dbaui -//...................................................................................................................... - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/app/closeveto.hxx b/dbaccess/source/ui/app/closeveto.hxx deleted file mode 100644 index a9f1d6bf6c66..000000000000 --- a/dbaccess/source/ui/app/closeveto.hxx +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -#ifndef DBACCESS_CLOSEVETO_HXX -#define DBACCESS_CLOSEVETO_HXX - -#include "dbaccessdllapi.h" - -/** === begin UNO includes === **/ -#include <com/sun/star/uno/XInterface.hpp> -/** === end UNO includes === **/ - -#include <boost/scoped_ptr.hpp> - -//...................................................................................................................... -namespace dbaui -{ -//...................................................................................................................... - - //================================================================================================================== - //= CloseVeto - //================================================================================================================== - struct CloseVeto_Data; - /** will add a XCloseListener to a given component, and veto its closing as long as the <code>CloseVeto</code> - instance is alive. - - If closing has been requested and vetoed while the <code>CloseVeto</code> instance is alive, and the ownership - went to the <code>CloseVeto</code> instance, then it will close the component in its dtor. - */ - class DBACCESS_DLLPRIVATE CloseVeto - { - public: - CloseVeto( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& i_closeable ); - ~CloseVeto(); - - private: - ::boost::scoped_ptr< CloseVeto_Data > m_pData; - }; - -//...................................................................................................................... -} // namespace dbaui -//...................................................................................................................... - -#endif // DBACCESS_CLOSEVETO_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |