Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

editingInterface.h

Go to the documentation of this file.
00001 //============================================== 00002 // copyright : (C) 2003-2005 by Will Stokes 00003 //============================================== 00004 // This program is free software; you can redistribute it 00005 // and/or modify it under the terms of the GNU General 00006 // Public License as published by the Free Software 00007 // Foundation; either version 2 of the License, or 00008 // (at your option) any later version. 00009 //============================================== 00010 00011 #ifndef GUI_EDITING_EDITINGINTERFACE_H 00012 #define GUI_EDITING_EDITINGINTERFACE_H 00013 00014 //-------------------- 00015 //forward declarations 00016 class QLabel; 00017 class QImage; 00018 class QToolButton; 00019 class QPushButton; 00020 class QComboBox; 00021 class ClickableLabel; 00022 class LayoutWidget; 00023 class SelectionInterface; 00024 class Subalbum; 00025 class Photo; 00026 class ManipulationOptions; 00027 //-------------------- 00028 00031 typedef enum 00032 { 00033 BW_EFFECT = 0, 00034 SEPIA_EFFECT, 00035 INVERT_EFFECT, 00036 EMBOSS_EFFECT, 00037 MOSAIC_EFFECT, 00038 PAINTING_EFFECT, 00039 //=============== 00040 //place effects that are not release quality below 00041 //NUM_MANIPULATIONS to exclude them from the drop-down menu 00042 NUM_MANIPULATIONS, 00043 POINTILLISM_EFFECT, 00044 } MANIPULATION; 00045 00046 #include <qwidget.h> 00047 #include "../../backend/tools/imageTools.h" 00048 00049 //===================================== 00051 //===================================== 00052 00053 class EditingInterface : public QWidget 00054 { 00055 Q_OBJECT 00056 00057 public: 00059 EditingInterface(QWidget *parent=0, const char* name=0); 00060 00061 ~EditingInterface(); 00062 00064 void setPhoto(Subalbum* collection, Photo* photo); 00065 00067 Photo* getPhoto(); 00068 00069 //returns true if currently selected photo is revertable 00070 bool currentPhotoRevertable(); 00071 00073 void revertCurrentPhoto(); 00074 //---------------------- 00075 signals: 00076 void photoModified(); 00077 //---------------------- 00078 public slots: 00079 void handleSelectionChanged(); 00080 void handleAspectRatioChanged(); 00081 void setFocus(); 00082 //---------------------- 00083 protected: 00084 void keyPressEvent( QKeyEvent *e ); 00085 //---------------------- 00086 private slots: 00088 void showPrevPhoto(); 00089 00091 void showNextPhoto(); 00092 00094 void showFirstPhoto(); 00095 00097 void showLastPhoto(); 00098 00100 void rotateRight(); 00101 00103 void rotateLeft(); 00104 00106 void flipHorizontal(); 00107 00109 void startCorrectTilt(); 00110 00112 void finishCorrectTilt( QPoint p1, QPoint p2 ); 00113 00115 void flipVertical(); 00116 00118 void selectAspectRatio(); 00119 00121 void screenResolutionChanged(); 00122 00124 void rotateSelection(); 00125 00127 void crop(); 00128 00130 void enhanceContrast(); 00131 00133 void colorBalance(); 00134 00136 void removeRedeye(); 00137 00139 void tuneLevels(); 00140 00142 void adjustGrain(); 00143 00145 void selectEffect(); 00146 00148 void applyEffect(); 00149 00151 void returnAction(); 00152 //---------------------- 00153 private: 00155 void showNextPrevFirstLastPhoto( Photo* newPhoto ); 00156 00158 void rotateFlip( TRANSFORM_CODE rotationFlipType ); 00159 00161 bool findSelection(QPoint& topLeft, QPoint& bottomRight); 00162 00164 void selectAll(QPoint& topLeft, QPoint& bottomRight); 00165 00167 QImage* applyEffect(QString filename, ManipulationOptions* options=NULL); 00168 00170 void applyImageUpdate(QImage* editedImage, bool resetSelection); 00173 ClickableLabel *previousButton, *nextButton; 00174 00177 SelectionInterface* selectionInterface; 00178 00180 QComboBox* aspectRatios; 00181 00182 //Widget for selecting orientation for cropping 00183 QComboBox* orientations; 00184 00186 int displayResolutionIndex; 00187 00189 QSize* aspectRatioValues; 00190 double* maxDimensions; 00191 00193 bool selectionRotated; 00194 00196 QToolButton* correctTiltButton; 00197 00199 QToolButton* cropButton; 00200 00202 ClickableLabel* redEyeReductionButton; 00203 00205 QComboBox* effectsList; 00206 00208 QPushButton* applyEffectButton; 00209 00211 QLabel* effectPreview; 00214 Subalbum* collection; 00215 00217 Photo* photo; 00218 00220 QString effectPreviewImageFilename; 00221 00223 LayoutWidget* layout; 00224 00226 int displayWidth, displayHeight; 00227 00229 int imageWidth, imageHeight; 00230 //---------------------- 00231 }; 00232 //====================== 00233 00234 #endif //GUI_EDITING_EDITINGINTERFACE_H

Generated on Sun Mar 4 19:42:55 2007 for AlbumShaper by doxygen 1.3.7