summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fpicker/source/aqua/ControlHelper.mm3
-rw-r--r--fpicker/source/aqua/SalAquaFilePicker.mm7
-rw-r--r--fpicker/source/office/OfficeFilePicker.cxx4
-rw-r--r--fpicker/source/win32/filepicker/FilePicker.cxx1
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePicker.cxx7
-rw-r--r--fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx1
-rw-r--r--offapi/com/sun/star/ui/dialogs/TemplateDescription.idl9
-rw-r--r--sfx2/source/dialog/filedlghelper.cxx10
-rw-r--r--vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx6
-rw-r--r--vcl/unx/kde/UnxFilePicker.cxx6
-rw-r--r--vcl/unx/kde4/KDE4FilePicker.cxx4
11 files changed, 56 insertions, 2 deletions
diff --git a/fpicker/source/aqua/ControlHelper.mm b/fpicker/source/aqua/ControlHelper.mm
index 5727cdf35cdf..0cecb40b1cea 100644
--- a/fpicker/source/aqua/ControlHelper.mm
+++ b/fpicker/source/aqua/ControlHelper.mm
@@ -216,6 +216,9 @@ void ControlHelper::initialize( sal_Int16 nTemplateId )
case FILESAVE_AUTOEXTENSION:
m_bToggleVisibility[AUTOEXTENSION] = true;
break;
+ case FILEOPEN_PREVIEW:
+ m_bToggleVisibility[PREVIEW] = true;
+ break;
}
createControls();
diff --git a/fpicker/source/aqua/SalAquaFilePicker.mm b/fpicker/source/aqua/SalAquaFilePicker.mm
index 78ec4f8cf640..eef8f425e91c 100644
--- a/fpicker/source/aqua/SalAquaFilePicker.mm
+++ b/fpicker/source/aqua/SalAquaFilePicker.mm
@@ -204,7 +204,7 @@ sal_Int16 SAL_CALL SalAquaFilePicker::execute() throw( uno::RuntimeException )
default:
throw uno::RuntimeException(
- "The dialog returned with an unknown result!",
+ "The dialog returned with an unknown result!",
static_cast<XFilePicker*>( static_cast<XFilePicker3*>( this ) ));
break;
}
@@ -288,7 +288,7 @@ uno::Sequence<rtl::OUString> SAL_CALL SalAquaFilePicker::getSelectedFiles() thro
SAL_INFO("fpicker.aqua", "# of items: " << nFiles);
uno::Sequence< rtl::OUString > aSelectedFiles(nFiles);
-
+
for(long nIndex = 0; nIndex < nFiles; nIndex += 1)
{
NSURL *url = [files objectAtIndex:nIndex];
@@ -483,6 +483,9 @@ throw( uno::Exception, uno::RuntimeException )
case FILESAVE_AUTOEXTENSION:
m_nDialogType = NAVIGATIONSERVICES_SAVE;
break;
+ case FILEOPEN_PREVIEW:
+ m_nDialogType = NAVIGATIONSERVICES_OPEN;
+ break;
default:
throw lang::IllegalArgumentException("Unknown template",
static_cast<XFilePicker*>( static_cast<XFilePicker3*>(this) ),
diff --git a/fpicker/source/office/OfficeFilePicker.cxx b/fpicker/source/office/OfficeFilePicker.cxx
index 728dd4f5ca75..1a5496b439d8 100644
--- a/fpicker/source/office/OfficeFilePicker.cxx
+++ b/fpicker/source/office/OfficeFilePicker.cxx
@@ -277,6 +277,10 @@ PickerFlags SvtFilePicker::getPickerFlags()
{
nBits = PickerFlags::Open | PickerFlags::InsertAsLink | PickerFlags::ShowPreview;
}
+ else if ( m_nServiceType == TemplateDescription::FILEOPEN_PREVIEW )
+ {
+ nBits = PickerFlags::Open | PickerFlags::ShowPreview;
+ }
if ( m_bMultiSelection && ( nBits & PickerFlags::Open ) )
nBits |= PickerFlags::MultiSelection;
diff --git a/fpicker/source/win32/filepicker/FilePicker.cxx b/fpicker/source/win32/filepicker/FilePicker.cxx
index 88c8cdb48104..40c258d124f2 100644
--- a/fpicker/source/win32/filepicker/FilePicker.cxx
+++ b/fpicker/source/win32/filepicker/FilePicker.cxx
@@ -562,6 +562,7 @@ void SAL_CALL CFilePicker::initialize(const uno::Sequence<uno::Any>& aArguments)
break;
case FILEOPEN_LINK_PREVIEW:
+ case FILEOPEN_PREVIEW: //FIXME: FILEOPEN_PREVIEW needs an own template, no idea how to create one
winResTemplateId = TMPL2000_FILEOPEN_LINK_PREVIEW_BOX_SIMPLE_ID;
break;
diff --git a/fpicker/source/win32/filepicker/VistaFilePicker.cxx b/fpicker/source/win32/filepicker/VistaFilePicker.cxx
index 4b2a436c245a..102117eb46fd 100644
--- a/fpicker/source/win32/filepicker/VistaFilePicker.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePicker.cxx
@@ -523,6 +523,13 @@ void SAL_CALL VistaFilePicker::initialize(const css::uno::Sequence< css::uno::An
nFeatures |= FEATURE_AUTOEXTENSION;
}
break;
+
+ case css::ui::dialogs::TemplateDescription::FILEOPEN_PREVIEW :
+ {
+ bFileOpenDialog = sal_True;
+ nFeatures |= FEATURE_PREVIEW;
+ }
+ break;
}
css::uno::Reference<css::awt::XWindow> xParentWindow;
if(lArguments.getLength() > 1)
diff --git a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
index 17138701cfca..d60aff8b95f3 100644
--- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
+++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx
@@ -524,6 +524,7 @@ void VistaFilePickerImpl::impl_sta_enableFeatures(::sal_Int32 nFeatures, ::sal_I
switch (nTemplate)
{
case css::ui::dialogs::TemplateDescription::FILEOPEN_SIMPLE :
+ case css::ui::dialogs::TemplateDescription::FILEOPEN_PREVIEW :
case css::ui::dialogs::TemplateDescription::FILESAVE_SIMPLE :
aGUID = CLIENTID_FILEDIALOG_SIMPLE;
break;
diff --git a/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl b/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl
index 76aaec12abc2..503d4f899745 100644
--- a/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl
+++ b/offapi/com/sun/star/ui/dialogs/TemplateDescription.idl
@@ -114,6 +114,15 @@ published constants TemplateDescription
*/
const short FILESAVE_AUTOEXTENSION = 10;
+ /** A FileOpen dialog with additional controls.
+ <ul>
+ <li>A checkbox "Show Preview"</li>
+ <li>A window for displaying a file preview</li>
+ </ul>
+
+ @since LibreOffice 5.3
+ */
+ const short FILEOPEN_PREVIEW = 11;
};
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index c41c0f88e82b..e82b4ec0ca2e 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -435,6 +435,7 @@ bool FileDialogHelper_Impl::isInOpenMode() const
case FILEOPEN_PLAY:
case FILEOPEN_READONLY_VERSION:
case FILEOPEN_LINK_PREVIEW:
+ case FILEOPEN_PREVIEW:
bRet = true;
}
@@ -828,6 +829,7 @@ static open_or_save_t lcl_OpenOrSave(sal_Int16 const nDialogType)
case FILEOPEN_PLAY:
case FILEOPEN_READONLY_VERSION:
case FILEOPEN_LINK_PREVIEW:
+ case FILEOPEN_PREVIEW:
return OPEN;
case FILESAVE_SIMPLE:
case FILESAVE_AUTOEXTENSION_PASSWORD:
@@ -1015,6 +1017,14 @@ FileDialogHelper_Impl::FileDialogHelper_Impl(
mbIsSaveDlg = true;
break;
+ case FILEOPEN_PREVIEW:
+ nTemplateDescription = TemplateDescription::FILEOPEN_PREVIEW;
+ mbHasPreview = true;
+ // aPreviewTimer
+ maPreviewIdle.SetPriority( SchedulerPriority::LOWEST );
+ maPreviewIdle.SetIdleHdl( LINK( this, FileDialogHelper_Impl, TimeOutHdl_Impl ) );
+ break;
+
default:
SAL_WARN( "sfx.dialog", "FileDialogHelper::ctor with unknown type" );
break;
diff --git a/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx b/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx
index 4a9453b7884c..7207821c2878 100644
--- a/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx
+++ b/vcl/unx/gtk/fpicker/SalGtkFilePicker.cxx
@@ -1681,6 +1681,12 @@ void SAL_CALL SalGtkFilePicker::initialize( const uno::Sequence<uno::Any>& aArgu
OSL_TRACE( "7all true" );
// TODO
break;
+ case FILEOPEN_PREVIEW:
+ eAction = GTK_FILE_CHOOSER_ACTION_OPEN;
+ first_button_text = GTK_STOCK_OPEN;
+ mbToggleVisibility[PREVIEW] = true;
+ // TODO
+ break;
default:
throw lang::IllegalArgumentException(
OUString( "Unknown template" ),
diff --git a/vcl/unx/kde/UnxFilePicker.cxx b/vcl/unx/kde/UnxFilePicker.cxx
index 8dce0e0d0610..bbee2f31dd1a 100644
--- a/vcl/unx/kde/UnxFilePicker.cxx
+++ b/vcl/unx/kde/UnxFilePicker.cxx
@@ -724,6 +724,12 @@ void SAL_CALL UnxFilePicker::initialize( const uno::Sequence<uno::Any> &rArgumen
sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_AUTOEXTENSION );
break;
+ case FILEOPEN_PREVIEW:
+ sendCommand( aTypeOpen );
+
+ sendAppendControlCommand( ExtendedFilePickerElementIds::CHECKBOX_PREVIEW );
+ break;
+
default:
throw lang::IllegalArgumentException(
OUString( "Unknown template" ),
diff --git a/vcl/unx/kde4/KDE4FilePicker.cxx b/vcl/unx/kde4/KDE4FilePicker.cxx
index 229aa020bb98..2a359986bbe4 100644
--- a/vcl/unx/kde4/KDE4FilePicker.cxx
+++ b/vcl/unx/kde4/KDE4FilePicker.cxx
@@ -725,6 +725,10 @@ void SAL_CALL KDE4FilePicker::initialize( const uno::Sequence<uno::Any> &args )
addCustomControl( CHECKBOX_PREVIEW );
break;
+ case FILEOPEN_PREVIEW:
+ addCustomControl( CHECKBOX_PREVIEW );
+ break;
+
default:
throw lang::IllegalArgumentException(
OUString( "Unknown template" ),