def test_singleton_property(self): """ Simple test to check if rosmodel is really a singleton. """ model1 = ROSModel() model2 = ROSModel() self.assertEqual(type(model1), type(model2))
def __init__(self, context): """ Initializes the Plugin """ super(ArniGuiDetail, self).__init__(context) self.setObjectName('arni_gui_detail') # Process standalone plugin command-line arguments from argparse import ArgumentParser parser = ArgumentParser() # Add argument(s) to the parser. parser.add_argument("-q", "--quiet", action="store_true", dest="quiet", help="Put plugin in silent mode") args, unknowns = parser.parse_known_args(context.argv()) if not args.quiet: print 'arguments: ', args print 'unknowns: ', unknowns self.__model = ROSModel() self.__selection_widget = SelectionWidget(self.__model) context.add_widget(self.__selection_widget) self.__tree_widget = TreeWidget(self.__model, self.__selection_widget, self) context.add_widget(self.__tree_widget) self.__tree_widget.connect_slots() self.__tree_widget.show_erroneous_check_box.setCheckState(0) self.__selection_widget.connect_slots() #: is handeld here for the widget communication self.__tree_widget.item_tree_view.clicked.connect( self.__on_item_in_item_tree_view_clicked)
def __init__(self): """ Initializes the widget. """ super(OverviewWidget, self).__init__() # Get path to UI file which is a sibling of this file self.rp = rospkg.RosPack() ui_file = os.path.join(self.rp.get_path('rqt_arni_gui_overview'), 'resources', 'OverviewWidget.ui') # Extend the widget with all attributes and children from UI file loadUi(ui_file, self) self.__draw_graphs = False self.__log_delegate = LogDelegate() self.log_tab_tree_view.setItemDelegate(self.__log_delegate) self.__last_update = rospy.Time.now() self.__model = ROSModel() self.__log_filter_proxy = LogFilterProxy() self.__logger = self.__model.get_logger() self.__style_string = ".detailed_data_overview {\n" \ " font-size: 13\n;" \ "}\n" self.information_tab_text_browser.setStyleSheet(self.__style_string) self.range_combo_box.clear() #todo: are these in the right order? self.range_combo_box.addItem("10 " + self.tr("Seconds")) self.range_combo_box.addItem("30 " + self.tr("Seconds")) #todo: adapt time!!! self.range_combo_box.addItem("60 " + self.tr("Seconds")) self.range_combo_box.setCurrentIndex(0) self.tab_widget.setTabText(0, self.tr("Information")) self.tab_widget.setTabText(1, self.tr("Graphs")) self.tab_widget.setTabText(2, self.tr("Log")) self.selected_label.setText(self.tr("Selected") + ":") self.range_label.setText(self.tr("Range") + ":") self.__log_filter_proxy.filter_by_item(None) self.__log_filter_proxy.setDynamicSortFilter(True) #set proxy model self.__log_filter_proxy.setSourceModel( self.__logger.get_representation()) self.log_tab_tree_view.setModel(self.__log_filter_proxy) self.log_tab_tree_view.setRootIsDecorated(True) self.log_tab_tree_view.setAlternatingRowColors(True) self.log_tab_tree_view.setSortingEnabled(True) self.log_tab_tree_view.sortByColumn(1, Qt.AscendingOrder) self.__connect_slots() self.__state = "ok" self.__previous_state = "ok" self.__current_range_combo_box_index = 0 self.__current_selected_combo_box_index = 0 self.__last_update = rospy.Time.now() pg.setConfigOption('background', 'w') pg.setConfigOption('foreground', 'k') self.__graph_layout = ResizeableGraphicsLayoutWidget( self.__on_graph_window_size_changed) self.graph_scroll_area.setWidget(self.__graph_layout) self.__plotable_items = self.__model.get_root_item( ).get_plotable_items() self.__items_per_group = 1 self.__expected_items_per_group = 1 self.__number_of_groups = 1 self.__update_graphs_lock = Lock() self.__first_update_pending = True self.__graph_dict = {} self.__first_resize = True self.__plotted_curves = {} self.create_graphs() self.__timer = Timer(Duration(secs=1.0), self.update_graphs)
def test_log_model(self): log_model = ROSModel().get_log_model()