def createTree(self, nbTracks): """ Create a temporary explorer tree without disc information """ name = '%s <span size="smaller" foreground="#909090">%s</span>' % (MOD_L10N, _("downloading data...")) self.tree.replaceContent(((icons.cdromMenuIcon(), None, name, None),)) # Append a child for each track self.tree.appendRows( [(icons.mediaFileMenuIcon(), None, _("Track %02u") % (i + 1), None) for i in xrange(nbTracks)], (0,) ) self.tree.expand_all()
def onModLoaded(self): """ The module has been loaded """ txtRdrLen = gtk.CellRendererText() columns = ( ( "", [ (gtk.CellRendererPixbuf(), gtk.gdk.Pixbuf), (txtRdrLen, gobject.TYPE_STRING), (gtk.CellRendererText(), gobject.TYPE_STRING), ], True, ), (None, [(None, gobject.TYPE_PYOBJECT)], False), ) self.tree = extTreeview.ExtTreeView(columns, True) self.popup = None self.cfgWin = None self.expName = MOD_L10N self.scrolled = gtk.ScrolledWindow() self.cacheDir = os.path.join(consts.dirCfg, MOD_INFO[modules.MODINFO_NAME]) # The album length is written in a smaller font, with a lighter color txtRdrLen.set_property("scale", 0.85) txtRdrLen.set_property("foreground-gdk", self.tree.get_style().text[gtk.STATE_INSENSITIVE]) # Explorer self.tree.setDNDSources([consts.DND_TARGETS[consts.DND_DAP_TRACKS]]) self.scrolled.add(self.tree) self.scrolled.set_shadow_type(gtk.SHADOW_IN) self.scrolled.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.scrolled.show() # GTK handlers self.tree.connect("drag-data-get", self.onDragDataGet) self.tree.connect("key-press-event", self.onKeyPressed) self.tree.connect("exttreeview-button-pressed", self.onButtonPressed) modules.postMsg( consts.MSG_CMD_EXPLORER_ADD, {"modName": MOD_L10N, "expName": self.expName, "icon": icons.cdromMenuIcon(), "widget": self.scrolled}, ) # Hide the album length when not drawing the root node self.tree.get_column(0).set_cell_data_func(txtRdrLen, self.__drawAlbumLenCell) # CD-ROM drive read speed modules.postMsg(consts.MSG_CMD_SET_CD_SPEED, {"speed": prefs.get(__name__, "read-speed", PREFS_DFT_READ_SPEED)})
def loadDisc(self): """ Read disc information and create the explorer tree accordingly """ import DiscID try: discInfo = DiscID.disc_id(DiscID.open(prefs.get(__name__, "device", PREFS_DFT_DEVICE))) except Exception, err: if err[0] == 123: self.tree.replaceContent([(icons.cdromMenuIcon(), None, _("No disc found"), None)]) modules.postMsg( consts.MSG_CMD_EXPLORER_RENAME, {"modName": MOD_L10N, "expName": self.expName, "newExpName": MOD_L10N}, ) self.expName = MOD_L10N else: logger.error( "[%s] Unable to read device\n\n%s" % (MOD_INFO[modules.MODINFO_NAME], traceback.format_exc()) ) return