Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
1789 fschmid 7
 
3540 cbradney 8
 
10862 cbradney 9
#include "propertiespalette.h"
3457 avox 10
 
10200 cbradney 11
#include <QCloseEvent>
9931 fschmid 12
#include <QComboBox>
10200 cbradney 13
#include <QEvent>
14
#include <QFocusEvent>
8501 cbradney 15
#include <QKeyEvent>
13951 fschmid 16
#include <QTransform>
10200 cbradney 17
#include <QObject>
9931 fschmid 18
#include <QPoint>
10200 cbradney 19
#include <QSpacerItem>
20
#include <QStackedWidget>
9931 fschmid 21
#include <QTimer>
10200 cbradney 22
#include <QToolBox>
23
#include <QToolTip>
24
#include <QVBoxLayout>
25
#include <QValidator>
26
#include <QWidget>
3934 cbradney 27
 
17539 jghali 28
#if defined(_MSC_VER) && !defined(_USE_MATH_DEFINES)
14170 jghali 29
#define _USE_MATH_DEFINES
30
#endif
9931 fschmid 31
#include <cmath>
3934 cbradney 32
#include "arrowchooser.h"
121 Franz 33
#include "autoform.h"
12092 fschmid 34
#include "basepointwidget.h"
3934 cbradney 35
#include "commonstrings.h"
7747 jghali 36
#include "colorlistbox.h"
9796 fschmid 37
#include "sccolorengine.h"
3934 cbradney 38
#include "cpalette.h"
17353 fschmid 39
#include "pageitem_table.h"
10601 mrdocs 40
#include "pageitem_textframe.h"
16546 jghali 41
#include "propertiespalette_group.h"
42
#include "propertiespalette_image.h"
43
#include "propertiespalette_line.h"
18772 fschmid 44
#include "propertiespalette_shadow.h"
16546 jghali 45
#include "propertiespalette_shape.h"
16856 craig 46
#include "propertiespalette_table.h"
16546 jghali 47
#include "propertiespalette_text.h"
48
#include "propertiespalette_utils.h"
49
#include "propertiespalette_xyz.h"
3934 cbradney 50
#include "sccombobox.h"
51
#include "scfonts.h"
173 Franz 52
#include "scribus.h"
5243 cbradney 53
#include "scribuscore.h"
4695 cbradney 54
#include "scraction.h"
3934 cbradney 55
#include "scribusview.h"
56
#include "selection.h"
57
#include "spalette.h"
710 cbradney 58
#include "styleselect.h"
13606 jghali 59
#include "tabmanager.h"
16546 jghali 60
#include "transparencypalette.h"
806 cbradney 61
#include "units.h"
1263 tsoots 62
#include "undomanager.h"
2531 craig 63
#include "util.h"
10200 cbradney 64
#include "util_icon.h"
14284 fschmid 65
#include "util_math.h"
11206 fschmid 66
#include "dasheditor.h"
14389 cbradney 67
#include "fontcombo.h"
68
#include "colorcombo.h"
504 cbradney 69
 
14284 fschmid 70
//using namespace std;
504 cbradney 71
 
