def setState(self, state, dev):
        self._d = dev

        # Hacky: show only one widget for an action.
        self.warning.hide()
        self.edit.hide()
        self.show()

        t = self._d.getType()

        if t == parteddata.deviceType:
            if state == createState:
                self.edit.size.setMaxValue(self._d.getLargestContinuousFreeMB())
                self.edit.setState(state)
                self.edit.show()

            elif state == deleteState:
                self.warning.setText(
                    _("You are going to delete all partitions on device '%s'")
                    %(self._d.getModel()))
                self.warning.show()

        elif t ==  parteddata.partitionType:
            if state == createState and self._d.isExtended():
                self.edit.size.setMaxValue(self._d.getFreeMB())
                self.edit.setState(state, partition=self._d)
                self.edit.show()

            elif state == deleteState:
                self.warning.setText(
                    _("You are going to delete partition '%s' on device '%s'!")
                    % (self._d.getMinor(), self._d.getDevice().getModel()))
                self.warning.show()

            elif state == editState:
                self.edit.setState(state, partition=self._d)
                self.edit.show()

            elif state == resizeState:
                fs = filesystem.get_filesystem(self._d.getFSName())
                min_size = fs.minResizeMB(self._d)
                max_size = self._d.getMB()

                self.edit.size.setMinValue(min_size)
                self.edit.size.setMaxValue(max_size)

                self.edit.setState(state, partition=self._d)
                self.edit.show()

        elif t == parteddata.freeSpaceType:
            if state == createState:
                # get free space
                self.edit.size.setMaxValue(self._d.getMB())
                self.edit.setState(state)
                self.edit.show()


        self._state = state
Exemple #2
0
    def slotItemSelected(self):
        item = self.list.currentItem()
        d = item.getData()
        t = d.getType()

        if t == parteddata.deviceType:
            if d.getFreeMB() > 0 and d.primaryAvailable():
                self.createButton.setEnabled(True)
            else:
                self.createButton.setEnabled(False)
            self.deleteButton.setEnabled(True)
            self.resizeButton.setEnabled(False)
            self.editButton.setEnabled(False)

            self.deleteButton.setText(_("Delete All Partitions"))

        elif t == parteddata.partitionType:

            # check if partition is resizeable
            fs = filesystem.get_filesystem(d.getFSName())
            resizeable = False
            if fs:
                if fs.isResizeable() and d.isFileSystemReady():
                    resizeable = True
            # if partition has a format request, don't try to resize it (#5391)
            if ctx.partrequests.searchPartAndReqType(d, request.formatRequestType):
                resizeable = False
            self.resizeButton.setEnabled(resizeable)


            if d.isExtended():
                if d.getFreeMB() > 0:
                    self.createButton.setEnabled(True)
            else:
                self.createButton.setEnabled(False)


            self.deleteButton.setEnabled(True)


            if not d.isExtended(): # don't edit extended partititons
                self.editButton.setEnabled(True)

            self.deleteButton.setText(_("Delete Selected Partition"))

        elif t == parteddata.freeSpaceType:
            if d.getDevice().primaryAvailable():
                self.createButton.setEnabled(True)
            self.deleteButton.setEnabled(False)
            self.resizeButton.setEnabled(False)
            self.editButton.setEnabled(False)
            

        self.emit(PYSIGNAL("signalSelectionChanged"), ())
    def slotItemSelected(self):
        item = self.list.currentItem()
        d = item.getData()
        t = d.getType()

        if t == parteddata.deviceType:
            self.createButton.setEnabled(True)
            self.deleteButton.setEnabled(True)
            self.resizeButton.setEnabled(False)
            self.editButton.setEnabled(False)

            self.deleteButton.setText(_("Delete All Partitions"))

        elif t == parteddata.partitionType:

            # check if partition is resizeable
            fs = filesystem.get_filesystem(d.getFSName())            
            resizeable = False
            if fs:
                if fs.isResizeable():
                    resizeable = True
            self.resizeButton.setEnabled(resizeable)

            if d.isExtended():
                if d.getFreeMB() > 0:
                    self.createButton.setEnabled(True)
            else:
                self.createButton.setEnabled(False)

            self.deleteButton.setEnabled(True)

            if not d.isExtended(): # don't edit extended partititons
                self.editButton.setEnabled(True)

            self.deleteButton.setText(_("Delete Selected Partition"))

        elif t == parteddata.freeSpaceType:
            self.createButton.setEnabled(True)
            self.deleteButton.setEnabled(False)
            self.resizeButton.setEnabled(False)
            self.editButton.setEnabled(False)
            

        self.emit(PYSIGNAL("signalSelectionChanged"), ())