Subversion Repositories Scribus

Rev

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