Ejemplo n.º 1
0
    def FillFolderList(self, query=None):
        #fills the treelist control with folders and songs
        FILEDB = system_files.GetDirectories(None).DatabaseLocation()
        conn = sqlite3.connect(FILEDB)
        # for unicode/crazy text errors
        conn.text_factory = str
        c = conn.cursor()
        if query == None:
            #default query            
            query = "SELECT DISTINCT folder_name, folder_path FROM m_files ORDER BY folder_name" #LIMIT 100"
            #print query
        c.execute(query)
        h = c.fetchall()
            
        #print h

        self.root = self.tr_scol_folders.AddRoot("Folders")
        #self.tr_scol_folders.SetItemText(self.root, "Artist")
        #self.tl_scol_folder.SetItemText(self.root, "col 2 root", 2)
        
        
        old_folder_name = 'start'
        for x in range(len(h)):
            folder_name = h[x][0]
            if folder_name == '':
                folder_name = '(root)'
           
            #disp = str(x)
            if old_folder_name != folder_name:
                try:
                    child = self.tr_scol_folders.AppendItem(self.root, folder_name)# unicode(folder_name, 'utf-8'))
                    old_folder_name = folder_name
                except Exception, expt:
                    print "FillFolderList:" + str(Exception) + str(expt)
Ejemplo n.º 2
0
def AddSingleFile(complete_filename):
    #add a single file to the database, files table
    FILEDB = system_files.GetDirectories(None).DatabaseLocation()

    conn = sqlite3.connect(FILEDB)
    c = conn.cursor()
    f = complete_filename

    if f.endswith('.mp3'):
        path_n = f.rsplit(os.sep, 1)[0].replace(os.sep, '/')
        folder_n = ''
        file_n = f.rsplit(os.sep, 1)[1]

        #check if file already exists in db
        t = 'SELECT music_id FROM m_files WHERE folder_path = "' + path_n + '" AND folder_name = "' + folder_n + '" AND file_name = "' + file_n + '"'
        c.execute(t)
        h = c.fetchall()

        #add if not found
        if len(h) == 0:
            c.execute('INSERT INTO m_files values (null,?,?,?)',
                      (path_n, folder_n, file_n))
            conn.commit()
        #print file_n
        #print path_n
        #print folder_n
    c.close()
Ejemplo n.º 3
0
    def __init__(self, parent):
        wx.Dialog.__init__(self, parent, -1, "Advanced Options", size=(600, 400), pos=(10,10))#, style=wx.FRAME_SHAPED) #STAY_ON_TOP)#wx.FRAME_SHAPED)
        self.parent = parent
        
        self.FILEDB = system_files.GetDirectories(None).DatabaseLocation()
        
        # XML Resources can be loaded from a file like this:
        res = xrc.XmlResource(SONGDB_RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_advanced_options")

        # control references --------------------
        self.lc_advanced_options = xrc.XRCCTRL(self, 'm_lc_advanced_options')
        #self.tc_option_value = xrc.XRCCTRL(self, 'm_tc_option_value')
        #self.st_option_name = xrc.XRCCTRL(self, 'm_st_option_name')
        self.tc_new_name = xrc.XRCCTRL(self, 'm_tc_new_name')
        self.tc_new_value = xrc.XRCCTRL(self, 'm_tc_new_value')
        
        self.lc_advanced_options.InsertColumn(0,"Option Name")
        self.lc_advanced_options.InsertColumn(1,"Option Value")
        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.DisplayOption, self.lc_advanced_options)
        
        # bindings ----------------
        #self.Bind(wx.EVT_BUTTON, self.OnUpdateOption, id=xrc.XRCID('m_bu_update_option'))
        self.Bind(wx.EVT_BUTTON, self.OnAddOption, id=xrc.XRCID('m_bu_add_option'))
            
        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND|wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
Ejemplo n.º 4
0
    def __init__(self, parent, pathToPlugins=None):
        if(not pathToPlugins==None):
            RESFILE = os.path.join(pathToPlugins,'flash') + os.sep + "layout_flash.xml"
            
        wx.Dialog.__init__(self, parent, -1, "Flash", size=(475,310), style=wx.FRAME_SHAPED|wx.RESIZE_BORDER) #STAY_ON_TOP)        
        self.parent = parent
        
        self.FLASH_SETTINGS = system_files.GetDirectories(self).MakeDataDirectory('plugins') + os.sep
        
        # XML Resources can be loaded from a file like this:
        res = xrc.XmlResource(RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_plugin_flash")

        # control references --------------------
        self.pa_flash_player = xrc.XRCCTRL(self, 'm_pa_flash_player')
        #header for dragging and moving
        self.st_flash_header = xrc.XRCCTRL(self, 'm_st_flash_header')        
        self.bm_flash_close = xrc.XRCCTRL(self, 'm_bm_flash_close')
        self.bm_flash_tab = xrc.XRCCTRL(self, 'm_bm_flash_tab')
        self.cb_flash_autoload = xrc.XRCCTRL(self, 'm_cb_flash_autoload')
        self.rx_flash_service = xrc.XRCCTRL(self, 'm_rx_flash_service')
        
        self.bm_flash_tab.Show(False)
        
        # bindings ----------------
        self.bm_flash_close.Bind(wx.EVT_LEFT_UP, self.CloseMe)
        #self.bm_flash_tab.Bind(wx.EVT_LEFT_UP, self.OnMakeTabClick)
        self.Bind(wx.EVT_CHECKBOX, self.SaveOptions, self.cb_flash_autoload)
        self.Bind(wx.EVT_RADIOBOX, self.SetService, self.rx_flash_service)
        
        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)       
        self.st_flash_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.st_flash_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.st_flash_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.st_flash_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
            
        #self.st_flash_using.SetLabel('Using: ' + self.parent.web_music_type)
        
        #self.bu_update_restart.Enable(False)    
        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND|wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        #self.LoadSetings()
        
        
        #*** if FLASH_ENABLED:
        try:
            self.parent.StopAll()
        except Exception, expt:
            print "Flash plug-in: " + str(Exception) + str(expt)
Ejemplo n.º 5
0
    def SearchCache(self, artist, track):
        temp_dir = system_files.GetDirectories(self).TempDirectory()
        file_name_plain = artist + '-' + track + '.mp3'

        # check if file previously cached
        cached_file = file_cache.CreateCachedFilename(temp_dir,
                                                      file_name_plain)
        cached_file_name = cached_file[0]
        if cached_file[1] == True:
            return (cached_file_name)
        else:
            return (None)
