Subversion Repositories Scribus

Rev

Rev 4546 | Rev 4606 | 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
*/
3 paul 7
#include "cmykfw.h"
8
#include "cmykfw.moc"
9
#include <qpainter.h>
10
#include <qpopupmenu.h>
11
#include <qcursor.h>
259 Franz 12
#include <qmessagebox.h>
279 Franz 13
#include <qfileinfo.h>
282 Franz 14
#include <qdir.h>
279 Franz 15
#include <cstdlib>
2952 cbradney 16
 
17
#include "commonstrings.h"
3543 avox 18
#include "sccombobox.h"
2688 craig 19
#include "scconfig.h"
1693 craig 20
#include "scpaths.h"
3 paul 21
#ifdef HAVE_CMS
22
extern bool SoftProofing;
23
extern bool Gamut;
24
extern bool CMSuse;
25
#endif
3051 fschmid 26
#include "util.h"
3 paul 27
 
2886 fschmid 28
CMYKChoose::CMYKChoose( QWidget* parent, ScColor orig, QString name, ColorList *Colors, QStringList Cust  )
216 Franz 29
                : QDialog( parent, "fw", true, 0 )
3 paul 30
{
1488 fschmid 31
        if (orig.getColorModel () == colorModelCMYK)
32
                CMYKmode = true;
33
        else
34
                CMYKmode = false;
216 Franz 35
        dynamic = true;
161 Franz 36
        Wsave = false;
259 Franz 37
        EColors = Colors;
279 Franz 38
        CurrSwatch.clear();
3046 fschmid 39
        orig.checkGamut();
3041 fschmid 40
        alertIcon = loadIcon("alert.png");
216 Franz 41
        imageA = QPixmap(50,50);
3046 fschmid 42
        imageA.fill(orig.getRawRGBColor());
3041 fschmid 43
        if (orig.isOutOfGamut())
3046 fschmid 44
                paintAlert(alertIcon,imageA, 2, 2);
216 Franz 45
        imageN = QPixmap(50,50);
3046 fschmid 46
        imageN.fill(orig.getRawRGBColor());
3041 fschmid 47
        if (orig.isOutOfGamut())
3046 fschmid 48
                paintAlert(alertIcon, imageN, 2, 2);
216 Franz 49
        Farbe = orig;
50
        QPixmap image0 = SliderPix(180);
51
        QPixmap image1 = SliderPix(300);
52
        QPixmap image2 = SliderPix(60);
53
        QPixmap image3 = SliderBlack();
54
        int cc, cm, cy, ck;
55
        double ccd, cmd, cyd, ckd;
56
        orig.getCMYK(&cc, &cm, &cy, &ck);
57
        ccd = cc / 2.55;
58
        cmd = cm / 2.55;
59
        cyd = cy / 2.55;
60
        ckd = ck / 2.55;
1488 fschmid 61
        int cr, cg, cb;
62
        double crd, cgd, cbd;
63
        orig.getRGB(&cr, &cg, &cb);
64
        crd = cr / 2.55;
65
        cgd = cg / 2.55;
66
        cbd = cb / 2.55;
216 Franz 67
        resize( 498, 306 );
68
        setCaption( tr( "Edit Color" ) );
69
        setIcon(loadIcon("AppIcon.png"));
70
        CMYKFarbenLayout = new QHBoxLayout( this );
71
        CMYKFarbenLayout->setSpacing( 6 );
72
        CMYKFarbenLayout->setMargin( 11 );
73
        Layout23 = new QVBoxLayout;
74
        Layout23->setSpacing( 7 );
75
        Layout23->setMargin( 0 );
3 paul 76
 
348 Franz 77
        TextLabel1 = new QLabel( tr( "&Name:" ), this, "TextLabel1" );
216 Franz 78
        TextLabel1->setMinimumSize( QSize( 200, 22 ) );
79
        Layout23->addWidget( TextLabel1 );
3 paul 80
 
259 Franz 81
        Farbname = new QLineEdit( this, "Farbname" );
216 Franz 82
        Farbname->setMinimumSize( QSize( 200, 22 ) );
83
        Farbname->setText( name );
348 Franz 84
        TextLabel1->setBuddy( Farbname );
216 Franz 85
        Layout23->addWidget( Farbname );
3 paul 86
 
348 Franz 87
        TextLabel3 = new QLabel( tr( "Color &Model" ), this, "TextLabel3" );
216 Franz 88
        TextLabel3->setMinimumSize( QSize( 100, 22 ) );
89
        Layout23->addWidget( TextLabel3 );
3 paul 90
 
3680 cbradney 91
        ComboBox1 = new ScComboBox( false, this, "ComboBox1" );
216 Franz 92
        ComboBox1->insertItem( tr( "CMYK" ) );
93
        ComboBox1->insertItem( tr( "RGB" ) );
94
        ComboBox1->insertItem( tr( "Web Safe RGB" ) );
1488 fschmid 95
        if (!CMYKmode)
96
                ComboBox1->setCurrentItem( 1 );
348 Franz 97
        TextLabel3->setBuddy( ComboBox1 );
216 Franz 98
        Layout23->addWidget( ComboBox1 );
3057 fschmid 99
 
100
        Separations = new QCheckBox( this, "Separations" );
3080 cbradney 101
        Separations->setText( tr( "Is Spot Color" ) );
3057 fschmid 102
        Separations->setChecked(orig.isSpotColor());
103
        Layout23->addWidget( Separations );
104
 
3060 fschmid 105
        Regist = new QCheckBox( this, "Regist" );
3080 cbradney 106
        Regist->setText( tr( "Is Registration Color" ) );
3060 fschmid 107
        Regist->setChecked(orig.isRegistrationColor());
108
        Layout23->addWidget( Regist );
109
 
110
        QSpacerItem* spacer = new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding );
216 Franz 111
        Layout23->addItem( spacer );
3 paul 112
 
216 Franz 113
        Layout2 = new QGridLayout;
114
        Layout2->setSpacing( 6 );
115
        Layout2->setMargin( 0 );
3 paul 116
 
348 Franz 117
        TextLabel5_2 = new QLabel( tr( "New" ), this, "TextLabel5_2" );
216 Franz 118
        TextLabel5_2->setMinimumSize( QSize( 50, 22 ) );
