Subversion Repositories Scribus

Rev

Rev 22997 | Rev 23006 | 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
*/
2056 fschmid 7
#include "effectsdialog.h"
9801 fschmid 8
#include <QHBoxLayout>
9
#include <QGridLayout>
10
#include <QVBoxLayout>
11
#include <QSpacerItem>
8501 cbradney 12
#include <QPixmap>
9801 fschmid 13
#include <QLabel>
14
#include <QPushButton>
15
#include <QToolButton>
16
#include <QListWidget>
17
#include <QListWidgetItem>
18
#include <QToolTip>
19
#include <QSlider>
20
#include <QImage>
21
#include <QWidget>
22
#include <QMenu>
23
#include <QWidgetAction>
24
#include <QTime>
25
#include <QStackedWidget>
10203 cbradney 26
 
27
#include "cmsettings.h"
6089 jghali 28
#include "colorcombo.h"
10203 cbradney 29
#include "curvewidget.h"
20185 craig 30
#include "iconmanager.h"
31
#include "scclocale.h"
3543 avox 32
#include "sccombobox.h"
16736 jghali 33
#include "scpage.h"
2057 fschmid 34
#include "scribusdoc.h"
10203 cbradney 35
#include "scrspinbox.h"
13503 cbradney 36
#include "sctextstream.h"
2057 fschmid 37
#include "shadebutton.h"
20185 craig 38
#include "util.h"
10203 cbradney 39
#include "util_color.h"
2057 fschmid 40
 
10203 cbradney 41
 
20185 craig 42
 
9801 fschmid 43
EffectsDialog::EffectsDialog( QWidget* parent, PageItem* item, ScribusDoc* docc ) : QDialog( parent )
7337 fschmid 44
{
9801 fschmid 45
        setModal(true);
46
        setWindowTitle( tr( "Image Effects" ) );
20185 craig 47
        setWindowIcon(IconManager::instance()->loadIcon("AppIcon.png"));
18330 jghali 48
        m_item = item;
49
        effectsList = m_item->effectsInUse;
50
        m_doc = docc;
22603 craig 51
        currentOptions = nullptr;
17012 fschmid 52
 
53
//      CMSettings cms(docc, "", Intent_Perceptual);
54
//      cms.allowColorManagement(false);
2061 fschmid 55
        bool mode = false;
18330 jghali 56
        CMSettings cms(m_doc, m_item->IProfile, m_item->IRender);
57
        cms.setUseEmbeddedProfile(m_item->UseEmbedded);
17012 fschmid 58
        cms.allowSoftProofing(true);
18330 jghali 59
        m_image.loadPicture(m_item->Pfile, m_item->pixm.imgInfo.actualPageNumber, cms, ScImage::RGBData, 72, &mode);
60
        int ix = m_image.width();
61
        int iy = m_image.height();
62
        m_imageScale = 1.0;
2061 fschmid 63
        if ((ix > 220) || (iy > 220))
64
        {
65
                double sx = ix / 220.0;
66
                double sy = iy / 220.0;
67
                if (sy < sx)
18330 jghali 68
                        m_image.createLowRes(sx);
2061 fschmid 69
                else
18330 jghali 70
                        m_image.createLowRes(sy);
71
                m_imageScale = qMin(sx, sy);
2061 fschmid 72
        }
9801 fschmid 73
        EffectsDialogLayout = new QHBoxLayout( this );
74
        EffectsDialogLayout->setMargin(10);
75
        EffectsDialogLayout->setSpacing(5);
76
        layout16 = new QVBoxLayout;
77
        layout16->setMargin(0);
78
        layout16->setSpacing(5);
10507 fschmid 79
        pixmapLabel1 = new QLabel( this );
80
        pixmapLabel1->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
2061 fschmid 81
        pixmapLabel1->setMinimumSize( QSize( 220, 220 ) );
82
        pixmapLabel1->setMaximumSize( QSize( 220, 220 ) );
83
        pixmapLabel1->setFrameShape( QLabel::StyledPanel );
84
        pixmapLabel1->setFrameShadow( QLabel::Sunken );
85
        pixmapLabel1->setScaledContents( false );
86
        layout16->addWidget( pixmapLabel1 );
10507 fschmid 87
        textLabel5 = new QLabel( this );
2061 fschmid 88
        textLabel5->setText( tr( "Options:" ) );
89
        layout16->addWidget( textLabel5 );
9801 fschmid 90
        optionStack = new QStackedWidget( this );
10507 fschmid 91
//      optionStack->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, optionStack->sizePolicy().hasHeightForWidth() ) );
6129 fschmid 92
        optionStack->setMinimumSize( QSize( 220, 180 ) );
9801 fschmid 93
        optionStack->setFrameShape( QFrame::Box );
10507 fschmid 94
        WStackPage = new QWidget( optionStack );
9801 fschmid 95
        optionStack->addWidget( WStackPage );
2061 fschmid 96
 
10507 fschmid 97
        WStackPage_2 = new QWidget( optionStack );
9801 fschmid 98
        WStackPageLayout = new QVBoxLayout( WStackPage_2 );
99
        WStackPageLayout->setMargin(5);
100
        WStackPageLayout->setSpacing(5);
2061 fschmid 101
        WStackPageLayout->setAlignment( Qt::AlignTop );
9801 fschmid 102
        layout17 = new QHBoxLayout;
103
        layout17->setMargin(0);
104
        layout17->setSpacing(5);
10507 fschmid 105
        textLabel3 = new QLabel( tr( "Color:" ), WStackPage_2 );
2061 fschmid 106
        layout17->addWidget( textLabel3 );
107
 
10469 cbradney 108
        colData = new ColorCombo(false, WStackPage_2);
21664 jghali 109
        colData->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 110
        colData->setColors(m_doc->PageColors, false);
2061 fschmid 111
        layout17->addWidget( colData );
112
        WStackPageLayout->addLayout( layout17 );
2057 fschmid 113
 
9801 fschmid 114
        layout19 = new QHBoxLayout;
115
        layout19->setMargin(0);
116
        layout19->setSpacing(5);
10507 fschmid 117
        textLabel4 = new QLabel( tr( "Shade:" ), WStackPage_2 );
2061 fschmid 118
        layout19->addWidget( textLabel4 );
119
        shade = new ShadeButton(WStackPage_2);
120
        shade->setValue(100);
121
        layout19->addWidget( shade );
122
        WStackPageLayout->addLayout( layout19 );
9801 fschmid 123
        optionStack->addWidget( WStackPage_2 );
2082 fschmid 124
 
10507 fschmid 125
        WStackPage_3 = new QWidget( optionStack );
9801 fschmid 126
        WStackPage3Layout = new QVBoxLayout( WStackPage_3 );
127
        WStackPage3Layout->setMargin(5);
128
        WStackPage3Layout->setSpacing(5);
2082 fschmid 129
        WStackPage3Layout->setAlignment( Qt::AlignTop );
9801 fschmid 130
        layout20 = new QHBoxLayout;
131
        layout20->setMargin(0);
132
        layout20->setSpacing(5);
10507 fschmid 133
        textLabel6 = new QLabel( tr( "Brightness:" ), WStackPage_3 );
2082 fschmid 134
        layout20->addWidget( textLabel6, Qt::AlignLeft );
10507 fschmid 135
        textLabel7 = new QLabel( "0", WStackPage_3 );
2082 fschmid 136
        layout20->addWidget( textLabel7, Qt::AlignRight );
137
        WStackPage3Layout->addLayout( layout20 );
10507 fschmid 138
        brightnessSlider = new QSlider( WStackPage_3 );
10493 fschmid 139
        brightnessSlider->setMinimum(-255);
140
        brightnessSlider->setMaximum(255);
2082 fschmid 141
        brightnessSlider->setValue(0);
8547 cbradney 142
        brightnessSlider->setOrientation( Qt::Horizontal );
10507 fschmid 143
        brightnessSlider->setTickPosition( QSlider::TicksBelow );
2082 fschmid 144
        WStackPage3Layout->addWidget( brightnessSlider );
9801 fschmid 145
        optionStack->addWidget( WStackPage_3 );
2082 fschmid 146
 
10507 fschmid 147
        WStackPage_4 = new QWidget( optionStack );
9801 fschmid 148
        WStackPage4Layout = new QVBoxLayout( WStackPage_4 );
149
        WStackPage4Layout->setMargin(5);
150
        WStackPage4Layout->setSpacing(5);
2082 fschmid 151
        WStackPage4Layout->setAlignment( Qt::AlignTop );
9801 fschmid 152
        layout21 = new QHBoxLayout;
153
        layout21->setMargin(0);
154
        layout21->setSpacing(5);
10507 fschmid 155
        textLabel8 = new QLabel( tr( "Contrast:" ), WStackPage_4 );
2082 fschmid 156
        layout21->addWidget( textLabel8, Qt::AlignLeft );
10507 fschmid 157
        textLabel9 = new QLabel( "0", WStackPage_4 );
2082 fschmid 158
        layout21->addWidget( textLabel9, Qt::AlignRight );
159
        WStackPage4Layout->addLayout( layout21 );
10507 fschmid 160
        contrastSlider = new QSlider( WStackPage_4 );
10493 fschmid 161
        contrastSlider->setMinimum(-127);
162
        contrastSlider->setMaximum(127);
2082 fschmid 163
        contrastSlider->setValue(0);
8573 jghali 164
        contrastSlider->setOrientation( Qt::Horizontal );
10507 fschmid 165
        contrastSlider->setTickPosition( QSlider::TicksBelow );
2082 fschmid 166
        WStackPage4Layout->addWidget( contrastSlider );
9801 fschmid 167
        optionStack->addWidget( WStackPage_4 );
2092 fschmid 168
 
10507 fschmid 169
        WStackPage_5 = new QWidget( optionStack );
9801 fschmid 170
        WStackPage5Layout = new QVBoxLayout( WStackPage_5 );
171
        WStackPage5Layout->setMargin(5);
172
        WStackPage5Layout->setSpacing(5);
2092 fschmid 173
        WStackPage5Layout->setAlignment( Qt::AlignTop );
9801 fschmid 174
        layout22 = new QHBoxLayout;
175
        layout22->setMargin(0);
176
        layout22->setSpacing(5);
10507 fschmid 177
        textLabel10 = new QLabel( tr( "Radius:" ), WStackPage_5 );
2092 fschmid 178
        layout22->addWidget( textLabel10 );
8602 cbradney 179
        shRadius = new ScrSpinBox( 0.0, 10.0, WStackPage_5, 1 );
9804 fschmid 180
        shRadius->setDecimals(1);
181
        shRadius->setSuffix("");
2092 fschmid 182
        shRadius->setValue(0);
183
        layout22->addWidget( shRadius );
184
        WStackPage5Layout->addLayout( layout22 );
9801 fschmid 185
        layout23 = new QHBoxLayout;
186
        layout23->setMargin(0);
187
        layout23->setSpacing(5);
10507 fschmid 188
        textLabel11 = new QLabel( tr("Value:"), WStackPage_5 );
2092 fschmid 189
        layout23->addWidget( textLabel11 );
8602 cbradney 190
        shValue = new ScrSpinBox( 0.0, 5.0, WStackPage_5, 1 );
9804 fschmid 191
        shValue->setDecimals(1);
192
        shValue->setSuffix("");
2092 fschmid 193
        shValue->setValue(1.0);
194
        layout23->addWidget( shValue );
195
        WStackPage5Layout->addLayout( layout23 );
9801 fschmid 196
        optionStack->addWidget( WStackPage_5 );
2095 fschmid 197
 
10507 fschmid 198
        WStackPage_6 = new QWidget( optionStack );
9801 fschmid 199
        WStackPage6Layout = new QVBoxLayout( WStackPage_6 );
200
        WStackPage6Layout->setMargin(5);
201
        WStackPage6Layout->setSpacing(5);
2095 fschmid 202
        WStackPage6Layout->setAlignment( Qt::AlignTop );
9801 fschmid 203
        layout24 = new QHBoxLayout;
204
        layout24->setMargin(0);
205
        layout24->setSpacing(5);
10507 fschmid 206
        textLabel12 = new QLabel( tr( "Radius:" ), WStackPage_6 );
2095 fschmid 207
        layout24->addWidget( textLabel12 );
8602 cbradney 208
        blRadius = new ScrSpinBox( 0.0, 30.0, WStackPage_6, 1 );
9804 fschmid 209
        blRadius->setDecimals(1);
210
        blRadius->setSuffix("");
2095 fschmid 211
        blRadius->setValue(0);
212
        layout24->addWidget( blRadius );
213
        WStackPage6Layout->addLayout( layout24 );
9801 fschmid 214
        optionStack->addWidget( WStackPage_6 );
2096 fschmid 215
 
10507 fschmid 216
        WStackPage_7 = new QWidget( optionStack );
9801 fschmid 217
        WStackPage7Layout = new QVBoxLayout( WStackPage_7 );
218
        WStackPage7Layout->setMargin(5);
219
        WStackPage7Layout->setSpacing(5);
2096 fschmid 220
        WStackPage7Layout->setAlignment( Qt::AlignTop );
9801 fschmid 221
        layout26 = new QHBoxLayout;
222
        layout26->setMargin(0);
223
        layout26->setSpacing(5);
10507 fschmid 224
        textLabel14 = new QLabel( tr( "Posterize:" ), WStackPage_7 );
2096 fschmid 225
        layout26->addWidget( textLabel14, Qt::AlignLeft );
10507 fschmid 226
        textLabel15 = new QLabel( "0", WStackPage_7 );
2096 fschmid 227
        layout26->addWidget( textLabel15, Qt::AlignRight );
228
        WStackPage7Layout->addLayout( layout26 );
10507 fschmid 229
        solarizeSlider = new QSlider( WStackPage_7 );
10493 fschmid 230
        solarizeSlider->setMinimum(1);
231
        solarizeSlider->setMaximum(255);
2096 fschmid 232
        solarizeSlider->setValue(255);
8547 cbradney 233
        solarizeSlider->setOrientation( Qt::Horizontal );
10507 fschmid 234
        solarizeSlider->setTickPosition( QSlider::TicksBelow );
2096 fschmid 235
        WStackPage7Layout->addWidget( solarizeSlider );
9801 fschmid 236
        optionStack->addWidget( WStackPage_7 );
6080 fschmid 237
 
10507 fschmid 238
        WStackPage_8 = new QWidget( optionStack );
9801 fschmid 239
        WStackPage8Layout = new QGridLayout( WStackPage_8 );
240
        WStackPage8Layout->setMargin(4);
241
        WStackPage8Layout->setSpacing(5);
242
        WStackPage8Layout->setAlignment( Qt::AlignTop );
10507 fschmid 243
        textLabel1d = new QLabel( tr( "Color 1:" ), WStackPage_8 );
6080 fschmid 244
        WStackPage8Layout->addWidget( textLabel1d, 0, 0 );
10469 cbradney 245
        colData1 = new ColorCombo(false, WStackPage_8);
21664 jghali 246
        colData1->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 247
        colData1->setColors(m_doc->PageColors, false);
9801 fschmid 248
        WStackPage8Layout->addWidget( colData1, 0, 1, 1, 2);
6080 fschmid 249
        shade1 = new ShadeButton(WStackPage_8);
250
        shade1->setValue(100);
6129 fschmid 251
        WStackPage8Layout->addWidget( shade1, 1, 1 );
22516 craig 252
        CurveD1 = new CurveWidget( nullptr );
9513 fschmid 253
        CurveD1Pop = new QMenu();
254
        CurveD1Act = new QWidgetAction(this);
255
        CurveD1Act->setDefaultWidget(CurveD1);
256
        CurveD1Pop->addAction(CurveD1Act);
10507 fschmid 257
        CurveD1Button = new QToolButton( WStackPage_8 );
6129 fschmid 258
        CurveD1Button->setText( "" );
259
        CurveD1Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 260
        CurveD1Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 261
        CurveD1Button->setMenu(CurveD1Pop);
262
        CurveD1Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 263
        WStackPage8Layout->addWidget( CurveD1Button, 1, 2 );
264
 
10507 fschmid 265
        textLabel2d = new QLabel( tr( "Color 2:" ), WStackPage_8 );
6129 fschmid 266
        WStackPage8Layout->addWidget( textLabel2d, 2, 0 );
10469 cbradney 267
        colData2 = new ColorCombo(false, WStackPage_8);
21664 jghali 268
        colData2->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 269
        colData2->setColors(m_doc->PageColors, false);
9801 fschmid 270
        WStackPage8Layout->addWidget( colData2, 2, 1, 1, 2);
6080 fschmid 271
        shade2 = new ShadeButton(WStackPage_8);
272
        shade2->setValue(100);
6129 fschmid 273
        WStackPage8Layout->addWidget( shade2, 3, 1 );
22516 craig 274
        CurveD2 = new CurveWidget( nullptr );
9513 fschmid 275
        CurveD2Pop = new QMenu();
276
        CurveD2Act = new QWidgetAction(this);
277
        CurveD2Act->setDefaultWidget(CurveD2);
278
        CurveD2Pop->addAction(CurveD2Act);
10507 fschmid 279
        CurveD2Button = new QToolButton( WStackPage_8 );
6129 fschmid 280
        CurveD2Button->setText( "" );
281
        CurveD2Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 282
        CurveD2Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 283
        CurveD2Button->setMenu(CurveD2Pop);
284
        CurveD2Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 285
        WStackPage8Layout->addWidget( CurveD2Button, 3, 2 );
22997 craig 286
        auto *spacerD1 = new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding );
