<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>AlbumShaper: grainEditor.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.2 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <h1>grainEditor.h</h1><a href="grainEditor_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//==============================================</span> <a name="l00002"></a>00002 <span class="comment">// copyright : (C) 2003-2005 by Will Stokes</span> <a name="l00003"></a>00003 <span class="comment">//==============================================</span> <a name="l00004"></a>00004 <span class="comment">// This program is free software; you can redistribute it</span> <a name="l00005"></a>00005 <span class="comment">// and/or modify it under the terms of the GNU General</span> <a name="l00006"></a>00006 <span class="comment">// Public License as published by the Free Software</span> <a name="l00007"></a>00007 <span class="comment">// Foundation; either version 2 of the License, or</span> <a name="l00008"></a>00008 <span class="comment">// (at your option) any later version.</span> <a name="l00009"></a>00009 <span class="comment">//==============================================</span> <a name="l00010"></a>00010 <a name="l00011"></a>00011 <span class="preprocessor">#ifndef GUI_EDITING_GRAINEDITOR_H</span> <a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define GUI_EDITING_GRAINEDITOR_H</span> <a name="l00013"></a>00013 <span class="preprocessor"></span> <a name="l00014"></a>00014 <span class="comment">//--------------------</span> <a name="l00015"></a>00015 <span class="comment">//forward declarations</span> <a name="l00016"></a>00016 <span class="keyword">class </span><a class="code" href="classBlurSharpenSlider.html">BlurSharpenSlider</a>; <a name="l00017"></a>00017 <span class="keyword">class </span><a class="code" href="classPanningPreviewInterface.html">PanningPreviewInterface</a>; <a name="l00018"></a>00018 <span class="keyword">class </span><a class="code" href="classSelectionPlacementInterface.html" title="A selection region placement interface.">SelectionPlacementInterface</a>; <a name="l00019"></a>00019 <span class="comment">//--------------------</span> <a name="l00020"></a>00020 <span class="keyword">class </span>QComboBox; <a name="l00021"></a>00021 <span class="keyword">class </span><a class="code" href="classQFrame.html">QFrame</a>; <a name="l00022"></a>00022 <span class="keyword">class </span><a class="code" href="classClickableLabel.html" title="A clickable label.">ClickableLabel</a>; <a name="l00023"></a>00023 <a name="l00024"></a>00024 <span class="preprocessor">#include <qdialog.h></span> <a name="l00025"></a>00025 <span class="preprocessor">#include <qimage.h></span> <a name="l00026"></a>00026 <a name="l00027"></a>00027 <span class="comment">//=====================================</span> <a name="l00029"></a>00029 <span class="comment"></span><span class="comment">//=====================================</span> <a name="l00030"></a>00030 <a name="l00031"></a><a class="code" href="classGrainEditor.html">00031</a> <span class="keyword">class </span><a class="code" href="classGrainEditor.html" title="Interface for adjusting image grain by bluring and sharpening.">GrainEditor</a> : <span class="keyword">public</span> <a class="code" href="classQDialog.html">QDialog</a> <a name="l00032"></a>00032 { <a name="l00033"></a>00033 Q_OBJECT <a name="l00034"></a>00034 <a name="l00035"></a>00035 <span class="keyword">public</span>: <a name="l00037"></a>00037 <a class="code" href="classGrainEditor.html#abac90b6de6815d3485993b7b5b35fec8" title="Constructs layout.">GrainEditor</a>(QString filename, <a name="l00038"></a>00038 <a class="code" href="classQWidget.html">QWidget</a> *parent=0, <span class="keyword">const</span> <span class="keywordtype">char</span>* name=0); <a name="l00039"></a>00039 <a name="l00040"></a>00040 <a class="code" href="classGrainEditor.html#a0c1bb28a73606e415b077eb54b4e33ba">~GrainEditor</a>(); <a name="l00041"></a>00041 <a name="l00043"></a>00043 QImage* <a class="code" href="classGrainEditor.html#a29f303d6c654ec9195c1f82a002438ee" title="get modified image that resulted from adjustments">getModifiedImage</a>(); <a name="l00044"></a>00044 <span class="comment">//----------------------</span> <a name="l00045"></a>00045 <span class="keyword">protected</span>: <a name="l00046"></a>00046 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a80164e3454f411014ac7939873d56e70">keyPressEvent</a>(QKeyEvent *e); <a name="l00047"></a>00047 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#aa17f11d4742e00f9bced87b588dc8cb8">keyReleaseEvent</a>(QKeyEvent *e); <a name="l00048"></a>00048 <span class="comment">//----------------------</span> <a name="l00049"></a>00049 <span class="keyword">private</span> slots: <a name="l00051"></a>00051 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#aaf2ac934cf43dd3418ff284d363a1827" title="updates preview image">selectPreviewImageType</a>(<span class="keywordtype">int</span> selection); <a name="l00052"></a>00052 <a name="l00054"></a>00054 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a3a5469862ab2b1d5d577a590470d8793" title="reset blur/sharpen of object boundaries">resetBoundaries</a>(); <a name="l00055"></a>00055 <a name="l00057"></a>00057 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a5d18bbb5c46b73d6c52b71c14d75dbea" title="reset blur/sharpen of regions">resetRegions</a>(); <a name="l00058"></a>00058 <a name="l00060"></a>00060 <span class="comment">//accepts changes, otherwise calls reject</span> <a name="l00061"></a>00061 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a406dea67ed814907628a1b380bee90ea" title="check for changes to settings, if so">applyAction</a>(); <a name="l00062"></a>00062 <a name="l00064"></a>00064 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a72ab91338e8be02eebbcf64d36aba9ec" title="resets image grain to original state">resetAction</a>(); <a name="l00065"></a>00065 <a name="l00067"></a>00067 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a273a80ff93a8e79260ea64647ace66c6" title="handle resize preview signals">previewResized</a>(); <a name="l00068"></a>00068 <a name="l00070"></a>00070 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a98fd9d708cccecabaa3d342cbc6b1984" title="generate and set adjusted image">generateAdjustedPreviewImage</a>(); <a name="l00071"></a>00071 <a name="l00072"></a>00072 <span class="comment">//----------------------</span> <a name="l00073"></a>00073 <span class="keyword">private</span>: <a name="l00074"></a>00074 <span class="comment">//adjust image using current blur/sharpen setting</span> <a name="l00075"></a>00075 <span class="keywordtype">void</span> <a class="code" href="classGrainEditor.html#a99b84ac16ea6b6c08662af69fe98669a">adjustImage</a>( QImage& image, QPoint offset ); <a name="l00076"></a>00076 <a name="l00077"></a>00077 <span class="comment">//original image filename</span> <a name="l00078"></a><a class="code" href="classGrainEditor.html#a74494aad65abe7cb522c2cfaa7e8d5ad">00078</a> QString <a class="code" href="classGrainEditor.html#a74494aad65abe7cb522c2cfaa7e8d5ad">fileName</a>; <a name="l00079"></a>00079 <a name="l00080"></a>00080 <span class="comment">//original image size</span> <a name="l00081"></a><a class="code" href="classGrainEditor.html#a5a02cdf8dec25312f089fdaf7e883a30">00081</a> QSize <a class="code" href="classGrainEditor.html#a5a02cdf8dec25312f089fdaf7e883a30">origImageSize</a>; <a name="l00082"></a>00082 <a name="l00083"></a>00083 <span class="comment">//Edges image</span> <a name="l00084"></a><a class="code" href="classGrainEditor.html#afa454700f5825ea8aca9184671318705">00084</a> QImage <a class="code" href="classGrainEditor.html#afa454700f5825ea8aca9184671318705">edgesImage</a>; <a name="l00085"></a>00085 <a name="l00086"></a>00086 <span class="comment">//Cluster map - each pixel assigned an int for the cluster it belongs to</span> <a name="l00087"></a><a class="code" href="classGrainEditor.html#a3077f676b4a405210349fe5f7137c084">00087</a> <span class="keywordtype">int</span>* <a class="code" href="classGrainEditor.html#a3077f676b4a405210349fe5f7137c084">clusterMap</a>; <a name="l00088"></a><a class="code" href="classGrainEditor.html#ae2d6af47b315b8577b1f71415a489815">00088</a> <span class="keywordtype">int</span> <a class="code" href="classGrainEditor.html#ae2d6af47b315b8577b1f71415a489815">numRegions</a>; <a name="l00089"></a>00089 <a name="l00091"></a><a class="code" href="classGrainEditor.html#a2b8ec0d9ac4a042d48ac0d9b834f7a46">00091</a> <a class="code" href="classPanningPreviewInterface.html">PanningPreviewInterface</a>* <a class="code" href="classGrainEditor.html#a2b8ec0d9ac4a042d48ac0d9b834f7a46" title="Preview image.">previewInterface</a>; <a name="l00092"></a>00092 <a name="l00094"></a><a class="code" href="classGrainEditor.html#abfd6ab4d74f4c762ba32b8f76b75418c">00094</a> <a class="code" href="classSelectionPlacementInterface.html" title="A selection region placement interface.">SelectionPlacementInterface</a>* <a class="code" href="classGrainEditor.html#abfd6ab4d74f4c762ba32b8f76b75418c" title="Interface for placing selection.">selectionPlacementInterface</a>; <a name="l00095"></a>00095 <a name="l00096"></a><a class="code" href="classGrainEditor.html#a83c99d0330194b9cca744c9837fb2d0c">00096</a> QComboBox* <a class="code" href="classGrainEditor.html#a83c99d0330194b9cca744c9837fb2d0c">previewSelection</a>; <a name="l00097"></a><a class="code" href="classGrainEditor.html#a963402966e2b8a7634ba0a309b20aaad">00097</a> <a class="code" href="classQFrame.html">QFrame</a>* <a class="code" href="classGrainEditor.html#a963402966e2b8a7634ba0a309b20aaad">buttonsFrame</a>; <a name="l00098"></a>00098 <a name="l00100"></a><a class="code" href="classGrainEditor.html#a34f90ba955f49fefc71952927d4b3b06">00100</a> <a class="code" href="classBlurSharpenSlider.html">BlurSharpenSlider</a>* <a class="code" href="classGrainEditor.html#a34f90ba955f49fefc71952927d4b3b06" title="Grain slider.">boundariesSlider</a>; <a name="l00101"></a><a class="code" href="classGrainEditor.html#a1ecde5b23c5aa15f5114b6701df7cd8b">00101</a> <a class="code" href="classClickableLabel.html" title="A clickable label.">ClickableLabel</a>* <a class="code" href="classGrainEditor.html#a1ecde5b23c5aa15f5114b6701df7cd8b">boundariesIcon</a>; <a name="l00102"></a>00102 <a name="l00103"></a><a class="code" href="classGrainEditor.html#aedc6892d631c703873a54b4ff11c00d0">00103</a> <a class="code" href="classBlurSharpenSlider.html">BlurSharpenSlider</a>* <a class="code" href="classGrainEditor.html#aedc6892d631c703873a54b4ff11c00d0">regionsSlider</a>; <a name="l00104"></a><a class="code" href="classGrainEditor.html#a193edac6fceec70267ffb7e350091ebd">00104</a> <a class="code" href="classClickableLabel.html" title="A clickable label.">ClickableLabel</a>* <a class="code" href="classGrainEditor.html#a193edac6fceec70267ffb7e350091ebd">regionsIcon</a>; <a name="l00105"></a>00105 }; <a name="l00106"></a>00106 <span class="comment">//======================</span> <a name="l00107"></a>00107 <a name="l00108"></a>00108 <span class="preprocessor">#endif //GUI_EDITING_GRAINEDITOR_H</span> </pre></div></div> <hr size="1"/><address style="text-align: right;"><small>Generated by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.2 </small></address> </body> </html>