Ejemplo n.º 6
0
def GetCount():
    FILEDB = system_files.GetDirectories(None).DatabaseLocation()
    # get row count
    rcount = 0
    conn = sqlite3.connect(FILEDB)
    c = conn.cursor()
    t = "SELECT COUNT(*) as rcount FROM m_files ORDER BY music_id DESC LIMIT 1"
    c.execute(t)
    h = c.fetchall()
    for x in h:
        rcount = x[0]
    c.close()
    return rcount
Ejemplo n.º 7
0
 def GetFiles(self, folder_name):
     
     if folder_name == '(root)':
         folder_name = ''
     FILEDB = system_files.GetDirectories(None).DatabaseLocation()
     conn = sqlite3.connect(FILEDB)
     # for unicode/crazy text errors
     conn.text_factory = str
     c = conn.cursor()
     
     query = "SELECT file_name, folder_name, folder_path FROM m_files WHERE folder_name = '" + folder_name + "' ORDER BY file_name" #LIMIT 100"
     
     c.execute(query)
     h = c.fetchall()
     return h    
Ejemplo n.º 8
0
    def __init__(self, parent):
        wx.Dialog.__init__(self, parent, -1, "Options", size=(600, 500))#, pos=(10,10))#, style=wx.FRAME_SHAPED) #STAY_ON_TOP)#wx.FRAME_SHAPED)
        self.parent = parent
        
        self.FILEDB = system_files.GetDirectories(None).DatabaseLocation()
        
        # XML Resources can be loaded from a file like this:
        res = xrc.XmlResource(RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_options")

        # control references --------------------
        #self.lb_options = xrc.XRCCTRL(self, 'm_lb_options')
        self.lc_advanced_options = xrc.XRCCTRL(self, 'm_lc_advanced_options')
        self.st_lastfm_status = xrc.XRCCTRL(self, 'm_st_lastfm_status')
        #self.tc_lastfm_password = xrc.XRCCTRL(self, 'm_tc_lastfm_password')
        #self.st_option_name = xrc.XRCCTRL(self, 'm_st_option_name')
        self.tc_new_name = xrc.XRCCTRL(self, 'm_tc_new_name')
        self.tc_new_value = xrc.XRCCTRL(self, 'm_tc_new_value')
        self.tc_download_directory = xrc.XRCCTRL(self, 'm_tc_download-directory')
        
        self.lc_advanced_options.InsertColumn(0,"Option Name")
        self.lc_advanced_options.InsertColumn(1,"Option Value")
        self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.DisplayOption, self.lc_advanced_options)
        
        # bindings ----------------
        #self.Bind(wx.EVT_BUTTON, self.OnUpdateOption, id=xrc.XRCID('m_bu_update_option'))
        self.Bind(wx.EVT_BUTTON, self.OnAddOption, id=xrc.XRCID('m_bu_add_option'))
        self.Bind(wx.EVT_BUTTON, self.OnSaveClick, id=xrc.XRCID('m_bu_ok'))
        self.Bind(wx.EVT_BUTTON, self.OnExitClick, id=xrc.XRCID('m_bu_cancel'))
        self.Bind(wx.EVT_BUTTON, self.SetLanguage, id=xrc.XRCID('m_bu_options_language'))
        self.Bind(wx.EVT_BUTTON, self.OnBrowseClick, id=xrc.XRCID('m_bu_download_browse'))
        self.Bind(wx.EVT_BUTTON, self.OnClearCacheClick, id=xrc.XRCID('m_bu_cache_clear'))
        self.Bind(wx.EVT_BUTTON, self.OnLastfmTestClick, id=xrc.XRCID('m_bu_lastfm_test'))
            
        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND|wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        #self.SetSize(self.GetEffectiveMinSize())
        
        self.LoadOptions()
        self.DisplayAllOptions()        
Ejemplo n.º 9
0
 def LoadRSSFeeds(self):
     self.lc_sift_rss.DeleteAllItems()
     #populate rss listctrl
     FILEDB = system_files.GetDirectories(None).DatabaseLocation()
     conn = sqlite3.connect(FILEDB)
     c = conn.cursor()
     query = "SELECT feed_url FROM m_feeds ORDER BY feed_url"
     
     c.execute(query)
     h = c.fetchall()
     counter = 0
     for x in h:
         #print x
         try:
             index = self.lc_sift_rss.InsertStringItem(counter, x[counter])               
         except TypeError, err:
             print 'Type error: ' + str(err)
             pass
Ejemplo n.º 10
0
    def ReadFaves(self, query=None):
        self.lc_faves.DeleteAllItems()
        #populate favourites listctrl with songs that are rated 4 stars
        FILEDB = system_files.GetDirectories(None).DatabaseLocation()
        conn = sqlite3.connect(FILEDB)
        c = conn.cursor()

        rating_string = self.SetRatingFilters()

        if query == None:
            query = "SELECT artist, song, album, track_time, rating_type_id FROM m_rating INNER JOIN m_tracks ON m_rating.track_id = m_tracks.track_id " + rating_string + " ORDER BY artist, song"

        c.execute(query)
        h = c.fetchall()
        counter = 0
        for x in h:
            #print x
            try:
                #index = self.lc_faves.InsertStringItem(counter, x['creator'])
                index = self.lc_faves.InsertImageStringItem(counter, '', x[4])
                self.lc_faves.SetStringItem(counter, C_ARTIST, x[0])
                self.lc_faves.SetStringItem(counter, C_SONG, x[1])
                album = x[2]
                if album == None:
                    album = ''
                self.lc_faves.SetStringItem(counter, C_ALBUM, album)
                #song_id = x['location']
                song_id = ''
                #if song_id == None:
                #song_id = ''
                self.lc_faves.SetStringItem(counter, C_ID, song_id)
                duration = self.parent.ConvertTimeFormated(x[3])
                if duration == None:
                    duration = ''
                self.lc_faves.SetStringItem(counter, C_TIME, duration)
                counter = counter + 1
            except TypeError:
                pass
        c.close()
Ejemplo n.º 11
0
 def __init__(self):
     self.FILEDB = system_files.GetDirectories(None).DatabaseLocation()
Ejemplo n.º 12
0
 def __init__(self):
     self.query_flag = True
     p = wx.PreListCtrl()
     # the Create step is done by XRC.
     self.PostCreate(p)
     self.FILEDB = system_files.GetDirectories(None).DatabaseLocation()
