void ColorCurveCommand::onExecute(Context* context) { // Default curve if (!the_curve) { // TODO load the curve? the_curve = new ColorCurve(ColorCurve::Linear); the_curve->addPoint(gfx::Point(0, 0)); the_curve->addPoint(gfx::Point(255, 255)); App::instance()->Exit.connect(&on_exit_delete_curve); } ColorCurveFilter filter; filter.setCurve(the_curve); FilterManagerImpl filterMgr(context->getActiveDocument(), &filter); filterMgr.setTarget(TARGET_RED_CHANNEL | TARGET_GREEN_CHANNEL | TARGET_BLUE_CHANNEL | TARGET_GRAY_CHANNEL | TARGET_ALPHA_CHANNEL); ColorCurveWindow window(filter, filterMgr); if (window.doModal()) { // TODO save the curve? } }
void ColorCurveCommand::onExecute(Context* context) { // Default curve if (!the_curve) { // TODO load the curve? the_curve.reset(new ColorCurve(ColorCurve::Linear)); the_curve->addPoint(gfx::Point(0, 0)); the_curve->addPoint(gfx::Point(255, 255)); } ColorCurveFilter filter; filter.setCurve(the_curve.get()); FilterManagerImpl filterMgr(context, &filter); filterMgr.setTarget(TARGET_RED_CHANNEL | TARGET_GREEN_CHANNEL | TARGET_BLUE_CHANNEL | TARGET_GRAY_CHANNEL | TARGET_ALPHA_CHANNEL); ColorCurveWindow window(filter, filterMgr); if (window.doModal()) { // TODO save the curve? } }