def set_current_master(self, masteruri, mastername):
     self.launchlist_model.set_current_master(masteruri, mastername)
     self._masteruri2name[masteruri.rstrip(os.path.sep)] = mastername
     mname = self.path2mastername(self.launchlist_model.current_path)
     if mname:
         color = QColor.fromRgb(nm.settings().host_color(
             mname, self._default_color.rgb()))
         self._new_color(color)
Exemplo n.º 2
0
 def set_current_master(self, masteruri, mastername):
     self.launchlist_model.set_current_master(masteruri, mastername)
     self._masteruri2name[masteruri.rstrip(os.path.sep)] = mastername
     try:
         color = QColor.fromRgb(nm.settings().host_color(
             self._masteruri2name[nmdurl.masteruri(
                 self.launchlist_model.current_path)],
             self._default_color.rgb()))
         self._new_color(color)
     except Exception as _:
         pass
Exemplo n.º 3
0
 def on_launch_selection_activated(self, activated):
     '''
     Tries to load the launch file, if one was activated.
     '''
     selected = self._pathItemsFromIndexes(
         self.ui_file_view.selectionModel().selectedIndexes(), False)
     for item in selected:
         try:
             self.ui_search_line.set_process_active(True)
             lfile = self.launchlist_model.expand_item(item.path, item.id)
             # self.ui_search_line.setText('')
             if lfile is not None:
                 self.ui_search_line.set_process_active(False)
                 if item.is_launch_file():
                     nm.settings().launch_history_add(item.path)
                     self.load_signal.emit(item.path, {}, None)
                 elif item.is_profile_file():
                     nm.settings().launch_history_add(item.path)
                     self.load_profile_signal.emit(item.path)
                 elif item.is_config_file():
                     self.edit_signal.emit(lfile)
             if self.launchlist_model.current_path:
                 self.setWindowTitle(
                     'Launch @%s' %
                     get_hostname(self.launchlist_model.current_grpc))
             else:
                 self.setWindowTitle('Launch files')
         except Exception as e:
             import traceback
             print(traceback.format_exc())
             rospy.logwarn("Error while load launch file %s: %s" %
                           (item, utf8(e)))
             MessageBox.warning(
                 self, "Load error",
                 'Error while load launch file:\n%s' % item.name,
                 "%s" % utf8(e))
     try:
         color = QColor.fromRgb(nm.settings().host_color(
             self._masteruri2name[nmdurl.masteruri(
                 self.launchlist_model.current_path)],
             self._default_color.rgb()))
         self._new_color(color)
     except Exception as _:
         pass
 def on_launch_selection_activated(self, activated):
     '''
     Tries to load the launch file, if one was activated.
     '''
     selected = self._pathItemsFromIndexes(
         self.ui_file_view.selectionModel().selectedIndexes(), False)
     mname = self.path2mastername(self.launchlist_model.current_path)
     for item in selected:
         try:
             self.ui_search_line.set_process_active(True)
             lfile = self.launchlist_model.expand_item(item.path, item.id)
             # self.ui_search_line.setText('')
             if lfile is not None:
                 self.ui_search_line.set_process_active(False)
                 if item.is_launch_file():
                     nm.settings().launch_history_add(item.path)
                     self.load_signal.emit(item.path, {}, None)
                 elif item.is_profile_file():
                     nm.settings().launch_history_add(item.path)
                     self.load_profile_signal.emit(item.path)
                 elif item.is_config_file():
                     self.edit_signal.emit(lfile)
             mname = self.path2mastername(
                 self.launchlist_model.current_path)
             self.hostLabel.setText('Remote @ <b>%s</b>' % mname)
             if mname and self._first_path != self.launchlist_model.current_path:
                 self.hostLabel.setVisible(True)
             else:
                 self.hostLabel.setVisible(False)
             if mname:
                 color = QColor.fromRgb(nm.settings().host_color(
                     mname, self._default_color.rgb()))
                 self._new_color(color)
         except Exception as e:
             import traceback
             print(traceback.format_exc())
             rospy.logwarn("Error while load launch file %s: %s" %
                           (item, utf8(e)))
             MessageBox.warning(
                 self, "Load error",
                 'Error while load launch file:\n%s' % item.name,
                 "%s" % utf8(e))
