[Lemon-commits] [lemon_svn] hegyi: r2100 - hugo/trunk/gui
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:50:09 CET 2006
Author: hegyi
Date: Wed Jul 27 13:19:35 2005
New Revision: 2100
Modified:
hugo/trunk/gui/graph_displayer_canvas-edge.cc
hugo/trunk/gui/graph_displayer_canvas-event.cc
hugo/trunk/gui/graph_displayer_canvas-node.cc
Log:
Sorry for the previous commit, it was not ready yet, but that damned up arrow... So in this new revision string-double and double-string conversion is corrected to a more C++ way.
Modified: hugo/trunk/gui/graph_displayer_canvas-edge.cc
==============================================================================
--- hugo/trunk/gui/graph_displayer_canvas-edge.cc (original)
+++ hugo/trunk/gui/graph_displayer_canvas-edge.cc Wed Jul 27 13:19:35 2005
@@ -119,37 +119,10 @@
{
edgemap_to_edit=mapname;
double number=(*(mapstorage.edgemap_storage)[mapname])[i];
-// int length=1;
-// //if number is smaller than one, length would be negative, or invalid
-// if(number>=1)
-// {
-// length=(int)(floor(log(number)/log(10)))+1;
-// }
-// int maxpos=(int)(pow(10,length-1));
-// int strl=length+1+RANGE;
-// char * str=new char[strl];
-// str[length]='.';
-// str[strl]='\0';
-
-// for(int j=0;j<strl;j++)
-// {
-// if(j!=length)
-// {
-// if((number-(int)number)>ALMOST_ONE)
-// {
-// number=round(number);
-// }
-// int digit=(int)(number/maxpos);
-// str[j]=(digit+'0');
-// number-=digit*maxpos;
-// number*=10;
-// }
-// }
-// edgetextmap[i]->property_text().set_value(str);
std::ostringstream ostr;
ostr << number;
-
+
edgetextmap[i]->property_text().set_value(ostr.str());
}
else
@@ -165,34 +138,11 @@
if(mapname!="Default")
{
double number=(*(mapstorage.edgemap_storage)[mapname])[edge];
- int length=1;
- //if number is smaller than one, length would be negative, or invalid
- if(number>=1)
- {
- length=(int)(floor(log(number)/log(10)))+1;
- }
- int maxpos=(int)(pow(10,length-1));
- int strl=length+1+RANGE;
- char * str=new char[strl];
- str[length]='.';
- str[strl]='\0';
-
- for(int j=0;j<strl;j++)
- {
- if(j!=length)
- {
- if((number-(int)number)>ALMOST_ONE)
- {
- number=round(number);
- }
- int digit=(int)(number/maxpos);
- str[j]=(digit+'0');
- number-=digit*maxpos;
- number*=10;
- }
- }
-
- edgetextmap[edge]->property_text().set_value(str);
+
+ std::ostringstream ostr;
+ ostr << number;
+
+ edgetextmap[edge]->property_text().set_value(ostr.str());
}
else
{
Modified: hugo/trunk/gui/graph_displayer_canvas-event.cc
==============================================================================
--- hugo/trunk/gui/graph_displayer_canvas-event.cc (original)
+++ hugo/trunk/gui/graph_displayer_canvas-event.cc Wed Jul 27 13:19:35 2005
@@ -751,21 +751,25 @@
}
mapvalue_ch[i]=mapvalue_str[i];
}
-
- double mapvalue_d=atof(mapvalue_ch);
-
+
//if the text in the entry was correct
if((point_num<=1)&&(valid_double))
{
+ double mapvalue_d=atof(mapvalue_ch);
+
+ //reconvert the double to string for the correct format
+ std::ostringstream ostr;
+ ostr << mapvalue_d;
+
//save the value to the correct place
switch(actual_tool)
{
case EDGE_MAP_EDIT:
- edgetextmap[active_edge]->property_text().set_value(mapvalue_str);
+ edgetextmap[active_edge]->property_text().set_value(ostr.str());
(*(mapstorage.edgemap_storage)[edgemap_to_edit])[active_edge]=mapvalue_d;
break;
case NODE_MAP_EDIT:
- nodetextmap[active_node]->property_text().set_value(mapvalue_str);
+ nodetextmap[active_node]->property_text().set_value(ostr.str());
(*(mapstorage.nodemap_storage)[nodemap_to_edit])[active_node]=mapvalue_d;
break;
default:
Modified: hugo/trunk/gui/graph_displayer_canvas-node.cc
==============================================================================
--- hugo/trunk/gui/graph_displayer_canvas-node.cc (original)
+++ hugo/trunk/gui/graph_displayer_canvas-node.cc Wed Jul 27 13:19:35 2005
@@ -149,37 +149,11 @@
{
nodemap_to_edit=mapname;
double number=(*actual_map)[i];
- int length=1;
- //if number is smaller than one, length would be negative, or invalid
- if(number>=1)
- {
- length=(int)(floor(log(number)/log(10)))+1;
- }
- int maxpos=(int)(pow(10,length-1));
- int strl=length+1+RANGE;
- char * str=new char[strl];
- str[length]='.';
- str[strl]='\0';
-
- for(int j=0;j<strl;j++)
- {
- if(j!=length)
- {
-// std::cout << (number) << "-" << (int)number << "=" << (number)-(int)number << std::endl;
- if((number-(int)number)>ALMOST_ONE)
- {
-// std::cout<<"rounding: " <<number<<std::endl;
- number=round(number);
- }
- int digit=(int)(number/maxpos);
-// std::cout << number << "/" << maxpos << "=" << digit << std::endl;
- str[j]=(digit+'0');
- number-=digit*maxpos;
- number*=10;
- }
- }
-
- nodetextmap[i]->property_text().set_value(str);
+
+ std::ostringstream ostr;
+ ostr << number;
+
+ nodetextmap[i]->property_text().set_value(ostr.str());
}
else
{
@@ -193,34 +167,11 @@
if(mapname!="Default")
{
double number=(*actual_map)[node];
- int length=1;
- //if number is smaller than one, length would be negative, or invalid
- if(number>=1)
- {
- length=(int)(floor(log(number)/log(10)))+1;
- }
- int maxpos=(int)(pow(10,length-1));
- int strl=length+1+RANGE;
- char * str=new char[strl];
- str[length]='.';
- str[strl]='\0';
-
- for(int j=0;j<strl;j++)
- {
- if(j!=length)
- {
- if((number-(int)number)>ALMOST_ONE)
- {
- number=round(number);
- }
- int digit=(int)(number/maxpos);
- str[j]=(digit+'0');
- number-=digit*maxpos;
- number*=10;
- }
- }
-
- nodetextmap[node]->property_text().set_value(str);
+
+ std::ostringstream ostr;
+ ostr << number;
+
+ nodetextmap[node]->property_text().set_value(ostr.str());
}
else
{
More information about the Lemon-commits
mailing list