Esempio n. 1
0
    def mouseMoveEvent(self, event):
        """ mouseMoveEvent """

        #rectangular selection
        if self.selectionRect:
            self.__rectangle = QtCore.QRect(self.__rectangleInit,
                                            event.pos()).normalized()
            self.updateGL()

        # by default camera or manipulated frame is manipulated
        QGLViewer.mouseMoveEvent(self, event)
Esempio n. 2
0
    def paintEvent(self, event):
        painter = QtGui.QStylePainter(self)

        # ticks
        opt = QtGui.QStyleOptionSlider()
        self.initStyleOption(opt)
        # opt.subControls = QtGui.QStyle.SC_SliderTickmarks
        painter.drawComplexControl(QtGui.QStyle.CC_Slider, opt)

        # groove
        opt.sliderPosition = 20
        opt.sliderValue = 0
        opt.subControls = QtGui.QStyle.SC_SliderGroove
        painter.drawComplexControl(QtGui.QStyle.CC_Slider, opt)

        # handle rects
        opt.sliderPosition = self.lowerPos
        lr = self.style().subControlRect(QtGui.QStyle.CC_Slider, opt, QtGui.QStyle.SC_SliderHandle, self)
        lrv = self.pick(lr.center())
        opt.sliderPosition = self.upperPos
        ur = self.style().subControlRect(QtGui.QStyle.CC_Slider, opt, QtGui.QStyle.SC_SliderHandle, self)
        urv = self.pick(ur.center())

        # span
        minv = min(lrv, urv)
        maxv = max(lrv, urv)
        c = self.style().subControlRect(QtGui.QStyle.CC_Slider, opt, QtGui.QStyle.SC_SliderGroove, self).center()
        spanRect = QtCore.QRect(QtCore.QPoint(c.x() - 2, minv), QtCore.QPoint(c.x() + 1, maxv))
        if self.orientation() == QtCore.Qt.Horizontal:
            spanRect = QtCore.QRect(QtCore.QPoint(minv, c.y() - 2), QtCore.QPoint(maxv, c.y() + 1))
        self.drawSpan(painter, spanRect)

        # handles
        if self.lastPressed == QSpanSlider.LowerHandle:
            self.drawHandle(painter, QSpanSlider.UpperHandle)
            self.drawHandle(painter, QSpanSlider.LowerHandle)
        else:
            self.drawHandle(painter, QSpanSlider.LowerHandle)
            self.drawHandle(painter, QSpanSlider.UpperHandle)
Esempio n. 3
0
    def mouseReleaseEvent(self, event):
        """On mouse release, we release every grabbed objects"""
        QGLViewer.mouseReleaseEvent(self, event)
        # clear manipulated object
        self.setManipulatedFrame(None)
        self.setFocus(None)
        if self.selectionManipulator:
            self.selectionManipulator.clearFocus()

        # end of rectangular selection :
        if self.selectionRect:
            self.selectionRect = False
            # Possibly swap left/right and top/bottom to make rectangle_ valid.
            self.__rectangle = QtCore.QRect(self.__rectangleInit,
                                            event.pos()).normalized()
            # make rectangle with a minimal size
            if self.__rectangle.width() < 10 or self.__rectangle.height() < 10:
                self.__rectangle = QtCore.QRect(event.pos().x() - 5,
                                                event.pos().y() - 5, 10, 10)
            self.selectionFromRect(self.__rectangle)
        self.setInteractionMode(False)
        self.updateGL()
    def refresh_layout(self):
        ''' refresh the layout (without these three lines, the widget won't shrink!)
        This method is a hack to refresh the size of the widget by refreshing the parent widget own by VisuAlea.:w

        '''
        self.__methodGBox.layout().activate()
        self._mainLayout.activate()
        parent = self.parentWidget()
        if parent is not None:
            pos = parent.geometry().topLeft()
            rect = QtCore.QRect()
            rect.moveTo(pos)
            parent.layout().activate()
            parent.setGeometry(rect)
Esempio n. 5
0
 def move(self, pos):
     rect = QtCore.QRect(pos, self.sizeHint())
     #fix the position of the menu if it tries to popup too close to the lower & right edges.
     #bad fixing strategy probably: what if we were create arabian menus?
     #We should maybe sublcass QMenu to handle screen real estate and reuse it.
     desktopGeom = QtGui.QApplication.desktop().availableGeometry(
         self.parent())
     contained, edges = qrect_contains(desktopGeom, rect, True)
     if not contained and edges.count(0) > 0:
         dx = edges[0] if edges[0] else edges[1]
         dy = edges[2] if edges[2] else edges[3]
         rect.translate(dx, dy)
         QtGui.QMenu.move(self, rect.topLeft())
         return
     else:
         QtGui.QMenu.move(self, pos)
