Subversion Repositories Scribus

Rev

Rev 220 | Rev 243 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3 paul 1
/***************************************************************************
2
                          scribusdoc.cpp  -  description
3
                             -------------------
4
    begin                : Fre Apr  6 21:47:55 CEST 2001
5
    copyright            : (C) 2001 by Franz Schmid
6
    email                : Franz.Schmid@altmuehlnet.de
7
 ***************************************************************************/
8
 
9
/***************************************************************************
10
 *                                                                         *
11
 *   This program is free software; you can redistribute it and/or modify  *
12
 *   it under the terms of the GNU General Public License as published by  *
13
 *   the Free Software Foundation; either version 2 of the License, or     *
14
 *   (at your option) any later version.                                   *
15
 *                                                                         *
16
 ***************************************************************************/
17
 
18
#include "scribusdoc.h"
19
#include <qfile.h>
20
 
21
ScribusDoc::ScribusDoc()
22
{
167 Franz 23
        modified = false;
24
        MasterP = false;
25
        Marks = true;
3 paul 26
        Guides = true;
27
        GuideLock = false;
28
        SnapGuides = false;
167 Franz 29
        ShowPic = true;
30
        Raster = false;
241 Franz 31
        Base = false;
167 Franz 32
        useRaster = false;
33
        EditClip = false;
34
        EditClipMode = 0;
35
        loading = false;
36
        minorGrid = 20;
37
        majorGrid = 100;
38
        minorColor = QColor(green);
39
        majorColor = QColor(green);
3 paul 40
        guideColor = QColor(darkBlue);
41
        GuideRad = 10;
167 Franz 42
        Scale = 1.0;
3 paul 43
        Dpen = "Black";
44
        Dshade2 = 100;
45
        Dbrush = "Black";
46
        Dshade = 100;
47
        Dwidth = 1;
48
        DLineArt = SolidLine;
178 Franz 49
        DocName = QObject::tr("Document")+"-";
3 paul 50
        UsedFonts.clear();
51
        Dfont = "";
111 Franz 52
        Dsize = 120;
3 paul 53
        CurrentSel = -1;
54
        DocTitel = "";
55
        DocAutor = "";
56
        DocComments = "";
68 Franz 57
        DocKeyWords = "";
3 paul 58
        PageC = 0;
59
        LastAuto = 0;
60
        FirstAuto = 0;
61
        DraggedElem = 0;
62
        GroupCounter = 1;
63
        Vorlagen.clear();
64
        struct StVorL vg;
65
        vg.Vname = "Normal Internal";
66
        vg.LineSpa = 15;
67
        vg.Ausri = 0;
68
        vg.Indent = 0;
69
        vg.First = 0;
70
        vg.Avor = 0;
71
        vg.Anach = 0;
72
        vg.Font = "";
73
        vg.FontSize = Dsize;
140 Franz 74
        vg.TabValues.clear();
153 Franz 75
        vg.Drop = false;
76
        vg.DropLin = 2;
173 Franz 77
        vg.FontEffect = 0;
78
        vg.FColor = Dbrush;
79
        vg.FShade = Dshade;
80
        vg.SColor = Dpen;
81
        vg.SShade = Dshade2;
241 Franz 82
        vg.BaseAdj = false;
3 paul 83
        Vorlagen.append(vg);
84
        vg.Vname = "Center Internal";
85
        vg.Ausri = 1;
86
        Vorlagen.append(vg);
87
        vg.Vname = "Rechts Internal";
88
        vg.Ausri = 2;
89
        Vorlagen.append(vg);
90
        vg.Vname = "Block Internal";
91
        vg.Ausri = 3;
92
        Vorlagen.append(vg);
93
        vg.Vname = "EBlock Internal";
94
        vg.Ausri = 4;
95
        Vorlagen.append(vg);
96
        Layers.clear();
97
        struct Layer ll;
98
        ll.LNr = 0;
99
        ll.Level = 0;
178 Franz 100
        ll.Name = QObject::tr("Background");
3 paul 101
        ll.Sichtbar = true;
102
        ll.Drucken = true;
103
        Layers.append(ll);
104
        ActiveLayer = 0;
105
        JavaScripts.clear();
106
        UnDoValid = false;
107
        UnData.UnCode = -1;
167 Franz 108
        CurrentStyle = 0;
109
        CurrentABStil = 0;
3 paul 110
        TotalItems = 0;
111
        TemplateMode = false;
112
        PDF_Optionen.Thumbnails = false;
113
        PDF_Optionen.Articles = false;
114
        PDF_Optionen.Compress = true;
202 Franz 115
        PDF_Optionen.CompressMethod = 0;
116
        PDF_Optionen.Quality = 0;
3 paul 117
        PDF_Optionen.RecalcPic = false;
118
        PDF_Optionen.Bookmarks = false;
119
        PDF_Optionen.PicRes = 300;
203 Franz 120
        PDF_Optionen.Version = 14;
3 paul 121
        PDF_Optionen.Resolution = 300;
122
        PDF_Optionen.Binding = 0;
123
        PDF_Optionen.EmbedList.clear();
124
        PDF_Optionen.PresentMode = false;
125
        PDF_Optionen.Datei = "";
126
        PDF_Optionen.PresentVals.clear();
203 Franz 127
        PDF_Optionen.UseRGB = true;
3 paul 128
        PDF_Optionen.UseProfiles = false;
129
        PDF_Optionen.UseProfiles2 = false;
130
        PDF_Optionen.SolidProf = "";
131
        PDF_Optionen.SComp = 3;
132
        PDF_Optionen.ImageProf = "";
133
        PDF_Optionen.PrintProf = "";
134
        PDF_Optionen.Info = "";
135
        PDF_Optionen.Intent = 0;
136
        PDF_Optionen.Intent2 = 0;
137
        PDF_Optionen.BleedTop = 0;
138
        PDF_Optionen.BleedLeft = 0;
139
        PDF_Optionen.BleedRight = 0;
140
        PDF_Optionen.BleedBottom = 0;
141
        PDF_Optionen.EmbeddedI = false;
142
        PDF_Optionen.Encrypt = false;
143
        PDF_Optionen.PassOwner = "";
144
        PDF_Optionen.PassUser = "";
145
        PDF_Optionen.Permissions = -4;
146
        RePos = false;
147
        BookMarks.clear();
148
        OldBM = false;
149
        hasName = false;
63 Franz 150
        DoDrawing = true;
3 paul 151
        RotMode = 0;
123 Franz 152
        SubMode = -1;
3 paul 153
        ASaveTimer = new QTimer(this);
27 Franz 154
        MLineStyles.clear();
3 paul 155
        FT_Init_FreeType( &library );
156
}
157
 
