def __init__(self, tabwidget, parent=None):
     QDockWidget.__init__(self, "Find", parent)
     self.setObjectName('SearchFrame')
     self.setFeatures(QDockWidget.DockWidgetMovable
                      | QDockWidget.DockWidgetFloatable)
     self._dockwidget = QFrame(self)
     self.vbox_layout = QVBoxLayout(self._dockwidget)
     self.layout().setContentsMargins(0, 0, 0, 0)
     self.layout().setSpacing(1)
     # frame with two rows for find and replace
     find_replace_frame = QFrame(self)
     find_replace_vbox_layout = QVBoxLayout(find_replace_frame)
     find_replace_vbox_layout.setContentsMargins(0, 0, 0, 0)
     find_replace_vbox_layout.setSpacing(1)
     #        find_replace_vbox_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Expanding))
     # create frame with find row
     find_frame = self._create_find_frame()
     find_replace_vbox_layout.addWidget(find_frame)
     rplc_frame = self._create_replace_frame()
     find_replace_vbox_layout.addWidget(rplc_frame)
     # frame for find&replace and search results
     self.vbox_layout.addWidget(find_replace_frame)
     self.vbox_layout.addWidget(self._create_found_frame())
     #        self.vbox_layout.addStretch(2024)
     self.setWidget(self._dockwidget)
     # intern search parameters
     self._tabwidget = tabwidget
     self.current_search_text = ''
     self.search_results = []
     self.search_results_fileset = set()
     self._search_result_index = -1
     self._search_recursive = False
     self._search_thread = None
    def __init__(self, tabwidget, parent=None):
        QDockWidget.__init__(self, "Find", parent)
        self.setObjectName('SearchFrame')
        self.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable)
        self._dockwidget = QFrame(self)
        self.vbox_layout = QVBoxLayout(self._dockwidget)
        self.layout().setContentsMargins(0, 0, 0, 0)
        self.layout().setSpacing(1)
        # frame with two rows for find and replace
        find_replace_frame = QFrame(self)
        find_replace_vbox_layout = QVBoxLayout(find_replace_frame)
        find_replace_vbox_layout.setContentsMargins(0, 0, 0, 0)
        find_replace_vbox_layout.setSpacing(1)
#        find_replace_vbox_layout.addSpacerItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Expanding))
        # create frame with find row
        find_frame = self._create_find_frame()
        find_replace_vbox_layout.addWidget(find_frame)
        rplc_frame = self._create_replace_frame()
        find_replace_vbox_layout.addWidget(rplc_frame)
        # frame for find&replace and search results
        self.vbox_layout.addWidget(find_replace_frame)
        self.vbox_layout.addWidget(self._create_found_frame())
#        self.vbox_layout.addStretch(2024)
        self.setWidget(self._dockwidget)
        # intern search parameters
        self._tabwidget = tabwidget
        self.current_search_text = ''
        self.search_results = []
        self.search_results_fileset = set()
        self._search_result_index = -1
        self._search_recursive = False
        self._search_thread = None
Beispiel #3
0
 def __init__(self, tabwidget, parent=None):
     QDockWidget.__init__(self, "LaunchGraph", parent)
     graph_ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'GraphDockWidget.ui')
     loadUi(graph_ui_file, self)
     self.setObjectName('LaunchGraph')
     self.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable)
     self._info_icon = QIcon(":/icons/info.png")
     self._tabwidget = tabwidget
     self._current_path = None
     self._root_path = None
     self._current_deep = 0
     self.graphTreeView.setSelectionBehavior(QAbstractItemView.SelectRows)
     model = QStandardItemModel()
     self.graphTreeView.setModel(model)
     self.graphTreeView.setUniformRowHeights(True)
     self.graphTreeView.header().hide()
     self.htmlDelegate = HTMLDelegate(palette=self.palette())
     self.graphTreeView.setItemDelegateForColumn(0, self.htmlDelegate)
     self.graphTreeView.activated.connect(self.on_activated)
     self.graphTreeView.clicked.connect(self.on_clicked)
     self._created_tree = False
     self.has_none_packages = True
     self.has_warnings = False
     self._refill_tree([], False)
     self._fill_graph_thread = None