119
        TextLabel5_2->setMaximumSize( QSize( 100, 22 ) );
3 paul 120
 
216 Franz 121
        Layout2->addWidget( TextLabel5_2, 0, 1 );
3 paul 122
 
348 Franz 123
        OldC = new QLabel( "", this, "OldC" );
216 Franz 124
        OldC->setMinimumSize( QSize( 50, 50 ) );
125
        OldC->setMaximumSize( QSize( 50, 50 ) );
126
        OldC->setFrameShape( QLabel::WinPanel );
127
        OldC->setFrameShadow( QLabel::Sunken );
128
        OldC->setScaledContents( true );
129
        OldC->setAlignment( int( QLabel::AlignCenter ) );
130
        OldC->setPixmap( imageA );
3 paul 131
 
216 Franz 132
        Layout2->addWidget( OldC, 1, 0 );
3 paul 133
 
348 Franz 134
        TextLabel5 = new QLabel( tr( "Old" ), this, "TextLabel5" );
216 Franz 135
        TextLabel5->setMinimumSize( QSize( 50, 22 ) );
136
        TextLabel5->setMaximumSize( QSize( 100, 22 ) );
3 paul 137
 
216 Franz 138
        Layout2->addWidget( TextLabel5, 0, 0 );
3 paul 139
 
348 Franz 140
        NewC = new QLabel( "", this, "NewC" );
216 Franz 141
        NewC->setMinimumSize( QSize( 50, 50 ) );
142
        NewC->setMaximumSize( QSize( 50, 50 ) );
143
        NewC->setFrameShape( QLabel::WinPanel );
144
        NewC->setFrameShadow( QLabel::Sunken );
145
        NewC->setScaledContents( true );
146
        NewC->setAlignment( int( QLabel::AlignCenter ) );
147
        NewC->setPixmap( imageN );
3 paul 148
 
216 Franz 149
        Layout2->addWidget( NewC, 1, 1 );
150
        Layout23->addLayout( Layout2 );
3 paul 151
 
216 Franz 152
        Layout21 = new QHBoxLayout;
153
        Layout21->setSpacing( 20 );
154
        Layout21->setMargin( 10 );
3 paul 155
 
2952 cbradney 156
        Cancel_2 = new QPushButton( CommonStrings::tr_OK, this, "Cancel_2" );
216 Franz 157
        Cancel_2->setDefault( true );
158
        Layout21->addWidget( Cancel_2 );
2952 cbradney 159
        Cancel = new QPushButton( CommonStrings::tr_Cancel, this, "Cancel" );
216 Franz 160
        Layout21->addWidget( Cancel );
161
        Layout23->addLayout( Layout21 );
162
        CMYKFarbenLayout->addLayout( Layout23 );
3 paul 163
 
216 Franz 164
        Frame4 = new QFrame( this, "Frame4" );
165
        Frame4->setFrameShape( QFrame::NoFrame );
166
        Frame4->setFrameShadow( QFrame::Raised );
167
        Frame4Layout = new QVBoxLayout( Frame4 );
168
        Frame4Layout->setSpacing( 6 );
169
        Frame4Layout->setMargin( 0 );
4546 subik 170
 
3680 cbradney 171
        Swatches = new ScComboBox( false, Frame4, "ComboBox1" );
287 Franz 172
        Swatches->insertItem( tr( "HSV-Colormap" ) );
279 Franz 173
        Swatches->insertItem("X11 RGB-Set");
174
        Swatches->insertItem("X11 Grey-Set");
175
        Swatches->insertItem("Gnome-Set");
176
        Swatches->insertItem("SVG-Set");
1873 mrdocs 177
        Swatches->insertItem("OpenOffice.org-Set");
178
 
279 Franz 179
        if (Cust.count() != 0)
180
        {
181
                QStringList realEx;
182
                realEx.clear();
183
                for (uint m = 0; m < Cust.count(); ++m)
184
                {
282 Franz 185
                        QString Cpfad = QDir::convertSeparators(QDir::homeDirPath()+"/.scribus/"+Cust[m]);
279 Franz 186
                        QFileInfo cfi(Cpfad);
187
                        if (cfi.exists())
188
                        {
189
                                Swatches->insertItem(Cust[m]);
190
                                realEx.append(Cust[m]);
191
                        }
192
                }
193
                CColSet = realEx;
194
        }
195
        Frame4Layout->addWidget( Swatches );
4546 subik 196
 
279 Franz 197
        TabStack = new QWidgetStack( Frame4, "TabStack" );
198
        TabStack->setFrameShape( QWidgetStack::NoFrame );
199
 
200
        Frame5a = new QFrame( TabStack, "Frame4" );
201
        Frame5a->setFrameShape( QFrame::NoFrame );
202
        Frame5a->setFrameShadow( QFrame::Raised );
203
        Frame5aLayout = new QHBoxLayout( Frame5a );
204
        Frame5aLayout->setSpacing( 0 );
205
        Frame5aLayout->setMargin( 0 );
206
        Frame5 = new QFrame(Frame5a);
216 Franz 207
        Frame5->setFrameShape( QLabel::WinPanel );
208
        Frame5->setFrameShadow( QLabel::Sunken );
209
        Frame5->setMinimumSize( QSize( 182, 130 ) );
210
        Frame5->setMaximumSize( QSize( 182, 130 ) );
211
        Frame5Layout = new QHBoxLayout( Frame5 );
212
        Frame5Layout->setSpacing( 0 );
213
        Frame5Layout->setMargin( 0 );
214
        ColorMap = new ColorChart( Frame5);
215
        ColorMap->setMinimumSize( QSize( 180, 128 ) );
216
        ColorMap->setMaximumSize( QSize( 180, 128 ) );
217
        Frame5Layout->addWidget( ColorMap );
279 Franz 218
        Frame5aLayout->addWidget( Frame5, 0, AlignCenter);
219
        TabStack->addWidget( Frame5a, 0 );
4546 subik 220
 
279 Franz 221
        ColorSwatch = new QListBox(TabStack, "StyledL");
222
        TabStack->addWidget( ColorSwatch, 1 );
3 paul 223
 
279 Franz 224
        Frame4Layout->addWidget( TabStack );
4546 subik 225
 
287 Franz 226
        Layout2x = new QGridLayout;
227
        Layout2x->setSpacing( 6 );
