~ubuntu-branches/ubuntu/maverick/scribus-ng/maverick-backports

« back to all changes in this revision

Viewing changes to scribus/effectsdialog.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Oleksandr Moskalenko
  • Date: 2009-02-09 09:25:18 UTC
  • mfrom: (5.1.4 sid)
  • Revision ID: james.westby@ubuntu.com-20090209092518-iqsxmh3pjspgrdyd
Tags: 1.3.5.dfsg~svn20090208-2
debian/control: Use "type-handling -n arm,armel,armeb any" to generate the
list of architectures to build on.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
for which a new license (GPL+exception) is in place.
6
6
*/
7
7
#include "effectsdialog.h"
8
 
#include "effectsdialog.moc"
9
 
#include <qvariant.h>
10
 
#include <qpushbutton.h>
11
 
#include <qlabel.h>
12
 
#include <qlayout.h>
13
 
#include <qtooltip.h>
14
 
#include <qwhatsthis.h>
15
 
#include <qimage.h>
16
 
#include <qtextstream.h>
17
 
#include <qwidgetstack.h>
18
 
#include <qwidget.h>
19
 
#include <qslider.h>
20
 
#include <qpainter.h>
21
 
#include <qtoolbutton.h>
22
 
#include <qpopupmenu.h>
 
8
#include <QHBoxLayout>
 
9
#include <QGridLayout>
 
10
#include <QVBoxLayout>
 
11
#include <QSpacerItem>
 
12
#include <QPixmap>
 
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>
 
26
#include <QTextStream>
 
27
 
 
28
#include "cmsettings.h"
23
29
#include "colorcombo.h"
24
 
#include "cmsettings.h"
 
30
#include "curvewidget.h"
 
31
#include "page.h"
25
32
#include "sccombobox.h"
26
33
#include "scribusdoc.h"
 
34
#include "scrspinbox.h"
27
35
#include "shadebutton.h"
28
 
#include "mspinbox.h"
29
 
#include "page.h"
30
 
#include "colorutil.h"
31
 
#include "curvewidget.h"
32
 
 
33
 
extern QPixmap loadIcon(QString nam);
34
 
 
35
 
EffectListItem::EffectListItem(QListBox* parent, QString f) : QListBoxText(parent, f)
36
 
{
37
 
}
38
 
 
39
 
const int EffectListItem::width(const QListBox *listbox)
40
 
{
41
 
        return listbox->fontMetrics().width(text()) + 2;
42
 
}
43
 
 
44
 
const int EffectListItem::height(const QListBox *listbox)
45
 
{
46
 
        QFontMetrics fontMetrics(listbox->fontMetrics());
47
 
        return fontMetrics.lineSpacing() + 2;
48
 
}
49
 
 
50
 
void EffectListItem::paint(QPainter *painter)
51
 
{
52
 
        QFontMetrics fontMetrics(painter->fontMetrics());
53
 
        if (!isSelectable())
54
 
                painter->setPen(QColor(128, 128, 128));
55
 
        painter->drawText(3, fontMetrics.lineSpacing()-fontMetrics.descent(), text());
56
 
}
57
 
 
58
 
EffectsDialog::EffectsDialog( QWidget* parent, PageItem* item, ScribusDoc* docc ) : QDialog( parent, "EffectsDialog", true, 0 )
59
 
{
60
 
        EffectsDialogLayout = new QHBoxLayout( this, 10, 5, "EffectsDialogLayout");
61
 
        setCaption( tr( "Image Effects" ) );
62
 
        setIcon(loadIcon("AppIcon.png"));
 
36
#include "util_color.h"
 
37
#include "util_icon.h"
 
38
#include "util.h"
 
39
 
 
40
 
 
41
EffectsDialog::EffectsDialog( QWidget* parent, PageItem* item, ScribusDoc* docc ) : QDialog( parent )
 
42
{
 
43
        setModal(true);
 
44
        setWindowTitle( tr( "Image Effects" ) );
 
45
        setWindowIcon(QIcon(loadIcon ( "AppIcon.png" )));
63
46
        currItem = item;
64
47
        effectsList = currItem->effectsInUse;
65
48
        doc = docc;
66
49
        currentOptions = 0;
67
50
        bool mode = false;
68
51
        CMSettings cms(docc, "", 0);
69
 
/*      if (currItem->pixm.imgInfo.RequestProps.count() != 0)
70
 
        {
71
 
                image.imgInfo.RequestProps = currItem->pixm.imgInfo.RequestProps;
72
 
                image.imgInfo.isRequest = true;
73
 
        } */
74
 
        image.LoadPicture(currItem->Pfile, cms, false, false, ScImage::RGBData, 72, &mode);
 
52
        image.LoadPicture(currItem->Pfile, currItem->pixm.imgInfo.actualPageNumber, cms, false, false, ScImage::RGBData, 72, &mode);
75
53
        int ix = image.width();
76
54
        int iy = image.height();
77
55
        imageScale = 1.0;
83
61
                        image.createLowRes(sx);
84
62
                else
85
63
                        image.createLowRes(sy);
86
 
                imageScale = QMIN(sx, sy);
 
64
                imageScale = qMin(sx, sy);
87
65
        }
88
 
        layout16 = new QVBoxLayout( 0, 0, 5, "layout16");
89
 
        pixmapLabel1 = new QLabel( this, "pixmapLabel1" );
90
 
        pixmapLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, pixmapLabel1->sizePolicy().hasHeightForWidth() ) );
 
66
        EffectsDialogLayout = new QHBoxLayout( this );
 
67
        EffectsDialogLayout->setMargin(10);
 
68
        EffectsDialogLayout->setSpacing(5);
 
69
        layout16 = new QVBoxLayout;
 
70
        layout16->setMargin(0);
 
71
        layout16->setSpacing(5);
 
72
        pixmapLabel1 = new QLabel( this );
 
73
        pixmapLabel1->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
91
74
        pixmapLabel1->setMinimumSize( QSize( 220, 220 ) );
92
75
        pixmapLabel1->setMaximumSize( QSize( 220, 220 ) );
93
76
        pixmapLabel1->setFrameShape( QLabel::StyledPanel );
94
77
        pixmapLabel1->setFrameShadow( QLabel::Sunken );
95
78
        pixmapLabel1->setScaledContents( false );
96
79
        layout16->addWidget( pixmapLabel1 );
97
 
        textLabel5 = new QLabel( this, "textLabel5" );
 
80
        textLabel5 = new QLabel( this );
98
81
        textLabel5->setText( tr( "Options:" ) );
99
82
        layout16->addWidget( textLabel5 );
100
 
        optionStack = new QWidgetStack( this, "optionStack" );
101
 
        optionStack->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, optionStack->sizePolicy().hasHeightForWidth() ) );
 
83
        optionStack = new QStackedWidget( this );
 
84
//      optionStack->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)7, (QSizePolicy::SizeType)7, 0, 0, optionStack->sizePolicy().hasHeightForWidth() ) );
102
85
        optionStack->setMinimumSize( QSize( 220, 180 ) );
103
 
        optionStack->setFrameShape( QWidgetStack::GroupBoxPanel );
104
 
        WStackPage = new QWidget( optionStack, "WStackPage" );
105
 
        optionStack->addWidget( WStackPage, 0 );
 
86
        optionStack->setFrameShape( QFrame::Box );
 
87
        WStackPage = new QWidget( optionStack );
 
88
        optionStack->addWidget( WStackPage );
106
89
 
107
 
        WStackPage_2 = new QWidget( optionStack, "WStackPage_2" );
108
 
        WStackPageLayout = new QVBoxLayout( WStackPage_2, 5, 5, "WStackPageLayout");
 
90
        WStackPage_2 = new QWidget( optionStack );
 
91
        WStackPageLayout = new QVBoxLayout( WStackPage_2 );
 
92
        WStackPageLayout->setMargin(5);
 
93
        WStackPageLayout->setSpacing(5);
109
94
        WStackPageLayout->setAlignment( Qt::AlignTop );
110
 
        layout17 = new QHBoxLayout( 0, 0, 5, "layout7");
111
 
        textLabel3 = new QLabel( tr( "Color:" ), WStackPage_2, "textLabel3" );
 
95
        layout17 = new QHBoxLayout;
 
96
        layout17->setMargin(0);
 
97
        layout17->setSpacing(5);
 
98
        textLabel3 = new QLabel( tr( "Color:" ), WStackPage_2 );
112
99
        layout17->addWidget( textLabel3 );
113
100
 
114
 
        colData = new ColorCombo(false, WStackPage_2, "colData");
115
 
        colData->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
 
101
        colData = new ColorCombo(false, WStackPage_2);
 
102
        colData->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
116
103
        layout17->addWidget( colData );
117
104
        WStackPageLayout->addLayout( layout17 );
118
105
 
119
 
        layout19 = new QHBoxLayout( 0, 0, 5, "layout7");
120
 
        textLabel4 = new QLabel( tr( "Shade:" ), WStackPage_2, "textLabel4" );
 
106
        layout19 = new QHBoxLayout;
 
107
        layout19->setMargin(0);
 
108
        layout19->setSpacing(5);
 
109
        textLabel4 = new QLabel( tr( "Shade:" ), WStackPage_2 );
121
110
        layout19->addWidget( textLabel4 );
122
111
        shade = new ShadeButton(WStackPage_2);
123
112
        shade->setValue(100);
124
113
        layout19->addWidget( shade );
125
114
        WStackPageLayout->addLayout( layout19 );
126
 
        optionStack->addWidget( WStackPage_2, 1 );
 
115
        optionStack->addWidget( WStackPage_2 );
127
116
 
128
 
        WStackPage_3 = new QWidget( optionStack, "WStackPage_3" );
129
 
        WStackPage3Layout = new QVBoxLayout( WStackPage_3, 5, 5, "WStackPageLayout");
 
117
        WStackPage_3 = new QWidget( optionStack );
 
118
        WStackPage3Layout = new QVBoxLayout( WStackPage_3 );
 
119
        WStackPage3Layout->setMargin(5);
 
120
        WStackPage3Layout->setSpacing(5);
130
121
        WStackPage3Layout->setAlignment( Qt::AlignTop );
131
 
        layout20 = new QHBoxLayout( 0, 0, 5, "layout7");
132
 
        textLabel6 = new QLabel( tr( "Brightness:" ), WStackPage_3, "textLabel6" );
 
122
        layout20 = new QHBoxLayout;
 
123
        layout20->setMargin(0);
 
124
        layout20->setSpacing(5);
 
125
        textLabel6 = new QLabel( tr( "Brightness:" ), WStackPage_3 );
133
126
        layout20->addWidget( textLabel6, Qt::AlignLeft );
134
 
        textLabel7 = new QLabel( "0", WStackPage_3, "textLabel7" );
 
127
        textLabel7 = new QLabel( "0", WStackPage_3 );
135
128
        layout20->addWidget( textLabel7, Qt::AlignRight );
136
129
        WStackPage3Layout->addLayout( layout20 );
137
 
        brightnessSlider = new QSlider( WStackPage_3, "Slider1_2" );
138
 
        brightnessSlider->setMinValue(-255);
139
 
        brightnessSlider->setMaxValue(255);
 
130
        brightnessSlider = new QSlider( WStackPage_3 );
 
131
        brightnessSlider->setMinimum(-255);
 
132
        brightnessSlider->setMaximum(255);
140
133
        brightnessSlider->setValue(0);
141
 
        brightnessSlider->setOrientation( QSlider::Horizontal );
142
 
        brightnessSlider->setTickmarks( QSlider::Below );
 
134
        brightnessSlider->setOrientation( Qt::Horizontal );
 
135
        brightnessSlider->setTickPosition( QSlider::TicksBelow );
143
136
        WStackPage3Layout->addWidget( brightnessSlider );
144
 
        optionStack->addWidget( WStackPage_3, 2 );
 