Beispiel #4
0
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     self._log_info_count = 0
     self._log_warn_count = 0
     self._log_err_count = 0
     self._log_fatal_count = 0
     # load the UI file
     log_dock_file = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), 'LogDockWidget.ui')
     loadUi(log_dock_file, self)
     self.setObjectName("LogWidget")
     self.setFeatures(QDockWidget.DockWidgetFloatable
                      | QDockWidget.DockWidgetMovable
                      | QDockWidget.DockWidgetClosable)
     # connect to the button signals
     self.clearCloseButton.clicked.connect(self._on_log_clear_close_clicked)
     self.closeButton.clicked.connect(self.hide)
     # initialize the listener to the rosout topic
     self._rosout_listener = RosoutListener()
     self._rosout_listener.rosinfo_signal.connect(self._on_roslog_info)
     self._rosout_listener.roswarn_signal.connect(self._on_roslog_warn)
     self._rosout_listener.roserr_signal.connect(self._on_roslog_err)
     self._rosout_listener.rosfatal_signal.connect(self._on_roslog_fatal)
     self._rosout_listener.registerByROS()
Beispiel #5
0
 def __init__(self, main_window, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     # load the UI file
     profile_dock_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'ProfileWidget.ui')
     loadUi(profile_dock_file, self)
     self._main_window = main_window
     self.setVisible(False)
     self._current_profile = dict()
