fpicker/source/win32/VistaFilePickerImpl.cxx | 42 +++++++++++---------------- 1 file changed, 18 insertions(+), 24 deletions(-)
New commits: commit dbfc645ad80ba2d69ac7e0db385224c27643532d Author: Mike Kaganski <[email protected]> AuthorDate: Sat Jan 24 15:53:09 2026 +0100 Commit: Mike Kaganski <[email protected]> CommitDate: Sat Jan 24 17:17:42 2026 +0100 Simplify a bit Change-Id: I350162e56f403fd0a28a5df7da304f0ae31f21d5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198043 Reviewed-by: Mike Kaganski <[email protected]> Tested-by: Jenkins diff --git a/fpicker/source/win32/VistaFilePickerImpl.cxx b/fpicker/source/win32/VistaFilePickerImpl.cxx index 61a4a3e86aba..9b20a489f289 100644 --- a/fpicker/source/win32/VistaFilePickerImpl.cxx +++ b/fpicker/source/win32/VistaFilePickerImpl.cxx @@ -109,21 +109,21 @@ public: virtual ~TDialogImplBase() = default; - TFileDialog getComPtr() { return m_iDialog; } + const TFileDialog& getComPtr() { return m_iDialog; } virtual sal::systools::COMReference<IShellItemArray> getResult(bool bInExecute) { - sal::systools::COMReference<IShellItem> iItem; + sal::systools::COMReference<IShellItemArray> iItems; if (m_iDialog.is()) { + sal::systools::COMReference<IShellItem> iItem; if (bInExecute) m_iDialog->GetCurrentSelection(&iItem); else m_iDialog->GetResult(&iItem); + if (iItem.is()) + SHCreateShellItemArrayFromShellItem(iItem, IID_PPV_ARGS(&iItems)); } - void* iItems = nullptr; - if (iItem.is()) - SHCreateShellItemArrayFromShellItem(iItem.get(), IID_IShellItemArray, &iItems); - return static_cast<IShellItemArray*>(iItems); + return iItems; } private: @@ -146,18 +146,14 @@ class TOpenDialogImpl : public TDialogImpl<TFileOpenDialog, CLSID_FileOpenDialog public: sal::systools::COMReference<IShellItemArray> getResult(bool bInExecute) override { - sal::systools::COMReference<IShellItemArray> iItems; - auto iDialog(getComPtr().QueryInterface<IFileOpenDialog>()); - bool bGetResult = false; - if (!iDialog.is()) - bGetResult = true; - else if (FAILED(bInExecute ? iDialog->GetSelectedItems(&iItems) : iDialog->GetResults(&iItems))) - bGetResult = true; - - if (bGetResult) - iItems = TDialogImplBase::getResult(bInExecute); - - return iItems; + if (auto iDialog = getComPtr().QueryInterface<IFileOpenDialog>()) + { + sal::systools::COMReference<IShellItemArray> iItems; + if (SUCCEEDED(bInExecute ? iDialog->GetSelectedItems(&iItems) + : iDialog->GetResults(&iItems))) + return iItems; + } + return TDialogImplBase::getResult(bInExecute); } }; @@ -980,18 +976,16 @@ void VistaFilePickerImpl::impl_sta_ShowDialogModal(Request& rRequest) TFileDialog VistaFilePickerImpl::impl_getBaseDialogInterface() { - TFileDialog iDialog; + if (m_pDialog) + return m_pDialog->getComPtr(); - if (m_pDialog != nullptr) - iDialog = m_pDialog->getComPtr(); - - return iDialog; + return {}; } TFileDialogCustomize VistaFilePickerImpl::impl_getCustomizeInterface() { - if (m_pDialog != nullptr) + if (m_pDialog) return m_pDialog->getComPtr().QueryInterface<IFileDialogCustomize>(); return {};
