コード例 #1
0
	def __init__(self, session, args = 0):
		self.session = session
		
		Screen.__init__(self, session)
		self.disks = list ()
		
		self.mdisks = Disks()
		for disk in self.mdisks.disks:
			print ("disk:", disk)
			capacity = "%d MB" % (disk[1] / (1024 * 1024))
			self.disks.append(DiskEntry(disk[3], capacity, disk[2]))
		
		self["menu"] = List(self.disks)
		self["key_red"] = Button(_("Mounts"))
		self["key_green"] = Button(_("Info"))
		#self["key_yellow"] = Button(_("Initialize"))
		self["key_blue"] = Button(_("Exit"))
		self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
		{
			"blue": self.quit,
			#"yellow": self.yellow,
			"green": self.green,
			"red": self.red,
			"cancel": self.quit,
		}, -2)
コード例 #2
0
ファイル: HddPartitions.py プロジェクト: BarviX6/openNFR-gui2
	def chkfs(self):
		disks = Disks()
		ret = disks.chkfs(self.disk[5][self.index][0][:3], self.index+1, self.fstype)
		if ret == 0:
			self.session.open(MessageBox, _("Check disk terminated with success"), MessageBox.TYPE_INFO)
		elif ret == -1:
			self.session.open(MessageBox, _("Cannot umount current drive.\nA record in progress, timeshit or some external tools (like samba and nfsd) may cause this problem.\nPlease stop this actions/applications and try again"), MessageBox.TYPE_ERROR)
		else:
			self.session.open(MessageBox, _("Error checking disk. The disk may be damaged"), MessageBox.TYPE_ERROR)
コード例 #3
0
    def refresh(self):
        self.disks = list()

        self.mdisks = Disks()
        for disk in self.mdisks.disks:
            capacity = "%d MB" % (disk[1] / (1024 * 1024))
            self.disks.append(DiskEntry(disk[3], capacity, disk[2]))

        self["menu"].setList(self.disks)
コード例 #4
0
	def mkfs(self):
		disks = Disks()
		ret = disks.mkfs(self.disk[5][self.index][0][:3], self.index+1, self.fstype)
		if ret == 0:
			self.session.open(MessageBox, _("Format terminated with success"), MessageBox.TYPE_INFO)
		elif ret == -2:
			self.session.open(MessageBox, _("Cannot format current drive.\nA record in progress, timeshit or some external tools (like samba and nfsd) may cause this problem.\nPlease stop this actions/applications and try again"), MessageBox.TYPE_ERROR)
		else:
			self.session.open(MessageBox, _("Error formatting disk. The disk may be damaged"), MessageBox.TYPE_ERROR)
コード例 #5
0
ファイル: HddPartitions.py プロジェクト: BarviX6/openNFR-gui2
	def mkfs(self):
		disks = Disks()
	        if "mmcblk1" in (self.disk[0]):
	        	ret = disks.mkfs(self.disk[5][self.index][0][:7], self.index+1, self.fstype)
	        	print "ret1", ret
	        else:
			ret = disks.mkfs(self.disk[5][self.index][0][:3], self.index+1, self.fstype)
			print "ret2", ret
                if ret == 0:
			self.session.open(MessageBox, _("Format terminated with success"), MessageBox.TYPE_INFO)
		elif ret == -2:
			self.session.open(MessageBox, _("Cannot format current drive.\nA record in progress, timeshit or some external tools (like samba and nfsd) may cause this problem.\nPlease stop this actions/applications and try again"), MessageBox.TYPE_ERROR)
		else:
			self.session.open(MessageBox, _("Error formatting disk. The disk may be damaged"), MessageBox.TYPE_ERROR)
