Subversion Repositories Scribus

Rev

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