Subversion Repositories Scribus

Rev

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

Rev Author Line No. Line
3 paul 1
/****************************************************************************
2
** Form implementation generated from reading ui file 'Color.ui'
3
**
4
** Created: Mon Apr 23 19:09:31 2001
5
**      by:  The User Interface Compiler (uic)
6
**
7
** WARNING! All changes made in this file will be lost!
8
****************************************************************************/
9
#include "colorm.h"
10
#include "colorm.moc"
11
#include <qvariant.h>
12
#include <qtooltip.h>
13
#include <qpixmap.h>
151 Franz 14
#include <cstdlib>
3 paul 15
#include <qcolordialog.h>
16
#include "customfdialog.h"
17
#include "dcolor.h"
18
#include "scribusXml.h"
19
#include "cmykfw.h"
151 Franz 20
#include "query.h"
188 Franz 21
#include "scribus.h"
415 Franz 22
#include "prefsfile.h"
1693 craig 23
#include "scpaths.h"
128 Franz 24
 
617 cbradney 25
#ifdef _MSC_VER
26
 #if (_MSC_VER >= 1200)
27
  #include "win-config.h"
28
 #endif
128 Franz 29
#else
30
 #include "config.h"
31
#endif
32
 
3 paul 33
extern QPixmap loadIcon(QString nam);
188 Franz 34
extern ScribusApp* ScApp;
415 Franz 35
extern PrefsFile* prefsFile;
3 paul 36
 
1065 cbradney 37
Farbmanager::Farbmanager( QWidget* parent, ColorList doco, bool HDoc, QString DcolSet, QStringList Cust )
259 Franz 38
                : QDialog( parent, "dd", true, 0 )
3 paul 39
{
161 Franz 40
        setName( "Farbmanager" );
41
        HaveDoc = HDoc;
42
        CColSet = Cust;
282 Franz 43
        setSizePolicy(QSizePolicy((QSizePolicy::SizeType)1, (QSizePolicy::SizeType)1, sizePolicy().hasHeightForWidth() ) );
188 Franz 44
        setSizeGripEnabled(true);
45
        setCaption( tr( "Colors" ) );
46
        setIcon(loadIcon("AppIcon.png"));
47
        Layout2 = new QVBoxLayout( this );
48
        Layout2->setSpacing( 6 );
49
        Layout2->setMargin( 11 );
151 Franz 50
 
188 Franz 51
        layout5 = new QHBoxLayout( 0, 0, 6, "layout5");
282 Franz 52
        layout3 = new QVBoxLayout( 0, 0, 6, "layout3");
188 Franz 53
        ListBox1 = new QListBox( this, "ListBox1" );
282 Franz 54
        ListBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)3, (QSizePolicy::SizeType)3, ListBox1->sizePolicy().hasHeightForWidth() ) );
188 Franz 55
        ListBox1->setMinimumSize( QSize( 164, 228 ) );
56
        ListBox1->setColumnMode( QListBox::FixedNumber );
57
        layout5->addWidget( ListBox1 );
151 Franz 58
 
161 Franz 59
        ColorsGroup = new QGroupBox( this, "ColorsGroup" );
60
        ColorsGroup->setColumnLayout(0, Qt::Vertical );
61
        ColorsGroup->layout()->setSpacing( 6 );
62
        ColorsGroup->layout()->setMargin( 11 );
63
        Layout1 = new QVBoxLayout( ColorsGroup->layout() );
64
        Layout1->setAlignment( Qt::AlignTop );
340 Franz 65
        LoadF = new QPushButton( tr( "&Append" ), ColorsGroup, "LoadF" );
188 Franz 66
        Layout1->addWidget( LoadF );
340 Franz 67
        NewF = new QPushButton( tr( "&New" ), ColorsGroup, "NewF" );
188 Franz 68
        Layout1->addWidget( NewF );
340 Franz 69
        EditF = new QPushButton( tr( "&Edit" ), ColorsGroup, "EditF" );