Beispiel #6
0
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     self._log_debug_count = 0
     self._log_info_count = 0
     self._log_warn_count = 0
     self._log_err_count = 0
     self._log_fatal_count = 0
     # load the UI file
     log_dock_file = os.path.join(
         os.path.dirname(os.path.realpath(__file__)), 'ui',
         'LogDockWidget.ui')
     loadUi(log_dock_file, self)
     self.setObjectName("LogWidget")
     self.closeButton.setIcon(
         nm.settings().icon('crystal_clear_button_close.png'))
     self.setFeatures(QDockWidget.DockWidgetFloatable
                      | QDockWidget.DockWidgetMovable
                      | QDockWidget.DockWidgetClosable)
     # connect to the button signals
     self.clearCloseButton.clicked.connect(self._on_log_clear_close_clicked)
     self.closeButton.clicked.connect(self.hide)
     # initialize the listener to the rosout topic
     self._rosout_listener = RosoutListener()
     self._rosout_listener.rosdebug_signal.connect(self._on_roslog_debug)
     self._rosout_listener.rosinfo_signal.connect(self._on_roslog_info)
     self._rosout_listener.roswarn_signal.connect(self._on_roslog_warn)
     self._rosout_listener.roserr_signal.connect(self._on_roslog_err)
     self._rosout_listener.rosfatal_signal.connect(self._on_roslog_fatal)
     self._rosout_listener.registerByROS()
     self._enable_info_on_start = False
     if self._enable_info_on_start:
         try:
             service_name = "%s/get_loggers" % rospy.get_name()
             log_level_srvs = rospy.ServiceProxy(service_name, GetLoggers)
             resp = log_level_srvs()
             for logger in resp.loggers:
                 if logger.name == 'rosout':
                     if logger.level == 'DEBUG':
                         self.checkBox_debug.setChecked(True)
                         self.checkBox_info.setChecked(True)
                     elif logger.level == 'INFO':
                         self.checkBox_info.setChecked(True)
                     break
         except rospy.ServiceException as e:
             err_msg = "Service call '%s' failed: %s" % (service_name,
                                                         utf8(e))
             rospy.logwarn(err_msg)
     self.checkBox_debug.stateChanged.connect(
         self._on_checkbox_debug_state_changed)
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     # initialize parameter
     self.__current_path = os.path.expanduser('~')
     # load the UI file
     ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                            'LaunchFilesDockWidget.ui')
     loadUi(ui_file,
            self,
            custom_widgets={'EnhancedLineEdit': EnhancedLineEdit})
     self._current_search = ''
     pal = self.palette()
     self._default_color = pal.color(QPalette.Window)
     # initialize the progress queue
     self.progress_queue = ProgressQueue(self.ui_frame_progress_cfg,
                                         self.ui_bar_progress_cfg,
                                         self.ui_button_progress_cancel_cfg,
                                         'Launch File')
     # initialize the view for the launch files
     self.launchlist_model = LaunchListModel(
         progress_queue=self.progress_queue, viewobj=self.ui_file_view)
     self.launchlist_proxy_model = QSortFilterProxyModel(self)
     self.launchlist_proxy_model.setSourceModel(self.launchlist_model)
     self.name_delegate = HTMLDelegate(check_for_ros_names=False,
                                       palette=self.palette())
     self.ui_file_view.setItemDelegateForColumn(0, self.name_delegate)
     self.ui_file_view.setModel(self.launchlist_proxy_model)
     self.ui_file_view.setAlternatingRowColors(True)
     self.ui_file_view.activated.connect(self.on_launch_selection_activated)
     self.ui_file_view.setDragDropMode(QAbstractItemView.DragOnly)
     self.ui_file_view.setDragEnabled(True)
     sm = self.ui_file_view.selectionModel()
     sm.selectionChanged.connect(self.on_ui_file_view_selection_changed)
     self.launchlist_model.pathlist_handled.connect(
         self.on_pathlist_handled)
     self.launchlist_model.error_on_path.connect(self.on_error_on_path)
     self.ui_search_line.refresh_signal.connect(self.set_package_filter)
     self.ui_search_line.stop_signal.connect(self.stop)
     # connect to the button signals
     self.ui_button_reload.clicked.connect(self.on_reload_clicked)
     self.ui_button_edit.clicked.connect(self.on_edit_xml_clicked)
     self.ui_button_new.clicked.connect(self.on_new_xml_clicked)
     self.ui_button_transfer.clicked.connect(self.on_transfer_file_clicked)
     self.ui_button_save_profile.clicked.connect(
         self.on_save_profile_clicked)
     self.ui_button_load.clicked.connect(self.on_load_xml_clicked)
     self._masteruri2name = {}
     self._reload_timer = None
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     self.setObjectName("ScreenDock")
     self.setWindowTitle("Screens")
     self.setFeatures(QDockWidget.DockWidgetFloatable | QDockWidget.DockWidgetMovable)  # | QDockWidget.DockWidgetClosable)
     self._parent_dock = None
     self._open_dialogs = []
     self.tab_widget = DetachableTabWidget(self)
     self.tab_widget.currentChanged.connect(self.on_tab_changed)
     self.tab_widget.detach_signal.connect(self.on_detach)
     self.setWidget(self.tab_widget)
Beispiel #9
0
    def __init__(self, main_window, parent=None):
        '''
        Creates the window, connects the signals and initialize the class.

        :param main_window: the node manager main windows object to get all current stuff
        :type main_window: :class:`fkie_node_manager.main_window.MainWindow`
        '''
        QDockWidget.__init__(self, parent)
        # load the UI file
        profile_dock_file = os.path.join(
            os.path.dirname(os.path.realpath(__file__)), 'ProfileWidget.ui')
        loadUi(profile_dock_file, self)
        self._main_window = main_window
        self.setVisible(False)
        self._current_profile = dict()