Ejemplo n.º 13
0
Place, Suite 330, Boston, MA 02111-1307 USA
"""

import wx
import wx.xrc as xrc
#from main_utils.read_write_xml import xml_utils
from main_utils import system_files
from main_utils import string_tools
import sys, os
from beautifulsoup import BeautifulSoup
import urllib2

#SYSLOC = os.getcwd()
RESFILE = os.path.join(os.getcwd(), 'plugins',
                       'zongdora') + os.sep + "layout_zongdora.xml"
MAIN_PLAYLIST = system_files.GetDirectories(
    None).DataDirectory() + os.sep + "playlist.xspf"
#FILEDB = system_files.GetDirectories(None).DataDirectory() + os.sep + 'gravydb.sq3'
PANDORA_SONG_URL = "http://www.pandora.com/music/song/"


class MainPanel(wx.Dialog):
    def __init__(self, parent, pathToPlugins=None):
        if (not pathToPlugins == None):
            RESFILE = os.path.join(pathToPlugins,
                                   'zongdora') + os.sep + "layout_zongdora.xml"

        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "zongdora",
                           size=(475, 450),
Ejemplo n.º 14
0
    def GetSavedHotkeys(self):
        #grabbed the saved keys from the settings db, or not

        self.FILEDB = system_files.GetDirectories(self).DatabaseLocation()
        # hotkey-modifier, hotkey-previous, hotkey-play, hotkey-next, hotkey-stop
        hotkey_modifier = options.GetSetting('hotkey-modifier', self.FILEDB)
        if hotkey_modifier == '0':
            if os.name == 'nt':
                hotkey_modifier = win32con.MOD_CONTROL
            else:
                hotkey_modifier = wx.MOD_CONTROL
        if hotkey_modifier == '1':
            if os.name == 'nt':
                hotkey_modifier = win32con.MOD_SHIFT
            else:
                hotkey_modifier = wx.MOD_SHIFT
        if hotkey_modifier == '2':
            if os.name == 'nt':
                hotkey_modifier = win32con.MOD_WIN
            else:
                hotkey_modifier = wx.MOD_WIN

        h1 = options.GetSetting('hotkey-previous', self.FILEDB)
        h2 = options.GetSetting('hotkey-play', self.FILEDB)
        h3 = options.GetSetting('hotkey-stop', self.FILEDB)
        h4 = options.GetSetting('hotkey-next', self.FILEDB)
        h5 = options.GetSetting('hotkey-volume-down', self.FILEDB)
        h6 = options.GetSetting('hotkey-volume-up', self.FILEDB)
        h7 = options.GetSetting('hotkey-volume-mute', self.FILEDB)
        h8 = options.GetSetting('hotkey-shuffle', self.FILEDB)
        h9 = options.GetSetting('hotkey-repeat', self.FILEDB)

        if (hotkey_modifier == False) & (h1 == False):
            #use defaults
            if os.name == 'nt':
                modc = win32con.MOD_CONTROL
                h1 = win32con.VK_F1
                h2 = win32con.VK_F2
                h3 = win32con.VK_F3
                h4 = win32con.VK_F4
                h5 = win32con.VK_F5
                h6 = win32con.VK_F6
                h7 = win32con.VK_F7
                h8 = win32con.VK_F9
                h9 = win32con.VK_F10
            else:
                modc = wx.MOD_CONTROL
                h1 = wx.WXK_F1
                h2 = wx.WXK_F2
                h3 = wx.WXK_F3
                h4 = wx.WXK_F4
                h5 = wx.WXK_F5
                h6 = wx.WXK_F6
                h7 = wx.WXK_F7
                h8 = wx.WXK_F9
                h9 = wx.WXK_F10

            self.RegisterHotkeys(str(modc), h1, h2, h3, h4, h5, h6, h7, h8, h9)
        else:
            #use stored values
            self.RegisterHotkeys(hotkey_modifier, h1, h2, h3, h4, h5, h6, h7,
                                 h8, h9)
Ejemplo n.º 15
0
    def __init__(self, parent):
        wx.Dialog.__init__(
            self,
            parent,
            -1,
            "Song Collection Locations",
            size=(600, 430),
            pos=(10,
                 10))  #, style=wx.FRAME_SHAPED) #STAY_ON_TOP)#wx.FRAME_SHAPED)
        self.parent = parent

        self.FILEDB = system_files.GetDirectories(None).DatabaseLocation()

        # XML Resources can be loaded from a file like this:
        res = xrc.XmlResource(SONGDB_RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_song_db")

        # control references --------------------
        self.st_songdb_root = xrc.XRCCTRL(self, 'm_st_songdb_root')
        self.st_songdb_status = xrc.XRCCTRL(self, 'm_st_songdb_status')
        self.st_songdb_file = xrc.XRCCTRL(self, 'm_st_songdb_file')
        self.ga_songdb_index = xrc.XRCCTRL(self, 'm_ga_songdb_index')
        self.st_songdb_header = xrc.XRCCTRL(self, 'm_st_songdb_header')
        self.lb_songdb_directories = xrc.XRCCTRL(self,
                                                 'm_lb_songdb_directories')
        #self.bm_search_close = xrc.XRCCTRL(self, 'm_bm_search_close')
        #self.dp_songdb_dir = xrc.XRCCTRL(self, 'm_dp_songdb_dir')

        # bindings ----------------
        self.Bind(wx.EVT_BUTTON,
                  self.OnAddClick,
                  id=xrc.XRCID('m_bu_songdb_add'))
        self.Bind(wx.EVT_BUTTON,
                  self.OnRemoveClick,
                  id=xrc.XRCID('m_bu_songdb_remove'))
        self.Bind(wx.EVT_BUTTON,
                  self.OnExitClick,
                  id=xrc.XRCID('m_bu_songdb_ok'))
        self.Bind(wx.EVT_BUTTON,
                  self.OnUpdateClick,
                  id=xrc.XRCID('m_bu_songdb_update'))
        #self.Bind(wx.EVT_BUTTON, self.OnSearchClear, id=xrc.XRCID('m_bb_search_clear'))
        #self.Bind(wx.EVT_TEXT_ENTER, self.OnSearchClick, self.tc_search_text)
        #self.bm_search_close.Bind(wx.EVT_LEFT_UP, self.hide_me)

        ##self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        ##self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        ##self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        ##self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
        ##self.st_songdb_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        ##self.st_songdb_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        ##self.st_songdb_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        ##self.st_songdb_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)

        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND | wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        #self.SetSize(self.GetEffectiveMinSize())
        self.GetLocations()
Ejemplo n.º 16
0
 def __init__(self):
     self.FILEDB = system_files.GetDirectories(self).DatabaseLocation()
     self.api_key = options_window.GetSetting('tingsong-api-key',
                                              self.FILEDB)
Ejemplo n.º 17
0
    def __init__(self, parent, pathToPlugins=None):
        if (not pathToPlugins == None):
            RESFILE = os.path.join(pathToPlugins,
                                   'lyrics') + os.sep + "layout_lyrics.xml"
            LYRICS = os.path.join(pathToPlugins, 'lyrics') + os.sep

        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "Lyrics",
                           size=(375, 460),
                           style=wx.FRAME_SHAPED
                           | wx.RESIZE_BORDER)  #STAY_ON_TOP)
        self.parent = parent
        #split the dialog and the dialog's panel, allows for reuse in non-dialogs
        #        x = MyPanel(self, parent)

        #class MyPanel(wx.Panel):
        #    def __init__(self, dialog, parent):
        #        wx.Panel.__init__(self, dialog, -1)
        #        self.parent = parent
        #        self.dialog = dialog

        # settings xml file
        self.LYRICS_SETTINGS = system_files.GetDirectories(
            self).MakeDataDirectory('plugins') + os.sep

        # xrc layout xml
        res = xrc.XmlResource(RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_plugin_lyrics")

        # control references --------------------
        self.tc_lyrics_text = xrc.XRCCTRL(self, 'm_tc_lyrics_text')
        self.rb_lyrics_lazy = xrc.XRCCTRL(self, 'm_rb_lyrics_lazy')
        self.ch_lyrics_song_list = xrc.XRCCTRL(self, 'm_ch_lyrics_song_list')

        #header for dragging and moving
        self.st_lyrics_header = xrc.XRCCTRL(self, 'm_st_lyrics_header')
        self.bm_lyrics_close = xrc.XRCCTRL(self, 'm_bm_lyrics_close')
        self.bm_lyrics_tab = xrc.XRCCTRL(self, 'm_bm_lyrics_tab')
        self.bm_lyrics_tab.Show(False)

        # bindings ----------------
        self.Bind(wx.EVT_BUTTON,
                  self.GetLyrics,
                  id=xrc.XRCID('m_bu_lyrics_update'))
        self.bm_lyrics_close.Bind(wx.EVT_LEFT_UP, self.CloseMe)
        #self.bm_lyrics_tab.Bind(wx.EVT_LEFT_UP, self.OnMakeTabClick)
        self.Bind(wx.EVT_CHOICE, self.EvtChoice, self.ch_lyrics_song_list)
        self.Bind(wx.EVT_RADIOBUTTON, self.EvtRadio, self.rb_lyrics_lazy)
        self.Bind(wx.EVT_RADIOBUTTON,
                  self.EvtRadio,
                  id=xrc.XRCID('m_rb_lyrics_strict'))

        #dragging and moving
        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
        self.st_lyrics_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.st_lyrics_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.st_lyrics_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.st_lyrics_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)

        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND | wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)

        # load settings -----------
        self.LoadSettings()

        # store current song, to avoid fetching the same data
        self.current_song = ''

        # get lyrics, song may be playing when loaded
        self.GetLyrics(None)

        #set a reciever to catch new song events
        self.parent.SetReceiver(self, 'main.playback.new')

        # hotkeys ------------------
        ctrlrID = 802
        ctrleqID = 902
        ctrlmiID = 901

        self.aTable_values = [
            (wx.ACCEL_CTRL, ord('R'), ctrlrID),  #reset position
            (wx.ACCEL_CTRL, ord('='), ctrleqID),  #increase font
            (wx.ACCEL_CTRL, ord('-'), ctrlmiID)  #decrease font
        ]
        aTable = wx.AcceleratorTable(self.aTable_values)
        #add to main program
        self.SetAcceleratorTable(aTable)
        wx.EVT_MENU(self, ctrlrID, self.ResetPosition)
        wx.EVT_MENU(self, ctrleqID, self.IncreaseFontSize)
        wx.EVT_MENU(self, ctrlmiID, self.DecreaseFontSize)
Ejemplo n.º 18
0
    def __init__(self, parent):
        self.parent = parent
        self.sys_files = system_files.GetDirectories(self)
        self.FILEDB = self.sys_files.DatabaseLocation()

        # controls ---------------------------
        self.tc_mylast_search_user = xrc.XRCCTRL(self.parent,
                                                 'm_tc_mylast_search_user')
        self.st_mylast_me = xrc.XRCCTRL(self.parent, 'm_st_mylast_me')
        self.st_mylast_friends = xrc.XRCCTRL(self.parent,
                                             'm_st_mylast_friends')
        self.st_mylast_neigh = xrc.XRCCTRL(self.parent, 'm_st_mylast_neigh')
        self.st_mylast_loved = xrc.XRCCTRL(self.parent, 'm_st_mylast_loved')
        ##self.st_mylast_recomm = xrc.XRCCTRL(self, 'm_st_mylast_recomm')
        self.rx_mylast_period = xrc.XRCCTRL(self.parent, 'm_rx_mylast_period')
        self.ch_mylast_page = xrc.XRCCTRL(self.parent, 'm_ch_mylast_page')

        # my last.fm list control -------------
        self.lc_mylast = xrc.XRCCTRL(self.parent, 'm_lc_mylast')
        self.lc_mylast.InsertColumn(0, "Rating")
        self.lc_mylast.InsertColumn(1, "Artist")
        self.lc_mylast.InsertColumn(2, "Song")
        self.lc_mylast.InsertColumn(3, "User")
        self.lc_mylast.InsertColumn(4, "Match")
        self.lc_mylast.InsertColumn(5, "Date")
        self.lc_mylast.InsertColumn(6, "Count")

        self.parent.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnMyLastListClick,
                         self.lc_mylast)
        self.parent.Bind(wx.EVT_LIST_ITEM_ACTIVATED,
                         self.OnMyLastListDoubleClick, self.lc_mylast)
        # wxMSW
        self.parent.Bind(wx.EVT_COMMAND_RIGHT_CLICK, self.OnMyLastRightClick,
                         self.lc_mylast)
        # wxGTK
        self.lc_mylast.Bind(wx.EVT_RIGHT_UP, self.OnMyLastRightClick)
        self.lc_mylast.Bind(wx.EVT_CHAR, self.parent.OnChar)

        #bindings ----------------
        self.st_mylast_me.Bind(wx.EVT_LEFT_UP, self.OnMyLastMeClick)
        self.st_mylast_friends.Bind(wx.EVT_LEFT_UP, self.OnMyLastFriendsClick)
        self.st_mylast_neigh.Bind(wx.EVT_LEFT_UP, self.OnMyLastNeighClick)
        self.parent.Bind(wx.EVT_BUTTON,
                         self.OnMyLastClearClick,
                         id=xrc.XRCID('m_bb_mylast_clear'))
        self.parent.Bind(wx.EVT_BUTTON,
                         self.OnMyLastSearchClick,
                         id=xrc.XRCID('m_bb_mylast_search'))
        self.parent.Bind(wx.EVT_BUTTON,
                         self.OnMyLastWebClick,
                         id=xrc.XRCID('m_bb_mylast_goweb'))
        self.parent.Bind(wx.EVT_BUTTON,
                         self.OnMyLastAddSelected,
                         id=xrc.XRCID('m_bb_mylast_add'))
        self.st_mylast_loved.Bind(wx.EVT_LEFT_UP, self.OnMyLastLovedClick)
        self.parent.Bind(wx.EVT_BUTTON,
                         self.OnAutoGenerateMyLastPlayist,
                         id=xrc.XRCID('m_bb_mylast_plize'))
        self.parent.Bind(wx.EVT_CHOICE, self.OnPageSelect, self.ch_mylast_page)

        self.parent.Bind(EVT_NEW_MYLAST, self.GenerateScrobbList2)

        self.current_page = 0
        self.total_pages = 0
        self.get_type = ""
Ejemplo n.º 19
0
Place, Suite 330, Boston, MA 02111-1307 USA
"""

