diff options
Diffstat (limited to 'fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx')
-rw-r--r-- | fpicker/source/win32/filepicker/VistaFilePickerImpl.cxx | 20 |
1 files changed, 16 insertions, 4 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()) |