<!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: GeneratePreviewThread Class Reference</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 class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> </div> <div class="contents"> <h1>GeneratePreviewThread Class Reference</h1><!-- doxytag: class="GeneratePreviewThread" --><!-- doxytag: inherits="QThread" --> <p><code>#include <<a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a>></code></p> <div class="dynheader"> Inheritance diagram for GeneratePreviewThread:</div> <div class="dynsection"> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <div class="dynheader"> Collaboration diagram for GeneratePreviewThread:</div> <div class="dynsection"> <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div> <p><a href="classGeneratePreviewThread-members.html">List of all members.</a></p> <table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#a07eb50f20a9a67448e8b2d33c1252328">GeneratePreviewThread</a> (<a class="el" href="classFilePreview.html">FilePreview</a> *<a class="el" href="classGeneratePreviewThread.html#acced915beb70c76416f0518aea250104">previewWidget</a>)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#a29affa3f16c4b04522de227d68ac2450">start</a> (QString <a class="el" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a">filename</a>)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#a1ea5bdb72a79bbc081829dd0fbcc6eb0">run</a> ()</td></tr> <tr><td colspan="2"><h2>Private Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a">filename</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">current file being processed <a href="#acd55c605c796212412940d4988f4253a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classFilePreview.html">FilePreview</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#acced915beb70c76416f0518aea250104">previewWidget</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">handle on preview widget necessary for posting an update event once the current file has been processed <a href="#acced915beb70c76416f0518aea250104"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#a4809be79bf9c1c67561868fbcc88fd1f">updating</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">is the worker thread currently generating a file preview? <a href="#a4809be79bf9c1c67561868fbcc88fd1f"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QString </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#ad7505a7bf8e25d9208d96ddb51f5ca65">queue</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">next file to be processed by worker thread <a href="#ad7505a7bf8e25d9208d96ddb51f5ca65"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">QMutex </td><td class="memItemRight" valign="bottom"><a class="el" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984">lockingMutex</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">locking mutex - necessary to prevent multiple threads from accessing the updating bool or queue variable simultaniously <a href="#a6611d14aeaa6173cc6e256a817865984"></a><br/></td></tr> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>Definition at line <a class="el" href="addPhotosDialog_8h_source.html#l00029">29</a> of file <a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a>.</p> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a07eb50f20a9a67448e8b2d33c1252328"></a><!-- doxytag: member="GeneratePreviewThread::GeneratePreviewThread" ref="a07eb50f20a9a67448e8b2d33c1252328" args="(FilePreview *previewWidget)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">GeneratePreviewThread::GeneratePreviewThread </td> <td>(</td> <td class="paramtype"><a class="el" href="classFilePreview.html">FilePreview</a> * </td> <td class="paramname"> <em>previewWidget</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="addPhotosDialog_8cpp_source.html#l00060">60</a> of file <a class="el" href="addPhotosDialog_8cpp_source.html">addPhotosDialog.cpp</a>.</p> <p>References <a class="el" href="addPhotosDialog_8h_source.html#l00048">queue</a>, and <a class="el" href="addPhotosDialog_8h_source.html#l00045">updating</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00061"></a>00061 { <a name="l00062"></a>00062 <span class="comment">//we'll need to store a previewWidget handle to </span> <a name="l00063"></a>00063 <span class="comment">//posting update events when updates are</span> <a name="l00064"></a>00064 <span class="comment">//ready to be shown</span> <a name="l00065"></a>00065 this->previewWidget = previewWidget; <a name="l00066"></a>00066 <a name="l00067"></a>00067 <span class="comment">//by default worker thread isn't busy yet</span> <a name="l00068"></a>00068 <a class="code" href="classGeneratePreviewThread.html#a4809be79bf9c1c67561868fbcc88fd1f" title="is the worker thread currently generating a file preview?">updating</a> = <span class="keyword">false</span>; <a name="l00069"></a>00069 <a class="code" href="classGeneratePreviewThread.html#ad7505a7bf8e25d9208d96ddb51f5ca65" title="next file to be processed by worker thread">queue</a> = QString::null; <a name="l00070"></a>00070 } </pre></div></p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a1ea5bdb72a79bbc081829dd0fbcc6eb0"></a><!-- doxytag: member="GeneratePreviewThread::run" ref="a1ea5bdb72a79bbc081829dd0fbcc6eb0" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void GeneratePreviewThread::run </td> <td>(</td> <td class="paramname"></td> <td> ) </td> <td><code> [virtual]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="addPhotosDialog_8cpp_source.html#l00094">94</a> of file <a class="el" href="addPhotosDialog_8cpp_source.html">addPhotosDialog.cpp</a>.</p> <p>References <a class="el" href="addPhotosDialog_8h_source.html#l00038">filename</a>, <a class="el" href="imageTools_8cpp_source.html#l00192">getImageSize()</a>, <a class="el" href="addPhotosDialog_8h_source.html#l00052">lockingMutex</a>, <a class="el" href="addPhotosDialog_8cpp_source.html#l00031">MIN_HEIGHT</a>, <a class="el" href="addPhotosDialog_8cpp_source.html#l00030">MIN_WIDTH</a>, <a class="el" href="addPhotosDialog_8h_source.html#l00042">previewWidget</a>, <a class="el" href="addPhotosDialog_8h_source.html#l00048">queue</a>, <a class="el" href="imageTools_8cpp_source.html#l00157">scaleImage()</a>, and <a class="el" href="addPhotosDialog_8h_source.html#l00045">updating</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00095"></a>00095 { <a name="l00096"></a>00096 <span class="comment">//since it is possible for another job</span> <a name="l00097"></a>00097 <span class="comment">//to be added to the queue while processing this one, it is necessary</span> <a name="l00098"></a>00098 <span class="comment">//to loop until the queue is empty</span> <a name="l00099"></a>00099 <span class="keywordflow">while</span>(<span class="keyword">true</span>) <a name="l00100"></a>00100 { <a name="l00101"></a>00101 <span class="comment">//------------------------------------------</span> <a name="l00102"></a>00102 <span class="comment">//Get image type extension and convert to caps </span> <a name="l00103"></a>00103 QString extension = QFileInfo(<a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a>).extension(<span class="keyword">false</span>).upper(); <a name="l00104"></a>00104 <span class="keywordtype">bool</span> validExtension = ( (extension.compare(<span class="stringliteral">"GIF"</span>) == 0) || <a name="l00105"></a>00105 (extension.compare(<span class="stringliteral">"JPG"</span>) == 0) || <a name="l00106"></a>00106 (extension.compare(<span class="stringliteral">"JPEG"</span>) == 0) || <a name="l00107"></a>00107 (extension.compare(<span class="stringliteral">"PNG"</span>) == 0) || <a name="l00108"></a>00108 (extension.compare(<span class="stringliteral">"XPM"</span>) == 0) ); <a name="l00109"></a>00109 <span class="comment">//------------------------------------------</span> <a name="l00110"></a>00110 <span class="comment">//Scale the image to fit nicely on the screen, aka < 300x225</span> <a name="l00111"></a>00111 QImage scaledImage; <a name="l00112"></a>00112 <span class="keywordflow">if</span>( validExtension ) <a name="l00113"></a>00113 { <a name="l00114"></a>00114 <a class="code" href="imageTools_8cpp.html#a126e11984fb8124e78e3b1b68a24870c" title="Scale image and save copy to disk.">scaleImage</a>(<a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a>, scaledImage, <a class="code" href="addPhotosDialog_8cpp.html#ad3ee0cc681d736cb6d41c4ebb04c0ae4">MIN_WIDTH</a>, <a class="code" href="addPhotosDialog_8cpp.html#a1610a21b358c3531db64b3208fa70e5b">MIN_HEIGHT</a> ); <a name="l00115"></a>00115 } <a name="l00116"></a>00116 <span class="comment">//------------------------------------------</span> <a name="l00117"></a>00117 <span class="comment">//Get image resolution</span> <a name="l00118"></a>00118 QString imageRes = <span class="stringliteral">""</span>; <a name="l00119"></a>00119 <span class="keywordflow">if</span>(validExtension) <a name="l00120"></a>00120 { <a name="l00121"></a>00121 QSize res; <a name="l00122"></a>00122 <a class="code" href="imageTools_8cpp.html#a2af7f0a9c4f931ad3213c36796e95288" title="Get image dimensions.">getImageSize</a>( <a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a>, res ); <a name="l00123"></a>00123 imageRes = QString(<span class="stringliteral">"%1 x %2"</span>).arg(res.width()).arg(res.height()); <a name="l00124"></a>00124 } <a name="l00125"></a>00125 <span class="comment">//------------------------------------------</span> <a name="l00126"></a>00126 <span class="comment">//Determine file size and construct a nicely formatted size string</span> <a name="l00127"></a>00127 QString fileSize = <span class="stringliteral">"?"</span>; <a name="l00128"></a>00128 QFileInfo info; <a name="l00129"></a>00129 info.setFile( <a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a> ); <a name="l00130"></a>00130 <span class="keywordtype">int</span> sizeOnDisk = info.size(); <a name="l00131"></a>00131 <a name="l00132"></a>00132 <span class="keywordflow">if</span>(sizeOnDisk < 1024) <a name="l00133"></a>00133 fileSize = QString(<span class="stringliteral">"%1 Byte%2"</span>).arg(sizeOnDisk).arg( sizeOnDisk == 0 || sizeOnDisk > 1 ? <span class="stringliteral">"s"</span> : <span class="stringliteral">""</span>); <a name="l00134"></a>00134 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( sizeOnDisk/1024 < 1024) <a name="l00135"></a>00135 <span class="comment">// fileSize = QString("%1 Kb").arg( ((float)*sizeOnDisk)/1024 );</span> <a name="l00136"></a>00136 fileSize = QString(<span class="stringliteral">"%1 Kb"</span>).arg( ((<span class="keywordtype">float</span>)((100*sizeOnDisk)/1024))/100 ); <a name="l00137"></a>00137 <span class="keywordflow">else</span> <span class="keywordflow">if</span>( sizeOnDisk/(1024*1024) < 1024) <a name="l00138"></a>00138 fileSize = QString(<span class="stringliteral">"%1 Mb"</span>).arg( ((<span class="keywordtype">float</span>)((100*sizeOnDisk)/(1024*1024)))/100 ); <a name="l00139"></a>00139 <span class="keywordflow">else</span> <a name="l00140"></a>00140 fileSize = QString(<span class="stringliteral">"%1 Gigs"</span>).arg( ((<span class="keywordtype">float</span>)((100*sizeOnDisk)/(1024*1024*1024)))/100 ); <a name="l00141"></a>00141 <span class="comment">//------------------------------------------</span> <a name="l00142"></a>00142 <span class="comment">//Setup image details string </span> <a name="l00143"></a>00143 QString fileDetails = QString(<span class="stringliteral">"%1 %2, %3"</span>) <a name="l00144"></a>00144 .arg(imageRes) <a name="l00145"></a>00145 .arg(extension) <a name="l00146"></a>00146 .arg(fileSize); <a name="l00147"></a>00147 <span class="comment">//------------------------------------------</span> <a name="l00148"></a>00148 <span class="comment">//Post UPDATE_PREVIEW_DETAILS event</span> <a name="l00149"></a>00149 <a class="code" href="classUpdatePreviewEvent.html">UpdatePreviewEvent</a>* upe = <span class="keyword">new</span> <a class="code" href="classUpdatePreviewEvent.html">UpdatePreviewEvent</a>( scaledImage, fileDetails ); <a name="l00150"></a>00150 QApplication::postEvent( <a class="code" href="classGeneratePreviewThread.html#acced915beb70c76416f0518aea250104" title="handle on preview widget necessary for posting an update event once the current file...">previewWidget</a>, upe ); <a name="l00151"></a>00151 <span class="comment">//------------------------------------------</span> <a name="l00152"></a>00152 <span class="comment">//get lock</span> <a name="l00153"></a>00153 <a class="code" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984" title="locking mutex - necessary to prevent multiple threads from accessing the updating...">lockingMutex</a>.lock(); <a name="l00154"></a>00154 <a name="l00155"></a>00155 <span class="comment">//if the queue is empty we're done!</span> <a name="l00156"></a>00156 <span class="keywordflow">if</span>( <a class="code" href="classGeneratePreviewThread.html#ad7505a7bf8e25d9208d96ddb51f5ca65" title="next file to be processed by worker thread">queue</a>.isNull() ) <a name="l00157"></a>00157 { <a name="l00158"></a>00158 <a class="code" href="classGeneratePreviewThread.html#a4809be79bf9c1c67561868fbcc88fd1f" title="is the worker thread currently generating a file preview?">updating</a> = <span class="keyword">false</span>; <a name="l00159"></a>00159 <a class="code" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984" title="locking mutex - necessary to prevent multiple threads from accessing the updating...">lockingMutex</a>.unlock(); <a name="l00160"></a>00160 <span class="keywordflow">return</span>; <a name="l00161"></a>00161 } <a name="l00162"></a>00162 <span class="comment">//clear queue and process pending job</span> <a name="l00163"></a>00163 <span class="keywordflow">else</span> <a name="l00164"></a>00164 { <a name="l00165"></a>00165 <a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a> = <a class="code" href="classGeneratePreviewThread.html#ad7505a7bf8e25d9208d96ddb51f5ca65" title="next file to be processed by worker thread">queue</a>; <a name="l00166"></a>00166 <a class="code" href="classGeneratePreviewThread.html#ad7505a7bf8e25d9208d96ddb51f5ca65" title="next file to be processed by worker thread">queue</a> = QString::null; <a name="l00167"></a>00167 <a class="code" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984" title="locking mutex - necessary to prevent multiple threads from accessing the updating...">lockingMutex</a>.unlock(); <a name="l00168"></a>00168 } <a name="l00169"></a>00169 <a name="l00170"></a>00170 } <span class="comment">//end while(true)</span> <a name="l00171"></a>00171 } </pre></div></p> </div> </div> <a class="anchor" id="a29affa3f16c4b04522de227d68ac2450"></a><!-- doxytag: member="GeneratePreviewThread::start" ref="a29affa3f16c4b04522de227d68ac2450" args="(QString filename)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void GeneratePreviewThread::start </td> <td>(</td> <td class="paramtype">QString </td> <td class="paramname"> <em>filename</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="addPhotosDialog_8cpp_source.html#l00072">72</a> of file <a class="el" href="addPhotosDialog_8cpp_source.html">addPhotosDialog.cpp</a>.</p> <p>References <a class="el" href="addPhotosDialog_8h_source.html#l00052">lockingMutex</a>, <a class="el" href="addPhotosDialog_8h_source.html#l00048">queue</a>, and <a class="el" href="addPhotosDialog_8h_source.html#l00045">updating</a>.</p> <p>Referenced by <a class="el" href="addPhotosDialog_8cpp_source.html#l00226">FilePreview::updatePreview()</a>.</p> <p><div class="fragment"><pre class="fragment"><a name="l00073"></a>00073 { <a name="l00074"></a>00074 <span class="comment">//get lock</span> <a name="l00075"></a>00075 <a class="code" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984" title="locking mutex - necessary to prevent multiple threads from accessing the updating...">lockingMutex</a>.lock(); <a name="l00076"></a>00076 <a name="l00077"></a>00077 <span class="comment">//if currently animating then append job to queue</span> <a name="l00078"></a>00078 <span class="keywordflow">if</span>(<a class="code" href="classGeneratePreviewThread.html#a4809be79bf9c1c67561868fbcc88fd1f" title="is the worker thread currently generating a file preview?">updating</a>) <a name="l00079"></a>00079 { <a name="l00080"></a>00080 <a class="code" href="classGeneratePreviewThread.html#ad7505a7bf8e25d9208d96ddb51f5ca65" title="next file to be processed by worker thread">queue</a> = <a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a>; <a name="l00081"></a>00081 <a class="code" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984" title="locking mutex - necessary to prevent multiple threads from accessing the updating...">lockingMutex</a>.unlock(); <a name="l00082"></a>00082 <span class="keywordflow">return</span>; <a name="l00083"></a>00083 } <a name="l00084"></a>00084 <span class="comment">//else set animating to true, actually initiate job</span> <a name="l00085"></a>00085 <span class="keywordflow">else</span> <a name="l00086"></a>00086 { <a name="l00087"></a>00087 <a class="code" href="classGeneratePreviewThread.html#a4809be79bf9c1c67561868fbcc88fd1f" title="is the worker thread currently generating a file preview?">updating</a> = <span class="keyword">true</span>; <a name="l00088"></a>00088 this-><a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a> = <a class="code" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a" title="current file being processed">filename</a>; <a name="l00089"></a>00089 <a class="code" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984" title="locking mutex - necessary to prevent multiple threads from accessing the updating...">lockingMutex</a>.unlock(); <a name="l00090"></a>00090 <a class="code" href="classGeneratePreviewThread.html#a29affa3f16c4b04522de227d68ac2450">QThread::start</a>(); <a name="l00091"></a>00091 } <a name="l00092"></a>00092 } </pre></div></p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="acd55c605c796212412940d4988f4253a"></a><!-- doxytag: member="GeneratePreviewThread::filename" ref="acd55c605c796212412940d4988f4253a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QString <a class="el" href="classGeneratePreviewThread.html#acd55c605c796212412940d4988f4253a">GeneratePreviewThread::filename</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>current file being processed </p> <p>Definition at line <a class="el" href="addPhotosDialog_8h_source.html#l00038">38</a> of file <a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a>.</p> <p>Referenced by <a class="el" href="addPhotosDialog_8cpp_source.html#l00094">run()</a>.</p> </div> </div> <a class="anchor" id="a6611d14aeaa6173cc6e256a817865984"></a><!-- doxytag: member="GeneratePreviewThread::lockingMutex" ref="a6611d14aeaa6173cc6e256a817865984" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QMutex <a class="el" href="classGeneratePreviewThread.html#a6611d14aeaa6173cc6e256a817865984">GeneratePreviewThread::lockingMutex</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>locking mutex - necessary to prevent multiple threads from accessing the updating bool or queue variable simultaniously </p> <p>Definition at line <a class="el" href="addPhotosDialog_8h_source.html#l00052">52</a> of file <a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a>.</p> <p>Referenced by <a class="el" href="addPhotosDialog_8cpp_source.html#l00094">run()</a>, and <a class="el" href="addPhotosDialog_8cpp_source.html#l00072">start()</a>.</p> </div> </div> <a class="anchor" id="acced915beb70c76416f0518aea250104"></a><!-- doxytag: member="GeneratePreviewThread::previewWidget" ref="acced915beb70c76416f0518aea250104" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classFilePreview.html">FilePreview</a>* <a class="el" href="classGeneratePreviewThread.html#acced915beb70c76416f0518aea250104">GeneratePreviewThread::previewWidget</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>handle on preview widget necessary for posting an update event once the current file has been processed </p> <p>Definition at line <a class="el" href="addPhotosDialog_8h_source.html#l00042">42</a> of file <a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a>.</p> <p>Referenced by <a class="el" href="addPhotosDialog_8cpp_source.html#l00094">run()</a>.</p> </div> </div> <a class="anchor" id="ad7505a7bf8e25d9208d96ddb51f5ca65"></a><!-- doxytag: member="GeneratePreviewThread::queue" ref="ad7505a7bf8e25d9208d96ddb51f5ca65" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">QString <a class="el" href="classGeneratePreviewThread.html#ad7505a7bf8e25d9208d96ddb51f5ca65">GeneratePreviewThread::queue</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>next file to be processed by worker thread </p> <p>Definition at line <a class="el" href="addPhotosDialog_8h_source.html#l00048">48</a> of file <a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a>.</p> <p>Referenced by <a class="el" href="addPhotosDialog_8cpp_source.html#l00060">GeneratePreviewThread()</a>, <a class="el" href="addPhotosDialog_8cpp_source.html#l00094">run()</a>, and <a class="el" href="addPhotosDialog_8cpp_source.html#l00072">start()</a>.</p> </div> </div> <a class="anchor" id="a4809be79bf9c1c67561868fbcc88fd1f"></a><!-- doxytag: member="GeneratePreviewThread::updating" ref="a4809be79bf9c1c67561868fbcc88fd1f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="classGeneratePreviewThread.html#a4809be79bf9c1c67561868fbcc88fd1f">GeneratePreviewThread::updating</a><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>is the worker thread currently generating a file preview? </p> <p>Definition at line <a class="el" href="addPhotosDialog_8h_source.html#l00045">45</a> of file <a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a>.</p> <p>Referenced by <a class="el" href="addPhotosDialog_8cpp_source.html#l00060">GeneratePreviewThread()</a>, <a class="el" href="addPhotosDialog_8cpp_source.html#l00094">run()</a>, and <a class="el" href="addPhotosDialog_8cpp_source.html#l00072">start()</a>.</p> </div> </div> <hr/>The documentation for this class was generated from the following files:<ul> <li><a class="el" href="addPhotosDialog_8h_source.html">addPhotosDialog.h</a></li> <li><a class="el" href="addPhotosDialog_8cpp_source.html">addPhotosDialog.cpp</a></li> </ul> </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>