diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-11-21 10:14:59 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-11-21 11:16:37 +0000 |
commit | e53da8804d00182cf83f67880e2799b15b70a46f (patch) | |
tree | a529648c9295ff3d8b220097f871710a3906e455 /filter | |
parent | e9be9ba808359d87675e20cc1c5c7e2c78e59c7d (diff) |
xslt dialog is supposed to be a modeless dialog
and fix the lifecycle to die at the right time
Change-Id: Ibe8f683ed162500a93e02a56d8607bd2ee431ded
Diffstat (limited to 'filter')
-rw-r--r-- | filter/source/xsltdialog/xmlfilterdialogcomponent.cxx | 23 | ||||
-rw-r--r-- | filter/source/xsltdialog/xmlfiltersettingsdialog.cxx | 6 | ||||
-rw-r--r-- | filter/source/xsltdialog/xmlfiltersettingsdialog.hxx | 2 |
3 files changed, 17 insertions, 14 deletions
diff --git a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx index 773219e2fc2f..bb6c6b682dfe 100644 --- a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx +++ b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx @@ -18,7 +18,7 @@ */ #include <osl/mutex.hxx> -#include <toolkit/awt/vclxwindow.hxx> +#include <toolkit/helper/vclunohelper.hxx> #include <osl/thread.h> #include <cppuhelper/factory.hxx> @@ -312,12 +312,19 @@ void SAL_CALL XMLFilterDialogComponent::queryTermination( const EventObject& /* { ::SolarMutexGuard aGuard; + if (!mpDialog) + return; + // we will never give a veto here - if( mpDialog && !mpDialog->isClosable() ) + if (!mpDialog->isClosable()) { mpDialog->ToTop(); - throw TerminationVetoException(); + throw TerminationVetoException( + OUString("The office cannot be closed while the XMLFilterDialog is running"), + Reference<XInterface>(static_cast<XTerminateListener*>(this), UNO_QUERY)); } + else + mpDialog->Close(); } //------------------------------------------------------------------------- @@ -349,13 +356,9 @@ sal_Int16 SAL_CALL XMLFilterDialogComponent::execute( ) throw(RuntimeException) if( NULL == mpDialog ) { - Window* pParent = NULL; - if( mxParent.is() ) - { - VCLXWindow* pImplementation = VCLXWindow::GetImplementation(mxParent); - if (pImplementation) - pParent = pImplementation->GetWindow(); - } + Window* pParent = DIALOG_NO_PARENT; + if (mxParent.is()) + pParent = VCLUnoHelper::GetWindow(mxParent); Reference< XComponent > xComp( this ); mpDialog = new XMLFilterSettingsDialog(pParent, mxMSF); diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx index fc04e65495e7..69b3e986dcb7 100644 --- a/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx +++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.cxx @@ -57,7 +57,7 @@ using ::rtl::Uri; XMLFilterSettingsDialog::XMLFilterSettingsDialog(Window* pParent, const com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory >& rxMSF) - : Dialog(pParent, "XMLFilterSettingsDialog", "filter/ui/xmlfiltersettings.ui") + : ModelessDialog(pParent, "XMLFilterSettingsDialog", "filter/ui/xmlfiltersettings.ui") , mxMSF( rxMSF ) , m_bIsClosable(true) , m_sTemplatePath("$(user)/template/") @@ -176,7 +176,7 @@ short XMLFilterSettingsDialog::Execute() initFilterList(); updateStates(); - return Dialog::Execute(); + return ModelessDialog::Execute(); } // ----------------------------------------------------------------------- @@ -1016,7 +1016,7 @@ void XMLFilterSettingsDialog::onClose() long XMLFilterSettingsDialog::Notify( NotifyEvent& rNEvt ) { // Zuerst Basisklasse rufen wegen TabSteuerung - long nRet = Dialog::Notify( rNEvt ); + long nRet = ModelessDialog::Notify( rNEvt ); if ( !nRet ) { if ( rNEvt.GetType() == EVENT_KEYINPUT ) diff --git a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx index 006d4e0544ec..0c0e4a7f8c3d 100644 --- a/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx +++ b/filter/source/xsltdialog/xmlfiltersettingsdialog.hxx @@ -82,7 +82,7 @@ public: // -------------------------------------------------------------------- -class XMLFilterSettingsDialog : public Dialog +class XMLFilterSettingsDialog : public ModelessDialog { public: XMLFilterSettingsDialog(Window* pParent, |