From 6421ce9dfb423980034fc8ab423f4ad65e54957c Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Wed, 20 Jul 2011 15:19:18 +0000 Subject: [PATCH] add possibility to enter values greater than max_trace in interval selection, and removes a bug with variables and split files for containers' size computation --- src/interface/Interval_select.cpp | 22 +++++++++------- src/interface/interval_select.ui | 44 ++++++++++++++++++------------- src/trace/Container.cpp | 2 ++ src/trace/Serializer_types.hpp | 1 - 4 files changed, 39 insertions(+), 30 deletions(-) diff --git a/src/interface/Interval_select.cpp b/src/interface/Interval_select.cpp index f95b756..c7681ae 100644 --- a/src/interface/Interval_select.cpp +++ b/src/interface/Interval_select.cpp @@ -71,6 +71,8 @@ #include "interface/Interval_select.hpp" +#include "limits.h" + using namespace std; Interval_select::Interval_select(Interface_graphic * console,QWidget *parent) : QDialog(parent), _trace(NULL),_console(console) { @@ -99,9 +101,9 @@ void Interval_select::set_trace(Trace *trace) { min_value->setText(QString().setNum (Info::Entity::x_min)); max_value->setText(QString().setNum (Info::Entity::x_max)); minSpinBox->setMinimum(Info::Entity::x_min); - minSpinBox->setMaximum(Info::Entity::x_max); + minSpinBox->setMaximum(std::numeric_limits::max()); maxSpinBox->setMinimum(Info::Entity::x_min); - maxSpinBox->setMaximum(Info::Entity::x_max); + maxSpinBox->setMaximum(std::numeric_limits::max()); //the slider stays in int, we will translate its values /*interval_slider->setMinimum(0); interval_slider->setMaximum(99);*/ @@ -139,9 +141,9 @@ if(Info::Splitter::preview==true){ bool v = minSpinBox->blockSignals(true); bool v2 = maxSpinBox->blockSignals(true); bool v3 = interval_slider->blockSignals(true); - int maxvalue=int(_max*(interval_slider->maximum() - interval_slider->minimum())/(minSpinBox->maximum() - minSpinBox->minimum())); + int maxvalue=int(_max*(interval_slider->maximum() - interval_slider->minimum())/(_trace->get_max_date() - minSpinBox->minimum())); interval_slider->setUpperValue(maxvalue); - interval_slider->setLowerValue(int(_min*(interval_slider->maximum() - interval_slider->minimum())/(minSpinBox->maximum() - minSpinBox->minimum()))); + interval_slider->setLowerValue(int(_min*(interval_slider->maximum() - interval_slider->minimum())/(_trace->get_max_date() - minSpinBox->minimum()))); maxSpinBox->setValue(_max); minSpinBox->setValue(_min); minSpinBox->blockSignals(v); @@ -159,7 +161,7 @@ void Interval_select::minSpinBoxValueChanged( double _value ) if(_value < maxSpinBox->value()){ bool v = interval_slider->blockSignals(true); - interval_slider->setLowerValue( int(_value *(interval_slider->maximum() - interval_slider->minimum())/(minSpinBox->maximum() - minSpinBox->minimum())) ); + interval_slider->setLowerValue( int(_value *(interval_slider->maximum() - interval_slider->minimum())/(_trace->get_max_date() - minSpinBox->minimum())) ); interval_slider->blockSignals(v); emit( minValueChanged( minSpinBox->value() ) ); @@ -186,7 +188,7 @@ void Interval_select::minSliderValueChanged( int _value ) { if(_value < interval_slider->upperValue()){ bool v = minSpinBox->blockSignals(true); - minSpinBox->setValue( _value *(minSpinBox->maximum() - minSpinBox->minimum())/(interval_slider->maximum() - interval_slider->minimum())); + minSpinBox->setValue( _value *(_trace->get_max_date() - minSpinBox->minimum())/(interval_slider->maximum() - interval_slider->minimum())); minSpinBox->blockSignals(v); emit( minValueChanged( minSpinBox->value() ) ); if(_auto_refresh)apply_settings(); @@ -199,7 +201,7 @@ void Interval_select::maxSpinBoxValueChanged( double _value ) QPalette myPalette(minSpinBox->palette()); if(_value > minSpinBox->value()){ bool v = interval_slider->blockSignals(true); - interval_slider->setUpperValue( int(_value* (interval_slider->maximum() - interval_slider->minimum())/(maxSpinBox->maximum() - maxSpinBox->minimum()))); + interval_slider->setUpperValue( int(_value* (interval_slider->maximum() - interval_slider->minimum())/(_trace->get_max_date() - maxSpinBox->minimum()))); interval_slider->blockSignals(v); emit( maxValueChanged( maxSpinBox->value() ) ); myPalette.setColor(QPalette::Active, QPalette::Text, Qt::black); @@ -222,7 +224,7 @@ void Interval_select::maxSliderValueChanged( int _value ) if(_value > interval_slider->lowerValue()){ bool v = maxSpinBox->blockSignals(true); - maxSpinBox->setValue( _value * (maxSpinBox->maximum() - maxSpinBox->minimum())/(interval_slider->maximum() - interval_slider->minimum())); + maxSpinBox->setValue( _value * (_trace->get_max_date() - maxSpinBox->minimum())/(interval_slider->maximum() - interval_slider->minimum())); maxSpinBox->blockSignals(v); emit( maxValueChanged( maxSpinBox->value() ) ); if(_auto_refresh)apply_settings(); @@ -275,8 +277,8 @@ void Interval_select::on_reset_button_clicked(){ //minValueChanged( interval_slider->minimum() ); interval_slider->setUpperValue(interval_slider->maximum()); interval_slider->setLowerValue(interval_slider->minimum()); - //maxSliderValueChanged( interval_slider->maximum() ); - //minSliderValueChanged( interval_slider->minimum() ); + maxSliderValueChanged( interval_slider->maximum() ); + minSliderValueChanged( interval_slider->minimum() ); } diff --git a/src/interface/interval_select.ui b/src/interface/interval_select.ui index 15416ab..e238095 100644 --- a/src/interface/interval_select.ui +++ b/src/interface/interval_select.ui @@ -41,9 +41,9 @@ - 140 + 80 80 - 101 + 151 22 @@ -51,9 +51,9 @@ - 350 + 300 80 - 101 + 151 22 @@ -87,35 +87,41 @@ - 10 + 0 160 - 46 - 13 + 131 + 16 0 + + Qt::AlignCenter + - 460 + 390 160 - 46 - 13 + 121 + 20 0 + + Qt::AlignCenter + - 60 - 80 - 81 + 100 + 60 + 121 16 @@ -126,9 +132,9 @@ - 270 - 80 - 81 + 320 + 60 + 111 16 @@ -194,9 +200,9 @@ - 350 - 180 - 171 + 250 + 190 + 241 17 diff --git a/src/trace/Container.cpp b/src/trace/Container.cpp index 27123a8..e39a592 100644 --- a/src/trace/Container.cpp +++ b/src/trace/Container.cpp @@ -725,6 +725,7 @@ void Container::finish(const Date &time) { if(_event_tree)delete _event_tree; if(_state_tree!=NULL)delete _state_tree; +_n_variables=0; _event_tree=NULL; _state_tree=NULL; @@ -740,6 +741,7 @@ _state_tree=NULL; delete _events; _n_states=0; _n_events=0; + _n_variables=0; _events=NULL; } diff --git a/src/trace/Serializer_types.hpp b/src/trace/Serializer_types.hpp index ba79fd9..d8f276e 100644 --- a/src/trace/Serializer_types.hpp +++ b/src/trace/Serializer_types.hpp @@ -88,7 +88,6 @@ using namespace boost::serialization; template void load(Archive &ar, ContainerType& l, const unsigned int ) { - printf("Type 1\n"); Name _name; ContainerType *_parent; -- GitLab