summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2016-06-30 11:19:43 +0200
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2016-06-30 11:40:42 +0000
commite9891e5dd8e9c83a1bf0483aa314e743a1c02e50 (patch)
treeb847f41f9bc24ac2ff221e8a3f987ff67c409e52
parent6168f10b6280b2d60de44a333f3f1dc23cbb9bcf (diff)
Add new open dialog type: Preview only (without link)
This is needed e.g. for the "Insert Photo Album" dialog where we don't want the "Insert Link" option in the file open dialog (tdf#65356) Change-Id: I01aecaaf8194a8123931b0482b4a37155654dfc2 Reviewed-on: https://gerrit.libreoffice.org/26796 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
-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" ),