Exemple #1
0
    def __init__(self, world={}, parent=None):
        super(InputsModel, self).__init__(parent=parent)
        self.world = world

        layout = QtGui.QGridLayout(self)

        self.label = QtGui.QLabel("Inputs: ")

        self.combo_input = QtGui.QComboBox(self)
        self.combo_input.addItems(world.keys())

        self.add_button = QtGui.QPushButton("Add Input")
        self.add_button.clicked.connect(self.add_input)
        self.rm_button = QtGui.QPushButton("Remove Input")
        self.rm_button.clicked.connect(self.rm_input)

        self.ok_button = QtGui.QPushButton("Ok")
        self.ok_button.clicked.connect(self.print_current)

        layout.addWidget(self.label, 0, 0)
        layout.addWidget(self.combo_input, 0, 1)
        # layout.addWidget(self.add_button, 0, 2)
        # layout.addWidget(self.rm_button, 0, 3)
        # layout.addWidget(self.ok_button, 10, 0)

        self.setLayout(layout)
Exemple #2
0
    def __init__(self, project, parent=None):
        super(Preview, self).__init__(parent)
        wanted_size = 50
        self.project = project

        layout = QtGui.QGridLayout()
        icon_name = ":/images/resources/openalea_icon2.png"
        if len(project.icon):
            if project.icon[0] is not ":":
                # local icon
                icon_name = project.path / project.icon
                # else native icon from oalab.gui.resources

        image = QtGui.QImage(icon_name)
        label = QtGui.QLabel()
        label.setPixmap(QtGui.QPixmap(image))
        size = image.size()
        if size.height() > wanted_size or size.width() > wanted_size:
            # Auto-rescale if image is bigger than wanted_size x wanted_size
            label.setScaledContents(True)
        label.setMinimumSize(wanted_size, wanted_size)
        label.setMaximumSize(wanted_size, wanted_size)
        layout.addWidget(label, 0, 0)

        layout.addWidget(
            QtGui.QLabel("<b><FONT SIZE = 40>" + pretty_print(project.name) +
                         "<\b>"), 0, 1)

        i = 1
        for label in Project.DEFAULT_METADATA:
            layout.addWidget(QtGui.QLabel(label), i, 0)
            # GBY Review:
            # QLabel expects a QString and QString is equivalent to unicode
            # so you must convert str to unicode to support non ASCII characters correctly (for example accent in author's name)
            # If project meta-info encoding is utf-8, you can write projet.author.decode('utf-8')
            # Just put accents or greek characters in test data to check such problems

            # GBY Review: if amount of metainfo grows, QTextEdit can be more convenient
            layout.addWidget(
                QtGui.QLabel(pretty_print(getattr(project, label))), i, 1)
            i += 1

        layout.addWidget(QtGui.QLabel("Items:"), i, 0, 1, 2)
        model_list = QtGui.QTextEdit()
        layout.addWidget(model_list, i + 1, 0, 1, 2)

        model_list.setText(html_item_summary(project))

        open_button = QtGui.QPushButton("Open this project")
        open_button.clicked.connect(self.on_project_opened)
        layout.addWidget(open_button, i + 2, 0)

        self.setLayout(layout)
Exemple #3
0
    def init(self):
        button_size = 180
        self.current_preview = None

        # Auto select number of lines and columns to display
        # Here number of lines <= number of columns
        # <=4 -> 2x2 or 2x1, <=9 -> 3x3 or 3x2, <=16 -> 4x4 or 4x3, ...
        nb_proj = len(self.projects)
        # maxcolumn = int(sqrt(nb_proj))

        # Pb: we want the size of QScrollArea and not self
        actual_width = self.size().width()
        maxcolumn = int(actual_width / nb_proj)

        if maxcolumn > 5:
            maxcolumn = 5

        refresh_widget = QtGui.QPushButton("Refresh")
        refresh_widget.clicked.connect(self.refresh_project_list)
        add_widget = QtGui.QPushButton("Search Projects")
        add_widget.clicked.connect(self.add_path_to_search_project)

        i, j = 1, -1
        for project in self.projects:
            # Create widget
            preview_widget = ProjectPushButton(project, size=button_size)
            preview_widget.clicked.connect(self.showDetails)

            if j < maxcolumn - 1:
                j += 1
            else:
                j = 0
                i += 1
            self.layout.addWidget(preview_widget, i, j)

        self.layout.addWidget(refresh_widget, 0, 0)
        self.layout.addWidget(add_widget, 0, 1)