137
        optionStack->addWidget( WStackPage_3 );
145
138
 
146
 
        WStackPage_4 = new QWidget( optionStack, "WStackPage_4" );
147
 
        WStackPage4Layout = new QVBoxLayout( WStackPage_4, 5, 5, "WStackPageLayout");
 
139
        WStackPage_4 = new QWidget( optionStack );
 
140
        WStackPage4Layout = new QVBoxLayout( WStackPage_4 );
 
141
        WStackPage4Layout->setMargin(5);
 
142
        WStackPage4Layout->setSpacing(5);
148
143
        WStackPage4Layout->setAlignment( Qt::AlignTop );
149
 
        layout21 = new QHBoxLayout( 0, 0, 5, "layout7");
150
 
        textLabel8 = new QLabel( tr( "Contrast:" ), WStackPage_4, "textLabel8" );
 
144
        layout21 = new QHBoxLayout;
 
145
        layout21->setMargin(0);
 
146
        layout21->setSpacing(5);
 
147
        textLabel8 = new QLabel( tr( "Contrast:" ), WStackPage_4 );
151
148
        layout21->addWidget( textLabel8, Qt::AlignLeft );
152
 
        textLabel9 = new QLabel( "0", WStackPage_4, "textLabel9" );
 
149
        textLabel9 = new QLabel( "0", WStackPage_4 );
153
150
        layout21->addWidget( textLabel9, Qt::AlignRight );
154
151
        WStackPage4Layout->addLayout( layout21 );
155
 
        contrastSlider = new QSlider( WStackPage_4, "Slider2" );
156
 
        contrastSlider->setMinValue(-127);
157
 
        contrastSlider->setMaxValue(127);
 
152
        contrastSlider = new QSlider( WStackPage_4 );
 
153
        contrastSlider->setMinimum(-127);
 
154
        contrastSlider->setMaximum(127);
158
155
        contrastSlider->setValue(0);
159
 
        contrastSlider->setOrientation( QSlider::Horizontal );
160
 
        contrastSlider->setTickmarks( QSlider::Below );
 
156
        contrastSlider->setOrientation( Qt::Horizontal );
 
157
        contrastSlider->setTickPosition( QSlider::TicksBelow );
161
158
        WStackPage4Layout->addWidget( contrastSlider );
162
 
        optionStack->addWidget( WStackPage_4, 3 );
 
159
        optionStack->addWidget( WStackPage_4 );
163
160
 
164
 
        WStackPage_5 = new QWidget( optionStack, "WStackPage_5" );
165
 
        WStackPage5Layout = new QVBoxLayout( WStackPage_5, 5, 5, "WStackPageLayout");
 
161
        WStackPage_5 = new QWidget( optionStack );
 
162
        WStackPage5Layout = new QVBoxLayout( WStackPage_5 );
 
163
        WStackPage5Layout->setMargin(5);
 
164
        WStackPage5Layout->setSpacing(5);
166
165
        WStackPage5Layout->setAlignment( Qt::AlignTop );
167
 
        layout22 = new QHBoxLayout( 0, 0, 5, "layout7");
168
 
        textLabel10 = new QLabel( tr( "Radius:" ), WStackPage_5, "textLabel10" );
 
166
        layout22 = new QHBoxLayout;
 
167
        layout22->setMargin(0);
 
168
        layout22->setSpacing(5);
 
169
        textLabel10 = new QLabel( tr( "Radius:" ), WStackPage_5 );
169
170
        layout22->addWidget( textLabel10 );
170
 
        shRadius = new MSpinBox( 0.0, 10.0, WStackPage_5, 1 );
 
171
        shRadius = new ScrSpinBox( 0.0, 10.0, WStackPage_5, 1 );
 
172
        shRadius->setDecimals(1);
 
173
        shRadius->setSuffix("");
171
174
        shRadius->setValue(0);
172
175
        layout22->addWidget( shRadius );
173
176
        WStackPage5Layout->addLayout( layout22 );
174
 
        layout23 = new QHBoxLayout( 0, 0, 5, "layout7");
175
 
        textLabel11 = new QLabel( tr("Value:"), WStackPage_5, "textLabel11" );
 
177
        layout23 = new QHBoxLayout;
 
178
        layout23->setMargin(0);
 
179
        layout23->setSpacing(5);
 
180
        textLabel11 = new QLabel( tr("Value:"), WStackPage_5 );
176
181
        layout23->addWidget( textLabel11 );
177
 
        shValue = new MSpinBox( 0.0, 5.0, WStackPage_5, 1 );
 
182
        shValue = new ScrSpinBox( 0.0, 5.0, WStackPage_5, 1 );
 
183
        shValue->setDecimals(1);
 
184
        shValue->setSuffix("");
178
185
        shValue->setValue(1.0);
179
186
        layout23->addWidget( shValue );
180
187
        WStackPage5Layout->addLayout( layout23 );
181
 
        optionStack->addWidget( WStackPage_5, 4 );
 
188
        optionStack->addWidget( WStackPage_5 );
182
189
 
183
 
        WStackPage_6 = new QWidget( optionStack, "WStackPage_6" );
184
 
        WStackPage6Layout = new QVBoxLayout( WStackPage_6, 5, 5, "WStackPageLayout");
 
190
        WStackPage_6 = new QWidget( optionStack );
 
191
        WStackPage6Layout = new QVBoxLayout( WStackPage_6 );
 
192
        WStackPage6Layout->setMargin(5);
 
193
        WStackPage6Layout->setSpacing(5);
185
194
        WStackPage6Layout->setAlignment( Qt::AlignTop );
186
 
        layout24 = new QHBoxLayout( 0, 0, 5, "layout7");
187
 
        textLabel12 = new QLabel( tr( "Radius:" ), WStackPage_6, "textLabel10" );
 
195
        layout24 = new QHBoxLayout;
 
196
        layout24->setMargin(0);
 
197
        layout24->setSpacing(5);
 
198
        textLabel12 = new QLabel( tr( "Radius:" ), WStackPage_6 );
188
199
        layout24->addWidget( textLabel12 );
189
 
        blRadius = new MSpinBox( 0.0, 30.0, WStackPage_6, 1 );
 
200
        blRadius = new ScrSpinBox( 0.0, 30.0, WStackPage_6, 1 );
 
201
        blRadius->setDecimals(1);
 
202
        blRadius->setSuffix("");
190
203
        blRadius->setValue(0);
191
204
        layout24->addWidget( blRadius );
192
205
        WStackPage6Layout->addLayout( layout24 );
193
 
        optionStack->addWidget( WStackPage_6, 5 );
 
206
        optionStack->addWidget( WStackPage_6 );
194
207
 
195
 
        WStackPage_7 = new QWidget( optionStack, "WStackPage_4" );
196
 
        WStackPage7Layout = new QVBoxLayout( WStackPage_7, 5, 5, "WStackPageLayout");
 
208
        WStackPage_7 = new QWidget( optionStack );
 
209
        WStackPage7Layout = new QVBoxLayout( WStackPage_7 );
 
210
        WStackPage7Layout->setMargin(5);
 
211
        WStackPage7Layout->setSpacing(5);
197
212
        WStackPage7Layout->setAlignment( Qt::AlignTop );
198
 
        layout26 = new QHBoxLayout( 0, 0, 5, "layout7");
199
 
        textLabel14 = new QLabel( tr( "Posterize:" ), WStackPage_7, "textLabel8" );
 
213
        layout26 = new QHBoxLayout;
 
214
        layout26->setMargin(0);
 
215
        layout26->setSpacing(5);
 
216
        textLabel14 = new QLabel( tr( "Posterize:" ), WStackPage_7 );
200
217
        layout26->addWidget( textLabel14, Qt::AlignLeft );
201
 
        textLabel15 = new QLabel( "0", WStackPage_7, "textLabel9" );
 
218
        textLabel15 = new QLabel( "0", WStackPage_7 );
202
219
        layout26->addWidget( textLabel15, Qt::AlignRight );
203
220
        WStackPage7Layout->addLayout( layout26 );
204
 
        solarizeSlider = new QSlider( WStackPage_7, "Slider2" );
205
 
        solarizeSlider->setMinValue(1);
206
 
        solarizeSlider->setMaxValue(255);
 
221
        solarizeSlider = new QSlider( WStackPage_7 );
 
222
        solarizeSlider->setMinimum(1);
 
223
        solarizeSlider->setMaximum(255);
207
224
        solarizeSlider->setValue(255);
208
 
        solarizeSlider->setOrientation( QSlider::Horizontal );
209
 
        solarizeSlider->setTickmarks( QSlider::Below );
 
225
        solarizeSlider->setOrientation( Qt::Horizontal );
 
226
        solarizeSlider->setTickPosition( QSlider::TicksBelow );
210
227
        WStackPage7Layout->addWidget( solarizeSlider );
211
 
        optionStack->addWidget( WStackPage_7, 6 );
 
228
        optionStack->addWidget( WStackPage_7 );
212
229
 
213
 
        WStackPage_8 = new QWidget( optionStack, "WStackPage_8" );
214
 
        WStackPage8Layout = new QGridLayout( WStackPage_8, 1, 1, 4, 5, "WStackPage8Layout");
215
 
        textLabel1d = new QLabel( tr( "Color 1:" ), WStackPage_8, "textLabel1d" );
 
230
        WStackPage_8 = new QWidget( optionStack );
 
231
        WStackPage8Layout = new QGridLayout( WStackPage_8 );
 
232
        WStackPage8Layout->setMargin(4);
 
233
        WStackPage8Layout->setSpacing(5);
 
234
        WStackPage8Layout->setAlignment( Qt::AlignTop );
 
235
        textLabel1d = new QLabel( tr( "Color 1:" ), WStackPage_8 );
216
236
        WStackPage8Layout->addWidget( textLabel1d, 0, 0 );
217
 
        colData1 = new ColorCombo(false, WStackPage_8, "colData1");
218
 
        colData1->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
219
 
        WStackPage8Layout->addMultiCellWidget( colData1, 0, 0, 1, 2);
 
237
        colData1 = new ColorCombo(false, WStackPage_8);
 
238
        colData1->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
239
        WStackPage8Layout->addWidget( colData1, 0, 1, 1, 2);
220
240
        shade1 = new ShadeButton(WStackPage_8);
221
241
        shade1->setValue(100);
222
242
        WStackPage8Layout->addWidget( shade1, 1, 1 );
223
243
        CurveD1 = new CurveWidget( NULL );
224
 
        CurveD1Pop = new QPopupMenu();
225
 
        CurveD1Pop->insertItem(CurveD1);
226
 
        CurveD1Button = new QToolButton( WStackPage_8, "CurveD1Button" );
 
244
        CurveD1Pop = new QMenu();
 
245
        CurveD1Act = new QWidgetAction(this);
 
246
        CurveD1Act->setDefaultWidget(CurveD1);
 
247
        CurveD1Pop->addAction(CurveD1Act);
 
248
        CurveD1Button = new QToolButton( WStackPage_8 );
227
249
        CurveD1Button->setText( "" );
228
250
        CurveD1Button->setMaximumSize( QSize( 22, 22 ) );
229
 
        CurveD1Button->setPixmap(loadIcon("curve.png"));
230
 
        CurveD1Button->setPopup(CurveD1Pop);
231
 
        CurveD1Button->setPopupDelay(40);
 
251
        CurveD1Button->setIcon(loadIcon("curve.png"));
 
252
        CurveD1Button->setMenu(CurveD1Pop);
 
253
        CurveD1Button->setPopupMode(QToolButton::InstantPopup);
232
254
        WStackPage8Layout->addWidget( CurveD1Button, 1, 2 );
233
255
 
234
 
        textLabel2d = new QLabel( tr( "Color 2:" ), WStackPage_8, "textLabel2d" );
 
256
        textLabel2d = new QLabel( tr( "Color 2:" ), WStackPage_8 );
235
257
        WStackPage8Layout->addWidget( textLabel2d, 2, 0 );
236
 
        colData2 = new ColorCombo(false, WStackPage_8, "colData2");
237
 
        colData2->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
238
 
        WStackPage8Layout->addMultiCellWidget( colData2, 2, 2, 1, 2);
 
258
        colData2 = new ColorCombo(false, WStackPage_8);
 
259
        colData2->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
260
        WStackPage8Layout->addWidget( colData2, 2, 1, 1, 2);
239
261
        shade2 = new ShadeButton(WStackPage_8);
240
262
        shade2->setValue(100);
241
263
        WStackPage8Layout->addWidget( shade2, 3, 1 );
242
264
        CurveD2 = new CurveWidget( NULL );
243
 
        CurveD2Pop = new QPopupMenu();
244
 
        CurveD2Pop->insertItem(CurveD2);
245
 
        CurveD2Button = new QToolButton( WStackPage_8, "CurveD2Button" );
 
265
        CurveD2Pop = new QMenu();
 
266
        CurveD2Act = new QWidgetAction(this);
 
267
        CurveD2Act->setDefaultWidget(CurveD2);
 
268
        CurveD2Pop->addAction(CurveD2Act);
 
269
        CurveD2Button = new QToolButton( WStackPage_8 );
246
270
        CurveD2Button->setText( "" );
247
271
        CurveD2Button->setMaximumSize( QSize( 22, 22 ) );
248
 
        CurveD2Button->setPixmap(loadIcon("curve.png"));
249
 
        CurveD2Button->setPopup(CurveD2Pop);
250
 
        CurveD2Button->setPopupDelay(40);
 
272
        CurveD2Button->setIcon(loadIcon("curve.png"));
 
273
        CurveD2Button->setMenu(CurveD2Pop);
 
274
        CurveD2Button->setPopupMode(QToolButton::InstantPopup);
251
275
        WStackPage8Layout->addWidget( CurveD2Button, 3, 2 );
252
276
        QSpacerItem *spacerD1 = new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding );
253
277
        WStackPage8Layout->addItem( spacerD1, 4, 0 );
254
 
        optionStack->addWidget( WStackPage_8, 7 );
 
278
        optionStack->addWidget( WStackPage_8 );
255
279
 
256
 
        WStackPage_9 = new QWidget( optionStack, "WStackPage_9" );
257
 
        WStackPage9Layout = new QGridLayout( WStackPage_9, 1, 1, 4, 5, "WStackPage9Layout");
258
 
        textLabel1t = new QLabel( tr( "Color 1:" ), WStackPage_9, "textLabel1t" );
 
280
        WStackPage_9 = new QWidget( optionStack );
 
281
        WStackPage9Layout = new QGridLayout( WStackPage_9 );
 
282
        WStackPage9Layout->setMargin(4);
 
283
        WStackPage9Layout->setSpacing(5);
 
284
        WStackPage9Layout->setAlignment( Qt::AlignTop );
 
285
        textLabel1t = new QLabel( tr( "Color 1:" ), WStackPage_9 );
259
286
        WStackPage9Layout->addWidget( textLabel1t, 0, 0 );
260
 
        colDatat1 = new ColorCombo(false, WStackPage_9, "colDatat1");
261
 
        colDatat1->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
262
 
        WStackPage9Layout->addMultiCellWidget( colDatat1, 0, 0, 1, 2 );
 
287
        colDatat1 = new ColorCombo(false, WStackPage_9);
 
288
        colDatat1->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
289
        WStackPage9Layout->addWidget( colDatat1, 0, 1, 1, 2 );
263
290
        shadet1 = new ShadeButton(WStackPage_9);
264
291
        shadet1->setValue(100);
265
292
        WStackPage9Layout->addWidget( shadet1, 1, 1 );
266
293
        CurveT1 = new CurveWidget( NULL );
267
 
        CurveT1Pop = new QPopupMenu();
268
 
        CurveT1Pop->insertItem(CurveT1);
269
 
        CurveT1Button = new QToolButton( WStackPage_9, "CurveT1Button" );
 
294
        CurveT1Pop = new QMenu();
 
295
        CurveT1Act = new QWidgetAction(this);
 
296
        CurveT1Act->setDefaultWidget(CurveT1);
 
297
        CurveT1Pop->addAction(CurveT1Act);
 
298
        CurveT1Button = new QToolButton( WStackPage_9 );
270
299
        CurveT1Button->setText( "" );
271
300
        CurveT1Button->setMaximumSize( QSize( 22, 22 ) );
272
 
        CurveT1Button->setPixmap(loadIcon("curve.png"));
273
 
        CurveT1Button->setPopup(CurveT1Pop);
274
 
        CurveT1Button->setPopupDelay(40);
 
301
        CurveT1Button->setIcon(loadIcon("curve.png"));
 
302
        CurveT1Button->setMenu(CurveT1Pop);
 
303
        CurveT1Button->setPopupMode(QToolButton::InstantPopup);
275
304
        WStackPage9Layout->addWidget( CurveT1Button, 1, 2 );
276
 
        textLabel2t = new QLabel( tr( "Color 2:" ), WStackPage_9, "textLabel2t" );
 
305
        textLabel2t = new QLabel( tr( "Color 2:" ), WStackPage_9 );
277
306
        WStackPage9Layout->addWidget( textLabel2t, 2, 0 );
278
 
        colDatat2 = new ColorCombo(false, WStackPage_9, "colDatat2");
279
 
        colDatat2->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
280
 
        WStackPage9Layout->addMultiCellWidget( colDatat2, 2, 2, 1, 2 );
 
307
        colDatat2 = new ColorCombo(false, WStackPage_9);
 
308
        colDatat2->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
309
        WStackPage9Layout->addWidget( colDatat2, 2, 1, 1, 2 );
281
310
        shadet2 = new ShadeButton(WStackPage_9);
282
311
        shadet2->setValue(100);
283
312
        WStackPage9Layout->addWidget( shadet2, 3, 1 );
284
313
        CurveT2 = new CurveWidget( NULL );
285
 
        CurveT2Pop = new QPopupMenu();
286
 
        CurveT2Pop->insertItem(CurveT2);
287
 
        CurveT2Button = new QToolButton( WStackPage_9, "CurveT2Button" );
 
314
        CurveT2Pop = new QMenu();
 
315
        CurveT2Act = new QWidgetAction(this);
 
316
        CurveT2Act->setDefaultWidget(CurveT2);
 
317
        CurveT2Pop->addAction(CurveT2Act);
 
318
        CurveT2Button = new QToolButton( WStackPage_9 );
288
319
        CurveT2Button->setText( "" );
289
320
        CurveT2Button->setMaximumSize( QSize( 22, 22 ) );
290
 
        CurveT2Button->setPixmap(loadIcon("curve.png"));
291
 
        CurveT2Button->setPopup(CurveT2Pop);
292
 
        CurveT2Button->setPopupDelay(40);
 
321
        CurveT2Button->setIcon(loadIcon("curve.png"));
 
322
        CurveT2Button->setMenu(CurveT2Pop);
 
323
        CurveT2Button->setPopupMode(QToolButton::InstantPopup);
293
324
        WStackPage9Layout->addWidget( CurveT2Button, 3, 2 );
294
 
        textLabel3t = new QLabel( tr( "Color 3:" ), WStackPage_9, "textLabel3t" );
 
325
        textLabel3t = new QLabel( tr( "Color 3:" ), WStackPage_9 );
295
326
        WStackPage9Layout->addWidget( textLabel3t, 4, 0 );
296
 
        colDatat3 = new ColorCombo(false, WStackPage_9, "colDatat3");
297
 
        colDatat3->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
298
 
        WStackPage9Layout->addMultiCellWidget( colDatat3, 4, 4, 1, 2 );
 
327
        colDatat3 = new ColorCombo(false, WStackPage_9);
 
328
        colDatat3->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
329
        WStackPage9Layout->addWidget( colDatat3, 4, 1, 1, 2 );
299
330
        shadet3 = new ShadeButton(WStackPage_9);
300
331
        shadet3->setValue(100);
301
332
        WStackPage9Layout->addWidget( shadet3, 5, 1 );
302
333
        CurveT3 = new CurveWidget( NULL );
303
 
        CurveT3Pop = new QPopupMenu();
304
 
        CurveT3Pop->insertItem(CurveT3);
305
 
        CurveT3Button = new QToolButton( WStackPage_9, "CurveT3Button" );
 
334
        CurveT3Act = new QWidgetAction(this);
 
335
        CurveT3Pop = new QMenu();
 
336
        CurveT3Act->setDefaultWidget(CurveT3);
 
337
        CurveT3Pop->addAction(CurveT3Act);
 
338
        CurveT3Button = new QToolButton( WStackPage_9 );
306
339
        CurveT3Button->setText( "" );
307
340
        CurveT3Button->setMaximumSize( QSize( 22, 22 ) );
308
 
        CurveT3Button->setPixmap(loadIcon("curve.png"));
309
 
        CurveT3Button->setPopup(CurveT3Pop);
310
 
        CurveT3Button->setPopupDelay(40);
 
341
        CurveT3Button->setIcon(loadIcon("curve.png"));
 
342
        CurveT3Button->setMenu(CurveT3Pop);
 
343
        CurveT3Button->setPopupMode(QToolButton::InstantPopup);
311
344
        WStackPage9Layout->addWidget( CurveT3Button, 5, 2 );
312
 
        optionStack->addWidget( WStackPage_9, 8 );
 
345
        optionStack->addWidget( WStackPage_9 );
313
346
 
314
 
        WStackPage_10 = new QWidget( optionStack, "WStackPage_10" );
315
 
        WStackPage10Layout = new QGridLayout( WStackPage_10, 1, 1, 4, 5, "WStackPage10Layout");
316
 
        textLabel1q = new QLabel( tr( "Color 1:" ), WStackPage_10, "textLabel1q" );
 
347
        WStackPage_10 = new QWidget( optionStack );
 
348
        WStackPage10Layout = new QGridLayout( WStackPage_10 );
 
349
        WStackPage10Layout->setMargin(4);
 
350
        WStackPage10Layout->setSpacing(5);
 
351
        textLabel1q = new QLabel( tr( "Color 1:" ), WStackPage_10 );
317
352
        WStackPage10Layout->addWidget( textLabel1q, 0, 0 );
318
 
        colDataq1 = new ColorCombo(false, WStackPage_10, "colDataq1");
319
 
        colDataq1->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
320
 
        WStackPage10Layout->addMultiCellWidget( colDataq1, 0, 0, 1, 2 );
 
353
        colDataq1 = new ColorCombo(false, WStackPage_10);
 
354
        colDataq1->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
355
        WStackPage10Layout->addWidget( colDataq1, 0, 1, 1, 2 );
321
356
        shadeq1 = new ShadeButton(WStackPage_10);
322
357
        shadeq1->setValue(100);
323
358
        WStackPage10Layout->addWidget( shadeq1, 1, 1 );
324
359
        CurveQ1 = new CurveWidget( NULL );
325
 
        CurveQ1Pop = new QPopupMenu();
326
 
        CurveQ1Pop->insertItem(CurveQ1);
327
 
        CurveQ1Button = new QToolButton( WStackPage_10, "CurveQ1Button" );
 
360
        CurveQ1Pop = new QMenu();
 
361
        CurveQ1Act = new QWidgetAction(this);
 
362
        CurveQ1Act->setDefaultWidget(CurveQ1);
 
363
        CurveQ1Pop->addAction(CurveQ1Act);
 
364
        CurveQ1Button = new QToolButton( WStackPage_10 );
328
365
        CurveQ1Button->setText( "" );
329
366
        CurveQ1Button->setMaximumSize( QSize( 22, 22 ) );
