Code

Merge and cleanup of GSoC C++-ification project.
[inkscape.git] / src / widgets / swatch-selector.cpp
index b1329b92a438aed2b9012232c764f3c2b0e9ca2f..935282a3a606a60a5a5db38513aff05dc89ea86c 100644 (file)
@@ -135,8 +135,8 @@ void SwatchSelector::_changedCb(SPColorSelector */*csel*/, void *data)
                 os << "stop-color:" << c << ";stop-opacity:" << static_cast<gdouble>(alpha) <<";";
                 SP_OBJECT_REPR(stop)->setAttribute("style", os.str().c_str());
 
-                SPDocumentUndo::done(SP_OBJECT_DOCUMENT(ngr), SP_VERB_CONTEXT_GRADIENT,
-                                 _("Change swatch color"));
+                DocumentUndo::done(SP_OBJECT_DOCUMENT(ngr), SP_VERB_CONTEXT_GRADIENT,
+                                   _("Change swatch color"));
             }
         }
     }
@@ -169,10 +169,9 @@ void SwatchSelector::connectchangedHandler( GCallback handler, void *data )
 void SwatchSelector::setVector(SPDocument */*doc*/, SPGradient *vector)
 {
     //GtkVBox * box = gobj();
-
     _gsel->setVector((vector) ? SP_OBJECT_DOCUMENT(vector) : 0, vector);
 
-    if (vector) {
+    if ( vector && vector->isSolid() ) {
         SPStop* stop = vector->getFirstStop();
 
         guint32 const colorVal = sp_stop_get_rgba32(stop);
@@ -180,6 +179,9 @@ void SwatchSelector::setVector(SPDocument */*doc*/, SPGradient *vector)
         SPColor color( SP_RGBA32_R_F(colorVal), SP_RGBA32_G_F(colorVal), SP_RGBA32_B_F(colorVal) );
         // set its color, from the stored array
         _csel->base->setColor( color );
+        gtk_widget_show_all( GTK_WIDGET(_csel) );
+    } else {
+        gtk_widget_hide( GTK_WIDGET(_csel) );
     }
 
 /*
@@ -200,4 +202,4 @@ void SwatchSelector::setVector(SPDocument */*doc*/, SPGradient *vector)
   fill-column:99
   End:
 */
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :