Ejemplo n.º 1
0
class Main:
    def __init__(self):
        print _('TV-Maxe Channel Editor is starting...')
        self.gui = gtk.Builder()
        self.gui.add_from_file('ceditor.glade')
        self.gui.connect_signals({
            "quit": self.quit,
            "deschide": self.deschide,  #open
            "openFile": self.openFile,
            "openURL": self.openURL,
            "hideOpenURL": self.hideOpenURL,
            "goURL": self.goURL,
            "saveList": self.saveList,
            "showAddWindow": self.showAddWindow,
            "hideAddWindow": self.hideAddWindow,
            "addChannel": self.addChannel,
            "editChannel": self.editChannel,
            "hideChannelEditor": self.hideChannelEditor,
            "saveChannel": self.saveChannel,
            "deleteChannel": self.deleteChannel,
            "uploadImage": self.uploadImage,
            "salveaza": self.salveaza,
            "addChannelURL": self.addChannelURL,
            "addChannelEdit": self.addChannelEdit,
            "removeChannelURL": self.removeChannelURL,
            "addAudio": self.addAudio,
            "addAudioEdit": self.addAudioEdit,
            "removeAudio": self.removeAudio,
            "saveNew": self.saveNew,
            "saveInfo": self.saveNew2,
            "hideInfo": self.hideInfo,
            "on_entry2_changed": self.on_entry2_changed,
            "hideLogoWin": self.hideLogoWin,
            "selectIcon": self.selectIcon
        })
        self.imgur = Imgur()
        self.imageFinder = imageFinder(self)
        self.db = DBManager(':memory:')
        self.db.build()
        self.gui.get_object('cellrenderertext12').set_property(
            'editable', True)
        self.gui.get_object('cellrenderertext10').set_property(
            'editable', True)
        self.gui.get_object('cellrenderertext8').set_property('editable', True)
        self.gui.get_object('cellrenderertext9').set_property('editable', True)
        self.icons = {}

    def deschide(self, obj):
        menu = self.gui.get_object('menu1')
        menu.popup(None, None, None, 0, 0)

    def openFile(self, obj):
        chooser = gtk.FileChooserDialog(
            title='Open',
            action=gtk.FILE_CHOOSER_ACTION_OPEN,
            buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN,
                     gtk.RESPONSE_OK))
        response = chooser.run()
        if response == gtk.RESPONSE_OK:
            filename = chooser.get_filename()
        else:
            chooser.destroy()
            return
        chooser.destroy()
        f = open(filename)
        data = f.read()
        f.close()
        if '|newchannel|' in data:
            self.parseOldList(data)
        else:
            self.db.open(filename)
            self.db.build()
            self.populateList()

    def openURL(self, obj):
        self.gui.get_object('entry1').set_text('')
        self.gui.get_object('window2').show()

    def hideOpenURL(self, obj, event=None):
        self.gui.get_object('window2').hide()
        return True

    def goURL(self, obj):
        url = self.gui.get_object('entry1').get_text()
        threading.Thread(target=self.getFromURL, args=(url, )).start()
        self.gui.get_object('window2').hide()

    def getFromURL(self, url):
        try:
            req = urllib2.Request(url)
            response = urllib2.urlopen(req)
            data = response.read()
            #gobject.idle_add(self.parseList, data)
        except Exception, e:
            print _('Failed to retrieve ') + url
            print e