diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2010-07-06 08:28:56 +0000 |
|---|---|---|
| committer | Jon A. Cruz <jon@joncruz.org> | 2010-07-06 08:28:56 +0000 |
| commit | 8f6879f2ede34a0783f72b2276d4318f5b112900 (patch) | |
| tree | 5fbc3a5977523cdcba698cef995576b40b5f112a /src/sp-gradient.cpp | |
| parent | Translations. New Telugu translation by వీవెన్ (Veeven). (diff) | |
| download | inkscape-8f6879f2ede34a0783f72b2276d4318f5b112900.tar.gz inkscape-8f6879f2ede34a0783f72b2276d4318f5b112900.zip | |
Removed "Add" and enabled "Delete" for swatch context menu. Updated swatch marker string.
(bzr r9582)
Diffstat (limited to 'src/sp-gradient.cpp')
| -rw-r--r-- | src/sp-gradient.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp index 9c1ea0da7..2a3142b04 100644 --- a/src/sp-gradient.cpp +++ b/src/sp-gradient.cpp @@ -288,15 +288,19 @@ SPGradientSpread SPGradient::getSpread() const return spread; } -void SPGradient::setSwatch() +void SPGradient::setSwatch( bool swatch ) { - if ( !isSwatch() ) { - if ( hasStops() && (getStopCount() == 0) ) { - repr->setAttribute("osb:paint", "solid"); + if ( swatch != isSwatch() ) { + if ( swatch ) { + if ( hasStops() && (getStopCount() == 0) ) { + repr->setAttribute( "osb:paint", "solid" ); + } else { + repr->setAttribute( "osb:paint", "gradient" ); + } } else { - repr->setAttribute("osb:paint", "gradient"); + repr->setAttribute( "osb:paint", 0 ); } - requestModified(SP_OBJECT_MODIFIED_FLAG); + requestModified( SP_OBJECT_MODIFIED_FLAG ); } } @@ -594,12 +598,19 @@ void SPGradientImpl::childAdded(SPObject *object, Inkscape::XML::Node *child, In gr->invalidateVector(); - if (((SPObjectClass *) gradient_parent_class)->child_added) + if (((SPObjectClass *) gradient_parent_class)->child_added) { (* ((SPObjectClass *) gradient_parent_class)->child_added)(object, child, ref); + } SPObject *ochild = sp_object_get_child_by_repr(object, child); if ( ochild && SP_IS_STOP(ochild) ) { gr->has_stops = TRUE; + if ( gr->getStopCount() > 0 ) { + gchar const * attr = gr->repr->attribute("osb:paint"); + if ( attr && !strcmp(attr, "solid") ) { + gr->repr->setAttribute("osb:paint", "gradient"); + } + } } /// \todo Fixme: should we schedule "modified" here? @@ -628,6 +639,13 @@ void SPGradientImpl::removeChild(SPObject *object, Inkscape::XML::Node *child) } } + if ( gr->getStopCount() == 0 ) { + gchar const * attr = gr->repr->attribute("osb:paint"); + if ( attr && !strcmp(attr, "gradient") ) { + gr->repr->setAttribute("osb:paint", "solid"); + } + } + /* Fixme: should we schedule "modified" here? */ object->requestModified(SP_OBJECT_MODIFIED_FLAG); } |
