Subversion Repositories Scribus

Rev

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