From 3914f039cf07a7c0a24ca55f471ed3b1b9dbd431 Mon Sep 17 00:00:00 2001
From: Camille Ordronneau <camille.ordronneau@inria.fr>
Date: Fri, 2 Aug 2024 14:17:33 +0200
Subject: [PATCH] Add IntervalSelect creation on Interface_graphic creation

---
 src/interface/Interface_graphic.cpp | 29 ++++++-----------------------
 1 file changed, 6 insertions(+), 23 deletions(-)

diff --git a/src/interface/Interface_graphic.cpp b/src/interface/Interface_graphic.cpp
index caa42409..f7b91328 100644
--- a/src/interface/Interface_graphic.cpp
+++ b/src/interface/Interface_graphic.cpp
@@ -111,7 +111,7 @@ Interface_graphic::Interface_graphic(Core *core, QWidget *parent) :
     _plugin_window = nullptr;
     _ui_settings = nullptr;
     _ui_node_selection = nullptr;
-    _ui_interval_selection = nullptr;
+    _ui_interval_selection = new IntervalSelect(this);
 
     // For drag and drop operations
     setAcceptDrops(true);
@@ -275,7 +275,6 @@ void Interface_graphic::on_reload_triggered() {
         }
         // if(_ui_node_selection!=NULL)
         //     _ui_node_selection->on_reset_button_clicked();
-        // if(_ui_interval_selection!=NULL)
         //  _ui_interval_selection->on_reset_button_clicked();
         if (_reload_type) {
             release_render_area();
@@ -295,9 +294,7 @@ void Interface_graphic::on_reload_triggered() {
         _render_layouts.front()->get_scale_container_slider()->setValue(20);
 
         // update the interval selection display
-        if (_ui_interval_selection != nullptr) {
-            _ui_interval_selection->update_interval_layout_from_render_view(_render_layouts.front());
-        }
+        _ui_interval_selection->update_interval_layout_from_render_view(_render_layouts.front());
     }
 }
 
@@ -342,9 +339,7 @@ void Interface_graphic::remove_render_area(RenderLayout *render_layout) {
         }
     }
 
-    if (nullptr != _ui_interval_selection) {
-        _ui_interval_selection->update_container(_render_layouts);
-    }
+    _ui_interval_selection->update_container(_render_layouts);
 
     if (_render_layouts.empty()) {
         background_widget->show();
@@ -357,8 +352,6 @@ void Interface_graphic::on_quit_triggered() {
 
     if (nullptr != _ui_node_selection)
         ((QWidget *)_ui_node_selection)->close();
-    if (nullptr != _ui_interval_selection)
-        ((QWidget *)_ui_interval_selection)->close();
     if (nullptr != _ui_info_window)
         ((QWidget *)_ui_info_window)->close();
     ((QWidget *)this)->close();
@@ -497,10 +490,7 @@ void Interface_graphic::on_interval_selection_triggered() {
         error("Must load a trace before using interval selection on a trace");
         return;
     }
-    if (!_ui_interval_selection) {
-        _ui_interval_selection = new IntervalSelect(this);
-        connect(quit, &QAction::triggered, _ui_interval_selection, &QWidget::close);
-    }
+
     _ui_interval_selection->update_container(_render_layouts);
     _ui_interval_selection->show();
 }
@@ -541,9 +531,6 @@ void Interface_graphic::closeEvent(QCloseEvent *event) {
 
     if (_ui_node_selection)
         _ui_node_selection->close();
-
-    if (_ui_interval_selection)
-        _ui_interval_selection->close();
 }
 
 Core *Interface_graphic::get_console() {
@@ -682,9 +669,7 @@ bool Interface_graphic::open_trace(const QString &filepath) {
     set_trace(trace);
     draw_trace(trace, _render_layouts.size() - 1);
 
-    if (nullptr != _ui_interval_selection) {
-        _ui_interval_selection->update_container(_render_layouts);
-    }
+    _ui_interval_selection->update_container(_render_layouts);
 
     return true;
 }
@@ -924,9 +909,7 @@ void Interface_graphic::set_trace(Trace *trace) {
 }
 
 void Interface_graphic::update_interval_select_window(const RenderLayout *render_layout) {
-    if (nullptr != _ui_interval_selection) {
-        _ui_interval_selection->update_interval_layout_from_render_view(render_layout);
-    }
+    _ui_interval_selection->update_interval_layout_from_render_view(render_layout);
 }
 
 void Interface_graphic::draw_trace(Trace *trace, const int &index) {
-- 
GitLab