import wx
import wx.xrc as xrc
import wx.grid as gridlib
#from main_utils.read_write_xml import xml_utils
import sys, os
import sqlite3
from main_utils import local_songs
from main_utils import system_files

#SYSLOC = os.getcwd()
RESFILE = os.path.join(os.getcwd(), 'plugins',
                       'griddle') + os.sep + "layout_griddle.xml"
FILEDB = system_files.GetDirectories(None).DatabaseLocation()
MAIN_PLAYLIST = system_files.GetDirectories(
    None).DataDirectory() + os.sep + "playlist.xspf"


class MainPanel(wx.Dialog):
    def __init__(self, parent, pathToPlugins=None):
        if (not pathToPlugins == None):
            RESFILE = os.path.join(pathToPlugins,
                                   'griddle') + os.sep + "layout_griddle.xml"

        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "griddle",
                           size=(650, 400),
Ejemplo n.º 20
0
 def __init__(self, parent, base_path):
     Thread.__init__(self)
     self.parent = parent
     self.base_path = base_path
     self.FILEDB = system_files.GetDirectories(
         self.parent).DatabaseLocation()
Ejemplo n.º 21
0
        for x in range(self.lc_x2_plist.GetItemCount(), 0, -1):
            artist = self.lc_x2_plist.GetItem(x - 1, 0).GetText()
            song = self.lc_x2_plist.GetItem(x - 1, 1).GetText()
            self.parent.SetPlaylistItem(insert_at, artist, song, '', '')
        #save the playlist
        self.parent.SavePlaylist()
        # switch tabs
        self.parent.nb_main.SetSelection(self.nb_playlist)