コード例 #6
0
 def __init__(self, session):
     Screen.__init__(self, session)
     self.mdisks = Disks()
     self.mountpoints = MountPoints()
     self.mountpoints.read()
     self.disks = list()
     self.mounts = list()
     for disk in self.mdisks.disks:
         if disk[2] == True:
             diskname = disk[3]
             for partition in disk[5]:
                 mp = ""
                 rmp = ""
                 try:
                     mp = self.mountpoints.get(partition[0][:3],
                                               int(partition[0][3:]))
                     rmp = self.mountpoints.getRealMount(
                         partition[0][:3], int(partition[0][3:]))
                 except Exception, e:
                     pass
                 if len(mp) > 0:
                     self.disks.append(
                         MountEntry(
                             disk[3],
                             "P.%s (Fixed: %s)" % (partition[0][3:], mp)))
                     self.mounts.append(mp)
                 elif len(rmp) > 0:
                     self.disks.append(
                         MountEntry(
                             disk[3],
                             "P.%s (Fast: %s)" % (partition[0][3:], rmp)))
                     self.mounts.append(rmp)
コード例 #7
0
	def refresh(self):
		self.disks = list ()
		
		self.mdisks = Disks()
		for disk in self.mdisks.disks:
			capacity = "%d MB" % (disk[1] / (1024 * 1024))
			self.disks.append(DiskEntry(disk[3], capacity, disk[2]))
			
		self["menu"].setList(self.disks)
コード例 #8
0
	def __init__(self, session, args = 0):
		self.session = session
		
		Screen.__init__(self, session)
		self.disks = list ()
		
		self.mdisks = Disks()
		for disk in self.mdisks.disks:
			capacity = "%d MB" % (disk[1] / (1024 * 1024))
			self.disks.append(DiskEntry(disk[3], capacity, disk[2]))
		
		self["menu"] = List(self.disks)
		self["key_red"] = Button(_("Mounts"))
		self["key_green"] = Button(_("Info"))
		#self["key_yellow"] = Button(_("Initialize"))
		self["key_blue"] = Button(_("Exit"))
		self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
		{
			"blue": self.quit,
		#	"yellow": self.yellow,
			"green": self.green,
			"red": self.red,
			"cancel": self.quit,
		}, -2)