6129 fschmid 287
        WStackPage8Layout->addItem( spacerD1, 4, 0 );
9801 fschmid 288
        optionStack->addWidget( WStackPage_8 );
6080 fschmid 289
 
10507 fschmid 290
        WStackPage_9 = new QWidget( optionStack );
9801 fschmid 291
        WStackPage9Layout = new QGridLayout( WStackPage_9 );
292
        WStackPage9Layout->setMargin(4);
293
        WStackPage9Layout->setSpacing(5);
294
        WStackPage9Layout->setAlignment( Qt::AlignTop );
10507 fschmid 295
        textLabel1t = new QLabel( tr( "Color 1:" ), WStackPage_9 );
6080 fschmid 296
        WStackPage9Layout->addWidget( textLabel1t, 0, 0 );
10469 cbradney 297
        colDatat1 = new ColorCombo(false, WStackPage_9);
21664 jghali 298
        colDatat1->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 299
        colDatat1->setColors(m_doc->PageColors, false);
9801 fschmid 300
        WStackPage9Layout->addWidget( colDatat1, 0, 1, 1, 2 );
6080 fschmid 301
        shadet1 = new ShadeButton(WStackPage_9);
302
        shadet1->setValue(100);
6129 fschmid 303
        WStackPage9Layout->addWidget( shadet1, 1, 1 );
22516 craig 304
        CurveT1 = new CurveWidget( nullptr );
9513 fschmid 305
        CurveT1Pop = new QMenu();
306
        CurveT1Act = new QWidgetAction(this);
307
        CurveT1Act->setDefaultWidget(CurveT1);
308
        CurveT1Pop->addAction(CurveT1Act);
10507 fschmid 309
        CurveT1Button = new QToolButton( WStackPage_9 );
6129 fschmid 310
        CurveT1Button->setText( "" );
311
        CurveT1Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 312
        CurveT1Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 313
        CurveT1Button->setMenu(CurveT1Pop);
314
        CurveT1Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 315
        WStackPage9Layout->addWidget( CurveT1Button, 1, 2 );
10507 fschmid 316
        textLabel2t = new QLabel( tr( "Color 2:" ), WStackPage_9 );
6129 fschmid 317
        WStackPage9Layout->addWidget( textLabel2t, 2, 0 );
10469 cbradney 318
        colDatat2 = new ColorCombo(false, WStackPage_9);
21664 jghali 319
        colDatat2->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 320
        colDatat2->setColors(m_doc->PageColors, false);
9801 fschmid 321
        WStackPage9Layout->addWidget( colDatat2, 2, 1, 1, 2 );
6080 fschmid 322
        shadet2 = new ShadeButton(WStackPage_9);
323
        shadet2->setValue(100);
6129 fschmid 324
        WStackPage9Layout->addWidget( shadet2, 3, 1 );
22516 craig 325
        CurveT2 = new CurveWidget( nullptr );
9513 fschmid 326
        CurveT2Pop = new QMenu();
327
        CurveT2Act = new QWidgetAction(this);
328
        CurveT2Act->setDefaultWidget(CurveT2);
329
        CurveT2Pop->addAction(CurveT2Act);
10507 fschmid 330
        CurveT2Button = new QToolButton( WStackPage_9 );
6129 fschmid 331
        CurveT2Button->setText( "" );
332
        CurveT2Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 333
        CurveT2Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 334
        CurveT2Button->setMenu(CurveT2Pop);
335
        CurveT2Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 336
        WStackPage9Layout->addWidget( CurveT2Button, 3, 2 );
10507 fschmid 337
        textLabel3t = new QLabel( tr( "Color 3:" ), WStackPage_9 );
6129 fschmid 338
        WStackPage9Layout->addWidget( textLabel3t, 4, 0 );
10469 cbradney 339
        colDatat3 = new ColorCombo(false, WStackPage_9);
21664 jghali 340
        colDatat3->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 341
        colDatat3->setColors(m_doc->PageColors, false);
9801 fschmid 342
        WStackPage9Layout->addWidget( colDatat3, 4, 1, 1, 2 );
6080 fschmid 343
        shadet3 = new ShadeButton(WStackPage_9);
344
        shadet3->setValue(100);
6129 fschmid 345
        WStackPage9Layout->addWidget( shadet3, 5, 1 );
22516 craig 346
        CurveT3 = new CurveWidget( nullptr );
9513 fschmid 347
        CurveT3Act = new QWidgetAction(this);
348
        CurveT3Pop = new QMenu();
349
        CurveT3Act->setDefaultWidget(CurveT3);
350
        CurveT3Pop->addAction(CurveT3Act);
10507 fschmid 351
        CurveT3Button = new QToolButton( WStackPage_9 );
6129 fschmid 352
        CurveT3Button->setText( "" );
353
        CurveT3Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 354
        CurveT3Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 355
        CurveT3Button->setMenu(CurveT3Pop);
356
        CurveT3Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 357
        WStackPage9Layout->addWidget( CurveT3Button, 5, 2 );
9801 fschmid 358
        optionStack->addWidget( WStackPage_9 );
6080 fschmid 359
 
10507 fschmid 360
        WStackPage_10 = new QWidget( optionStack );
9801 fschmid 361
        WStackPage10Layout = new QGridLayout( WStackPage_10 );