188 Franz 70
        EditF->setEnabled( false );
71
        EditF->setDefault( true );
72
        Layout1->addWidget( EditF );
340 Franz 73
        DupF = new QPushButton( tr( "D&uplicate" ), ColorsGroup, "DupF" );
188 Franz 74
        DupF->setEnabled( false );
75
        Layout1->addWidget( DupF );
340 Franz 76
        DelF = new QPushButton( tr( "&Delete" ), ColorsGroup, "DelF" );
188 Franz 77
        DelF->setEnabled( false );
78
        Layout1->addWidget( DelF );
161 Franz 79
        if (HaveDoc)
80
        {
340 Franz 81
                DelU = new QPushButton( tr( "&Remove Unused" ), ColorsGroup, "DelU" );
282 Franz 82
                Layout1->addWidget( DelU );
161 Franz 83
        }
282 Franz 84
        layout3->addWidget( ColorsGroup );
85
        if (!HaveDoc)
161 Franz 86
        {
87
                ColsSetGroup = new QGroupBox( this, "ColsSetGroup" );
88
                ColsSetGroup->setTitle( tr( "Color Sets" ) );
89
                ColsSetGroup->setColumnLayout(0, Qt::Vertical );
90
                ColsSetGroup->layout()->setSpacing( 6 );
91
                ColsSetGroup->layout()->setMargin( 11 );
92
                ColsSetGroupLayout = new QVBoxLayout( ColsSetGroup->layout() );
93
                ColsSetGroupLayout->setAlignment( Qt::AlignTop );
94
                textLabel1 = new QLabel( ColsSetGroup, "textLabel1" );
95
                textLabel1->setText( tr( "Current Color Set:" ) );
96
                ColsSetGroupLayout->addWidget( textLabel1 );
97
                CSets = new QPopupMenu();
98
                CSets->insertItem("Scribus Small");
99
                CSets->insertItem("X11 RGB-Set");
187 Franz 100
                CSets->insertItem("X11 Grey-Set");
101
                CSets->insertItem("Gnome-Set");
215 Franz 102
                CSets->insertItem("SVG-Set");
1967 fschmid 103
                CSets->insertItem("OpenOffice.org-Set");
161 Franz 104
                if (Cust.count() != 0)
105
                {
226 Franz 106
                        QStringList realEx;
107
                        realEx.clear();
161 Franz 108
                        for (uint m = 0; m < Cust.count(); ++m)
226 Franz 109
                        {
282 Franz 110
                                QString Cpfad = QDir::convertSeparators(QDir::homeDirPath()+"/.scribus/"+Cust[m]);
226 Franz 111
                                QFileInfo cfi(Cpfad);
112
                                if (cfi.exists())
113
                                {
114
                                        CSets->insertItem(Cust[m]);
115
                                        realEx.append(Cust[m]);
116
                                }
117
                        }
118
                        CColSet = realEx;
161 Franz 119
                }
120
                LoadColSet = new QToolButton( ColsSetGroup, "LoadColSet" );
121
                LoadColSet->setPopup(CSets);
122
                LoadColSet->setPopupDelay(0);
123
                LoadColSet->setText(DcolSet);
124
                ColsSetGroupLayout->addWidget( LoadColSet );
340 Franz 125
                SaveColSet = new QPushButton( tr( "&Save Color Set" ), ColsSetGroup, "SaveColSet" );
161 Franz 126
                ColsSetGroupLayout->addWidget( SaveColSet );
282 Franz 127
                layout3->addWidget( ColsSetGroup );
161 Franz 128
        }
340 Franz 129
        SaveF = new QPushButton( tr( "&OK" ), this, "SaveF" );
282 Franz 130
        layout3->addWidget( SaveF );
340 Franz 131
        CancF = new QPushButton( tr( "&Cancel" ), this, "CancF" );
282 Franz 132
        CancF->setDefault( true );
133
        layout3->addWidget( CancF );
134
        layout5->addLayout( layout3 );
135
        Layout2->addLayout( layout5 );
