From 25206db2aa65430a13a3fe3274c86cc7652c328f Mon Sep 17 00:00:00 2001 From: Ahmed GHANMI Date: Thu, 30 Nov 2017 15:25:01 +0100 Subject: tdf#113070: Fix master document issue In fpicker module we don't treat template listbox "LISTBOX_TEMPLATE" element selected in "impl_sta_GetControlValue" function. In order to fix this issue we added a sequence "gitems" which save items added in template listbox while creating the ODM creation graphic interface. Also we added a section in impl_sta_GetControlValue function to get user selection from template listbox and the get the item from gitems and we return the value. Change-Id: Ibbf0a134ade8c59d8e6f333236070954da067305 Reviewed-on: https://gerrit.libreoffice.org/45589 Tested-by: Jenkins Reviewed-by: Julien Nabet --- .../source/win32/filepicker/VistaFilePickerImpl.cxx | 20 ++++++++++++++++---- .../source/win32/filepicker/VistaFilePickerImpl.hxx | 3 ++- 2 files changed, 18 insertions(+), 5 deletions(-) (limited to 'fpicker') diff --git a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx index 35be52b6101a..c359915f4e8d 100644 --- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx +++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx @@ -1072,11 +1072,10 @@ void VistaFilePickerImpl::impl_sta_SetControlValue(const RequestRef& rRequest) case css::ui::dialogs::ControlActions::ADD_ITEMS : { - css::uno::Sequence< OUString > lItems; - aValue >>= lItems; - for (::sal_Int32 i=0; i>= m_lItems; + for (::sal_Int32 i=0; iAddControlItem(nId, i, o3tl::toW(sItem.getStr())); } } @@ -1130,6 +1129,19 @@ void VistaFilePickerImpl::impl_sta_GetControlValue(const RequestRef& rRequest) aValue <<= bool(bValue); } break; + case css::ui::dialogs::ExtendedFilePickerElementIds::LISTBOX_VERSION: + case css::ui::dialogs::ExtendedFilePickerElementIds::LISTBOX_TEMPLATE: + case css::ui::dialogs::ExtendedFilePickerElementIds::LISTBOX_IMAGE_TEMPLATE: + { + DWORD bValue = 0; + HRESULT hResult = iCustom->GetSelectedControlItem(nId, &bValue); + if ( SUCCEEDED(hResult) ) + { + const OUString& sItem = m_lItems[bValue]; + aValue = css::uno::makeAny(OUString(sItem.getStr())); + } + } + break; } if (aValue.hasValue()) diff --git a/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx b/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx index 5161d787e767..01efd0f58c72 100644 --- a/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx +++ b/fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx @@ -103,7 +103,8 @@ class VistaFilePickerImpl : private ::cppu::BaseMutex { public: - + // Workaround made to get input in Template Listbox + css::uno::Sequence< OUString > m_lItems; /** used for marshalling requests. * Will be used to map requests to the right implementations. */ -- cgit