예제 #1
0
파일: main.py 프로젝트: suvari/project
    def __init__(self, parent, embed=False):
        QtWidgets.QWidget.__init__(self, parent)

        if embed:
            self.setupUi(parent)
        else:
            self.setupUi(self)

        self._in_progress = False

        # Animation
        self.animator = QtCore.QTimeLine(ANIM_TIME, self)

        # Initialize heights of animated widgets
        self.hideEditBox()

        # Backend
        self.iface = Interface()

        # Fail if no packages provide backend
        self.checkBackend()

        # Build "Add New" menu
        self.buildMenu()

        # Build filter
        self.buildFilter()

        # Build item list
        self.buildItemList()

        # User/group edit widgets
        layout = QtWidgets.QVBoxLayout(self.frameWidget)
        self.widgetUserEdit = EditUserWidget(self.frameWidget)
        layout.addWidget(self.widgetUserEdit)
        self.widgetGroupEdit = EditGroupWidget(self.frameWidget)
        layout.addWidget(self.widgetGroupEdit)

        # List user shells
        self.widgetUserEdit.listShells()

        # Signals
        self.comboFilter.currentIndexChanged[int].connect(self.slotFilterChanged)
        self.pushNew.triggered[QAction].connect(self.slotOpenEdit)
        self.buttonBox.accepted.connect(self.slotSaveEdit)
        self.buttonBox.accepted.connect(self.widgetUserEdit.checkFields)
        self.buttonBox.rejected.connect(self.slotCancelEdit)
        self.animator.frameChanged[int].connect(self.slotAnimate)
        self.animator.finished.connect(self.slotAnimationFinished)
        self.widgetUserEdit.buttonStatusChanged[int].connect(self.slotButtonStatusChanged)
        self.widgetGroupEdit.buttonStatusChanged[int].connect(self.slotButtonStatusChanged)