259 Franz 136
        Ersatzliste.clear();
188 Franz 137
        EditColors = doco;
138
        updateCList();
259 Franz 139
        // signals and slots connections
161 Franz 140
        if (!HaveDoc)
141
        {
142
                connect(CSets, SIGNAL(activated(int)), this, SLOT(loadDefaults(int)));
188 Franz 143
                connect(SaveColSet, SIGNAL( clicked() ), this, SLOT( saveDefaults() ) );
224 Franz 144
                QToolTip::add( LoadColSet, tr( "Choose a color set to load" ) );
145
                QToolTip::add( SaveColSet, tr( "Save the current color set" ) );
161 Franz 146
        }
188 Franz 147
        else
224 Franz 148
        {
188 Franz 149
                connect(DelU, SIGNAL( clicked() ), this, SLOT( delUnused() ) );
225 Franz 150
                QToolTip::add( DelU, tr( "Remove unused colors from current document's color set" ) );
224 Franz 151
        }
152
        QToolTip::add( LoadF, tr( "Append colors to the current set from an existing document" ) );
153
        QToolTip::add( NewF, tr( "Create a new color within the current set" ) );
154
        QToolTip::add( EditF, tr( "Edit the currently selected color" ) );
155
        QToolTip::add( DupF, tr( "Make a copy of the currently selected color" ) );
156
        QToolTip::add( DelF, tr( "Delete the currently selected color" ) );
157
        QToolTip::add( SaveF, tr( "Make the current colorset the default color set" ) );
188 Franz 158
        connect( SaveF, SIGNAL( clicked() ), this, SLOT( accept() ) );
159
        connect( CancF, SIGNAL( clicked() ), this, SLOT( reject() ) );
160
        connect( NewF, SIGNAL( clicked() ), this, SLOT( neueFarbe() ) );
161
        connect( EditF, SIGNAL( clicked() ), this, SLOT( editFarbe() ) );
162
        connect( DupF, SIGNAL( clicked() ), this, SLOT( duplFarbe() ) );
163
        connect( DelF, SIGNAL( clicked() ), this, SLOT( delFarbe() ) );
164
        connect( LoadF, SIGNAL( clicked() ), this, SLOT( loadFarben() ) );
165
        connect( ListBox1, SIGNAL( highlighted(QListBoxItem*) ), this, SLOT( selFarbe(QListBoxItem*) ) );
270 Franz 166
        connect( ListBox1, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selEditFarbe(QListBoxItem*) ) );
3 paul 167
}
168
 
151 Franz 169
void Farbmanager::saveDefaults()
147 Franz 170
{
282 Franz 171
        QString Cpfad = QDir::convertSeparators(QDir::homeDirPath()+"/.scribus/");
151 Franz 172
        QString Name = LoadColSet->text();
348 Franz 173
        Query* dia = new Query(this, "Name", 1, 0, tr("&Name:"), tr("Choose a Name"));
1967 fschmid 174
        if ((Name == "Scribus Small") || (Name == "X11 RGB-Set") || (Name == "OpenOffice.org-Set")
259 Franz 175
                || (Name == "X11 Grey-Set") || (Name == "Gnome-Set") || (Name == "SVG-Set"))
702 cbradney 176
                dia->setEditText("", false);
151 Franz 177
        else
702 cbradney 178
                dia->setEditText(Name, false);
151 Franz 179
        if (dia->exec())
161 Franz 180
        {
702 cbradney 181
                QString Fname = Cpfad+dia->getEditText();
182
                LoadColSet->setText(dia->getEditText());
151 Franz 183
                QFile fx(Fname);
184
                if (fx.open(IO_WriteOnly))
161 Franz 185
                {
151 Franz 186
                        QTextStream tsx(&fx);
187
                        QString tmp;
1065 cbradney 188
                        ColorList::Iterator itc;
702 cbradney 189
                        tsx << "Color Set:"+dia->getEditText()+"\n";
151 Franz 190
                        int cp, mp, yp, kp;
191
                        for (itc = EditColors.begin(); itc != EditColors.end(); ++itc)
161 Franz 192
                        {
151 Franz 193
                                EditColors[itc.key()].getCMYK(&cp, &mp, &yp, &kp);
194
                                tsx << tmp.setNum(cp) << "\t" ;
195
                                tsx << tmp.setNum(mp) << "\t" ;
196
                                tsx << tmp.setNum(yp) << "\t" ;
197
                                tsx << tmp.setNum(kp) << "\t" ;
198
                                tsx << itc.key() << "\n" ;
161 Franz 199
                        }
151 Franz 200
                        fx.close();
702 cbradney 201
                        if (dia->getEditText() != Name)
161 Franz 202
                        {
702 cbradney 203
                                CColSet.append(dia->getEditText());
204
                                CSets->insertItem(dia->getEditText());
151 Franz 205
                        }
206
                }
161 Franz 207
        }
151 Franz 208
        delete dia;
209
}
210
 