Esempio n. 6
0
    def __init__(self, parent):
        """ Constructor 
            :param parent: the parent widget
        """
        QGLViewer.__init__(self, parent)
        self.setStateFileName('.nurbspatcheditor.xml')

        self.mode = NurbsPatchEditor.Edit

        # the nurbs patch
        self.nurbsPatch = None

        # matrix of ctrl point manipulator
        self.ctrlPointMatrix = []

        # shape and material to display the patch
        self.nurbsShape = Shape()
        self.defaultMaterial = Material((30, 200, 30), 1, transparency=0.5)
        self.nurbsShape.appearance = self.defaultMaterial

        # plantgl basic object to display nurbs
        self.discretizer = Discretizer()
        self.glrenderer = GLRenderer(self.discretizer)
        self.glrenderer.renderingMode = GLRenderer.Dynamic
        self.ctrlrenderer = GLCtrlPointRenderer(self.discretizer)
        self.bboxcomputer = BBoxComputer(self.discretizer)

        #   Current selection
        self.selectionManipulator = None
        self.focus = None

        # rectangular selection
        self.selectionRect = False  # for rectangular selection (with control)
        self.__rectangle = QtCore.QRect()
        self.__rectangleInit = None

        #creation of a default NurbsPatch
        if len(self.ctrlPointMatrix) == 0:
            self.setNurbsPatch(self.newDefaultNurbsPatch())
Esempio n. 7
0
    def mousePressEvent(self, event):
        """ Check for eventual operations the user asks: 
            shift start rectangular selection
            else check for which point is selected
        """
        #Rectangular selection
        if event.modifiers() == QtCore.Qt.ShiftModifier:
            if event.button() == QtCore.Qt.LeftButton:
                self.__rectangle = QtCore.QRect(event.pos(), event.pos())
                self.__rectangleInit = event.pos()
                self.selectionRect = True
            elif event.button() == QtCore.Qt.RightButton:
                self.clearSelectionManipulator()
            self.updateGL()
        else:
            pointSelection = False
            if self.selectionManipulator:
                pointSelection = self.selectionManipulator.checkIfAxisGrabsMouse(
                    event, self)
            if not pointSelection:
                for ctrlPointRow in self.ctrlPointMatrix:
                    for cCtrlPoint in ctrlPointRow:
                        cCtrlPoint.checkIfGrabsMouse(event.x(), event.y(),
                                                     self.camera())
                        if cCtrlPoint.grabsMouse():
                            pointSelection = True
                            self.setFocus(cCtrlPoint)
                            if self.selectionManipulator and cCtrlPoint.selected:
                                self.setManipulatedFrame(
                                    self.selectionManipulator)
                            else:
                                self.setManipulatedFrame(cCtrlPoint)
                            break
            self.setInteractionMode(pointSelection)
            self.updateGL()

        QGLViewer.mousePressEvent(self, event)
Esempio n. 8
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)
Esempio n. 9
0
        def visit(self, vid):
            """
            Lays out all the widgets concerning vid.

            At vid we check if it is a terminal node. In that case the vid
            has a content widget (non terminal nodes have no content widget).
            Vid's geometry has already been computed by parent so we set the
            widget's geometry to vid's geometry.
            If it's not a terminal node, then it still has a geometry but not
            content widget. However it does contain a splitter handle that must
            be positionned, and we must compute the sizes of its chlidren.

            Called by the binary tree structure. The order is dependent
            on the tree traversal method used."""

            if not self.g.has_children(vid):
                # ok, no child, so we probably have a widget and our geometry
                # has already been computed by parent
                geom = self.geomCache[vid]
                return self.layout_pane(geom, vid)

            fid, sid = self.g.children(vid)

            sp = SplittableUI.__spacing__
            containerGeom = self.geomCache[vid]

            direction = self.g.get_property(vid, "splitDirection")
            amount = self.g.get_property(vid, "amount")
            sticky = self.g.get_property(vid, "sticky")

            # -- The node has children : it doesn't have a widget
            # but it does have a handle that separates the child widgets
            # we must place it accordingly
            handle = self.g.get_property(vid, "handleWidget")
            hgeom = QtCore.QRect()  # handle.geometry()

            containerWidth = (
                containerGeom.width() - sp) if direction == QtCore.Qt.Horizontal else containerGeom.width()
            containerHeight = (
                containerGeom.height() - sp) if direction == QtCore.Qt.Vertical else containerGeom.height()

            if direction == QtCore.Qt.Horizontal:
                firstHeight = secondHeight = containerHeight
                firstWidth = (containerWidth * amount) if sticky != -1 else 0
                secondWidth = (containerWidth - firstWidth) if sticky != 1 else 0
                firstX, firstY = containerGeom.x(), containerGeom.y()
                secondX, secondY = firstX + firstWidth + sp, firstY
                hgeom.moveLeft(firstX + +firstWidth)
                hgeom.moveTop(firstY)
                hgeom.setHeight(containerHeight)
                hgeom.setWidth(sp)
            else:
                firstWidth = secondWidth = containerWidth
                firstHeight = (containerHeight * amount) if sticky != -1 else 0
                secondHeight = (containerHeight - firstHeight) if sticky != 1 else 0
                firstX, firstY = containerGeom.x(), containerGeom.y()
                secondX, secondY = firstX, firstY + firstHeight + sp
                hgeom.moveTop(firstY + firstHeight)
                hgeom.moveLeft(firstX)
                hgeom.setWidth(containerWidth)
                hgeom.setHeight(sp)
            firstGeom = QtCore.QRect(firstX, firstY, firstWidth, firstHeight)
            secondGeom = QtCore.QRect(secondX, secondY, secondWidth, secondHeight)

            self.geomCache[fid] = firstGeom
            self.geomCache[sid] = secondGeom
            handle.setGeometry(hgeom)
            return False, False  # don't ignore first or second child