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)
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()
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)
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)
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)
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
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
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()
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
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()
def __init__(self): self.FILEDB = system_files.GetDirectories(None).DatabaseLocation()
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()
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),
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)
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()
def __init__(self): self.FILEDB = system_files.GetDirectories(self).DatabaseLocation() self.api_key = options_window.GetSetting('tingsong-api-key', self.FILEDB)
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)
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 = ""
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),
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()
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]
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)
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())
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()
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()
def __init__(self, parent): self.parent = parent self.SETTINGS_LOCATION = system_files.GetDirectories( self).MakeDataDirectory('plugins') + os.sep self.LoadPlugins()
def OnClearCacheClick(self, event): #clear the cache temp_dir = system_files.GetDirectories(self).TempDirectory() file_cache.CheckCache(temp_dir, 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)
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)