00001
00002
00003
00004
00005
00006
00007 #ifndef DLG_SETTINGS_COLOR_FILTER_H
00008 #define DLG_SETTINGS_COLOR_FILTER_H
00009
00010 #include "ColorFilterMode.h"
00011 #include "DlgSettingsAbstractBase.h"
00012 #include <QColor>
00013 #include <QImage>
00014 #include <QPixmap>
00015
00016 class DlgFilterThread;
00017 class DocumentModelColorFilter;
00018 class QComboBox;
00019 class QGraphicsScene;
00020 class QGridLayout;
00021 class QLabel;
00022 class QRadioButton;
00023 class ViewPreview;
00024 class ViewProfile;
00025 class ViewProfileDivider;
00026 class ViewProfileScale;
00027
00029 class DlgSettingsColorFilter : public DlgSettingsAbstractBase
00030 {
00031 Q_OBJECT;
00032
00033 public:
00035 DlgSettingsColorFilter(MainWindow &mainWindow);
00036 virtual ~DlgSettingsColorFilter();
00037
00038 virtual void createOptionalSaveDefault (QHBoxLayout *layout);
00039 virtual QWidget *createSubPanel ();
00040 virtual void load (CmdMediator &cmdMediator);
00041 virtual void setSmallDialogs (bool smallDialogs);
00042
00043 public slots:
00045 void slotTransferPiece (int xLeft,
00046 QImage image);
00047
00048 signals:
00050 void signalApplyFilter (ColorFilterMode colorFilterMode,
00051 double low,
00052 double high);
00053
00054 private slots:
00055 void slotCurveName(const QString &curveName);
00056 void slotDividerHigh (double);
00057 void slotDividerLow (double);
00058 void slotForeground();
00059 void slotHue();
00060 void slotIntensity();
00061 void slotSaturation();
00062 void slotValue();
00063
00064 protected:
00065 virtual void handleOk ();
00066
00067 private:
00068
00069 void createControls (QGridLayout *layout, int &row);
00070 void createPreview (QGridLayout *layout, int &row);
00071 void createProfileAndScale (QGridLayout *layout, int &row);
00072 QRgb createThread ();
00073 void loadForCurveName();
00074 static int PROFILE_HEIGHT_IN_ROWS () { return 6; }
00075 static int PROFILE_SCENE_WIDTH () { return 100; }
00076 static int PROFILE_SCENE_HEIGHT () { return 100; }
00077 void updateHistogram();
00078 void updatePreview();
00079
00080 QComboBox *m_cmbCurveName;
00081
00082 QRadioButton *m_btnIntensity;
00083 QRadioButton *m_btnForeground;
00084 QRadioButton *m_btnHue;
00085 QRadioButton *m_btnSaturation;
00086 QRadioButton *m_btnValue;
00087
00088 QGraphicsScene *m_sceneProfile;
00089 ViewProfile *m_viewProfile;
00090 ViewProfileScale *m_scale;
00091
00092 QGraphicsScene *m_scenePreview;
00093 ViewPreview *m_viewPreview;
00094 ViewProfileDivider *m_dividerLow;
00095 ViewProfileDivider *m_dividerHigh;
00096
00097
00098
00099 DlgFilterThread *m_filterThread;
00100
00101 QImage m_imagePreview;
00102
00103 DocumentModelColorFilter *m_modelColorFilterBefore;
00104 DocumentModelColorFilter *m_modelColorFilterAfter;
00105 };
00106
00107 #endif // DLG_SETTINGS_COLOR_FILTER_H