diff options
| author | Adonis Papaderos <ado.papas@yahoo.gr> | 2010-11-25 10:40:29 +0000 |
|---|---|---|
| committer | Adonis Papaderos <ado.papas@yahoo.gr> | 2010-11-25 10:40:29 +0000 |
| commit | 8c3c1f7906d0d489042adfd7aa846112b676dc29 (patch) | |
| tree | 1dd471351a5f77b4a6ca7f1853f1bae827c235a5 /src | |
| parent | Dutch tips tutorial added. (diff) | |
| download | inkscape-8c3c1f7906d0d489042adfd7aa846112b676dc29.tar.gz inkscape-8c3c1f7906d0d489042adfd7aa846112b676dc29.zip | |
Fix Bug #447385 - Drag'n'drop from swatches doesn't always work
(bzr r9917.1.1)
Diffstat (limited to 'src')
| -rw-r--r-- | src/widgets/ege-paint-def.cpp | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/src/widgets/ege-paint-def.cpp b/src/widgets/ege-paint-def.cpp index cab675b29..2fc6927df 100644 --- a/src/widgets/ege-paint-def.cpp +++ b/src/widgets/ege-paint-def.cpp @@ -50,6 +50,7 @@ #include <stdlib.h> #include <string.h> #include <stdio.h> +#include <glibmm/stringutils.h> #if !defined(_) #define _(s) gettext(s) @@ -64,8 +65,6 @@ static std::string mimeTEXT("text/plain"); static std::string mimeX_COLOR("application/x-color"); static std::string mimeOSWB_COLOR("application/x-oswb-color"); -static std::string doubleToStr(double d); - PaintDef::PaintDef() : descr(_("none")), type(NONE), @@ -183,11 +182,11 @@ void PaintDef::getMIMEData(std::string const & type, char*& dest, int& len, int& { tmp += std::string("<color name=\"") + descr + "\">"; tmp += "<sRGB r=\""; - tmp += doubleToStr(getR()/255.0); + tmp += Glib::Ascii::dtostr(getR()/255.0); tmp += "\" g=\""; - tmp += doubleToStr(getG()/255.0); + tmp += Glib::Ascii::dtostr(getG()/255.0); tmp += "\" b=\""; - tmp += doubleToStr(getB()/255.0); + tmp += Glib::Ascii::dtostr(getB()/255.0); tmp += "\"/>"; tmp += "</color>"; } @@ -233,20 +232,17 @@ bool PaintDef::fromMIMEData(std::string const & type, char const * data, int len this->type = ege::PaintDef::RGB; size_t numPos = srgb.find("r="); if (numPos != std::string::npos) { - char* endPtr = 0; - double dbl = strtod(srgb.c_str() + numPos + 3, &endPtr); + double dbl = Glib::Ascii::strtod(srgb.substr(numPos + 3)); this->r = static_cast<int>(255 * dbl); } numPos = srgb.find("g="); if (numPos != std::string::npos) { - char* endPtr = 0; - double dbl = strtod(srgb.c_str() + numPos + 3, &endPtr); + double dbl = Glib::Ascii::strtod(srgb.substr(numPos + 3)); this->g = static_cast<int>(255 * dbl); } numPos = srgb.find("b="); if (numPos != std::string::npos) { - char* endPtr = 0; - double dbl = strtod(srgb.c_str() + numPos + 3, &endPtr); + double dbl = Glib::Ascii::strtod(srgb.substr(numPos + 3)); this->b = static_cast<int>(255 * dbl); } @@ -307,13 +303,6 @@ void PaintDef::removeCallback( ColorCallback /*cb*/, void* /*data*/ ) { } -static std::string doubleToStr(double d) -{ - // TODO ensure "." is used for decimal separator. - std::stringstream out; - out << d; - return out.str(); -} } // namespace ege |