330
 
        CurveQ1Button->setPixmap(loadIcon("curve.png"));
331
 
        CurveQ1Button->setPopup(CurveQ1Pop);
332
 
        CurveQ1Button->setPopupDelay(40);
 
367
        CurveQ1Button->setIcon(loadIcon("curve.png"));
 
368
        CurveQ1Button->setMenu(CurveQ1Pop);
 
369
        CurveQ1Button->setPopupMode(QToolButton::InstantPopup);
333
370
        WStackPage10Layout->addWidget( CurveQ1Button, 1, 2 );
334
 
        textLabel2q = new QLabel( tr( "Color 2:" ), WStackPage_10, "textLabel2q" );
 
371
        textLabel2q = new QLabel( tr( "Color 2:" ), WStackPage_10 );
335
372
        WStackPage10Layout->addWidget( textLabel2q, 2, 0 );
336
 
        colDataq2 = new ColorCombo(false, WStackPage_10, "colDataq2");
337
 
        colDataq2->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
338
 
        WStackPage10Layout->addMultiCellWidget( colDataq2, 2, 2, 1, 2 );
 
373
        colDataq2 = new ColorCombo(false, WStackPage_10);
 
374
        colDataq2->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
375
        WStackPage10Layout->addWidget( colDataq2, 2, 1, 1, 2 );
339
376
        shadeq2 = new ShadeButton(WStackPage_10);
340
377
        shadeq2->setValue(100);
341
378
        WStackPage10Layout->addWidget( shadeq2, 3, 1 );
342
379
        CurveQ2 = new CurveWidget( NULL );
343
 
        CurveQ2Pop = new QPopupMenu();
344
 
        CurveQ2Pop->insertItem(CurveQ2);
345
 
        CurveQ2Button = new QToolButton( WStackPage_10, "CurveQ2Button" );
 
380
        CurveQ2Pop = new QMenu();
 
381
        CurveQ2Act = new QWidgetAction(this);
 
382
        CurveQ2Act->setDefaultWidget(CurveQ2);
 
383
        CurveQ2Pop->addAction(CurveQ2Act);
 
384
        CurveQ2Button = new QToolButton( WStackPage_10 );
346
385
        CurveQ2Button->setText( "" );
347
386
        CurveQ2Button->setMaximumSize( QSize( 22, 22 ) );
348
 
        CurveQ2Button->setPixmap(loadIcon("curve.png"));
349
 
        CurveQ2Button->setPopup(CurveQ2Pop);
350
 
        CurveQ2Button->setPopupDelay(40);
 
387
        CurveQ2Button->setIcon(loadIcon("curve.png"));
 
388
        CurveQ2Button->setMenu(CurveQ2Pop);
 
389
        CurveQ2Button->setPopupMode(QToolButton::InstantPopup);
351
390
        WStackPage10Layout->addWidget( CurveQ2Button, 3, 2 );
352
 
        textLabel3q = new QLabel( tr( "Color 3:" ), WStackPage_10, "textLabel3q" );
 
391
        textLabel3q = new QLabel( tr( "Color 3:" ), WStackPage_10 );
353
392
        WStackPage10Layout->addWidget( textLabel3q, 4, 0 );
354
 
        colDataq3 = new ColorCombo(false, WStackPage_10, "colDataq3");
355
 
        colDataq3->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
356
 
        WStackPage10Layout->addMultiCellWidget( colDataq3, 4, 4, 1, 2 );
357
 
        shadeq3 = new ShadeButton(WStackPage_10);
358
 
        shadeq3->setValue(100);
359
 
        WStackPage10Layout->addWidget( shadeq3, 5, 1 );
360
 
        CurveQ3 = new CurveWidget( NULL );
361
 
        CurveQ3Pop = new QPopupMenu();
362
 
        CurveQ3Pop->insertItem(CurveQ3);
363
 
        CurveQ3Button = new QToolButton( WStackPage_10, "CurveQ3Button" );
364
 
        CurveQ3Button->setText( "" );
365
 
        CurveQ3Button->setMaximumSize( QSize( 22, 22 ) );
366
 
        CurveQ3Button->setPixmap(loadIcon("curve.png"));
367
 
        CurveQ3Button->setPopup(CurveQ1Pop);
368
 
        CurveQ3Button->setPopupDelay(40);
369
 
        WStackPage10Layout->addWidget( CurveQ3Button, 5, 2 );
370
 
        textLabel4q = new QLabel( tr( "Color 4:" ), WStackPage_10, "textLabel4q" );
 
393
        colDataqc3 = new ColorCombo(false, WStackPage_10);
 
394
        colDataqc3->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
395
        WStackPage10Layout->addWidget( colDataqc3, 4, 1, 1, 2 );
 
396
        shadeqc3 = new ShadeButton(WStackPage_10);
 
397
        shadeqc3->setValue(100);
 
398
        WStackPage10Layout->addWidget( shadeqc3, 5, 1 );
 
399
        CurveQc3 = new CurveWidget( NULL );
 
400
        CurveQc3Pop = new QMenu();
 
401
        CurveQc3Act = new QWidgetAction(this);
 
402
        CurveQc3Act->setDefaultWidget(CurveQc3);
 
403
        CurveQc3Pop->addAction(CurveQc3Act);
 
404
        CurveQc3Button = new QToolButton( WStackPage_10 );
 
405
        CurveQc3Button->setText( "" );
 
406
        CurveQc3Button->setMaximumSize( QSize( 22, 22 ) );
 
407
        CurveQc3Button->setIcon(loadIcon("curve.png"));
 
408
        CurveQc3Button->setMenu(CurveQc3Pop);
 
409
        CurveQc3Button->setPopupMode(QToolButton::InstantPopup);
 
410
        WStackPage10Layout->addWidget( CurveQc3Button, 5, 2 );
 
411
        textLabel4q = new QLabel( tr( "Color 4:" ), WStackPage_10 );
371
412
        WStackPage10Layout->addWidget( textLabel4q, 6, 0 );
372
 
        colDataq4 = new ColorCombo(false, WStackPage_10, "colDataq4");
373
 
        colDataq4->insertItems(doc->PageColors, ColorCombo::smallPixmaps);
374
 
        WStackPage10Layout->addMultiCellWidget( colDataq4, 6, 6, 1, 2 );
 
413
        colDataq4 = new ColorCombo(false, WStackPage_10);
 
414
        colDataq4->insertItems(doc->PageColors, ColorCombo::fancyPixmaps);
 
415
        WStackPage10Layout->addWidget( colDataq4, 6, 1, 1, 2 );
375
416
        shadeq4 = new ShadeButton(WStackPage_10);
376
417
        shadeq4->setValue(100);
377
418
        WStackPage10Layout->addWidget( shadeq4, 7, 1 );
378
419
        CurveQ4 = new CurveWidget( NULL );
379
 
        CurveQ4Pop = new QPopupMenu();
380
 
        CurveQ4Pop->insertItem(CurveQ4);
381
 
        CurveQ4Button = new QToolButton( WStackPage_10, "CurveQ4Button" );
 
420
        CurveQ4Pop = new QMenu();
 
421
        CurveQ4Act = new QWidgetAction(this);
 
422
        CurveQ4Act->setDefaultWidget(CurveQ4);
 
423
        CurveQ4Pop->addAction(CurveQ4Act);
 
424
        CurveQ4Button = new QToolButton( WStackPage_10 );
382
425
        CurveQ4Button->setText( "" );
383
426
        CurveQ4Button->setMaximumSize( QSize( 22, 22 ) );
384
 
        CurveQ4Button->setPixmap(loadIcon("curve.png"));
385
 
        CurveQ4Button->setPopup(CurveQ1Pop);
386
 
        CurveQ4Button->setPopupDelay(40);
 
427
        CurveQ4Button->setIcon(loadIcon("curve.png"));
 
428
        CurveQ4Button->setMenu(CurveQ4Pop);
 
429
        CurveQ4Button->setPopupMode(QToolButton::InstantPopup);
387
430
        WStackPage10Layout->addWidget( CurveQ4Button, 7, 2 );
388
 
        optionStack->addWidget( WStackPage_10, 9 );
 
431
        optionStack->addWidget( WStackPage_10 );
389
432
 
390
 
        WStackPage_11 = new QWidget( optionStack, "WStackPage_11" );
391
 
        WStackPage11Layout = new QVBoxLayout( WStackPage_11, 5, 5, "WStackPageLayout");
 
433
        WStackPage_11 = new QWidget( optionStack );
 
434
        WStackPage11Layout = new QVBoxLayout( WStackPage_11 );
 
435
        WStackPage11Layout->setMargin(5);
 
436
        WStackPage11Layout->setSpacing(5);
392
437
        WStackPage11Layout->setAlignment( Qt::AlignTop );
393
438
        Kdisplay = new CurveWidget(WStackPage_11);
394
439
        WStackPage11Layout->addWidget( Kdisplay );
395
 
        optionStack->addWidget( WStackPage_11, 10 );
 
440
        optionStack->addWidget( WStackPage_11 );
396
441
 
397
442
        layout16->addWidget( optionStack );
398
443
        EffectsDialogLayout->addLayout( layout16 );
399
444
 
400
 
        layout18 = new QVBoxLayout( 0, 0, 0, "layout18");
401
 
        layout10 = new QGridLayout( 0, 1, 1, 0, 5, "layout10");
402
 
        layout2 = new QVBoxLayout( 0, 0, 5, "layout2");
403
 
        textLabel1 = new QLabel( this, "textLabel1" );
 
445
        layout18 = new QVBoxLayout;
 
446
        layout18->setMargin(0);
 
447
        layout18->setSpacing(5);
 
448
        layout10 = new QGridLayout;
 
449
        layout10->setMargin(0);
 
450
        layout10->setSpacing(5);
 
451
        layout2 = new QVBoxLayout;
 
452
        layout2->setMargin(0);
 
453
        layout2->setSpacing(5);
 
454
        textLabel1 = new QLabel( this );
404
455
        textLabel1->setText( tr( "Available Effects" ) );
405
456
        layout2->addWidget( textLabel1 );
406
 
        availableEffects = new QListBox( this, "availableEffects" );
 
457
        availableEffects = new QListWidget( this );
407
458
        availableEffects->clear();
408
 
        
409
 
        new EffectListItem(availableEffects, tr("Blur"));
410
 
        new EffectListItem(availableEffects, tr("Brightness"));
411
 
        new EffectListItem(availableEffects, tr("Colorize"));
412
 
        new EffectListItem(availableEffects, tr("Duotone"));
413
 
        new EffectListItem(availableEffects, tr("Tritone"));
414
 
        new EffectListItem(availableEffects, tr("Quadtone"));
415
 
        new EffectListItem(availableEffects, tr("Contrast"));
416
 
        new EffectListItem(availableEffects, tr("Grayscale"));
417
 
        new EffectListItem(availableEffects, tr("Curves"));
418
 
        new EffectListItem(availableEffects, tr("Invert"));
419
 
        new EffectListItem(availableEffects, tr("Posterize"));
420
 
        new EffectListItem(availableEffects, tr("Sharpen"));
421
 
/*
422
 
        availableEffects->insertItem( tr("Blur"));
423
 
        availableEffects->insertItem( tr("Brightness"));
424
 
        availableEffects->insertItem( tr("Colorize"));
425
 
        availableEffects->insertItem( tr("Duotone"));
426
 
        availableEffects->insertItem( tr("Tritone"));
427
 
        availableEffects->insertItem( tr("Quadtone"));
428
 
        availableEffects->insertItem( tr("Contrast"));
429
 
        availableEffects->insertItem( tr("Grayscale"));
430
 
        availableEffects->insertItem( tr("Curves"));
431
 
        availableEffects->insertItem( tr("Invert"));
432
 
        availableEffects->insertItem( tr("Posterize"));
433
 
        availableEffects->insertItem( tr("Sharpen"));
434
 
*/
 
