summaryrefslogtreecommitdiff
path: root/sc/source/ui/dbgui/imoptdlg.cxx
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2006-03-22 11:09:38 +0000
committerOliver Bolte <obo@openoffice.org>2006-03-22 11:09:38 +0000
commitc991c99eb2afc2ab0386662bd1713c6c029303e9 (patch)
treee967a6af4073dcb320d502c49551d6b33e6893ea /sc/source/ui/dbgui/imoptdlg.cxx
parente7ad52010a7d031b34b3d7985ac968fee54c0757 (diff)
INTEGRATION: CWS dr46 (1.11.106); FILE MERGED
2006/02/16 13:06:16 er 1.11.106.1: #i4925# CSV export with option 'save as shown'
Diffstat (limited to 'sc/source/ui/dbgui/imoptdlg.cxx')
-rw-r--r--sc/source/ui/dbgui/imoptdlg.cxx281
1 files changed, 5 insertions, 276 deletions
diff --git a/sc/source/ui/dbgui/imoptdlg.cxx b/sc/source/ui/dbgui/imoptdlg.cxx
index 1abb82b1a0ed..747011ed995a 100644
--- a/sc/source/ui/dbgui/imoptdlg.cxx
+++ b/sc/source/ui/dbgui/imoptdlg.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: imoptdlg.cxx,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: rt $ $Date: 2005-09-08 20:36:52 $
+ * last change: $Author: obo $ $Date: 2006-03-22 12:09:38 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -49,280 +49,6 @@
static const sal_Char pStrFix[] = "FIX";
-//CHINA001 //========================================================================
-//CHINA001 // ScDelimiterTable
-//CHINA001 //========================================================================
-//CHINA001
-//CHINA001 class ScDelimiterTable
-//CHINA001 {
-//CHINA001 public:
-//CHINA001 ScDelimiterTable( const String& rDelTab )
-//CHINA001 : theDelTab ( rDelTab ),
-//CHINA001 cSep ( '\t' ),
-//CHINA001 nCount ( rDelTab.GetTokenCount('\t') ),
-//CHINA001 nIter ( 0 )
-//CHINA001 {}
-//CHINA001
-//CHINA001 USHORT GetCode( const String& rDelimiter ) const;
-//CHINA001 String GetDelimiter( sal_Unicode nCode ) const;
-//CHINA001
-//CHINA001 String FirstDel() { nIter = 0; return theDelTab.GetToken( nIter, cSep ); }
-//CHINA001 String NextDel() { nIter +=2; return theDelTab.GetToken( nIter, cSep ); }
-//CHINA001
-//CHINA001 private:
-//CHINA001 const String theDelTab;
-//CHINA001 const sal_Unicode cSep;
-//CHINA001 const xub_StrLen nCount;
-//CHINA001 xub_StrLen nIter;
-//CHINA001 };
-//CHINA001
-//CHINA001 //------------------------------------------------------------------------
-//CHINA001
-//CHINA001 USHORT ScDelimiterTable::GetCode( const String& rDel ) const
-//CHINA001 {
-//CHINA001 sal_Unicode nCode = 0;
-//CHINA001 xub_StrLen i = 0;
-//CHINA001
-//CHINA001 if ( nCount >= 2 )
-//CHINA001 {
-//CHINA001 while ( i<nCount )
-//CHINA001 {
-//CHINA001 if ( rDel == theDelTab.GetToken( i, cSep ) )
-//CHINA001 {
-//CHINA001 nCode = (sal_Unicode) theDelTab.GetToken( i+1, cSep ).ToInt32();
-//CHINA001 i = nCount;
-//CHINA001 }
-//CHINA001 else
-//CHINA001 i += 2;
-//CHINA001 }
-//CHINA001 }
-//CHINA001
-//CHINA001 return nCode;
-//CHINA001 }
-//CHINA001
-//CHINA001 //------------------------------------------------------------------------
-//CHINA001
-//CHINA001 String ScDelimiterTable::GetDelimiter( sal_Unicode nCode ) const
-//CHINA001 {
-//CHINA001 String aStrDel;
-//CHINA001 xub_StrLen i = 0;
-//CHINA001
-//CHINA001 if ( nCount >= 2 )
-//CHINA001 {
-//CHINA001 while ( i<nCount )
-//CHINA001 {
-//CHINA001 if ( nCode == (sal_Unicode) theDelTab.GetToken( i+1, cSep ).ToInt32() )
-//CHINA001 {
-//CHINA001 aStrDel = theDelTab.GetToken( i, cSep );
-//CHINA001 i = nCount;
-//CHINA001 }
-//CHINA001 else
-//CHINA001 i += 2;
-//CHINA001 }
-//CHINA001 }
-//CHINA001
-//CHINA001 return aStrDel;
-//CHINA001 }
-//CHINA001
-//CHINA001 //========================================================================
-//CHINA001 // ScImportOptionsDlg
-//CHINA001 //========================================================================
-//CHINA001
-//CHINA001 ScImportOptionsDlg::ScImportOptionsDlg(
-//CHINA001 Window* pParent,
-//CHINA001 BOOL bAscii,
-//CHINA001 const ScImportOptions* pOptions,
-//CHINA001 const String* pStrTitle,
-//CHINA001 BOOL bMultiByte,
-//CHINA001 BOOL bOnlyDbtoolsEncodings,
-//CHINA001 BOOL bImport )
-//CHINA001
-//CHINA001 : ModalDialog ( pParent, ScResId( RID_SCDLG_IMPORTOPT ) ),
-//CHINA001 aBtnOk ( this, ScResId( BTN_OK ) ),
-//CHINA001 aBtnCancel ( this, ScResId( BTN_CANCEL ) ),
-//CHINA001 aBtnHelp ( this, ScResId( BTN_HELP ) ),
-//CHINA001 aFtFieldSep ( this, ScResId( FT_FIELDSEP ) ),
-//CHINA001 aEdFieldSep ( this, ScResId( ED_FIELDSEP ) ),
-//CHINA001 aFtTextSep ( this, ScResId( FT_TEXTSEP ) ),
-//CHINA001 aEdTextSep ( this, ScResId( ED_TEXTSEP ) ),
-//CHINA001 aFtFont ( this, ScResId( FT_FONT ) ),
-//CHINA001 aLbFont ( this, ScResId( bAscii ? DDLB_FONT : LB_FONT ) ),
-//CHINA001 aFlFieldOpt ( this, ScResId( FL_FIELDOPT ) ),
-//CHINA001 aCbFixed ( this, ScResId( CB_FIXEDWIDTH ) )
-//CHINA001 {
-//CHINA001 // im Ctor-Initializer nicht moeglich (MSC kann das nicht):
-//CHINA001 pFieldSepTab = new ScDelimiterTable( String(ScResId(SCSTR_FIELDSEP)) );
-//CHINA001 pTextSepTab = new ScDelimiterTable( String(ScResId(SCSTR_TEXTSEP)) );
-//CHINA001
-//CHINA001 String aStr = pFieldSepTab->FirstDel();
-//CHINA001 sal_Unicode nCode;
-//CHINA001
-//CHINA001 while ( aStr.Len() > 0 )
-//CHINA001 {
-//CHINA001 aEdFieldSep.InsertEntry( aStr );
-//CHINA001 aStr = pFieldSepTab->NextDel();
-//CHINA001 }
-//CHINA001
-//CHINA001 aStr = pTextSepTab->FirstDel();
-//CHINA001
-//CHINA001 while ( aStr.Len() > 0 )
-//CHINA001 {
-//CHINA001 aEdTextSep.InsertEntry( aStr );
-//CHINA001 aStr = pTextSepTab->NextDel();
-//CHINA001 }
-//CHINA001
-//CHINA001 aEdFieldSep.SetText( aEdFieldSep.GetEntry(0) );
-//CHINA001 aEdTextSep.SetText( aEdTextSep.GetEntry(0) );
-//CHINA001
-//CHINA001 if ( bOnlyDbtoolsEncodings )
-//CHINA001 { //!TODO: Unicode and MultiByte would need work in each filter
-//CHINA001 // Think of field lengths in dBase export
-//CHINA001 if ( bMultiByte )
-//CHINA001 aLbFont.FillFromDbTextEncodingMap( bImport, RTL_TEXTENCODING_INFO_UNICODE );
-//CHINA001 else
-//CHINA001 aLbFont.FillFromDbTextEncodingMap( bImport, RTL_TEXTENCODING_INFO_UNICODE |
-//CHINA001 RTL_TEXTENCODING_INFO_MULTIBYTE );
-//CHINA001 }
-//CHINA001 else if ( !bAscii )
-//CHINA001 { //!TODO: Unicode would need work in each filter
-//CHINA001 if ( bMultiByte )
-//CHINA001 aLbFont.FillFromTextEncodingTable( bImport, RTL_TEXTENCODING_INFO_UNICODE );
-//CHINA001 else
-//CHINA001 aLbFont.FillFromTextEncodingTable( bImport, RTL_TEXTENCODING_INFO_UNICODE |
-//CHINA001 RTL_TEXTENCODING_INFO_MULTIBYTE );
-//CHINA001 }
-//CHINA001 else
-//CHINA001 {
-//CHINA001 if ( pOptions )
-//CHINA001 {
-//CHINA001 nCode = pOptions->nFieldSepCode;
-//CHINA001 aStr = pFieldSepTab->GetDelimiter( nCode );
-//CHINA001
-//CHINA001 if ( !aStr.Len() )
-//CHINA001 aEdFieldSep.SetText( String((sal_Unicode)nCode) );
-//CHINA001 else
-//CHINA001 aEdFieldSep.SetText( aStr );
-//CHINA001
-//CHINA001 nCode = pOptions->nTextSepCode;
-//CHINA001 aStr = pTextSepTab->GetDelimiter( nCode );
-//CHINA001
-//CHINA001 if ( !aStr.Len() )
-//CHINA001 aEdTextSep.SetText( String((sal_Unicode)nCode) );
-//CHINA001 else
-//CHINA001 aEdTextSep.SetText( aStr );
-//CHINA001 }
-//CHINA001 // all encodings allowed, even Unicode
-//CHINA001 aLbFont.FillFromTextEncodingTable( bImport );
-//CHINA001 }
-//CHINA001
-//CHINA001 if( bAscii )
-//CHINA001 {
-//CHINA001 Size aWinSize( GetSizePixel() );
-//CHINA001 aWinSize.Height() = aCbFixed.GetPosPixel().Y() + aCbFixed.GetSizePixel().Height();
-//CHINA001 Size aDiffSize( LogicToPixel( Size( 0, 6 ), MapMode( MAP_APPFONT ) ) );
-//CHINA001 aWinSize.Height() += aDiffSize.Height();
-//CHINA001 SetSizePixel( aWinSize );
-//CHINA001 aCbFixed.Show();
-//CHINA001 aCbFixed.SetClickHdl( LINK( this, ScImportOptionsDlg, FixedWidthHdl ) );
-//CHINA001 aCbFixed.Check( FALSE );
-//CHINA001 }
-//CHINA001 else
-//CHINA001 {
-//CHINA001 aFlFieldOpt.SetText( aFtFont.GetText() );
-//CHINA001 aFtFieldSep.Hide();
-//CHINA001 aFtTextSep.Hide();
-//CHINA001 aFtFont.Hide();
-//CHINA001 aEdFieldSep.Hide();
-//CHINA001 aEdTextSep.Hide();
-//CHINA001 aCbFixed.Hide();
-//CHINA001 aLbFont.GrabFocus();
-//CHINA001 aLbFont.SetDoubleClickHdl( LINK( this, ScImportOptionsDlg, DoubleClickHdl ) );
-//CHINA001 }
-//CHINA001
-//CHINA001 aLbFont.SelectTextEncoding( pOptions ? pOptions->eCharSet :
-//CHINA001 gsl_getSystemTextEncoding() );
-//CHINA001
-//CHINA001 // optionaler Titel:
-//CHINA001 if ( pStrTitle )
-//CHINA001 SetText( *pStrTitle );
-//CHINA001
-//CHINA001 FreeResource();
-//CHINA001 }
-//CHINA001
-//CHINA001 //------------------------------------------------------------------------
-//CHINA001
-//CHINA001 __EXPORT ScImportOptionsDlg::~ScImportOptionsDlg()
-//CHINA001 {
-//CHINA001 delete pFieldSepTab;
-//CHINA001 delete pTextSepTab;
-//CHINA001 }
-//CHINA001
-//CHINA001 //------------------------------------------------------------------------
-//CHINA001
-//CHINA001 void ScImportOptionsDlg::GetImportOptions( ScImportOptions& rOptions ) const
-//CHINA001 {
-//CHINA001 rOptions.SetTextEncoding( aLbFont.GetSelectTextEncoding() );
-//CHINA001
-//CHINA001 if ( aCbFixed.IsVisible() )
-//CHINA001 {
-//CHINA001 rOptions.nFieldSepCode = GetCodeFromCombo( aEdFieldSep );
-//CHINA001 rOptions.nTextSepCode = GetCodeFromCombo( aEdTextSep );
-//CHINA001 rOptions.bFixedWidth = aCbFixed.IsChecked();
-//CHINA001 }
-//CHINA001 }
-//CHINA001
-//CHINA001 //------------------------------------------------------------------------
-//CHINA001
-//CHINA001 USHORT ScImportOptionsDlg::GetCodeFromCombo( const ComboBox& rEd ) const
-//CHINA001 {
-//CHINA001 ScDelimiterTable* pTab;
-//CHINA001 String aStr( rEd.GetText() );
-//CHINA001 USHORT nCode;
-//CHINA001
-//CHINA001 if ( &rEd == &aEdTextSep )
-//CHINA001 pTab = pTextSepTab;
-//CHINA001 else
-//CHINA001 pTab = pFieldSepTab;
-//CHINA001
-//CHINA001 if ( !aStr.Len() )
-//CHINA001 {
-//CHINA001 nCode = 0; // kein Trennzeichen
-//CHINA001 }
-//CHINA001 else
-//CHINA001 {
-//CHINA001 nCode = pTab->GetCode( aStr );
-//CHINA001
-//CHINA001 if ( nCode == 0 )
-//CHINA001 nCode = (USHORT)aStr.GetChar(0);
-//CHINA001 }
-//CHINA001
-//CHINA001 return nCode;
-//CHINA001 }
-//CHINA001
-//CHINA001 //------------------------------------------------------------------------
-//CHINA001
-//CHINA001 IMPL_LINK( ScImportOptionsDlg, FixedWidthHdl, CheckBox*, pCheckBox )
-//CHINA001 {
-//CHINA001 if( pCheckBox == &aCbFixed )
-//CHINA001 {
-//CHINA001 BOOL bEnable = !aCbFixed.IsChecked();
-//CHINA001 aFtFieldSep.Enable( bEnable );
-//CHINA001 aEdFieldSep.Enable( bEnable );
-//CHINA001 aFtTextSep.Enable( bEnable );
-//CHINA001 aEdTextSep.Enable( bEnable );
-//CHINA001 }
-//CHINA001 return 0;
-//CHINA001 }
-//CHINA001
-//CHINA001 IMPL_LINK( ScImportOptionsDlg, DoubleClickHdl, ListBox*, pLb )
-//CHINA001 {
-//CHINA001 if ( pLb == &aLbFont )
-//CHINA001 {
-//CHINA001 aBtnOk.Click();
-//CHINA001 }
-//CHINA001 return 0;
-//CHINA001 }
-
//------------------------------------------------------------------------
// Der Options-String darf kein Semikolon mehr enthalten (wegen Pickliste)
// darum ab Version 336 Komma stattdessen
@@ -342,6 +68,7 @@ ScImportOptions::ScImportOptions( const String& rStr )
nTextSepCode = (sal_Unicode) rStr.GetToken(1,',').ToInt32();
aStrFont = rStr.GetToken(2,',');
eCharSet = ScGlobal::GetCharsetValue(aStrFont);
+ bSaveAsShown = (rStr.GetToken( 3, ',' ).ToInt32() ? TRUE : FALSE);
}
}
@@ -359,6 +86,8 @@ String ScImportOptions::BuildString() const
aResult += String::CreateFromInt32(nTextSepCode);
aResult += ',';
aResult += aStrFont;
+ aResult += ',';
+ aResult += String::CreateFromInt32( bSaveAsShown ? 1 : 0 );
return aResult;
}