コード例 #9
0
class HddSetup(Screen):

    skin = """
                   <screen name="HddSetup" position="center,115" size="900,530" title="HddSetup" flags="wfBorder">
                      <widget source="menu" render="Listbox" position="10,10" size="880,450" scrollbarMode="showOnDemand" transparent="1">
                         <convert type="TemplatedMultiContent">
				{"template": [
					MultiContentEntryPixmapAlphaTest(pos = (5, 0), size = (48, 48), png = 0),
					MultiContentEntryText(pos = (70, 3), size = (430, 38), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 1),
					MultiContentEntryText(pos = (515, 3), size = (135, 38), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 2),
					],
					"fonts": [gFont("Regular", 22)],
					"itemHeight": 50
				}
                        </convert>
                    </widget>
                   <ePixmap position="10,497" size="35,27" pixmap="skin_default/buttons/red.png" alphatest="blend" />
                   <ePixmap position="230,497" size="35,27" pixmap="skin_default/buttons/green.png" alphatest="blend" />
                   <ePixmap position="464,497" size="35,27" pixmap="skin_default/buttons/yellow.png" alphatest="blend" />
                   <ePixmap position="695,497" size="35,27" pixmap="skin_default/buttons/blue.png" alphatest="blend" />
                   <widget name="key_red" position="48,498" zPosition="2" size="150,22" valign="center" halign="center" font="Regular; 20" transparent="1" shadowColor="black" shadowOffset="-1,-1" />
                   <widget name="key_green" position="273,499" zPosition="2" size="150,22" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" backgroundColor="foreground" />
                    <widget name="key_yellow" position="508,499" zPosition="3" size="150,22" valign="center" halign="center" font="Regular; 21" transparent="1" backgroundColor="foreground" />
                   <widget name="key_blue" position="736,499" zPosition="3" size="150,22" valign="center" halign="center" font="Regular; 21" transparent="1" backgroundColor="foreground" />
                   </screen>"""

    def __init__(self, session, args=0):
        self.session = session

        Screen.__init__(self, session)
        self.disks = list()

        self.mdisks = Disks()
        for disk in self.mdisks.disks:
            capacity = "%d MB" % (disk[1] / (1024 * 1024))
            self.disks.append(DiskEntry(disk[3], capacity, disk[2]))

        self["menu"] = List(self.disks)
        self["key_red"] = Button(_("Mounts"))
        self["key_green"] = Button(_("Info"))
        self["key_yellow"] = Button(_("Initialize"))
        self["key_blue"] = Button(_("Exit"))
        self["actions"] = ActionMap(
            ["OkCancelActions", "ColorActions"], {
                "blue": self.quit,
                "yellow": self.yellow,
                "green": self.green,
                "red": self.red,
                "cancel": self.quit,
            }, -2)

    def isExt4Supported(self):
        return "ext4" in open("/proc/filesystems").read()

    def mkfs(self):
        self.formatted += 1
        return self.mdisks.mkfs(self.mdisks.disks[self.sindex][0],
                                self.formatted, self.fsresult)

    def refresh(self):
        self.disks = list()

        self.mdisks = Disks()
        for disk in self.mdisks.disks:
            capacity = "%d MB" % (disk[1] / (1024 * 1024))
            self.disks.append(DiskEntry(disk[3], capacity, disk[2]))

        self["menu"].setList(self.disks)

    def checkDefault(self):
        mp = MountPoints()
        mp.read()
        if not mp.exist("/hdd"):
            mp.add(self.mdisks.disks[self.sindex][0], 1, "/hdd")
            mp.write()
            mp.mount(self.mdisks.disks[self.sindex][0], 1, "/hdd")
            os.system("/bin/mkdir /hdd/movie")
            os.system("/bin/mkdir /hdd/music")
            os.system("/bin/mkdir /hdd/picture")

    def format(self, result):
        if result != 0:
            self.session.open(MessageBox,
                              _("Cannot format partition %d" % self.formatted),
                              MessageBox.TYPE_ERROR)
        if self.result == 0:
            if self.formatted > 0:
                self.checkDefault()
                self.refresh()
                return
        elif self.result > 0 and self.result < 3:
            if self.formatted > 1:
                self.checkDefault()
                self.refresh()
                return
        elif self.result == 3:
            if self.formatted > 2:
                self.checkDefault()
                self.refresh()
                return
        elif self.result == 4:
            if self.formatted > 3:
                self.checkDefault()
                self.refresh()
                return

        self.session.openWithCallback(
            self.format, ExtraActionBox,
            "Formatting partition %d" % (self.formatted + 1),
            "Initialize disk", self.mkfs)

    def fdiskEnded(self, result):
        if result == 0:
            self.format(0)
        elif result == -1:
            self.session.open(
                MessageBox,
                _("Cannot umount device.\nA record in progress, timeshit or some external tools (like samba and nfsd) may cause this problem.\nPlease stop this actions/applications and try again"
                  ), MessageBox.TYPE_ERROR)
        else:
            self.session.open(MessageBox, _("Partitioning failed!"),
                              MessageBox.TYPE_ERROR)

    def fdisk(self):
        return self.mdisks.fdisk(self.mdisks.disks[self.sindex][0],
                                 self.mdisks.disks[self.sindex][1],
                                 self.result, self.fsresult)

    def initialaze(self, result):
        if not self.isExt4Supported():
            result += 1

        if result != 4:
            self.fsresult = result
            self.formatted = 0
            mp = MountPoints()
            mp.read()
            mp.deleteDisk(self.mdisks.disks[self.sindex][0])
            mp.write()
            self.session.openWithCallback(self.fdiskEnded, ExtraActionBox,
                                          "Partitioning...", "Initialize disk",
                                          self.fdisk)

    def chooseFSType(self, result):
        if result != 5:
            self.result = result
            if self.isExt4Supported():
                self.session.openWithCallback(
                    self.initialaze, ExtraMessageBox, "Format as",
                    "HDD Partitioner", [
                        ["Ext4", "partitionmanager.png"],
                        ["Ext3", "partitionmanager.png"],
                        ["NTFS", "partitionmanager.png"],
                        ["Fat32", "partitionmanager.png"],
                        ["Cancel", "cancel.png"],
                    ], 1, 4)
            else:
                self.session.openWithCallback(
                    self.initialaze, ExtraMessageBox, "Format as",
                    "HDD Partitioner", [
                        ["Ext3", "partitionmanager.png"],
                        ["NTFS", "partitionmanager.png"],
                        ["Fat32", "partitionmanager.png"],
                        ["Cancel", "cancel.png"],
                    ], 1, 3)

    def yellow(self):
        if len(self.mdisks.disks) > 0:
            self.sindex = self['menu'].getIndex()
            self.session.openWithCallback(
                self.chooseFSType, ExtraMessageBox,
                "Please select your preferred configuration.",
                "HDD Partitioner", [
                    ["One partition", "partitionmanager.png"],
                    ["Two partitions (50% - 50%)", "partitionmanager.png"],
                    ["Two partitions (75% - 25%)", "partitionmanager.png"],
                    [
                        "Three partitions (33% - 33% - 33%)",
                        "partitionmanager.png"
                    ],
                    [
                        "Four partitions (25% - 25% - 25% - 25%)",
                        "partitionmanager.png"
                    ],
                    ["Cancel", "cancel.png"],
                ], 1, 5)

    def green(self):
        if len(self.mdisks.disks) > 0:
            self.sindex = self['menu'].getIndex()
            self.session.open(HddInfo, self.mdisks.disks[self.sindex][0])

    def red(self):
        if len(self.mdisks.disks) > 0:
            self.sindex = self['menu'].getIndex()
            if len(self.mdisks.disks[self.sindex][5]) == 0:
                self.session.open(
                    MessageBox,
                    _("You need to initialize your storage device first"),
                    MessageBox.TYPE_ERROR)
            else:
                self.session.open(HddPartitions,
                                  self.mdisks.disks[self.sindex])

    def quit(self):
        self.close()