459
        availableEffects->addItem( tr("Blur"));
 
460
        availableEffects->addItem( tr("Brightness"));
 
461
        availableEffects->addItem( tr("Colorize"));
 
462
        availableEffects->addItem( tr("Duotone"));
 
463
        availableEffects->addItem( tr("Tritone"));
 
464
        availableEffects->addItem( tr("Quadtone"));
 
465
        availableEffects->addItem( tr("Contrast"));
 
466
        availableEffects->addItem( tr("Grayscale"));
 
467
        availableEffects->addItem( tr("Curves"));
 
468
        availableEffects->addItem( tr("Invert"));
 
469
        availableEffects->addItem( tr("Posterize"));
 
470
        availableEffects->addItem( tr("Sharpen"));
 
471
 
435
472
        availableEffects->setMinimumSize(fontMetrics().width( tr( "Available Effects" ))+40, 180);
436
473
        layout2->addWidget( availableEffects );
437
474
        layout10->addLayout( layout2, 0, 0 );
438
475
 
439
 
        layout1 = new QVBoxLayout( 0, 0, 5, "layout1");
440
 
        QSpacerItem* spacer1 = new QSpacerItem( 21, 61, QSizePolicy::Minimum, QSizePolicy::Expanding );
 
476
        layout1 = new QVBoxLayout;
 
477
        layout1->setMargin(0);
 
478
        layout1->setSpacing(5);
 
479
        QSpacerItem* spacer1 = new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding );
441
480
        layout1->addItem( spacer1 );
442
 
        toEffects = new QPushButton( this, "toEffects" );
 
481
        toEffects = new QPushButton( this );
443
482
        toEffects->setText( tr( ">>" ) );
444
483
        toEffects->setEnabled(false);
445
484
        layout1->addWidget( toEffects );
446
 
        fromEffects = new QPushButton( this, "fromEffects" );
 
485
        fromEffects = new QPushButton( this );
447
486
        fromEffects->setText( tr( "<<" ) );
448
487
        fromEffects->setEnabled(false);
449
488
        layout1->addWidget( fromEffects );
450
 
        QSpacerItem* spacer2 = new QSpacerItem( 31, 81, QSizePolicy::Minimum, QSizePolicy::Expanding );
 
489
        QSpacerItem* spacer2 = new QSpacerItem( 1, 1, QSizePolicy::Minimum, QSizePolicy::Expanding );
451
490
        layout1->addItem( spacer2 );
452
491
        layout10->addLayout( layout1, 0, 1 );
453
492
 
454
 
        layout8 = new QVBoxLayout( 0, 0, 5, "layout8");
455
 
        textLabel2 = new QLabel( this, "textLabel2" );
 
493
        layout8 = new QVBoxLayout;
 
494
        layout8->setMargin(0);
 
495
        layout8->setSpacing(5);
 
496
        textLabel2 = new QLabel( this );
456
497
        textLabel2->setText( tr( "Effects in use" ) );
457
498
        layout8->addWidget( textLabel2 );
458
 
        usedEffects = new QListBox( this, "usedEffects" );
 
499
        usedEffects = new QListWidget( this );
459
500
        usedEffects->setMinimumSize(fontMetrics().width( tr( "Available Effects" ))+40, 180);
460
501
        usedEffects->clear();
461
502
        effectValMap.clear();
462
 
        for (uint a = 0; a < effectsList.count(); ++a)
 
503
        for (int a = 0; a < effectsList.count(); ++a)
463
504
        {
464
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_INVERT)
465
 
                {
466
 
                        usedEffects->insertItem( tr("Invert"));
467
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
468
 
                }
469
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_GRAYSCALE)
470
 
                {
471
 
                        usedEffects->insertItem( tr("Grayscale"));
472
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
473
 
                }
474
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_COLORIZE)
475
 
                {
476
 
                        usedEffects->insertItem( tr("Colorize"));
477
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
478
 
                        availableEffects->item(2)->setSelectable(false);
479
 
                        availableEffects->item(3)->setSelectable(false);
480
 
                        availableEffects->item(4)->setSelectable(false);
481
 
                        availableEffects->item(5)->setSelectable(false);
482
 
                }
483
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_BRIGHTNESS)
484
 
                {
485
 
                        usedEffects->insertItem( tr("Brightness"));
486
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
487
 
                }
488
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_CONTRAST)
489
 
                {
490
 
                        usedEffects->insertItem( tr("Contrast"));
491
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
492
 
                }
493
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_SHARPEN)
494
 
                {
495
 
                        usedEffects->insertItem( tr("Sharpen"));
496
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
497
 
                }
498
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_BLUR)
499
 
                {
500
 
                        usedEffects->insertItem( tr("Blur"));
501
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
502
 
                }
503
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_SOLARIZE)
504
 
                {
505
 
                        usedEffects->insertItem( tr("Posterize"));
506
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
507
 
                }
508
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_DUOTONE)
509
 
                {
510
 
                        usedEffects->insertItem( tr("Duotone"));
511
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
512
 
                        availableEffects->item(2)->setSelectable(false);
513
 
                        availableEffects->item(3)->setSelectable(false);
514
 
                        availableEffects->item(4)->setSelectable(false);
515
 
                        availableEffects->item(5)->setSelectable(false);
516
 
                }
517
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_TRITONE)
518
 
                {
519
 
                        usedEffects->insertItem( tr("Tritone"));
520
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
521
 
                        availableEffects->item(2)->setSelectable(false);
522
 
                        availableEffects->item(3)->setSelectable(false);
523
 
                        availableEffects->item(4)->setSelectable(false);
524
 
                        availableEffects->item(5)->setSelectable(false);
525
 
                }
526
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_QUADTONE)
527
 
                {
528
 
                        usedEffects->insertItem( tr("Quadtone"));
529
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
530
 
                        availableEffects->item(2)->setSelectable(false);
531
 
                        availableEffects->item(3)->setSelectable(false);
532
 
                        availableEffects->item(4)->setSelectable(false);
533
 
                        availableEffects->item(5)->setSelectable(false);
534
 
                }
535
 
                if ((*effectsList.at(a)).effectCode == ScImage::EF_GRADUATE)
536
 
                {
537
 
                        usedEffects->insertItem( tr("Curves"));
538
 
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), (*effectsList.at(a)).effectParameters);
 
505
                if (effectsList.at(a).effectCode == ScImage::EF_INVERT)
 
506
                {
 
507
                        usedEffects->addItem( tr("Invert"));
 
508
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
 
509
                }
 
510
                if (effectsList.at(a).effectCode == ScImage::EF_GRAYSCALE)
 
511
                {
 
512
                        usedEffects->addItem( tr("Grayscale"));
 
513
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
 
514
                }
 
515
                if (effectsList.at(a).effectCode == ScImage::EF_COLORIZE)
 
516
                {
 
517
                        usedEffects->addItem( tr("Colorize"));
 
518
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
519
                        setItemSelectable(availableEffects, 2, false);
 
520
                        setItemSelectable(availableEffects, 3, false);
 
521
                        setItemSelectable(availableEffects, 4, false);
 
522
                        setItemSelectable(availableEffects, 5, false);
 
523
                }
 
524
                if (effectsList.at(a).effectCode == ScImage::EF_BRIGHTNESS)
 
525
                {
 
526
                        usedEffects->addItem( tr("Brightness"));
 
527
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
528
                }
 
529
                if (effectsList.at(a).effectCode == ScImage::EF_CONTRAST)
 
530
                {
 
531
                        usedEffects->addItem( tr("Contrast"));
 
532
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
533
                }
 
534
                if (effectsList.at(a).effectCode == ScImage::EF_SHARPEN)
 
535
                {
 
536
                        usedEffects->addItem( tr("Sharpen"));
 
537
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
538
                }
 
539
                if (effectsList.at(a).effectCode == ScImage::EF_BLUR)
 
540
                {
 
541
                        usedEffects->addItem( tr("Blur"));
 
542
                        QString tmpstr = effectsList.at(a).effectParameters;
 
543
                        double radius;
 
544
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
 
545
                        fp >> radius;
 
546
                        blRadius->setValue(radius / imageScale);
 
547
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), QString("%1 1.0").arg(radius / imageScale));
 
548
                }
 
549
                if (effectsList.at(a).effectCode == ScImage::EF_SOLARIZE)
 
550
                {
 
551
                        usedEffects->addItem( tr("Posterize"));
 
552
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
553
                }
 
554
                if (effectsList.at(a).effectCode == ScImage::EF_DUOTONE)
 
555
                {
 
556
                        usedEffects->addItem( tr("Duotone"));
 
557
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
558
                        setItemSelectable(availableEffects, 2, false);
 
559
                        setItemSelectable(availableEffects, 3, false);
 
560
                        setItemSelectable(availableEffects, 4, false);
 
561
                        setItemSelectable(availableEffects, 5, false);
 
562
                }
 
563
                if (effectsList.at(a).effectCode == ScImage::EF_TRITONE)
 
564
                {
 
565
                        usedEffects->addItem( tr("Tritone"));
 
566
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
567
                        setItemSelectable(availableEffects, 2, false);
 
568
                        setItemSelectable(availableEffects, 3, false);
 
569
                        setItemSelectable(availableEffects, 4, false);
 
570
                        setItemSelectable(availableEffects, 5, false);
 
571
                }
 
572
                if (effectsList.at(a).effectCode == ScImage::EF_QUADTONE)
 
573
                {
 
574
                        usedEffects->addItem( tr("Quadtone"));
 
575
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
 
576
                        setItemSelectable(availableEffects, 2, false);
 
577
                        setItemSelectable(availableEffects, 3, false);
 
578
                        setItemSelectable(availableEffects, 4, false);
 
579
                        setItemSelectable(availableEffects, 5, false);
 
580
                }
 
581
                if (effectsList.at(a).effectCode == ScImage::EF_GRADUATE)
 
582
                {
 
583
                        usedEffects->addItem( tr("Curves"));
 
584
                        effectValMap.insert(usedEffects->item(usedEffects->count()-1), effectsList.at(a).effectParameters);
539
585
                }
540
586
        }
541
587
        layout8->addWidget( usedEffects );
542
 
        layout7 = new QHBoxLayout( 0, 0, 5, "layout7");
543
 
        QSpacerItem* spacer4 = new QSpacerItem( 10, 10, QSizePolicy::Expanding, QSizePolicy::Minimum );
 
588
        layout7 = new QHBoxLayout;
 
589
        layout7->setMargin(0);
 
590
        layout7->setSpacing(5);
 
591
        QSpacerItem* spacer4 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum );
544
592
        layout7->addItem( spacer4 );
545
 
        effectUp = new QPushButton( this, "effectUp" );
 
593
        effectUp = new QPushButton( this );
546
594
        effectUp->setText( "" );
547
 
        effectUp->setPixmap(loadIcon("16/go-up.png"));
 
595
        effectUp->setIcon(loadIcon("16/go-up.png"));
548
596
        effectUp->setEnabled(false);
549
597
        layout7->addWidget( effectUp );
550
 
        effectDown = new QPushButton( this, "effectDown" );
 
598
        effectDown = new QPushButton( this );
551
599
        effectDown->setText( "" );
552
 
        effectDown->setPixmap(loadIcon("16/go-down.png"));
 
600
        effectDown->setIcon(loadIcon("16/go-down.png"));
553
601
        effectDown->setEnabled(false);
554
602
        layout7->addWidget( effectDown );
555
 
        QSpacerItem* spacer5 = new QSpacerItem( 10, 10, QSizePolicy::Expanding, QSizePolicy::Minimum );
 
603
        QSpacerItem* spacer5 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum );
556
604
        layout7->addItem( spacer5 );
557
605
        layout8->addLayout( layout7 );
558
606
        layout10->addLayout( layout8, 0, 2 );
