timeline_pane.py
Go to the documentation of this file.
00001 # Software License Agreement (BSD License)
00002 #
00003 # Copyright (c) 2012, Willow Garage, Inc.
00004 # All rights reserved.
00005 #
00006 # Redistribution and use in source and binary forms, with or without
00007 # modification, are permitted provided that the following conditions
00008 # are met:
00009 #
00010 #  * Redistributions of source code must retain the above copyright
00011 #    notice, this list of conditions and the following disclaimer.
00012 #  * Redistributions in binary form must reproduce the above
00013 #    copyright notice, this list of conditions and the following
00014 #    disclaimer in the documentation and/or other materials provided
00015 #    with the distribution.
00016 #  * Neither the name of Willow Garage, Inc. nor the names of its
00017 #    contributors may be used to endorse or promote products derived
00018 #    from this software without specific prior written permission.
00019 #
00020 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
00021 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00022 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00023 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00024 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
00025 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
00026 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
00027 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00028 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
00029 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
00030 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00031 # POSSIBILITY OF SUCH DAMAGE.
00032 #
00033 # Author: Isaac Saito, Ze'ev Klapow, Austin Hendrix
00034 
00035 import os
00036 
00037 from python_qt_binding import loadUi
00038 from python_qt_binding.QtCore import Signal, Slot
00039 from python_qt_binding.QtGui import QWidget
00040 import rospy
00041 import rospkg
00042 
00043 from .timeline import Timeline
00044 
00045 class TimelinePane(QWidget):
00046     """
00047     This class defines the pane where timeline and its related components
00048     are displayed.
00049     """
00050 
00051     sig_update = Signal()
00052 
00053     def __init__(self, parent):
00054         """
00055         Because this class is intended to be instantiated via Qt's .ui file,
00056         taking argument other than parent widget is not possible, which is
00057         ported to set_timeline_data method. That said, set_timeline_data must
00058         be called (soon) after an object of this is instantiated.
00059         """
00060         super(TimelinePane, self).__init__()
00061         self._parent = parent
00062         self._timeline = None
00063 
00064         rp = rospkg.RosPack()
00065         ui_file = os.path.join(rp.get_path('rqt_robot_monitor'),
00066                                'resource',
00067                                'timelinepane.ui')
00068         loadUi(ui_file, self)
00069 
00070         self._timeline_view.show()
00071 
00072         self.sig_update.connect(self._timeline_view.redraw)
00073 
00074     def set_timeline(self, timeline, name=None):
00075         assert(self._timeline is None)
00076         self._timeline = timeline
00077 
00078         self._timeline_view.set_timeline(timeline, name)
00079 
00080         # connect pause button
00081         self._pause_button.clicked[bool].connect(self._timeline.set_paused)
00082         self._timeline.pause_changed[bool].connect(
00083                 self._pause_button.setChecked)
00084 
00085         # bootstrap initial state
00086         self._pause_button.setChecked(self._timeline.paused)
00087         self.sig_update.emit()
00088 
00089     def redraw(self):
00090         self.sig_update.emit()


rqt_robot_monitor
Author(s): Austin Hendrix, Isaac Saito, Ze'ev Klapow, Kevin Watts, Josh Faust
autogenerated on Fri Aug 28 2015 12:50:48