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)