Subversion Repositories Scribus

Rev

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