Subversion Repositories Scribus

Rev

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