summaryrefslogtreecommitdiffstats
path: root/filters/kword/oowriter/conversion.cpp
blob: 259d97b5bd6a21213e6e4d7b627368bf238a5527 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include "conversion.h"
#include <kdebug.h>
#include <tdelocale.h>

TQString Conversion::importAlignment( const TQString& align )
{
    if ( align == "center" || align == "justify" )
        return align;
    if ( align == "start" )
        return "left";
    if ( align == "end" )
        return "right";
    kdWarning(30518) << "Conversion::importAlignment unknown alignment " << align << endl;
    return "auto";
}

TQString Conversion::exportAlignment( const TQString& align )
{
    if ( align == "center" || align == "justify" )
        return align;
    if ( align == "left" || align == "auto" ) // auto handled by text-auto-align
        return "start";
    if ( align == "right" )
        return "end";
    kdWarning(30518) << "Conversion::exportAlignment unknown alignment " << align << endl;
    return "auto";
}

TQPair<int,TQString> Conversion::importWrapping( const TQString& oowrap )
{
    if ( oowrap == "none" )
        // 'no wrap' means 'avoid horizontal space'
        return tqMakePair( 2, TQString() );
    if ( oowrap == "left" || oowrap == "right" )
        // Left and right, no problem
        return tqMakePair( 1, oowrap );
    if ( oowrap == "run-through" )
        return tqMakePair( 0, TQString() );
    if ( oowrap == "biggest" ) // OASIS extension
        return tqMakePair( 1, TQString::fromLatin1( "biggest" ) );

    ////if ( oowrap == "parallel" || oowrap == "dynamic" )
    // dynamic is called "optimal" in the OO GUI. It's different from biggest because it can lead to parallel.

    // Those are not supported in KWord, let's use biggest instead
    return tqMakePair( 1, TQString::fromLatin1( "biggest" ) );
}

TQString Conversion::exportWrapping( const TQPair<int,TQString>& runAroundAttribs )
{
    switch( runAroundAttribs.first ) {
    case 0:
        return "run-through";
    case 1: // left, right, or biggest -> ok
        return runAroundAttribs.second;
    case 2:
        return "none";
    default:
        return "ERROR"; // ERROR
    }
}

int Conversion::importOverflowBehavior( const TQString& oasisOverflowBehavior )
{
    if ( oasisOverflowBehavior == "auto-extend-frame" )
        return 0; // AutoExtendFrame
    if ( oasisOverflowBehavior == "auto-create-new-frame" )
        return 1; // AutoCreateNewFrame
    if ( oasisOverflowBehavior == "ignore" )
        return 2; // Ignore extra text
    kdWarning(30518) << "Invalid overflow behavior " << oasisOverflowBehavior << endl;
    return 0;
}

TQString Conversion::exportOverflowBehavior( const TQString& kwordAutoCreateNewFrame )
{
    switch ( kwordAutoCreateNewFrame.toInt() ) {
    case 1:
        return "auto-create-new-frame";
    case 2:
        return "ignore";
    default:
    case 0:
        return "auto-extend-frame";
    }
}

int Conversion::importCounterType( const TQString& numFormat )
{
    if ( numFormat == "1" )
        return 1;
    if ( numFormat == "a" )
        return 2;
    if ( numFormat == "A" )
        return 3;
    if ( numFormat == "i" )
        return 4;
    if ( numFormat == "I" )
        return 5;
    return 0;
}

TQString Conversion::headerTypeToFramesetName( const TQString& localName, bool hasEvenOdd )
{
    if ( localName == "header" )
        return hasEvenOdd ? i18n("Odd Pages Header") : i18n( "Header" );
    if ( localName == "header-left" )
        return i18n("Even Pages Header");
    if ( localName == "footer" )
        return hasEvenOdd ? i18n("Odd Pages Footer") : i18n( "Footer" );
    if ( localName == "footer-left" )
        return i18n("Even Pages Footer");
    kdWarning(30518) << "Unknown tag in headerTypeToFramesetName: " << localName << endl;
    // ######
    //return i18n("First Page Header");
    //return i18n("First Page Footer");
    return TQString();
}

int Conversion::headerTypeToFrameInfo( const TQString& localName, bool /*hasEvenOdd*/ )
{
    if ( localName == "header" )
        return 3; // odd headers
    if ( localName == "header-left" )
        return 2; // even headers
    if ( localName == "footer" )
        return 6; // odd footers
    if ( localName == "footer-left" )
        return 5; // even footers

    // ### return 1; // first header
    // ### return 4; // first footer
    return 0;
}