Skip to content

Commit 8fe12bb

Browse files
authored
Warning Dialog for ROS 1 EOL (#1843)
1 parent 5f0b2db commit 8fe12bb

File tree

4 files changed

+51
-0
lines changed

4 files changed

+51
-0
lines changed

src/rviz/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ add_library(${PROJECT_NAME}
4545
message_filter_display.h
4646
mesh_loader.cpp
4747
new_object_dialog.cpp
48+
noetic_eol_dialog.cpp
4849
add_display_dialog.cpp
4950
ogre_helpers/apply_visibility_bits.cpp
5051
ogre_helpers/arrow.cpp

src/rviz/noetic_eol_dialog.cpp

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#include <rviz/noetic_eol_dialog.h>
2+
3+
namespace rviz
4+
{
5+
NoeticEOLDialog::NoeticEOLDialog(QWidget* parent) : QMessageBox(parent)
6+
{
7+
setIcon(QMessageBox::Critical);
8+
setTextFormat(Qt::RichText);
9+
setText(
10+
"<p>ROS Noetic goes end-of-life 2025-05-31.</p>"
11+
"<p>Users are encouraged to migrate to ROS 2 as soon as possible!"
12+
"Alternatively, switch to the <a href='https://ros.packages.techfak.net'>ROS One "
13+
"distribution</a>.</p>"
14+
"<p>For more information see <a href='https://www.ros.org/blog/noetic-eol'>this blog post</a>.</p>"
15+
"<p>To disable this dialog, set the <code>DISABLE_ROS1_EOL_WARNINGS</code> environment "
16+
"variable.</p>");
17+
setWindowTitle("ROS 1 End-of-Life is May 31st, 2025");
18+
setStandardButtons(QMessageBox::Ok);
19+
}
20+
} // end namespace rviz

src/rviz/noetic_eol_dialog.h

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#ifndef RVIZ_NOETIC_EOL_DIALOG_H
2+
#define RVIZ_NOETIC_EOL_DIALOG_H
3+
4+
#include <QMessageBox>
5+
6+
namespace rviz
7+
{
8+
class NoeticEOLDialog : public QMessageBox
9+
{
10+
Q_OBJECT
11+
public:
12+
NoeticEOLDialog(QWidget* parent = nullptr);
13+
};
14+
15+
} // end namespace rviz
16+
17+
#endif // RVIZ_WAIT_FOR_MASTER_DIALOG_H

src/rviz/visualizer_app.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
*/
2929

3030
#include <QApplication>
31+
#include <QProcessEnvironment> // check env variables
3132
#include <QTimer>
3233

3334
#include <boost/program_options.hpp>
@@ -54,6 +55,7 @@
5455
#include <rviz/visualization_frame.h>
5556
#include <rviz/visualization_manager.h>
5657
#include <rviz/wait_for_master_dialog.h>
58+
#include <rviz/noetic_eol_dialog.h>
5759
#include <rviz/ogre_helpers/render_system.h>
5860

5961
#include <rviz/visualizer_app.h>
@@ -231,6 +233,17 @@ bool VisualizerApp::init(int argc, char** argv)
231233
save_config_service_ =
232234
private_nh.advertiseService("save_config", &VisualizerApp::saveConfigCallback, this);
233235

236+
// Notify users of ROS 1 EOL Date
237+
// Get the environment variables
238+
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
239+
// If environment variable is not set
240+
if(!env.contains("DISABLE_ROS1_EOL_WARNINGS"))
241+
{
242+
// Create a warning pop up
243+
NoeticEOLDialog eol_dialog;
244+
eol_dialog.exec();
245+
}
246+
234247
#if CATCH_EXCEPTIONS
235248
}
236249
catch (std::exception& e)

0 commit comments

Comments
 (0)