362
        WStackPage10Layout->setMargin(4);
363
        WStackPage10Layout->setSpacing(5);
10507 fschmid 364
        textLabel1q = new QLabel( tr( "Color 1:" ), WStackPage_10 );
6080 fschmid 365
        WStackPage10Layout->addWidget( textLabel1q, 0, 0 );
10469 cbradney 366
        colDataq1 = new ColorCombo(false, WStackPage_10);
21664 jghali 367
        colDataq1->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 368
        colDataq1->setColors(m_doc->PageColors, false);
9801 fschmid 369
        WStackPage10Layout->addWidget( colDataq1, 0, 1, 1, 2 );
6080 fschmid 370
        shadeq1 = new ShadeButton(WStackPage_10);
371
        shadeq1->setValue(100);
6129 fschmid 372
        WStackPage10Layout->addWidget( shadeq1, 1, 1 );
22516 craig 373
        CurveQ1 = new CurveWidget( nullptr );
9513 fschmid 374
        CurveQ1Pop = new QMenu();
375
        CurveQ1Act = new QWidgetAction(this);
376
        CurveQ1Act->setDefaultWidget(CurveQ1);
377
        CurveQ1Pop->addAction(CurveQ1Act);
10507 fschmid 378
        CurveQ1Button = new QToolButton( WStackPage_10 );
6129 fschmid 379
        CurveQ1Button->setText( "" );
380
        CurveQ1Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 381
        CurveQ1Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 382
        CurveQ1Button->setMenu(CurveQ1Pop);
383
        CurveQ1Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 384
        WStackPage10Layout->addWidget( CurveQ1Button, 1, 2 );
10507 fschmid 385
        textLabel2q = new QLabel( tr( "Color 2:" ), WStackPage_10 );
6129 fschmid 386
        WStackPage10Layout->addWidget( textLabel2q, 2, 0 );
10469 cbradney 387
        colDataq2 = new ColorCombo(false, WStackPage_10);
21664 jghali 388
        colDataq2->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 389
        colDataq2->setColors(m_doc->PageColors, false);
9801 fschmid 390
        WStackPage10Layout->addWidget( colDataq2, 2, 1, 1, 2 );
6080 fschmid 391
        shadeq2 = new ShadeButton(WStackPage_10);
392
        shadeq2->setValue(100);
6129 fschmid 393
        WStackPage10Layout->addWidget( shadeq2, 3, 1 );
22516 craig 394
        CurveQ2 = new CurveWidget( nullptr );
9513 fschmid 395
        CurveQ2Pop = new QMenu();
396
        CurveQ2Act = new QWidgetAction(this);
397
        CurveQ2Act->setDefaultWidget(CurveQ2);
398
        CurveQ2Pop->addAction(CurveQ2Act);
10507 fschmid 399
        CurveQ2Button = new QToolButton( WStackPage_10 );
6129 fschmid 400
        CurveQ2Button->setText( "" );
401
        CurveQ2Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 402
        CurveQ2Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 403
        CurveQ2Button->setMenu(CurveQ2Pop);
404
        CurveQ2Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 405
        WStackPage10Layout->addWidget( CurveQ2Button, 3, 2 );
10507 fschmid 406
        textLabel3q = new QLabel( tr( "Color 3:" ), WStackPage_10 );
6129 fschmid 407
        WStackPage10Layout->addWidget( textLabel3q, 4, 0 );
10469 cbradney 408
        colDataqc3 = new ColorCombo(false, WStackPage_10);
21664 jghali 409
        colDataqc3->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 410
        colDataqc3->setColors(m_doc->PageColors, false);
9961 fschmid 411
        WStackPage10Layout->addWidget( colDataqc3, 4, 1, 1, 2 );
412
        shadeqc3 = new ShadeButton(WStackPage_10);
413
        shadeqc3->setValue(100);
414
        WStackPage10Layout->addWidget( shadeqc3, 5, 1 );
22516 craig 415
        CurveQc3 = new CurveWidget( nullptr );
9961 fschmid 416
        CurveQc3Pop = new QMenu();
417
        CurveQc3Act = new QWidgetAction(this);
418
        CurveQc3Act->setDefaultWidget(CurveQc3);
419
        CurveQc3Pop->addAction(CurveQc3Act);
10507 fschmid 420
        CurveQc3Button = new QToolButton( WStackPage_10 );
9961 fschmid 421
        CurveQc3Button->setText( "" );
422
        CurveQc3Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 423
        CurveQc3Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9961 fschmid 424
        CurveQc3Button->setMenu(CurveQc3Pop);
425
        CurveQc3Button->setPopupMode(QToolButton::InstantPopup);
426
        WStackPage10Layout->addWidget( CurveQc3Button, 5, 2 );
10507 fschmid 427
        textLabel4q = new QLabel( tr( "Color 4:" ), WStackPage_10 );
6129 fschmid 428
        WStackPage10Layout->addWidget( textLabel4q, 6, 0 );
10469 cbradney 429
        colDataq4 = new ColorCombo(false, WStackPage_10);
21664 jghali 430
        colDataq4->setPixmapType(ColorCombo::fancyPixmaps);
21855 jghali 431
        colDataq4->setColors(m_doc->PageColors, false);
9801 fschmid 432
        WStackPage10Layout->addWidget( colDataq4, 6, 1, 1, 2 );
6080 fschmid 433
        shadeq4 = new ShadeButton(WStackPage_10);
434
        shadeq4->setValue(100);
6129 fschmid 435
        WStackPage10Layout->addWidget( shadeq4, 7, 1 );
22516 craig 436
        CurveQ4 = new CurveWidget( nullptr );
9513 fschmid 437
        CurveQ4Pop = new QMenu();
438
        CurveQ4Act = new QWidgetAction(this);
439
        CurveQ4Act->setDefaultWidget(CurveQ4);
440
        CurveQ4Pop->addAction(CurveQ4Act);
10507 fschmid 441
        CurveQ4Button = new QToolButton( WStackPage_10 );
6129 fschmid 442
        CurveQ4Button->setText( "" );
443
        CurveQ4Button->setMaximumSize( QSize( 22, 22 ) );
20185 craig 444
        CurveQ4Button->setIcon(IconManager::instance()->loadIcon("curve.png"));
9513 fschmid 445
        CurveQ4Button->setMenu(CurveQ4Pop);
446
        CurveQ4Button->setPopupMode(QToolButton::InstantPopup);
6129 fschmid 447
        WStackPage10Layout->addWidget( CurveQ4Button, 7, 2 );
9801 fschmid 448
        optionStack->addWidget( WStackPage_10 );
6116 fschmid 449
 
10507 fschmid 450
        WStackPage_11 = new QWidget( optionStack );
9801 fschmid 451
        WStackPage11Layout = new QVBoxLayout( WStackPage_11 );
452
        WStackPage11Layout->setMargin(5);
453
        WStackPage11Layout->setSpacing(5);
6116 fschmid 454
        WStackPage11Layout->setAlignment( Qt::AlignTop );
6129 fschmid 455
        Kdisplay = new CurveWidget(WStackPage_11);
6116 fschmid 456
        WStackPage11Layout->addWidget( Kdisplay );
9801 fschmid 457
        optionStack->addWidget( WStackPage_11 );
6116 fschmid 458
 
2061 fschmid 459
        layout16->addWidget( optionStack );
460
        EffectsDialogLayout->addLayout( layout16 );
2057 fschmid 461
 
9801 fschmid 462
        layout18 = new QVBoxLayout;
463
        layout18->setMargin(0);
464
        layout18->setSpacing(5);
465
        layout10 = new QGridLayout;
466
        layout10->setMargin(0);
467
        layout10->setSpacing(5);
468
        layout2 = new QVBoxLayout;
469
        layout2->setMargin(0);
470
        layout2->setSpacing(5);
10507 fschmid 471
        textLabel1 = new QLabel( this );
2061 fschmid 472
        textLabel1->setText( tr( "Available Effects" ) );
2056 fschmid 473
        layout2->addWidget( textLabel1 );
9801 fschmid 474
        availableEffects = new QListWidget( this );
2056 fschmid 475
        availableEffects->clear();
9801 fschmid 476
        availableEffects->addItem( tr("Blur"));
477
        availableEffects->addItem( tr("Brightness"));
478
        availableEffects->addItem( tr("Colorize"));
479
        availableEffects->addItem( tr("Duotone"));
480
        availableEffects->addItem( tr("Tritone"));
481
        availableEffects->addItem( tr("Quadtone"));
482
        availableEffects->addItem( tr("Contrast"));
483
        availableEffects->addItem( tr("Grayscale"));
484
        availableEffects->addItem( tr("Curves"));
485
        availableEffects->addItem( tr("Invert"));
486
        availableEffects->addItem( tr("Posterize"));
487
        availableEffects->addItem( tr("Sharpen"));
488
 
2397 cbradney 489
        availableEffects->setMinimumSize(fontMetrics().width( tr( "Available Effects" ))+40, 180);
2056 fschmid 490
        layout2->addWidget( availableEffects );
491
        layout10->addLayout( layout2, 0, 0 );
492
 
9801 fschmid 493
        layout1 = new QVBoxLayout;
494
        layout1->setMargin(0);
495
        layout1->setSpacing(5);
22997 craig 496
        auto* spacer1 = new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding );
2056 fschmid 497
        layout1->addItem( spacer1 );
10507 fschmid 498
        toEffects = new QPushButton( this );
22998 craig 499
        toEffects->setText( tr( "Add" ) );
2056 fschmid 500
        toEffects->setEnabled(false);
501
        layout1->addWidget( toEffects );
10507 fschmid 502
        fromEffects = new QPushButton( this );
22998 craig 503
        fromEffects->setText( tr( "Remove" ) );
2056 fschmid 504
        fromEffects->setEnabled(false);
505
        layout1->addWidget( fromEffects );
22997 craig 506
        auto* spacer2 = new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding );
2056 fschmid 507
        layout1->addItem( spacer2 );
508
        layout10->addLayout( layout1, 0, 1 );
509
 
9801 fschmid 510
        layout8 = new QVBoxLayout;
511
        layout8->setMargin(0);
512
        layout8->setSpacing(5);
10507 fschmid 513
        textLabel2 = new QLabel( this );
22997 craig 514
        textLabel2->setText( tr( "Applied Effects" ) );
2056 fschmid 515
        layout8->addWidget( textLabel2 );
9801 fschmid 516
        usedEffects = new QListWidget( this );
2397 cbradney 517
        usedEffects->setMinimumSize(fontMetrics().width( tr( "Available Effects" ))+40, 180);
2056 fschmid 518
        usedEffects->clear();
18330 jghali 519
        m_effectValMap.clear();
8662 subik 520
        for (int a = 0; a < effectsList.count(); ++a)