Beispiel #10
0
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     # initialize parameter
     self.__current_path = os.path.expanduser('~')
     # load the UI file
     ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                            'LaunchFilesDockWidget.ui')
     loadUi(ui_file, self)
     # initialize the view for the launch files
     self.launchlist_model = LaunchListModel()
     self.launchlist_proxyModel = QSortFilterProxyModel(self)
     self.launchlist_proxyModel.setSourceModel(self.launchlist_model)
     self.xmlFileView.setModel(self.launchlist_proxyModel)
     self.xmlFileView.setAlternatingRowColors(True)
     self.xmlFileView.activated.connect(self.on_launch_selection_activated)
     self.xmlFileView.setDragDropMode(QAbstractItemView.DragOnly)
     self.xmlFileView.setDragEnabled(True)
     sm = self.xmlFileView.selectionModel()
     sm.selectionChanged.connect(self.on_xmlFileView_selection_changed)
     #    self.searchPackageLine.setVisible(False)
     self.searchPackageLine.textChanged.connect(self.set_package_filter)
     self.searchPackageLine.focusInEvent = self._searchline_focusInEvent
     # connect to the button signals
     self.refreshXmlButton.clicked.connect(self.on_refresh_xml_clicked)
     self.editXmlButton.clicked.connect(self.on_edit_xml_clicked)
     self.newXmlButton.clicked.connect(self.on_new_xml_clicked)
     self.openXmlButton.clicked.connect(self.on_open_xml_clicked)
     self.transferButton.clicked.connect(self.on_transfer_file_clicked)
     self.loadXmlButton.clicked.connect(self.on_load_xml_clicked)
     self.loadXmlAsDefaultButton.clicked.connect(self.on_load_as_default)
     # creates a default config menu
     start_menu = QMenu(self)
     self.loadDeafaultAtHostAct = QAction(
         "&Load default config on host",
         self,
         statusTip="Loads the default config at given host",
         triggered=self.on_load_as_default_at_host)
     start_menu.addAction(self.loadDeafaultAtHostAct)
     self.loadXmlAsDefaultButton.setMenu(start_menu)
     # initialize the progress queue
     self.progress_queue = ProgressQueue(self.progressFrame_cfg,
                                         self.progressBar_cfg,
                                         self.progressCancelButton_cfg,
                                         'Launch File')
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     # load the UI file
     settings_dock_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'SettingsDockWidget.ui')
     loadUi(settings_dock_file, self)
     # initialize the settings view model
     self.settings_model = SettingsModel()
     self.settings_proxyModel = QSortFilterProxyModel(self)
     self.settings_proxyModel.setSourceModel(self.settings_model)
     self.settingsTreeView.setModel(self.settings_proxyModel)
     self.settingsTreeView.setAlternatingRowColors(True)
     for i, (_, width) in enumerate(SettingsModel.header):
         self.settingsTreeView.setColumnWidth(i, width)
     self.item_delegate = ItemDelegate()
     self.item_delegate.settings_path_changed_signal.connect(self.reload_settings)
     self.settingsTreeView.setItemDelegateForColumn(1, self.item_delegate)
     self.reload_settings()
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     # load the UI file
     settings_dock_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'SettingsDockWidget.ui')
     loadUi(settings_dock_file, self)
     # initialize the settings view model
     self.settings_model = SettingsModel()
     self.settings_proxyModel = QSortFilterProxyModel(self)
     self.settings_proxyModel.setSourceModel(self.settings_model)
     self.settingsTreeView.setModel(self.settings_proxyModel)
     self.settingsTreeView.setAlternatingRowColors(True)
     for i, (_, width) in enumerate(SettingsModel.header):
         self.settingsTreeView.setColumnWidth(i, width)
     self.item_delegate = ItemDelegate()
     self.item_delegate.settings_path_changed_signal.connect(self.reload_settings)
     self.settingsTreeView.setItemDelegateForColumn(1, self.item_delegate)
     self.reload_settings()
 def __init__(self, tabwidget, parent=None):
     QDockWidget.__init__(self, "LaunchGraph", parent)
     graph_ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'GraphDockWidget.ui')
     loadUi(graph_ui_file, self)
     self.setObjectName('LaunchGraph')
     self.setFeatures(QDockWidget.DockWidgetMovable | QDockWidget.DockWidgetFloatable)
     self._tabwidget = tabwidget
     self._current_path = None
     self._root_path = None
     self._current_deep = 0
     self.graphTreeView.setSelectionBehavior(QAbstractItemView.SelectRows)
     model = QStandardItemModel()
     self.graphTreeView.setModel(model)
     self.graphTreeView.setUniformRowHeights(True)
     self.graphTreeView.header().hide()
     self.htmlDelegate = HTMLDelegate()
     self.graphTreeView.setItemDelegateForColumn(0, self.htmlDelegate)
     self.graphTreeView.activated.connect(self.on_activated)
     self.graphTreeView.clicked.connect(self.on_clicked)
     self._created_tree = False
     self._refill_tree([], [], False)
    def __init__(self, parent=None):
        '''
        Creates the window, connects the signals and init the class.
        '''
        QDockWidget.__init__(self, parent)
        # initialize parameter
        self.__current_path = os.path.expanduser('~')
        # load the UI file
        ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'LaunchFilesDockWidget.ui')
        loadUi(ui_file, self)
        # initialize the view for the launch files
        self.launchlist_model = LaunchListModel()
        self.launchlist_proxyModel = QSortFilterProxyModel(self)
        self.launchlist_proxyModel.setSourceModel(self.launchlist_model)
        self.xmlFileView.setModel(self.launchlist_proxyModel)
        self.xmlFileView.setAlternatingRowColors(True)
        self.xmlFileView.activated.connect(self.on_launch_selection_activated)
        self.xmlFileView.setDragDropMode(QAbstractItemView.DragOnly)
        self.xmlFileView.setDragEnabled(True)
        sm = self.xmlFileView.selectionModel()
        sm.selectionChanged.connect(self.on_xmlFileView_selection_changed)