Exemplo n.º 5
0
    def __init__(self, filenames, search_text='', master_name='', parent=None):
        '''
        :param filenames: a list with filenames. The last one will be activated.
        :type filenames: [str]
        :param str search_text: if not empty, searches in new document for first occurrence of the given text
        '''
        QMainWindow.__init__(self, parent)
        self.setObjectName('Editor - %s' % utf8(filenames))
        self.setAttribute(Qt.WA_DeleteOnClose, True)
        self.setWindowFlags(Qt.Window)
        self.mIcon = nm.settings().icon('crystal_clear_edit_launch.png')
        self._error_icon = nm.settings().icon('warning.png')
        self._info_icon = nm.settings().icon('info.png')
        self._empty_icon = QIcon()
        self.setWindowIcon(self.mIcon)
        window_title = "ROSLaunch Editor"
        if filenames:
            window_title = self.__getTabName(filenames[0])
        self.setWindowTitle('%s @%s' % (window_title, master_name))
        self.init_filenames = filenames
        self._search_node_count = 0
        self._search_thread = None
        self._last_search_request = None
        # list with all open files
        self.files = []
        # create tabs for files
        self.main_widget = QWidget(self)
        self.main_widget.setObjectName("editorMain")
        self.verticalLayout = QVBoxLayout(self.main_widget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setSpacing(1)
        self.verticalLayout.setObjectName("verticalLayout")

        self.tabWidget = EditorTabWidget(self)
        self.tabWidget.setTabPosition(QTabWidget.North)
        self.tabWidget.setDocumentMode(True)
        self.tabWidget.setTabsClosable(True)
        self.tabWidget.setMovable(False)
        self.tabWidget.setObjectName("tabWidget")
        self.tabWidget.tabCloseRequested.connect(self.on_close_tab)
        self.tabWidget.currentChanged.connect(self.on_tab_changed)

        self.verticalLayout.addWidget(self.tabWidget)
        self.log_dock = self._create_log_bar()
        self.addDockWidget(Qt.BottomDockWidgetArea, self.log_dock)
        # self.verticalLayout.addWidget(self.log_bar)
        self.buttons = self._create_buttons()
        self.verticalLayout.addWidget(self.buttons)
        self.setCentralWidget(self.main_widget)

        self.find_dialog = TextSearchFrame(self.tabWidget, self)
        self.find_dialog.found_signal.connect(self.on_search_result)
        self.find_dialog.replace_signal.connect(self.on_replace)
        self.addDockWidget(Qt.RightDockWidgetArea, self.find_dialog)

        self.graph_view = GraphViewWidget(self.tabWidget, self)
        self.graph_view.load_signal.connect(self.on_graph_load_file)
        self.graph_view.goto_signal.connect(self.on_graph_goto)
        self.graph_view.search_signal.connect(self.on_load_request)
        self.graph_view.finished_signal.connect(self.on_graph_finished)
        self.graph_view.info_signal.connect(self.on_graph_info)
        self.addDockWidget(Qt.RightDockWidgetArea, self.graph_view)
        self.readSettings()
        self.find_dialog.setVisible(False)
        self.graph_view.setVisible(False)
        nm.nmd().file.changed_file.connect(self.on_changed_file)
        nm.nmd().file.packages_available.connect(self._on_new_packages)
        # open the files
        for f in filenames:
            if f:
                self.on_load_request(f, search_text, only_launch=True)
        self.log_dock.setVisible(False)
        try:
            pal = self.tabWidget.palette()
            self._default_color = pal.color(QPalette.Window)
            color = QColor.fromRgb(nm.settings().host_color(master_name, self._default_color.rgb()))
            bg_style_launch_dock = "QWidget#editorMain { background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 %s, stop: 0.7 %s);}" % (color.name(), self._default_color.name())
            self.setStyleSheet('%s' % (bg_style_launch_dock))
        except Exception as _:
            pass