コード例 #10
0
ファイル: HddMount.py プロジェクト: n3wb13/openNFR-gui2
    def __init__(self, session):
        Screen.__init__(self, session)
        self.mdisks = Disks()
        self.mountpoints = MountPoints()
        self.mountpoints.read()
        self.disks = list()
        self.mounts = list()
        for disk in self.mdisks.disks:
            if disk[2] == True:
                diskname = disk[3]
                for partition in disk[5]:
                    mp = ""
                    rmp = ""
                    try:
                        if "mmcblk1" in partition[0][:7]:
                            mp = self.mountpoints.get(partition[0][:7],
                                                      int(partition[0][8:]))
                            rmp = self.mountpoints.getRealMount(
                                partition[0][:7], int(partition[0][8:]))
                        else:
                            mp = self.mountpoints.get(partition[0][:3],
                                                      int(partition[0][3:]))
                            rmp = self.mountpoints.getRealMount(
                                partition[0][:3], int(partition[0][3:]))
                    except Exception as e:
                        pass
                    if len(mp) > 0:
                        if "mmcblk1" in partition[0][:7]:
                            self.disks.append(
                                MountEntry(
                                    disk[3], "P.%s (Fixed: %s)" %
                                    (partition[0][7:], mp)))
                            self.mounts.append(mp)
                        else:
                            self.disks.append(
                                MountEntry(
                                    disk[3], "P.%s (Fixed: %s)" %
                                    (partition[0][3:], mp)))
                            self.mounts.append(mp)
                    elif len(rmp) > 0:
                        if "mmcblk1" in partition[0][:7]:
                            self.disks.append(
                                MountEntry(
                                    disk[3], "P.%s (Fast: %s)" %
                                    (partition[0][7:], rmp)))
                            self.mounts.append(rmp)
                        else:
                            self.disks.append(
                                MountEntry(
                                    disk[3], "P.%s (Fast: %s)" %
                                    (partition[0][3:], rmp)))
                            self.mounts.append(rmp)

        self["menu"] = List(self.disks)
        self["key_red"] = Button(_("Umount"))
        self["key_blue"] = Button(_("Exit"))
        self["actions"] = ActionMap(["OkCancelActions", "ColorActions"], {
            "blue": self.quit,
            "red": self.red,
            "cancel": self.quit,
        }, -2)