Exemple #4
0
    def __init__(self, parent=None):
        super(OutputsModel, self).__init__(parent=parent)

        layout = QtGui.QGridLayout(self)

        self.label = QtGui.QLabel("Outputs: ")

        self.line_output = QtGui.QLineEdit(self)

        self.add_button = QtGui.QPushButton("Add Output")
        self.add_button.clicked.connect(self.add_input)
        self.rm_button = QtGui.QPushButton("Remove Output")
        self.rm_button.clicked.connect(self.rm_input)

        self.ok_button = QtGui.QPushButton("Ok")
        self.ok_button.clicked.connect(self.print_current)

        layout.addWidget(self.label, 0, 0)
        layout.addWidget(self.line_output, 0, 1)
        # layout.addWidget(self.add_button, 0, 2)
        # layout.addWidget(self.rm_button, 0, 3)
        # layout.addWidget(self.ok_button, 10, 0)

        self.setLayout(layout)
Exemple #5
0
    def __init__(self, world={}, parent=None):
        super(InAndOutModel, self).__init__(parent=parent)
        self.world = world

        layout = QtGui.QGridLayout(self)
        self.inp = InputsModel(self.world)
        self.outp = OutputsModel()
        layout.addWidget(self.inp)
        layout.addWidget(self.outp)

        self.ok_button = QtGui.QPushButton("Ok")
        self.ok_button.clicked.connect(self.print_current)

        layout.addWidget(self.ok_button)
        self.setLayout(layout)
Exemple #6
0
        def __init__(self):
            QtGui.QWidget.__init__(self)
            layout = QtGui.QVBoxLayout(self)

            self.pb_select = QtGui.QPushButton('select')
            self.cb_category = QtGui.QComboBox()
            self.e_size = QtGui.QLineEdit("400x400")

            for category in ['oalab.lab', 'oalab.applet']:
                self.cb_category.addItem(category)

            self.pb_select.clicked.connect(self.select)

            layout.addWidget(self.cb_category)
            layout.addWidget(self.e_size)
            layout.addWidget(self.pb_select)
Exemple #7
0
        def __init__(self):
            QtGui.QWidget.__init__(self)
            layout = QtGui.QVBoxLayout(self)

            self.pb_select = QtGui.QPushButton('select')
            self.cb_category = QtGui.QComboBox()
            self.e_size = QtGui.QLineEdit("400x400")

            for manager, group in managers:
                self.cb_category.addItem(group, manager)

            self.pb_select.clicked.connect(self.select)

            layout.addWidget(self.cb_category)
            layout.addWidget(self.e_size)
            layout.addWidget(self.pb_select)
Exemple #8
0
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(288,170)
        self.gridLayout = QtGui.QGridLayout(Dialog)
        self.gridLayout.setObjectName("gridLayout")
        self.captionText = QtGui.QLabel(Dialog)
        self.captionText.setObjectName("captionText")
        self.gridLayout.addWidget(self.captionText,0,0,1,1)
        self.valueDisplay = QtGui.QTextEdit(Dialog)
        self.valueDisplay.setReadOnly(True)
        self.valueDisplay.setTabStopWidth(20)
        self.valueDisplay.setObjectName("valueDisplay")
        self.gridLayout.addWidget(self.valueDisplay,1,0,1,2)
        spacerItem = QtGui.QSpacerItem(330,20,QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem,2,0,1,1)
        self.okButton = QtGui.QPushButton(Dialog)
        self.okButton.setObjectName("okButton")
        self.gridLayout.addWidget(self.okButton,2,1,1,1)

        self.retranslateUi(Dialog)
        QtCore.QObject.connect(self.okButton,QtCore.SIGNAL("clicked()"),Dialog.accept)
        QtCore.QMetaObject.connectSlotsByName(Dialog)
Exemple #9
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(703, 681)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap(":/icons/openalea_icon.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        MainWindow.setWindowIcon(icon)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setGeometry(QtCore.QRect(0, 21, 703, 660))
        self.centralwidget.setObjectName("centralwidget")
        self.gridLayout_4 = QtGui.QGridLayout(self.centralwidget)
        self.gridLayout_4.setObjectName("gridLayout_4")
        self.splitter = QtGui.QSplitter(self.centralwidget)
        self.splitter.setOrientation(QtCore.Qt.Vertical)
        self.splitter.setObjectName("splitter")
        self.tabWidget = QtGui.QTabWidget(self.splitter)
        self.tabWidget.setObjectName("tabWidget")
        self.tab = QtGui.QWidget()
        self.tab.setGeometry(QtCore.QRect(0, 0, 679, 373))
        self.tab.setObjectName("tab")
        self.vboxlayout = QtGui.QVBoxLayout(self.tab)
        self.vboxlayout.setObjectName("vboxlayout")
        self.label_4 = QtGui.QLabel(self.tab)
        self.label_4.setOpenExternalLinks(True)
        self.label_4.setObjectName("label_4")
        self.vboxlayout.addWidget(self.label_4)
        self.hboxlayout = QtGui.QHBoxLayout()
        self.hboxlayout.setObjectName("hboxlayout")
        self.radioRecommended = QtGui.QRadioButton(self.tab)
        self.radioRecommended.setChecked(True)
        self.radioRecommended.setObjectName("radioRecommended")
        self.hboxlayout.addWidget(self.radioRecommended)
        self.radioAll = QtGui.QRadioButton(self.tab)
        self.radioAll.setObjectName("radioAll")
        self.hboxlayout.addWidget(self.radioAll)
        self.radioUpdate = QtGui.QRadioButton(self.tab)
        self.radioUpdate.setObjectName("radioUpdate")
        self.hboxlayout.addWidget(self.radioUpdate)
        self.radioInstalled = QtGui.QRadioButton(self.tab)
        self.radioInstalled.setObjectName("radioInstalled")
        self.hboxlayout.addWidget(self.radioInstalled)
        self.vboxlayout.addLayout(self.hboxlayout)
        self.packageList = QtGui.QListWidget(self.tab)
        self.packageList.setAlternatingRowColors(True)
        self.packageList.setSelectionMode(
            QtGui.QAbstractItemView.MultiSelection)
        self.packageList.setSortingEnabled(True)
        self.packageList.setObjectName("packageList")
        self.vboxlayout.addWidget(self.packageList)
        self.hboxlayout1 = QtGui.QHBoxLayout()
        self.hboxlayout1.setObjectName("hboxlayout1")
        self.checkAll = QtGui.QPushButton(self.tab)
        self.checkAll.setFlat(True)
        self.checkAll.setObjectName("checkAll")
        self.hboxlayout1.addWidget(self.checkAll)
        self.ClearAll = QtGui.QPushButton(self.tab)
        self.ClearAll.setFlat(True)
        self.ClearAll.setObjectName("ClearAll")
        self.hboxlayout1.addWidget(self.ClearAll)
        spacerItem = QtGui.QSpacerItem(521, 20, QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Minimum)
        self.hboxlayout1.addItem(spacerItem)
        self.vboxlayout.addLayout(self.hboxlayout1)
        self.hboxlayout2 = QtGui.QHBoxLayout()
        self.hboxlayout2.setSpacing(6)
        self.hboxlayout2.setContentsMargins(0, 0, 0, 0)
        self.hboxlayout2.setObjectName("hboxlayout2")
        self.proceedButton = QtGui.QPushButton(self.tab)
        self.proceedButton.setObjectName("proceedButton")
        self.hboxlayout2.addWidget(self.proceedButton)
        self.refreshButton = QtGui.QPushButton(self.tab)
        self.refreshButton.setObjectName("refreshButton")
        self.hboxlayout2.addWidget(self.refreshButton)
        self.vboxlayout.addLayout(self.hboxlayout2)
        self.tabWidget.addTab(self.tab, "")
        self.OtherEggs = QtGui.QWidget()
        self.OtherEggs.setGeometry(QtCore.QRect(0, 0, 679, 373))
        self.OtherEggs.setObjectName("OtherEggs")
        self.vboxlayout1 = QtGui.QVBoxLayout(self.OtherEggs)
        self.vboxlayout1.setObjectName("vboxlayout1")
        self.label = QtGui.QLabel(self.OtherEggs)
        self.label.setOpenExternalLinks(True)
        self.label.setObjectName("label")
        self.vboxlayout1.addWidget(self.label)
        self.hboxlayout3 = QtGui.QHBoxLayout()
        self.hboxlayout3.setObjectName("hboxlayout3")
        self.requestEdit = QtGui.QLineEdit(self.OtherEggs)
        self.requestEdit.setObjectName("requestEdit")
        self.hboxlayout3.addWidget(self.requestEdit)
        self.fileButton = QtGui.QPushButton(self.OtherEggs)
        self.fileButton.setObjectName("fileButton")
        self.hboxlayout3.addWidget(self.fileButton)
        self.vboxlayout1.addLayout(self.hboxlayout3)
        spacerItem1 = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum,
                                        QtGui.QSizePolicy.Expanding)
        self.vboxlayout1.addItem(spacerItem1)
        self.hboxlayout4 = QtGui.QHBoxLayout()
        self.hboxlayout4.setObjectName("hboxlayout4")
        self.customInstallButton = QtGui.QPushButton(self.OtherEggs)
        self.customInstallButton.setObjectName("customInstallButton")
        self.hboxlayout4.addWidget(self.customInstallButton)
        self.vboxlayout1.addLayout(self.hboxlayout4)
        self.tabWidget.addTab(self.OtherEggs, "")
        self.tab_2 = QtGui.QWidget()
        self.tab_2.setGeometry(QtCore.QRect(0, 0, 679, 373))
        self.tab_2.setObjectName("tab_2")
        self.vboxlayout2 = QtGui.QVBoxLayout(self.tab_2)
        self.vboxlayout2.setObjectName("vboxlayout2")
        self.label_2 = QtGui.QLabel(self.tab_2)
        self.label_2.setObjectName("label_2")
        self.vboxlayout2.addWidget(self.label_2)
        self.locationList = QtGui.QListWidget(self.tab_2)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                                       QtGui.QSizePolicy.Expanding)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(1)
        sizePolicy.setHeightForWidth(
            self.locationList.sizePolicy().hasHeightForWidth())
        self.locationList.setSizePolicy(sizePolicy)
        self.locationList.setObjectName("locationList")
        self.vboxlayout2.addWidget(self.locationList)
        self.hboxlayout5 = QtGui.QHBoxLayout()
        self.hboxlayout5.setSpacing(6)
        self.hboxlayout5.setContentsMargins(0, 0, 0, 0)
        self.hboxlayout5.setObjectName("hboxlayout5")
        self.addLocButton = QtGui.QPushButton(self.tab_2)
        self.addLocButton.setObjectName("addLocButton")
        self.hboxlayout5.addWidget(self.addLocButton)
        self.removeLocButton = QtGui.QPushButton(self.tab_2)
        self.removeLocButton.setObjectName("removeLocButton")
        self.hboxlayout5.addWidget(self.removeLocButton)
        self.vboxlayout2.addLayout(self.hboxlayout5)
        self.tabWidget.addTab(self.tab_2, "")
        self.customPackagePage = QtGui.QWidget()
        self.customPackagePage.setGeometry(QtCore.QRect(0, 0, 679, 373))
        self.customPackagePage.setObjectName("customPackagePage")
        self.gridLayout_2 = QtGui.QGridLayout(self.customPackagePage)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.label_5 = QtGui.QLabel(self.customPackagePage)
        sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred,
                                       QtGui.QSizePolicy.Fixed)
        sizePolicy.setHorizontalStretch(0)
        sizePolicy.setVerticalStretch(0)
        sizePolicy.setHeightForWidth(
            self.label_5.sizePolicy().hasHeightForWidth())
        self.label_5.setSizePolicy(sizePolicy)
        self.label_5.setObjectName("label_5")
        self.gridLayout_2.addWidget(self.label_5, 0, 0, 1, 5)
        self.label_6 = QtGui.QLabel(self.customPackagePage)
        self.label_6.setObjectName("label_6")
        self.gridLayout_2.addWidget(self.label_6, 1, 0, 1, 1)
        self.customPackageNameEdit = QtGui.QLineEdit(self.customPackagePage)
        self.customPackageNameEdit.setObjectName("customPackageNameEdit")
        self.gridLayout_2.addWidget(self.customPackageNameEdit, 1, 1, 1, 4)
        self.label_7 = QtGui.QLabel(self.customPackagePage)
        self.label_7.setObjectName("label_7")
        self.gridLayout_2.addWidget(self.label_7, 2, 0, 1, 1)
        self.customPackageVersionEdit = QtGui.QLineEdit(self.customPackagePage)
        self.customPackageVersionEdit.setObjectName("customPackageVersionEdit")
        self.gridLayout_2.addWidget(self.customPackageVersionEdit, 2, 1, 1, 1)
        spacerItem2 = QtGui.QSpacerItem(291, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem2, 2, 2, 1, 2)
        self.label_8 = QtGui.QLabel(self.customPackagePage)
        self.label_8.setObjectName("label_8")
        self.gridLayout_2.addWidget(self.label_8, 3, 0, 1, 1)
        self.customPackageDirEdit = QtGui.QLineEdit(self.customPackagePage)
        self.customPackageDirEdit.setObjectName("customPackageDirEdit")
        self.gridLayout_2.addWidget(self.customPackageDirEdit, 3, 1, 1, 3)
        self.customPackageDirButton = QtGui.QPushButton(self.customPackagePage)
        self.customPackageDirButton.setObjectName("customPackageDirButton")
        self.gridLayout_2.addWidget(self.customPackageDirButton, 3, 4, 1, 1)
        self.customCppPackageFrame = QtGui.QGroupBox(self.customPackagePage)
        self.customCppPackageFrame.setEnabled(True)
        self.customCppPackageFrame.setCheckable(True)
        self.customCppPackageFrame.setChecked(False)
        self.customCppPackageFrame.setObjectName("customCppPackageFrame")
        self.gridLayout_3 = QtGui.QGridLayout(self.customCppPackageFrame)
        self.gridLayout_3.setSpacing(1)
        self.gridLayout_3.setContentsMargins(4, 1, 4, 1)
        self.gridLayout_3.setObjectName("gridLayout_3")
        self.label_9 = QtGui.QLabel(self.customCppPackageFrame)
        self.label_9.setObjectName("label_9")
        self.gridLayout_3.addWidget(self.label_9, 0, 0, 1, 1)
        self.customPackageIncludeEdit = QtGui.QLineEdit(
            self.customCppPackageFrame)
        self.customPackageIncludeEdit.setObjectName("customPackageIncludeEdit")
        self.gridLayout_3.addWidget(self.customPackageIncludeEdit, 0, 1, 1, 1)
        self.customPackageIncludeButton = QtGui.QPushButton(
            self.customCppPackageFrame)
        self.customPackageIncludeButton.setObjectName(
            "customPackageIncludeButton")
        self.gridLayout_3.addWidget(self.customPackageIncludeButton, 0, 2, 1,
                                    1)
        self.label_11 = QtGui.QLabel(self.customCppPackageFrame)
        self.label_11.setObjectName("label_11")
        self.gridLayout_3.addWidget(self.label_11, 1, 0, 1, 1)
        self.customPackageLibEdit = QtGui.QLineEdit(self.customCppPackageFrame)
        self.customPackageLibEdit.setObjectName("customPackageLibEdit")
        self.gridLayout_3.addWidget(self.customPackageLibEdit, 1, 1, 1, 1)
        self.customPackageLibButton = QtGui.QPushButton(
            self.customCppPackageFrame)
        self.customPackageLibButton.setObjectName("customPackageLibButton")
        self.gridLayout_3.addWidget(self.customPackageLibButton, 1, 2, 1, 1)
        self.label_13 = QtGui.QLabel(self.customCppPackageFrame)
        self.label_13.setObjectName("label_13")
        self.gridLayout_3.addWidget(self.label_13, 2, 0, 1, 1)
        self.customPackageBinEdit = QtGui.QLineEdit(self.customCppPackageFrame)
        self.customPackageBinEdit.setObjectName("customPackageBinEdit")
        self.gridLayout_3.addWidget(self.customPackageBinEdit, 2, 1, 1, 1)
        self.customPackageBinButton = QtGui.QPushButton(
            self.customCppPackageFrame)
        self.customPackageBinButton.setObjectName("customPackageBinButton")
        self.gridLayout_3.addWidget(self.customPackageBinButton, 2, 2, 1, 1)
        self.gridLayout_2.addWidget(self.customCppPackageFrame, 4, 0, 1, 5)
        self.customPythonPackageFrame = QtGui.QGroupBox(self.customPackagePage)
        self.customPythonPackageFrame.setEnabled(True)
        self.customPythonPackageFrame.setCheckable(True)
        self.customPythonPackageFrame.setChecked(False)
        self.customPythonPackageFrame.setObjectName("customPythonPackageFrame")
        self.gridLayout = QtGui.QGridLayout(self.customPythonPackageFrame)
        self.gridLayout.setSpacing(2)
        self.gridLayout.setContentsMargins(4, 0, 2, 4)
        self.gridLayout.setObjectName("gridLayout")
        self.label_12 = QtGui.QLabel(self.customPythonPackageFrame)
        self.label_12.setObjectName("label_12")
        self.gridLayout.addWidget(self.label_12, 0, 0, 1, 1)
        self.customPythonPackageEdit = QtGui.QLineEdit(
            self.customPythonPackageFrame)
        self.customPythonPackageEdit.setObjectName("customPythonPackageEdit")
        self.gridLayout.addWidget(self.customPythonPackageEdit, 0, 1, 1, 1)
        self.customPythonPackageButton = QtGui.QPushButton(
            self.customPythonPackageFrame)
        self.customPythonPackageButton.setObjectName(
            "customPythonPackageButton")
        self.gridLayout.addWidget(self.customPythonPackageButton, 0, 2, 1, 1)
        self.pythonNamespaceFrame = QtGui.QGroupBox(
            self.customPythonPackageFrame)
        self.pythonNamespaceFrame.setCheckable(True)
        self.pythonNamespaceFrame.setChecked(False)
        self.pythonNamespaceFrame.setObjectName("pythonNamespaceFrame")
        self.horizontalLayout = QtGui.QHBoxLayout(self.pythonNamespaceFrame)
        self.horizontalLayout.setSpacing(2)
        self.horizontalLayout.setContentsMargins(4, 1, 4, 4)
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.label_10 = QtGui.QLabel(self.pythonNamespaceFrame)
        self.label_10.setObjectName("label_10")
        self.horizontalLayout.addWidget(self.label_10)
        self.namespaceEdit = QtGui.QLineEdit(self.pythonNamespaceFrame)
        self.namespaceEdit.setObjectName("namespaceEdit")
        self.horizontalLayout.addWidget(self.namespaceEdit)
        self.gridLayout.addWidget(self.pythonNamespaceFrame, 1, 1, 1, 1)
        self.gridLayout_2.addWidget(self.customPythonPackageFrame, 5, 0, 1, 5)
        spacerItem3 = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding,
                                        QtGui.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem3, 6, 1, 1, 2)
        self.customResetButton = QtGui.QPushButton(self.customPackagePage)
        self.customResetButton.setObjectName("customResetButton")
        self.gridLayout_2.addWidget(self.customResetButton, 6, 3, 1, 1)
        self.customApplyButton = QtGui.QPushButton(self.customPackagePage)
        self.customApplyButton.setObjectName("customApplyButton")
        self.gridLayout_2.addWidget(self.customApplyButton, 6, 4, 1, 1)
        self.tabWidget.addTab(self.customPackagePage, "")
        self.layoutWidget = QtGui.QWidget(self.splitter)
        self.layoutWidget.setObjectName("layoutWidget")
        self.vboxlayout3 = QtGui.QVBoxLayout(self.layoutWidget)
        self.vboxlayout3.setObjectName("vboxlayout3")
        self.label_3 = QtGui.QLabel(self.layoutWidget)
        self.label_3.setObjectName("label_3")
        self.vboxlayout3.addWidget(self.label_3)
        self.logText = QtGui.QTextEdit(self.layoutWidget)
        self.logText.setReadOnly(True)
        self.logText.setObjectName("logText")
        self.vboxlayout3.addWidget(self.logText)
        self.gridLayout_4.addWidget(self.splitter, 0, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtGui.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 703, 21))
        self.menubar.setObjectName("menubar")
        self.menuAuthentification = QtGui.QMenu(self.menubar)
        self.menuAuthentification.setObjectName("menuAuthentification")
        self.menu_File = QtGui.QMenu(self.menubar)
        self.menu_File.setObjectName("menu_File")
        self.menuHelp = QtGui.QMenu(self.menubar)
        self.menuHelp.setObjectName("menuHelp")
        MainWindow.setMenuBar(self.menubar)
        self.actionCookie_Session = QtGui.QAction(MainWindow)
        self.actionCookie_Session.setObjectName("actionCookie_Session")
        self.action_Quit = QtGui.QAction(MainWindow)
        self.action_Quit.setObjectName("action_Quit")
        self.action_About = QtGui.QAction(MainWindow)
        self.action_About.setObjectName("action_About")
        self.action_Web = QtGui.QAction(MainWindow)
        self.action_Web.setObjectName("action_Web")
        self.menuAuthentification.addAction(self.actionCookie_Session)
        self.menu_File.addAction(self.action_Quit)
        self.menuHelp.addAction(self.action_About)
        self.menuHelp.addAction(self.action_Web)
        self.menubar.addAction(self.menu_File.menuAction())
        self.menubar.addAction(self.menuAuthentification.menuAction())
        self.menubar.addAction(self.menuHelp.menuAction())

        self.retranslateUi(MainWindow)
        self.tabWidget.setCurrentIndex(0)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
        MainWindow.setTabOrder(self.tabWidget, self.radioRecommended)
        MainWindow.setTabOrder(self.radioRecommended, self.radioAll)
        MainWindow.setTabOrder(self.radioAll, self.radioUpdate)
        MainWindow.setTabOrder(self.radioUpdate, self.radioInstalled)
        MainWindow.setTabOrder(self.radioInstalled, self.packageList)
        MainWindow.setTabOrder(self.packageList, self.checkAll)
        MainWindow.setTabOrder(self.checkAll, self.ClearAll)
        MainWindow.setTabOrder(self.ClearAll, self.proceedButton)
        MainWindow.setTabOrder(self.proceedButton, self.refreshButton)
        MainWindow.setTabOrder(self.refreshButton, self.logText)
        MainWindow.setTabOrder(self.logText, self.requestEdit)
        MainWindow.setTabOrder(self.requestEdit, self.fileButton)
        MainWindow.setTabOrder(self.fileButton, self.customInstallButton)
        MainWindow.setTabOrder(self.customInstallButton, self.locationList)
        MainWindow.setTabOrder(self.locationList, self.addLocButton)
        MainWindow.setTabOrder(self.addLocButton, self.removeLocButton)
    def __init__(self, node, parent):
        """
        @param node
        @param parent
        """
        QtGui.QWidget.__init__(self, parent)
        NodeWidget.__init__(self, node)

        # -- imitate DefaultNodeWidget : refactor DefaultNodeWidget??? --
        # this is because we reuse the same code from DefaultNodeWidget
        # to build the UI.
        self.widgets = []
        self.empty = True
        # -- end of imitate DefaultNodeWidget --

        # -- own custom layout
        self.setMinimumSize(100, 20)
        # self.setSizePolicy(QtGui.QSizePolicy.Preferred,
        #                    QtGui.QSizePolicy.Preferred)
        self._mainLayout = QtGui.QVBoxLayout(self)
        self._mainLayout.setSizeConstraint(QtGui.QLayout.SetMinimumSize)
        self._mainLayout.setContentsMargins(3, 3, 3, 3)
        self._mainLayout.setSpacing(2)

        # -- the method name selection group box -- #
        self.__methodGBox = QtGui.QGroupBox("Method to wrap")
        # self.__methodGBox.setSizePolicy(QtGui.QSizePolicy.Preferred,
        #                                 QtGui.QSizePolicy.Preferred)
        self._mainLayout.addWidget(self.__methodGBox, 0, QtCore.Qt.AlignTop)

        methNameLayout = QtGui.QHBoxLayout()
        methNameLayout.setContentsMargins(3, 3, 3, 3)
        methNameLayout.setSpacing(2)

        methNameLabel = QtGui.QLabel("Method name:")
        self.__methodComboBox = QtGui.QComboBox()
        self.__lockChoice = QtGui.QPushButton()
        style = QtGui.QApplication.style()
        self.__lockChoice.setCheckable(True)
        self.__lockChoice.setIcon(
            style.standardIcon(QtGui.QStyle.SP_DialogApplyButton))
        self.__lockChoice.toggled.connect(self._methodChosen)
        methNameLayout.addWidget(methNameLabel, 0, QtCore.Qt.AlignLeft)
        methNameLayout.addWidget(self.__methodComboBox)
        methNameLayout.addWidget(self.__lockChoice, 0, QtCore.Qt.AlignLeft)

        self.__methodGBox.setLayout(methNameLayout)

        # -- The method's inputs widget --
        self.__vboxlayout = QtGui.QVBoxLayout()
        self._mainLayout.addLayout(self.__vboxlayout, 0)

        # -- map between string and combobox index --
        self.map_index = {}

        # -- initialisation --
        self.notify(node, ("input_modified", 0))
        self.__isInit = True
        toggled = bool(self.node.internal_data["methodName"]
                       and self.node.internal_data["methodSig"])
        self.__lockChoice.setChecked(toggled)
        self.__isInit = False