211
void Farbmanager::loadDefaults(int id)
212
{
213
        int c = CSets->indexOf(id);
226 Franz 214
        bool cus = false;
151 Franz 215
        LoadColSet->setText(CSets->text(id));
161 Franz 216
        EditColors.clear();
282 Franz 217
        QString Cpfad = QDir::convertSeparators(QDir::homeDirPath()+"/.scribus/"+CSets->text(id));
1693 craig 218
        QString pfadC = ScPaths::instance().libDir();
872 cbradney 219
        QString pfadC2 = pfadC + "rgbscribus.txt";
151 Franz 220
        switch (c)
161 Franz 221
        {
259 Franz 222
        case 0:
223
                LoadColSet->setText("Scribus Small");
224
                EditColors.insert("White", CMYKColor(0, 0, 0, 0));
225
                EditColors.insert("Black", CMYKColor(0, 0, 0, 255));
226
                EditColors.insert("Blue", CMYKColor(255, 255, 0, 0));
227
                EditColors.insert("Cyan", CMYKColor(255, 0, 0, 0));
228
                EditColors.insert("Green", CMYKColor(255, 0, 255, 0));
229
                EditColors.insert("Red", CMYKColor(0, 255, 255, 0));
230
                EditColors.insert("Yellow", CMYKColor(0, 0, 255, 0));
231
                EditColors.insert("Magenta", CMYKColor(0, 255, 0, 0));
232
                break;
233
        case 1:
872 cbradney 234
                pfadC2 = pfadC + "rgbscribus.txt";
259 Franz 235
                break;
236
        case 2:
872 cbradney 237
                pfadC2 = pfadC + "rgbscribusgreys.txt";
259 Franz 238
                break;
239
        case 3:
872 cbradney 240
                pfadC2 = pfadC + "rgbscribusgnome.txt";
259 Franz 241
                break;
242
        case 4:
872 cbradney 243
                pfadC2 = pfadC + "rgbsvg.txt";
259 Franz 244
                break;
1967 fschmid 245
        case 5:
246
                pfadC2 = pfadC + "rgbscribusopenoffice.txt";
247
                cus = true;
248
                break;
259 Franz 249
        default:
250
                pfadC2 = Cpfad;
251
                cus = true;
252
                break;
253
        }
190 Franz 254
        if (c != 0)
187 Franz 255
        {
190 Franz 256
                QFile fiC(pfadC2);
257
                if (fiC.open(IO_ReadOnly))
187 Franz 258
                {
190 Franz 259
                        QString ColorEn, Cname;
226 Franz 260
                        int Rval, Gval, Bval, Kval;
190 Franz 261
                        QTextStream tsC(&fiC);
187 Franz 262
                        ColorEn = tsC.readLine();
190 Franz 263
                        while (!tsC.atEnd())
264
                        {
226 Franz 265
                                CMYKColor tmp;
190 Franz 266
                                ColorEn = tsC.readLine();
267
                                QTextStream CoE(&ColorEn, IO_ReadOnly);
268
                                CoE >> Rval;
269
                                CoE >> Gval;
270
                                CoE >> Bval;
226 Franz 271
                                if (cus)
272
                                {
273
                                        CoE >> Kval;
274
                                        Cname = CoE.read().stripWhiteSpace();
275
                                        tmp.setColor(Rval, Gval, Bval, Kval);
276
                                }
277
                                else
278
                                {
279
                                        Cname = CoE.read().stripWhiteSpace();
280
                                        tmp.setColorRGB(Rval, Gval, Bval);
281
                                }
190 Franz 282
                                EditColors.insert(Cname, tmp);
283
                        }
284
                        fiC.close();
187 Franz 285
                }
190 Franz 286
                else
287
                {
288
                        LoadColSet->setText("Scribus Small");
289
                        EditColors.insert("White", CMYKColor(0, 0, 0, 0));
259 Franz 290
                        EditColors.insert("Black", CMYKColor(0, 0, 0, 255));
190 Franz 291
                        EditColors.insert("Blue", CMYKColor(255, 255, 0, 0));
292
                        EditColors.insert("Cyan", CMYKColor(255, 0, 0, 0));
293
                        EditColors.insert("Green", CMYKColor(255, 0, 255, 0));
294
                        EditColors.insert("Red", CMYKColor(0, 255, 255, 0));
295
                        EditColors.insert("Yellow", CMYKColor(0, 0, 255, 0));
296
                        EditColors.insert("Magenta", CMYKColor(0, 255, 0, 0));
297
                }
161 Franz 298
        }
147 Franz 299
        updateCList();
300
}
301
 