2056 fschmid 521
        {
9803 fschmid 522
                if (effectsList.at(a).effectCode == ScImage::EF_INVERT)
2057 fschmid 523
                {
9801 fschmid 524
                        usedEffects->addItem( tr("Invert"));
18330 jghali 525
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
2057 fschmid 526
                }
9803 fschmid 527
                if (effectsList.at(a).effectCode == ScImage::EF_GRAYSCALE)
2057 fschmid 528
                {
9801 fschmid 529
                        usedEffects->addItem( tr("Grayscale"));
18330 jghali 530
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
2057 fschmid 531
                }
9803 fschmid 532
                if (effectsList.at(a).effectCode == ScImage::EF_COLORIZE)
2057 fschmid 533
                {
9801 fschmid 534
                        usedEffects->addItem( tr("Colorize"));
18330 jghali 535
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
9801 fschmid 536
                        setItemSelectable(availableEffects, 2, false);
537
                        setItemSelectable(availableEffects, 3, false);
538
                        setItemSelectable(availableEffects, 4, false);
539
                        setItemSelectable(availableEffects, 5, false);
2057 fschmid 540
                }
9803 fschmid 541
                if (effectsList.at(a).effectCode == ScImage::EF_BRIGHTNESS)
2082 fschmid 542
                {
9801 fschmid 543
                        usedEffects->addItem( tr("Brightness"));
18330 jghali 544
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
2082 fschmid 545
                }
9803 fschmid 546
                if (effectsList.at(a).effectCode == ScImage::EF_CONTRAST)
2082 fschmid 547
                {
9801 fschmid 548
                        usedEffects->addItem( tr("Contrast"));
18330 jghali 549
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
2082 fschmid 550
                }
9803 fschmid 551
                if (effectsList.at(a).effectCode == ScImage::EF_SHARPEN)
2092 fschmid 552
                {
9801 fschmid 553
                        usedEffects->addItem( tr("Sharpen"));
18330 jghali 554
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
2092 fschmid 555
                }
9803 fschmid 556
                if (effectsList.at(a).effectCode == ScImage::EF_BLUR)
2095 fschmid 557
                {
9801 fschmid 558
                        usedEffects->addItem( tr("Blur"));
12735 fschmid 559
                        QString tmpstr = effectsList.at(a).effectParameters;
14529 jghali 560
                        double radius;
561
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
562
                        fp >> radius; // has to be read from stream, as two numbers are stored in effectParameters
18330 jghali 563
                        blRadius->setValue(radius / m_imageScale);
564
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), QString("%1 1.0").arg(radius / m_imageScale));
2095 fschmid 565
                }
9803 fschmid 566
                if (effectsList.at(a).effectCode == ScImage::EF_SOLARIZE)
2096 fschmid 567
                {
9801 fschmid 568
                        usedEffects->addItem( tr("Posterize"));
18330 jghali 569
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
2096 fschmid 570
                }
9803 fschmid 571
                if (effectsList.at(a).effectCode == ScImage::EF_DUOTONE)
6080 fschmid 572
                {
9801 fschmid 573
                        usedEffects->addItem( tr("Duotone"));
18330 jghali 574
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
9801 fschmid 575
                        setItemSelectable(availableEffects, 2, false);
576
                        setItemSelectable(availableEffects, 3, false);
577
                        setItemSelectable(availableEffects, 4, false);
578
                        setItemSelectable(availableEffects, 5, false);
6080 fschmid 579
                }
9803 fschmid 580
                if (effectsList.at(a).effectCode == ScImage::EF_TRITONE)
6080 fschmid 581
                {
9801 fschmid 582
                        usedEffects->addItem( tr("Tritone"));
18330 jghali 583
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
9801 fschmid 584
                        setItemSelectable(availableEffects, 2, false);
585
                        setItemSelectable(availableEffects, 3, false);
586
                        setItemSelectable(availableEffects, 4, false);
587
                        setItemSelectable(availableEffects, 5, false);
6080 fschmid 588
                }
9803 fschmid 589
                if (effectsList.at(a).effectCode == ScImage::EF_QUADTONE)
6080 fschmid 590
                {
9801 fschmid 591
                        usedEffects->addItem( tr("Quadtone"));
18330 jghali 592
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
9801 fschmid 593
                        setItemSelectable(availableEffects, 2, false);
594
                        setItemSelectable(availableEffects, 3, false);
595
                        setItemSelectable(availableEffects, 4, false);
596
                        setItemSelectable(availableEffects, 5, false);
6080 fschmid 597
                }
9803 fschmid 598
                if (effectsList.at(a).effectCode == ScImage::EF_GRADUATE)
6116 fschmid 599
                {
9801 fschmid 600
                        usedEffects->addItem( tr("Curves"));
18330 jghali 601
                        m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
6116 fschmid 602
                }
2056 fschmid 603
        }
604
        layout8->addWidget( usedEffects );
9801 fschmid 605
        layout7 = new QHBoxLayout;
606
        layout7->setMargin(0);
607
        layout7->setSpacing(5);
608
        QSpacerItem* spacer4 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum );
2061 fschmid 609
        layout7->addItem( spacer4 );
10507 fschmid 610
        effectUp = new QPushButton( this );
2056 fschmid 611
        effectUp->setText( "" );
20185 craig 612
        effectUp->setIcon(IconManager::instance()->loadIcon("16/go-up.png"));
2056 fschmid 613
        effectUp->setEnabled(false);
614
        layout7->addWidget( effectUp );
10507 fschmid 615
        effectDown = new QPushButton( this );
2056 fschmid 616
        effectDown->setText( "" );
20185 craig 617
        effectDown->setIcon(IconManager::instance()->loadIcon("16/go-down.png"));
2056 fschmid 618
        effectDown->setEnabled(false);
619
        layout7->addWidget( effectDown );
9801 fschmid 620
        QSpacerItem* spacer5 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum );
2061 fschmid 621
        layout7->addItem( spacer5 );
2056 fschmid 622
        layout8->addLayout( layout7 );
623
        layout10->addLayout( layout8, 0, 2 );
2061 fschmid 624
        layout18->addLayout( layout10 );
2056 fschmid 625
 
9801 fschmid 626
        layout9 = new QHBoxLayout;
627
        layout9->setMargin(0);
628
        layout9->setSpacing(5);
629
        QSpacerItem* spacer3 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum );
2056 fschmid 630
        layout9->addItem( spacer3 );
631
 
10507 fschmid 632
        okButton = new QPushButton( this );
2056 fschmid 633
        okButton->setText( tr( "OK" ) );
634
        layout9->addWidget( okButton );
635
 
10507 fschmid 636
        cancelButton = new QPushButton( this );
2056 fschmid 637
        cancelButton->setText( tr( "Cancel" ) );
638
        layout9->addWidget( cancelButton );
2061 fschmid 639
        layout18->addLayout( layout9 );
640
        EffectsDialogLayout->addLayout( layout18 );
9801 fschmid 641
        optionStack->setCurrentIndex(0);
642
        usedEffects->clearSelection();
643
        availableEffects->clearSelection();
2061 fschmid 644
        resize( minimumSizeHint() );
18330 jghali 645
        ScImage im(m_image);
18205 fschmid 646
        saveValues(false);
18330 jghali 647
        im.applyEffect(effectsList, m_doc->PageColors, false);
18205 fschmid 648
        QPixmap Bild = QPixmap(pixmapLabel1->width(), pixmapLabel1->height());
649
        int x = (pixmapLabel1->width() - im.qImage().width()) / 2;
650
        int y = (pixmapLabel1->height() - im.qImage().height()) / 2;
651
        QPainter p;
20185 craig 652
        QBrush b(QColor(205,205,205), IconManager::instance()->loadPixmap("testfill.png"));
18205 fschmid 653
        p.begin(&Bild);
654
        p.fillRect(0, 0, pixmapLabel1->width(), pixmapLabel1->height(), b);
655
        p.drawImage(x, y, im.qImage());
656
        p.end();
657
        pixmapLabel1->setPixmap( Bild );
2056 fschmid 658
 
659
        // signals and slots connections
2061 fschmid 660
        connect( okButton, SIGNAL( clicked() ), this, SLOT( leaveOK() ) );
2056 fschmid 661
        connect( cancelButton, SIGNAL( clicked() ), this, SLOT( reject() ) );