# ####################################

#SYSLOC = os.getcwd()

#FILEDB = SYSLOC + '\\gravydb.sq3'
FILEDB = system_files.GetDirectories(None).DatabaseLocation()


#2track id
#3tag id
#4tag label
#5listeners
#6playcount
#0artist
#1song
#7time
def BuildQuery(selected_array):
    query2 = ''
    query1 = 'select artist, song, m_tracks.track_id, m_tag.tag_id, tag_label'
    for x in selected_array:
        query2 = query2 + ', ' + FEATURES_ARRAY[x]
Ejemplo n.º 22
0
    def __init__(self, parent):
        wx.Dialog.__init__(self, parent, -1, "Search", size=(500, 500), style=wx.FRAME_SHAPED|wx.RESIZE_BORDER) #STAY_ON_TOP)#wx.FRAME_SHAPED)
        self.parent = parent
        self.first_move = True
        self.sys_files = system_files.GetDirectories(self)
        self.FILEDB = self.sys_files.DatabaseLocation()
        # XML Resources can be loaded from a file like this:
        res = xrc.XmlResource(SEARCH_RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_search")

        # control references --------------------
        self.tc_search_text = xrc.XRCCTRL(self, 'm_tc_search_text')
        self.st_search_header = xrc.XRCCTRL(self, 'm_st_search_header')
        self.bm_search_close = xrc.XRCCTRL(self, 'm_bm_search_close')
        self.cb_search_local = xrc.XRCCTRL(self, 'm_cb_search_local')
        #self.cb_search_noid = xrc.XRCCTRL(self, 'm_cb_search_noid')
        #self.st_search_header = xrc.XRCCTRL(self, 'm_st_search_header')
        # and do the layout
        
        
        # list control, column setup ------------
        # search is subclassed to draglist in the xrc
        self.lc_search = xrc.XRCCTRL(self, 'm_lc_search')
        self.lc_search.InsertColumn(C_RATING,"Rating")
        self.lc_search.InsertColumn(C_ARTIST,"Artist")
        self.lc_search.InsertColumn(C_SONG,"Song")
        self.lc_search.InsertColumn(C_ALBUM,"Album")
        self.lc_search.InsertColumn(C_ID,"Id")
        self.lc_search.InsertColumn(C_TIME,"Time")
        self.lc_search.InsertColumn(C_ARTISTID,"Artist Id")
        self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnSearchListClick, self.lc_search)

        # bindings ----------------
        self.Bind(wx.EVT_BUTTON, self.OnSearchClick, id=xrc.XRCID('m_bb_search_button'))
        self.Bind(wx.EVT_BUTTON, self.OnSearchListClick, id=xrc.XRCID('m_bb_search_add'))
        self.Bind(wx.EVT_BUTTON, self.OnSearchClear, id=xrc.XRCID('m_bb_search_clear'))
        self.Bind(wx.EVT_TEXT_ENTER, self.OnSearchClick, self.tc_search_text)
        self.bm_search_close.Bind(wx.EVT_LEFT_UP, self.hide_me)
        
        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
        self.st_search_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.st_search_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.st_search_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.st_search_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
                
        EVT_RESULT(self, self.FillSearchList)
        
        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND|wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)        
        
        # esacpe to close window
        #escID = 337
        #wx.EVT_CHAR_HOOK(self, escID, self.hide_me)
        #aTable_values = [
        #    (wx.ACCEL_NORMAL, wx.WXK_ESCAPE, escID),
        #        ]
        #aTable = wx.AcceleratorTable(aTable_values)
        #self.SetAcceleratorTable(aTable)        
        self.Bind(wx.EVT_CHAR_HOOK, self.OnKeyDown)
