25#include <osl/diagnose.h>
35 ,m_pDialog ( _pDialog )
38 assert(
m_pDialog &&
"AsyncPickerAction::AsyncPickerAction: invalid dialog!" );
39 assert(
m_pView &&
"AsyncPickerAction::AsyncPickerAction: invalid view!" );
53 OSL_ENSURE(
m_bRunning,
"AsyncPickerAction::cancel: not running" );
60 const OUString& _rURL,
61 const OUString& _rFilter,
62 sal_Int32 _nMinTimeout,
63 sal_Int32 _nMaxTimeout,
64 const css::uno::Sequence< OUString >& rDenyList )
69 sal_Int32 nMinTimeout = _nMinTimeout;
70 sal_Int32 nMaxTimeout = _nMaxTimeout;
72 if ( nMinTimeout < 0 )
75 else if ( nMinTimeout < 1000 )
77 if ( nMaxTimeout <= nMinTimeout )
78 nMaxTimeout = nMinTimeout + 30000;
80 std::unique_ptr< FileViewAsyncAction > pActionDescriptor;
84 pActionDescriptor->nMinTimeout = nMinTimeout;
85 pActionDescriptor->nMaxTimeout = nMaxTimeout;
98 eResult =
m_pView->
Initialize( _rURL, _rFilter, pActionDescriptor.get(), rDenyList );
109 OSL_FAIL(
"AsyncPickerAction::execute: unknown action!" );
119 OnActionDone(
reinterpret_cast< void*
>( eResult ) );
135 OSL_ENSURE(
eStillRunning != eResult,
"AsyncPickerAction::OnActionDone: invalid result!" );
142 m_pDialog->onAsyncOperationFinished();
155 OSL_ENSURE(
eSuccess == eResult,
"AsyncPickerAction::OnActionDone: what else valid results are there?" );
161 m_pDialog->UpdateControls( m_pView->GetViewURL() );
166 m_pView->SetNoSelection();
167 m_pDialog->setCurrentFileText( m_sFileName,
true );
170 m_pDialog->FilterSelect();
174 OSL_FAIL(
"AsyncPickerAction::OnActionDone: unknown action!" );
SectionViewAction m_eAction
virtual void onAsyncOperationStarted()=0
virtual OUString getCurrentFileText() const =0
static void displayIOException(const OUString &_rURL, css::ucb::IOErrorCode _eCode)
FileViewResult PreviousLevel(const FileViewAsyncAction *pAsyncDescriptor)
initializes the view with the parent folder of the current folder
void CancelRunningAsyncAction()
cancels a running async action (if any)
FileViewResult Initialize(const OUString &rFolderURL, const OUString &rFilter, const FileViewAsyncAction *pAsyncDescriptor, const css::uno::Sequence< OUString > &rDenyList)
initialize the view with the content of a folder given by URL, and apply an immediate filter
FileViewResult ExecuteFilter(const OUString &rFilter, const FileViewAsyncAction *pAsyncDescriptor)
reads the current content of the current folder again, and applies the given filter to it
void cancel()
cancels the running action
virtual ~AsyncPickerAction() override
SvtFileDialog_Base * m_pDialog
void execute(const OUString &_rURL, const OUString &_rFilter, sal_Int32 _nMinTimeout, sal_Int32 _nMaxTimeout, const css::uno::Sequence< OUString > &rDenyList)
executes the action
AsyncPickerAction(SvtFileDialog_Base *_pDialog, SvtFileView *_pView, const Action _eAction)
#define DBG_TESTSOLARMUTEX()
FileViewResult
the result of an action in the FileView
#define LINK(Instance, Class, Member)
IMPL_LINK(ControlBase, KeyInputHdl, const KeyEvent &, rKEvt, bool)
describes parameters for doing an action on the FileView asynchronously