Rebased ref, commits from common ancestor: commit 306db5d9840507501cc82cfa481e7abe33f50dd1 Author: Bernhard Widl <bernhard.w...@cib.de> Date: Wed Apr 5 14:41:22 2017 +0200
tdf#55236 save settings of CSV export dialog Change-Id: I250e2d8d9d7b7b806a60fb2779321685e84b44bf Reviewed-on: https://gerrit.libreoffice.org/36144 Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de> Tested-by: Thorsten Behrens <thorsten.behr...@cib.de> diff --git a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs index bd17f4aa8153..0f732969278d 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Calc.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Calc.xcs @@ -1023,6 +1023,60 @@ <value>-1</value> </prop> </group> + <group oor:name="CSVExport"> + <info> + <desc>Contains setting for Text CSV Export</desc> + </info> + <prop oor:name="CharSet" oor:type="xs:int" oor:nillable="false"> + <info> + <desc>Char Set</desc> + <label>CharSet</label> + </info> + <value>-1</value> + </prop> + <prop oor:name="FieldSeparator" oor:type="xs:string" oor:nillable="false"> + <info> + <desc>Field delimiter</desc> + <label>FieldSeparator</label> + </info> + <value/> + </prop> + <prop oor:name="TextSeparator" oor:type="xs:string" oor:nillable="false"> + <info> + <desc>Text delimiter</desc> + <label>TextSeparator</label> + </info> + <value/> + </prop> + <prop oor:name="SaveTrueCellContent" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>If true, formatted cell content is exported. If false, raw cell content is exported.</desc> + <label>SaveTrueCellContent</label> + </info> + <value>true</value> + </prop> + <prop oor:name="SaveCellFormulas" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>If true, text formulas are exported instead of the calculated values.</desc> + <label>SaveCellFormulas</label> + </info> + <value>false</value> + </prop> + <prop oor:name="QuoteAllTextCells" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>If true, text cells are always enclosed in quotes with no exception.</desc> + <label>QuoteAllTextCells</label> + </info> + <value>false</value> + </prop> + <prop oor:name="FixedWidth" oor:type="xs:boolean" oor:nillable="false"> + <info> + <desc>All fields are exported having the same width</desc> + <label>FixedWidth</label> + </info> + <value>false</value> + </prop> + </group> <group oor:name="CSVImport"> <info> <desc>Contains setting for Text CSV Import</desc> diff --git a/sc/Library_scui.mk b/sc/Library_scui.mk index e694885aa13b..4b911d6846b1 100644 --- a/sc/Library_scui.mk +++ b/sc/Library_scui.mk @@ -18,6 +18,10 @@ $(eval $(call gb_Library_set_include,scui,\ $$(INCLUDE) \ )) +$(eval $(call gb_Library_use_custom_headers,scui,\ + officecfg/registry \ +)) \ + $(eval $(call gb_Library_set_precompiled_header,scui,$(SRCDIR)/sc/inc/pch/precompiled_scui)) $(eval $(call gb_Library_use_sdk_api,scui)) diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx index 4f946f771cd7..9fd86f5fb265 100644 --- a/sc/inc/scabstdlg.hxx +++ b/sc/inc/scabstdlg.hxx @@ -313,6 +313,7 @@ class AbstractScImportOptionsDlg : public VclAbstractDialog { public: virtual void GetImportOptions( ScImportOptions& rOptions ) const = 0; + virtual void SaveImportOptions() const = 0; }; class AbstractScTextImportOptionsDlg : public VclAbstractDialog diff --git a/sc/source/ui/attrdlg/scdlgfact.cxx b/sc/source/ui/attrdlg/scdlgfact.cxx index 6bf050d4c0cb..d257401560cc 100644 --- a/sc/source/ui/attrdlg/scdlgfact.cxx +++ b/sc/source/ui/attrdlg/scdlgfact.cxx @@ -587,6 +587,11 @@ void AbstractScImportOptionsDlg_Impl::GetImportOptions( ScImportOptions& rOption pDlg->GetImportOptions(rOptions); } +void AbstractScImportOptionsDlg_Impl::SaveImportOptions() const +{ + pDlg->SaveImportOptions(); +} + LanguageType AbstractScTextImportOptionsDlg_Impl::GetLanguageType() const { return pDlg->getLanguageType(); diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx index ea9ea53f925f..62fa40ad5f23 100644 --- a/sc/source/ui/attrdlg/scdlgfact.hxx +++ b/sc/source/ui/attrdlg/scdlgfact.hxx @@ -365,6 +365,7 @@ class AbstractScImportOptionsDlg_Impl : public AbstractScImportOptionsDlg { DECL_ABSTDLG_BASE( AbstractScImportOptionsDlg_Impl, ScImportOptionsDlg) virtual void GetImportOptions( ScImportOptions& rOptions ) const override; + virtual void SaveImportOptions() const override; }; class AbstractScTextImportOptionsDlg_Impl : public AbstractScTextImportOptionsDlg diff --git a/sc/source/ui/dbgui/scuiimoptdlg.cxx b/sc/source/ui/dbgui/scuiimoptdlg.cxx index 114ec3c88e5f..f807606f3824 100644 --- a/sc/source/ui/dbgui/scuiimoptdlg.cxx +++ b/sc/source/ui/dbgui/scuiimoptdlg.cxx @@ -24,6 +24,7 @@ #include "scresid.hxx" #include "sc.hrc" #include <comphelper/string.hxx> +#include <officecfg/Office/Calc.hxx> #include <osl/thread.h> #include <rtl/tencinfo.h> @@ -202,18 +203,34 @@ ScImportOptionsDlg::ScImportOptionsDlg( if( bAscii ) { + sal_Int32 nCharSet = officecfg::Office::Calc::Dialogs::CSVExport::CharSet::get(); + OUString strFieldSeparator = officecfg::Office::Calc::Dialogs::CSVExport::FieldSeparator::get(); + OUString strTextSeparator = officecfg::Office::Calc::Dialogs::CSVExport::TextSeparator::get(); + bool bSaveTrueCellContent = officecfg::Office::Calc::Dialogs::CSVExport::SaveTrueCellContent::get(); + bool bSaveCellFormulas = officecfg::Office::Calc::Dialogs::CSVExport::SaveCellFormulas::get(); + bool bQuoteAllTextCells = officecfg::Office::Calc::Dialogs::CSVExport::QuoteAllTextCells::get(); + bool bFixedWidth = officecfg::Office::Calc::Dialogs::CSVExport::FixedWidth::get(); + m_pCbFixed->Show(); m_pCbFixed->SetClickHdl( LINK( this, ScImportOptionsDlg, FixedWidthHdl ) ); - m_pCbFixed->Check( false ); + m_pCbFixed->Check( bFixedWidth ); + FixedWidthHdl(m_pCbFixed); m_pCbShown->Show(); - m_pCbShown->Check(); + m_pCbShown->Check( bSaveTrueCellContent ); m_pCbQuoteAll->Show(); - m_pCbQuoteAll->Check( false ); + m_pCbQuoteAll->Check( bQuoteAllTextCells ); m_pCbFormulas->Show(); - ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current() ); - bool bFormulas = pViewSh && - pViewSh->GetViewData().GetOptions().GetOption( VOPT_FORMULAS); - m_pCbFormulas->Check( bFormulas ); + // default option for "save formulas" no longer taken from view shell but from persisted dialog settings + m_pCbFormulas->Check( bSaveCellFormulas ); + // if no charset, text separator or field separator exist, keep the values from dialog initialization + if (strFieldSeparator.getLength() > 0) + m_pEdFieldSep->SetText( strFieldSeparator ); + if (strTextSeparator.getLength() > 0) + m_pEdTextSep->SetText( strTextSeparator ); + if (nCharSet < 0 || nCharSet == RTL_TEXTENCODING_DONTKNOW ) + m_pLbCharset->SelectTextEncoding(pOptions ? pOptions->eCharSet : osl_getThreadTextEncoding()); + else + m_pLbCharset->SelectTextEncoding(nCharSet); } else { @@ -229,10 +246,11 @@ ScImportOptionsDlg::ScImportOptionsDlg( m_pCbFormulas->Hide(); m_pLbCharset->GrabFocus(); m_pLbCharset->SetDoubleClickHdl( LINK( this, ScImportOptionsDlg, DoubleClickHdl ) ); + + m_pLbCharset->SelectTextEncoding(pOptions ? pOptions->eCharSet : + osl_getThreadTextEncoding()); } - m_pLbCharset->SelectTextEncoding( pOptions ? pOptions->eCharSet : - osl_getThreadTextEncoding() ); // optionaler Titel: if ( pStrTitle ) @@ -326,4 +344,17 @@ IMPL_LINK_TYPED( ScImportOptionsDlg, DoubleClickHdl, ListBox&, rLb, void ) } } +void ScImportOptionsDlg::SaveImportOptions() const +{ + std::shared_ptr < comphelper::ConfigurationChanges > batch(comphelper::ConfigurationChanges::create()); + officecfg::Office::Calc::Dialogs::CSVExport::CharSet::set(this->m_pLbCharset->GetSelectTextEncoding(), batch); + officecfg::Office::Calc::Dialogs::CSVExport::FieldSeparator::set(m_pEdFieldSep->GetText(), batch); + officecfg::Office::Calc::Dialogs::CSVExport::TextSeparator::set(m_pEdTextSep->GetText(), batch); + officecfg::Office::Calc::Dialogs::CSVExport::FixedWidth::set(m_pCbFixed->IsChecked(), batch); + officecfg::Office::Calc::Dialogs::CSVExport::SaveCellFormulas::set(m_pCbFormulas->IsChecked(), batch); + officecfg::Office::Calc::Dialogs::CSVExport::SaveTrueCellContent::set(m_pCbShown->IsChecked(), batch); + officecfg::Office::Calc::Dialogs::CSVExport::QuoteAllTextCells::set(m_pCbQuoteAll->IsChecked(), batch); + batch->commit(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/source/ui/inc/scuiimoptdlg.hxx b/sc/source/ui/inc/scuiimoptdlg.hxx index 9848e332e1f0..04f663dd3bd7 100644 --- a/sc/source/ui/inc/scuiimoptdlg.hxx +++ b/sc/source/ui/inc/scuiimoptdlg.hxx @@ -39,7 +39,8 @@ public: virtual ~ScImportOptionsDlg(); virtual void dispose() override; - void GetImportOptions( ScImportOptions& rOptions ) const; + virtual void GetImportOptions( ScImportOptions& rOptions ) const; + virtual void SaveImportOptions() const; private: VclPtr<VclFrame> m_pFieldFrame; diff --git a/sc/source/ui/unoobj/filtuno.cxx b/sc/source/ui/unoobj/filtuno.cxx index 96f74ce7b949..1ee2b3665d07 100644 --- a/sc/source/ui/unoobj/filtuno.cxx +++ b/sc/source/ui/unoobj/filtuno.cxx @@ -283,6 +283,7 @@ sal_Int16 SAL_CALL ScFilterOptionsObj::execute() throw(uno::RuntimeException, st OSL_ENSURE(pDlg, "Dialog create fail!"); if ( pDlg->Execute() == RET_OK ) { + pDlg->SaveImportOptions(); pDlg->GetImportOptions( aOptions ); save_CharSet( aOptions.eCharSet, bExport ); if ( bAscii ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits