def reloadPackages(self):
   '''
   Reloads the cached packag list.
   '''
   if not self._fill_packages_thread.isAlive():
     self._fill_packages_thread = PackagesThread()
     self._fill_packages_thread.packages.connect(self._fill_packages)
     self._fill_packages_thread.start()
예제 #2
0
    def __init__(self, parent=None):
        QtGui.QDialog.__init__(self, parent)
        self.setWindowTitle('Select Binary')
        self.verticalLayout = QtGui.QVBoxLayout(self)
        self.verticalLayout.setObjectName("verticalLayout")

        self.content = QtGui.QWidget()
        self.contentLayout = QtGui.QFormLayout(self.content)
        self.contentLayout.setVerticalSpacing(0)
        self.verticalLayout.addWidget(self.content)

        self.packages = None

        package_label = QtGui.QLabel("Package:", self.content)
        self.package_field = QtGui.QComboBox(self.content)
        self.package_field.setInsertPolicy(
            QtGui.QComboBox.InsertAlphabetically)
        self.package_field.setSizePolicy(
            QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                              QtGui.QSizePolicy.Fixed))
        self.package_field.setEditable(True)
        self.contentLayout.addRow(package_label, self.package_field)
        binary_label = QtGui.QLabel("Binary:", self.content)
        self.binary_field = QtGui.QComboBox(self.content)
        #    self.binary_field.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
        self.binary_field.setSizePolicy(
            QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                              QtGui.QSizePolicy.Fixed))
        self.binary_field.setEditable(True)
        self.contentLayout.addRow(binary_label, self.binary_field)

        self.buttonBox = QtGui.QDialogButtonBox(self)
        self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Ok
                                          | QtGui.QDialogButtonBox.Cancel)
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setObjectName("buttonBox")
        self.verticalLayout.addWidget(self.buttonBox)

        self.package_field.setFocus(QtCore.Qt.TabFocusReason)
        self.package = ''
        self.binary = ''

        if self.packages is None:
            self.package_field.addItems(['packages searching...'])
            self.package_field.setCurrentIndex(0)
            self._fill_packages_thread = PackagesThread()
            self._fill_packages_thread.packages.connect(self._fill_packages)
            self._fill_packages_thread.start()

        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("accepted()"),
                               self.accept)
        QtCore.QObject.connect(self.buttonBox, QtCore.SIGNAL("rejected()"),
                               self.reject)
        QtCore.QMetaObject.connectSlotsByName(self)
        self.package_field.activated[str].connect(self.on_package_selected)
        self.package_field.textChanged.connect(self.on_package_selected)
 def __init__(self):
   '''
   Creates a new list model.
   '''
   QtGui.QStandardItemModel.__init__(self)
   self.setColumnCount(len(LaunchListModel.header))
   self.setHorizontalHeaderLabels([label for label, width in LaunchListModel.header])
   self.pyqt_workaround = dict() # workaround for using with PyQt: store the python object to keep the defined attributes in the TopicItem subclass
   self.items = []
   self.DIR_CACHE = {}
   self.currentPath = None
   self.load_history = self._getLoadHistory()
   self.root_paths = [os.path.normpath(p) for p in os.getenv("ROS_PACKAGE_PATH").split(':')]
   self._setNewList(self._moveUp(None))
   self.__packages = {}
   self._fill_packages_thread = PackagesThread()
   self._fill_packages_thread.packages.connect(self._fill_packages)
   self._fill_packages_thread.start()