9801 fschmid 662
        connect( usedEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
663
        connect( usedEffects, SIGNAL( itemDoubleClicked(QListWidgetItem*) ), this, SLOT( moveFromEffects() ) );
664
        connect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
665
        connect( availableEffects, SIGNAL( itemDoubleClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffectDbl(QListWidgetItem*) ) );
2056 fschmid 666
        connect( toEffects, SIGNAL( clicked() ), this, SLOT( moveToEffects() ) );
667
        connect( fromEffects, SIGNAL( clicked() ), this, SLOT( moveFromEffects() ) );
668
        connect( effectUp, SIGNAL( clicked() ), this, SLOT( moveEffectUp() ) );
669
        connect( effectDown, SIGNAL( clicked() ), this, SLOT( moveEffectDown() ) );
2061 fschmid 670
        connect( colData, SIGNAL(activated(int)), this, SLOT( createPreview()));
671
        connect( shade, SIGNAL(clicked()), this, SLOT(createPreview()));
6080 fschmid 672
        connect( colData1, SIGNAL(activated(int)), this, SLOT( createPreview()));
673
        connect( shade1, SIGNAL(clicked()), this, SLOT(createPreview()));
674
        connect( colData2, SIGNAL(activated(int)), this, SLOT( createPreview()));
675
        connect( shade2, SIGNAL(clicked()), this, SLOT(createPreview()));
676
        connect( colDatat1, SIGNAL(activated(int)), this, SLOT( createPreview()));
677
        connect( shadet1, SIGNAL(clicked()), this, SLOT(createPreview()));
678
        connect( colDatat2, SIGNAL(activated(int)), this, SLOT( createPreview()));
679
        connect( shadet2, SIGNAL(clicked()), this, SLOT(createPreview()));
680
        connect( colDatat3, SIGNAL(activated(int)), this, SLOT( createPreview()));
681
        connect( shadet3, SIGNAL(clicked()), this, SLOT(createPreview()));
682
        connect( colDataq1, SIGNAL(activated(int)), this, SLOT( createPreview()));
683
        connect( shadeq1, SIGNAL(clicked()), this, SLOT(createPreview()));
684
        connect( colDataq2, SIGNAL(activated(int)), this, SLOT( createPreview()));
685
        connect( shadeq2, SIGNAL(clicked()), this, SLOT(createPreview()));
9961 fschmid 686
        connect( colDataqc3, SIGNAL(activated(int)), this, SLOT( createPreview()));
687
        connect( shadeqc3, SIGNAL(clicked()), this, SLOT(createPreview()));
6080 fschmid 688
        connect( colDataq4, SIGNAL(activated(int)), this, SLOT( createPreview()));
689
        connect( shadeq4, SIGNAL(clicked()), this, SLOT(createPreview()));
2082 fschmid 690
        connect( brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(updateBright(int)));
3947 fschmid 691
        connect( brightnessSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
2082 fschmid 692
        connect( contrastSlider, SIGNAL(valueChanged(int)), this, SLOT(updateContrast(int)));
3947 fschmid 693
        connect( contrastSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
9364 fschmid 694
        connect( shRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
695
        connect( shValue, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
696
        connect( blRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
2096 fschmid 697
        connect( solarizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateSolarize(int)));
3947 fschmid 698
        connect( solarizeSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
6129 fschmid 699
        connect( Kdisplay->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
700
        connect( CurveD1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
701
        connect( CurveD2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
702
        connect( CurveT1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
703
        connect( CurveT2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
704
        connect( CurveT3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
705
        connect( CurveQ1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
706
        connect( CurveQ2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
9961 fschmid 707
        connect( CurveQc3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
6129 fschmid 708
        connect( CurveQ4->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
18330 jghali 709
        m_time.start();
2056 fschmid 710
}
711
 
9801 fschmid 712
void EffectsDialog::setItemSelectable(QListWidget* widget, int itemNr, bool enable)
713
{
714
        if (enable)
715
                widget->item(itemNr)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
716
        else
22652 craig 717
                widget->item(itemNr)->setFlags(Qt::NoItemFlags);
9801 fschmid 718
}
719
 
2061 fschmid 720
void EffectsDialog::leaveOK()
721
{
6011 fschmid 722
        saveValues(true);
2061 fschmid 723
        accept();
724
}
725
 
2096 fschmid 726
void EffectsDialog::updateSolarize(int val)
727
{
728
        QString tmp;
729
        tmp.setNum(val);
730
        textLabel15->setText(tmp);
731
        createPreview();
732
}
733
 
2082 fschmid 734
void EffectsDialog::updateContrast(int val)
735
{
736
        QString tmp;
737
        tmp.setNum(val);
738
        textLabel9->setText(tmp);
739
        createPreview();
740
}
741
 
742
void EffectsDialog::updateBright(int val)
743
{
744
        QString tmp;
745
        tmp.setNum(val);
746
        textLabel7->setText(tmp);
747
        createPreview();
748
}
749
 
2061 fschmid 750
void EffectsDialog::createPreview()
751
{
18330 jghali 752
        if (m_time.elapsed() < 50)
3947 fschmid 753
                return;
18330 jghali 754
        ScImage im(m_image);
6011 fschmid 755
        saveValues(false);
18330 jghali 756
        im.applyEffect(effectsList, m_doc->PageColors, false);
6020 fschmid 757
        QPixmap Bild = QPixmap(pixmapLabel1->width(), pixmapLabel1->height());
758
        int x = (pixmapLabel1->width() - im.qImage().width()) / 2;
759
        int y = (pixmapLabel1->height() - im.qImage().height()) / 2;
760
        QPainter p;
20185 craig 761
        QBrush b(QColor(205,205,205), IconManager::instance()->loadPixmap("testfill.png"));
6020 fschmid 762
        p.begin(&Bild);
763
        p.fillRect(0, 0, pixmapLabel1->width(), pixmapLabel1->height(), b);
764
        p.drawImage(x, y, im.qImage());
765
        p.end();
766
        pixmapLabel1->setPixmap( Bild );
18330 jghali 767
        m_time.start();
2061 fschmid 768
}
769
 
6011 fschmid 770
void EffectsDialog::saveValues(bool final)
2056 fschmid 771
{
6401 fschmid 772
        selectEffectHelper(final);
2056 fschmid 773
        effectsList.clear();
10954 jghali 774
        struct ImageEffect ef;
9801 fschmid 775
        for (int e = 0; e < usedEffects->count(); ++e)
2056 fschmid 776
        {
777
                if (usedEffects->item(e)->text() == tr("Invert"))
778
                {
2082 fschmid 779
                        ef.effectCode = ScImage::EF_INVERT;
2056 fschmid 780
                        ef.effectParameters = "";
781
                }
782
                if (usedEffects->item(e)->text() == tr("Grayscale"))
783
                {
2082 fschmid 784
                        ef.effectCode = ScImage::EF_GRAYSCALE;
2056 fschmid 785
                        ef.effectParameters = "";
786
                }
2057 fschmid 787
                if (usedEffects->item(e)->text() == tr("Colorize"))
788
                {
2082 fschmid 789
                        ef.effectCode = ScImage::EF_COLORIZE;
18330 jghali 790
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
2057 fschmid 791
                }
2082 fschmid 792
                if (usedEffects->item(e)->text() == tr("Brightness"))
793
                {
794
                        ef.effectCode = ScImage::EF_BRIGHTNESS;
18330 jghali 795
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
2082 fschmid 796
                }
797
                if (usedEffects->item(e)->text() == tr("Contrast"))
798
                {
799
                        ef.effectCode = ScImage::EF_CONTRAST;
18330 jghali 800
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
2082 fschmid 801
                }
2092 fschmid 802
                if (usedEffects->item(e)->text() == tr("Sharpen"))
803
                {
804
                        ef.effectCode = ScImage::EF_SHARPEN;
18330 jghali 805
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
2092 fschmid 806
                }
2095 fschmid 807
                if (usedEffects->item(e)->text() == tr("Blur"))
808
                {
809
                        ef.effectCode = ScImage::EF_BLUR;
12735 fschmid 810
                        if (final)
18330 jghali 811
                                ef.effectParameters = QString("%1 1.0").arg(blRadius->value() * m_imageScale);
12735 fschmid 812
                        else
813
                                ef.effectParameters = QString("%1 1.0").arg(blRadius->value());
2095 fschmid 814
                }
2096 fschmid 815
                if (usedEffects->item(e)->text() == tr("Posterize"))
816
                {
817
                        ef.effectCode = ScImage::EF_SOLARIZE;
18330 jghali 818
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
2096 fschmid 819
                }
6080 fschmid 820
                if (usedEffects->item(e)->text() == tr("Duotone"))
821
                {
822
                        ef.effectCode = ScImage::EF_DUOTONE;
18330 jghali 823
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
6080 fschmid 824
                }
825
                if (usedEffects->item(e)->text() == tr("Tritone"))
826
                {
827
                        ef.effectCode = ScImage::EF_TRITONE;
18330 jghali 828
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
6080 fschmid 829
                }
830
                if (usedEffects->item(e)->text() == tr("Quadtone"))
831
                {
832
                        ef.effectCode = ScImage::EF_QUADTONE;
18330 jghali 833
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
6080 fschmid 834
                }
6116 fschmid 835
                if (usedEffects->item(e)->text() == tr("Curves"))
836
                {
837
                        ef.effectCode = ScImage::EF_GRADUATE;
18330 jghali 838
                        ef.effectParameters = m_effectValMap[usedEffects->item(e)];
6116 fschmid 839
                }
2082 fschmid 840
                effectsList.append(ef);
2056 fschmid 841
        }
842
}
843
 
9801 fschmid 844
void EffectsDialog::selectAvailEffectDbl(QListWidgetItem* c)
7308 fschmid 845
{
22638 craig 846
        if (!c)
847
                return;
848
        if (!(c->flags() & Qt::ItemIsSelectable))
849
                return;
850
        moveToEffects();
7308 fschmid 851
}
852
 
2056 fschmid 853
void EffectsDialog::moveToEffects()
854
{
12735 fschmid 855
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
9801 fschmid 856
        usedEffects->addItem(availableEffects->currentItem()->text());
857
        if (availableEffects->currentItem()->text() == tr("Invert"))
18330 jghali 858
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
9801 fschmid 859
        if (availableEffects->currentItem()->text() == tr("Grayscale"))
18330 jghali 860
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
9801 fschmid 861
        if (availableEffects->currentItem()->text() == tr("Brightness"))
18330 jghali 862
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0");
9801 fschmid 863
        if (availableEffects->currentItem()->text() == tr("Contrast"))
18330 jghali 864
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0");
9801 fschmid 865
        if (availableEffects->currentItem()->text() == tr("Sharpen"))
18330 jghali 866
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0 1");
9801 fschmid 867
        if (availableEffects->currentItem()->text() == tr("Blur"))
18330 jghali 868
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0 1");
9801 fschmid 869
        if (availableEffects->currentItem()->text() == tr("Posterize"))
18330 jghali 870
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "255");
9801 fschmid 871
        if (availableEffects->currentItem()->text() == tr("Colorize"))
2057 fschmid 872
        {
2061 fschmid 873
                ColorList::Iterator it;
18330 jghali 874
                it = m_doc->PageColors.begin();
6011 fschmid 875
                QString efval = it.key()+"\n100";
18330 jghali 876
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
9801 fschmid 877
                setItemSelectable(availableEffects, 2, false);
878
                setItemSelectable(availableEffects, 3, false);
879
                setItemSelectable(availableEffects, 4, false);
880
                setItemSelectable(availableEffects, 5, false);
2057 fschmid 881
        }
9801 fschmid 882
        if (availableEffects->currentItem()->text() == tr("Duotone"))
6080 fschmid 883
        {
884
                ColorList::Iterator it;
18330 jghali 885
                it = m_doc->PageColors.begin();
6193 fschmid 886
                QString efval = it.key()+"\n"+it.key()+"\n100 100 2 0.0 0.0 1.0 1.0 0 2 0.0 0.0 1.0 1.0 0";
18330 jghali 887
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
9801 fschmid 888
                setItemSelectable(availableEffects, 2, false);
889
                setItemSelectable(availableEffects, 3, false);
890
                setItemSelectable(availableEffects, 4, false);
891
                setItemSelectable(availableEffects, 5, false);
6080 fschmid 892
        }
9801 fschmid 893
        if (availableEffects->currentItem()->text() == tr("Tritone"))
6080 fschmid 894
        {
895
                ColorList::Iterator it;
18330 jghali 896
                it = m_doc->PageColors.begin();
6193 fschmid 897
                QString efval = it.key()+"\n"+it.key()+"\n"+it.key()+"\n100 100 100 2 0.0 0.0 1.0 1.0 0 2 0.0 0.0 1.0 1.0 0 2 0.0 0.0 1.0 1.0 0";
18330 jghali 898
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
9801 fschmid 899
                setItemSelectable(availableEffects, 2, false);
900
                setItemSelectable(availableEffects, 3, false);
901
                setItemSelectable(availableEffects, 4, false);
902
                setItemSelectable(availableEffects, 5, false);
6080 fschmid 903
        }
9801 fschmid 904
        if (availableEffects->currentItem()->text() == tr("Quadtone"))
6080 fschmid 905
        {
906
                ColorList::Iterator it;
18330 jghali 907
                it = m_doc->PageColors.begin();
6193 fschmid 908
                QString efval = it.key()+"\n"+it.key()+"\n"+it.key()+"\n"+it.key()+"\n100 100 100 100 2 0.0 0.0 1.0 1.0 0 2 0.0 0.0 1.0 1.0 0 2 0.0 0.0 1.0 1.0 0 2 0.0 0.0 1.0 1.0 0";
18330 jghali 909
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
9801 fschmid 910
                setItemSelectable(availableEffects, 2, false);
911
                setItemSelectable(availableEffects, 3, false);
912
                setItemSelectable(availableEffects, 4, false);
913
                setItemSelectable(availableEffects, 5, false);
6080 fschmid 914
        }
9801 fschmid 915
        if (availableEffects->currentItem()->text() == tr("Curves"))
18330 jghali 916
                m_effectValMap.insert(usedEffects->item(usedEffects->count()-1), "2 0.0 0.0 1.0 1.0 0");
2092 fschmid 917
        usedEffects->setCurrentItem(usedEffects->item(usedEffects->count()-1));
2075 fschmid 918
        selectEffect(usedEffects->item(usedEffects->count()-1));
9801 fschmid 919
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
2061 fschmid 920
        createPreview();
2056 fschmid 921
}
922
 
923
void EffectsDialog::moveFromEffects()
924
{
9801 fschmid 925
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
926
        if ((usedEffects->currentItem()->text() == tr("Colorize")) || (usedEffects->currentItem()->text() == tr("Duotone")) || (usedEffects->currentItem()->text() == tr("Tritone")) || (usedEffects->currentItem()->text() == tr("Quadtone")))
7266 fschmid 927
        {
9801 fschmid 928
                setItemSelectable(availableEffects, 2, true);
929
                setItemSelectable(availableEffects, 3, true);
930
                setItemSelectable(availableEffects, 4, true);
931
                setItemSelectable(availableEffects, 5, true);
7266 fschmid 932
        }
18330 jghali 933
        m_effectValMap.remove(usedEffects->currentItem());
9801 fschmid 934
        int curr = usedEffects->currentRow();
935
        QListWidgetItem *it = usedEffects->takeItem(curr);
936
        delete it;
22603 craig 937
        currentOptions = nullptr;
9801 fschmid 938
        usedEffects->clearSelection();
2056 fschmid 939
        if (usedEffects->count() == 0)
9801 fschmid 940
        {
2061 fschmid 941
                fromEffects->setEnabled(false);
9801 fschmid 942
                toEffects->setEnabled(false);
943
                selectEffectHelper();
944
                optionStack->setCurrentIndex(0);
945
                disconnect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
946
                availableEffects->clearSelection();
947
                connect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
948
        }
949
        else
950
        {
951
                usedEffects->setCurrentItem(usedEffects->item(qMax(curr-1, 0)));
952
                usedEffects->currentItem()->setSelected(true);
953
                selectEffect(usedEffects->currentItem());
954
        }
2061 fschmid 955
        if (usedEffects->count() < 2)
2056 fschmid 956
        {
957
                effectUp->setEnabled(false);
958
                effectDown->setEnabled(false);
959
        }
2061 fschmid 960
        createPreview();
9801 fschmid 961
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
2056 fschmid 962
}
963
 
964
void EffectsDialog::moveEffectUp()
965
{
9801 fschmid 966
        int curr = usedEffects->currentRow();
2061 fschmid 967
        if (curr == 0)
968
                return;
9801 fschmid 969
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
970
        QListWidgetItem *it = usedEffects->takeItem(curr);
971
        usedEffects->insertItem(curr-1, it);
2061 fschmid 972
        usedEffects->setCurrentItem(it);
9801 fschmid 973
        selectEffect(usedEffects->currentItem());
2061 fschmid 974
        createPreview();
9801 fschmid 975
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
2056 fschmid 976
}
977
 
978
void EffectsDialog::moveEffectDown()
979
{
9801 fschmid 980
        int curr = usedEffects->currentRow();
2061 fschmid 981
        if (curr == static_cast<int>(usedEffects->count())-1)
982
                return;
9801 fschmid 983
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
984
        QListWidgetItem *it = usedEffects->takeItem(curr);
985
        usedEffects->insertItem(curr+1, it);
2061 fschmid 986
        usedEffects->setCurrentItem(it);
9801 fschmid 987
        selectEffect(usedEffects->currentItem());
2061 fschmid 988
        createPreview();
9801 fschmid 989
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
2056 fschmid 990
}
991
 
9801 fschmid 992
void EffectsDialog::selectEffect(QListWidgetItem* c)
2056 fschmid 993
{
13497 jghali 994
        QString s;
2061 fschmid 995
        toEffects->setEnabled(false);
6401 fschmid 996
        selectEffectHelper();
2056 fschmid 997
        if (c)
998
        {
999
                fromEffects->setEnabled(true);
2061 fschmid 1000
                if (usedEffects->count() > 1)
1001
                {
1002
                        effectUp->setEnabled(true);
1003
                        effectDown->setEnabled(true);
22603 craig 1004
                        if (usedEffects->currentItem() == nullptr)
2061 fschmid 1005
                                effectUp->setEnabled(false);
9801 fschmid 1006
                        if (usedEffects->currentRow() == static_cast<int>(usedEffects->count())-1)
2061 fschmid 1007
                                effectDown->setEnabled(false);
1008
                }
2056 fschmid 1009
                if (c->text() == tr("Grayscale"))
9801 fschmid 1010
                        optionStack->setCurrentIndex(0);
2056 fschmid 1011
                else if (c->text() == tr("Invert"))
9801 fschmid 1012
                        optionStack->setCurrentIndex(0);
2057 fschmid 1013
                else if (c->text() == tr("Colorize"))
2061 fschmid 1014
                {
1015
                        disconnect( colData, SIGNAL(activated(int)), this, SLOT( createPreview()));
1016
                        disconnect( shade, SIGNAL(clicked()), this, SLOT(createPreview()));
18330 jghali 1017
                        QString tmpstr = m_effectValMap[c];
2061 fschmid 1018
                        QString col;
1019
                        int shading;
13497 jghali 1020
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
12130 fschmid 1021
                //      fp >> col;
1022
                        col = fp.readLine();
2061 fschmid 1023
                        fp >> shading;
10648 fschmid 1024
                        setCurrentComboItem(colData, col);
2061 fschmid 1025
                        shade->setValue(shading);
9801 fschmid 1026
                        optionStack->setCurrentIndex(1);
2061 fschmid 1027
                        connect( colData, SIGNAL(activated(int)), this, SLOT( createPreview()));
1028
                        connect( shade, SIGNAL(clicked()), this, SLOT(createPreview()));
1029
                }
6080 fschmid 1030
                else if (c->text() == tr("Duotone"))
1031
                {
1032
                        disconnect( colData1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1033
                        disconnect( shade1, SIGNAL(clicked()), this, SLOT(createPreview()));
1034
                        disconnect( colData2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1035
                        disconnect( shade2, SIGNAL(clicked()), this, SLOT(createPreview()));
6129 fschmid 1036
                        disconnect( CurveD1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1037
                        disconnect( CurveD2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
18330 jghali 1038
                        QString tmpstr = m_effectValMap[c];
6080 fschmid 1039
                        QString col1, col2;
1040
                        int shading1, shading2;
13497 jghali 1041
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
6080 fschmid 1042
                        col1 = fp.readLine();
1043
                        col2 = fp.readLine();
1044
                        fp >> shading1;
1045
                        fp >> shading2;
10648 fschmid 1046
                        setCurrentComboItem(colData1, col1);
6080 fschmid 1047
                        shade1->setValue(shading1);
10648 fschmid 1048
                        setCurrentComboItem(colData2, col2);
6080 fschmid 1049
                        shade2->setValue(shading2);
6129 fschmid 1050
                        int numVals;
1051
                        double xval, yval;
1052
                        FPointArray curve;
1053
                        curve.resize(0);
1054
                        fp >> numVals;
1055
                        for (int nv = 0; nv < numVals; nv++)
1056
                        {
13497 jghali 1057
                                fp >> s;
1058
                                xval = ScCLocale::toDoubleC(s);
1059
                                fp >> s;
1060
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1061
                                curve.addPoint(xval, yval);
1062
                        }
1063
                        CurveD1->cDisplay->setCurve(curve);
6193 fschmid 1064
                        int lin;
1065
                        fp >> lin;
1066
                        CurveD1->setLinear(lin);
6129 fschmid 1067
                        curve.resize(0);
1068
                        fp >> numVals;
1069
                        for (int nv = 0; nv < numVals; nv++)
1070
                        {
13497 jghali 1071
                                fp >> s;
1072
                                xval = ScCLocale::toDoubleC(s);
1073
                                fp >> s;
1074
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1075
                                curve.addPoint(xval, yval);
1076
                        }
1077
                        CurveD2->cDisplay->setCurve(curve);
6193 fschmid 1078
                        fp >> lin;
1079
                        CurveD2->setLinear(lin);
9801 fschmid 1080
                        optionStack->setCurrentIndex(7);
6080 fschmid 1081
                        connect( colData1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1082
                        connect( shade1, SIGNAL(clicked()), this, SLOT(createPreview()));
1083
                        connect( colData2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1084
                        connect( shade2, SIGNAL(clicked()), this, SLOT(createPreview()));
6129 fschmid 1085
                        connect( CurveD1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1086
                        connect( CurveD2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
6080 fschmid 1087
                }
1088
                else if (c->text() == tr("Tritone"))
1089
                {
1090
                        disconnect( colDatat1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1091
                        disconnect( shadet1, SIGNAL(clicked()), this, SLOT(createPreview()));
1092
                        disconnect( colDatat2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1093
                        disconnect( shadet2, SIGNAL(clicked()), this, SLOT(createPreview()));
1094
                        disconnect( colDatat3, SIGNAL(activated(int)), this, SLOT( createPreview()));
1095
                        disconnect( shadet3, SIGNAL(clicked()), this, SLOT(createPreview()));
6129 fschmid 1096
                        disconnect( CurveT1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1097
                        disconnect( CurveT2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1098
                        disconnect( CurveT3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
18330 jghali 1099
                        QString tmpstr = m_effectValMap[c];
6080 fschmid 1100
                        QString col1, col2, col3;
1101
                        int shading1, shading2, shading3;
13497 jghali 1102
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
6080 fschmid 1103
                        col1 = fp.readLine();
1104
                        col2 = fp.readLine();
1105
                        col3 = fp.readLine();
1106
                        fp >> shading1;
1107
                        fp >> shading2;
1108
                        fp >> shading3;
10648 fschmid 1109
                        setCurrentComboItem(colDatat1, col1);
6080 fschmid 1110
                        shadet1->setValue(shading1);
10648 fschmid 1111
                        setCurrentComboItem(colDatat2, col2);
6080 fschmid 1112
                        shadet2->setValue(shading2);
10648 fschmid 1113
                        setCurrentComboItem(colDatat3, col3);
6080 fschmid 1114
                        shadet3->setValue(shading3);
6129 fschmid 1115
                        int numVals;
1116
                        double xval, yval;
1117
                        FPointArray curve;
1118
                        curve.resize(0);
1119
                        fp >> numVals;
1120
                        for (int nv = 0; nv < numVals; nv++)
1121
                        {
13497 jghali 1122
                                fp >> s;
1123
                                xval = ScCLocale::toDoubleC(s);
1124
                                fp >> s;
1125
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1126
                                curve.addPoint(xval, yval);
1127
                        }
1128
                        CurveT1->cDisplay->setCurve(curve);
6193 fschmid 1129
                        int lin;
1130
                        fp >> lin;
1131
                        CurveT1->setLinear(lin);
6129 fschmid 1132
                        curve.resize(0);
1133
                        fp >> numVals;
1134
                        for (int nv = 0; nv < numVals; nv++)
1135
                        {
13497 jghali 1136
                                fp >> s;
1137
                                xval = ScCLocale::toDoubleC(s);
1138
                                fp >> s;
1139
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1140
                                curve.addPoint(xval, yval);
1141
                        }
1142
                        CurveT2->cDisplay->setCurve(curve);
6193 fschmid 1143
                        fp >> lin;
1144
                        CurveT2->setLinear(lin);
6129 fschmid 1145
                        curve.resize(0);
1146
                        fp >> numVals;
1147
                        for (int nv = 0; nv < numVals; nv++)
1148
                        {
13497 jghali 1149
                                fp >> s;
1150
                                xval = ScCLocale::toDoubleC(s);
1151
                                fp >> s;
1152
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1153
                                curve.addPoint(xval, yval);
1154
                        }
1155
                        CurveT3->cDisplay->setCurve(curve);
6193 fschmid 1156
                        fp >> lin;
1157
                        CurveT3->setLinear(lin);
9801 fschmid 1158
                        optionStack->setCurrentIndex(8);
6080 fschmid 1159
                        connect( colDatat1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1160
                        connect( shadet1, SIGNAL(clicked()), this, SLOT(createPreview()));
1161
                        connect( colDatat2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1162
                        connect( shadet2, SIGNAL(clicked()), this, SLOT(createPreview()));
1163
                        connect( colDatat3, SIGNAL(activated(int)), this, SLOT( createPreview()));
1164
                        connect( shadet3, SIGNAL(clicked()), this, SLOT(createPreview()));
6129 fschmid 1165
                        connect( CurveT1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1166
                        connect( CurveT2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1167
                        connect( CurveT3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
6080 fschmid 1168
                }
1169
                else if (c->text() == tr("Quadtone"))
1170
                {
1171
                        disconnect( colDataq1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1172
                        disconnect( shadeq1, SIGNAL(clicked()), this, SLOT(createPreview()));
1173
                        disconnect( colDataq2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1174
                        disconnect( shadeq2, SIGNAL(clicked()), this, SLOT(createPreview()));
9961 fschmid 1175
                        disconnect( colDataqc3, SIGNAL(activated(int)), this, SLOT( createPreview()));
1176
                        disconnect( shadeqc3, SIGNAL(clicked()), this, SLOT(createPreview()));
6080 fschmid 1177
                        disconnect( colDataq4, SIGNAL(activated(int)), this, SLOT( createPreview()));
1178
                        disconnect( shadeq4, SIGNAL(clicked()), this, SLOT(createPreview()));
6129 fschmid 1179
                        disconnect( CurveQ1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1180
                        disconnect( CurveQ2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
9961 fschmid 1181
                        disconnect( CurveQc3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
6129 fschmid 1182
                        disconnect( CurveQ4->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
18330 jghali 1183
                        QString tmpstr = m_effectValMap[c];
6080 fschmid 1184
                        QString col1, col2, col3, col4;
1185
                        int shading1, shading2, shading3, shading4;
13497 jghali 1186
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
6080 fschmid 1187
                        col1 = fp.readLine();
1188
                        col2 = fp.readLine();
1189
                        col3 = fp.readLine();
1190
                        col4 = fp.readLine();
1191
                        fp >> shading1;
1192
                        fp >> shading2;
1193
                        fp >> shading3;
1194
                        fp >> shading4;
10648 fschmid 1195
                        setCurrentComboItem(colDataq1, col1);
6080 fschmid 1196
                        shadeq1->setValue(shading1);
10648 fschmid 1197
                        setCurrentComboItem(colDataq2, col2);
6080 fschmid 1198
                        shadeq2->setValue(shading2);
10648 fschmid 1199
                        setCurrentComboItem(colDataqc3, col3);
9961 fschmid 1200
                        shadeqc3->setValue(shading3);
10648 fschmid 1201
                        setCurrentComboItem(colDataq4, col4);
6080 fschmid 1202
                        shadeq4->setValue(shading4);
6129 fschmid 1203
                        int numVals;
1204
                        double xval, yval;
1205
                        FPointArray curve;
1206
                        curve.resize(0);
1207
                        fp >> numVals;
1208
                        for (int nv = 0; nv < numVals; nv++)
1209
                        {
13497 jghali 1210
                                fp >> s;
1211
                                xval = ScCLocale::toDoubleC(s);
1212
                                fp >> s;
1213
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1214
                                curve.addPoint(xval, yval);
1215
                        }
1216
                        CurveQ1->cDisplay->setCurve(curve);
6193 fschmid 1217
                        int lin;
1218
                        fp >> lin;
1219
                        CurveQ1->setLinear(lin);
6129 fschmid 1220
                        curve.resize(0);
1221
                        fp >> numVals;
1222
                        for (int nv = 0; nv < numVals; nv++)
1223
                        {
13497 jghali 1224
                                fp >> s;
1225
                                xval = ScCLocale::toDoubleC(s);
1226
                                fp >> s;
1227
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1228
                                curve.addPoint(xval, yval);
1229
                        }
1230
                        CurveQ2->cDisplay->setCurve(curve);
6193 fschmid 1231
                        fp >> lin;
1232
                        CurveQ2->setLinear(lin);
6129 fschmid 1233
                        curve.resize(0);
1234
                        fp >> numVals;
1235
                        for (int nv = 0; nv < numVals; nv++)
1236
                        {
13497 jghali 1237
                                fp >> s;
1238
                                xval = ScCLocale::toDoubleC(s);
1239
                                fp >> s;
1240
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1241
                                curve.addPoint(xval, yval);
1242
                        }
9961 fschmid 1243
                        CurveQc3->cDisplay->setCurve(curve);
6193 fschmid 1244
                        fp >> lin;
9961 fschmid 1245
                        CurveQc3->setLinear(lin);
6129 fschmid 1246
                        curve.resize(0);
1247
                        fp >> numVals;
1248
                        for (int nv = 0; nv < numVals; nv++)
1249
                        {
13497 jghali 1250
                                fp >> s;
1251
                                xval = ScCLocale::toDoubleC(s);
1252
                                fp >> s;
1253
                                yval = ScCLocale::toDoubleC(s);
6129 fschmid 1254
                                curve.addPoint(xval, yval);
1255
                        }
1256
                        CurveQ4->cDisplay->setCurve(curve);
6193 fschmid 1257
                        fp >> lin;
1258
                        CurveQ4->setLinear(lin);
9801 fschmid 1259
                        optionStack->setCurrentIndex(9);
6080 fschmid 1260
                        connect( colDataq1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1261
                        connect( shadeq1, SIGNAL(clicked()), this, SLOT(createPreview()));
1262
                        connect( colDataq2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1263
                        connect( shadeq2, SIGNAL(clicked()), this, SLOT(createPreview()));
9961 fschmid 1264
                        connect( colDataqc3, SIGNAL(activated(int)), this, SLOT( createPreview()));
1265
                        connect( shadeqc3, SIGNAL(clicked()), this, SLOT(createPreview()));
6080 fschmid 1266
                        connect( colDataq4, SIGNAL(activated(int)), this, SLOT( createPreview()));
1267
                        connect( shadeq4, SIGNAL(clicked()), this, SLOT(createPreview()));
6129 fschmid 1268
                        connect( CurveQ1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1269
                        connect( CurveQ2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
9961 fschmid 1270
                        connect( CurveQc3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
6129 fschmid 1271
                        connect( CurveQ4->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
6080 fschmid 1272
                }
2082 fschmid 1273
                else if (c->text() == tr("Brightness"))
1274
                {
1275
                        disconnect( brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(updateBright(int)));
3947 fschmid 1276
                        disconnect( brightnessSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
18330 jghali 1277
                        QString tmpstr = m_effectValMap[c];
2082 fschmid 1278
                        int brightness;
13497 jghali 1279
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
2082 fschmid 1280
                        fp >> brightness;
1281
                        brightnessSlider->setValue(brightness);
1282
                        QString tmp;
1283
                        tmp.setNum(brightness);
1284
                        textLabel7->setText(tmp);
9801 fschmid 1285
                        optionStack->setCurrentIndex(2);
2082 fschmid 1286
                        connect( brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(updateBright(int)));
3947 fschmid 1287
                        connect( brightnessSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
2082 fschmid 1288
                }
1289
                else if (c->text() == tr("Contrast"))
1290
                {
1291
                        disconnect( contrastSlider, SIGNAL(valueChanged(int)), this, SLOT(updateContrast(int)));
3947 fschmid 1292
                        disconnect( contrastSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
18330 jghali 1293
                        QString tmpstr = m_effectValMap[c];
2082 fschmid 1294
                        int contrast;
13497 jghali 1295
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
2082 fschmid 1296
                        fp >> contrast;
1297
                        contrastSlider->setValue(contrast);
1298
                        QString tmp;
1299
                        tmp.setNum(contrast);
1300
                        textLabel9->setText(tmp);
9801 fschmid 1301
                        optionStack->setCurrentIndex(3);
2082 fschmid 1302
                        connect( contrastSlider, SIGNAL(valueChanged(int)), this, SLOT(updateContrast(int)));
3947 fschmid 1303
                        connect( contrastSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
2082 fschmid 1304
                }
2092 fschmid 1305
                else if (c->text() == tr("Sharpen"))
1306
                {
9364 fschmid 1307
                        disconnect( shRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
1308
                        disconnect( shValue, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
18330 jghali 1309
                        QString tmpstr = m_effectValMap[c];
2092 fschmid 1310
                        double radius, sigma;
13497 jghali 1311
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
1312
                        fp >> s;
1313
                        radius = ScCLocale::toDoubleC(s);
1314
                        fp >> s;
1315
                        sigma = ScCLocale::toDoubleC(s);
2092 fschmid 1316
                        shRadius->setValue(radius);
1317
                        shValue->setValue(sigma);
9801 fschmid 1318
                        optionStack->setCurrentIndex(4);
9364 fschmid 1319
                        connect( shRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
1320
                        connect( shValue, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
2092 fschmid 1321
                }
2095 fschmid 1322
                else if (c->text() == tr("Blur"))
1323
                {
9364 fschmid 1324
                        disconnect( blRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
18330 jghali 1325
                        QString tmpstr = m_effectValMap[c];
12735 fschmid 1326
                        double radius;
13497 jghali 1327
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
1328
                        fp >> s;
1329
                        radius = ScCLocale::toDoubleC(s);
2095 fschmid 1330
                        blRadius->setValue(radius);
9801 fschmid 1331
                        optionStack->setCurrentIndex(5);
9364 fschmid 1332
                        connect( blRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
2095 fschmid 1333
                }
2096 fschmid 1334
                else if (c->text() == tr("Posterize"))
1335
                {
1336
                        disconnect( solarizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateSolarize(int)));
3947 fschmid 1337
                        disconnect( solarizeSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
18330 jghali 1338
                        QString tmpstr = m_effectValMap[c];
2096 fschmid 1339
                        int solarize;
13497 jghali 1340
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
2096 fschmid 1341
                        fp >> solarize;
1342
                        solarizeSlider->setValue(solarize);
1343
                        QString tmp;
1344
                        tmp.setNum(solarize);
1345
                        textLabel15->setText(tmp);
9801 fschmid 1346
                        optionStack->setCurrentIndex(6);
2096 fschmid 1347
                        connect( solarizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateSolarize(int)));
3947 fschmid 1348
                        connect( solarizeSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
2096 fschmid 1349
                }
6116 fschmid 1350
                else if (c->text() == tr("Curves"))
1351
                {
6129 fschmid 1352
                        disconnect( Kdisplay->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
18330 jghali 1353
                        QString tmpstr = m_effectValMap[c];
13497 jghali 1354
                        ScTextStream fp(&tmpstr, QIODevice::ReadOnly);
6116 fschmid 1355
                        int numVals;
1356
                        double xval, yval;
1357
                        FPointArray curve;
1358
                        curve.resize(0);
1359
                        fp >> numVals;
1360
                        for (int nv = 0; nv < numVals; nv++)
1361
                        {
13497 jghali 1362
                                fp >> s;
1363
                                xval = ScCLocale::toDoubleC(s);
1364
                                fp >> s;
1365
                                yval = ScCLocale::toDoubleC(s);
6116 fschmid 1366
                                curve.addPoint(xval, yval);
1367
                        }
6129 fschmid 1368
                        Kdisplay->cDisplay->setCurve(curve);
6193 fschmid 1369
                        int lin;
1370
                        fp >> lin;
1371
                        if (lin == 1)
1372
                                Kdisplay->setLinear(true);
1373
                        else
1374
                                Kdisplay->setLinear(false);
9801 fschmid 1375
                        optionStack->setCurrentIndex(10);
6129 fschmid 1376
                        connect( Kdisplay->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
6116 fschmid 1377
                }
2056 fschmid 1378
                else
9801 fschmid 1379
                        optionStack->setCurrentIndex(0);
2061 fschmid 1380
                currentOptions = c;
2056 fschmid 1381
        }
2061 fschmid 1382
        else
9801 fschmid 1383
                optionStack->setCurrentIndex(0);
1384
        disconnect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
2056 fschmid 1385
        availableEffects->clearSelection();
9801 fschmid 1386
        connect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
2056 fschmid 1387
}
1388
 
9801 fschmid 1389
void EffectsDialog::selectAvailEffect(QListWidgetItem* c)
2056 fschmid 1390
{
1391
        if (c)
7266 fschmid 1392
        {
9801 fschmid 1393
                if (!(c->flags() & Qt::ItemIsSelectable))
7266 fschmid 1394
                        toEffects->setEnabled(false);
1395
                else
1396
                        toEffects->setEnabled(true);
1397
        }
2056 fschmid 1398
        fromEffects->setEnabled(false);
1399
        effectUp->setEnabled(false);
1400
        effectDown->setEnabled(false);
9801 fschmid 1401
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
6401 fschmid 1402
        selectEffectHelper();
22603 craig 1403
        currentOptions = nullptr;
6401 fschmid 1404
        usedEffects->clearSelection();
9801 fschmid 1405
        optionStack->setCurrentIndex(0);
1406
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
6401 fschmid 1407
}
1408
 
1409
void EffectsDialog::selectEffectHelper(bool final)
1410
{
22603 craig 1411
        if (currentOptions != nullptr)
2061 fschmid 1412
        {
1413
                if (currentOptions->text() == tr("Colorize"))
1414
                {
1415
                        QString efval = "";
1416
                        efval = colData->currentText();
1417
                        QString tmp;
1418
                        tmp.setNum(shade->getValue());
6011 fschmid 1419
                        efval += "\n"+tmp;
18330 jghali 1420
                        m_effectValMap[currentOptions] = efval;
2061 fschmid 1421
                }
2082 fschmid 1422
                if (currentOptions->text() == tr("Brightness"))
1423
                {
1424
                        QString tmp;
1425
                        tmp.setNum(brightnessSlider->value());
18330 jghali 1426
                        m_effectValMap[currentOptions] = tmp;
2082 fschmid 1427
                }
1428
                if (currentOptions->text() == tr("Contrast"))
1429
                {
1430
                        QString tmp;
1431
                        tmp.setNum(contrastSlider->value());
18330 jghali 1432
                        m_effectValMap[currentOptions] = tmp;
2082 fschmid 1433
                }
2092 fschmid 1434
                if (currentOptions->text() == tr("Sharpen"))
1435
                {
1436
                        QString efval = "";
1437
                        QString tmp;
1438
                        tmp.setNum(shRadius->value());
1439
                        efval += tmp;
1440
                        tmp.setNum(shValue->value());
1441
                        efval += " "+tmp;
18330 jghali 1442
                        m_effectValMap[currentOptions] = efval;
2092 fschmid 1443
                }
2095 fschmid 1444
                if (currentOptions->text() == tr("Blur"))
1445
                {
1446
                        QString efval = "";
1447
                        QString tmp;
12735 fschmid 1448
                        if (!final)
6401 fschmid 1449
                                tmp.setNum(blRadius->value());
1450
                        else
18330 jghali 1451
                                tmp.setNum(blRadius->value()*m_imageScale);
2095 fschmid 1452
                        efval += tmp;
6011 fschmid 1453
                        tmp.setNum(1.0);
2095 fschmid 1454
                        efval += " "+tmp;
18330 jghali 1455
                        m_effectValMap[currentOptions] = efval;
2095 fschmid 1456
                }
2096 fschmid 1457
                if (currentOptions->text() == tr("Posterize"))
1458
                {
1459
                        QString tmp;
1460
                        tmp.setNum(solarizeSlider->value());
18330 jghali 1461
                        m_effectValMap[currentOptions] = tmp;
2096 fschmid 1462
                }
6080 fschmid 1463
                if (currentOptions->text() == tr("Duotone"))
1464
                {
1465
                        QString efval = "";
1466
                        efval = colData1->currentText()+"\n";
1467
                        efval += colData2->currentText()+"\n";
1468
                        QString tmp;
1469
                        tmp.setNum(shade1->getValue());
1470
                        efval += tmp;
1471
                        tmp.setNum(shade2->getValue());
1472
                        efval += " "+tmp;
6129 fschmid 1473
                        FPointArray Vals = CurveD1->cDisplay->getCurve();
1474
                        tmp.setNum(Vals.size());
1475
                        efval += " "+tmp;
18114 jghali 1476
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1477
                        {
22635 craig 1478
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1479
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1480
                        }
6193 fschmid 1481
                        if (CurveD1->cDisplay->isLinear())
1482
                                efval += " 1";
1483
                        else
1484
                                efval += " 0";
6129 fschmid 1485
                        Vals = CurveD2->cDisplay->getCurve();
1486
                        tmp.setNum(Vals.size());
1487
                        efval += " "+tmp;
18114 jghali 1488
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1489
                        {
22635 craig 1490
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1491
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1492
                        }
6193 fschmid 1493
                        if (CurveD2->cDisplay->isLinear())
1494
                                efval += " 1";
1495
                        else
1496
                                efval += " 0";
18330 jghali 1497
                        m_effectValMap[currentOptions] = efval;
6080 fschmid 1498
                }
1499
                if (currentOptions->text() == tr("Tritone"))
1500
                {
1501
                        QString efval = "";
1502
                        efval = colDatat1->currentText()+"\n";
1503
                        efval += colDatat2->currentText()+"\n";
1504
                        efval += colDatat3->currentText()+"\n";
1505
                        QString tmp;
1506
                        tmp.setNum(shadet1->getValue());
1507
                        efval += tmp;
1508
                        tmp.setNum(shadet2->getValue());
1509
                        efval += " "+tmp;
1510
                        tmp.setNum(shadet3->getValue());
1511
                        efval += " "+tmp;
6129 fschmid 1512
                        FPointArray Vals = CurveT1->cDisplay->getCurve();
1513
                        tmp.setNum(Vals.size());
1514
                        efval += " "+tmp;
18114 jghali 1515
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1516
                        {
22635 craig 1517
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1518
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1519
                        }
6193 fschmid 1520
                        if (CurveT1->cDisplay->isLinear())
1521
                                efval += " 1";
1522
                        else
1523
                                efval += " 0";
6129 fschmid 1524
                        Vals = CurveT2->cDisplay->getCurve();
1525
                        tmp.setNum(Vals.size());
1526
                        efval += " "+tmp;
18114 jghali 1527
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1528
                        {
22635 craig 1529
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1530
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1531
                        }
6193 fschmid 1532
                        if (CurveT2->cDisplay->isLinear())
1533
                                efval += " 1";
1534
                        else
1535
                                efval += " 0";
6129 fschmid 1536
                        Vals = CurveT3->cDisplay->getCurve();
1537
                        tmp.setNum(Vals.size());
1538
                        efval += " "+tmp;
18114 jghali 1539
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1540
                        {
22635 craig 1541
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1542
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1543
                        }
6193 fschmid 1544
                        if (CurveT3->cDisplay->isLinear())
1545
                                efval += " 1";
1546
                        else
1547
                                efval += " 0";
18330 jghali 1548
                        m_effectValMap[currentOptions] = efval;
6080 fschmid 1549
                }
1550
                if (currentOptions->text() == tr("Quadtone"))
1551
                {
1552
                        QString efval = "";
1553
                        efval = colDataq1->currentText()+"\n";
1554
                        efval += colDataq2->currentText()+"\n";
9961 fschmid 1555
                        efval += colDataqc3->currentText()+"\n";
6080 fschmid 1556
                        efval += colDataq4->currentText()+"\n";
1557
                        QString tmp;
1558
                        tmp.setNum(shadeq1->getValue());
1559
                        efval += tmp;
1560
                        tmp.setNum(shadeq2->getValue());
1561
                        efval += " "+tmp;
9961 fschmid 1562
                        tmp.setNum(shadeqc3->getValue());
6080 fschmid 1563
                        efval += " "+tmp;
1564
                        tmp.setNum(shadeq4->getValue());
1565
                        efval += " "+tmp;
6129 fschmid 1566
                        FPointArray Vals = CurveQ1->cDisplay->getCurve();
1567
                        tmp.setNum(Vals.size());
1568
                        efval += " "+tmp;
18114 jghali 1569
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1570
                        {
22635 craig 1571
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1572
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1573
                        }
6193 fschmid 1574
                        if (CurveQ1->cDisplay->isLinear())
1575
                                efval += " 1";
1576
                        else
1577
                                efval += " 0";
6129 fschmid 1578
                        Vals = CurveQ2->cDisplay->getCurve();
1579
                        tmp.setNum(Vals.size());
1580
                        efval += " "+tmp;
18114 jghali 1581
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1582
                        {
22635 craig 1583
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1584
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1585
                        }
6193 fschmid 1586
                        if (CurveQ2->cDisplay->isLinear())
1587
                                efval += " 1";
1588
                        else
1589
                                efval += " 0";
9961 fschmid 1590
                        Vals = CurveQc3->cDisplay->getCurve();
6129 fschmid 1591
                        tmp.setNum(Vals.size());
1592
                        efval += " "+tmp;
18114 jghali 1593
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1594
                        {
22635 craig 1595
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1596
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1597
                        }
9961 fschmid 1598
                        if (CurveQc3->cDisplay->isLinear())
6193 fschmid 1599
                                efval += " 1";
1600
                        else
1601
                                efval += " 0";
6129 fschmid 1602
                        Vals = CurveQ4->cDisplay->getCurve();
1603
                        tmp.setNum(Vals.size());
1604
                        efval += " "+tmp;
18114 jghali 1605
                        for (int p = 0; p < Vals.size(); p++)
6129 fschmid 1606
                        {
22635 craig 1607
                                const FPoint& pv = Vals.point(p);
6129 fschmid 1608
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1609
                        }
6193 fschmid 1610
                        if (CurveQ4->cDisplay->isLinear())
1611
                                efval += " 1";
1612
                        else
1613
                                efval += " 0";
18330 jghali 1614
                        m_effectValMap[currentOptions] = efval;
6080 fschmid 1615
                }
6116 fschmid 1616
                if (currentOptions->text() == tr("Curves"))
1617
                {
1618
                        QString efval = "";
6129 fschmid 1619
                        FPointArray Vals = Kdisplay->cDisplay->getCurve();
6116 fschmid 1620
                        QString tmp;
1621
                        tmp.setNum(Vals.size());
1622
                        efval += tmp;
18114 jghali 1623
                        for (int p = 0; p < Vals.size(); p++)
6116 fschmid 1624
                        {
22635 craig 1625
                                const FPoint& pv = Vals.point(p);
6116 fschmid 1626
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1627
                        }
6193 fschmid 1628
                        if (Kdisplay->cDisplay->isLinear())
1629
                                efval += " 1";
1630
                        else
1631
                                efval += " 0";
18330 jghali 1632
                        m_effectValMap[currentOptions] = efval;
6116 fschmid 1633
                }
2061 fschmid 1634
        }
2056 fschmid 1635
}