#    self.searchPackageLine.setVisible(False)
        self.searchPackageLine.textChanged.connect(self.set_package_filter)
        self.searchPackageLine.focusInEvent = self._searchline_focusInEvent
        # connect to the button signals
        self.refreshXmlButton.clicked.connect(self.on_refresh_xml_clicked)
        self.editXmlButton.clicked.connect(self.on_edit_xml_clicked)
        self.newXmlButton.clicked.connect(self.on_new_xml_clicked)
        self.openXmlButton.clicked.connect(self.on_open_xml_clicked)
        self.transferButton.clicked.connect(self.on_transfer_file_clicked)
        self.loadXmlButton.clicked.connect(self.on_load_xml_clicked)
        self.loadXmlAsDefaultButton.clicked.connect(self.on_load_as_default)
        # creates a default config menu
        start_menu = QMenu(self)
        self.loadDeafaultAtHostAct = QAction("&Load default config on host", self, statusTip="Loads the default config at given host", triggered=self.on_load_as_default_at_host)
        start_menu.addAction(self.loadDeafaultAtHostAct)
        self.loadXmlAsDefaultButton.setMenu(start_menu)
        # initialize the progress queue
        self.progress_queue = ProgressQueue(self.progressFrame_cfg, self.progressBar_cfg, self.progressCancelButton_cfg)