228
        Layout2x->setMargin( 0 );
279 Franz 229
 
348 Franz 230
        CyanT = new QLabel( tr( "C:" ), Frame4, "Cyant" );
287 Franz 231
        Layout2x->addWidget(CyanT, 0, 0);
3 paul 232
 
216 Franz 233
        Layout1_2 = new QVBoxLayout;
234
        Layout1_2->setSpacing( 0 );
235
        Layout1_2->setMargin( 0 );
3 paul 236
 
216 Franz 237
        CyanP = new QLabel( Frame4, "CyanP" );
238
        CyanP->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5,
239
                                           CyanP->sizePolicy().hasHeightForWidth() ) );
240
        CyanP->setMinimumSize( QSize( 200, 10 ) );
241
        CyanP->setPixmap(image0);
242
        CyanP->setScaledContents( true );
243
        Layout1_2->addWidget( CyanP );
3 paul 244
 
216 Franz 245
        CyanSL = new QSlider( Frame4, "CyanSL" );
246
        CyanSL->setMinimumSize( QSize( 200, 16 ) );
226 Franz 247
        CyanSL->setMaxValue( 100 );
216 Franz 248
        CyanSL->setOrientation( QSlider::Horizontal );
249
        CyanSL->setTickmarks( QSlider::NoMarks );
250
        Layout1_2->addWidget( CyanSL );
287 Franz 251
        Layout2x->addLayout(Layout1_2, 0, 1);
3 paul 252
 
226 Franz 253
        CyanSp = new MSpinBox( Frame4, 0 );
216 Franz 254
        CyanSp->setMaxValue( 100 );
255
        CyanSp->setSuffix( tr(" %"));
287 Franz 256
        Layout2x->addWidget(CyanSp, 0, 2);
216 Franz 257
        CyanSp->setValue(ccd);
226 Franz 258
        CyanSL->setValue(qRound(ccd));
3 paul 259
 
348 Franz 260
        MagentaT = new QLabel( tr( "M:" ), Frame4, "Cyant" );
287 Franz 261
        Layout2x->addWidget(MagentaT, 1, 0);
3 paul 262
 
216 Franz 263
        Layout1_2_2 = new QVBoxLayout;
264
        Layout1_2_2->setSpacing( 0 );
265
        Layout1_2_2->setMargin( 0 );
3 paul 266
 
216 Franz 267
        MagentaP = new QLabel( Frame4, "MagentaP" );
268
        MagentaP->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5,
269
                                              MagentaP->sizePolicy().hasHeightForWidth() ) );
270
        MagentaP->setMinimumSize( QSize( 200, 10 ) );
271
        MagentaP->setPixmap(image1);
272
        MagentaP->setScaledContents( true );
273
        Layout1_2_2->addWidget( MagentaP );
3 paul 274
 
216 Franz 275
        MagentaSL = new QSlider( Frame4, "MagentaSL" );
276
        MagentaSL->setMinimumSize( QSize( 200, 16 ) );
226 Franz 277
        MagentaSL->setMaxValue( 100 );
216 Franz 278
        MagentaSL->setOrientation( QSlider::Horizontal );
279
        MagentaSL->setTickmarks( QSlider::NoMarks );
280
        Layout1_2_2->addWidget( MagentaSL );
287 Franz 281
        Layout2x->addLayout(Layout1_2_2, 1, 1);
3 paul 282
 
226 Franz 283
        MagentaSp = new MSpinBox( Frame4, 0 );
216 Franz 284
        MagentaSp->setMaxValue( 100 );
285
        MagentaSp->setSuffix( tr(" %"));
287 Franz 286
        Layout2x->addWidget(MagentaSp, 1, 2);
216 Franz 287
        MagentaSp->setValue(cmd);
226 Franz 288
        MagentaSL->setValue(qRound(cmd));
3 paul 289
 
348 Franz 290
        YellowT = new QLabel( tr( "Y:" ), Frame4, "Cyant" );
287 Franz 291
        Layout2x->addWidget(YellowT, 2, 0);
3 paul 292
 
216 Franz 293
        Layout1_2_3 = new QVBoxLayout;
294
        Layout1_2_3->setSpacing( 0 );
295
        Layout1_2_3->setMargin( 0 );
3 paul 296
 
216 Franz 297
        YellowP = new QLabel( Frame4, "YellowP" );
298
        YellowP->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5,
299
                                             YellowP->sizePolicy().hasHeightForWidth() ) );
300
        YellowP->setMinimumSize( QSize( 200, 10 ) );
301
        YellowP->setPixmap(image2);
302
        YellowP->setScaledContents( true );
303
        Layout1_2_3->addWidget( YellowP );
3 paul 304
 
216 Franz 305
        YellowSL = new QSlider( Frame4, "YellowSL" );
306
        YellowSL->setMinimumSize( QSize( 200, 16 ) );
226 Franz 307
        YellowSL->setMaxValue( 100 );
216 Franz 308
        YellowSL->setOrientation( QSlider::Horizontal );
309
        YellowSL->setTickmarks( QSlider::NoMarks );
310
        Layout1_2_3->addWidget( YellowSL );
287 Franz 311
        Layout2x->addLayout(Layout1_2_3, 2, 1);
3 paul 312
 
226 Franz 313
        YellowSp = new MSpinBox( Frame4, 0 );
216 Franz 314
        YellowSp->setMaxValue( 100 );
315
        YellowSp->setSuffix( tr(" %"));
287 Franz 316
        Layout2x->addWidget(YellowSp, 2, 2);
216 Franz 317
        YellowSp->setValue(cyd);
226 Franz 318
        YellowSL->setValue(qRound(cyd));
3 paul 319
 
348 Franz 320
        BlackT = new QLabel( tr( "K:" ), Frame4, "Cyant" );
287 Franz 321
        Layout2x->addWidget(BlackT, 3, 0);
3 paul 322
 
216 Franz 323
        Layout1_2_4 = new QVBoxLayout;
324
        Layout1_2_4->setSpacing( 0 );
325
        Layout1_2_4->setMargin( 0 );
3 paul 326
 
216 Franz 327
        BlackP = new QLabel( Frame4, "BlackP" );
328
        BlackP->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5,
329
                                            BlackP->sizePolicy().hasHeightForWidth() ) );
