Rev 117 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3 | paul | 1 | #include "editformats.h" |
2 | #include "editformats.moc" |
||
3 | #include "edit1format.h" |
||
4 | #include <qmessagebox.h> |
||
117 | Franz | 5 | #include "customfdialog.h" |
6 | #include "scribusXml.h" |
||
3 | paul | 7 | extern QPixmap loadIcon(QString nam); |
8 | |||
33 | Franz | 9 | StilFormate::StilFormate( QWidget* parent, ScribusDoc *doc, preV *avail) |
3 | paul | 10 | : QDialog( parent, "Formate", true, 0) |
11 | { |
||
12 | resize( 327, 260 ); |
||
13 | setCaption( tr( "Edit Styles" ) ); |
||
83 | Franz | 14 | setIcon(loadIcon("AppIcon.png")); |
3 | paul | 15 | fon = avail; |
16 | Docu = doc; |
||
17 | StilFormateLayout = new QHBoxLayout( this ); |
||
18 | StilFormateLayout->setSpacing( 5 ); |
||
19 | StilFormateLayout->setMargin( 10 ); |
||
20 | |||
21 | ListBox1 = new QListBox( this, "ListBox1" ); |
||
22 | ListBox1->setMinimumSize( QSize( 200, 240 ) ); |
||
23 | StilFormateLayout->addWidget( ListBox1 ); |
||
24 | |||
25 | Layout15 = new QVBoxLayout; |
||
26 | Layout15->setSpacing( 6 ); |
||
27 | Layout15->setMargin( 0 ); |
||
28 | |||
117 | Franz | 29 | LoadS = new QPushButton( this, "LoadF" ); |
30 | LoadS->setText( tr( "Append" ) ); |
||
31 | Layout15->addWidget( LoadS ); |
||
32 | |||
3 | paul | 33 | NewB = new QPushButton( this, "NewB" ); |
34 | NewB->setText( tr( "New" ) ); |
||
35 | Layout15->addWidget( NewB ); |
||
36 | |||
37 | EditB = new QPushButton( this, "EditB" ); |
||
38 | EditB->setText( tr( "Edit" ) ); |
||
39 | EditB->setDefault( true ); |
||
40 | EditB->setEnabled(false); |
||
41 | Layout15->addWidget( EditB ); |
||
42 | |||
43 | DublicateB = new QPushButton( this, "DublicateB" ); |
||
44 | DublicateB->setText( tr( "Duplicate" ) ); |
||
45 | DublicateB->setEnabled(false); |
||
46 | Layout15->addWidget( DublicateB ); |
||
47 | |||
48 | DeleteB = new QPushButton( this, "DeleteB" ); |
||
49 | DeleteB->setText( tr( "Delete" ) ); |
||
50 | DeleteB->setEnabled(false); |
||
51 | Layout15->addWidget( DeleteB ); |
||
52 | |||
53 | SaveB = new QPushButton( this, "SaveB" ); |
||
54 | SaveB->setText( tr( "Save" ) ); |
||
55 | Layout15->addWidget( SaveB ); |
||
56 | |||
57 | CancelB = new QPushButton( this, "CancelB" ); |
||
58 | CancelB->setText( tr( "Cancel" ) ); |
||
59 | Layout15->addWidget( CancelB ); |
||
60 | QSpacerItem* spacer = new QSpacerItem( 0, 0, QSizePolicy::Minimum, QSizePolicy::Expanding ); |
||
61 | Layout15->addItem( spacer ); |
||
62 | StilFormateLayout->addLayout( Layout15 ); |
||
63 | |||
64 | // signals and slots connections |
||
65 | connect(CancelB, SIGNAL(clicked()), this, SLOT(reject())); |
||
66 | connect(SaveB, SIGNAL(clicked()), this, SLOT(accept())); |
||
67 | connect(EditB, SIGNAL(clicked()), this, SLOT(editFormat())); |
||
68 | connect(NewB, SIGNAL(clicked()), this, SLOT(neuesFormat())); |
||
117 | Franz | 69 | connect(LoadS, SIGNAL(clicked()), this, SLOT(loadStyles())); |
3 | paul | 70 | connect(DublicateB, SIGNAL(clicked()), this, SLOT(dupFormat())); |
71 | connect(DeleteB, SIGNAL(clicked()), this, SLOT(deleteFormat())); |
||
72 | connect(ListBox1, SIGNAL(highlighted(QListBoxItem*)), this, SLOT(selFormat(QListBoxItem*))); |
||
73 | TempVorl = doc->Vorlagen; |
||
74 | UpdateFList(); |
||
75 | } |
||
76 | |||
77 | void StilFormate::selFormat(QListBoxItem *c) |
||
78 | { |
||
79 | sFnumber = c->listBox()->currentItem() + 5; |
||
80 | EditB->setEnabled(true); |
||
81 | DublicateB->setEnabled(true); |
||
82 | DeleteB->setEnabled(true); |
||
83 | } |
||
84 | |||
85 | void StilFormate::dupFormat() |
||
86 | { |
||
87 | struct StVorL sty; |
||
115 | Franz | 88 | sty.Vname = tr("Copy of %1").arg(TempVorl[sFnumber].Vname); |
3 | paul | 89 | sty.LineSpa = TempVorl[sFnumber].LineSpa; |
90 | sty.Ausri = TempVorl[sFnumber].Ausri; |
||
91 | sty.Indent = TempVorl[sFnumber].Indent; |
||
92 | sty.First = TempVorl[sFnumber].First; |
||
93 | sty.Avor = TempVorl[sFnumber].Avor; |
||
94 | sty.Anach = TempVorl[sFnumber].Anach; |
||
95 | sty.Font = TempVorl[sFnumber].Font; |
||
96 | sty.FontSize = TempVorl[sFnumber].FontSize; |
||
97 | TempVorl.append(sty); |
||
98 | sFnumber = TempVorl.count()-1; |
||
80 | Franz | 99 | EditStyle* dia2 = new EditStyle(this, &TempVorl[sFnumber], TempVorl, true, fon, static_cast<double>(Docu->AutoLine)); |
3 | paul | 100 | if (!dia2->exec()) |
101 | TempVorl.remove(TempVorl.fromLast()); |
||
102 | delete dia2; |
||
103 | UpdateFList(); |
||
104 | } |
||
105 | |||
106 | void StilFormate::neuesFormat() |
||
107 | { |
||
108 | struct StVorL sty; |
||
109 | sty.Vname = tr("New Style"); |
||
111 | Franz | 110 | sty.LineSpa = ((Docu->Dsize / 10.0) * static_cast<double>(Docu->AutoLine) / 100) + (Docu->Dsize / 10.0); |
3 | paul | 111 | sty.Ausri = 0; |
112 | sty.Indent = 0; |
||
113 | sty.First = 0; |
||
114 | sty.Avor = 0; |
||
115 | sty.Anach = 0; |
||
116 | sty.Font = Docu->Dfont; |
||
117 | sty.FontSize = Docu->Dsize; |
||
118 | TempVorl.append(sty); |
||
119 | sFnumber = TempVorl.count()-1; |
||
80 | Franz | 120 | EditStyle* dia2 = new EditStyle(this, &TempVorl[sFnumber], TempVorl, true, fon, static_cast<double>(Docu->AutoLine)); |
3 | paul | 121 | if (!dia2->exec()) |
122 | TempVorl.remove(TempVorl.fromLast()); |
||
123 | delete dia2; |
||
124 | UpdateFList(); |
||
125 | } |
||
126 | |||
127 | void StilFormate::editFormat() |
||
128 | { |
||
80 | Franz | 129 | EditStyle* dia = new EditStyle(this, &TempVorl[sFnumber], TempVorl, false, fon, static_cast<double>(Docu->AutoLine)); |
3 | paul | 130 | dia->exec(); |
131 | delete dia; |
||
132 | UpdateFList(); |
||
133 | } |
||
134 | |||
135 | void StilFormate::deleteFormat() |
||
136 | { |
||
137 | int exit=QMessageBox::warning(this, |
||
138 | tr("Warning"), |
||
139 | tr("Do you really want do delete this Style?"), |
||
140 | tr("No"), |
||
141 | tr("Yes"), |
||
142 | 0, 0, 1); |
||
143 | if (exit == 1) |
||
144 | { |
||
145 | ListBox1->removeItem(sFnumber); |
||
146 | TempVorl.remove(TempVorl.at(sFnumber)); |
||
147 | UpdateFList(); |
||
148 | } |
||
149 | } |
||
150 | |||
117 | Franz | 151 | void StilFormate::loadStyles() |
152 | { |
||
153 | QString fileName; |
||
154 | #ifdef HAVE_LIBZ |
||
155 | CustomFDialog dia(this, tr("Open"), tr("Documents (*.sla *.sla.gz *.scd *.scd.gz);;All Files (*)")); |
||
156 | #else |
||
157 | CustomFDialog dia(this, tr("Open"), tr("Documents (*.sla *.scd);;All Files (*)")); |
||
158 | #endif |
||
159 | if (dia.exec() == QDialog::Accepted) |
||
160 | fileName = dia.selectedFile(); |
||
161 | else |
||
162 | return; |
||
163 | if (!fileName.isEmpty()) |
||
164 | { |
||
165 | ScriXmlDoc *ss = new ScriXmlDoc(); |
||
118 | Franz | 166 | ss->Vorlagen.clear(); |
167 | for (uint x = 5; x < TempVorl.count(); ++x) |
||
168 | { |
||
169 | ss->Vorlagen.append(TempVorl[x]); |
||
170 | } |
||
171 | uint old = TempVorl.count()-5; |
||
117 | Franz | 172 | if (ss->ReadStyles(fileName, Docu, fon)) |
173 | { |
||
118 | Franz | 174 | if (ss->Vorlagen.count() > old) |
117 | Franz | 175 | { |
118 | Franz | 176 | for (uint xx=old; xx<ss->Vorlagen.count(); ++xx) |
177 | { |
||
178 | struct StVorL sty; |
||
179 | sty.Vname = ss->Vorlagen[xx].Vname; |
||
180 | sty.LineSpa = ss->Vorlagen[xx].LineSpa; |
||
181 | sty.Ausri = ss->Vorlagen[xx].Ausri; |
||
182 | sty.Indent = ss->Vorlagen[xx].Indent; |
||
183 | sty.First = ss->Vorlagen[xx].First; |
||
184 | sty.Avor = ss->Vorlagen[xx].Avor; |
||
185 | sty.Anach = ss->Vorlagen[xx].Anach; |
||
186 | sty.Font = ss->Vorlagen[xx].Font; |
||
187 | sty.FontSize = ss->Vorlagen[xx].FontSize; |
||
188 | TempVorl.append(sty); |
||
189 | } |
||
117 | Franz | 190 | } |
191 | UpdateFList(); |
||
192 | } |
||
118 | Franz | 193 | delete ss; |
117 | Franz | 194 | } |
195 | } |
||
196 | |||
3 | paul | 197 | void StilFormate::UpdateFList() |
198 | { |
||
199 | ListBox1->clear(); |
||
200 | if (TempVorl.count() < 6) |
||
201 | return; |
||
202 | for (uint x = 5; x < TempVorl.count(); ++x) |
||
203 | { |
||
204 | ListBox1->insertItem(TempVorl[x].Vname); |
||
205 | } |
||
206 | if (ListBox1->currentItem() == -1) |
||
207 | { |
||
208 | DublicateB->setEnabled(false); |
||
209 | EditB->setEnabled(false); |
||
210 | DeleteB->setEnabled(false); |
||
211 | } |
||
212 | ListBox1->setSelected(ListBox1->currentItem(), false); |
||
213 | } |