Bugfix: CurveEditor were possibly displayed one above the other (introduced by the previous changeset)
This commit is contained in:
@@ -231,7 +231,7 @@ void CurveEditor::setBottomBarBgGradient (const std::vector<GradientMilestone> &
|
||||
}
|
||||
|
||||
void CurveEditor::refresh () {
|
||||
subGroup->switchGUI();
|
||||
subGroup->refresh(this);
|
||||
}
|
||||
|
||||
void CurveEditor::setCurveColorProvider(ColorProvider* cp, int callerId) {
|
||||
|
@@ -114,6 +114,7 @@ public:
|
||||
int getValLinear() { return valLinear; }
|
||||
virtual void updateBackgroundHistogram (CurveEditor* ce) {}
|
||||
virtual void switchGUI() = 0;
|
||||
virtual void refresh(CurveEditor *curveToRefresh) = 0;
|
||||
|
||||
protected:
|
||||
|
||||
|
@@ -238,6 +238,29 @@ DiagonalCurveEditor* DiagonalCurveEditorSubGroup::addCurve(Glib::ustring curveLa
|
||||
return newCE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Force the resize of the curve editor, if the displayed one is the requested one
|
||||
*/
|
||||
void DiagonalCurveEditorSubGroup::refresh(CurveEditor *curveToRefresh) {
|
||||
if (curveToRefresh != NULL && curveToRefresh == static_cast<DiagonalCurveEditor*>(parent->displayedCurve)) {
|
||||
switch((DiagonalCurveType)(curveToRefresh->curveType->getSelected())) {
|
||||
case (DCT_Spline):
|
||||
customCurve->refresh();
|
||||
break;
|
||||
case (DCT_Parametric):
|
||||
paramCurve->refresh();
|
||||
shcSelector->refresh();
|
||||
break;
|
||||
case (DCT_NURBS):
|
||||
NURBSCurve->refresh();
|
||||
break;
|
||||
default: // (DCT_Linear, DCT_Unchanged)
|
||||
// ... do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Switch the editor widgets to the currently edited curve
|
||||
*/
|
||||
|
@@ -65,6 +65,7 @@ public:
|
||||
DiagonalCurveEditor* addCurve(Glib::ustring curveLabel = "");
|
||||
virtual void updateBackgroundHistogram (CurveEditor* ce);
|
||||
void switchGUI();
|
||||
void refresh(CurveEditor *curveToRefresh);
|
||||
|
||||
protected:
|
||||
void storeCurveValues (CurveEditor* ce, const std::vector<double>& p);
|
||||
|
@@ -83,6 +83,22 @@ FlatCurveEditor* FlatCurveEditorSubGroup::addCurve(Glib::ustring curveLabel, boo
|
||||
return newCE;
|
||||
}
|
||||
|
||||
/*
|
||||
* Force the resize of the curve editor, if the displayed one is the requested one
|
||||
*/
|
||||
void FlatCurveEditorSubGroup::refresh(CurveEditor *curveToRefresh) {
|
||||
if (curveToRefresh != NULL && curveToRefresh == static_cast<FlatCurveEditor*>(parent->displayedCurve)) {
|
||||
switch(FlatCurveType(curveToRefresh->curveType->getSelected())) {
|
||||
case (FCT_MinMaxCPoints):
|
||||
CPointsCurve->refresh();
|
||||
break;
|
||||
default: // (DCT_Linear, DCT_Unchanged)
|
||||
// ... do nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Switch the editor widgets to the currently edited curve
|
||||
*/
|
||||
@@ -311,6 +327,7 @@ bool FlatCurveEditorSubGroup::curveReset(int cType) {
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*void FlatCurveEditorSubGroup::updateBackgroundHistogram (CurveEditor* ce) {
|
||||
|
@@ -43,6 +43,7 @@ public:
|
||||
FlatCurveEditor* addCurve(Glib::ustring curveLabel = "", bool periodic = true);
|
||||
//virtual void updateBackgroundHistogram (CurveEditor* ce);
|
||||
void switchGUI();
|
||||
void refresh(CurveEditor *curveToRefresh);
|
||||
|
||||
protected:
|
||||
void storeCurveValues (CurveEditor* ce, const std::vector<double>& p);
|
||||
|
@@ -100,3 +100,15 @@ void MyCurve::styleChanged (const Glib::RefPtr<Gtk::Style>& style) {
|
||||
queue_draw ();
|
||||
}
|
||||
|
||||
void MyCurve::refresh() {
|
||||
if (leftBar != NULL)
|
||||
leftBar->setDirty(true);
|
||||
if (bottomBar != NULL)
|
||||
bottomBar->setDirty(true);
|
||||
|
||||
setDirty(true);
|
||||
|
||||
Glib::RefPtr<Gdk::Window> win = get_window();
|
||||
if (win)
|
||||
win->invalidate(true);
|
||||
}
|
||||
|
@@ -106,6 +106,7 @@ class MyCurve : public Gtk::DrawingArea, public BackBuffer, public ColorCaller {
|
||||
void notifyListener ();
|
||||
void updateBackgroundHistogram (LUTu & hist) {return;} ;
|
||||
void forceResize() { sized = RS_Force; }
|
||||
void refresh();
|
||||
void styleChanged (const Glib::RefPtr<Gtk::Style>& style);
|
||||
virtual std::vector<double> getPoints () = 0;
|
||||
virtual void setPoints (const std::vector<double>& p) = 0;
|
||||
|
@@ -237,3 +237,10 @@ bool SHCSelector::reset () { // : movingPosition(-1), cl(NULL) {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void SHCSelector::refresh() {
|
||||
setDirty(true);
|
||||
Glib::RefPtr<Gdk::Window> win = get_window();
|
||||
if (win)
|
||||
win->invalidate(true);
|
||||
}
|
||||
|
@@ -66,6 +66,7 @@ class SHCSelector : public Gtk::DrawingArea, public ColoredBar {
|
||||
bool on_motion_notify_event (GdkEventMotion* event);
|
||||
void styleChanged (const Glib::RefPtr<Gtk::Style>& style);
|
||||
bool reset ();
|
||||
void refresh();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user