3 paul 302
void Farbmanager::loadFarben()
303
{
304
        QString fileName;
415 Franz 305
        PrefsContext* dirs = prefsFile->getContext("dirs");
306
        QString wdir = dirs->get("colors", ".");
3 paul 307
#ifdef HAVE_LIBZ
415 Franz 308
        CustomFDialog dia(this, wdir, tr("Open"), tr("Documents (*.sla *.sla.gz *.scd *.scd.gz);;All Files (*)"));
3 paul 309
#else
415 Franz 310
        CustomFDialog dia(this, wdir, tr("Open"), tr("Documents (*.sla *.scd);;All Files (*)"));
3 paul 311
#endif
312
        if (dia.exec() == QDialog::Accepted)
313
                fileName = dia.selectedFile();
314
        else
315
                return;
161 Franz 316
        if (!fileName.isEmpty())
259 Franz 317
        {
415 Franz 318
                dirs->set("colors", fileName.left(fileName.findRev("/")));
259 Franz 319
                ScriXmlDoc *ss = new ScriXmlDoc();
320
                if (ss->ReadColors(fileName))
321
                {
1065 cbradney 322
                        ColorList LColors = ss->Farben;
323
                        ColorList::Iterator it;
3 paul 324
                        for (it = LColors.begin(); it != LColors.end(); ++it)
161 Franz 325
                        {
3 paul 326
                                if (!EditColors.contains(it.key()))
259 Franz 327
                                        EditColors.insert(it.key(), it.data());
161 Franz 328
                        }
259 Franz 329
                        updateCList();
330
                }
118 Franz 331
                delete ss;
188 Franz 332
        }
3 paul 333
}
334
 
