Am 05.02.2012 20:52, schrieb Ivan Timofeev:
05.02.2012 23:37, Chr. Rossmanith пишет:
I've moved them to a method ResData2Output(). Please review.
Looks nice. All of the differences seem to be handled...
Oh, oh, oh! No, we must pass all the different values as paramerers to
the function.
I've added a third parameter nType to ResData2Output() (s. reworked
attached patch) and included the additional modifications (Semikolon
etc.) as well.
Christina
From 1c8b5f39b2deb13612b6603e04dc4d02c2cb5c7e Mon Sep 17 00:00:00 2001
From: Christina Rossmanith <ChrRossmanith@web.de>
Date: Sun, 5 Feb 2012 15:03:30 +0100
Subject: [PATCH] Reduced duplicate code (simian) / l10ntools
---
l10ntools/inc/export.hxx | 2 +-
l10ntools/source/export.cxx | 208 ++++++++++++++-----------------------------
2 files changed, 67 insertions(+), 143 deletions(-)
diff --git a/l10ntools/inc/export.hxx b/l10ntools/inc/export.hxx
index e0fcf05..750ca68 100644
--- a/l10ntools/inc/export.hxx
+++ b/l10ntools/inc/export.hxx
@@ -354,7 +354,7 @@ private:
sal_Bool PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp,
rtl::OString &rLangIndex, ResData *pResData);
-
+ void ResData2Output( PFormEntrys *pEntry, ResData *pResData, sal_uInt16 nType );
void MergeRest( ResData *pResData, sal_uInt16 nMode = MERGE_MODE_NORMAL );
void ConvertMergeContent( ByteString &rText );
diff --git a/l10ntools/source/export.cxx b/l10ntools/source/export.cxx
index 8909a1e..4c8eb98 100644
--- a/l10ntools/source/export.cxx
+++ b/l10ntools/source/export.cxx
@@ -1891,6 +1891,65 @@ sal_Bool Export::PrepareTextToMerge(ByteString &rText, sal_uInt16 nTyp,
return sal_True;
}
+void Export::ResData2Output( PFormEntrys *pEntry, ResData *pResData, sal_uInt16 nType )
+{
+ sal_Bool bAddSemicolon = sal_False;
+ sal_Bool bFirst = sal_True;
+ ByteString sCur;
+
+ for( unsigned int n = 0; n < aLanguages.size(); n++ ){
+ sCur = aLanguages[ n ];
+
+ ByteString sText;
+ sal_Bool bText = pEntry->GetTransex3Text( sText, nType, sCur , sal_True );
+ if ( bText && sText.Len() && sText != "-" ) {
+ ByteString sOutput;
+ if ( bNextMustBeDefineEOL) {
+ if ( bFirst )
+ sOutput += "\t\\\n";
+ else
+ sOutput += ";\t\\\n";
+ }
+ bFirst=sal_False;
+ sOutput += "\t";
+
+ if ( pResData->bText )
+ sOutput += pResData->sTextTyp;
+ else if ( pResData->bQuickHelpText )
+ sOutput += "QuickHelpText";
+ else if ( pResData->bTitle )
+ sOutput += "Title";
+
+ if ( ! Export::isSourceLanguage( sCur ) ) {
+ sOutput += "[ ";
+ sOutput += sCur;
+ sOutput += " ] ";
+ }
+ sOutput += "= ";
+ ConvertMergeContent( sText );
+ sOutput += sText;
+
+ if ( bDefine )
+ sOutput += ";\\\n";
+ else if ( !bNextMustBeDefineEOL )
+ sOutput += ";\n";
+ else
+ bAddSemicolon = sal_True;
+ for ( sal_uInt16 j = 1; j < nLevel; j++ )
+ sOutput += "\t";
+ WriteToMerged( sOutput , true );
+ }
+ }
+
+
+ if ( bAddSemicolon ) {
+ ByteString sOutput( ";" );
+ WriteToMerged( sOutput , false );
+ }
+
+ return;
+}
+
/*****************************************************************************/
void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
/*****************************************************************************/
@@ -1909,152 +1968,17 @@ void Export::MergeRest( ResData *pResData, sal_uInt16 nMode )
case MERGE_MODE_NORMAL : {
PFormEntrys *pEntry = pMergeDataFile->GetPFormEntrys( pResData );
- bool bWriteNoSlash = false;
- if ( pEntry && pResData->bText ) {
-
- sal_Bool bAddSemikolon = sal_False;
- sal_Bool bFirst = sal_True;
- ByteString sCur;
- ByteString sTmp = Export::sLanguages;
+ if ( pEntry ) {
+ if ( pResData->bText )
+ ResData2Output( pEntry, pResData, STRING_TYP_TEXT );
- for( unsigned int n = 0; n < aLanguages.size(); n++ ){
- sCur = aLanguages[ n ];
+ if ( pResData->bQuickHelpText )
+ ResData2Output( pEntry, pResData, STRING_TYP_QUICKHELPTEXT );
- ByteString sText;
- sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TEXT, sCur ,
sal_True );
- if ( bText && sText.Len() && sText != "-" ) {
- ByteString sOutput;
- if ( bNextMustBeDefineEOL) {
- if ( bFirst )
- sOutput += "\t\\\n";
- else
- sOutput += ";\t\\\n";
- }
- bFirst=sal_False;
- sOutput += "\t";
- sOutput += pResData->sTextTyp;
- if ( ! Export::isSourceLanguage( sCur ) ) {
- sOutput += "[ ";
- sOutput += sCur;
- sOutput += " ] ";
- }
- sOutput += "= ";
- ConvertMergeContent( sText );
- sOutput += sText;
-
- if ( bDefine && bWriteNoSlash )
- sOutput += ";\n";
-
- if ( bDefine )
- sOutput += ";\\\n";
- else if ( !bNextMustBeDefineEOL )
- sOutput += ";\n";
- else
- bAddSemikolon = sal_True;
- for ( sal_uInt16 j = 1; j < nLevel; j++ )
- sOutput += "\t";
- WriteToMerged( sOutput , true );
- }
- }
-
-
- if ( bAddSemikolon ) {
- ByteString sOutput( ";" );
- WriteToMerged( sOutput , false );
- }
- }
-
- if ( pEntry && pResData->bQuickHelpText ) {
- sal_Bool bAddSemikolon = sal_False;
- sal_Bool bFirst = sal_True;
- ByteString sCur;
-
- for( unsigned int n = 0; n < aLanguages.size(); n++ ){
- sCur = aLanguages[ n ];
-
- ByteString sText;
- sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_QUICKHELPTEXT,
sCur, sal_True );
- if ( bText && sText.Len() && sText != "-" ) {
- ByteString sOutput;
- if ( bNextMustBeDefineEOL) {
- if ( bFirst )
- sOutput += "\t\\\n";
- else
- sOutput += ";\t\\\n";
- }
- bFirst=sal_False;
- sOutput += "\t";
- sOutput += "QuickHelpText";
- if ( ! Export::isSourceLanguage( sCur ) ) {
- sOutput += "[ ";
- sOutput += sCur;
- sOutput += " ] ";
- }
- sOutput += "= ";
- ConvertMergeContent( sText );
- sOutput += sText;
- if ( bDefine )
- sOutput += ";\\\n";
- else if ( !bNextMustBeDefineEOL )
- sOutput += ";\n";
- else
- bAddSemikolon = sal_True;
- for ( sal_uInt16 j = 1; j < nLevel; j++ )
- sOutput += "\t";
- WriteToMerged( sOutput ,true );
- }
- }
- if ( bAddSemikolon ) {
- ByteString sOutput( ";" );
- WriteToMerged( sOutput , false );
- }
+ if ( pResData->bTitle )
+ ResData2Output( pEntry, pResData, STRING_TYP_TITLE );
}
- if ( pEntry && pResData->bTitle ) {
- sal_Bool bAddSemikolon = sal_False;
- sal_Bool bFirst = sal_True;
- ByteString sCur;
-
- for( unsigned int n = 0; n < aLanguages.size(); n++ ){
- sCur = aLanguages[ n ];
-
- ByteString sText;
- sal_Bool bText = pEntry->GetTransex3Text( sText, STRING_TYP_TITLE, sCur,
sal_True );
- if ( bText && sText.Len() && sText != "-" ) {
- ByteString sOutput;
- if ( bNextMustBeDefineEOL) {
- if ( bFirst )
- sOutput += "\t\\\n";
- else
- sOutput += ";\t\\\n";
- }
- bFirst=sal_False;
- sOutput += "\t";
- sOutput += "Title";
- if ( ! Export::isSourceLanguage( sCur ) ) {
- sOutput += "[ ";
- sOutput += sCur;
- sOutput += " ] ";
- }
- sOutput += "= ";
- ConvertMergeContent( sText );
- sOutput += sText;
- if ( bDefine )
- sOutput += ";\\\n";
- else if ( !bNextMustBeDefineEOL )
- sOutput += ";\n";
- else
- bAddSemikolon = sal_True;
- for ( sal_uInt16 j = 1; j < nLevel; j++ )
- sOutput += "\t";
- WriteToMerged( sOutput ,true );
- }
- }
- if ( bAddSemikolon ) {
- ByteString sOutput( ";" );
- WriteToMerged( sOutput ,false);
- }
- }
// Merge Lists
if ( pResData->bList ) {
--
1.7.4.1
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.