def __init__(self, parent, title = 'Free Space', fs_type = "free", size = 0, root = None): QWidget.__init__(self, parent) self.ui = Ui_PartitionItem() self.ui.setupUi(self) self.parent = parent self.root = root self.device = None self.setFSType(fs_type) self.setName(title) self.setSize(size) self.ui.useButton.setStyleSheet(BUTTON) self.ui.editButton.setStyleSheet(BUTTON) self.ui.deleteButton.setStyleSheet(BUTTON) # Shame on me. self.ui.deleteButton.clicked.connect(lambda: self.emit(SIGNAL("deleteButtonClicked"), True)) self.ui.editButton.clicked.connect(lambda: self.emit(SIGNAL("editButtonClicked"), True)) self.connect(self, SIGNAL("deleteButtonClicked"), self.root.deleteDevice) self.connect(self, SIGNAL("editButtonClicked"), self.root.editDevice) QTimer.singleShot(0, self.leaveEvent)
class Partition(QWidget, Ui_PartitionItem): def __init__(self, parent, title = 'Free Space', fs_type = "free", size = 0, root = None): QWidget.__init__(self, parent) self.ui = Ui_PartitionItem() self.ui.setupUi(self) self.parent = parent self.root = root self.device = None self.setFSType(fs_type) self.setName(title) self.setSize(size) self.ui.useButton.setStyleSheet(BUTTON) self.ui.editButton.setStyleSheet(BUTTON) self.ui.deleteButton.setStyleSheet(BUTTON) # Shame on me. self.ui.deleteButton.clicked.connect(lambda: self.emit(SIGNAL("deleteButtonClicked"), True)) self.ui.editButton.clicked.connect(lambda: self.emit(SIGNAL("editButtonClicked"), True)) self.connect(self, SIGNAL("deleteButtonClicked"), self.root.deleteDevice) self.connect(self, SIGNAL("editButtonClicked"), self.root.editDevice) QTimer.singleShot(0, self.leaveEvent) def setDevice(self, device): self.device = device def setName(self, text): self.ui.title.setText(text) def setDetails(self, details): self.ui.comment.setText(details) def name(self): return self.ui.title.text() def setFSType(self, fs_type): self._fs_type = fs_type self.ui.Partition.setStyleSheet(STYLES.get(fs_type, UNKNOWN_STYLE)) def setSize(self, size): self._size = size self.setToolTip('Size: %s MB' % size) self.parent._updateSize() def enterEvent(self, event): if not self._fs_type == 'free': self.ui.editButton.show() self.ui.deleteButton.show() self.setMinimumWidth(200) elif self._fs_type == 'free': self.ui.useButton.show() self.ui.useButton.setMenu(self.root.menu) self.root._active_device = self.device def leaveEvent(self, event=None): if self._fs_type == 'free': self.ui.useButton.setMenu(QMenu()) self.ui.useButton.hide() self.ui.editButton.hide() self.ui.deleteButton.hide() self.setMinimumWidth(60)