diff options
Diffstat (limited to 'dbaccess/source/ui/dlg/TextConnectionHelper.cxx')
-rw-r--r-- | dbaccess/source/ui/dlg/TextConnectionHelper.cxx | 84 |
1 files changed, 45 insertions, 39 deletions
diff --git a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx b/dbaccess/source/ui/dlg/TextConnectionHelper.cxx index a494bda4c4ad..e186b139c4e1 100644 --- a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx +++ b/dbaccess/source/ui/dlg/TextConnectionHelper.cxx @@ -28,18 +28,25 @@ #include <vcl/svapp.hxx> #include <vcl/weld.hxx> #include <vcl/mnemonic.hxx> +#include <o3tl/string_view.hxx> namespace { -OUString lcl_getListEntry(const OUString& rStr, sal_Int32& rIdx) +OUString lcl_getListEntry(std::u16string_view rStr, sal_Int32& rIdx) { - const OUString sTkn {rStr.getToken( 0, '\t', rIdx )}; + const OUString sTkn {o3tl::getToken(rStr, 0, '\t', rIdx )}; if (rIdx>=0) { - rIdx = rStr.indexOf('\t', rIdx); - if (rIdx>=0 && ++rIdx>=rStr.getLength()) + size_t nFnd = rStr.find('\t', rIdx); + if (nFnd == std::u16string_view::npos) rIdx = -1; + else + { + rIdx = nFnd + 1; + if (rIdx >= static_cast<sal_Int32>(rStr.size())) + rIdx = -1; + } } return sTkn; } @@ -54,27 +61,27 @@ namespace dbaui , m_aTextSeparatorList (STR_AUTOTEXTSEPARATORLIST) , m_aTextNone (DBA_RES(STR_AUTOTEXT_FIELD_SEP_NONE)) , m_nAvailableSections( _nAvailableSections ) - , m_xBuilder(Application::CreateBuilder(pParent, "dbaccess/ui/textpage.ui")) - , m_xContainer(m_xBuilder->weld_widget("TextPage")) - , m_xExtensionHeader(m_xBuilder->weld_widget("extensionframe")) - , m_xAccessTextFiles(m_xBuilder->weld_radio_button("textfile")) - , m_xAccessCSVFiles(m_xBuilder->weld_radio_button("csvfile")) - , m_xAccessOtherFiles(m_xBuilder->weld_radio_button("custom")) - , m_xOwnExtension(m_xBuilder->weld_entry("extension")) - , m_xExtensionExample(m_xBuilder->weld_label("example")) - , m_xFormatHeader(m_xBuilder->weld_widget("formatframe")) - , m_xFieldSeparatorLabel(m_xBuilder->weld_label("fieldlabel")) - , m_xFieldSeparator(m_xBuilder->weld_combo_box("fieldseparator")) - , m_xTextSeparatorLabel(m_xBuilder->weld_label("textlabel")) - , m_xTextSeparator(m_xBuilder->weld_combo_box("textseparator")) - , m_xDecimalSeparatorLabel(m_xBuilder->weld_label("decimallabel")) - , m_xDecimalSeparator(m_xBuilder->weld_combo_box("decimalseparator")) - , m_xThousandsSeparatorLabel(m_xBuilder->weld_label("thousandslabel")) - , m_xThousandsSeparator(m_xBuilder->weld_combo_box("thousandsseparator")) - , m_xRowHeader(m_xBuilder->weld_check_button("containsheaders")) - , m_xCharSetHeader(m_xBuilder->weld_widget("charsetframe")) - , m_xCharSetLabel(m_xBuilder->weld_label("charsetlabel")) - , m_xCharSet(new CharSetListBox(m_xBuilder->weld_combo_box("charset"))) + , m_xBuilder(Application::CreateBuilder(pParent, u"dbaccess/ui/textpage.ui"_ustr)) + , m_xContainer(m_xBuilder->weld_widget(u"TextPage"_ustr)) + , m_xExtensionHeader(m_xBuilder->weld_widget(u"extensionframe"_ustr)) + , m_xAccessTextFiles(m_xBuilder->weld_radio_button(u"textfile"_ustr)) + , m_xAccessCSVFiles(m_xBuilder->weld_radio_button(u"csvfile"_ustr)) + , m_xAccessOtherFiles(m_xBuilder->weld_radio_button(u"custom"_ustr)) + , m_xOwnExtension(m_xBuilder->weld_entry(u"extension"_ustr)) + , m_xExtensionExample(m_xBuilder->weld_label(u"example"_ustr)) + , m_xFormatHeader(m_xBuilder->weld_widget(u"formatframe"_ustr)) + , m_xFieldSeparatorLabel(m_xBuilder->weld_label(u"fieldlabel"_ustr)) + , m_xFieldSeparator(m_xBuilder->weld_combo_box(u"fieldseparator"_ustr)) + , m_xTextSeparatorLabel(m_xBuilder->weld_label(u"textlabel"_ustr)) + , m_xTextSeparator(m_xBuilder->weld_combo_box(u"textseparator"_ustr)) + , m_xDecimalSeparatorLabel(m_xBuilder->weld_label(u"decimallabel"_ustr)) + , m_xDecimalSeparator(m_xBuilder->weld_combo_box(u"decimalseparator"_ustr)) + , m_xThousandsSeparatorLabel(m_xBuilder->weld_label(u"thousandslabel"_ustr)) + , m_xThousandsSeparator(m_xBuilder->weld_combo_box(u"thousandsseparator"_ustr)) + , m_xRowHeader(m_xBuilder->weld_check_button(u"containsheaders"_ustr)) + , m_xCharSetHeader(m_xBuilder->weld_widget(u"charsetframe"_ustr)) + , m_xCharSetLabel(m_xBuilder->weld_label(u"charsetlabel"_ustr)) + , m_xCharSet(new CharSetListBox(m_xBuilder->weld_combo_box(u"charset"_ustr))) { for(sal_Int32 nIdx {0}; nIdx>=0;) m_xFieldSeparator->append_text( lcl_getListEntry(m_aFieldSeparatorList, nIdx) ); @@ -93,24 +100,23 @@ namespace dbaui { short nFlag; weld::Widget* pFrame; - } aSections[] = { + } const aSections[] = { { TC_EXTENSION, m_xExtensionHeader.get() }, { TC_SEPARATORS, m_xFormatHeader.get() }, { TC_HEADER, m_xRowHeader.get() }, - { TC_CHARSET, m_xCharSetHeader.get() }, - { 0, nullptr } + { TC_CHARSET, m_xCharSetHeader.get() } }; - for ( size_t section=0; section < SAL_N_ELEMENTS( aSections ) - 1; ++section ) + for (auto const & section: aSections) { - if ( ( m_nAvailableSections & aSections[section].nFlag ) != 0 ) + if ( ( m_nAvailableSections & section.nFlag ) != 0 ) { // the section is visible, no need to do anything here continue; } // hide all elements from this section - aSections[section].pFrame->hide(); + section.pFrame->hide(); } m_xContainer->show(); @@ -121,7 +127,7 @@ namespace dbaui m_aGetExtensionHandler.Call(this); } - IMPL_LINK_NOARG(OTextConnectionHelper, OnSetExtensionHdl, weld::ToggleButton&, void) + IMPL_LINK_NOARG(OTextConnectionHelper, OnSetExtensionHdl, weld::Toggleable&, void) { bool bDoEnable = m_xAccessOtherFiles->get_active(); m_xOwnExtension->set_sensitive(bDoEnable); @@ -135,7 +141,7 @@ namespace dbaui _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xTextSeparator.get())); _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xDecimalSeparator.get())); _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xThousandsSeparator.get())); - _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ToggleButton>(m_xRowHeader.get())); + _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::Toggleable>(m_xRowHeader.get())); _rControlList.emplace_back(new OSaveValueWidgetWrapper<weld::ComboBox>(m_xCharSet->get_widget())); } @@ -350,22 +356,22 @@ namespace dbaui return sExtension; } - OUString OTextConnectionHelper::GetSeparator(const weld::ComboBox& rBox, const OUString& rList) + OUString OTextConnectionHelper::GetSeparator(const weld::ComboBox& rBox, std::u16string_view rList) { sal_Unicode const nTok = '\t'; int nPos(rBox.find_text(rBox.get_active_text())); if (nPos == -1) - return rBox.get_active_text().copy(0); + return rBox.get_active_text(); if ( m_xTextSeparator.get() != &rBox || nPos != (rBox.get_count()-1) ) return OUString( - static_cast< sal_Unicode >( rList.getToken((nPos*2)+1, nTok ).toInt32() )); + static_cast< sal_Unicode >( o3tl::toInt32(o3tl::getToken(rList, (nPos*2)+1, nTok )) )); // somewhat strange ... translates for instance an "32" into " " return OUString(); } - void OTextConnectionHelper::SetSeparator( weld::ComboBox& rBox, const OUString& rList, const OUString& rVal ) + void OTextConnectionHelper::SetSeparator( weld::ComboBox& rBox, std::u16string_view rList, const OUString& rVal ) { if (rVal.getLength()==1) { @@ -373,9 +379,9 @@ namespace dbaui for(sal_Int32 nIdx {0}; nIdx>=0;) { sal_Int32 nPrevIdx {nIdx}; - if (static_cast<sal_Unicode>(rList.getToken(1, '\t', nIdx).toInt32()) == nVal) + if (static_cast<sal_Unicode>(o3tl::toInt32(o3tl::getToken(rList, 1, '\t', nIdx))) == nVal) { - rBox.set_entry_text(rList.getToken(0, '\t', nPrevIdx)); + rBox.set_entry_text(OUString(o3tl::getToken(rList,0, '\t', nPrevIdx))); return; } } |