330
        BlackP->setMinimumSize( QSize( 200, 10 ) );
331
        BlackP->setPixmap(image3);
332
        BlackP->setScaledContents( true );
333
        Layout1_2_4->addWidget( BlackP );
3 paul 334
 
216 Franz 335
        BlackSL = new QSlider( Frame4, "BlackSL" );
336
        BlackSL->setMinimumSize( QSize( 200, 16 ) );
226 Franz 337
        BlackSL->setMaxValue( 100 );
216 Franz 338
        BlackSL->setOrientation( QSlider::Horizontal );
339
        BlackSL->setTickmarks( QSlider::NoMarks );
340
        Layout1_2_4->addWidget( BlackSL );
287 Franz 341
        Layout2x->addLayout(Layout1_2_4, 3, 1);
3 paul 342
 
226 Franz 343
        BlackSp = new MSpinBox( Frame4, 0 );
216 Franz 344
        BlackSp->setMaxValue( 100 );
345
        BlackSp->setSuffix( tr(" %"));
287 Franz 346
        Layout2x->addWidget(BlackSp, 3, 2);
216 Franz 347
        BlackSp->setValue(ckd);
226 Franz 348
        BlackSL->setValue(qRound(ckd));
216 Franz 349
        BlackComp = ck;
287 Franz 350
        Frame4Layout->addLayout( Layout2x );
4179 fschmid 351
        QSpacerItem* spacer2 = new QSpacerItem( 2, 2, QSizePolicy::Minimum, QSizePolicy::Expanding );
352
        Frame4Layout->addItem( spacer2 );
216 Franz 353
        CMYKFarbenLayout->addWidget( Frame4 );
354
        int h, s, v;
355
        orig.getRGBColor().hsv(&h, &s, &v);
356
        ColorMap->drawPalette(v);
357
        ColorMap->setMark(h, s);
344 Franz 358
        Fnam = name;
259 Franz 359
        Farbname->selectAll();
360
        Farbname->setFocus();
279 Franz 361
        TabStack->raiseWidget(0);
4179 fschmid 362
        setFixedSize(minimumSizeHint());
216 Franz 363
        // signals and slots connections
