示例#1
0
    def __init__(self, parent, embed=False):
        QtGui.QWidget.__init__(self, parent)

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

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

        # Initialize heights of animated widgets
        self.slotAnimationFinished()

        # Backend
        self.iface = Interface()
        self.iface.listenFirewallSignals(self.firewallSignalHandler)
        self.iface.listenServiceSignals(self.serviceSignalHandler)

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

        # We don't need a "new" button
        self.hideNew()

        # We don't need a filter
        self.hideFilter()

        # Build item list
        self.buildItemList()

        # Set service widget
        self.widgetService = ServiceWidget(self)
        self.widgetService.setState(self.iface.getState())
        self.verticalLayout.insertWidget(0, self.widgetService)

        # Rule edit widget
        # TBD

        # Signals
        self.connect(self.comboFilter,
                     QtCore.SIGNAL("currentIndexChanged(int)"),
                     self.slotFilterChanged)
        self.connect(self.pushNew, QtCore.SIGNAL("triggered(QAction*)"),
                     self.slotOpenEdit)
        self.connect(self.buttonBox, QtCore.SIGNAL("accepted()"),
                     self.slotSaveEdit)
        self.connect(self.buttonBox, QtCore.SIGNAL("rejected()"),
                     self.slotCancelEdit)
        self.connect(self.animator, QtCore.SIGNAL("frameChanged(int)"),
                     self.slotAnimate)
        self.connect(self.animator, QtCore.SIGNAL("finished()"),
                     self.slotAnimationFinished)
        self.connect(self.widgetService, QtCore.SIGNAL("stateChanged(int)"),
                     self.slotServiceChanged)