559
607
        layout18->addLayout( layout10 );
560
608
 
561
 
        layout9 = new QHBoxLayout( 0, 0, 5, "layout9");
562
 
        QSpacerItem* spacer3 = new QSpacerItem( 111, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
 
609
        layout9 = new QHBoxLayout;
 
610
        layout9->setMargin(0);
 
611
        layout9->setSpacing(5);
 
612
        QSpacerItem* spacer3 = new QSpacerItem( 1, 1, QSizePolicy::Expanding, QSizePolicy::Minimum );
563
613
        layout9->addItem( spacer3 );
564
614
 
565
 
        okButton = new QPushButton( this, "okButton" );
 
615
        okButton = new QPushButton( this );
566
616
        okButton->setText( tr( "OK" ) );
567
617
        layout9->addWidget( okButton );
568
618
 
569
 
        cancelButton = new QPushButton( this, "cancelButton" );
 
619
        cancelButton = new QPushButton( this );
570
620
        cancelButton->setText( tr( "Cancel" ) );
571
621
        layout9->addWidget( cancelButton );
572
622
        layout18->addLayout( layout9 );
573
623
        EffectsDialogLayout->addLayout( layout18 );
574
 
        optionStack->raiseWidget(0);
 
624
        optionStack->setCurrentIndex(0);
575
625
        createPreview();
576
 
        availableEffects->repaintContents();
 
626
        usedEffects->clearSelection();
 
627
        availableEffects->clearSelection();
577
628
        resize( minimumSizeHint() );
578
 
        clearWState( WState_Polished );
579
629
 
580
630
        // signals and slots connections
581
631
        connect( okButton, SIGNAL( clicked() ), this, SLOT( leaveOK() ) );
582
632
        connect( cancelButton, SIGNAL( clicked() ), this, SLOT( reject() ) );
583
 
        connect( usedEffects, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
584
 
        connect( usedEffects, SIGNAL( doubleClicked(QListBoxItem*) ), this, SLOT( moveFromEffects() ) );
585
 
        connect( availableEffects, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( selectAvailEffect(QListBoxItem*) ) );
586
 
        connect( availableEffects, SIGNAL( doubleClicked(QListBoxItem*) ), this, SLOT( selectAvailEffectDbl(QListBoxItem*) ) );
 
633
        connect( usedEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
 
634
        connect( usedEffects, SIGNAL( itemDoubleClicked(QListWidgetItem*) ), this, SLOT( moveFromEffects() ) );
 
635
        connect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
 
636
        connect( availableEffects, SIGNAL( itemDoubleClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffectDbl(QListWidgetItem*) ) );
587
637
        connect( toEffects, SIGNAL( clicked() ), this, SLOT( moveToEffects() ) );
588
638
        connect( fromEffects, SIGNAL( clicked() ), this, SLOT( moveFromEffects() ) );
589
639
        connect( effectUp, SIGNAL( clicked() ), this, SLOT( moveEffectUp() ) );
604
654
        connect( shadeq1, SIGNAL(clicked()), this, SLOT(createPreview()));
605
655
        connect( colDataq2, SIGNAL(activated(int)), this, SLOT( createPreview()));
606
656
        connect( shadeq2, SIGNAL(clicked()), this, SLOT(createPreview()));
607
 
        connect( colDataq3, SIGNAL(activated(int)), this, SLOT( createPreview()));
608
 
        connect( shadeq3, SIGNAL(clicked()), this, SLOT(createPreview()));
 
657
        connect( colDataqc3, SIGNAL(activated(int)), this, SLOT( createPreview()));
 
658
        connect( shadeqc3, SIGNAL(clicked()), this, SLOT(createPreview()));
609
659
        connect( colDataq4, SIGNAL(activated(int)), this, SLOT( createPreview()));
610
660
        connect( shadeq4, SIGNAL(clicked()), this, SLOT(createPreview()));
611
661
        connect( brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(updateBright(int)));
612
662
        connect( brightnessSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
613
663
        connect( contrastSlider, SIGNAL(valueChanged(int)), this, SLOT(updateContrast(int)));
614
664
        connect( contrastSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
615
 
        connect( shRadius, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
616
 
        connect( shValue, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
617
 
        connect( blRadius, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
 
665
        connect( shRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
 
666
        connect( shValue, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
 
667
        connect( blRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
618
668
        connect( solarizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateSolarize(int)));
619
669
        connect( solarizeSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
620
670
        connect( Kdisplay->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
625
675
        connect( CurveT3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
626
676
        connect( CurveQ1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
627
677
        connect( CurveQ2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
628
 
        connect( CurveQ3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
 
678
        connect( CurveQc3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
629
679
        connect( CurveQ4->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
630
680
        tim.start();
631
681
}
632
682
 
 
683
void EffectsDialog::setItemSelectable(QListWidget* widget, int itemNr, bool enable)
 
684
{
 
685
        if (enable)
 
686
                widget->item(itemNr)->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
 
687
        else
 
688
                widget->item(itemNr)->setFlags(0);
 
689
}
 
690
 
633
691
void EffectsDialog::leaveOK()
634
692
{
635
693
        saveValues(true);
684
742
{
685
743
        selectEffectHelper(final);
686
744
        effectsList.clear();
687
 
        struct ScImage::imageEffect ef;
688
 
        for (uint e = 0; e < usedEffects->count(); ++e)
 
745
        struct ImageEffect ef;
 
746
        for (int e = 0; e < usedEffects->count(); ++e)
689
747
        {
690
748
                if (usedEffects->item(e)->text() == tr("Invert"))
691
749
                {
720
778
                if (usedEffects->item(e)->text() == tr("Blur"))
721
779
                {
722
780
                        ef.effectCode = ScImage::EF_BLUR;
723
 
                        ef.effectParameters = effectValMap[usedEffects->item(e)];
 
781
                        if (final)
 
782
                                ef.effectParameters = QString("%1 1.0").arg(blRadius->value() * imageScale);
 
783
                        else
 
784
                                ef.effectParameters = QString("%1 1.0").arg(blRadius->value());
724
785
                }
725
786
                if (usedEffects->item(e)->text() == tr("Posterize"))
726
787
                {
751
812
        }
752
813
}
753
814
 
754
 
void EffectsDialog::selectAvailEffectDbl(QListBoxItem* c)
 
815
void EffectsDialog::selectAvailEffectDbl(QListWidgetItem* c)
755
816
{
756
817
        if (c)
757
818
        {
758
 
                if (!c->isSelectable())
 
819
                if (!(c->flags() & Qt::ItemIsSelectable))
759
820
                        return;
760
821
                else
761
822
                        moveToEffects();
764
825
 
765
826
void EffectsDialog::moveToEffects()
766
827
{
767
 
        usedEffects->insertItem(availableEffects->currentText());
768
 
        if (availableEffects->currentText() == tr("Invert"))
769
 
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
770
 
        if (availableEffects->currentText() == tr("Grayscale"))
771
 
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
772
 
        if (availableEffects->currentText() == tr("Brightness"))
773
 
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0");
774
 
        if (availableEffects->currentText() == tr("Contrast"))
775
 
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0");
776
 
        if (availableEffects->currentText() == tr("Sharpen"))
777
 
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0 1");
778
 
        if (availableEffects->currentText() == tr("Blur"))
779
 
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0 1");
780
 
        if (availableEffects->currentText() == tr("Posterize"))
 
828
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
 
829
        usedEffects->addItem(availableEffects->currentItem()->text());
 
830
        if (availableEffects->currentItem()->text() == tr("Invert"))
 
831
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
 
832
        if (availableEffects->currentItem()->text() == tr("Grayscale"))
 
833
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "");
 
834
        if (availableEffects->currentItem()->text() == tr("Brightness"))
 
835
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0");
 
836
        if (availableEffects->currentItem()->text() == tr("Contrast"))
 
837
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0");
 
838
        if (availableEffects->currentItem()->text() == tr("Sharpen"))
 
839
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0 1");
 
840
        if (availableEffects->currentItem()->text() == tr("Blur"))
 
841
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "0 1");
 
842
        if (availableEffects->currentItem()->text() == tr("Posterize"))
781
843
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "255");
782
 
        if (availableEffects->currentText() == tr("Colorize"))
 
844
        if (availableEffects->currentItem()->text() == tr("Colorize"))
783
845
        {
784
846
                ColorList::Iterator it;
785
847
                it = doc->PageColors.begin();
786
848
                QString efval = it.key()+"\n100";
787
849
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
788
 
                availableEffects->item(2)->setSelectable(false);
789
 
                availableEffects->item(3)->setSelectable(false);
790
 
                availableEffects->item(4)->setSelectable(false);
791
 
                availableEffects->item(5)->setSelectable(false);
 
850
                setItemSelectable(availableEffects, 2, false);
 
851
                setItemSelectable(availableEffects, 3, false);
 
852
                setItemSelectable(availableEffects, 4, false);
 
853
                setItemSelectable(availableEffects, 5, false);
792
854
        }
793
 
        if (availableEffects->currentText() == tr("Duotone"))
 
855
        if (availableEffects->currentItem()->text() == tr("Duotone"))
794
856
        {
795
857
                ColorList::Iterator it;
796
858
                it = doc->PageColors.begin();
797
859
                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";
798
860
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
799
 
                availableEffects->item(2)->setSelectable(false);
800
 
                availableEffects->item(3)->setSelectable(false);
801
 
                availableEffects->item(4)->setSelectable(false);
802
 
                availableEffects->item(5)->setSelectable(false);
 
861
                setItemSelectable(availableEffects, 2, false);
 
862
                setItemSelectable(availableEffects, 3, false);
 
863
                setItemSelectable(availableEffects, 4, false);
 
864
                setItemSelectable(availableEffects, 5, false);
803
865
        }
804
 
        if (availableEffects->currentText() == tr("Tritone"))
 
866
        if (availableEffects->currentItem()->text() == tr("Tritone"))
805
867
        {
806
868
                ColorList::Iterator it;
807
869
                it = doc->PageColors.begin();
808
870
                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";
809
871
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
810
 
                availableEffects->item(2)->setSelectable(false);
811
 
                availableEffects->item(3)->setSelectable(false);
812
 
                availableEffects->item(4)->setSelectable(false);
813
 
                availableEffects->item(5)->setSelectable(false);
 
872
                setItemSelectable(availableEffects, 2, false);
 
873
                setItemSelectable(availableEffects, 3, false);
 
874
                setItemSelectable(availableEffects, 4, false);
 
875
                setItemSelectable(availableEffects, 5, false);
814
876
        }
815
 
        if (availableEffects->currentText() == tr("Quadtone"))
 
877
        if (availableEffects->currentItem()->text() == tr("Quadtone"))
816
878
        {
817
879
                ColorList::Iterator it;
818
880
                it = doc->PageColors.begin();
819
881
                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";
820
882
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), efval);
821
 
                availableEffects->item(2)->setSelectable(false);
822
 
                availableEffects->item(3)->setSelectable(false);
823
 
                availableEffects->item(4)->setSelectable(false);
824
 
                availableEffects->item(5)->setSelectable(false);
 
883
                setItemSelectable(availableEffects, 2, false);
 
884
                setItemSelectable(availableEffects, 3, false);
 
885
                setItemSelectable(availableEffects, 4, false);
 
886
                setItemSelectable(availableEffects, 5, false);
825
887
        }
826
 
        if (availableEffects->currentText() == tr("Curves"))
 
888
        if (availableEffects->currentItem()->text() == tr("Curves"))
827
889
                effectValMap.insert(usedEffects->item(usedEffects->count()-1), "2 0.0 0.0 1.0 1.0 0");
828
 
        disconnect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
829
890
        usedEffects->setCurrentItem(usedEffects->item(usedEffects->count()-1));
830
891
        selectEffect(usedEffects->item(usedEffects->count()-1));
831
 
        connect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
 
892
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
832
893
        createPreview();
833
 
        availableEffects->repaintContents();
834
894
}
835
895
 
836
896
void EffectsDialog::moveFromEffects()
837
897
{
838
 
        disconnect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
839
 
        if ((usedEffects->currentText() == tr("Colorize")) || (usedEffects->currentText() == tr("Duotone")) || (usedEffects->currentText() == tr("Tritone")) || (usedEffects->currentText() == tr("Quadtone")))
 
898
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
 
899
        if ((usedEffects->currentItem()->text() == tr("Colorize")) || (usedEffects->currentItem()->text() == tr("Duotone")) || (usedEffects->currentItem()->text() == tr("Tritone")) || (usedEffects->currentItem()->text() == tr("Quadtone")))
840
900
        {
841
 
                availableEffects->item(2)->setSelectable(true);
842
 
                availableEffects->item(3)->setSelectable(true);
843
 
                availableEffects->item(4)->setSelectable(true);
844
 
                availableEffects->item(5)->setSelectable(true);
845
 
                availableEffects->repaintContents();
 
901
                setItemSelectable(availableEffects, 2, true);
 
902
                setItemSelectable(availableEffects, 3, true);
 
903
                setItemSelectable(availableEffects, 4, true);
 
904
                setItemSelectable(availableEffects, 5, true);
846
905
        }
847
 
        effectValMap.remove(usedEffects->item(usedEffects->currentItem()));
848
 
        usedEffects->removeItem(usedEffects->currentItem());
 
906
        effectValMap.remove(usedEffects->currentItem());
 
907
        int curr = usedEffects->currentRow();
 
908
        QListWidgetItem *it = usedEffects->takeItem(curr);
 
909
        delete it;
849
910
        currentOptions = 0;
 
911
        usedEffects->clearSelection();
850
912
        if (usedEffects->count() == 0)
 
913
        {
851
914
                fromEffects->setEnabled(false);
 
915
                toEffects->setEnabled(false);
 
916
                selectEffectHelper();
 
917
                optionStack->setCurrentIndex(0);
 
918
                disconnect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
 
919
                availableEffects->clearSelection();
 
920
                connect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
 
921
        }
 
922
        else
 
923
        {
 
924
                usedEffects->setCurrentItem(usedEffects->item(qMax(curr-1, 0)));
 
925
                usedEffects->currentItem()->setSelected(true);
 
926
                selectEffect(usedEffects->currentItem());
 
927
        }
852
928
        if (usedEffects->count() < 2)
853
929
        {
854
930
                effectUp->setEnabled(false);
855
931
                effectDown->setEnabled(false);
856
932
        }
857
 
        usedEffects->setSelected(usedEffects->item(usedEffects->currentItem()), true);
858
 
        selectEffect(usedEffects->item(usedEffects->currentItem()));
859
933
        createPreview();
860
 
        connect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
 
934
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
861
935
}
862
936
 
863
937
void EffectsDialog::moveEffectUp()
864
938
{
865
 
        int curr = usedEffects->currentItem();
 
939
        int curr = usedEffects->currentRow();
866
940
        if (curr == 0)
867
941
                return;
868
 
        disconnect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
869
 
        usedEffects->clearSelection();
870
 
        QListBoxItem *it = usedEffects->item(curr);
871
 
        usedEffects->takeItem(it);
872
 
        usedEffects->insertItem(it, curr-1);
 
942
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
 
943
        QListWidgetItem *it = usedEffects->takeItem(curr);
 
944
        usedEffects->insertItem(curr-1, it);
873
945
        usedEffects->setCurrentItem(it);
874
 
        selectEffect(usedEffects->item(usedEffects->currentItem()));
 
946
        selectEffect(usedEffects->currentItem());
875
947
        createPreview();
876
 
        connect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
 
948
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
877
949
}
878
950
 
879
951
void EffectsDialog::moveEffectDown()
880
952
{
881
 
        int curr = usedEffects->currentItem();
 
953
        int curr = usedEffects->currentRow();
882
954
        if (curr == static_cast<int>(usedEffects->count())-1)
883
955
                return;
884
 
        disconnect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
885
 
        usedEffects->clearSelection();
886
 
        QListBoxItem *it = usedEffects->item(curr);
887
 
        usedEffects->takeItem(it);
888
 
        usedEffects->insertItem(it, curr+1);
 
956
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
 
957
        QListWidgetItem *it = usedEffects->takeItem(curr);
 
958
        usedEffects->insertItem(curr+1, it);
889
959
        usedEffects->setCurrentItem(it);
890
 
        selectEffect(usedEffects->item(usedEffects->currentItem()));
 
960
        selectEffect(usedEffects->currentItem());
891
961
        createPreview();
892
 
        connect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
 
962
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
893
963
}
894
964
 
895
 
void EffectsDialog::selectEffect(QListBoxItem* c)
 
965
void EffectsDialog::selectEffect(QListWidgetItem* c)
896
966
{
897
967
        toEffects->setEnabled(false);
898
968
        selectEffectHelper();
905
975
                        effectDown->setEnabled(true);
906
976
                        if (usedEffects->currentItem() == 0)
907
977
                                effectUp->setEnabled(false);
908
 
                        if (usedEffects->currentItem() == static_cast<int>(usedEffects->count())-1)
 
978
                        if (usedEffects->currentRow() == static_cast<int>(usedEffects->count())-1)
909
979
                                effectDown->setEnabled(false);
910
980
                }
911
981
                if (c->text() == tr("Grayscale"))
912
 
                        optionStack->raiseWidget(0);
 
982
                        optionStack->setCurrentIndex(0);
913
983
                else if (c->text() == tr("Invert"))
914
 
                        optionStack->raiseWidget(0);
 
984
                        optionStack->setCurrentIndex(0);
915
985
                else if (c->text() == tr("Colorize"))
916
986
                {
917
987
                        disconnect( colData, SIGNAL(activated(int)), this, SLOT( createPreview()));
919
989
                        QString tmpstr = effectValMap[c];
920
990
                        QString col;
921
991
                        int shading;
922
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
923
 
                        fp >> col;
 
992
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
 
993
                //      fp >> col;
 
994
                        col = fp.readLine();
924
995
                        fp >> shading;
925
 
                        colData->setCurrentText(col);
 
996
                        setCurrentComboItem(colData, col);
926
997
                        shade->setValue(shading);
927
 
                        optionStack->raiseWidget(1);
 
998
                        optionStack->setCurrentIndex(1);
928
999
                        connect( colData, SIGNAL(activated(int)), this, SLOT( createPreview()));
929
1000
                        connect( shade, SIGNAL(clicked()), this, SLOT(createPreview()));
930
1001
                }
939
1010
                        QString tmpstr = effectValMap[c];
940
1011
                        QString col1, col2;
941
1012
                        int shading1, shading2;
942
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1013
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
943
1014
                        col1 = fp.readLine();
944
1015
                        col2 = fp.readLine();
945
1016
                        fp >> shading1;
946
1017
                        fp >> shading2;
947
 
                        colData1->setCurrentText(col1);
 
1018
                        setCurrentComboItem(colData1, col1);
948
1019
                        shade1->setValue(shading1);
949
 
                        colData2->setCurrentText(col2);
 
1020
                        setCurrentComboItem(colData2, col2);
950
1021
                        shade2->setValue(shading2);
951
1022
                        int numVals;
952
1023
                        double xval, yval;
974
1045
                        CurveD2->cDisplay->setCurve(curve);
975
1046
                        fp >> lin;
976
1047
                        CurveD2->setLinear(lin);
977
 
                        optionStack->raiseWidget(7);
 
1048
                        optionStack->setCurrentIndex(7);
978
1049
                        connect( colData1, SIGNAL(activated(int)), this, SLOT( createPreview()));
979
1050
                        connect( shade1, SIGNAL(clicked()), this, SLOT(createPreview()));
980
1051
                        connect( colData2, SIGNAL(activated(int)), this, SLOT( createPreview()));
996
1067
                        QString tmpstr = effectValMap[c];
997
1068
                        QString col1, col2, col3;
998
1069
                        int shading1, shading2, shading3;
999
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1070
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1000
1071
                        col1 = fp.readLine();
1001
1072
                        col2 = fp.readLine();
1002
1073
                        col3 = fp.readLine();
1003
1074
                        fp >> shading1;
1004
1075
                        fp >> shading2;
1005
1076
                        fp >> shading3;
1006
 
                        colDatat1->setCurrentText(col1);
 
1077
                        setCurrentComboItem(colDatat1, col1);
1007
1078
                        shadet1->setValue(shading1);
1008
 
                        colDatat2->setCurrentText(col2);
 
1079
                        setCurrentComboItem(colDatat2, col2);
1009
1080
                        shadet2->setValue(shading2);
1010
 
                        colDatat3->setCurrentText(col3);
 
1081
                        setCurrentComboItem(colDatat3, col3);
1011
1082
                        shadet3->setValue(shading3);
1012
1083
                        int numVals;
1013
1084
                        double xval, yval;
1046
1117
                        CurveT3->cDisplay->setCurve(curve);
1047
1118
                        fp >> lin;
1048
1119
                        CurveT3->setLinear(lin);
1049
 
                        optionStack->raiseWidget(8);
 
1120
                        optionStack->setCurrentIndex(8);
1050
1121
                        connect( colDatat1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1051
1122
                        connect( shadet1, SIGNAL(clicked()), this, SLOT(createPreview()));
1052
1123
                        connect( colDatat2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1063
1134
                        disconnect( shadeq1, SIGNAL(clicked()), this, SLOT(createPreview()));
1064
1135
                        disconnect( colDataq2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1065
1136
                        disconnect( shadeq2, SIGNAL(clicked()), this, SLOT(createPreview()));
1066
 
                        disconnect( colDataq3, SIGNAL(activated(int)), this, SLOT( createPreview()));
1067
 
                        disconnect( shadeq3, SIGNAL(clicked()), this, SLOT(createPreview()));
 
1137
                        disconnect( colDataqc3, SIGNAL(activated(int)), this, SLOT( createPreview()));
 
1138
                        disconnect( shadeqc3, SIGNAL(clicked()), this, SLOT(createPreview()));
1068
1139
                        disconnect( colDataq4, SIGNAL(activated(int)), this, SLOT( createPreview()));
1069
1140
                        disconnect( shadeq4, SIGNAL(clicked()), this, SLOT(createPreview()));
1070
1141
                        disconnect( CurveQ1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1071
1142
                        disconnect( CurveQ2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1072
 
                        disconnect( CurveQ3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
 
1143
                        disconnect( CurveQc3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1073
1144
                        disconnect( CurveQ4->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1074
1145
                        QString tmpstr = effectValMap[c];
1075
1146
                        QString col1, col2, col3, col4;
1076
1147
                        int shading1, shading2, shading3, shading4;
1077
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1148
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1078
1149
                        col1 = fp.readLine();
1079
1150
                        col2 = fp.readLine();
1080
1151
                        col3 = fp.readLine();
1083
1154
                        fp >> shading2;
1084
1155
                        fp >> shading3;
1085
1156
                        fp >> shading4;
1086
 
                        colDataq1->setCurrentText(col1);
 
1157
                        setCurrentComboItem(colDataq1, col1);
1087
1158
                        shadeq1->setValue(shading1);
1088
 
                        colDataq2->setCurrentText(col2);
 
1159
                        setCurrentComboItem(colDataq2, col2);
1089
1160
                        shadeq2->setValue(shading2);
1090
 
                        colDataq3->setCurrentText(col3);
1091
 
                        shadeq3->setValue(shading3);
1092
 
                        colDataq4->setCurrentText(col4);
 
1161
                        setCurrentComboItem(colDataqc3, col3);
 
1162
                        shadeqc3->setValue(shading3);
 
1163
                        setCurrentComboItem(colDataq4, col4);
1093
1164
                        shadeq4->setValue(shading4);
1094
1165
                        int numVals;
1095
1166
                        double xval, yval;
1125
1196
                                fp >> yval;
1126
1197
                                curve.addPoint(xval, yval);
1127
1198
                        }
1128
 
                        CurveQ3->cDisplay->setCurve(curve);
 
1199
                        CurveQc3->cDisplay->setCurve(curve);
1129
1200
                        fp >> lin;
1130
 
                        CurveQ3->setLinear(lin);
 
1201
                        CurveQc3->setLinear(lin);
1131
1202
                        curve.resize(0);
1132
1203
                        fp >> numVals;
1133
1204
                        for (int nv = 0; nv < numVals; nv++)
1139
1210
                        CurveQ4->cDisplay->setCurve(curve);
1140
1211
                        fp >> lin;
1141
1212
                        CurveQ4->setLinear(lin);
1142
 
                        optionStack->raiseWidget(9);
 
1213
                        optionStack->setCurrentIndex(9);
1143
1214
                        connect( colDataq1, SIGNAL(activated(int)), this, SLOT( createPreview()));
1144
1215
                        connect( shadeq1, SIGNAL(clicked()), this, SLOT(createPreview()));
1145
1216
                        connect( colDataq2, SIGNAL(activated(int)), this, SLOT( createPreview()));
1146
1217
                        connect( shadeq2, SIGNAL(clicked()), this, SLOT(createPreview()));
1147
 
                        connect( colDataq3, SIGNAL(activated(int)), this, SLOT( createPreview()));
1148
 
                        connect( shadeq3, SIGNAL(clicked()), this, SLOT(createPreview()));
 
1218
                        connect( colDataqc3, SIGNAL(activated(int)), this, SLOT( createPreview()));
 
1219
                        connect( shadeqc3, SIGNAL(clicked()), this, SLOT(createPreview()));
1149
1220
                        connect( colDataq4, SIGNAL(activated(int)), this, SLOT( createPreview()));
1150
1221
                        connect( shadeq4, SIGNAL(clicked()), this, SLOT(createPreview()));
1151
1222
                        connect( CurveQ1->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1152
1223
                        connect( CurveQ2->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1153
 
                        connect( CurveQ3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
 
1224
                        connect( CurveQc3->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1154
1225
                        connect( CurveQ4->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1155
1226
                }
1156
1227
                else if (c->text() == tr("Brightness"))
1159
1230
                        disconnect( brightnessSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
1160
1231
                        QString tmpstr = effectValMap[c];
1161
1232
                        int brightness;
1162
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1233
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1163
1234
                        fp >> brightness;
1164
1235
                        brightnessSlider->setValue(brightness);
1165
1236
                        QString tmp;
1166
1237
                        tmp.setNum(brightness);
1167
1238
                        textLabel7->setText(tmp);
1168
 
                        optionStack->raiseWidget(2);
 
1239
                        optionStack->setCurrentIndex(2);
1169
1240
                        connect( brightnessSlider, SIGNAL(valueChanged(int)), this, SLOT(updateBright(int)));
1170
1241
                        connect( brightnessSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
1171
1242
                }
1175
1246
                        disconnect( contrastSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
1176
1247
                        QString tmpstr = effectValMap[c];
1177
1248
                        int contrast;
1178
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1249
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1179
1250
                        fp >> contrast;
1180
1251
                        contrastSlider->setValue(contrast);
1181
1252
                        QString tmp;
1182
1253
                        tmp.setNum(contrast);
1183
1254
                        textLabel9->setText(tmp);
1184
 
                        optionStack->raiseWidget(3);
 
1255
                        optionStack->setCurrentIndex(3);
1185
1256
                        connect( contrastSlider, SIGNAL(valueChanged(int)), this, SLOT(updateContrast(int)));
1186
1257
                        connect( contrastSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
1187
1258
                }
1188
1259
                else if (c->text() == tr("Sharpen"))
1189
1260
                {
1190
 
                        disconnect( shRadius, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
1191
 
                        disconnect( shValue, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
 
1261
                        disconnect( shRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
 
1262
                        disconnect( shValue, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
1192
1263
                        QString tmpstr = effectValMap[c];
1193
1264
                        double radius, sigma;
1194
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1265
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1195
1266
                        fp >> radius;
1196
1267
                        fp >> sigma;
1197
1268
                        shRadius->setValue(radius);
1198
1269
                        shValue->setValue(sigma);
1199
 
                        optionStack->raiseWidget(4);
1200
 
                        connect( shRadius, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
1201
 
                        connect( shValue, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
 
1270
                        optionStack->setCurrentIndex(4);
 
1271
                        connect( shRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
 
1272
                        connect( shValue, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
1202
1273
                }
1203
1274
                else if (c->text() == tr("Blur"))
1204
1275
                {
1205
 
                        disconnect( blRadius, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
 
1276
                        disconnect( blRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
1206
1277
                        QString tmpstr = effectValMap[c];
1207
 
                        double radius, sigma;
1208
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1278
                        double radius;
 
1279
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1209
1280
                        fp >> radius;
1210
 
                        fp >> sigma;
1211
1281
                        blRadius->setValue(radius);
1212
 
                        //                      blValue->setValue(sigma);
1213
 
                        optionStack->raiseWidget(5);
1214
 
                        connect( blRadius, SIGNAL(valueChanged(int)), this, SLOT(createPreview()));
 
1282
                        optionStack->setCurrentIndex(5);
 
1283
                        connect( blRadius, SIGNAL(valueChanged(double)), this, SLOT(createPreview()));
1215
1284
                }
1216
1285
                else if (c->text() == tr("Posterize"))
1217
1286
                {
1219
1288
                        disconnect( solarizeSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
1220
1289
                        QString tmpstr = effectValMap[c];
1221
1290
                        int solarize;
1222
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1291
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1223
1292
                        fp >> solarize;
1224
1293
                        solarizeSlider->setValue(solarize);
1225
1294
                        QString tmp;
1226
1295
                        tmp.setNum(solarize);
1227
1296
                        textLabel15->setText(tmp);
1228
 
                        optionStack->raiseWidget(6);
 
1297
                        optionStack->setCurrentIndex(6);
1229
1298
                        connect( solarizeSlider, SIGNAL(valueChanged(int)), this, SLOT(updateSolarize(int)));
1230
1299
                        connect( solarizeSlider, SIGNAL(sliderReleased()), this, SLOT(createPreview()));
1231
1300
                }
1233
1302
                {
1234
1303
                        disconnect( Kdisplay->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1235
1304
                        QString tmpstr = effectValMap[c];
1236
 
                        QTextStream fp(&tmpstr, IO_ReadOnly);
 
1305
                        QTextStream fp(&tmpstr, QIODevice::ReadOnly);
1237
1306
                        int numVals;
1238
1307
                        double xval, yval;
1239
1308
                        FPointArray curve;
1252
1321
                                Kdisplay->setLinear(true);
1253
1322
                        else
1254
1323
                                Kdisplay->setLinear(false);
1255
 
                        optionStack->raiseWidget(10);
 
1324
                        optionStack->setCurrentIndex(10);
1256
1325
                        connect( Kdisplay->cDisplay, SIGNAL(modified()), this, SLOT(createPreview()));
1257
1326
                }
1258
1327
                else
1259
 
                        optionStack->raiseWidget(0);
 
1328
                        optionStack->setCurrentIndex(0);
1260
1329
                currentOptions = c;
1261
1330
        }
1262
1331
        else
1263
 
                optionStack->raiseWidget(0);
1264
 
        disconnect( availableEffects, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( selectAvailEffect(QListBoxItem*) ) );
 
1332
                optionStack->setCurrentIndex(0);
 
1333
        disconnect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
1265
1334
        availableEffects->clearSelection();
1266
 
        connect( availableEffects, SIGNAL( clicked(QListBoxItem*) ), this, SLOT( selectAvailEffect(QListBoxItem*) ) );
 
1335
        connect( availableEffects, SIGNAL( itemClicked(QListWidgetItem*) ), this, SLOT( selectAvailEffect(QListWidgetItem*) ) );
1267
1336
}
1268
1337
 
1269
 
void EffectsDialog::selectAvailEffect(QListBoxItem* c)
 
1338
void EffectsDialog::selectAvailEffect(QListWidgetItem* c)
1270
1339
{
1271
1340
        if (c)
1272
1341
        {
1273
 
                if (!c->isSelectable())
 
1342
                if (!(c->flags() & Qt::ItemIsSelectable))
1274
1343
                        toEffects->setEnabled(false);
1275
1344
                else
1276
1345
                        toEffects->setEnabled(true);
1278
1347
        fromEffects->setEnabled(false);
1279
1348
        effectUp->setEnabled(false);
1280
1349
        effectDown->setEnabled(false);
1281
 
        disconnect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
 
1350
        disconnect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
1282
1351
        selectEffectHelper();
1283
1352
        currentOptions = 0;
1284
1353
        usedEffects->clearSelection();
1285
 
        optionStack->raiseWidget(0);
1286
 
        connect( usedEffects, SIGNAL( selected(QListBoxItem*) ), this, SLOT( selectEffect(QListBoxItem*) ) );
 
1354
        optionStack->setCurrentIndex(0);
 
1355
        connect( usedEffects, SIGNAL( itemActivated(QListWidgetItem*) ), this, SLOT( selectEffect(QListWidgetItem*) ) );
1287
1356
}
1288
1357
 
1289
1358
void EffectsDialog::selectEffectHelper(bool final)
1325
1394
                {
1326
1395
                        QString efval = "";
1327
1396
                        QString tmp;
1328
 
                        if (final)
 
1397
                        if (!final)
1329
1398
                                tmp.setNum(blRadius->value());
1330
1399
                        else
1331
 
                                tmp.setNum(blRadius->value()/imageScale);
 
1400
                                tmp.setNum(blRadius->value()*imageScale);
1332
1401
                        efval += tmp;
1333
1402
                        tmp.setNum(1.0);
1334
1403
                        efval += " "+tmp;
1432
1501
                        QString efval = "";
1433
1502
                        efval = colDataq1->currentText()+"\n";
1434
1503
                        efval += colDataq2->currentText()+"\n";
1435
 
                        efval += colDataq3->currentText()+"\n";
 
1504
                        efval += colDataqc3->currentText()+"\n";
1436
1505
                        efval += colDataq4->currentText()+"\n";
1437
1506
                        QString tmp;
1438
1507
                        tmp.setNum(shadeq1->getValue());
1439
1508
                        efval += tmp;
1440
1509
                        tmp.setNum(shadeq2->getValue());
1441
1510
                        efval += " "+tmp;
1442
 
                        tmp.setNum(shadeq3->getValue());
 
1511
                        tmp.setNum(shadeqc3->getValue());
1443
1512
                        efval += " "+tmp;
1444
1513
                        tmp.setNum(shadeq4->getValue());
1445
1514
                        efval += " "+tmp;
1467
1536
                                efval += " 1";
1468
1537
                        else
1469
1538
                                efval += " 0";
1470
 
                        Vals = CurveQ3->cDisplay->getCurve();
 
1539
                        Vals = CurveQc3->cDisplay->getCurve();
1471
1540
                        tmp.setNum(Vals.size());
1472
1541
                        efval += " "+tmp;
1473
1542
                        for (uint p = 0; p < Vals.size(); p++)
1475
1544
                                FPoint pv = Vals.point(p);
1476
1545
                                efval += QString(" %1 %2").arg(pv.x()).arg(pv.y());
1477
1546
                        }
1478
 
                        if (CurveQ3->cDisplay->isLinear())
 
1547
                        if (CurveQc3->cDisplay->isLinear())
1479
1548
                                efval += " 1";
1480
1549
                        else
1481
1550
                                efval += " 0";