diff options
Diffstat (limited to 'uui/source/fltdlg.cxx')
-rw-r--r-- | uui/source/fltdlg.cxx | 48 |
1 files changed, 19 insertions, 29 deletions
diff --git a/uui/source/fltdlg.cxx b/uui/source/fltdlg.cxx index e904fcdadb68..2911acb03b22 100644 --- a/uui/source/fltdlg.cxx +++ b/uui/source/fltdlg.cxx @@ -44,28 +44,18 @@ namespace uui @param "pParentWindow" , parent window for dialog @threadsafe no *//*-*************************************************************************************************************/ -FilterDialog::FilterDialog( vcl::Window* pParentWindow ) - : ModalDialog (pParentWindow, "FilterSelectDialog", "uui/ui/filterselect.ui" ) - , m_pFilterNames(nullptr) +FilterDialog::FilterDialog(weld::Window* pParentWindow) + : GenericDialogController(pParentWindow, "uui/ui/filterselect.ui", "FilterSelectDialog") + , m_pFilterNames(nullptr) + , m_xFtURL(m_xBuilder->weld_label("url")) + , m_xLbFilters(m_xBuilder->weld_tree_view("filters")) { - get(m_pFtURL, "url"); - get(m_pLbFilters, "filters"); - Size aSize(pParentWindow->LogicToPixel(Size(182, 175), MapMode(MapUnit::MapAppFont))); - m_pLbFilters->set_height_request(aSize.Height()); - m_pLbFilters->set_width_request(aSize.Width()); - m_pFtURL->SetSizePixel(Size(aSize.Width(), m_pFtURL->GetOptimalSize().Height())); + m_xLbFilters->set_size_request(m_xLbFilters->get_approximate_digit_width() * 42, + m_xLbFilters->get_height_rows(15)); } FilterDialog::~FilterDialog() { - disposeOnce(); -} - -void FilterDialog::dispose() -{ - m_pFtURL.clear(); - m_pLbFilters.clear(); - ModalDialog::dispose(); } /*-************************************************************************************************************ @@ -77,7 +67,7 @@ void FilterDialog::dispose() void FilterDialog::SetURL( const OUString& sURL ) { // convert it and use given pure string as fallback if conversion failed - m_pFtURL->SetText( impl_buildUIFileName(sURL) ); + m_xFtURL->set_label(impl_buildUIFileName(sURL)); } /*-************************************************************************************************************ @@ -100,14 +90,14 @@ void FilterDialog::SetURL( const OUString& sURL ) void FilterDialog::ChangeFilters( const FilterNameList* pFilterNames ) { m_pFilterNames = pFilterNames; - m_pLbFilters->Clear(); + m_xLbFilters->clear(); if( m_pFilterNames != nullptr ) { for( FilterNameListPtr pItem = m_pFilterNames->begin(); pItem != m_pFilterNames->end() ; ++pItem ) { - m_pLbFilters->InsertEntry( pItem->sUI ); + m_xLbFilters->append_text(pItem->sUI); } } } @@ -136,12 +126,12 @@ bool FilterDialog::AskForFilter( FilterNameListPtr& pSelectedItem ) if( m_pFilterNames != nullptr ) { - if( ModalDialog::Execute() == RET_OK ) + if (m_xDialog->run() == RET_OK) { - OUString sEntry = m_pLbFilters->GetSelectedEntry(); + OUString sEntry = m_xLbFilters->get_selected_text(); if( !sEntry.isEmpty() ) { - int nPos = m_pLbFilters->GetSelectedEntryPos(); + int nPos = m_xLbFilters->get_selected_index(); if( nPos < static_cast<int>(m_pFilterNames->size()) ) { pSelectedItem = m_pFilterNames->begin(); @@ -167,18 +157,18 @@ bool FilterDialog::AskForFilter( FilterNameListPtr& pSelectedItem ) class StringCalculator : public ::cppu::WeakImplHelper< css::util::XStringWidth > { public: - explicit StringCalculator( const OutputDevice* pDevice ) - : m_pDevice( const_cast< OutputDevice * >( pDevice ) ) + explicit StringCalculator(weld::Widget* pDevice) + : m_pDevice(pDevice) { } sal_Int32 SAL_CALL queryStringWidth( const OUString& sString ) override { - return static_cast<sal_Int32>(m_pDevice->GetTextWidth(sString)); + return static_cast<sal_Int32>(m_pDevice->get_pixel_size(sString).Width()); } private: - VclPtr<OutputDevice> m_pDevice; + weld::Widget* m_pDevice; }; /*-************************************************************************************************************ @@ -206,11 +196,11 @@ OUString FilterDialog::impl_buildUIFileName( const OUString& sName ) else { // otherwise its really a url ... build short name by using INetURLObject - css::uno::Reference< css::util::XStringWidth > xStringCalculator( new StringCalculator(m_pFtURL) ); + css::uno::Reference< css::util::XStringWidth > xStringCalculator(new StringCalculator(m_xFtURL.get())); if( xStringCalculator.is() ) { INetURLObject aBuilder ( sName ); - Size aSize = m_pFtURL->GetOutputSizePixel(); + Size aSize = m_xLbFilters->get_preferred_size(); sShortName = aBuilder.getAbbreviated( xStringCalculator, aSize.Width(), INetURLObject::DecodeMechanism::Unambiguous ); } } |