Commit be838038 authored by Mathieu Faverge's avatar Mathieu Faverge

Apply patch 9 from issue #13 - modernize loop convert

parent 68d76d81
......@@ -13,9 +13,8 @@ Palette::Palette(const std::string &name) : _name(name) {
}
Palette::~Palette() {
for(std::map<std::string, Color *>::iterator it = _pairs.begin() ;
it != _pairs.end() ; ++ it) {
Color *c = (*it).second;
for(auto & _pair : _pairs) {
Color *c = _pair.second;
delete c;
}
}
......
......@@ -93,7 +93,7 @@ bool convert_to_double(const std::string &arg, double *val) {
}
}
double clockGet (void)
double clockGet ()
{
#if (defined X_ARCHalpha_compaq_osf1) || (defined X_ARCHi686_mac)
struct rusage data;
......
......@@ -66,6 +66,6 @@ bool convert_to_double(const std::string &arg, double *val);
Uses different timing routines depending on the machine architecture.
\return Returns the time ellapsed since 'clockStart'.
*/
double clockGet (void);
double clockGet ();
#endif // TOOLS_HPP
......@@ -930,16 +930,12 @@ void Core::launch_action(int state, void* arg) {
const Container::Vector *root_containers = _trace->get_view_root_containers();
if(root_containers->empty())root_containers= _trace->get_root_containers();
if (!root_containers->empty()){
for (Container::VectorIt i = root_containers->begin();
i != root_containers->end();
i++)
if ((container = buf.search_container_by_position(*i, yr)))
for (const auto &root_container : *root_containers)
if ((container = buf.search_container_by_position(root_container, yr)))
break;
for (Container::VectorIt i = root_containers->begin();
i != root_containers->end();
i++)
if ((container2 = buf.search_container_by_position(*i, yr2)))
for (const auto &root_container : *root_containers)
if ((container2 = buf.search_container_by_position(root_container, yr2)))
break;
......@@ -1159,11 +1155,9 @@ void Core::export_variable(Variable *var, const string &filename) {
const double min = var->get_min().get_value();
const double max = var->get_max().get_value();
for(list<pair<Date, Double> >::const_iterator value = variable_values->begin();
value != variable_values->end();
value++) {
first_value = (*value).first.get_value();
second_value =((*value).second.get_value()-min)/(max-min) ;
for(const auto & variable_value : *variable_values) {
first_value = variable_value.first.get_value();
second_value =(variable_value.second.get_value()-min)/(max-min) ;
file << first_value << "\t" << second_value << endl;
}
......
......@@ -235,8 +235,8 @@ void Interface_graphic::load_windows(){
_ui_help_window, SLOT(close()));
// For the recent files menu
for (int i = 0 ; i < Session::_MAX_NB_RECENT_FILES ; ++ i) {
_recent_file_actions[i] = nullptr;
for (auto & _recent_file_action : _recent_file_actions) {
_recent_file_action = nullptr;
}
update_recent_files_menu();
......@@ -601,9 +601,9 @@ void Interface_graphic::open_recent_file() {
void Interface_graphic::on_clear_recent_files_triggered() {
Session::clear_recent_files();
// We remove the elements from the menu
for(int i = 0 ; i < Session::_MAX_NB_RECENT_FILES ; ++ i) {
if(_recent_file_actions[i] != nullptr) {
_ui_recent_files_menu->removeAction(_recent_file_actions[i]);
for(auto & _recent_file_action : _recent_file_actions) {
if(_recent_file_action != nullptr) {
_ui_recent_files_menu->removeAction(_recent_file_action);
}
}
}
......
......@@ -101,17 +101,15 @@ void Node_select::set_initial_container_names(){
// Add the root container names
QList<QTreeWidgetItem *> items;
QFlags<Qt::ItemFlag> flg;
for (Container::VectorIt it = root_containers->begin();
it != root_containers->end();
it ++) {
string name = (*it)->get_Name().to_string();
for (const auto &root_container : *root_containers) {
string name = root_container->get_Name().to_string();
QStringList temp(QString::fromStdString(name));
QTreeWidgetItem *current_node = new QTreeWidgetItem((QTreeWidgetItem *)nullptr, temp);
current_node->setData(0,Qt::UserRole,qVariantFromValue(*it));//store the pointer to the container in the Data field
current_node->setData(0,Qt::UserRole,qVariantFromValue(root_container));//store the pointer to the container in the Data field
items.append(current_node);
// Recursivity to add the children names
set_container_names_rec(current_node, (*it), flg, false);
set_container_names_rec(current_node, root_container, flg, false);
}
_nodes_original->insertTopLevelItems(0, items);
......@@ -136,20 +134,18 @@ void Node_select::set_displayed_container_names(){
// Add the root container names
QList<QTreeWidgetItem *> items;
QFlags<Qt::ItemFlag> flg= Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate;
for (Container::VectorIt it = root_containers->begin();
it != root_containers->end();
it ++) {
string name = (*it)->get_Name().to_string();
for (const auto &root_container : *root_containers) {
string name = root_container->get_Name().to_string();
QStringList temp(QString::fromStdString(name));
QTreeWidgetItem *current_node = new QTreeWidgetItem((QTreeWidgetItem *)nullptr, temp);
current_node->setFlags(flg);
current_node->setCheckState(0,Qt::Checked);
current_node->setData(0,Qt::UserRole,qVariantFromValue(*it));//store the pointer to the container in the Data field
current_node->setData(0,Qt::UserRole,qVariantFromValue(root_container));//store the pointer to the container in the Data field
items.append(current_node);
// Recursivity to add the children names
set_container_names_rec(current_node, (*it), flg, true);
set_container_names_rec(current_node, root_container, flg, true);
}
_nodes_displayed->insertTopLevelItems(0, items);
......@@ -170,18 +166,16 @@ void Node_select::set_container_names_rec(QTreeWidgetItem *current_node, Contain
if(load_view==false || children->empty())children = current_container->get_children();
//QFlags<Qt::ItemFlag> flg= Qt::ItemIsDragEnabled;
for (Container::VectorIt it = children->begin();
it != children->end();
it ++) {
for (const auto &child : *children) {
// We create the node and we do the recursivity
string name = (*it)->get_Name().to_string();
string name = child->get_Name().to_string();
QStringList temp(QString::fromStdString(name));
QTreeWidgetItem *node = new QTreeWidgetItem(current_node, temp);
node->setFlags(flg);
node->setData(0,Qt::UserRole, qVariantFromValue(*it));//store the pointer to the container in the Data field
node->setData(0,Qt::UserRole, qVariantFromValue(child));//store the pointer to the container in the Data field
if(flg & Qt::ItemIsUserCheckable)node->setCheckState(0,Qt::Checked);
set_container_names_rec(node ,(*it), flg, load_view);
set_container_names_rec(node ,child, flg, load_view);
}
}
......
......@@ -30,10 +30,7 @@
#include <QStylePainter>
#include <QStyleOptionSlider>
QxtSpanSliderPrivate::QxtSpanSliderPrivate()
{
}
QxtSpanSliderPrivate::QxtSpanSliderPrivate() = default;
void QxtSpanSliderPrivate::initStyleOption(QStyleOptionSlider* option, QxtSpanSlider::SpanHandle handle) const
{
......
......@@ -107,12 +107,11 @@ void ParserVite::parse(Trace &trace,
/* Loop over root containers to add them in the stack */
root_containers = trace.get_root_containers();
for (Container::VectorIt it = root_containers->begin();
it != root_containers->end(); it++) {
for (const auto &root_container : *root_containers) {
#ifdef DBG_PARSER_VITE
std::cerr << "+";
#endif
CTstack.push(*it);
CTstack.push(root_container);
}
#ifdef DBG_PARSER_VITE
......
......@@ -180,10 +180,8 @@ void Command_window::set_container_names() {
QList<QTreeWidgetItem *> items;
QFlags<Qt::ItemFlag> flg=Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate;
for (Container::VectorIt it = root_containers->begin();
it != root_containers->end();
it ++) {
string name = (*it)->get_Name().to_string();
for (const auto &root_container : *root_containers) {
string name = root_container->get_Name().to_string();
QStringList temp(QString::fromStdString(name));
QTreeWidgetItem *current_node = new QTreeWidgetItem((QTreeWidgetItem *)nullptr, temp);
......@@ -192,7 +190,7 @@ void Command_window::set_container_names() {
items.append(current_node);
// Recursivity to add the children names
set_container_names_rec(current_node, (*it));
set_container_names_rec(current_node, root_container);
}
(*(items.begin()))->setExpanded(true);
......@@ -203,16 +201,14 @@ void Command_window::set_container_names_rec(QTreeWidgetItem *current_node, cons
const Container::Vector *children = current_container->get_children();
QFlags<Qt::ItemFlag> flg = Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEnabled/* | Qt::ItemIsTristate*/;
for (Container::VectorIt it = children->begin();
it != children->end();
it ++) {
for (const auto &it : *children) {
// We create the node and we do the recursivity
string name = (*it)->get_Name().to_string();
string name = it->get_Name().to_string();
QStringList temp(QString::fromStdString(name));
QTreeWidgetItem *node = new QTreeWidgetItem(current_node, temp);
node->setFlags(flg);
node->setCheckState(0,Qt::Unchecked);
set_container_names_rec(node ,(*it));
set_container_names_rec(node ,it);
}
}
......
......@@ -110,9 +110,9 @@ Plugin_window::Plugin_window(Core *c, QWidget *parent)
Plugin_window::~Plugin_window() {
_plugin_directories.clear();
for(unsigned int i = 0 ; i < _plugins.size() ; i ++) {
delete _plugins[i];
_plugins[i] = nullptr;
for(auto & _plugin : _plugins) {
delete _plugin;
_plugin = nullptr;
}
_plugins.clear();
}
......@@ -134,8 +134,7 @@ void Plugin_window::load_shared_plugins() {
QFileInfoList list = dir.entryInfoList();
for (int i = 0 ; i < list.size() ; ++ i) {
const QFileInfo &fileInfo = list.at(i);
for (const auto & fileInfo : list) {
QString filename = fileInfo.absoluteFilePath();
if(!QLibrary::isLibrary(filename)) {
......@@ -144,7 +143,7 @@ void Plugin_window::load_shared_plugins() {
QLibrary current_plugin(filename);
Plugin *(*f)(void) = (Plugin *(*)(void)) current_plugin.resolve("create");
Plugin *(*f)() = (Plugin *(*)()) current_plugin.resolve("create");
if(!f) {
cerr << "Unable to load " << current_plugin.errorString().toStdString() <<endl;
}
......@@ -194,10 +193,8 @@ void Plugin_window::execute_plugin() {
}
void Plugin_window::clear_plugins() {
for(vector<Plugin *>::iterator it = _plugins.begin() ;
it < _plugins.end() ;
++ it) {
(*it)->clear();
for(Plugin *plugin : _plugins) {
plugin->clear();
}
}
......@@ -205,9 +202,9 @@ void Plugin_window::reload_plugins() {
// Temporary disconnection for delete current plugins
disconnect(_tab_widget, SIGNAL(currentChanged(int)), this, SLOT(reload_plugin(int)));
_plugin_directories.clear();
for(unsigned int i = 0 ; i < _plugins.size() ; i ++) {
delete _plugins[i];
_plugins[i] = nullptr;
for(auto & _plugin : _plugins) {
delete _plugin;
_plugin = nullptr;
}
_plugins.clear();
connect(_tab_widget, SIGNAL(currentChanged(int)), this, SLOT(reload_plugin(int)));
......
......@@ -218,13 +218,13 @@ public:
/* Before calling start_draw_container(), Info::Container::y_max should have a correct value */
_render->start_draw_containers();
for (unsigned int i=0 ; i<_containers.size() ; i++){
for (const auto & _container : _containers){
_render->set_color(0, 0, j);
_render->draw_quad(_containers[i].x * coeffx,
trace_to_render_y(_containers[i].y),
_render->draw_quad(_container.x * coeffx,
trace_to_render_y(_container.y),
_z_container,
_containers[i].w * coeffx,
_containers[i].h * coeffy);
_container.w * coeffx,
_container.h * coeffy);
}
for (unsigned int i=0 ; i<_container_texts.size() ; i++){
......
......@@ -115,10 +115,8 @@ public:
for(int i = 0 ; i < nbcont ; i ++) {
const std::map<VariableType *, Variable *> *variables = this->_containers_to_print[i]->get_variables();
// We print each variable
for(std::map<VariableType *, Variable *>::const_iterator it = variables->begin() ;
it != variables->end() ;
it ++) {
draw_diagram(draw_object, i, (*it).second);
for(const auto &variable : *variables) {
draw_diagram(draw_object, i, variable.second);
_nb_variables_already_print ++;
}
}
......@@ -229,11 +227,9 @@ public:
bool is_last_value = false; // If we get a time bigger than the end_time
if(max_value != min_value) {
for (std::list<std::pair<Date, Double> >::const_iterator it = values->begin();
it != values->end();
it ++) {
time = (*it).first.get_value();
value = (*it).second.get_value();
for (const auto & it : *values) {
time = it.first.get_value();
value = it.second.get_value();
if(time < this->_start_time) {
continue;
......
......@@ -180,11 +180,9 @@ public:
ctname);
// Draw the stats
for (std::map<const EntityValue *, stats *>::iterator it = temp_states.begin();
it != temp_states.end();
it ++)
for (auto & temp_state : temp_states)
{
double length = (*it).second->_total_length;
double length = temp_state.second->_total_length;
double percent = length / duration ;
double width = percent * _graph_width;
double red = 0.7;
......@@ -192,9 +190,9 @@ public:
double blue = 0.75;
// We search for a color
if((*it).first->get_extra_fields()->find(std::string("Color")) != (*it).first->get_extra_fields()->end())
if(temp_state.first->get_extra_fields()->find(std::string("Color")) != temp_state.first->get_extra_fields()->end())
{
const Color *color = (const Color *)(*it).first->get_extra_fields()->find(std::string("Color"))->second;
const Color *color = (const Color *)temp_state.first->get_extra_fields()->find(std::string("Color"))->second;
red = color->get_red();
green = color->get_green();
blue = color->get_blue();
......@@ -210,7 +208,7 @@ public:
QString::number(percent*100., 'f', 1).toStdString()+"%");
pos_x += width;
this->_setstates.insert((*it).first);
this->_setstates.insert(temp_state.first);
}
......
......@@ -196,11 +196,9 @@ public:
virtual double get_max_percentage(std::map<const EntityValue*, stats*> &temp_states) const {
double value;
double max_length = 0.;
for (std::map<const EntityValue *, stats *>::iterator it = temp_states.begin();
it != temp_states.end();
it ++) {
if((*it).second->_total_length >= max_length) {
max_length = (*it).second->_total_length;
for (auto & temp_state : temp_states) {
if(temp_state.second->_total_length >= max_length) {
max_length = temp_state.second->_total_length;
}
}
value = max_length/(_end_time-_start_time);
......
......@@ -143,17 +143,15 @@ public:
// Draw the stats
for (std::map<const EntityValue *, stats *>::iterator it = temp_states.begin();
it != temp_states.end();
it ++) {
for (auto & temp_state : temp_states) {
// We have to convert the percentage in a rectangle and print it
const double length = (*it).second->_total_length;
const double length = temp_state.second->_total_length;
const double height = length*100.*this->_percentage_height_default/(this->_end_time-this->_start_time);
// We search for a color
if((*it).first->get_extra_fields()->find(std::string("Color")) != (*it).first->get_extra_fields()->end()) {
const Color *color = (const Color *)(*it).first->get_extra_fields()->find(std::string("Color"))->second;
if(temp_state.first->get_extra_fields()->find(std::string("Color")) != temp_state.first->get_extra_fields()->end()) {
const Color *color = (const Color *)temp_state.first->get_extra_fields()->find(std::string("Color"))->second;
draw_object->draw_rect(pos_x, pos_y, _WIDTH_HISTOGRAM_DEFAULT, height/max_percentage, color->get_red(), color->get_green(), color->get_blue());
}
else {
......
......@@ -64,10 +64,8 @@ Statistic::Statistic(){
Statistic::~Statistic(){
// Delete states
for (map<const EntityValue *, stats *>::iterator it = _states.begin();
it != _states.end();
it ++) {
delete (*it).second;
for (auto & _state : _states) {
delete _state.second;
}
}
......
......@@ -111,11 +111,9 @@ void Stats_window::set_container_names() {
QList<QTreeWidgetItem *> items;
QFlags<Qt::ItemFlag> flg=Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsTristate;
for (Container::VectorIt it = root_containers->begin();
it != root_containers->end();
it ++) {
string name = (*it)->get_name();
string alias = (*it)->get_alias();
for (const auto &root_container : *root_containers) {
string name = root_container->get_name();
string alias = root_container->get_alias();
QStringList str_name(QString::fromStdString(name));
QString str_alias(QString::fromStdString(alias));
QTreeWidgetItem *current_node = new QTreeWidgetItem((QTreeWidgetItem *)nullptr, str_name);
......@@ -126,7 +124,7 @@ void Stats_window::set_container_names() {
items.append(current_node);
// Recursivity to add the children names
set_container_names_rec(current_node, (*it));
set_container_names_rec(current_node, root_container);
}
(*(items.begin()))->setExpanded(true);
......@@ -137,20 +135,18 @@ void Stats_window::set_container_names_rec(QTreeWidgetItem *current_node, Contai
const Container::Vector *children = current_container->get_children();
QFlags<Qt::ItemFlag> flg = Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsTristate;
for (Container::VectorIt it = children->begin();
it != children->end();
it ++)
for (const auto &it : *children)
{
// We create the node and we do the recursivity
string name = (*it)->get_name();
string alias = (*it)->get_alias();
string name = it->get_name();
string alias = it->get_alias();
QStringList str_name(QString::fromStdString(name));
QString str_alias(QString::fromStdString(alias));
QTreeWidgetItem *node = new QTreeWidgetItem(current_node, str_name);
node->setFlags(flg);
node->setCheckState(0,Qt::Checked);
node->setText(1, str_alias);
set_container_names_rec(node ,(*it));
set_container_names_rec(node ,it);
}
}
......
......@@ -134,10 +134,8 @@ Container::~Container()
_links.pop_front();
}
// Delete variables
for(map<VariableType *, Variable *>::iterator it = _variables.begin();
it != _variables.end();
it++){
delete (*it).second;
for(auto & _variable : _variables){
delete _variable.second;
}
_variables.clear();
#endif
......
This diff is collapsed.
......@@ -63,7 +63,7 @@ Entity::Entity(Container *container, map<std::string, Value *> opt): _container(
}
Entity::Entity(){}
Entity::Entity()= default;
const Container *Entity::get_container() const {
return _container;
......@@ -74,14 +74,7 @@ const map<std::string, Value *> *Entity::get_extra_fields() const {
}
Entity::~Entity(){
// for(map<std::string, Value *>::iterator it = _extra_fields.begin();
// it != _extra_fields.end();
// it++){
// delete (*it).second;
// (*it).second = NULL;
// }
}
Entity::~Entity() = default;
void Entity::clear(){
if(_extra_fields !=nullptr)delete _extra_fields;
......
......@@ -114,10 +114,8 @@ EntityValue::~EntityValue()
{
_type = nullptr;
for(map<std::string, Value *>::iterator it = _opt.begin();
it != _opt.end();
it++){
delete (*it).second;
for(auto & it : _opt){
delete it.second;
}
}
......
......@@ -138,20 +138,20 @@ Trace::~Trace()
}
// Delete state types
for(std::map<std::string, StateType* >::iterator it=_state_types.begin(); it !=_state_types.end(); it++)
delete it->second;
for(auto & _state_type : _state_types)
delete _state_type.second;
// Delete event types
for(std::map<std::string, EventType* >::iterator it=_event_types.begin(); it !=_event_types.end(); it++)
delete it->second;
for(auto & _event_type : _event_types)
delete _event_type.second;
// Delete link types
for(std::map<std::string, LinkType* >::iterator it=_link_types.begin(); it !=_link_types.end(); it++)
delete it->second;
for(auto & _link_type : _link_types)
delete _link_type.second;
// Delete variable types
for(std::map<std::string, VariableType* >::iterator it=_variable_types.begin(); it !=_variable_types.end(); it++)
delete it->second;
for(auto & _variable_type : _variable_types)
delete _variable_type.second;
_state_types.clear();
_event_types.clear();
......@@ -160,10 +160,8 @@ Trace::~Trace()
}
static void delete_opt(map<string, Value *> &opt) {
for (map<string, Value *>::iterator i = opt.begin();
i != opt.end();
i++) {
delete (*i).second;
for (auto & i : opt) {
delete i.second;
}
}
......@@ -429,11 +427,8 @@ void Trace::finish() {
const Container::Vector* children =c->get_view_children();
if (children->empty())children=c->get_children();
Container::VectorIt it = children->begin();
Container::VectorIt const &it_end = children->end();
for (; it != it_end; it++)
containers.push(*it);
for (const auto &child : *children)
containers.push(child);
}
}
}
......@@ -590,11 +585,8 @@ Trace::set_root_containers(Container::Vector& conts)
const Container::Vector* root_containers =&_root_containers;
Container::VectorIt i = root_containers->begin();
Container::VectorIt const &end = root_containers->end();
for (; i != end; i++)
containers.push(*i);
for (const auto &child : *root_containers)
containers.push(child);
while (!containers.empty()) {
Container * c = containers.top();
......@@ -607,11 +599,8 @@ Trace::set_root_containers(Container::Vector& conts)
{
const Container::Vector* children =c->get_children();
Container::VectorIt it = children->begin();
Container::VectorIt const &it_end = children->end();
for (; it != it_end; it++)
containers.push(*it);
for (const auto &child : *children)
containers.push(child);
}
}
}
......@@ -646,26 +635,21 @@ void Trace::set_view_root_containers(Container::Vector& conts) {
}
void Trace::get_all_containers(Container::Vector &list_to_fill) const {
Container::VectorIt it = _root_containers.begin();
Container::VectorIt const &end = _root_containers.end();
for (; it != end; it ++) {
list_to_fill.push_back(*it);
for (const auto &child : _root_containers) {
list_to_fill.push_back(child);
// Recursivity to add the children names
add_containers(list_to_fill, *it);
add_containers(list_to_fill, child);
}
}
void Trace::add_containers(Container::Vector &containers, const Container *parent) const {
const Container::Vector *children = parent->get_children();
Container::VectorIt it = children->begin();
Container::VectorIt const &end = children->end();
for (; it != end; it ++) {
for (const auto &child : *children) {
// We create the node and we do the recursivity
containers.push_back(*it);
add_containers(containers , *it);
containers.push_back(child);
add_containers(containers , child);
}
}
......@@ -888,11 +872,9 @@ void Trace::get_all_variables(map<string, Variable *> &map_to_fill) {
for ( ; it != end ; it ++) {
const map<VariableType *, Variable *> *variables = (*it)->get_variables();
// We store each variable
for(map<VariableType *, Variable *>::const_iterator var_it = variables->begin() ;
var_it != variables->end() ;
var_it ++) {
string name = (*it)->get_Name().to_string() + " " + (*var_it).first->get_Name().to_string();
map_to_fill[name] = (*var_it).second;
for(const auto &variable : *variables) {
string name = (*it)->get_Name().to_string() + " " + variable.first->get_Name().to_string();
map_to_fill[name] = variable.second;
}
}
}
......@@ -1115,11 +1097,9 @@ std::map<long int,double> Trace::update_text_variable_values(double date){
const Container::Vector* root_containers =&_view_root_containers;
if(root_containers->empty())root_containers=&_root_containers;
Container::VectorIt i = root_containers->begin();
Container::VectorIt const &end = root_containers->end();
const Variable* var;
for (; i != end; i++)
containers.push(*i);
for (const auto &root_container : *root_containers)
containers.push(root_container);
while (!containers.empty()) {
Container * c = containers.top();
......@@ -1127,28 +1107,21 @@ std::map<long int,double> Trace::update_text_variable_values(double date){
if (c->get_variable_number() > 0){
const std::map<VariableType *, Variable *>* variable_map = c->get_variables();
for (std::map<VariableType *, Variable *>::const_iterator i = variable_map->begin();
i != variable_map->end();
i++) {
for (const auto &i : *variable_map) {
var = (*i).second;
var = i.second;
values [(long int)var]= var->get_value_at(date);
//draw_object->draw_text_value((long int)var,var->get_value_at(date), position);
}
}
{
const Container::Vector* children =c->get_view_children();
if (children->empty())children=c->get_children();