Subversion Repositories Scribus

Rev

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