int GradientStopEditor::moveStop( int stop, int newStopValue, qreal newStopPosition ) { if( ( stop < 0 ) || ( stop >= values.size() ) ) return -1; if( newStopValue < 0 ) newStopValue = 0; if( newStopValue > 255 ) newStopValue = 255; if( stop != 0 && stop != ( values.size() - 1 ) ) { if( newStopPosition < 0 ) newStopPosition = 0; if( newStopPosition > 1.0 ) newStopPosition = 1.0; } else newStopPosition = positions[ stop ]; if( ( stop == 0 ) || ( stop == ( values.size() - 1 ) ) ) { values[ stop ] = newStopValue; if( stopChannel == composite ) generateBackground( true ); update(); emit stopMoved( stop, newStopValue, newStopPosition, stop ); return stop; } values.remove( stop ); positions.remove( stop ); int newIndex = addStop( newStopValue, newStopPosition, false ); if( currentMovedStop == stop ) currentMovedStop = newIndex; emit stopMoved( stop, newStopValue, newStopPosition, newIndex ); if( stopChannel == composite ) generateBackground( true ); update(); return newIndex; }
void QtGradientStopsModel::moveStop(QtGradientStop *stop, qreal newPos) { if (!d_ptr->m_stopToPos.contains(stop)) return; if (d_ptr->m_posToStop.contains(newPos)) return; if (newPos > 1.0) newPos = 1.0; else if (newPos < 0.0) newPos = 0.0; emit stopMoved(stop, newPos); const qreal oldPos = stop->position(); stop->setPosition(newPos); d_ptr->m_stopToPos[stop] = newPos; d_ptr->m_posToStop.remove(oldPos); d_ptr->m_posToStop[newPos] = stop; }