364
        connect( Cancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
259 Franz 365
        connect( Cancel_2, SIGNAL( clicked() ), this, SLOT( Verlassen() ) );
216 Franz 366
        connect( CyanSp, SIGNAL( valueChanged(int) ), CyanSL, SLOT( setValue(int) ) );
367
        connect( CyanSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
368
        connect( MagentaSp, SIGNAL( valueChanged(int) ), MagentaSL, SLOT( setValue(int) ) );
369
        connect( MagentaSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
370
        connect( YellowSp, SIGNAL( valueChanged(int) ), YellowSL, SLOT( setValue(int) ) );
371
        connect( YellowSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
372
        connect( BlackSp, SIGNAL( valueChanged(int) ), BlackSL, SLOT( setValue(int) ) );
373
        connect( BlackSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
374
        connect( CyanSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
375
        connect( MagentaSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
376
        connect( YellowSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
377
        connect( BlackSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
378
        connect( ColorMap, SIGNAL( ColorVal(int, int, bool)), this, SLOT( setColor2(int, int, bool)));
379
        connect( ComboBox1, SIGNAL(activated(const QString&)), this, SLOT(SelModel(const QString&)));
279 Franz 380
        connect( Swatches, SIGNAL(activated(int)), this, SLOT(SelSwatch(int)));
381
        connect(ColorSwatch, SIGNAL(highlighted(int)), this, SLOT(SelFromSwatch(int)));
3057 fschmid 382
        connect(Separations, SIGNAL(clicked()), this, SLOT(setSpot()));
3060 fschmid 383
        connect(Regist, SIGNAL(clicked()), this, SLOT(setRegist()));
4179 fschmid 384
        layout()->activate();
1488 fschmid 385
        if (!CMYKmode)
386
                SelModel ( tr( "RGB" ));
3 paul 387
}
388
 
389
void CMYKChoose::mouseReleaseEvent(QMouseEvent *m)
390
{
391
        if (m->button() == RightButton)
161 Franz 392
        {
3 paul 393
                QPopupMenu *pmen = new QPopupMenu();
394
                qApp->setOverrideCursor(QCursor(ArrowCursor), true);
112 Franz 395
                int px = pmen->insertItem( tr("Dynamic Color Bars"), this, SLOT(ToggleSL()));
396
                int py = pmen->insertItem( tr("Static Color Bars"), this, SLOT(ToggleSL()));
80 Franz 397
                pmen->setItemChecked((dynamic ? px : py) , true);
3 paul 398
                pmen->exec(QCursor::pos());
399
                delete pmen;
161 Franz 400
        }
3 paul 401
}
402
 
216 Franz 403
void CMYKChoose::SetValueS(int val)
404
{
405
        disconnect( CyanSp, SIGNAL( valueChanged(int) ), CyanSL, SLOT( setValue(int) ) );
406
        disconnect( MagentaSp, SIGNAL( valueChanged(int) ), MagentaSL, SLOT( setValue(int) ) );
407
        disconnect( YellowSp, SIGNAL( valueChanged(int) ), YellowSL, SLOT( setValue(int) ) );
408
        disconnect( BlackSp, SIGNAL( valueChanged(int) ), BlackSL, SLOT( setValue(int) ) );
226 Franz 409
        if (CyanSL == sender())
410
                CyanSp->setValue(val);
411
        if (MagentaSL == sender())
412
                MagentaSp->setValue(val);
413
        if (YellowSL == sender())
414
                YellowSp->setValue(val);
415
        if (BlackSL == sender())
416
                BlackSp->setValue(val);
216 Franz 417
        setColor();
418
        connect( CyanSp, SIGNAL( valueChanged(int) ), CyanSL, SLOT( setValue(int) ) );
419
        connect( MagentaSp, SIGNAL( valueChanged(int) ), MagentaSL, SLOT( setValue(int) ) );
420
        connect( YellowSp, SIGNAL( valueChanged(int) ), YellowSL, SLOT( setValue(int) ) );
421
        connect( BlackSp, SIGNAL( valueChanged(int) ), BlackSL, SLOT( setValue(int) ) );
422
}
423
 
3 paul 424
void CMYKChoose::ToggleSL()
425
{
426
        dynamic = !dynamic;
161 Franz 427
        CyanP->setPixmap(SliderPix(CMYKmode ? 180 : 0));
428
        MagentaP->setPixmap(SliderPix(CMYKmode? 300 : 120));
429
        YellowP->setPixmap(SliderPix(CMYKmode? 60 : 240));
430
        if (CMYKmode)
431
                BlackP->setPixmap(SliderBlack());
3 paul 432
}
433
 
434
QPixmap CMYKChoose::SliderPix(int farbe)
435
{
161 Franz 436
        QPixmap image0 = QPixmap(255,10);
437
        QPainter p;
438
        p.begin(&image0);
439
        p.setPen(NoPen);
3 paul 440
        int r, g, b, c, m, y, k;
441
        QColor tmp;
216 Franz 442
        for (int x = 0; x < 255; x += 5)
443
        {
444
                if (CMYKmode)
259 Franz 445
                {
1488 fschmid 446
                        Farbe.getCMYK(&c, &m, &y, &k);
216 Franz 447
                        if (dynamic)
448
                        {
449
                                switch (farbe)
450
                                {
451
                                case 180:
2886 fschmid 452
                                        tmp = ScColor(x, m, y, k).getRGBColor();
216 Franz 453
                                        break;
454
                                case 300:
2886 fschmid 455
                                        tmp = ScColor(c, x, y, k).getRGBColor();
216 Franz 456
                                        break;
457
                                case 60:
2886 fschmid 458
                                        tmp = ScColor(c, m, x, k).getRGBColor();
216 Franz 459
                                        break;
460
                                }
3 paul 461
                                p.setBrush(tmp);
216 Franz 462
                        }
463
                        else
1488 fschmid 464
                        {
465
                                switch (farbe)
466
                                {
467
                                case 180:
2886 fschmid 468
                                        tmp = ScColor(x, 0, 0, 0).getRGBColor();
1488 fschmid 469
                                        break;
470
                                case 300:
2886 fschmid 471
                                        tmp = ScColor(0, x, 0, 0).getRGBColor();
1488 fschmid 472
                                        break;
473
                                case 60:
2886 fschmid 474
                                        tmp = ScColor(0, 0, x, 0).getRGBColor();
1488 fschmid 475
                                        break;
476
                                }
477
                                p.setBrush(tmp);
478
                        }
259 Franz 479
                }
216 Franz 480
                else
481
                {
1488 fschmid 482
                        Farbe.getRGB(&r, &g, &b);
216 Franz 483
                        if (dynamic)
484
                        {
485
                                switch (farbe)
486
                                {
487
                                case 0:
2886 fschmid 488
                                        tmp = ScColor(x, g, b).getRGBColor();
216 Franz 489
                                        break;
490
                                case 120:
2886 fschmid 491
                                        tmp = ScColor(r, x, b).getRGBColor();
216 Franz 492
                                        break;
493
                                case 240:
2886 fschmid 494
                                        tmp = ScColor(r, g, x).getRGBColor();
216 Franz 495
                                        break;
496
                                }
1488 fschmid 497
                                p.setBrush(tmp);
216 Franz 498
                        }
499
                        else
1488 fschmid 500
                        {
501
                                switch (farbe)
502
                                {
503
                                case 0:
2886 fschmid 504
                                        tmp = ScColor(x, 0, 0).getRGBColor();
1488 fschmid 505
                                        break;
506
                                case 120:
2886 fschmid 507
                                        tmp = ScColor(0, x, 0).getRGBColor();
1488 fschmid 508
                                        break;
509
                                case 240:
2886 fschmid 510
                                        tmp = ScColor(0, 0, x).getRGBColor();
1488 fschmid 511
                                        break;
512
                                }
513
                                p.setBrush(tmp);
514
                        }
216 Franz 515
                }
516
                p.drawRect(x, 0, 5, 10);
161 Franz 517
        }
216 Franz 518
        p.end();
519
        return image0;
3 paul 520
}
521
 
522
QPixmap CMYKChoose::SliderBlack()
523
{
161 Franz 524
        QPixmap image0 = QPixmap(255,10);
525
        QPainter p;
526
        int val = 255;
527
        p.begin(&image0);
528
        p.setPen(NoPen);
529
        int c, m, y, k;
530
        Farbe.getCMYK(&c, &m, &y, &k);
531
        for (int x = 0; x < 255; x += 5)
216 Franz 532
        {
533
                if (dynamic)
2886 fschmid 534
                        p.setBrush(ScColor(c, m, y, x).getRGBColor());
216 Franz 535
                else
2886 fschmid 536
                        p.setBrush(ScColor(0, 0, 0, x).getRGBColor());
216 Franz 537
                p.drawRect(x, 0, 5, 10);
538
                val -= 5;
539
        }
540
        p.end();
541
        return image0;
3 paul 542
}
543
 
279 Franz 544
void CMYKChoose::SelSwatch(int n)
545
{
546
        if (n == 0)
547
                TabStack->raiseWidget(0);
548
        else
549
        {
550
                bool cus = false;
551
                CurrSwatch.clear();
282 Franz 552
                QString Cpfad = QDir::convertSeparators(QDir::homeDirPath()+"/.scribus/"+Swatches->currentText());
4602 cbradney 553
                QString pfadC = ScPaths::instance().libDir()+"swatches/";
872 cbradney 554
                QString pfadC2 = pfadC + "rgbscribus.txt";
279 Franz 555
                switch (n)
556
                {
557
                case 1:
872 cbradney 558
                        pfadC2 = pfadC + "rgbscribus.txt";
279 Franz 559
                        break;
560
                case 2:
872 cbradney 561
                        pfadC2 = pfadC + "rgbscribusgreys.txt";
279 Franz 562
                        break;
563
                case 3:
872 cbradney 564
                        pfadC2 = pfadC + "rgbscribusgnome.txt";
279 Franz 565
                        break;
566
                case 4:
872 cbradney 567
                        pfadC2 = pfadC + "rgbsvg.txt";
279 Franz 568
                        break;
1967 fschmid 569
                case 5:
1873 mrdocs 570
                        pfadC2 = pfadC + "rgbscribusopenoffice.txt";
1967 fschmid 571
                        cus = true;
572
                        break;
279 Franz 573
                default:
574
                        pfadC2 = Cpfad;
575
                        cus = true;
576
                        break;
577
                }
578
                if (n != 0)
579
                {
580
                        QFile fiC(pfadC2);
581
                        if (fiC.open(IO_ReadOnly))
582
                        {
583
                                QString ColorEn, Cname;
584
                                int Rval, Gval, Bval, Kval;
585
                                QTextStream tsC(&fiC);
586
                                ColorEn = tsC.readLine();
587
                                while (!tsC.atEnd())
588
                                {
2886 fschmid 589
                                        ScColor tmp;
279 Franz 590
                                        ColorEn = tsC.readLine();
591
                                        QTextStream CoE(&ColorEn, IO_ReadOnly);
592
                                        CoE >> Rval;
593
                                        CoE >> Gval;
594
                                        CoE >> Bval;
595
                                        if (cus)
596
                                        {
597
                                                CoE >> Kval;
598
                                                Cname = CoE.read().stripWhiteSpace();
599
                                                tmp.setColor(Rval, Gval, Bval, Kval);
600
                                        }
601
                                        else
602
                                        {
603
                                                Cname = CoE.read().stripWhiteSpace();
604
                                                tmp.setColorRGB(Rval, Gval, Bval);
605
                                        }
606
                                        CurrSwatch.insert(Cname, tmp);
607
                                }
608
                                fiC.close();
609
                        }
610
                        else
611
                        {
2886 fschmid 612
                                CurrSwatch.insert("White", ScColor(0, 0, 0, 0));
613
                                CurrSwatch.insert("Black", ScColor(0, 0, 0, 255));
614
                                CurrSwatch.insert("Blue", ScColor(255, 255, 0, 0));
615
                                CurrSwatch.insert("Cyan", ScColor(255, 0, 0, 0));
616
                                CurrSwatch.insert("Green", ScColor(255, 0, 255, 0));
617
                                CurrSwatch.insert("Red", ScColor(0, 255, 255, 0));
618
                                CurrSwatch.insert("Yellow", ScColor(0, 0, 255, 0));
619
                                CurrSwatch.insert("Magenta", ScColor(0, 255, 0, 0));
279 Franz 620
                        }
621
                }
622
                ColorSwatch->clear();
1065 cbradney 623
                ColorList::Iterator it;
279 Franz 624
                QPixmap pm = QPixmap(30, 15);
625
                for (it = CurrSwatch.begin(); it != CurrSwatch.end(); ++it)
626
                {
627
                        pm.fill(CurrSwatch[it.key()].getRGBColor());
628
                        ColorSwatch->insertItem(pm, it.key());
629
                }
630
                ColorSwatch->setSelected(ColorSwatch->currentItem(), false);
631
                TabStack->raiseWidget(1);
632
        }
633
}
634
 
3060 fschmid 635
void CMYKChoose::setRegist()
636
{
637
        disconnect( ComboBox1, SIGNAL(activated(const QString&)), this, SLOT(SelModel(const QString&)));
638
        if (Regist->isChecked())
639
        {
640
                ComboBox1->setCurrentItem( 0 );
641
                Separations->setChecked(false);
642
                SelModel( tr("CMYK"));
643
        }
644
        connect( ComboBox1, SIGNAL(activated(const QString&)), this, SLOT(SelModel(const QString&)));
645
}
646
 
3057 fschmid 647
void CMYKChoose::setSpot()
648
{
649
        disconnect( ComboBox1, SIGNAL(activated(const QString&)), this, SLOT(SelModel(const QString&)));
650
        if (Separations->isChecked())
651
        {
652
                ComboBox1->setCurrentItem( 0 );
3060 fschmid 653
                Regist->setChecked(false);
3057 fschmid 654
                SelModel( tr("CMYK"));
655
        }
656
        connect( ComboBox1, SIGNAL(activated(const QString&)), this, SLOT(SelModel(const QString&)));
657
}
658
 
3 paul 659
void CMYKChoose::SelModel(const QString& mod)
660
{
217 Franz 661
        disconnect( CyanSp, SIGNAL( valueChanged(int) ), CyanSL, SLOT( setValue(int) ) );
662
        disconnect( MagentaSp, SIGNAL( valueChanged(int) ), MagentaSL, SLOT( setValue(int) ) );
663
        disconnect( YellowSp, SIGNAL( valueChanged(int) ), YellowSL, SLOT( setValue(int) ) );
664
        disconnect( BlackSp, SIGNAL( valueChanged(int) ), BlackSL, SLOT( setValue(int) ) );
665
        disconnect( CyanSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
666
        disconnect( MagentaSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
667
        disconnect( YellowSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
668
        disconnect( BlackSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
669
        disconnect( CyanSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
670
        disconnect( MagentaSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
671
        disconnect( YellowSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
672
        disconnect( BlackSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
3 paul 673
        if (mod == tr("CMYK"))
161 Franz 674
        {
3 paul 675
                CMYKmode = true;
676
                Wsave = false;
226 Franz 677
                CyanSL->setMaxValue( 100 );
678
                MagentaSL->setMaxValue( 100 );
679
                YellowSL->setMaxValue( 100 );
680
                CyanSp->setMaxValue( 100 );
681
                MagentaSp->setMaxValue( 100);
682
                YellowSp->setMaxValue( 100 );
217 Franz 683
                CyanSL->setLineStep(1);
684
                MagentaSL->setLineStep(1);
685
                YellowSL->setLineStep(1);
686
                CyanSL->setPageStep(10);
687
                MagentaSL->setPageStep(10);
688
                YellowSL->setPageStep(10);
226 Franz 689
                CyanSp->setDecimals(1);
690
                MagentaSp->setDecimals(1);
691
                YellowSp->setDecimals(1);
692
                CyanSp->setLineStep(1);
693
                MagentaSp->setLineStep(1);
694
                YellowSp->setLineStep(1);
217 Franz 695
                CyanSp->setSuffix( tr(" %"));
696
                MagentaSp->setSuffix( tr(" %"));
697
                YellowSp->setSuffix( tr(" %"));
112 Franz 698
                CyanT->setText( tr("C:"));
699
                MagentaT->setText( tr("M:"));
700
                YellowT->setText( tr("Y:"));
216 Franz 701
                CyanP->setPixmap(SliderPix(180));
702
                MagentaP->setPixmap(SliderPix(300));
703
                YellowP->setPixmap(SliderPix(60));
704
                BlackP->setPixmap(SliderBlack());
4179 fschmid 705
/*              BlackP->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
706
                BlackSL->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
707
                BlackSp->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum));
708
                BlackT->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); */
216 Franz 709
                BlackP->show();
710
                BlackSL->show();
711
                BlackSp->show();
712
                BlackT->show();
3131 fschmid 713
                Farbe.setColorModel(colorModelCMYK);
216 Franz 714
                setValues();
161 Franz 715
        }
3 paul 716
        else
216 Franz 717
                //      if (mod == tr("RGB"))
161 Franz 718
        {
3 paul 719
                CMYKmode = false;
720
                Wsave = false;
217 Franz 721
                CyanSL->setMaxValue( 255 );
722
                MagentaSL->setMaxValue( 255 );
723
                YellowSL->setMaxValue( 255 );
724
                CyanSL->setLineStep(1);
725
                MagentaSL->setLineStep(1);
726
                YellowSL->setLineStep(1);
727
                CyanSL->setPageStep(1);
728
                MagentaSL->setPageStep(1);
729
                YellowSL->setPageStep(1);
730
                CyanSp->setDecimals(1);
731
                MagentaSp->setDecimals(1);
732
                YellowSp->setDecimals(1);
733
                CyanSp->setLineStep(1);
734
                MagentaSp->setLineStep(1);
735
                YellowSp->setLineStep(1);
736
                CyanSp->setMaxValue( 255 );
737
                MagentaSp->setMaxValue( 255 );
738
                YellowSp->setMaxValue( 255 );
739
                CyanSp->setSuffix("");
740
                MagentaSp->setSuffix("");
741
                YellowSp->setSuffix("");
112 Franz 742
                CyanT->setText( tr("R:"));
743
                MagentaT->setText( tr("G:"));
744
                YellowT->setText( tr("B:"));
216 Franz 745
                CyanP->setPixmap(SliderPix(0));
746
                MagentaP->setPixmap(SliderPix(120));
747
                YellowP->setPixmap(SliderPix(240));
3424 fschmid 748
                Layout2x->setResizeMode(QLayout::Fixed);
4179 fschmid 749
/*              BlackP->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored));
750
                BlackSL->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored));
751
                BlackSp->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored));
752
                BlackT->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored)); */
216 Franz 753
                BlackP->hide();
754
                BlackSL->hide();
755
                BlackSp->hide();
756
                BlackT->hide();
178 Franz 757
                if (mod == tr("Web Safe RGB"))
161 Franz 758
                {
3 paul 759
                        Wsave = true;
217 Franz 760
                        CyanSL->setLineStep(51);
761
                        MagentaSL->setLineStep(51);
762
                        YellowSL->setLineStep(51);
763
                        CyanSL->setPageStep(51);
764
                        MagentaSL->setPageStep(51);
765
                        YellowSL->setPageStep(51);
766
                        CyanSp->setLineStep(51);
767
                        MagentaSp->setLineStep(51);
768
                        YellowSp->setLineStep(51);
161 Franz 769
                }
3131 fschmid 770
                Farbe.setColorModel(colorModelRGB);
216 Franz 771
                setValues();
161 Franz 772
        }
217 Franz 773
        connect( CyanSp, SIGNAL( valueChanged(int) ), CyanSL, SLOT( setValue(int) ) );
774
        connect( MagentaSp, SIGNAL( valueChanged(int) ), MagentaSL, SLOT( setValue(int) ) );
775
        connect( YellowSp, SIGNAL( valueChanged(int) ), YellowSL, SLOT( setValue(int) ) );
776
        connect( BlackSp, SIGNAL( valueChanged(int) ), BlackSL, SLOT( setValue(int) ) );
777
        connect( CyanSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
778
        connect( MagentaSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
779
        connect( YellowSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
780
        connect( BlackSL, SIGNAL( valueChanged(int) ), this, SLOT( SetValueS(int) ) );
781
        connect( CyanSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
782
        connect( MagentaSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
783
        connect( YellowSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
784
        connect( BlackSL, SIGNAL( valueChanged(int) ), this, SLOT( setColor() ) );
3 paul 785
}
786
 
787
void CMYKChoose::setColor()
788
{
217 Franz 789
        int c, m, y, k;
790
        if (CMYKmode)
791
        {
1488 fschmid 792
                c = qRound(CyanSp->value() * 2.55);
793
                m = qRound(MagentaSp->value() * 2.55);
794
                y = qRound(YellowSp->value() * 2.55);
795
                k = qRound(BlackSp->value() * 2.55);
217 Franz 796
        }
797
        else
798
        {
799
                c = qRound(CyanSp->value());
800
                m = qRound(MagentaSp->value());
801
                y = qRound(YellowSp->value());
802
                k = qRound(BlackSp->value());
803
        }
216 Franz 804
        int h, s, v;
805
        BlackComp = k;
3 paul 806
        if (Wsave)
161 Franz 807
        {
3 paul 808
                blockSignals(true);
217 Franz 809
                c = c / 51 * 51;
810
                m = m / 51 * 51;
811
                y = y / 51 * 51;
812
                CyanSp->setValue(c);
813
                MagentaSp->setValue(m);
814
                YellowSp->setValue(y);
815
                CyanSL->setValue(c);
816
                MagentaSL->setValue(m);
817
                YellowSL->setValue(y);
3 paul 818
                blockSignals(false);
161 Franz 819
        }
2886 fschmid 820
        ScColor tmp;
3 paul 821
        if (CMYKmode)
161 Franz 822
        {
1488 fschmid 823
                tmp.setColor(c, m, y, k);
216 Franz 824
                if (dynamic)
825
                {
826
                        CyanP->setPixmap(SliderPix(180));
827
                        MagentaP->setPixmap(SliderPix(300));
828
                        YellowP->setPixmap(SliderPix(60));
829
                        BlackP->setPixmap(SliderBlack());
830
                }
161 Franz 831
        }
3 paul 832
        else
161 Franz 833
        {
1488 fschmid 834
                 tmp.setColorRGB(c, m, y);
3 paul 835
                QColor tmp2 = QColor(c, m, y, QColor::Rgb);
836
                tmp2.hsv(&h, &s, &v);
216 Franz 837
                BlackComp = 255 - v;
838
                if (dynamic)
839
                {
840
                        CyanP->setPixmap(SliderPix(0));
841
                        MagentaP->setPixmap(SliderPix(120));
842
                        YellowP->setPixmap(SliderPix(240));
843
                }
161 Franz 844
        }
3046 fschmid 845
        imageN.fill(tmp.getRawRGBColor());
846
        tmp.checkGamut();
3041 fschmid 847
        if (tmp.isOutOfGamut())
3046 fschmid 848
                paintAlert(alertIcon, imageN, 2, 2);
3 paul 849
        tmp.getRGBColor().hsv(&h, &s, &v);
161 Franz 850
        NewC->setPixmap( imageN );
851
        Farbe = tmp;
852
        ColorMap->drawPalette(v);
216 Franz 853
        ColorMap->setMark(h, s);
3 paul 854
}
855
 
856
void CMYKChoose::setColor2(int h, int s, bool ende)
857
{
858
        QColor tm = QColor(QMAX(QMIN(359,h),0), QMAX(QMIN(255,255-s),0), 255-BlackComp, QColor::Hsv);
859
        int r, g, b;
860
        tm.rgb(&r, &g, &b);
2886 fschmid 861
        ScColor tmp;
1488 fschmid 862
        tmp.fromQColor(tm);
3 paul 863
        if (CMYKmode)
1488 fschmid 864
                tmp.setColorModel(colorModelCMYK);
3046 fschmid 865
        tmp.checkGamut();
866
        imageN.fill(tmp.getRawRGBColor());
3041 fschmid 867
        if (tmp.isOutOfGamut())
3046 fschmid 868
                paintAlert(alertIcon, imageN, 2, 2);
161 Franz 869
        NewC->setPixmap( imageN );
870
        Farbe = tmp;
871
        if (ende)
216 Franz 872
                setValues();
3 paul 873
}
874
 
279 Franz 875
void CMYKChoose::SelFromSwatch(int c)
876
{
2886 fschmid 877
        ScColor tmp = CurrSwatch[ColorSwatch->text(c)];
1488 fschmid 878
        if (CMYKmode)
879
                tmp.setColorModel(colorModelCMYK);
3046 fschmid 880
        tmp.checkGamut();
881
        imageN.fill(tmp.getRawRGBColor());
3041 fschmid 882
        if (tmp.isOutOfGamut())
3046 fschmid 883
                paintAlert(alertIcon, imageN, 2, 2);
279 Franz 884
        NewC->setPixmap( imageN );
885
        Farbe = tmp;
886
        setValues();
887
}
888
 
3 paul 889
void CMYKChoose::setValues()
890
{
891
        if (CMYKmode)
161 Franz 892
        {
216 Franz 893
                int cc, cm, cy, ck;
894
                Farbe.getCMYK(&cc, &cm, &cy, &ck);
895
                CyanSp->setValue(cc / 2.55);
226 Franz 896
                CyanSL->setValue(qRound(cc / 2.55));
216 Franz 897
                MagentaSp->setValue(cm / 2.55);
226 Franz 898
                MagentaSL->setValue(qRound(cm / 2.55));
216 Franz 899
                YellowSp->setValue(cy / 2.55);
226 Franz 900
                YellowSL->setValue(qRound(cy / 2.55));
216 Franz 901
                BlackSp->setValue(ck / 2.55);
226 Franz 902
                BlackSL->setValue(qRound(ck / 2.55));
216 Franz 903
                if (dynamic)
904
                {
905
                        CyanP->setPixmap(SliderPix(180));
906
                        MagentaP->setPixmap(SliderPix(300));
907
                        YellowP->setPixmap(SliderPix(60));
908
                        BlackP->setPixmap(SliderBlack());
909
                }
910
        }
161 Franz 911
        else
216 Franz 912
        {
913
                int r, g, b;
1488 fschmid 914
                Farbe.getRGB(&r, &g, &b);
217 Franz 915
                CyanSp->setValue(static_cast<double>(r));
916
                CyanSL->setValue(r);
917
                MagentaSp->setValue(static_cast<double>(g));
918
                MagentaSL->setValue(g);
919
                YellowSp->setValue(static_cast<double>(b));
920
                YellowSL->setValue(b);
216 Franz 921
                int h, s, v;
1488 fschmid 922
                Farbe.getRGBColor().hsv(&h, &s, &v);
216 Franz 923
                BlackComp = 255 - v;
924
                if (dynamic)
925
                {
926
                        CyanP->setPixmap(SliderPix(0));
927
                        MagentaP->setPixmap(SliderPix(120));
928
                        YellowP->setPixmap(SliderPix(240));
929
                }
930
        }
3 paul 931
}
932
 
933
QColor CMYKChoose::CMYK2RGB(int c, int m, int y, int k)
934
{
1488 fschmid 935
        /* this code should no longer be used */
3 paul 936
        return QColor(255-QMIN(255, c+k), 255-QMIN(255,m+k), 255-QMIN(255,y+k));
937
}
259 Franz 938
 
939
void CMYKChoose::Verlassen()
940
{
494 fschmid 941
        // if condition 10/21/2004 pv #1191 - just be sure that user cannot create "None" color
4546 subik 942
        if (Farbname->text() == CommonStrings::None || Farbname->text() == tr("None"))
494 fschmid 943
        {
3510 cbradney 944
                QMessageBox::information(this, CommonStrings::trWarning, tr("You cannot create a color named \"%1\".\nIt is a reserved name for transparent color").arg(Farbname->text()), 0);
494 fschmid 945
                Farbname->setFocus();
946
                Farbname->selectAll();
947
                return;
948
        }
344 Franz 949
        if (Fnam != Farbname->text())
259 Franz 950
        {
344 Franz 951
                if (EColors->contains(Farbname->text()))
952
                {
3510 cbradney 953
                        QMessageBox::information(this, CommonStrings::trWarning, tr("Name of the color is not unique"), CommonStrings::tr_OK, 0, 0, 0, QMessageBox::Ok);
344 Franz 954
                        Farbname->selectAll();
955
                        Farbname->setFocus();
956
                        return;
957
                }
958
                else
959
                        accept();
259 Franz 960
        }
961
        else
962
                accept();
963
}