Beispiel #15
0
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     self._log_info_count = 0
     self._log_warn_count = 0
     self._log_err_count = 0
     self._log_fatal_count = 0
     # load the UI file
     log_dock_file = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'LogDockWidget.ui')
     loadUi(log_dock_file, self)
     self.hide()
     # connect to the button signals
     self.clearCloseButton.clicked.connect(self._on_log_clear_close_clicked)
     self.closeButton.clicked.connect(self.hide)
     # initialize the listener to the rosout topic
     self._rosout_listener = RosoutListener()
     self._rosout_listener.roswarn_signal.connect(self._on_roslog_warn)
     self._rosout_listener.roserr_signal.connect(self._on_roslog_err)
     self._rosout_listener.rosfatal_signal.connect(self._on_roslog_fatal)
     self._rosout_listener.registerByROS()
 def __init__(self, parent=None):
     '''
     Creates the window, connects the signals and init the class.
     '''
     QDockWidget.__init__(self, parent)
     # initialize parameter
     self.__current_path = os.path.expanduser('~')
     # load the UI file
     ui_file = os.path.join(os.path.dirname(os.path.realpath(__file__)),
                            'ui', 'LaunchFilesDockWidget.ui')
     loadUi(ui_file,
            self,
            custom_widgets={'EnhancedLineEdit': EnhancedLineEdit})
     self.hostLabel.setVisible(False)
     self.ui_button_progress_cancel_cfg.setIcon(
         nm.settings().icon('crystal_clear_button_close.png'))
     self.ui_button_reload.setIcon(
         nm.settings().icon('oxygen_view_refresh.png'))
     self.ui_button_edit.setIcon(
         nm.settings().icon('crystal_clear_edit_launch.png'))
     self.ui_button_new.setIcon(nm.settings().icon('crystal_clear_add.png'))
     self.ui_button_transfer.setIcon(
         nm.settings().icon('crystal_clear_launch_file_transfer.png'))
     self.ui_button_save_profile.setIcon(
         nm.settings().icon('crystal_clear_profile_new.png'))
     self.ui_button_load.setIcon(
         nm.settings().icon('crystal_clear_launch_file.png'))
     self._current_search = ''
     pal = self.palette()
     self._default_color = pal.color(QPalette.Window)
     # initialize the progress queue
     self.progress_queue = ProgressQueue(self.ui_frame_progress_cfg,
                                         self.ui_bar_progress_cfg,
                                         self.ui_button_progress_cancel_cfg,
                                         'Launch File')
     # initialize the view for the launch files
     self.launchlist_model = LaunchListModel(
         progress_queue=self.progress_queue, viewobj=self.ui_file_view)
     self.launchlist_proxy_model = QSortFilterProxyModel(self)
     self.launchlist_proxy_model.setSourceModel(self.launchlist_model)
     self.name_delegate = HTMLDelegate(check_for_ros_names=False,
                                       palette=self.palette())
     self.ui_file_view.setItemDelegateForColumn(0, self.name_delegate)
     self.ui_file_view.setModel(self.launchlist_proxy_model)
     self.ui_file_view.setAlternatingRowColors(True)
     self.ui_file_view.activated.connect(self.on_launch_selection_activated)
     self.ui_file_view.setDragDropMode(QAbstractItemView.DragOnly)
     self.ui_file_view.setDragEnabled(True)
     sm = self.ui_file_view.selectionModel()
     sm.selectionChanged.connect(self.on_ui_file_view_selection_changed)
     self.launchlist_model.pathlist_handled.connect(
         self.on_pathlist_handled)
     self.launchlist_model.error_on_path.connect(self.on_error_on_path)
     self.ui_search_line.refresh_signal.connect(self.set_package_filter)
     self.ui_search_line.stop_signal.connect(self.stop)
     # connect to the button signals
     self.ui_button_reload.clicked.connect(self.on_reload_clicked)
     self.ui_button_edit.clicked.connect(self.on_edit_xml_clicked)
     #self.ui_button_new.clicked.connect(self.on_new_xml_clicked)
     self.ui_button_transfer.clicked.connect(self.on_transfer_file_clicked)
     self.ui_button_save_profile.clicked.connect(
         self.on_save_profile_clicked)
     self.ui_button_load.clicked.connect(self.on_load_xml_clicked)
     # add menu to create fiel or directory
     self._menu_add = QMenu()
     create_file_action = QAction(
         nm.settings().icon('crystal_clear_launch_file_new.png'),
         "create file",
         self,
         statusTip="",
         triggered=self.on_new_xml_clicked)
     create_dir_action = QAction(
         nm.settings().icon('crystal_clear_folder.png'),
         "create directory",
         self,
         statusTip="",
         triggered=self.on_new_dir_clicked)
     self._menu_add.addAction(create_file_action)
     self._menu_add.addAction(create_dir_action)
     self.ui_button_new.setMenu(self._menu_add)
     self._masteruri2name = {}
     self._reload_timer = None
     self._first_path = self.launchlist_model.current_path