Skip to content

Commit

Permalink
Warning dialog for ROS 1 EOL.
Browse files Browse the repository at this point in the history
  • Loading branch information
kscottz committed Dec 3, 2024
1 parent fdcf656 commit 1080cc5
Show file tree
Hide file tree
Showing 4 changed files with 120 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/rviz/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ add_library(${PROJECT_NAME}
message_filter_display.h
mesh_loader.cpp
new_object_dialog.cpp
noetic_eol_dialog.cpp
add_display_dialog.cpp
ogre_helpers/apply_visibility_bits.cpp
ogre_helpers/arrow.cpp
Expand Down
57 changes: 57 additions & 0 deletions src/rviz/noetic_eol_dialog.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright (c) 2011, Willow Garage, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the Willow Garage, Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

// Apparently OSX #defines 'check' to be an empty string somewhere.
// That was fun to figure out.
#ifdef check
#undef check
#endif

#include <QTimer>

#include <ros/ros.h>

#include <rviz/noetic_eol_dialog.h>

namespace rviz
{
NoeticEOLDialog::NoeticEOLDialog(QWidget* parent) : QMessageBox(parent)
{
setIcon(QMessageBox::Critical);
std::stringstream ss;
ss << "ROS 1 goes end-of-life 2025-05-31\n\n";
ss << "Users are encouraged to migrate to ROS 2 as soon as possible!\n\n";
ss << "For more information see: \n";
ss << "<some URL TBD>\n\n";
ss << "To disable set the DISABLE_ROS1_EOL_WARNINGS environment variable.\n";
setText(QString::fromStdString(ss.str()));
setWindowTitle("ROS 1 End-of-Life is May 31st, 2025");
setStandardButtons(QMessageBox::Ok);
}
} // end namespace rviz
48 changes: 48 additions & 0 deletions src/rviz/noetic_eol_dialog.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Copyright (c) 2011, Willow Garage, Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of the Willow Garage, Inc. nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef RVIZ_NOETIC_EOL_DIALOG_H
#define RVIZ_NOETIC_EOL_DIALOG_H

#include <QMessageBox>

namespace rviz
{
class NoeticEOLDialog : public QMessageBox
{
Q_OBJECT
public:
NoeticEOLDialog(QWidget* parent = nullptr);

private Q_SLOTS:
//void onTimer();
};

} // end namespace rviz

#endif // RVIZ_WAIT_FOR_MASTER_DIALOG_H
14 changes: 14 additions & 0 deletions src/rviz/visualizer_app.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
*/

#include <QApplication>
#include <QProcessEnvironment> // check env variables
#include <QTimer>

#include <boost/program_options.hpp>
Expand All @@ -54,6 +55,7 @@
#include <rviz/visualization_frame.h>
#include <rviz/visualization_manager.h>
#include <rviz/wait_for_master_dialog.h>
#include <rviz/noetic_eol_dialog.h>
#include <rviz/ogre_helpers/render_system.h>

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

// Notify users of ROS 1 EOL Date
// Get the environment variables
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
// If environment variable is not set
if(env.contains(QString::fromStdString("DISABLE_ROS1_EOL_WARNINGS")) == false)
{
// Create a warning pop up
NoeticEOLDialog eol_dialog;
eol_dialog.exec();
}


#if CATCH_EXCEPTIONS
}
catch (std::exception& e)
Expand Down

0 comments on commit 1080cc5

Please sign in to comment.