diff options
-rw-r--r-- | fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx | 20 | ||||
-rw-r--r-- | fpicker/source/win32/filepicker/VistaFilePickerImpl.hxx | 3 |
2 files changed, 18 insertions, 5 deletions
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<lItems.getLength(); ++i) + aValue >>= m_lItems; + for (::sal_Int32 i=0; i<m_lItems.getLength(); ++i) { - const OUString& sItem = lItems[i]; + const OUString& sItem = m_lItems[i]; hResult = iCustom->AddControlItem(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. */ |