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