Subversion Repositories Scribus

Rev

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