diff --git a/src/rviz/CMakeLists.txt b/src/rviz/CMakeLists.txt index cc29d58a0..614274c0c 100644 --- a/src/rviz/CMakeLists.txt +++ b/src/rviz/CMakeLists.txt @@ -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 diff --git a/src/rviz/noetic_eol_dialog.cpp b/src/rviz/noetic_eol_dialog.cpp new file mode 100644 index 000000000..64ce690ba --- /dev/null +++ b/src/rviz/noetic_eol_dialog.cpp @@ -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 + +#include + +#include + +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 << "\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 diff --git a/src/rviz/noetic_eol_dialog.h b/src/rviz/noetic_eol_dialog.h new file mode 100644 index 000000000..aff052b43 --- /dev/null +++ b/src/rviz/noetic_eol_dialog.h @@ -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 + +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 diff --git a/src/rviz/visualizer_app.cpp b/src/rviz/visualizer_app.cpp index 48c2df1b5..3a7a3e6fe 100644 --- a/src/rviz/visualizer_app.cpp +++ b/src/rviz/visualizer_app.cpp @@ -28,6 +28,7 @@ */ #include +#include // check env variables #include #include @@ -54,6 +55,7 @@ #include #include #include +#include #include #include @@ -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)