16546 jghali 72
PropertiesPalette::PropertiesPalette( QWidget* parent) : ScDockPalette( parent, "PropertiesPalette", 0)
265 Franz 73
{
17709 craig 74
        undoManager = UndoManager::instance();
5781 cbradney 75
        m_ScMW=0;
16546 jghali 76
        m_doc=0;
77
        m_haveDoc = false;
78
        m_haveItem = false;
8605 cbradney 79
        m_unitRatio = 1.0;
16546 jghali 80
 
16560 fschmid 81
        setObjectName(QString::fromLocal8Bit("PropertiesPalette"));
10529 fschmid 82
        setSizePolicy( QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
3 paul 83
 
1448 cbradney 84
        QFont f(font());
217 Franz 85
        f.setPointSize(f.pointSize()-1);
86
        setFont(f);
332 Franz 87
 
17383 fschmid 88
        TabStack = new ScTreeWidget( this );
17387 fschmid 89
//      Uncomment this line if the new behaviour makes any trouble.
90
//      TabStack->setToolBoxMode(true);
332 Franz 91
 
17383 fschmid 92
        xyzPal = new PropertiesPalette_XYZ( this );
93
        idXYZItem = TabStack->addItem( xyzPal, "X, Y, &Z" );
3 paul 94
 
18772 fschmid 95
        shadowPal = new PropertiesPalette_Shadow( this );
96
        idShadowItem = TabStack->addItem( shadowPal, "Soft Shadow" );
97
 
17383 fschmid 98
        shapePal = new PropertiesPalette_Shape( this );
99
        idShapeItem = TabStack->addItem( shapePal, "&Shape" );
68 Franz 100
 
17383 fschmid 101
        groupPal = new PropertiesPalette_Group( this );
102
        idGroupItem = TabStack->addItem(groupPal, "Groups");
3 paul 103
 
17383 fschmid 104
        textPal = new PropertiesPalette_Text( this );
105
        idTextItem = TabStack->addItem( textPal, "&Text" );
3 paul 106
 
17383 fschmid 107
        imagePal = new PropertiesPalette_Image(this);
108
        idImageItem=TabStack->addItem( imagePal, "&Image" );
11125 fschmid 109
 
17383 fschmid 110
        linePal = new PropertiesPalette_Line(this);
111
        idLineItem=TabStack->addItem( linePal, "&Line" );
3 paul 112
 
17383 fschmid 113
        Cpal = new Cpalette(this);
114
        idColorsItem = TabStack->addItem(Cpal, "&Colors" );
6451 fschmid 115
 
17383 fschmid 116
        Tpal = new Tpalette(this);
117
        idTransparencyItem = TabStack->addItem(Tpal, "&Transparency" );
8494 fschmid 118
 
17383 fschmid 119
        tablePal = new PropertiesPalette_Table(this);
120
        idTableItem = TabStack->addItem(tablePal, "T&able" );
6451 fschmid 121
 
16546 jghali 122
        setWidget( TabStack );
123
 
2199 cbradney 124
        languageChange();
216 Franz 125
 
16546 jghali 126
        connect(linePal, SIGNAL(lineModeChanged(int)), this, SLOT(NewLineMode(int)));
5564 mrdocs 127
 
16546 jghali 128
        connect(groupPal, SIGNAL(shapeChanged(int)) , this, SLOT(handleNewShape(int)));
129
        connect(groupPal, SIGNAL(shapeEditStarted()), this, SLOT(handleShapeEdit()));
130
 
17936 craig 131
        connect(TabStack, SIGNAL(currentChanged2(int)), this, SLOT(SelTab(int)));
13024 cbradney 132
 
16546 jghali 133
        connect(Cpal, SIGNAL(NewSpecial(double, double, double, double, double, double, double, double, double, double)), this, SLOT(NewSpGradient(double, double, double, double, double, double, double, double, double, double )));
134
        connect(Cpal, SIGNAL(editGradient(int)), this, SLOT(toggleGradientEdit(int)));
135
        connect(Tpal, SIGNAL(NewSpecial(double, double, double, double, double, double, double, double, double, double)), this, SLOT(NewSpGradientM(double, double, double, double, double, double, double, double )));
136
        connect(Tpal, SIGNAL(editGradient()), this, SLOT(toggleGradientEditM()));
13024 cbradney 137
 
16546 jghali 138
        m_haveItem = false;
18772 fschmid 139
        for (int ws = 1; ws < 10; ++ws)
2148 fschmid 140
                TabStack->setItemEnabled(ws, false);
141
        TabStack->setCurrentIndex(0);
10529 fschmid 142
        TabStack->widget(0)->setEnabled(false);
2148 fschmid 143
        TabStack->setItemEnabled(0, false);
3 paul 144
}
2156 fschmid 145
 
10862 cbradney 146
void PropertiesPalette::closeEvent(QCloseEvent *closeEvent)
7526 fschmid 147
{
14754 jghali 148
        if (m_ScMW && !m_ScMW->scriptIsRunning())
7526 fschmid 149
        {
16546 jghali 150
                if ((m_haveDoc) && (m_haveItem))
7526 fschmid 151
                {
10529 fschmid 152
                        if (Cpal->gradEditButton->isChecked())
7526 fschmid 153
                        {
12766 jghali 154
                                m_ScMW->view->requestMode(modeNormal);
16546 jghali 155
                                m_ScMW->view->RefreshGradient(m_item);
7526 fschmid 156
                        }
157
                }
158
        }
16546 jghali 159
        ScDockPalette::closeEvent(closeEvent);
7526 fschmid 160
}
161
 
10862 cbradney 162
void PropertiesPalette::setMainWindow(ScribusMainWindow* mw)
5257 cbradney 163
{
5781 cbradney 164
        m_ScMW=mw;
5622 jghali 165
        QPoint p1 = mapToGlobal(pos());
5781 cbradney 166
        QPoint p2 = m_ScMW->mapFromGlobal(p1);
8556 subik 167
        //Qt4 reparent(m_ScMW, this->getWFlags(), p2);
168
        setParent(m_ScMW);
169
        move(p2);
170
 
16546 jghali 171
        this->xyzPal->setMainWindow(mw);
18772 fschmid 172
        this->shadowPal->setMainWindow(mw);
16546 jghali 173
        this->shapePal->setMainWindow(mw);
174
        this->groupPal->setMainWindow(mw);
175
        this->imagePal->setMainWindow(mw);
176
        this->linePal->setMainWindow(mw);
177
        this->textPal->setMainWindow(mw);
16856 craig 178
        this->tablePal->setMainWindow(mw);
16546 jghali 179
 
180
        //connect(this->Cpal, SIGNAL(gradientChanged()), m_ScMW, SLOT(updtGradFill()));
181
        //connect(this->Cpal, SIGNAL(strokeGradientChanged()), m_ScMW, SLOT(updtGradStroke()));
17388 jghali 182
        connect(this->Tpal, SIGNAL(gradientChanged()), this, SLOT(handleGradientChanged()));
17353 fschmid 183
        connect(m_ScMW, SIGNAL(AppModeChanged(int,int)), this, SLOT(AppModeChanged()));
5257 cbradney 184
}
185
 
10862 cbradney 186
void PropertiesPalette::SelTab(int t)
3 paul 187
{
14754 jghali 188
        if (!m_ScMW || m_ScMW->scriptIsRunning())
173 Franz 189
                return;
14767 fschmid 190
        foreach (QObject *o, TabStack->widget(t)->children())
191
        {
192
                // Layouts, boxes etc aren't widgets at all
193
                // so let's skip them silently...
194
                QWidget *w = qobject_cast<QWidget*>(o);
195
                if (w)
196
                {
197
                        QWidget *i = TabStack->widget(t);
198
                        while ((i = i->nextInFocusChain()) != TabStack->widget(t))
199
                        {
200
                                if (((i->focusPolicy() & Qt::TabFocus) == Qt::TabFocus) && !i->focusProxy() && i->isEnabled())
201
                                {
202
                                        i->setFocus();
203
                                        break;
204
                                }
205
                        }
206
                }
207
        }
3 paul 208
}
209
 
10862 cbradney 210
void PropertiesPalette::setDoc(ScribusDoc *d)
3 paul 211
{
16546 jghali 212
        if((d == (ScribusDoc*) m_doc) || (m_ScMW && m_ScMW->scriptIsRunning()))
7677 jghali 213
                return;
214
 
16546 jghali 215
        if (m_doc)
216
        {
217
                disconnect(m_doc->m_Selection, SIGNAL(selectionChanged()), this, SLOT(handleSelectionChanged()));
218
                disconnect(m_doc             , SIGNAL(docChanged())      , this, SLOT(handleSelectionChanged()));
219
        }
14300 fschmid 220
 
16546 jghali 221
        m_doc = d;
222
        m_item = NULL;
17909 fschmid 223
        setEnabled(!m_doc->drawAsPreview);
16546 jghali 224
        Cpal->setDocument(m_doc);
7900 fschmid 225
        Cpal->setCurrentItem(NULL);
16546 jghali 226
        Tpal->setDocument(m_doc);
14300 fschmid 227
        Tpal->setCurrentItem(NULL);
16546 jghali 228
 
16832 jghali 229
        m_unitRatio = m_doc->unitRatio();
230
        m_unitIndex = m_doc->unitIndex();
8613 cbradney 231
//qt4 FIXME here
16546 jghali 232
        m_haveDoc = true;
233
        m_haveItem = false;
335 Franz 234
 
16546 jghali 235
        xyzPal->setDoc(m_doc);
18772 fschmid 236
        shadowPal->setDoc(m_doc);
16546 jghali 237
        shapePal->setDoc(m_doc);
238
        groupPal->setDoc(m_doc);
239
        imagePal->setDoc(m_doc);
240
        linePal->setDoc(m_doc);
241
        textPal->setDoc(m_doc);
16856 craig 242
        tablePal->setDocument(m_doc);
335 Franz 243
 
7677 jghali 244
        updateColorList();
4546 subik 245
 
16546 jghali 246
        connect(m_doc->m_Selection, SIGNAL(selectionChanged()), this, SLOT(handleSelectionChanged()));
247
        connect(m_doc             , SIGNAL(docChanged())      , this, SLOT(handleSelectionChanged()));
18534 jghali 248
 
249
        // Handle properties update when switching document
250
        handleSelectionChanged();
16546 jghali 251
}
4729 subik 252
 
16546 jghali 253
void PropertiesPalette::unsetDoc()
254
{
255
        if (m_doc)
256
        {
257
                disconnect(m_doc->m_Selection, SIGNAL(selectionChanged()), this, SLOT(handleSelectionChanged()));
258
                disconnect(m_doc             , SIGNAL(docChanged())      , this, SLOT(handleSelectionChanged()));
259
        }
17909 fschmid 260
        setEnabled(true);
16546 jghali 261
        m_haveDoc = false;
262
        m_haveItem = false;
263
        m_doc=NULL;
264
        m_item = NULL;
14854 fschmid 265
 
16546 jghali 266
        xyzPal->unsetItem();
267
        xyzPal->unsetDoc();
18772 fschmid 268
        shadowPal->unsetItem();
269
        shadowPal->unsetDoc();
16546 jghali 270
        shapePal->unsetItem();
271
        shapePal->unsetDoc();
272
        groupPal->unsetItem();
273
        groupPal->unsetDoc();
274
        imagePal->unsetItem();
275
        imagePal->unsetDoc();
276
        linePal->unsetItem();
277
        linePal->unsetDoc();
278
        textPal->unsetItem();
279
        textPal->unsetDoc();
16856 craig 280
        tablePal->unsetItem();
281
        tablePal->unsetDocument();
3 paul 282
 
7900 fschmid 283
        Cpal->setCurrentItem(NULL);
284
        Cpal->setDocument(NULL);
14300 fschmid 285
        Tpal->setCurrentItem(NULL);
286
        Tpal->setDocument(NULL);
16546 jghali 287
 
288
        m_haveItem = false;
16856 craig 289
        for (int ws = 1; ws < 9; ++ws)
11003 fschmid 290
                TabStack->setItemEnabled(ws, false);
291
        TabStack->widget(0)->setEnabled(false);
292
        TabStack->setItemEnabled(idXYZItem, false);
3 paul 293
}
294
 
10862 cbradney 295
void PropertiesPalette::unsetItem()
4738 cbradney 296
{
16546 jghali 297
        m_haveItem = false;
298
        m_item     = NULL;
7900 fschmid 299
        Cpal->setCurrentItem(NULL);
14300 fschmid 300
        Tpal->setCurrentItem(NULL);
17327 fschmid 301
        tablePal->unsetItem();
16546 jghali 302
        handleSelectionChanged();
4738 cbradney 303
}
4546 subik 304
 
10862 cbradney 305
void PropertiesPalette::setTextFlowMode(PageItem::TextFlowMode mode)
5620 jghali 306
{
16546 jghali 307
        if (!m_ScMW || m_ScMW->scriptIsRunning() || !m_haveItem)
5620 jghali 308
                return;
16546 jghali 309
        shapePal->displayTextFlowMode(mode);
310
        groupPal->displayTextFlowMode(mode);
311
}
312
 
313
PageItem* PropertiesPalette::currentItemFromSelection()
314
{
315
        PageItem *currentItem = NULL;
316
 
317
        if (m_doc)
8494 fschmid 318
        {
18753 fschmid 319
                if (m_doc->m_Selection->count() > 0)
320
                        currentItem = m_doc->m_Selection->itemAt(0);
16943 fschmid 321
        /*      if (m_doc->m_Selection->count() > 1)
16546 jghali 322
                {
16943 fschmid 323
                        int lowestItem = 999999;
16546 jghali 324
                        for (int a=0; a<m_doc->m_Selection->count(); ++a)
325
                        {
326
                                currentItem = m_doc->m_Selection->itemAt(a);
16943 fschmid 327
                                lowestItem = qMin(lowestItem, m_doc->Items->indexOf(currentItem));
16546 jghali 328
                        }
329
                        currentItem = m_doc->Items->at(lowestItem);
330
                }
331
                else if (m_doc->m_Selection->count() == 1)
332
                {
333
                        currentItem = m_doc->m_Selection->itemAt(0);
16943 fschmid 334
                } */
8494 fschmid 335
        }
16546 jghali 336
 
337
        return currentItem;
5620 jghali 338
}
339
 
17353 fschmid 340
void PropertiesPalette::AppModeChanged()
341
{
342
        if (!m_ScMW || m_ScMW->scriptIsRunning())
343
                return;
344
        if ((m_haveDoc) && (m_haveItem))
345
        {
346
                if (m_item->isTable())
347
                {
348
                        TabStack->setItemEnabled(idTextItem, m_doc->appMode == modeEditTable);
349
                        if (m_doc->appMode == modeEditTable)
350
                                connect(m_item->asTable(), SIGNAL(selectionChanged()), this, SLOT(handleSelectionChanged()));
351
                        else
352
                                disconnect(m_item->asTable(), SIGNAL(selectionChanged()), this, SLOT(handleSelectionChanged()));
353
                }
354
                textPal->handleSelectionChanged();
355
        }
356
}
357
 
16546 jghali 358
void PropertiesPalette::setCurrentItem(PageItem *i)
3 paul 359
{
14754 jghali 360
        if (!m_ScMW || m_ScMW->scriptIsRunning())
173 Franz 361
                return;
3894 cbradney 362
        //CB We shouldnt really need to process this if our item is the same one
363
        //maybe we do if the item has been changed by scripter.. but that should probably
364
        //set some status if so.
16546 jghali 365
        //FIXME: This wont work until when a canvas deselect happens, m_item must be NULL.
366
        //if (m_item == i)
3894 cbradney 367
        //      return;
11741 jghali 368
 
16546 jghali 369
        if (!i)
370
        {
371
                unsetItem();
372
                return;
373
        }
374
 
375
        int oldTabIndex = TabStack->currentIndex();
376
 
377
        if (!m_doc)
11741 jghali 378
                setDoc(i->doc());
379
 
17936 craig 380
        disconnect(TabStack, SIGNAL(currentChanged2(int)) , this, SLOT(SelTab(int)));
16546 jghali 381
        disconnect(linePal , SIGNAL(lineModeChanged(int)), this, SLOT(NewLineMode(int)));
4546 subik 382
 
16546 jghali 383
        m_haveItem = false;
384
        m_item = i;
13222 fschmid 385
 
17327 fschmid 386
        tablePal->setItem(m_item);
387
 
16546 jghali 388
        Tpal->setCurrentItem(m_item);
14300 fschmid 389
        Tpal->updateFromItem();
12471 cbradney 390
 
16546 jghali 391
        setTextFlowMode(m_item->textFlowMode());
12471 cbradney 392
 
16546 jghali 393
        connect(linePal , SIGNAL(lineModeChanged(int)), this, SLOT(NewLineMode(int)));
14308 fschmid 394
 
16546 jghali 395
//CB replaces old emits from PageItem::emitAllToGUI()
396
        setLocked(i->locked());
14308 fschmid 397
 
16546 jghali 398
        if ((m_item->isGroup()) && (!m_item->isSingleSel))
232 Franz 399
        {
8494 fschmid 400
                TabStack->setItemEnabled(idXYZItem, true);
18772 fschmid 401
                TabStack->setItemEnabled(idShadowItem, false);
8494 fschmid 402
                TabStack->setItemEnabled(idShapeItem, false);
6451 fschmid 403
                TabStack->setItemEnabled(idGroupItem, true);
14077 fschmid 404
                TabStack->setItemEnabled(idLineItem, false);
15060 fschmid 405
                TabStack->setItemEnabled(idColorsItem, false);
8494 fschmid 406
                TabStack->setItemEnabled(idTextItem, false);
407
                TabStack->setItemEnabled(idImageItem, false);
17387 fschmid 408
                TabStack->setItemEnabled(idTableItem, false);
6451 fschmid 409
        }
410
        else
411
                TabStack->setItemEnabled(idGroupItem, false);
16546 jghali 412
 
413
        m_haveItem = true;
414
 
415
        if (oldTabIndex != TabStack->currentIndex())
215 Franz 416
        {
16546 jghali 417
                //Must be called only when necessary : cause focus problem
418
                //in spinboxes when processing valueChanged() signals
419
                SelTab(TabStack->currentIndex());
215 Franz 420
        }
4546 subik 421
 
18534 jghali 422
        if (!sender())
423
        {
424
                xyzPal->handleSelectionChanged();
425
                shapePal->handleSelectionChanged();
426
                groupPal->handleSelectionChanged();
427
                imagePal->handleSelectionChanged();
428
                linePal->handleSelectionChanged();
429
                textPal->handleSelectionChanged();
430
                tablePal->handleSelectionChanged();
431
                Cpal->handleSelectionChanged();
432
        }
16546 jghali 433
 
434
        if (m_item->asOSGFrame())
13839 fschmid 435
        {
436
                TabStack->setItemEnabled(idXYZItem, true);
18772 fschmid 437
                TabStack->setItemEnabled(idShadowItem, true);
13839 fschmid 438
                TabStack->setItemEnabled(idShapeItem, true);
439
                TabStack->setItemEnabled(idGroupItem, false);
440
                TabStack->setItemEnabled(idLineItem, false);
441
                TabStack->setItemEnabled(idColorsItem, true);
16856 craig 442
                TabStack->setItemEnabled(idTableItem, false);
14300 fschmid 443
                TabStack->setItemEnabled(idTransparencyItem, false);
13839 fschmid 444
                TabStack->setItemEnabled(idTextItem, false);
445
                TabStack->setItemEnabled(idImageItem, false);
17387 fschmid 446
                TabStack->setItemEnabled(idTableItem, false);
13839 fschmid 447
        }
16546 jghali 448
        if (m_item->asSymbolFrame())
15060 fschmid 449
        {
450
                TabStack->setItemEnabled(idXYZItem, true);
18772 fschmid 451
                TabStack->setItemEnabled(idShadowItem, false);
15060 fschmid 452
                TabStack->setItemEnabled(idShapeItem, false);
453
                TabStack->setItemEnabled(idGroupItem, true);
454
                TabStack->setItemEnabled(idLineItem, false);
455
                TabStack->setItemEnabled(idColorsItem, false);
456
                TabStack->setItemEnabled(idTextItem, false);
457
                TabStack->setItemEnabled(idImageItem, false);
458
                TabStack->setItemEnabled(idTransparencyItem, false);
17387 fschmid 459
                TabStack->setItemEnabled(idTableItem, false);
15060 fschmid 460
        }
17936 craig 461
        connect(TabStack, SIGNAL(currentChanged2(int)), this, SLOT(SelTab(int)));
3 paul 462
}
463
 
16546 jghali 464
void  PropertiesPalette::handleSelectionChanged()
3 paul 465
{
16546 jghali 466
        if (!m_haveDoc || !m_ScMW || m_ScMW->scriptIsRunning())
173 Franz 467
                return;
13606 jghali 468
        int currentTab = TabStack->currentIndex();
17936 craig 469
        disconnect(TabStack, SIGNAL(currentChanged2(int)), this, SLOT(SelTab(int)));
16546 jghali 470
 
471
        PageItem* currItem = currentItemFromSelection();
472
        if (m_doc->m_Selection->count() > 1)
215 Franz 473
        {
18772 fschmid 474
                for (int ws = 1; ws < 10; ++ws)
11316 fschmid 475
                        TabStack->setItemEnabled(ws, false);
10529 fschmid 476
                TabStack->widget(0)->setEnabled(true);
6451 fschmid 477
                TabStack->setItemEnabled(idXYZItem, true);
18772 fschmid 478
                TabStack->setItemEnabled(idShadowItem, true);
18138 fschmid 479
                TabStack->setItemEnabled(idLineItem, true);
6451 fschmid 480
                TabStack->setItemEnabled(idColorsItem, true);
14300 fschmid 481
                TabStack->setItemEnabled(idTransparencyItem, true);
16856 craig 482
                TabStack->setItemEnabled(idTableItem, false); // At least not for now.
16546 jghali 483
                if (m_haveItem && m_item)
13606 jghali 484
                {
16546 jghali 485
                        if ((m_item->isGroup()) && (!m_item->isSingleSel))
13606 jghali 486
                                TabStack->setItemEnabled(idGroupItem, true);
487
                }
215 Franz 488
        }
3 paul 489
        else
215 Franz 490
        {
16546 jghali 491
                int itemType = currItem ? (int) currItem->itemType() : -1;
492
                m_haveItem   = (itemType != -1);
493
 
16943 fschmid 494
//              int visID = TabStack->currentIndex();
10529 fschmid 495
                TabStack->widget(0)->setEnabled(true);
6451 fschmid 496
                TabStack->setItemEnabled(idXYZItem, true);
497
                TabStack->setItemEnabled(idColorsItem, true);
14300 fschmid 498
                TabStack->setItemEnabled(idTransparencyItem, true);
17387 fschmid 499
                TabStack->setItemEnabled(idTableItem, false);
16546 jghali 500
                switch (itemType)
5226 cbradney 501
                {
217 Franz 502
                case -1:
16546 jghali 503
                        m_haveItem = false;
18772 fschmid 504
                        for (int ws = 1; ws < 10; ++ws)
2148 fschmid 505
                                TabStack->setItemEnabled(ws, false);
10529 fschmid 506
                        TabStack->widget(0)->setEnabled(false);
6451 fschmid 507
                        TabStack->setItemEnabled(idXYZItem, false);
16546 jghali 508
                        Cpal->displayGradient(0);
217 Franz 509
                        break;
13839 fschmid 510
                case PageItem::ImageFrame:
511
                case PageItem::LatexFrame:
512
                case PageItem::OSGFrame:
16546 jghali 513
                        if (currItem->asOSGFrame())
13839 fschmid 514
                        {
515
                                TabStack->setItemEnabled(idXYZItem, true);
18772 fschmid 516
                                TabStack->setItemEnabled(idShadowItem, true);
13839 fschmid 517
                                TabStack->setItemEnabled(idShapeItem, true);
518
                                TabStack->setItemEnabled(idGroupItem, false);
519
                                TabStack->setItemEnabled(idLineItem, false);
520
                                TabStack->setItemEnabled(idColorsItem, true);
14300 fschmid 521
                                TabStack->setItemEnabled(idTransparencyItem, false);
13839 fschmid 522
                                TabStack->setItemEnabled(idTextItem, false);
523
                                TabStack->setItemEnabled(idImageItem, false);
524
                        }
4941 fschmid 525
                        else
13839 fschmid 526
                        {
527
                                TabStack->setItemEnabled(idShapeItem, true);
528
                                TabStack->setItemEnabled(idTextItem, false);
529
                                TabStack->setItemEnabled(idImageItem, true);
530
                                TabStack->setItemEnabled(idLineItem, true);
531
                        }
217 Franz 532
                        break;
13839 fschmid 533
                case PageItem::TextFrame:
18772 fschmid 534
                        TabStack->setItemEnabled(idShadowItem, true);
6451 fschmid 535
                        TabStack->setItemEnabled(idShapeItem, true);
536
                        TabStack->setItemEnabled(idTextItem, true);
537
                        TabStack->setItemEnabled(idImageItem, false);
538
                        TabStack->setItemEnabled(idLineItem, true);
217 Franz 539
                        break;
13839 fschmid 540
                case PageItem::Line:
18772 fschmid 541
                        TabStack->setItemEnabled(idShadowItem, false);
6451 fschmid 542
                        TabStack->setItemEnabled(idShapeItem, false);
543
                        TabStack->setItemEnabled(idTextItem, false);
544
                        TabStack->setItemEnabled(idImageItem, false);
545
                        TabStack->setItemEnabled(idLineItem, true);
217 Franz 546
                        break;
13839 fschmid 547
                case PageItem::ItemType1:
548
                case PageItem::ItemType3:
549
                case PageItem::Polygon:
16191 fschmid 550
                case PageItem::RegularPolygon:
16215 fschmid 551
                case PageItem::Arc:
18772 fschmid 552
                        TabStack->setItemEnabled(idShadowItem, true);
6451 fschmid 553
                        TabStack->setItemEnabled(idShapeItem, true);
554
                        TabStack->setItemEnabled(idTextItem, false);
555
                        TabStack->setItemEnabled(idImageItem, false);
556
                        TabStack->setItemEnabled(idLineItem, true);
217 Franz 557
                        break;
13839 fschmid 558
                case PageItem::PolyLine:
16311 fschmid 559
                case PageItem::Spiral:
18772 fschmid 560
                        TabStack->setItemEnabled(idShadowItem, false);
6451 fschmid 561
                        TabStack->setItemEnabled(idShapeItem, true);
562
                        TabStack->setItemEnabled(idTextItem, false);
563
                        TabStack->setItemEnabled(idImageItem, false);
564
                        TabStack->setItemEnabled(idLineItem, true);
217 Franz 565
                        break;
13839 fschmid 566
                case PageItem::PathText:
18772 fschmid 567
                        TabStack->setItemEnabled(idShadowItem, false);
6451 fschmid 568
                        TabStack->setItemEnabled(idShapeItem, true);
569
                        TabStack->setItemEnabled(idTextItem, true);
570
                        TabStack->setItemEnabled(idImageItem, false);
571
                        TabStack->setItemEnabled(idLineItem, true);
217 Franz 572
                        break;
15060 fschmid 573
                case PageItem::Symbol:
16105 fschmid 574
                case PageItem::Group:
18772 fschmid 575
                        TabStack->setItemEnabled(idShadowItem, false);
15060 fschmid 576
                        TabStack->setItemEnabled(idShapeItem, false);
577
                        TabStack->setItemEnabled(idTextItem, false);
578
                        TabStack->setItemEnabled(idImageItem, false);
18138 fschmid 579
                        TabStack->setItemEnabled(idLineItem, true);
580
                        TabStack->setItemEnabled(idGroupItem, false);
15060 fschmid 581
                        TabStack->setItemEnabled(idColorsItem, false);
582
                        TabStack->setItemEnabled(idTransparencyItem, false);
583
                        break;
16856 craig 584
                case PageItem::Table:
585
                        TabStack->setItemEnabled(idTableItem, true);
18772 fschmid 586
                        TabStack->setItemEnabled(idShadowItem, true);
16856 craig 587
                        TabStack->setItemEnabled(idShapeItem, true);
17353 fschmid 588
                        TabStack->setItemEnabled(idTextItem, m_doc->appMode == modeEditTable);
16856 craig 589
                        TabStack->setItemEnabled(idImageItem, false);
590
                        TabStack->setItemEnabled(idLineItem, false);
591
                        TabStack->setItemEnabled(idGroupItem, false);
592
                        TabStack->setItemEnabled(idColorsItem, false);
593
                        TabStack->setItemEnabled(idTransparencyItem, false);
594
                        break;
3 paul 595
                }
215 Franz 596
        }
13606 jghali 597
        if (TabStack->isItemEnabled(currentTab) && (TabStack->currentIndex() != currentTab))
598
                TabStack->setCurrentIndex(currentTab);
3 paul 599
        updateGeometry();
600
        repaint();
17936 craig 601
        connect(TabStack, SIGNAL(currentChanged2(int)), this, SLOT(SelTab(int)));
3 paul 602
 
16546 jghali 603
        if (currItem)
6451 fschmid 604
        {
16546 jghali 605
                setCurrentItem(currItem);
6451 fschmid 606
        }
4049 cbradney 607
}
608
 
10862 cbradney 609
void PropertiesPalette::unitChange()
3 paul 610
{
16546 jghali 611
        if (!m_haveDoc)
11633 jghali 612
                return;
16546 jghali 613
        bool tmp = m_haveItem;
614
        m_haveItem = false;
8605 cbradney 615
        double oldRatio = m_unitRatio;
16546 jghali 616
        m_unitRatio = m_doc->unitRatio();
617
        m_unitIndex = m_doc->unitIndex();
3 paul 618
 
16546 jghali 619
        xyzPal->unitChange();
18772 fschmid 620
        shadowPal->unitChange();
16546 jghali 621
        shapePal->unitChange();
622
        groupPal->unitChange();
623
        imagePal->unitChange();
624
        linePal->unitChange();
625
        textPal->unitChange();
272 Franz 626
 
16546 jghali 627
        Cpal->unitChange(oldRatio, m_unitRatio, m_doc->unitIndex());
628
        Tpal->unitChange(oldRatio, m_unitRatio, m_doc->unitIndex());
629
        m_haveItem = tmp;
13811 pierre 630
}
3 paul 631
 
16546 jghali 632
void PropertiesPalette::NewLineMode(int mode)
13811 pierre 633
{
14754 jghali 634
        if (!m_ScMW || m_ScMW->scriptIsRunning())
13811 pierre 635
                return;
16546 jghali 636
        xyzPal->setLineMode(mode);
637
        xyzPal->displayWH(m_item->width(), m_item->height());
3 paul 638
        updateGeometry();
639
        repaint();
640
}
641
 
16546 jghali 642
void PropertiesPalette::handleNewShape(int frameType)
3 paul 643
{
14754 jghali 644
        if (!m_ScMW || m_ScMW->scriptIsRunning())
173 Franz 645
                return;
16546 jghali 646
        if ((m_haveDoc) && (m_haveItem))
2247 fschmid 647
        {
16546 jghali 648
                if ((m_item->itemType() == PageItem::PolyLine) || (m_item->itemType() == PageItem::PathText))
3 paul 649
                        return;
13346 subik 650
 
16546 jghali 651
                if ((m_item->itemType() == PageItem::ImageFrame) || (m_item->itemType() == PageItem::TextFrame))
13346 subik 652
                {
16546 jghali 653
                        shapePal->setRoundRectEnabled(frameType == 0);
3 paul 654
                        return;
7359 fschmid 655
                }
16546 jghali 656
//              m_item->convertTo(PageItem::Polygon);
657
//              newSelection(6);
658
                shapePal->setRoundRectEnabled(frameType == 0);
215 Franz 659
        }
3 paul 660
}
661
 
14981 fschmid 662
void PropertiesPalette::NewSpGradient(double x1, double y1, double x2, double y2, double fx, double fy, double sg, double sk, double cx, double cy)
294 Franz 663
{
14754 jghali 664
        if (!m_ScMW || m_ScMW->scriptIsRunning())
294 Franz 665
                return;
16546 jghali 666
        if ((m_haveDoc) && (m_haveItem))
294 Franz 667
        {
14197 fschmid 668
                QRectF upRect;
17747 craig 669
                UndoTransaction *trans = NULL;
670
                if(UndoManager::undoEnabled())
671
                        trans = new UndoTransaction(undoManager->beginTransaction(Um::Selection,Um::ILine,Um::GradPos + "p","",Um::ILine));
14300 fschmid 672
                if (m_ScMW->view->editStrokeGradient == 1)
14197 fschmid 673
                {
17709 craig 674
                        m_item->setGradientStrokeStartX(x1 / m_unitRatio);
675
                        m_item->setGradientStrokeStartY(y1 / m_unitRatio);
676
                        m_item->setGradientStrokeEndX(x2 / m_unitRatio);
677
                        m_item->setGradientStrokeEndY(y2 / m_unitRatio);
678
                        m_item->setGradientStrokeFocalX(fx / m_unitRatio);
679
                        m_item->setGradientStrokeFocalY(fy / m_unitRatio);
680
                        m_item->setGradientStrokeScale(sg);
681
                        m_item->setGradientStrokeSkew(sk);
682
                        if (m_item->strokeGradientType() == 6)
14278 fschmid 683
                        {
17709 craig 684
                                m_item->setGradientStrokeFocalX(m_item->gradientStrokeStartX());
685
                                m_item->setGradientStrokeFocalY(m_item->gradientStrokeStartY());
14278 fschmid 686
                        }
16546 jghali 687
                        m_item->update();
17709 craig 688
                        upRect = QRectF(QPointF(m_item->gradientStrokeStartX(), m_item->gradientStrokeStartY()), QPointF(m_item->gradientStrokeEndX(), m_item->gradientStrokeEndY()));
689
                        double radEnd = distance(m_item->gradientStrokeEndX() - m_item->gradientStrokeStartX(), m_item->gradientStrokeEndY() - m_item->gradientStrokeStartY());
690
                        double rotEnd = xy2Deg(m_item->gradientStrokeEndX() - m_item->gradientStrokeStartX(), m_item->gradientStrokeEndY() - m_item->gradientStrokeStartY());
14284 fschmid 691
                        QTransform m;
17709 craig 692
                        m.translate(m_item->gradientStrokeStartX(), m_item->gradientStrokeStartY());
14284 fschmid 693
                        m.rotate(rotEnd);
694
                        m.rotate(-90);
17709 craig 695
                        m.rotate(m_item->gradientStrokeSkew());
696
                        m.translate(radEnd * m_item->gradientStrokeScale(), 0);
14284 fschmid 697
                        QPointF shP = m.map(QPointF(0,0));
17709 craig 698
                        upRect = upRect.united(QRectF(shP, QPointF(m_item->gradientStrokeEndX(), m_item->gradientStrokeEndY())).normalized());
699
                        upRect = upRect.united(QRectF(shP, QPointF(m_item->gradientStrokeStartX(), m_item->gradientStrokeStartY())).normalized());
14284 fschmid 700
                        upRect |= QRectF(shP, QPointF(0, 0)).normalized();
16546 jghali 701
                        upRect |= QRectF(shP, QPointF(m_item->width(), m_item->height())).normalized();
14197 fschmid 702
                }
14952 fschmid 703
                else if (m_ScMW->view->editStrokeGradient == 3)
704
                {
17709 craig 705
                        m_item->setGradientControl1(FPoint(x1 / m_unitRatio, y1 / m_unitRatio));
706
                        m_item->setGradientControl2(FPoint(x2 / m_unitRatio, y2 / m_unitRatio));
707
                        m_item->setGradientControl3(FPoint(fx / m_unitRatio, fy / m_unitRatio));
708
                        m_item->setGradientControl4(FPoint(sg / m_unitRatio, sk / m_unitRatio));
16546 jghali 709
                        m_item->update();
710
                        upRect = QRectF(QPointF(-m_item->width(), -m_item->height()), QPointF(m_item->width() * 2, m_item->height() * 2)).normalized();
14952 fschmid 711
                }
14981 fschmid 712
                else if (m_ScMW->view->editStrokeGradient == 4)
713
                {
17709 craig 714
                        m_item->setGradientControl1(FPoint(x1 / m_unitRatio, y1 / m_unitRatio));
715
                        m_item->setGradientControl2(FPoint(x2 / m_unitRatio, y2 / m_unitRatio));
716
                        m_item->setGradientControl3(FPoint(fx / m_unitRatio, fy / m_unitRatio));
717
                        m_item->setGradientControl4(FPoint(sg / m_unitRatio, sk / m_unitRatio));
718
                        m_item->setGradientControl5(FPoint(cx / m_unitRatio, cy / m_unitRatio));
16546 jghali 719
                        m_item->update();
720
                        upRect = QRectF(QPointF(-m_item->width(), -m_item->height()), QPointF(m_item->width() * 2, m_item->height() * 2)).normalized();
14981 fschmid 721
                }
14197 fschmid 722
                else
723
                {
17747 craig 724
                        if (m_item->gradientType() == 13 && UndoManager::undoEnabled())
14278 fschmid 725
                        {
17709 craig 726
                                SimpleState *ss= new SimpleState("Refresh");
727
                                ss->set("UNDO_UPDATE_CONICAL","undo_update_conical");
728
                                undoManager->action(m_item,ss);
14278 fschmid 729
                        }
17709 craig 730
                        m_item->setGradientStartX(x1 / m_unitRatio);
731
                        m_item->setGradientStartY(y1 / m_unitRatio);
732
                        m_item->setGradientEndX(x2 / m_unitRatio);
733
                        m_item->setGradientEndY(y2 / m_unitRatio);
734
                        m_item->setGradientFocalX(fx / m_unitRatio);
735
                        m_item->setGradientFocalY(fy / m_unitRatio);
736
                        m_item->setGradientScale(sg);
737
                        m_item->setGradientSkew(sk);
738
                        if (m_item->strokeGradientType() == 6)
739
                        {
740
                                m_item->setGradientFocalX(m_item->gradientStartX());
741
                                m_item->setGradientFocalY(m_item->gradientStartY());
742
                        }
17747 craig 743
                        if (m_item->gradientType() == 13 && UndoManager::undoEnabled())
17709 craig 744
                        {
16786 fschmid 745
                                m_item->createConicalMesh();
17709 craig 746
                                SimpleState *ss= new SimpleState("Refresh");
747
                                ss->set("REDO_UPDATE_CONICAL","redo_update_conical");
748
                                undoManager->action(m_item,ss);
749
                        }
16546 jghali 750
                        m_item->update();
17709 craig 751
                        upRect = QRectF(QPointF(m_item->gradientStartX(), m_item->gradientStartY()), QPointF(m_item->gradientEndX(), m_item->gradientEndY()));
752
                        double radEnd = distance(m_item->gradientEndX() - m_item->gradientStartX(), m_item->gradientEndY() - m_item->gradientStartY());
753
                        double rotEnd = xy2Deg(m_item->gradientEndX() - m_item->gradientStartX(), m_item->gradientEndY() - m_item->gradientStartY());
14284 fschmid 754
                        QTransform m;
17709 craig 755
                        m.translate(m_item->gradientStartX(), m_item->gradientStartY());
14284 fschmid 756
                        m.rotate(rotEnd);
757
                        m.rotate(-90);
17709 craig 758
                        m.rotate(m_item->gradientSkew());
759
                        m.translate(radEnd * m_item->gradientScale(), 0);
14284 fschmid 760
                        QPointF shP = m.map(QPointF(0,0));
17709 craig 761
                        upRect |= QRectF(shP, QPointF(m_item->gradientEndX(), m_item->gradientEndY())).normalized();
762
                        upRect |= QRectF(shP, QPointF(m_item->gradientStartX(), m_item->gradientStartY())).normalized();
14284 fschmid 763
                        upRect |= QRectF(shP, QPointF(0, 0)).normalized();
16546 jghali 764
                        upRect |= QRectF(shP, QPointF(m_item->width(), m_item->height())).normalized();
14197 fschmid 765
                }
17747 craig 766
                if(trans)
767
                {
768
                        trans->commit();
769
                        delete trans;
770
                        trans = NULL;
771
                }
16546 jghali 772
                upRect.translate(m_item->xPos(), m_item->yPos());
773
                m_doc->regionsChanged()->update(upRect.adjusted(-10.0, -10.0, 10.0, 10.0));
17099 jghali 774
                m_doc->changed();
294 Franz 775
        }
776
}
777
 
14300 fschmid 778
void PropertiesPalette::toggleGradientEdit(int stroke)
735 fschmid 779
{
14754 jghali 780
        if (!m_ScMW || m_ScMW->scriptIsRunning())
735 fschmid 781
                return;
16546 jghali 782
        if ((m_haveDoc) && (m_haveItem))
735 fschmid 783
        {
14197 fschmid 784
                m_ScMW->view->editStrokeGradient = stroke;
14300 fschmid 785
                if (stroke == 1)
14197 fschmid 786
                {
787
                        if (Cpal->gradEditButtonStroke->isChecked())
788
                                m_ScMW->view->requestMode(modeEditGradientVectors);
789
                        else
790
                                m_ScMW->view->requestMode(modeNormal);
791
                }
735 fschmid 792
                else
14197 fschmid 793
                {
15024 fschmid 794
                        if ((Cpal->gradEditButton->isChecked()) || (Cpal->editMeshColors->isChecked()))
795
                        {
796
                                if ((stroke == 5) || (stroke == 6) || (stroke == 7))
797
                                        m_ScMW->view->requestMode(modeEditMeshGradient);
16870 fschmid 798
                                else if ((stroke == 8) || (stroke == 9) || (stroke == 10) || (stroke == 11))
16869 fschmid 799
                                        m_ScMW->view->requestMode(modeEditMeshPatch);
15024 fschmid 800
                                else
801
                                        m_ScMW->view->requestMode(modeEditGradientVectors);
802
                        }
14197 fschmid 803
                        else
804
                                m_ScMW->view->requestMode(modeNormal);
805
                }
16546 jghali 806
                m_ScMW->view->RefreshGradient(m_item);
735 fschmid 807
        }
808
}
809
 
14300 fschmid 810
void PropertiesPalette::NewSpGradientM(double x1, double y1, double x2, double y2, double fx, double fy, double sg, double sk)
811
{
14754 jghali 812
        if (!m_ScMW || m_ScMW->scriptIsRunning())
14300 fschmid 813
                return;
16546 jghali 814
        if ((m_haveDoc) && (m_haveItem))
14300 fschmid 815
        {
816
                QRectF upRect;
17747 craig 817
                UndoTransaction *trans = NULL;
818
                if(UndoManager::undoEnabled())
819
                        trans = new UndoTransaction(undoManager->beginTransaction(Um::Selection,Um::ILine,Um::GradPos + "o","",Um::ILine));
17709 craig 820
                m_item->setGradientMaskStartX(x1 / m_unitRatio);
821
                m_item->setGradientMaskStartY(y1 / m_unitRatio);
822
                m_item->setGradientMaskEndX(x2 / m_unitRatio);
823
                m_item->setGradientMaskEndY(y2 / m_unitRatio);
824
                m_item->setGradientMaskFocalX(fx / m_unitRatio);
825
                m_item->setGradientMaskFocalY(fy / m_unitRatio);
826
                m_item->setGradientMaskScale(sg);
827
                m_item->setGradientMaskSkew(sk);
16546 jghali 828
                if ((m_item->GrMask == 1) || (m_item->GrMask == 4))
14300 fschmid 829
                {
17709 craig 830
                        m_item->setGradientMaskFocalX(m_item->GrMaskStartX);
831
                        m_item->setGradientMaskFocalY(m_item->GrMaskStartY);
14300 fschmid 832
                }
16546 jghali 833
                m_item->update();
17747 craig 834
                if(trans)
835
                {
836
                        trans->commit();
837
                        delete trans;
838
                        trans = NULL;
839
                }
16546 jghali 840
                upRect = QRectF(QPointF(m_item->GrMaskStartX, m_item->GrMaskStartY), QPointF(m_item->GrMaskEndX, m_item->GrMaskEndY));
841
                double radEnd = distance(m_item->GrMaskEndX - m_item->GrMaskStartX, m_item->GrMaskEndY - m_item->GrMaskStartY);
842
                double rotEnd = xy2Deg(m_item->GrMaskEndX - m_item->GrMaskStartX, m_item->GrMaskEndY - m_item->GrMaskStartY);
14300 fschmid 843
                QTransform m;
16546 jghali 844
                m.translate(m_item->GrMaskStartX, m_item->GrMaskStartY);
14300 fschmid 845
                m.rotate(rotEnd);
846
                m.rotate(-90);
16546 jghali 847
                m.rotate(m_item->GrMaskSkew);
848
                m.translate(radEnd * m_item->GrMaskScale, 0);
14300 fschmid 849
                QPointF shP = m.map(QPointF(0,0));
16546 jghali 850
                upRect |= QRectF(shP, QPointF(m_item->GrMaskEndX, m_item->GrMaskEndY)).normalized();
851
                upRect |= QRectF(shP, QPointF(m_item->GrMaskStartX, m_item->GrMaskStartY)).normalized();
14300 fschmid 852
                upRect |= QRectF(shP, QPointF(0, 0)).normalized();
16546 jghali 853
                upRect |= QRectF(shP, QPointF(m_item->width(), m_item->height())).normalized();
854
                upRect.translate(m_item->xPos(), m_item->yPos());
855
                m_doc->regionsChanged()->update(upRect.adjusted(-10.0, -10.0, 10.0, 10.0));
17099 jghali 856
                m_doc->changed();
14300 fschmid 857
        }
858
}
859
 
860
void PropertiesPalette::toggleGradientEditM()
861
{
14754 jghali 862
        if (!m_ScMW || m_ScMW->scriptIsRunning())
14300 fschmid 863
                return;
16546 jghali 864
        if ((m_haveDoc) && (m_haveItem))
14300 fschmid 865
        {
866
                m_ScMW->view->editStrokeGradient = 2;
867
                if (Tpal->gradEditButton->isChecked())
868
                        m_ScMW->view->requestMode(modeEditGradientVectors);
869
                else
870
                        m_ScMW->view->requestMode(modeNormal);
871
        }
872
}
873
 
10862 cbradney 874
void PropertiesPalette::updateColorList()
3540 cbradney 875
{
16546 jghali 876
        if (!m_haveDoc || !m_ScMW || m_ScMW->scriptIsRunning())
3540 cbradney 877
                return;
68 Franz 878
 
16546 jghali 879
        groupPal->updateColorList();
880
        textPal->updateColorList();
16856 craig 881
        tablePal->updateColorList();
16546 jghali 882
        Cpal->updateColorList();
883
        Tpal->updateColorList();
18772 fschmid 884
        shadowPal->updateColorList();
68 Franz 885
 
16546 jghali 886
        assert (m_doc->PageColors.document());
68 Franz 887
}
888
 
10862 cbradney 889
bool PropertiesPalette::userActionOn()
1263 tsoots 890
{
16546 jghali 891
        bool userActionOn = false;
892
        userActionOn  = xyzPal->userActionOn();
893
        userActionOn |= imagePal->userActionOn();
894
        return userActionOn;
1502 tsoots 895
}
896
 
10862 cbradney 897
void PropertiesPalette::changeEvent(QEvent *e)
10859 cbradney 898
{
899
        if (e->type() == QEvent::LanguageChange)
900
        {
901
                languageChange();
16546 jghali 902
                return;
10859 cbradney 903
        }
16546 jghali 904
        ScDockPalette::changeEvent(e);
10859 cbradney 905
}
906
 
10862 cbradney 907
void PropertiesPalette::languageChange()
2199 cbradney 908
{
10495 cbradney 909
        setWindowTitle( tr("Properties"));
4546 subik 910
 
10529 fschmid 911
        TabStack->setItemText(idXYZItem, tr("X, Y, &Z"));
912
        TabStack->setItemText(idTextItem, tr("&Text"));
913
        TabStack->setItemText(idImageItem, tr("&Image"));
18772 fschmid 914
        TabStack->setItemText(idShadowItem, tr("Soft Shadow"));
10529 fschmid 915
        TabStack->setItemText(idShapeItem, tr("&Shape"));
916
        TabStack->setItemText(idLineItem, tr("&Line"));
917
        TabStack->setItemText(idColorsItem, tr("&Colors"));
918
        TabStack->setItemText(idGroupItem, tr("&Group"));
14492 cbradney 919
        TabStack->setItemText(idTransparencyItem, tr("&Transparency"));
16856 craig 920
        TabStack->setItemText(idTableItem, tr("T&able"));
4546 subik 921
 
16546 jghali 922
        xyzPal->languageChange();
18772 fschmid 923
        shadowPal->languageChange();
16546 jghali 924
        shapePal->languageChange();
925
        groupPal->languageChange();
926
        imagePal->languageChange();
927
        linePal->languageChange();
928
        textPal->languageChange();
16856 craig 929
        tablePal->languageChange();
2199 cbradney 930
}
931
 
10862 cbradney 932
void PropertiesPalette::setGradientEditMode(bool on)
3540 cbradney 933
{
10529 fschmid 934
        Cpal->gradEditButton->setChecked(on);
3540 cbradney 935
}
936
 
16870 fschmid 937
void PropertiesPalette::endPatchAdd()
938
{
939
        Cpal->endPatchAdd();
940
}
941
 
10862 cbradney 942
void PropertiesPalette::updateColorSpecialGradient()
3540 cbradney 943
{
16546 jghali 944
        if (!m_haveDoc)
3549 cbradney 945
                return;
16546 jghali 946
        if(m_doc->m_Selection->isEmpty())
3593 cbradney 947
                return;
16546 jghali 948
 
949
        groupPal->updateColorSpecialGradient();
950
 
951
        PageItem *currItem=m_doc->m_Selection->itemAt(0);
7921 cbradney 952
        if (currItem)
14300 fschmid 953
        {
954
                if (m_ScMW->view->editStrokeGradient == 0)
18134 jghali 955
                        Cpal->setSpecialGradient(currItem->GrStartX, currItem->GrStartY, currItem->GrEndX, currItem->GrEndY, currItem->GrFocalX, currItem->GrFocalY, currItem->GrScale, currItem->GrSkew, 0, 0);
14300 fschmid 956
                else if (m_ScMW->view->editStrokeGradient == 1)
18134 jghali 957
                        Cpal->setSpecialGradient(currItem->GrStrokeStartX, currItem->GrStrokeStartY, currItem->GrStrokeEndX, currItem->GrStrokeEndY, currItem->GrStrokeFocalX, currItem->GrStrokeFocalY, currItem->GrStrokeScale, currItem->GrStrokeSkew, 0, 0);
14952 fschmid 958
                else if (m_ScMW->view->editStrokeGradient == 3)
18134 jghali 959
                        Cpal->setSpecialGradient(currItem->GrControl1.x(), currItem->GrControl1.y(), currItem->GrControl2.x(), currItem->GrControl2.y(), currItem->GrControl3.x(), currItem->GrControl3.y(), currItem->GrControl4.x(), currItem->GrControl4.y(), 0, 0);
14981 fschmid 960
                else if (m_ScMW->view->editStrokeGradient == 4)
18134 jghali 961
                        Cpal->setSpecialGradient(currItem->GrControl1.x(), currItem->GrControl1.y(), currItem->GrControl2.x(), currItem->GrControl2.y(), currItem->GrControl3.x(), currItem->GrControl3.y(), currItem->GrControl4.x(), currItem->GrControl4.y(), currItem->GrControl5.x(), currItem->GrControl5.y());
15024 fschmid 962
                else if ((m_ScMW->view->editStrokeGradient == 5) || (m_ScMW->view->editStrokeGradient == 6))
963
                        Cpal->setMeshPoint();
16869 fschmid 964
                else if (m_ScMW->view->editStrokeGradient == 8)
965
                        Cpal->setMeshPatchPoint();
16870 fschmid 966
                else if (m_ScMW->view->editStrokeGradient == 9)
967
                        Cpal->setMeshPatch();
16546 jghali 968
                else if (!currItem->isGroup())
18134 jghali 969
                        Tpal->setSpecialGradient(currItem->GrMaskStartX, currItem->GrMaskStartY, currItem->GrMaskEndX, currItem->GrMaskEndY, currItem->GrMaskFocalX, currItem->GrMaskFocalY, currItem->GrMaskScale, currItem->GrMaskSkew);
14300 fschmid 970
        }
3540 cbradney 971
}
972
 
10862 cbradney 973
void PropertiesPalette::setLocked(bool isLocked)
4695 cbradney 974
{
16546 jghali 975
        shapePal->setLocked(isLocked);
4695 cbradney 976
}
977
 
16546 jghali 978
void PropertiesPalette::handleShapeEdit()
4695 cbradney 979
{
14754 jghali 980
        if (!m_ScMW || m_ScMW->scriptIsRunning())
6451 fschmid 981
                return;
16546 jghali 982
        if ((m_haveDoc) && (m_haveItem))
6451 fschmid 983
        {
16546 jghali 984
                shapePal->setRoundRectEnabled(false);
6451 fschmid 985
        }
986
}
17388 jghali 987
 
988
void PropertiesPalette::handleGradientChanged()
989
{
990
        if (!m_ScMW || m_ScMW->scriptIsRunning())
991
                return;
992
        if ((m_haveDoc) && (m_haveItem))
993
        {
994
                VGradient vg(Tpal->gradEdit->gradient());
995
                m_doc->itemSelection_SetMaskGradient(vg);
996
        }
17709 craig 997
}