1 #pragma once 2 3 #ifndef ADJUST_LEVELS_POPUP_H 4 #define ADJUST_LEVELS_POPUP_H 5 6 // tnzcore includes 7 #include "traster.h" 8 9 // toonzQt includes 10 #include "toonzqt/dvdialog.h" 11 #include "toonzqt/planeviewer.h" 12 #include "toonzqt/marksbar.h" 13 14 class Histogram; 15 namespace DVGui { 16 class IntLineEdit; 17 } 18 19 class QShowEvent; 20 class QHideEvent; 21 class QPushButton; 22 23 //************************************************************** 24 // EditableMarksBar declaration 25 //************************************************************** 26 27 class EditableMarksBar final : public QFrame { 28 Q_OBJECT 29 30 MarksBar *m_marksBar; 31 DVGui::IntLineEdit *m_fields[2]; 32 33 public: 34 EditableMarksBar(QWidget *parent = 0); 35 ~EditableMarksBar(); 36 37 public: marks()38 const QVector<int> &marks() const { return m_marksBar->values(); } 39 marksBar()40 const MarksBar *marksBar() const { return m_marksBar; } marksBar()41 MarksBar *marksBar() { return m_marksBar; } 42 43 void getValues(int *values) const; 44 45 signals: 46 47 void paramsChanged(); 48 49 protected slots: 50 51 void onFieldEdited(); 52 53 public slots: 54 55 void updateFields(); 56 }; 57 58 //************************************************************** 59 // Adjust-Levels Popup declaration 60 //************************************************************** 61 62 class AdjustLevelsPopup final : public DVGui::Dialog { 63 Q_OBJECT 64 65 Histogram *m_histogram; 66 QPushButton *m_okBtn; 67 68 EditableMarksBar *m_marksBar[10]; 69 70 TRasterP m_inputRas; 71 72 double m_thresholdD; 73 int m_threshold; 74 75 private: 76 class Swatch; 77 Swatch *m_viewer; 78 79 public: 80 AdjustLevelsPopup(); 81 82 protected: 83 void showEvent(QShowEvent *se) override; 84 void hideEvent(QHideEvent *se) override; 85 86 void acquireRaster(); 87 void updateProcessedImage(); 88 void getParameters(int *in0, int *in1, int *out0, int *out1); 89 90 void setThreshold(double t); 91 92 protected slots: 93 94 void clampRange(); 95 void autoAdjust(); 96 void reset(); 97 98 void onSelectionChanged(); 99 void onParamsChanged(); 100 101 void apply(); 102 }; 103 104 #endif // ADJUST_LEVELS_POPUP_H 105