Ejemplo n.º 23
0
    def __init__(self, parent, pathToPlugins=None):
        if (not pathToPlugins == None):
            RESFILE = os.path.join(pathToPlugins,
                                   'twitter') + os.sep + "layout_twitter.xml"
            TWITTER = os.path.join(pathToPlugins, 'twitter') + os.sep

        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "Twitter",
                           size=(475, 510),
                           style=wx.FRAME_SHAPED
                           | wx.RESIZE_BORDER)  #STAY_ON_TOP)
        self.parent = parent

        self.TWITTER_SETTINGS = system_files.GetDirectories(
            self).MakeDataDirectory('plugins') + os.sep

        # XML Resources can be loaded from a file like this:
        res = xrc.XmlResource(RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_plugin_twitter")

        # control references --------------------
        self.tc_twitter_text = xrc.XRCCTRL(self, 'm_tc_twitter_text')
        self.tc_twitter_username = xrc.XRCCTRL(self, 'm_tc_twitter_username')
        self.tc_twitter_password = xrc.XRCCTRL(self, 'm_tc_twitter_password')
        self.tc_twitter_default = xrc.XRCCTRL(self, 'm_tc_twitter_default')
        self.st_twitter_chars = xrc.XRCCTRL(self, 'm_st_twitter_chars')
        #header for dragging and moving
        self.st_twitter_header = xrc.XRCCTRL(self, 'm_st_twitter_header')
        self.bm_twitter_close = xrc.XRCCTRL(self, 'm_bm_twitter_close')
        self.hw_twitter_home = xrc.XRCCTRL(self, 'm_hw_twitter_home')
        self.hw_twitter_at = xrc.XRCCTRL(self, 'm_hw_twitter_at')

        # bindings ----------------
        self.Bind(wx.EVT_BUTTON,
                  self.SaveOptions,
                  id=xrc.XRCID('m_bu_twitter_save'))
        self.Bind(wx.EVT_BUTTON, self.Twat, id=xrc.XRCID('m_bu_twitter_tweet'))

        self.Bind(wx.EVT_BUTTON,
                  self.GetHomeTimeline,
                  id=xrc.XRCID('m_bb_twitter_update_home'))
        self.Bind(wx.EVT_BUTTON,
                  self.GetMentions,
                  id=xrc.XRCID('m_bb_twitter_update_at'))
        self.Bind(wx.EVT_BUTTON,
                  self.CopyReplace,
                  id=xrc.XRCID('m_bb_twitter_update_default'))

        self.hw_twitter_home.Bind(wx.html.EVT_HTML_LINK_CLICKED,
                                  self.OnWebClick)
        self.hw_twitter_at.Bind(wx.html.EVT_HTML_LINK_CLICKED, self.OnWebClick)

        self.Bind(wx.EVT_TEXT, self.OnChars, self.tc_twitter_text)
        self.bm_twitter_close.Bind(wx.EVT_LEFT_UP, self.CloseMe)

        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
        self.st_twitter_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.st_twitter_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.st_twitter_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.st_twitter_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)

        #self.bu_update_restart.Enable(False)
        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND | wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        self.LoadSettings()
        self.CopyReplace()
        self.OnChars()
        xrc.XRCCTRL(self, 'm_notebook1').SetPageText(
            1, '@' + self.tc_twitter_username.GetValue())
Ejemplo n.º 24
0
    def __init__(self, parent, pathToPlugins=None):
        if (not pathToPlugins == None):
            RESFILE = os.path.join(pathToPlugins,
                                   'hotkeys') + os.sep + "layout_hotkeys.xml"

        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "Hotkeys",
                           size=(375, 460),
                           style=wx.FRAME_SHAPED
                           | wx.RESIZE_BORDER)  #STAY_ON_TOP)
        self.parent = parent
        self.FILEDB = system_files.GetDirectories(self).DatabaseLocation()

        # xrc layout xml
        res = xrc.XmlResource(RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_plugin_hotkeys")

        # control references --------------------
        self.tc_acc_previous = xrc.XRCCTRL(self, 'm_tc_acc_previous')
        self.tc_acc_play = xrc.XRCCTRL(self, 'm_tc_acc_play')
        self.tc_acc_stop = xrc.XRCCTRL(self, 'm_tc_acc_stop')
        self.tc_acc_next = xrc.XRCCTRL(self, 'm_tc_acc_next')
        self.tc_acc_volume_up = xrc.XRCCTRL(self, 'm_tc_acc_volume_up')
        self.tc_acc_volume_down = xrc.XRCCTRL(self, 'm_tc_acc_volume_down')
        self.tc_acc_volume_mute = xrc.XRCCTRL(self, 'm_tc_acc_volume_mute')
        self.tc_acc_repeat = xrc.XRCCTRL(self, 'm_tc_acc_repeat')
        self.tc_acc_shuffle = xrc.XRCCTRL(self, 'm_tc_acc_shuffle')

        self.st_acc_previous = xrc.XRCCTRL(self, 'm_st_acc_previous')
        self.st_acc_play = xrc.XRCCTRL(self, 'm_st_acc_play')
        self.st_acc_stop = xrc.XRCCTRL(self, 'm_st_acc_stop')
        self.st_acc_next = xrc.XRCCTRL(self, 'm_st_acc_next')
        self.st_acc_volume_up = xrc.XRCCTRL(self, 'm_st_acc_volume_up')
        self.st_acc_volume_down = xrc.XRCCTRL(self, 'm_st_acc_volume_down')
        self.st_acc_volume_mute = xrc.XRCCTRL(self, 'm_st_acc_volume_mute')
        self.st_acc_repeat = xrc.XRCCTRL(self, 'm_st_acc_repeat')
        self.st_acc_shuffle = xrc.XRCCTRL(self, 'm_st_acc_shuffle')
        #---
        self.tc_previous = xrc.XRCCTRL(self, 'm_tc_previous')
        self.tc_play = xrc.XRCCTRL(self, 'm_tc_play')
        self.tc_stop = xrc.XRCCTRL(self, 'm_tc_stop')
        self.tc_next = xrc.XRCCTRL(self, 'm_tc_next')
        self.tc_volume_up = xrc.XRCCTRL(self, 'm_tc_volume_up')
        self.tc_volume_down = xrc.XRCCTRL(self, 'm_tc_volume_down')
        self.tc_volume_mute = xrc.XRCCTRL(self, 'm_tc_volume_mute')
        self.tc_repeat = xrc.XRCCTRL(self, 'm_tc_repeat')
        self.tc_shuffle = xrc.XRCCTRL(self, 'm_tc_shuffle')
        self.ch_modifier = xrc.XRCCTRL(self, 'm_ch_modifier')
        self.rb_modifier = xrc.XRCCTRL(self, 'm_rb_modifier')

        #header for dragging and moving
        self.st_hotkeys_header = xrc.XRCCTRL(self, 'm_st_hotkeys_header')
        self.bm_hotkeys_close = xrc.XRCCTRL(self, 'm_bm_hotkeys_close')

        # bindings ----------------
        self.bm_hotkeys_close.Bind(wx.EVT_LEFT_UP, self.CloseMe)
        self.tc_acc_previous.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_play.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_stop.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_next.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_volume_up.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_volume_down.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_volume_mute.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_repeat.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.tc_acc_shuffle.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)

        self.tc_previous.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_play.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_stop.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_next.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_volume_up.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_volume_down.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_volume_mute.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_repeat.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)
        self.tc_shuffle.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown2)

        # self.tc_acc_modifier.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.Bind(wx.EVT_BUTTON,
                  self.OnSaveClick,
                  id=xrc.XRCID('m_bu_acc_save'))
        self.Bind(wx.EVT_BUTTON, self.OnSaveClick, id=xrc.XRCID('m_bu_save'))
        self.Bind(wx.EVT_BUTTON, self.CloseMe, id=xrc.XRCID('m_bu_acc_cancel'))
        self.Bind(wx.EVT_BUTTON, self.CloseMe, id=xrc.XRCID('m_bu_cancel'))

        #dragging and moving
        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
        self.st_hotkeys_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.st_hotkeys_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.st_hotkeys_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.st_hotkeys_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)

        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND | wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)
        self.SetSize(self.GetEffectiveMinSize())

        # load settings -----------
        self.LoadSettings()
        self.SetLabels()