158
ScribusDoc::~ScribusDoc()
159
{
160
        FT_Done_FreeType( library );
161
}
162
 
163
void ScribusDoc::setModified()
164
{
165
        modified = true;
166
}
167
 
168
void ScribusDoc::setUnModified()
169
{
170
        modified = false;
171
}
172
 
173
bool ScribusDoc::isModified() const
174
{
175
  return modified;
176
}
177
/** Setzt die Seitenattribute */
80 Franz 178
void ScribusDoc::setPage(double b, double h, double t, double l, double r, double bo, double sp, double ab, bool atf, bool fp)
3 paul 179
{
180
        PageB = b;
181
        PageH = h;
182
        PageM.Top = t;
183
        PageM.Left = l;
184
        PageM.Right = r;
185
        PageM.Bottom = bo;
186
        PageSp = sp;
187
        PageSpa = ab;
188
        PageFP = fp;
189
        PageAT = atf;
190
}
191
 
80 Franz 192
void ScribusDoc::resetPage(double t, double l, double r, double bo, bool fp)
3 paul 193
{
194
        PageM.Top = t;
195
        PageM.Left = l;
196
        PageM.Right = r;
197
        PageM.Bottom = bo;
198
        PageFP = fp;
199
}
200
 
220 Franz 201
bool ScribusDoc::AddFont(QString name, QFont fo)
3 paul 202
{
220 Franz 203
        bool ret = false;
204
        bool error;
3 paul 205
        FT_Face      face;
220 Franz 206
        error = FT_New_Face( library, (*AllFonts)[name]->Datei, 0, &face );
207
        if (error)
208
                return ret;
209
        if ((*AllFonts)[name]->ReadMetrics())
167 Franz 210
        {
220 Franz 211
                (*AllFonts)[name]->CharWidth[13] = 0;
212
                (*AllFonts)[name]->CharWidth[9] = 1;
213
                QString afnm = (*AllFonts)[name]->Datei.left((*AllFonts)[name]->Datei.length()-3);
214
                QFile afm(afnm+"afm");
3 paul 215
                if(!(afm.exists()))
220 Franz 216
                {
217
                        afm.setName(afnm+"Afm");
218
                        if(!(afm.exists()))
219
                                afm.setName(afnm+"AFM");
220
                }
221
                if (afm.exists())
222
                        FT_Attach_File(face, afm.name());
223
                FFonts[name] = face;
224
                UsedFonts[name] = fo;
225
                ret = true;
167 Franz 226
        }
220 Franz 227
        else
228
                FT_Done_Face( face );
229
        return ret;
3 paul 230
}