summaryrefslogtreecommitdiff
path: root/sd/source/ui/dlg/filedlg.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sd/source/ui/dlg/filedlg.cxx')
-rw-r--r--sd/source/ui/dlg/filedlg.cxx370
1 files changed, 0 insertions, 370 deletions
diff --git a/sd/source/ui/dlg/filedlg.cxx b/sd/source/ui/dlg/filedlg.cxx
deleted file mode 100644
index 687ecc196..000000000
--- a/sd/source/ui/dlg/filedlg.cxx
+++ /dev/null
@@ -1,370 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sd.hxx"
-#include <tools/debug.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <comphelper/processfactory.hxx>
-#include <com/sun/star/lang/XInitialization.hpp>
-#include <com/sun/star/ui/dialogs/CommonFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/ExecutableDialogResults.hpp>
-#include <com/sun/star/ui/dialogs/ListboxControlActions.hpp>
-#include <com/sun/star/ui/dialogs/ExtendedFilePickerElementIds.hpp>
-#include <com/sun/star/ui/dialogs/TemplateDescription.hpp>
-#include <com/sun/star/ui/dialogs/XFilePickerControlAccess.hpp>
-#include <com/sun/star/ui/dialogs/XFilePickerListener.hpp>
-#include <com/sun/star/ui/dialogs/XFilePickerNotifier.hpp>
-#include <com/sun/star/ui/dialogs/XFilePicker.hpp>
-#include <vcl/msgbox.hxx>
-#include <sal/types.h>
-#include <tools/urlobj.hxx>
-#include <osl/thread.hxx>
-#include <osl/mutex.hxx>
-#include <vcl/svapp.hxx>
-#include <sfx2/filedlghelper.hxx>
-#include <avmedia/mediawindow.hxx>
-#include "filedlg.hxx"
-#include "sdresid.hxx"
-#include "strings.hrc"
-#include <svtools/filter.hxx>
-
-
-//-----------------------------------------------------------------------------
-
-namespace css = ::com::sun::star;
-
-
-// --------------------------------------------------------------------
-// ----------- SdFileDialog_Imp ---------------------------
-// --------------------------------------------------------------------
-class SdFileDialog_Imp : public sfx2::FileDialogHelper
-{
-private:
-#if defined __SUNPRO_CC
- using sfx2::FileDialogHelper::Execute;
-#endif
-
- friend class SdOpenSoundFileDialog;
-
- css::uno::Reference< css::ui::dialogs::XFilePickerControlAccess > mxControlAccess;
-
- css::uno::Reference< css::media::XPlayer > mxPlayer;
- sal_uLong mnPlaySoundEvent;
- sal_Bool mbUsableSelection;
- sal_Bool mbLabelPlaying;
-
- void CheckSelectionState();
-
- DECL_LINK( PlayMusicHdl, void * );
-
- Timer maUpdateTimer;
-
- DECL_LINK( IsMusicStoppedHdl, void * );
-
-public:
- SdFileDialog_Imp( const short nDialogType, sal_Bool bUsableSelection );
- ~SdFileDialog_Imp();
-
- ErrCode Execute();
-
- // overwritten from FileDialogHelper, to receive user feedback
- virtual void SAL_CALL ControlStateChanged( const css::ui::dialogs::FilePickerEvent& aEvent );
-};
-
-// ------------------------------------------------------------------------
-void SAL_CALL SdFileDialog_Imp::ControlStateChanged( const css::ui::dialogs::FilePickerEvent& aEvent )
-{
- SolarMutexGuard aGuard;
-
- switch( aEvent.ElementId )
- {
- case css::ui::dialogs::CommonFilePickerElementIds::LISTBOX_FILTER:
- CheckSelectionState();
- break;
-
- case css::ui::dialogs::ExtendedFilePickerElementIds::PUSHBUTTON_PLAY:
- if( mxControlAccess.is() )
- {
- if( mnPlaySoundEvent )
- Application::RemoveUserEvent( mnPlaySoundEvent );
-
- mnPlaySoundEvent = Application::PostUserEvent( LINK( this, SdFileDialog_Imp, PlayMusicHdl ) );
- }
- break;
- }
-}
-
-// ------------------------------------------------------------------------
-IMPL_LINK( SdFileDialog_Imp, PlayMusicHdl, void *, EMPTYARG )
-{
- maUpdateTimer.Stop();
- mnPlaySoundEvent = 0;
-
- if (mxPlayer.is())
- {
- if (mxPlayer->isPlaying())
- mxPlayer->stop();
- mxPlayer.clear();
- }
-
- if( mbLabelPlaying )
- {
- try
- {
- mxControlAccess->setLabel( css::ui::dialogs::ExtendedFilePickerElementIds::PUSHBUTTON_PLAY,
- String( SdResId( STR_PLAY ) ) );
-
- mbLabelPlaying = sal_False;
- }
- catch(const css::lang::IllegalArgumentException&)
- {
-#ifdef DBG_UTIL
- OSL_FAIL( "Cannot access play button" );
-#endif
- }
- }
- else
- {
- rtl::OUString aUrl( GetPath() );
- if ( aUrl.getLength() )
- {
- try
- {
- mxPlayer.set( avmedia::MediaWindow::createPlayer( aUrl ), css::uno::UNO_QUERY_THROW );
- mxPlayer->start();
- maUpdateTimer.SetTimeout( 100 );
- maUpdateTimer.Start();
- }
- catch (const css::uno::Exception&)
- {
- mxPlayer.clear();
- }
-
- if (mxPlayer.is())
- {
- try
- {
- mxControlAccess->setLabel( css::ui::dialogs::ExtendedFilePickerElementIds::PUSHBUTTON_PLAY,
- String( SdResId( STR_STOP ) ) );
-
- mbLabelPlaying = sal_True;
- }
- catch (const css::lang::IllegalArgumentException&)
- {
-#ifdef DBG_UTIL
- OSL_FAIL( "Cannot access play button" );
-#endif
- }
- }
- }
- }
-
- return 0;
-}
-
-// ------------------------------------------------------------------------
-IMPL_LINK( SdFileDialog_Imp, IsMusicStoppedHdl, void *, EMPTYARG )
-{
- SolarMutexGuard aGuard;
-
- if (
- mxPlayer.is() && mxPlayer->isPlaying() &&
- mxPlayer->getMediaTime() < mxPlayer->getDuration()
- )
- {
- maUpdateTimer.Start();
- return 0L;
- }
-
-
- if( mxControlAccess.is() )
- {
- try
- {
- mxControlAccess->setLabel( css::ui::dialogs::ExtendedFilePickerElementIds::PUSHBUTTON_PLAY,
- String( SdResId( STR_PLAY ) ) );
- mbLabelPlaying = sal_False;
- }
- catch (const css::lang::IllegalArgumentException&)
- {
-#ifdef DBG_UTIL
- OSL_FAIL( "Cannot access play button" );
-#endif
- }
- }
-
- return( 0L );
-}
-
-// check whether to disable the "selection" checkbox
-void SdFileDialog_Imp::CheckSelectionState()
-{
- if( mbUsableSelection && mxControlAccess.is() )
- {
- String aCurrFilter( GetCurrentFilter() );
-
- try
- {
- if( !aCurrFilter.Len() || ( aCurrFilter == String( SdResId( STR_EXPORT_HTML_NAME ) ) ) )
- mxControlAccess->enableControl( css::ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_SELECTION, sal_False );
- else
- mxControlAccess->enableControl( css::ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_SELECTION, sal_True );
- }
- catch (const css::lang::IllegalArgumentException&)
- {
-#ifdef DBG_UTIL
- OSL_FAIL( "Cannot access \"selection\" checkbox" );
-#endif
- }
- }
-}
-
-//-----------------------------------------------------------------------------
-SdFileDialog_Imp::SdFileDialog_Imp( const short nDialogType,
- sal_Bool bUsableSelection ) :
- FileDialogHelper( nDialogType, 0 ),
- mnPlaySoundEvent( 0 ),
- mbUsableSelection( bUsableSelection ),
- mbLabelPlaying(sal_False)
-{
- maUpdateTimer.SetTimeoutHdl(LINK(this, SdFileDialog_Imp, IsMusicStoppedHdl));
-
- css::uno::Reference < ::com::sun::star::ui::dialogs::XFilePicker > xFileDlg = GetFilePicker();
-
- // get the control access
- mxControlAccess = css::uno::Reference< css::ui::dialogs::XFilePickerControlAccess > ( xFileDlg, css::uno::UNO_QUERY );
-
- if( mxControlAccess.is() )
- {
- if( nDialogType ==
- css::ui::dialogs::TemplateDescription::FILEOPEN_PLAY )
- {
- try
- {
- mxControlAccess->setLabel( css::ui::dialogs::ExtendedFilePickerElementIds::PUSHBUTTON_PLAY,
- String( SdResId( STR_PLAY ) ) );
- }
- catch (const css::lang::IllegalArgumentException&)
- {
-#ifdef DBG_UTIL
- OSL_FAIL( "Cannot set play button label" );
-#endif
- }
- }
- else if( mbUsableSelection != sal_True )
- {
- try
- {
- mxControlAccess->enableControl( css::ui::dialogs::ExtendedFilePickerElementIds::CHECKBOX_SELECTION, sal_False );
- }
- catch (const css::lang::IllegalArgumentException&)
- {
-#ifdef DBG_UTIL
- OSL_FAIL( "Cannot disable selection checkbox" );
-#endif
- }
- }
- }
-}
-
-
-// ------------------------------------------------------------------------
-SdFileDialog_Imp::~SdFileDialog_Imp()
-{
- if( mnPlaySoundEvent )
- Application::RemoveUserEvent( mnPlaySoundEvent );
-}
-
-// ------------------------------------------------------------------------
-ErrCode SdFileDialog_Imp::Execute()
-{
- // make sure selection checkbox is disabled if
- // HTML is current filter!
- CheckSelectionState();
- return FileDialogHelper::Execute();
-}
-
-// --------------------------------------------------------------------
-// ----------- SdOpenSoundFileDialog -----------------------
-// --------------------------------------------------------------------
-
-// these are simple forwarders
-SdOpenSoundFileDialog::SdOpenSoundFileDialog() :
- mpImpl(
- new SdFileDialog_Imp(
- css::ui::dialogs::TemplateDescription::FILEOPEN_PLAY, sal_False ) )
-{
- String aDescr;
- aDescr = String(SdResId(STR_ALL_FILES));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.*" ) ) );
-
- // setup filter
-#if defined UNX
- aDescr = String(SdResId(STR_AU_FILE));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.au;*.snd" ) ) );
- aDescr = String(SdResId(STR_VOC_FILE));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.voc" ) ) );
- aDescr = String(SdResId(STR_WAV_FILE));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.wav" ) ) );
- aDescr = String(SdResId(STR_AIFF_FILE));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.aiff" ) ) );
- aDescr = String(SdResId(STR_SVX_FILE));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.svx" ) ) );
-#else
- aDescr = String(SdResId(STR_WAV_FILE));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.wav;*.mp3;*.ogg" ) ) );
- aDescr = String(SdResId(STR_MIDI_FILE));
- mpImpl->AddFilter( aDescr, UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "*.mid" ) ) );
-#endif
-}
-
-// ------------------------------------------------------------------------
-SdOpenSoundFileDialog::~SdOpenSoundFileDialog()
-{
-}
-
-// ------------------------------------------------------------------------
-ErrCode SdOpenSoundFileDialog::Execute()
-{
- return mpImpl->Execute();
-}
-
-// ------------------------------------------------------------------------
-String SdOpenSoundFileDialog::GetPath() const
-{
- return mpImpl->GetPath();
-}
-
-// ------------------------------------------------------------------------
-void SdOpenSoundFileDialog::SetPath( const String& rPath )
-{
- mpImpl->SetDisplayDirectory( rPath );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */