14 #include <qcombobox.h> 15 #include <qpushbutton.h> 19 #include <qsizegrip.h> 21 #include <Q3GridLayout> 29 #include "../blurSharpenSlider.h" 30 #include "../clickableLabel.h" 31 #include "../../config.h" 32 #include "../../backend/manipulations/blur.h" 33 #include "../../backend/manipulations/sharpen.h" 34 #include "../../backend/manipulations/edgeDetect.h" 35 #include "../../backend/tools/imageTools.h" 37 #define SLIDER_RADIUS 50 59 visibleFrame,
"previewInterface" );
67 Q3Frame* controlsFrame =
new Q3Frame( visibleFrame,
"controlsFrame" );
69 QLabel* selectionLabel =
new QLabel( tr(
"Region Shown in Detail:"),
70 controlsFrame,
"selectionLabel" );
74 "selectionPlacementInterface" );
111 Q3GridLayout* controlsGrid =
new Q3GridLayout( controlsFrame, 6, 4, 0 );
112 controlsGrid->setRowStretch( 0, 1 );
114 controlsGrid->addMultiCellWidget( selectionLabel, 1,1, 0,3 );
126 controlsGrid->setRowStretch( 5, 1 );
129 controlsGrid->setColStretch( 0, 1 );
130 controlsGrid->setColStretch( 3, 1 );
135 QPushButton* applyButton =
new QPushButton( tr(
"Apply"),
buttonsFrame );
136 applyButton->setDefault(
true);
137 applyButton->setFocus();
138 connect( applyButton, SIGNAL(clicked()), SLOT(
applyAction()) );
140 QPushButton* cancelButton =
new QPushButton( tr(
"Cancel"),
buttonsFrame );
141 connect( cancelButton, SIGNAL(clicked()), SLOT(reject()) );
143 QPushButton* resetButton =
new QPushButton( tr(
"Reset"),
buttonsFrame );
144 connect( resetButton, SIGNAL(clicked()), SLOT(
resetAction()) );
146 Q3GridLayout* buttonsGrid =
new Q3GridLayout(
buttonsFrame, 1, 5, 0 );
147 buttonsGrid->setColStretch( 0, 1 );
148 buttonsGrid->addWidget( applyButton, 0, 1 );
149 buttonsGrid->addWidget( cancelButton, 0, 2 );
150 buttonsGrid->addWidget( resetButton, 0, 3 );
151 buttonsGrid->setColStretch( 4, 1 );
155 Q3GridLayout* mainGrid =
new Q3GridLayout( visibleFrame, 3, 2, 0 );
160 mainGrid->addMultiCellWidget( controlsFrame, 0,1, 1,1 );
164 mainGrid->setRowStretch( 0, 1 );
165 mainGrid->setColStretch( 0, 1 );
171 Q3GridLayout* invisibleGrid =
new Q3GridLayout(
this, 2, 1, 0 );
172 invisibleGrid->addWidget( visibleFrame, 0, 0 );
173 invisibleGrid->setRowStretch( 0, 1 );
178 #if defined(Q_OS_WIN) 179 QSizeGrip* sizeGrip =
new QSizeGrip(
this );
180 invisibleGrid->addWidget( sizeGrip, 1, 0, Qt::AlignRight | Qt::AlignBottom );
188 setCaption( tr(
"Grain Editor") );
225 QImage* adjustedImage =
new QImage(
fileName);
228 if( adjustedImage->depth() < 32 )
230 QImage* tmp = adjustedImage;
231 adjustedImage =
new QImage( tmp->convertDepth( 32, Qt::AutoColor ) );
232 delete tmp; tmp=NULL;
236 return adjustedImage;
259 QImage adjustedImage = origImage.copy();
274 float boundariesSigma;
331 if(e->key() == Qt::Key_Control )
341 else { QDialog::keyPressEvent(e); }
346 if(e->key() == Qt::Key_Control )
351 else { QDialog::keyReleaseEvent(e); }
void previewResized()
handle resize preview signals
void adjustImage(QImage &image, QPoint offset)
void blurImage(QImage &image, float sigma)
void generateAdjustedPreviewImage()
generate and set adjusted image
void setPixmap(const QPixmap &p)
void keyPressEvent(QKeyEvent *e)
A selection region placement interface.
void selectPreviewImageType(int selection)
updates preview image
QImage * getModifiedImage()
get modified image that resulted from adjustments
ClickableLabel * boundariesIcon
void sharpenImage(QImage &image, float sigma, QPoint offset, QSize fullImageRes, QImage *edgeImage, bool blurEdges)
QImage & getOrigImage()
returns orig image object
SelectionPlacementInterface * selectionPlacementInterface
Interface for placing selection.
void setSelectedRegion(QRect selection)
Set the select region using image space coordinates.
BlurSharpenSlider * boundariesSlider
Grain slider.
void resetBoundaries()
reset blur/sharpen of object boundaries
QComboBox * previewSelection
void setPreviewMode(PREVIEW_MODE mode, bool forceDrawLabel=false)
Sets preview mode.
PREVIEW_MODE
current preview mode
void resetRegions()
reset blur/sharpen of regions
PanningPreviewInterface * previewInterface
Preview image.
void setAdjustedImage(QImage adjustedImage)
sets adjusted image and repaints
void applyAction()
check for changes to settings, if so
void resetAction()
resets image grain to original state
GrainEditor(QString filename, QWidget *parent=0, const char *name=0)
Constructs layout.
void keyReleaseEvent(QKeyEvent *e)