188 Franz 335
void Farbmanager::delUnused()
336
{
337
        PageItem* ite;
338
        bool found;
339
        UsedC.clear();
1065 cbradney 340
        ColorList::Iterator it;
188 Franz 341
        for (it = EditColors.begin(); it != EditColors.end(); ++it)
342
        {
343
                found = false;
1194 fschmid 344
                if ((it.key() == ScApp->doc->toolSettings.dBrush) || (it.key() == ScApp->doc->toolSettings.dPen) ||
345
                        (it.key() == ScApp->doc->toolSettings.dBrushPict)
346
                        || (it.key() == ScApp->doc->toolSettings.dPenLine) || (it.key() == ScApp->doc->toolSettings.dPenText))
188 Franz 347
                {
348
                        UsedC.insert(it.key(), it.data());
349
                        continue;
190 Franz 350
                }
456 fschmid 351
                for (uint c = 0; c < ScApp->doc->MasterItems.count(); ++c)
188 Franz 352
                {
456 fschmid 353
                        ite = ScApp->doc->MasterItems.at(c);
354
                        QPtrVector<VColorStop> cstops = ite->fill_gradient.colorStops();
355
                        for (uint cst = 0; cst < ite->fill_gradient.Stops(); ++cst)
188 Franz 356
                        {
456 fschmid 357
                                if (it.key() == cstops.at(cst)->name)
358
                                        found = true;
359
                                if (found)
360
                                        break;
361
                        }
1460 cbradney 362
                        if ((ite->itemType() == PageItem::TextFrame) || (ite->itemType() == PageItem::PathText))
456 fschmid 363
                        {
1065 cbradney 364
                                for (uint d=0; d<ite->itemText.count(); ++d)
297 Franz 365
                                {
1065 cbradney 366
                                        if (it.key() == ite->itemText.at(d)->ccolor)
297 Franz 367
                                                found = true;
1065 cbradney 368
                                        if (it.key() == ite->itemText.at(d)->cstroke)
456 fschmid 369
                                                found = true;
297 Franz 370
                                        if (found)
371
                                                break;
372
                                }
188 Franz 373
                        }
456 fschmid 374
                        /* PFJ - 29.02.04 - merged if's to one line */
1394 cbradney 375
                        if ((it.key() == ite->fillColor()) || (it.key() == ite->lineColor()))
456 fschmid 376
                                found = true;
188 Franz 377
                        if (found)
378
                                break;
379
                }
380
                if (found)
381
                {
382
                        UsedC.insert(it.key(), it.data());
383
                        continue;
384
                }
456 fschmid 385
                for (uint c = 0; c < ScApp->doc->DocItems.count(); ++c)
188 Franz 386
                {
456 fschmid 387
                        ite = ScApp->doc->DocItems.at(c);
388
                        QPtrVector<VColorStop> cstops = ite->fill_gradient.colorStops();
389
                        for (uint cst = 0; cst < ite->fill_gradient.Stops(); ++cst)
188 Franz 390
                        {
456 fschmid 391
                                if (it.key() == cstops.at(cst)->name)
392
                                        found = true;
393
                                if (found)
394
                                        break;
395
                        }
1460 cbradney 396
                        if ((ite->itemType() == PageItem::TextFrame) || (ite->itemType() == PageItem::PathText))
456 fschmid 397
                        {
1065 cbradney 398
                                for (uint d=0; d<ite->itemText.count(); ++d)
297 Franz 399
                                {
456 fschmid 400
                                        /* PFJ - 29.02.04 - Merged if's */
1065 cbradney 401
                                        if ((it.key() == ite->itemText.at(d)->ccolor) ||
402
                                                        (it.key() == ite->itemText.at(d)->cstroke))
297 Franz 403
                                                found = true;
404
                                        if (found)
405
                                                break;
406
                                }
188 Franz 407
                        }
456 fschmid 408
                        /* PFJ - 29.02.04 - Merged if's */
1394 cbradney 409
                        if ((it.key() == ite->fillColor()) || (it.key() == ite->lineColor()))
456 fschmid 410
                                found = true;
188 Franz 411
                        if (found)
412
                                break;
413
                }
224 Franz 414
                /* PFJ - 29.02.04 - Merged if's */
259 Franz 415
                if ((it.key() == ScApp->doc->CurrTextFill) ||
416
                        (it.key() == ScApp->doc->CurrTextStroke))
188 Franz 417
                        found = true;
418
                if (found)
419
                {
420
                        UsedC.insert(it.key(), it.data());
421
                        continue;
422
                }
423
        }
424
        EditColors = UsedC;
190 Franz 425
        if (EditColors.count() == 0)
224 Franz 426
        {
190 Franz 427
                EditColors.insert("White", CMYKColor(0, 0, 0, 0));
259 Franz 428
                EditColors.insert("Black", CMYKColor(0, 0, 0, 255));
224 Franz 429
        }
188 Franz 430
        updateCList();
431
}
432
 
