Engauge Digitizer  2
DlgFilterThread.cpp
1 /******************************************************************************************************
2  * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released *
3  * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file *
4  * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. *
5  ******************************************************************************************************/
6 
7 #include "DlgFilterThread.h"
8 #include "DlgSettingsColorFilter.h"
9 
10 DlgFilterThread::DlgFilterThread(const QPixmap &pixmapOriginal,
11  QRgb rgbBackground,
12  DlgSettingsColorFilter &dlgSettingsColorFilter) :
13  m_pixmapOriginal (pixmapOriginal),
14  m_rgbBackground (rgbBackground),
15  m_dlgSettingsColorFilter (dlgSettingsColorFilter),
16  m_dlgFilterWorker (0)
17 {
18 }
19 
21 {
22  // Create worker only once
23  if (m_dlgFilterWorker == 0) {
24 
25  m_dlgFilterWorker = new DlgFilterWorker (m_pixmapOriginal,
26  m_rgbBackground);
27 
28  // Connect signal to start process
29  connect (&m_dlgSettingsColorFilter, SIGNAL (signalApplyFilter (ColorFilterMode, double, double)),
30  m_dlgFilterWorker, SLOT (slotNewParameters (ColorFilterMode, double, double)));
31 
32  // Connect signal to return each piece of completed processing
33  connect (m_dlgFilterWorker, SIGNAL (signalTransferPiece (int, QImage)),
34  &m_dlgSettingsColorFilter, SLOT (slotTransferPiece (int, QImage)));
35  }
36 
37  exec ();
38 }
Dialog for editing filtering settings.
DlgFilterThread(const QPixmap &pixmapOriginal, QRgb rgbBackground, DlgSettingsColorFilter &dlgSettingsColorFilter)
Single constructor.
Class for processing new filter settings. This is based on http://blog.debao.me/2013/08/how-to-use-qw...
virtual void run()
Run this thread.
void signalTransferPiece(int xLeft, QImage image)
Send a processed vertical piece of the original pixmap. The destination is between xLeft and xLeft+pi...