コード例 #11
0
class HddSetup(Screen):

	skin = """
                   <screen name="HddSetup" position="center,115" size="900,530" title="HddSetup" flags="wfBorder">
                      <widget source="menu" render="Listbox" position="10,10" size="880,450" scrollbarMode="showOnDemand" transparent="1">
                         <convert type="TemplatedMultiContent">
				{"template": [
					MultiContentEntryPixmapAlphaTest(pos = (5, 0), size = (48, 48), png = 0),
					MultiContentEntryText(pos = (70, 3), size = (430, 38), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 1),
					MultiContentEntryText(pos = (515, 3), size = (135, 38), font=0, flags = RT_HALIGN_LEFT|RT_VALIGN_TOP, text = 2),
					],
					"fonts": [gFont("Regular", 22)],
					"itemHeight": 50
				}
                        </convert>
                    </widget>
                   <ePixmap position="10,497" size="35,27" pixmap="skin_default/buttons/red.png" alphatest="blend" />
                   <ePixmap position="230,497" size="35,27" pixmap="skin_default/buttons/green.png" alphatest="blend" />
                   <ePixmap position="695,497" size="35,27" pixmap="skin_default/buttons/blue.png" alphatest="blend" />
                   <widget name="key_red" position="48,498" zPosition="2" size="150,22" valign="center" halign="center" font="Regular; 20" transparent="1" shadowColor="black" shadowOffset="-1,-1" />
                   <widget name="key_green" position="273,499" zPosition="2" size="150,22" valign="center" halign="center" font="Regular;21" transparent="1" shadowColor="black" shadowOffset="-1,-1" backgroundColor="foreground" />
                   <widget name="key_blue" position="736,499" zPosition="3" size="150,22" valign="center" halign="center" font="Regular; 21" transparent="1" backgroundColor="foreground" />
                   </screen>"""

	def __init__(self, session, args = 0):
		self.session = session
		
		Screen.__init__(self, session)
		self.disks = list ()
		
		self.mdisks = Disks()
		for disk in self.mdisks.disks:
			capacity = "%d MB" % (disk[1] / (1024 * 1024))
			self.disks.append(DiskEntry(disk[3], capacity, disk[2]))
		
		self["menu"] = List(self.disks)
		self["key_red"] = Button(_("Mounts"))
		self["key_green"] = Button(_("Info"))
		#self["key_yellow"] = Button(_("Initialize"))
		self["key_blue"] = Button(_("Exit"))
		self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
		{
			"blue": self.quit,
		#	"yellow": self.yellow,
			"green": self.green,
			"red": self.red,
			"cancel": self.quit,
		}, -2)
	
	def isExt4Supported(self):
		return "ext4" in open("/proc/filesystems").read()
		
	def mkfs(self):
		self.formatted += 1
		return self.mdisks.mkfs(self.mdisks.disks[self.sindex][0], self.formatted, self.fsresult)
		
	def refresh(self):
		self.disks = list ()
		
		self.mdisks = Disks()
		for disk in self.mdisks.disks:
			capacity = "%d MB" % (disk[1] / (1024 * 1024))
			self.disks.append(DiskEntry(disk[3], capacity, disk[2]))
			
		self["menu"].setList(self.disks)
		
	def checkDefault(self):
		mp = MountPoints()
		mp.read()
		if not mp.exist("/hdd"):
			mp.add(self.mdisks.disks[self.sindex][0], 1, "/media/hdd")
			mp.write()
			mp.mount(self.mdisks.disks[self.sindex][0], 1, "/media/hdd")
			os.system("/bin/mkdir /media/hdd/movie")
			os.system("/bin/mkdir /media/hdd/music")
			os.system("/bin/mkdir /media/hdd/picture")
		
	def green(self):
		if len(self.mdisks.disks) > 0:
			self.sindex = self['menu'].getIndex()
			self.session.open(HddInfo, self.mdisks.disks[self.sindex][0])
		
	def red(self):
		if len(self.mdisks.disks) > 0:
			self.sindex = self['menu'].getIndex()
			if len(self.mdisks.disks[self.sindex][5]) == 0:
				self.session.open(MessageBox, _("You need to initialize your storage device first"), MessageBox.TYPE_ERROR)
			else:
				self.session.open(HddPartitions, self.mdisks.disks[self.sindex])
		
	def quit(self):
		self.close()