Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
3 paul 1
/***************************************************************************
2
                          texttoolb.cpp  -  description
3
                             -------------------
4
    begin                : Sun Mar 10 2002
5
    copyright            : (C) 2002 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 "werktoolb.h"
19
#include "werktoolb.moc"
20
#include "polyprops.h"
21
 
22
extern int PolyC;
23
extern int PolyFd;
24
extern float PolyF;
25
extern bool PolyS;
26
extern float PolyR;
27
extern QPixmap loadIcon(QString nam);
28
 
29
WerkToolB::WerkToolB(QMainWindow* parent) : QToolBar(tr("Tools"), parent)
30
{
31
        Select = new QToolButton(loadIcon("Kreuz.xpm"), tr("Select Items"), QString::null, this, SLOT(ModeFromTB()), this);
32
        Select->setToggleButton(true);
33
        Select->setOn(true);
34
        Rotiere = new QToolButton(loadIcon("Rotieren.xpm"), tr("Rotate Item"), QString::null, this, SLOT(ModeFromTB()), this);
35
        Rotiere->setToggleButton( true );
36
        Rotiere->setEnabled(false);
37
        Textedit = new QToolButton(loadIcon("Editm.xpm"),tr("Edit Contents of Frame"), QString::null, this, SLOT(ModeFromTB()), this);
38
        Textedit->setToggleButton( true );
39
        Textedit->setEnabled( FALSE );
40
        Zoom = new QToolButton(loadIcon("Lupe.xpm"),tr("Zooms in or out"), QString::null, this, SLOT(ModeFromTB()), this);
41
        Zoom->setToggleButton( true );
42
        Texte = new QToolButton(loadIcon("Text.xpm"),tr("Insert Textbox"), QString::null, this, SLOT(ModeFromTB()), this);
43
        Texte->setToggleButton( true );
44
        BildB = new QToolButton(loadIcon("Bild.xpm"),tr("Insert Picture"), QString::null, this, SLOT(ModeFromTB()), this);
45
        BildB->setToggleButton( true );
46
        Rechteck = new QToolButton(loadIcon("Rechtecke.xpm"),tr("Insert Rectangles"), QString::null, this, SLOT(ModeFromTB()), this);
47
        Rechteck->setToggleButton( true );
48
        Kreis = new QToolButton(loadIcon("Kreise.xpm"),tr("Insert Ovals"), QString::null, this, SLOT(ModeFromTB()), this);
49
        Kreis->setToggleButton( true );
50
        PolyM = new QPopupMenu();
51
        PolyM->insertItem(tr("Properties..."), this, SLOT(GetPolyProps()));
52
        Polygon = new QToolButton(loadIcon("spline.png"),tr("Insert Polygons"), QString::null, this, SLOT(ModeFromTB()), this);
53
        Polygon->setToggleButton( true );
54
        Polygon->setPopup(PolyM);
55
        Polygon->setPopupDelay(0);
56
        Linien = new QToolButton(loadIcon("Stift.xpm"),tr("Insert Lines"), QString::null, this, SLOT(ModeFromTB()), this);
57
        Linien->setToggleButton( true );
58
        PolyLin = new QToolButton(loadIcon("beziertool.png"),tr("Insert Bezier Curves"), QString::null, this, SLOT(ModeFromTB()), this);
59
        PolyLin->setToggleButton( true );
60
        KetteEin = new QToolButton(loadIcon("Lock.xpm"),tr("Create Textchains"), QString::null, this, SLOT(ModeFromTB()), this);
61
        KetteEin->setToggleButton( true );
62
        KetteEin->setEnabled(false);
63
        KetteAus = new QToolButton(loadIcon("Unlock.xpm"),tr("Break Textchains"), QString::null, this, SLOT(ModeFromTB()), this);
64
        KetteAus->setToggleButton( true );
65
        KetteAus->setEnabled(false);
66
        setCloseMode(QDockWindow::Undocked);
67
  connect(this, SIGNAL(placeChanged(QDockWindow::Place)), this, SLOT(Docken(QDockWindow::Place)));
68
  connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(Verbergen(bool)));
69
}
70
 
71
void WerkToolB::Docken(QDockWindow::Place p)
72
{
73
        if (p == InDock)
74
                setOrientation(Horizontal);
75
        else
76
                setOrientation(Vertical);
77
}
78
 
79
void WerkToolB::Verbergen(bool vis)
80
{
81
        if (!vis)
82
                emit Schliessen();
83
}
84
 
85
void WerkToolB::GetPolyProps()
86
{
87
        PolygonProps* dia = new PolygonProps(this);
88
  if (dia->exec())
89
        {
90
                PolyC = dia->Ecken->value();
91
                PolyF = dia->PFactor;
92
                PolyS = dia->Konvex->isChecked();
93
                PolyFd = dia->Slider1->value();
94
                PolyR = dia->Faktor2->value();
95
                }
96
        delete dia;
97
}
98
 
99
void WerkToolB::ModeFromTB()
100
{
101
        Select->setOn(false);
102
        Rotiere->setOn(false);
103
        Textedit->setOn(false);
104
        Zoom->setOn(false);
105
        Texte->setOn(false);
106
        BildB->setOn(false);
107
        Rechteck->setOn(false);
108
        Kreis->setOn(false);
109
        Linien->setOn(false);
110
        KetteEin->setOn(false);
111
        KetteAus->setOn(false);
112
        Polygon->setOn(false);
113
        PolyLin->setOn(false);
114
        if (Select == sender())
115
                {
116
                Select->setOn(true);
117
                emit NewMode(1);
118
                }
119
        if (Rotiere == sender())
120
                {
121
                Rotiere->setOn(true);
122
                emit NewMode(9);
123
                }
124
        if (Textedit == sender())
125
                {
126
                Textedit->setOn(true);
127
                emit NewMode(7);
128
                }
129
        if (Zoom == sender())
130
                {
131
                Zoom->setOn(true);
132
                emit NewMode(6);
133
                }
134
        if (Texte == sender())
135
                {
136
                Texte->setOn(true);
137
                emit NewMode(5);
138
                }
139
        if (BildB == sender())
140
                {
141
                BildB->setOn(true);
142
                emit NewMode(4);
143
                }
144
        if (Rechteck == sender())
145
                {
146
                Rechteck->setOn(true);
147
                emit NewMode(2);
148
                }
149
        if (Kreis == sender())
150
                {
151
                Kreis->setOn(true);
152
                emit NewMode(3);
153
                }
154
        if (Linien == sender())
155
                {
156
                Linien->setOn(true);
157
                emit NewMode(8);
158
                }
159
        if (KetteEin == sender())
160
                {
161
                KetteEin->setOn(true);
162
                emit NewMode(10);
163
                }
164
        if (KetteAus == sender())
165
                {
166
                KetteAus->setOn(true);
167
                emit NewMode(11);
168
                }
169
        if (Polygon == sender())
170
                {
171
                Polygon->setOn(true);
172
                emit NewMode(12);
173
                }
174
        if (PolyLin == sender())
175
                {
176
                PolyLin->setOn(true);
177
                emit NewMode(13);
178
                }
14 Franz 179
}
180
 
181
WerkToolBP::WerkToolBP(QMainWindow* parent) : QToolBar(tr("PDF-Tools"), parent)
182
{
183
        PDFM = new QPopupMenu();
184
        PDFM->insertItem(loadIcon("pushbutton.png"), tr("Button"));
185
        PDFM->insertItem(loadIcon("textview.png"), tr("Text Field"));
186
        PDFM->insertItem(loadIcon("checkbox.png"), tr("Check Box"));
187
        PDFM->insertItem(loadIcon("combobox.png"), tr("Combo Box"));
188
        PDFM->insertItem(loadIcon("listbox.png"), tr("List Box"));
189
        PDFTool = new QToolButton(loadIcon("pushbutton.png"),tr("Insert PDF-Fields"), QString::null, this, SLOT(ModeFromTB()), this);
190
        PDFTool->setToggleButton(true);
191
        PDFTool->setPopup(PDFM);
192
        PDFTool->setPopupDelay(0);
193
        PDFwerkz = 0;
194
        PDFA = new QPopupMenu();
195
        PDFA->insertItem(loadIcon("charset.png"), tr("Text"));
196
        PDFA->insertItem(loadIcon("goto.png"), tr("Link"));
197
        PDFaTool = new QToolButton(loadIcon("charset.png"),tr("Insert PDF-Annotations"), QString::null, this, SLOT(ModeFromTB()), this);
198
        PDFaTool->setToggleButton(true);
199
        PDFaTool->setPopup(PDFA);
200
        PDFaTool->setPopupDelay(0);
201
        PDFnotiz = 0;
202
        setCloseMode(QDockWindow::Undocked);
203
  connect(this, SIGNAL(placeChanged(QDockWindow::Place)), this, SLOT(Docken(QDockWindow::Place)));
204
  connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(Verbergen(bool)));
205
        connect(PDFM, SIGNAL(activated(int)), this, SLOT(setPDFtool(int)));
206
        connect(PDFA, SIGNAL(activated(int)), this, SLOT(setPDFnotiz(int)));
207
}
208
 
209
void WerkToolBP::setPDFnotiz(int id)
210
{
211
        int c = PDFA->indexOf(id);
212
        PDFnotiz = c;
213
        switch (c)
214
                {
215
                case 0:
216
                        PDFaTool->setPixmap(loadIcon("charset.png"));
217
                        break;
218
                case 1:
219
                        PDFaTool->setPixmap(loadIcon("goto.png"));
220
                        break;
221
                }
222
        PDFTool->setOn(false);
223
        PDFaTool->setOn(true);
224
        emit NewMode(19+PDFnotiz);
225
}
226
 
227
void WerkToolBP::setPDFtool(int id)
228
{
229
        int c = PDFM->indexOf(id);
230
        PDFwerkz = c;
231
        switch (c)
232
                {
233
                case 0:
234
                        PDFTool->setPixmap(loadIcon("pushbutton.png"));
235
                        break;
236
                case 1:
237
                        PDFTool->setPixmap(loadIcon("textview.png"));
238
                        break;
239
                case 2:
240
                        PDFTool->setPixmap(loadIcon("checkbox.png"));
241
                        break;
242
                case 3:
243
                        PDFTool->setPixmap(loadIcon("combobox.png"));
244
                        break;
245
                case 4:
246
                        PDFTool->setPixmap(loadIcon("listbox.png"));
247
                        break;
248
                }
249
        PDFTool->setOn(true);
250
        PDFaTool->setOn(false);
251
        emit NewMode(14+PDFwerkz);
252
}
253
 
254
void WerkToolBP::Docken(QDockWindow::Place p)
255
{
256
        setOrientation(Horizontal);
257
}
258
 
259
void WerkToolBP::Verbergen(bool vis)
260
{
261
        if (!vis)
262
                emit Schliessen();
263
}
264
 
265
void WerkToolBP::ModeFromTB()
266
{
267
        PDFTool->setOn(false);
268
        PDFaTool->setOn(false);
3 paul 269
        if (PDFTool == sender())
270
                {
271
                PDFTool->setOn(true);
272
                emit NewMode(14+PDFwerkz);
273
                }
274
        if (PDFaTool == sender())
275
                {
276
                PDFaTool->setOn(true);
277
                emit NewMode(19+PDFnotiz);
278
                }
279
}
280
 
14 Franz 281