Ejemplo n.º 25
0
    def __init__(self, parent, pathToPlugins=None):
        if (not pathToPlugins == None):
            RESFILE = os.path.join(pathToPlugins,
                                   'sync') + os.sep + "layout_sync.xml"
            sync = os.path.join(pathToPlugins, 'sync') + os.sep

        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "Sync",
                           size=(375, 460),
                           style=wx.FRAME_SHAPED
                           | wx.RESIZE_BORDER)  #STAY_ON_TOP)
        self.parent = parent

        self.SYNC_SETTINGS = system_files.GetDirectories(
            self).MakeDataDirectory('plugins') + os.sep

        # XML Resources can be loaded from a file like this:
        res = xrc.XmlResource(RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_plugin_sync")

        # control references --------------------
        self.st_sync_device = xrc.XRCCTRL(self, 'm_st_sync_device')
        self.st_sync_space = xrc.XRCCTRL(self, 'm_st_sync_space')
        self.st_sync_file = xrc.XRCCTRL(self, 'm_st_sync_file')
        self.ga_sync_progress = xrc.XRCCTRL(self, 'm_ga_sync_progress')
        self.bu_sync_sync = xrc.XRCCTRL(self, 'm_bu_sync_sync')
        self.cb_sync_album = xrc.XRCCTRL(self, 'm_cb_sync_album')
        self.cm_sync_album_name = xrc.XRCCTRL(self, 'm_cm_sync_album_name')

        #header for dragging and moving
        self.st_sync_header = xrc.XRCCTRL(self, 'm_st_sync_header')
        self.bm_sync_close = xrc.XRCCTRL(self, 'm_bm_sync_close')
        self.lb_sync_directories = xrc.XRCCTRL(self, 'm_lb_sync_directories')

        # bindings ----------------
        #self.Bind(wx.EVT_BUTTON, self.SaveOptions, id=xrc.XRCID('m_bu_sync_save'))
        #self.Bind(wx.EVT_BUTTON, self.Twat, id=xrc.XRCID('m_bu_sync_tweet'))

        #self.Bind(wx.EVT_BUTTON, self.Getsync, id=xrc.XRCID('m_bu_sync_update'))
        #self.Bind(wx.EVT_BUTTON, self.GetMentions, id=xrc.XRCID('m_bu_sync_update_at'))
        #self.Bind(wx.EVT_BUTTON, self.CopyReplace, id=xrc.XRCID('m_bu_sync_update_default'))
        self.Bind(wx.EVT_BUTTON,
                  self.OnAddClick,
                  id=xrc.XRCID('m_bu_sync_add'))
        self.Bind(wx.EVT_BUTTON,
                  self.OnRemoveClick,
                  id=xrc.XRCID('m_bu_sync_remove'))
        self.Bind(wx.EVT_BUTTON,
                  self.OnSyncClick,
                  id=xrc.XRCID('m_bu_sync_sync'))

        self.Bind(wx.EVT_LISTBOX, self.EvtListBox, self.lb_sync_directories)

        self.bm_sync_close.Bind(wx.EVT_LEFT_UP, self.CloseMe)

        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
        self.st_sync_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.st_sync_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.st_sync_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.st_sync_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)

        #self.bu_update_restart.Enable(False)
        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND | wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)

        self.LoadSettings()
Ejemplo n.º 26
0
 def __init__(self, parent):
     self.parent = parent
     self.SETTINGS_LOCATION = system_files.GetDirectories(
         self).MakeDataDirectory('plugins') + os.sep
     self.LoadPlugins()
Ejemplo n.º 27
0
 def OnClearCacheClick(self, event):
     #clear the cache
     temp_dir = system_files.GetDirectories(self).TempDirectory()
     file_cache.CheckCache(temp_dir, 0)
