oowriter/conversion.cpp
1#include "conversion.h"
2#include <kdebug.h>
3#include <tdelocale.h>
4
5TQString Conversion::importAlignment( const TQString& align )
6{
7 if ( align == "center" || align == "justify" )
8 return align;
9 if ( align == "start" )
10 return "left";
11 if ( align == "end" )
12 return "right";
13 kdWarning(30518) << "Conversion::importAlignment unknown alignment " << align << endl;
14 return "auto";
15}
16
17TQString Conversion::exportAlignment( const TQString& align )
18{
19 if ( align == "center" || align == "justify" )
20 return align;
21 if ( align == "left" || align == "auto" ) // auto handled by text-auto-align
22 return "start";
23 if ( align == "right" )
24 return "end";
25 kdWarning(30518) << "Conversion::exportAlignment unknown alignment " << align << endl;
26 return "auto";
27}
28
29TQPair<int,TQString> Conversion::importWrapping( const TQString& oowrap )
30{
31 if ( oowrap == "none" )
32 // 'no wrap' means 'avoid horizontal space'
33 return qMakePair( 2, TQString() );
34 if ( oowrap == "left" || oowrap == "right" )
35 // Left and right, no problem
36 return qMakePair( 1, oowrap );
37 if ( oowrap == "run-through" )
38 return qMakePair( 0, TQString() );
39 if ( oowrap == "biggest" ) // OASIS extension
40 return qMakePair( 1, TQString::fromLatin1( "biggest" ) );
41
43 // dynamic is called "optimal" in the OO GUI. It's different from biggest because it can lead to parallel.
44
45 // Those are not supported in KWord, let's use biggest instead
46 return qMakePair( 1, TQString::fromLatin1( "biggest" ) );
47}
48
49TQString Conversion::exportWrapping( const TQPair<int,TQString>& runAroundAttribs )
50{
51 switch( runAroundAttribs.first ) {
52 case 0:
53 return "run-through";
54 case 1: // left, right, or biggest -> ok
55 return runAroundAttribs.second;
56 case 2:
57 return "none";
58 default:
59 return "ERROR"; // ERROR
60 }
61}
62
63int Conversion::importOverflowBehavior( const TQString& oasisOverflowBehavior )
64{
65 if ( oasisOverflowBehavior == "auto-extend-frame" )
66 return 0; // AutoExtendFrame
67 if ( oasisOverflowBehavior == "auto-create-new-frame" )
68 return 1; // AutoCreateNewFrame
69 if ( oasisOverflowBehavior == "ignore" )
70 return 2; // Ignore extra text
71 kdWarning(30518) << "Invalid overflow behavior " << oasisOverflowBehavior << endl;
72 return 0;
73}
74
75TQString Conversion::exportOverflowBehavior( const TQString& kwordAutoCreateNewFrame )
76{
77 switch ( kwordAutoCreateNewFrame.toInt() ) {
78 case 1:
79 return "auto-create-new-frame";
80 case 2:
81 return "ignore";
82 default:
83 case 0:
84 return "auto-extend-frame";
85 }
86}
87
88int Conversion::importCounterType( const TQString& numFormat )
89{
90 if ( numFormat == "1" )
91 return 1;
92 if ( numFormat == "a" )
93 return 2;
94 if ( numFormat == "A" )
95 return 3;
96 if ( numFormat == "i" )
97 return 4;
98 if ( numFormat == "I" )
99 return 5;
100 return 0;
101}
102
103TQString Conversion::headerTypeToFramesetName( const TQString& localName, bool hasEvenOdd )
104{
105 if ( localName == "header" )
106 return hasEvenOdd ? i18n("Odd Pages Header") : i18n( "Header" );
107 if ( localName == "header-left" )
108 return i18n("Even Pages Header");
109 if ( localName == "footer" )
110 return hasEvenOdd ? i18n("Odd Pages Footer") : i18n( "Footer" );
111 if ( localName == "footer-left" )
112 return i18n("Even Pages Footer");
113 kdWarning(30518) << "Unknown tag in headerTypeToFramesetName: " << localName << endl;
114 // ######
115 //return i18n("First Page Header");
116 //return i18n("First Page Footer");
117 return TQString();
118}
119
120int Conversion::headerTypeToFrameInfo( const TQString& localName, bool /*hasEvenOdd*/ )
121{
122 if ( localName == "header" )
123 return 3; // odd headers
124 if ( localName == "header-left" )
125 return 2; // even headers
126 if ( localName == "footer" )
127 return 6; // odd footers
128 if ( localName == "footer-left" )
129 return 5; // even footers
130
131 // ### return 1; // first header
132 // ### return 4; // first footer
133 return 0;
134}