3 paul 433
void Farbmanager::duplFarbe()
434
{
259 Franz 435
        QString nam = tr("Copy of %1").arg(sFarbe);
436
        EditColors.insert(nam, EditColors[sFarbe]);
437
        updateCList();
3 paul 438
}
439
 
440
void Farbmanager::neueFarbe()
441
{
259 Franz 442
        CMYKColor tmpFarbe = CMYKColor(0, 0, 0, 0);
279 Franz 443
        CMYKChoose* dia = new CMYKChoose(this, tmpFarbe, tr("New Color"), &EditColors, CColSet);
259 Franz 444
        if (dia->exec())
445
        {
446
                EditColors.insert(dia->Farbname->text(), dia->Farbe);
161 Franz 447
                updateCList();
259 Franz 448
        }
449
        delete dia;
3 paul 450
}
451
 
452
void Farbmanager::editFarbe()
453
{
259 Franz 454
        CMYKColor tmpFarbe = EditColors[sFarbe];
279 Franz 455
        CMYKChoose* dia = new CMYKChoose(this, tmpFarbe, sFarbe, &EditColors, CColSet);
259 Franz 456
        if (dia->exec())
161 Franz 457
        {
344 Franz 458
                EditColors[dia->Farbname->text()] = dia->Farbe;
459
                if (sFarbe != dia->Farbname->text())
460
                        Ersatzliste.insert(sFarbe, dia->Farbname->text());
259 Franz 461
                updateCList();
462
        }
3 paul 463
        delete dia;
464
}
465
 
259 Franz 466
void Farbmanager::delFarbe()
467
{
468
        DelColor *dia = new DelColor(this, EditColors, sFarbe, HaveDoc);
469
        if (dia->exec())
470
        {
686 cbradney 471
                Ersatzliste.insert(sFarbe, dia->getReplacementColor());
259 Franz 472
                EditColors.remove(sFarbe);
473
                updateCList();
474
        }
475
        delete dia;
476
}
477
 
3 paul 478
void Farbmanager::selFarbe(QListBoxItem *c)
479
{
480
        sFarbe = c->text();
481
        EditF->setEnabled(true);
482
        DupF->setEnabled(true);
161 Franz 483
        DelF->setEnabled(EditColors.count() == 1 ? false : true);
3 paul 484
}
485
 
270 Franz 486
void Farbmanager::selEditFarbe(QListBoxItem *c)
487
{
488
        sFarbe = c->text();
489
        EditF->setEnabled(true);
490
        DupF->setEnabled(true);
491
        DelF->setEnabled(EditColors.count() == 1 ? false : true);
492
        editFarbe();
493
}
494
 
3 paul 495
void Farbmanager::updateCList()
496
{
497
        ListBox1->clear();
1065 cbradney 498
        ColorList::Iterator it;
3 paul 499
        QPixmap pm = QPixmap(30, 15);
500
        for (it = EditColors.begin(); it != EditColors.end(); ++it)
161 Franz 501
        {
494 fschmid 502
                // if condition 10/21/2004 pv #1191
503
                if (it.key() != "None" && it.key() != tr("None"))
504
                {
505
                        pm.fill(EditColors[it.key()].getRGBColor());
506
                        ListBox1->insertItem(pm, it.key());
507
                }
161 Franz 508
        }
80 Franz 509
        DelF->setEnabled(EditColors.count() == 1 ? false : true);
3 paul 510
        if (ListBox1->currentItem() == -1)
259 Franz 511
        {
512
                DupF->setEnabled(false);
513
                EditF->setEnabled(false);
514
                DelF->setEnabled(false);
515
        }
516
        ListBox1->setSelected(ListBox1->currentItem(), false);
3 paul 517
}
518