Ejemplo n.º 28
0
    def SetHotkeys(self):
        backID = 701
        playID = 702
        stopID = 703
        forwID = 704
        #saveID = 705
        #loadID = 706
        randID = 707
        reapID = 708
        vlupID = 709
        vldnID = 7010
        #tbupID = 7012
        muteID = 7011
        #tbdnID = 7011
        #ctrldID = 801
        #ctrlrID = 802
        #ctrlbID = 803
        #ctrl9ID = 910
        #ctrl8ID = 911
        #ctrlfID = 804
        #ctrlmID = 805
        #ctrlgID = 806
        #ctrlperiodID = 807

        self.FILEDB = system_files.GetDirectories(self).DatabaseLocation()

        h1 = options.GetSetting('acc-previous', self.FILEDB)
        if h1:
            h1 = int(h1)
        else:
            h1 = wx.WXK_F1

        h2 = options.GetSetting('acc-play', self.FILEDB)
        if h2:
            h2 = int(h2)
        else:
            h2 = wx.WXK_F2

        h3 = options.GetSetting('acc-stop', self.FILEDB)
        if h3:
            h3 = int(h3)
        else:
            h3 = wx.WXK_F3

        h4 = options.GetSetting('acc-next', self.FILEDB)
        if h4:
            h4 = int(h4)
        else:
            h4 = wx.WXK_F4

        h5 = options.GetSetting('acc-volume-down', self.FILEDB)
        if h5:
            h5 = int(h5)
        else:
            h5 = wx.WXK_F5

        h6 = options.GetSetting('acc-volume-up', self.FILEDB)
        if h6:
            h6 = int(h6)
        else:
            h6 = wx.WXK_F6

        h7 = options.GetSetting('acc-volume-mute', self.FILEDB)
        if h7:
            h7 = int(h7)
        else:
            h7 = wx.WXK_F7

        h8 = options.GetSetting('acc-shuffle', self.FILEDB)
        if h8:
            h8 = int(h8)
        else:
            h8 = wx.WXK_F9

        h9 = options.GetSetting('acc-repeat', self.FILEDB)
        if h9:
            h9 = int(h9)
        else:
            h9 = wx.WXK_F10

        #clear acc table
        aTable = wx.NullAcceleratorTable
        self.parent.SetAcceleratorTable(aTable)
        self.parent.album_viewer.SetAcceleratorTable(aTable)

        self.parent.aTable_values = [
            (wx.ACCEL_NORMAL, h1, backID),
            (wx.ACCEL_NORMAL, h2, playID),
            (wx.ACCEL_NORMAL, h3, stopID),
            (wx.ACCEL_NORMAL, h4, forwID),
            (wx.ACCEL_NORMAL, h5, vldnID),
            (wx.ACCEL_NORMAL, h6, vlupID),
            (wx.ACCEL_NORMAL, h7, muteID),
            (wx.ACCEL_NORMAL, h8, randID),
            (wx.ACCEL_NORMAL, h9, reapID),

            #(wx.ACCEL_CTRL, ord('.'), ctrlperiodID)
        ]

        ###self.SetMenuAccel(h1, backID)
        counter = 0
        for menu_item in self.parent.parent.menu_playback.GetMenuItems():
            #print menu_item
            if counter == 9:
                break
            self.SetMenuAccel(menu_item, self.parent.aTable_values[counter][1],
                              self.parent.aTable_values[counter][2])
            counter = counter + 1

        aTable = wx.AcceleratorTable(self.parent.aTable_values)
        #add to main program
        ####self.parent.SetAcceleratorTable(aTable)
        #add to album viewer window too
        self.parent.album_viewer.SetAcceleratorTable(aTable)

        wx.EVT_MENU(self.parent, backID, self.parent.OnBackwardClick)
        wx.EVT_MENU(self.parent, playID, self.parent.OnPlayClick)
        wx.EVT_MENU(self.parent, stopID, self.parent.OnStopClick)
        wx.EVT_MENU(self.parent, forwID, self.parent.OnForwardClick)

        #wx.EVT_MENU(self, saveID, self.OnSavePlaylistClick)
        #wx.EVT_MENU(self, loadID, self.OnLoadPlaylistClick)
        wx.EVT_MENU(self.parent, randID, self.parent.OnRandomClick)
        wx.EVT_MENU(self.parent, reapID, self.parent.OnRepeatClick)

        wx.EVT_MENU(self.parent, vldnID, self.parent.OnVolumeDown)
        wx.EVT_MENU(self.parent, vlupID, self.parent.OnVolumeUp)
        wx.EVT_MENU(self.parent, muteID, self.parent.OnMuteClick)
Ejemplo n.º 29
0
    def __init__(self, parent, pathToPlugins=None):
        if (not pathToPlugins == None):
            RESFILE = os.path.join(
                pathToPlugins, 'web_remote') + os.sep + "layout_web_remote.xml"
            WEB_REMOTE = os.path.join(pathToPlugins, 'web_remote') + os.sep

        wx.Dialog.__init__(self,
                           parent,
                           -1,
                           "Web Remote",
                           size=(375, 200),
                           style=wx.FRAME_SHAPED
                           | wx.RESIZE_BORDER)  #STAY_ON_TOP)
        self.parent = parent

        # settings xml file
        self.WEB_REMOTE_SETTINGS = system_files.GetDirectories(
            self).MakeDataDirectory('plugins') + os.sep

        # xrc layout xml
        res = xrc.XmlResource(RESFILE)

        # Now create a panel from the resource data
        panel = res.LoadPanel(self, "m_pa_plugin_web_remote")

        # control references --------------------
        self.bu_web_remote_start_server = xrc.XRCCTRL(
            self, 'm_bu_web_remote_start_server')
        self.bu_web_remote_stop_server = xrc.XRCCTRL(
            self, 'm_bu_web_remote_stop_server')
        self.tc_web_remote_status = xrc.XRCCTRL(self, 'm_tc_web_remote_status')

        #header for dragging and moving
        self.st_web_remote_header = xrc.XRCCTRL(self, 'm_st_web_remote_header')
        self.bm_web_remote_close = xrc.XRCCTRL(self, 'm_bm_web_remote_close')

        # bindings ----------------
        self.Bind(wx.EVT_BUTTON,
                  self.StartServer,
                  id=xrc.XRCID('m_bu_web_remote_start_server'))
        self.Bind(wx.EVT_BUTTON,
                  self.StopServer,
                  id=xrc.XRCID('m_bu_web_remote_stop_server'))
        self.bm_web_remote_close.Bind(wx.EVT_LEFT_UP, self.CloseMe)

        #dragging and moving
        self.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)
        self.st_web_remote_header.Bind(wx.EVT_LEFT_DOWN, self.OnMouseLeftDown)
        self.st_web_remote_header.Bind(wx.EVT_MOTION, self.OnMouseMotion)
        self.st_web_remote_header.Bind(wx.EVT_LEFT_UP, self.OnMouseLeftUp)
        self.st_web_remote_header.Bind(wx.EVT_RIGHT_UP, self.OnRightUp)

        # set layout --------------
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(panel, 1, wx.EXPAND | wx.ALL, 5)
        self.SetSizer(sizer)
        self.SetAutoLayout(True)

        # load settings -----------
        #self.LoadSettings()

        self.StartServer(event=None)