Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/blue/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/blue/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/blue/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/blue/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/blue/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/blue/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/blue/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/blue/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/blue/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/blue/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/blue/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/blue/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/chartreuse/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/chartreuse/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/chartreuse/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/chartreuse/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/chartreuse/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/chartreuse/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/chartreuse/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/chartreuse/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/chartreuse/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/chartreuse/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/chartreuse/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/chartreuse/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/cyan/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/cyan/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/cyan/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/cyan/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/cyan/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/cyan/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/cyan/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/cyan/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/cyan/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/cyan/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/cyan/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/cyan/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_grey/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_grey/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_grey/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_grey/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_grey/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_grey/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_grey/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_grey/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_grey/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_grey/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_grey/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_grey/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_purple/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_purple/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_purple/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_purple/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_purple/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_purple/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_purple/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_purple/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_purple/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_purple/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dark_purple/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dark_purple/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/deep_pink/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/deep_pink/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/deep_pink/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/deep_pink/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/deep_pink/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/deep_pink/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/deep_pink/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/deep_pink/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/deep_pink/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/deep_pink/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/deep_pink/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/deep_pink/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dodger_blue/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dodger_blue/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dodger_blue/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dodger_blue/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dodger_blue/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dodger_blue/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dodger_blue/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dodger_blue/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dodger_blue/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dodger_blue/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/dodger_blue/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/dodger_blue/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/gold/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/gold/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/gold/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/gold/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/gold/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/gold/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/gold/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/gold/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/gold/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/gold/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/gold/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/gold/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/green_yellow/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/green_yellow/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/green_yellow/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/green_yellow/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/green_yellow/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/green_yellow/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/green_yellow/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/green_yellow/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/green_yellow/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/green_yellow/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/green_yellow/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/green_yellow/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/orange/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/orange/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/orange/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/orange/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/orange/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/orange/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/orange/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/orange/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/orange/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/orange/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/orange/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/orange/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/purple/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/purple/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/purple/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/purple/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/purple/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/purple/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/purple/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/purple/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/purple/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/purple/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/purple/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/purple/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/red/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/red/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/red/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/red/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/red/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/red/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/red/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/red/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/red/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/red/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/red/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/red/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/list_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/list_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/list_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/list_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/list_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/list_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/order_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/order_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/order_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/order_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/order_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/order_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/random_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/random_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/random_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/random_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/random_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/random_press.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/single_hover.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/single_hover.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/single_normal.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/single_normal.png differ Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/app_theme/yellow/image/playmode/playmode/single_press.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/app_theme/yellow/image/playmode/playmode/single_press.png differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/debian/changelog deepin-music-player-1.3.3/debian/changelog --- deepin-music-player-1.3~raring~NoobsLab.com/debian/changelog 2013-08-12 12:04:04.000000000 +0000 +++ deepin-music-player-1.3.3/debian/changelog 2013-11-24 09:22:24.000000000 +0000 @@ -1,6 +1,749 @@ -deepin-music-player (1.3~raring~NoobsLab.com) raring; urgency=high +deepin-music-player (1.3.3-1~raring~NoobsLab.com) raring; urgency=high - * Build for Ubuntu and it's derivatives + * Added to PPA - -- Umair Riaz Mon, 12 Aug 2013 15:03:58 +0300 + -- Umair Riaz Sun, 24 Nov 2013 11:16:05 +0200 +deepin-music-player (1+git20131122104939~00f61cb069) raring; urgency=low + + * Build from git revision 00f61cb069413af576db9c534620284a75f881e8 + + -- Deepin Packages Builder Fri, 22 Nov 2013 10:49:39 +0800 + +deepin-music-player (1+git20131101091658~059e3aa3b8) raring; urgency=low + + * Build from git revision 059e3aa3b827ca050aff1112b4fb6ea3284697e5 + + -- Deepin Packages Builder Fri, 01 Nov 2013 09:16:58 +0800 + +deepin-music-player (1+git20131031143746~7d46fa92d3) raring; urgency=low + + * Build from git revision 7d46fa92d3fc389ecea25951ffc565d4927c6f93 + + -- Deepin Packages Builder Thu, 31 Oct 2013 14:37:46 +0800 + +deepin-music-player (1+git20131029131716~60b032781d) raring; urgency=low + + * Build from git revision 60b032781d3ef117a918a554082a7001c59fba05 + + -- Deepin Packages Builder Tue, 29 Oct 2013 13:17:16 +0800 + +deepin-music-player (1+git20131029101423~2042cc068c) raring; urgency=low + + * Build from git revision 2042cc068cc0af24fc8b9d004c1fac613bc88943 + + -- Deepin Packages Builder Tue, 29 Oct 2013 10:14:23 +0800 + +deepin-music-player (1+git20131028101406~e6623847cc) raring; urgency=low + + * Build from git revision e6623847ccee18b4aade09947c43396f367b8a1e + + -- Deepin Packages Builder Mon, 28 Oct 2013 10:14:06 +0800 + +deepin-music-player (1+git20131021103607~6ffca780d2) raring; urgency=low + + * Build from git revision 6ffca780d239a67e565c509a14d4ee0a9aead883 + + -- Deepin Packages Builder Mon, 21 Oct 2013 10:36:07 +0800 + +deepin-music-player (1+git20131021100627~6ffca780d2) raring; urgency=low + + * Build from git revision 6ffca780d239a67e565c509a14d4ee0a9aead883 + + -- Deepin Packages Builder Mon, 21 Oct 2013 10:06:27 +0800 + +deepin-music-player (1+git20131018231739~9de3ea7e23) raring; urgency=low + + * Build from git revision 9de3ea7e2300665cd9f6415abca86a65e4559845 + + -- Deepin Packages Builder Fri, 18 Oct 2013 23:17:39 +0800 + +deepin-music-player (1+git20131012135000~9de3ea7e23) raring; urgency=low + + * Build from git revision 9de3ea7e2300665cd9f6415abca86a65e4559845 + + -- Deepin Packages Builder Sat, 12 Oct 2013 13:50:00 +0800 + +deepin-music-player (1+git20131010152237~9de3ea7e23) raring; urgency=low + + * Build from git revision 9de3ea7e2300665cd9f6415abca86a65e4559845 + + -- Deepin Packages Builder Thu, 10 Oct 2013 15:22:37 +0800 + +deepin-music-player (1+git20130927091043~ec163e2cb7) raring; urgency=low + + * Build from git revision ec163e2cb7d4f2caa6d8a9817eb56c67c733f014 + + -- Deepin Packages Builder Fri, 27 Sep 2013 09:10:43 +0800 + +deepin-music-player (1+git20130926132951~00ebb223f4) raring; urgency=low + + * Build from git revision 00ebb223f4fa4142d6bc0918f769ddda37cb17a7 + + -- Deepin Packages Builder Thu, 26 Sep 2013 13:29:51 +0800 + +deepin-music-player (1+git20130912170620~0c3f11fc1c) raring; urgency=low + + * Build from git revision 0c3f11fc1ca6e17d58dda0d8cfb0ea3a00902974 + + -- Deepin Packages Builder Thu, 12 Sep 2013 17:06:20 +0800 + +deepin-music-player (1+git20130905150636~2e923f2a7b) raring; urgency=low + + * Build from git revision 2e923f2a7be1b54eaa4c35ccd15555117ff98151 + + -- Deepin Packages Builder Thu, 05 Sep 2013 15:06:36 +0800 + +deepin-music-player (1+git20130905141726~df3710e8c3) raring; urgency=low + + * Build from git revision df3710e8c3b57827fc038006f468e6f60099f805 + + -- Deepin Packages Builder Thu, 05 Sep 2013 14:17:26 +0800 + +deepin-music-player (1+git20130905135144~5804aef957) raring; urgency=low + + * Build from git revision 5804aef957b77039b48ee0758f57650fdf764988 + + -- Deepin Packages Builder Thu, 05 Sep 2013 13:51:44 +0800 + +deepin-music-player (1+git20130829152007~af804cf1d1) raring; urgency=low + + * Build from git revision af804cf1d13ef874a8c5620b44f1978f329fe98f + + -- Deepin Packages Builder Thu, 29 Aug 2013 15:20:08 +0800 + +deepin-music-player (1+git20130823103855~aa72272893) raring; urgency=low + + * Build from git revision aa72272893204f16e3f09f5da9decc6781643710 + + -- Deepin Packages Builder Fri, 23 Aug 2013 10:38:55 +0800 + +deepin-music-player (1+git20130822143815~7559a3aa29) raring; urgency=low + + * Build from git revision 7559a3aa2935901d613ab97874d961491a0568b6 + + -- Deepin Packages Builder Thu, 22 Aug 2013 14:38:16 +0800 + +deepin-music-player (1+git20130822120704~7559a3aa29) raring; urgency=low + + * Build from git revision 7559a3aa2935901d613ab97874d961491a0568b6 + + -- Deepin Packages Builder Thu, 22 Aug 2013 12:07:04 +0800 + +deepin-music-player (1+git20130822120523~7559a3aa29) raring; urgency=low + + * Build from git revision 7559a3aa2935901d613ab97874d961491a0568b6 + + -- Deepin Packages Builder Thu, 22 Aug 2013 12:05:23 +0800 + +deepin-music-player (1+git20130822120249~7559a3aa29) raring; urgency=low + + * Build from git revision 7559a3aa2935901d613ab97874d961491a0568b6 + + -- Deepin Packages Builder Thu, 22 Aug 2013 12:02:49 +0800 + +deepin-music-player (1+git20130816154917~5b05315797) raring; urgency=low + + * Build from git revision 5b05315797ab1aee603e52465bf80a61fba19171 + + -- Deepin Packages Builder Fri, 16 Aug 2013 15:49:17 +0800 + +deepin-music-player (1+git20130816113054~ada115f2f6) raring; urgency=low + + * Build from git revision ada115f2f686c8b367ef1484a190d46c0f8451a0 + + -- Deepin Packages Builder Fri, 16 Aug 2013 11:30:54 +0800 + +deepin-music-player (1+git20130816102218~ada115f2f6) raring; urgency=low + + * Build from git revision ada115f2f686c8b367ef1484a190d46c0f8451a0 + + -- Deepin Packages Builder Fri, 16 Aug 2013 10:22:18 +0800 + +deepin-music-player (1+git20130722092605~d4c39e4ac7) raring; urgency=low + + * Build from git revision d4c39e4ac74f8f1bdd9fc6ac15d112fef920eeac + + -- Deepin Packages Builder Mon, 22 Jul 2013 09:26:05 +0800 + +deepin-music-player (1+git20130718113156~db51357f0c) raring; urgency=low + + * Build from git revision db51357f0c9a23a85222f8b139d93c3caade3203 + + -- Deepin Packages Builder Thu, 18 Jul 2013 11:31:56 +0800 + +deepin-music-player (1+git20130718084957~db51357f0c) raring; urgency=low + + * Build from git revision db51357f0c9a23a85222f8b139d93c3caade3203 + + -- Deepin Packages Builder Thu, 18 Jul 2013 08:49:58 +0800 + +deepin-music-player (1+git20130717152700~79c4cce1b6) raring; urgency=low + + * Build from git revision 79c4cce1b6e90b44fa46ee3a9cbc84631decbf24 + + -- Deepin Testing Packages Wed, 17 Jul 2013 15:27:00 +0800 + +deepin-music-player (1+git20130701093805~7efe2488a6) raring; urgency=low + + * Build from git revision 7efe2488a6ce4150002c755b10ea84850788ace9 + + -- Deepin Testing Packages Mon, 01 Jul 2013 09:38:06 +0800 + +deepin-music-player (1+git20130614104136~86b4f5bc3f) raring; urgency=low + + * Build from git revision 86b4f5bc3fed26086d31945a3e96c34e664b800e + + -- Deepin Testing Packages Fri, 14 Jun 2013 10:41:36 +0800 + +deepin-music-player (1+git20130609091613~969fff4425) raring; urgency=low + + * Build from git revision 969fff44253ac4a5279657b19ade4a764125a913 + + -- Deepin Testing Packages Sun, 09 Jun 2013 09:16:14 +0800 + +deepin-music-player (1+git20130608102817~6f1ff1e9ed) raring; urgency=low + + * Build from git revision 6f1ff1e9ed8418c7d0ad999cb6ad14302eafa212 + + -- Deepin Testing Packages Sat, 08 Jun 2013 10:28:17 +0800 + +deepin-music-player (1+git20130607215632~18dffbc669) raring; urgency=low + + * Build from git revision 18dffbc669aae4db860d2d9ad0da1c894f852bbf + + -- Deepin Testing Packages Fri, 07 Jun 2013 21:56:32 +0800 + +deepin-music-player (1+git20130606162130~caafca5850) raring; urgency=low + + * Build from git revision caafca585059395c0cb8acaff6d26c50c3c1dc24 + + -- Deepin Testing Packages Thu, 06 Jun 2013 16:21:30 +0800 + +deepin-music-player (1+git20130605165410~6ec19204d9) raring; urgency=low + + * Build from git revision 6ec19204d9ae45fdbe874eebe88cd9688753a15e + + -- Deepin Testing Packages Wed, 05 Jun 2013 16:54:10 +0800 + +deepin-music-player (1+git20130605084517~6ec19204d9) raring; urgency=low + + * Build from git revision 6ec19204d9ae45fdbe874eebe88cd9688753a15e + + -- Deepin Testing Packages Wed, 05 Jun 2013 08:45:17 +0800 + +deepin-music-player (1+git20130604091419~c489715e8b) raring; urgency=low + + * Build from git revision c489715e8bfdc7e09e740204bc5f374d36cba435 + + -- Deepin Testing Packages Tue, 04 Jun 2013 09:14:19 +0800 + +deepin-music-player (1+git20130604085846~c489715e8b) raring; urgency=low + + * Build from git revision c489715e8bfdc7e09e740204bc5f374d36cba435 + + -- Deepin Testing Packages Tue, 04 Jun 2013 08:58:46 +0800 + +deepin-music-player (1+git20130529170130) raring; urgency=low + + * Build from git revision 46bf7231cff7b443561601ec02134228fd3f13c3 + + -- Deepin Testing Packages Wed, 29 May 2013 17:01:30 +0800 + +deepin-music-player (1+git20130517015808) raring; urgency=low + + * Upstreamer update + + -- Deepin Testing Packages Fri, 17 May 2013 01:58:08 +0800 + +deepin-music-player (1+git20130508172131) raring; urgency=low + + * Upstreamer update + + -- Deepin Testing Packages Wed, 08 May 2013 17:21:31 +0800 + +deepin-music-player (1+git20130506133640) raring; urgency=low + + * Upstreamer update + + -- Deepin Testing Packages Mon, 06 May 2013 13:36:40 +0800 + +deepin-music-player (1+git20130506095425) raring; urgency=low + + [ Yueqian Zhang ] + * Upstreamer update + + [ Deepin Testing Packages ] + * Just build for raring + + -- Deepin Testing Packages Mon, 06 May 2013 13:31:00 +0800 + +deepin-music-player (1+git20130506091736) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Mon, 06 May 2013 09:17:36 +0800 + +deepin-music-player (1+git20130428172523) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Sun, 28 Apr 2013 17:25:23 +0800 + +deepin-music-player (1+git20130428101356) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Sun, 28 Apr 2013 10:13:56 +0800 + +deepin-music-player (1+git20130425140004) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Thu, 25 Apr 2013 14:00:04 +0800 + +deepin-music-player (1+git20130424142235) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Wed, 24 Apr 2013 14:22:35 +0800 + +deepin-music-player (1+git20130423144914) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 23 Apr 2013 14:49:15 +0800 + +deepin-music-player (1+git20130422181439) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Mon, 22 Apr 2013 18:14:39 +0800 + +deepin-music-player (1+git20130422114254) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Mon, 22 Apr 2013 11:42:55 +0800 + +deepin-music-player (1+git20130419165110) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Fri, 19 Apr 2013 16:51:10 +0800 + +deepin-music-player (1+git20130418131404) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Thu, 18 Apr 2013 13:14:04 +0800 + +deepin-music-player (1+git20130416171210) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 16 Apr 2013 17:12:10 +0800 + +deepin-music-player (1+git20130412095038) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Fri, 12 Apr 2013 09:50:39 +0800 + +deepin-music-player (1+git20130411184010) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Thu, 11 Apr 2013 18:40:10 +0800 + +deepin-music-player (1+git20130411151258) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Thu, 11 Apr 2013 15:12:58 +0800 + +deepin-music-player (1+git20130410150435) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Wed, 10 Apr 2013 15:04:36 +0800 + +deepin-music-player (1+git20130409170326) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 09 Apr 2013 17:03:27 +0800 + +deepin-music-player (1+git20130409104207) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 09 Apr 2013 10:42:07 +0800 + +deepin-music-player (1+git20130330191613) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Sat, 30 Mar 2013 19:16:13 +0800 + +deepin-music-player (1+git20130329102108) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Fri, 29 Mar 2013 10:21:08 +0800 + +deepin-music-player (1+git20130326174209) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 26 Mar 2013 17:42:10 +0800 + +deepin-music-player (1+git20130326165522) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 26 Mar 2013 16:55:22 +0800 + +deepin-music-player (1+git20130326143236) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 26 Mar 2013 14:32:36 +0800 + +deepin-music-player (1+git20130325105306) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Mon, 25 Mar 2013 10:53:07 +0800 + +deepin-music-player (1+git20130318151659) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Mon, 18 Mar 2013 15:16:59 +0800 + +deepin-music-player (1+git20130318115748) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Mon, 18 Mar 2013 11:57:49 +0800 + +deepin-music-player (1+git20130314111315) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Thu, 14 Mar 2013 11:13:15 +0800 + +deepin-music-player (1+git20130314095612) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Thu, 14 Mar 2013 09:56:13 +0800 + +deepin-music-player (1+git20130226092346) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 26 Feb 2013 09:23:46 +0800 + +deepin-music-player (1+git20130226092326) raring; urgency=low + + * Upstreamer update + + -- Yueqian Zhang Tue, 26 Feb 2013 09:23:26 +0800 + +deepin-music-player (1+git20130125175219) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Fri, 25 Jan 2013 17:52:19 +0800 + +deepin-music-player (1+git20130125162728) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Fri, 25 Jan 2013 16:27:29 +0800 + +deepin-music-player (1+git20130124173615) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Thu, 24 Jan 2013 17:36:15 +0800 + +deepin-music-player (1+git20130122113417) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Tue, 22 Jan 2013 11:34:17 +0800 + +deepin-music-player (1+git20130115090044) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Tue, 15 Jan 2013 09:00:45 +0800 + +deepin-music-player (1+git20130104090055) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Fri, 04 Jan 2013 09:00:55 +0800 + +deepin-music-player (1+git20121224100618) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Mon, 24 Dec 2012 10:06:18 +0800 + +deepin-music-player (1+git20121221153546) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Fri, 21 Dec 2012 15:35:46 +0800 + +deepin-music-player (1+git20121220105249) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Thu, 20 Dec 2012 10:52:49 +0800 + +deepin-music-player (1+git20121220085506) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Thu, 20 Dec 2012 08:55:06 +0800 + +deepin-music-player (1+git20121219173311) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Wed, 19 Dec 2012 17:33:12 +0800 + +deepin-music-player (1+git20121219092324) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Wed, 19 Dec 2012 09:23:24 +0800 + +deepin-music-player (1+git20121218085134) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Tue, 18 Dec 2012 08:51:34 +0800 + +deepin-music-player (1+git20121217085613) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Mon, 17 Dec 2012 08:56:13 +0800 + +deepin-music-player (1+git20121213092425) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Thu, 13 Dec 2012 09:24:25 +0800 + +deepin-music-player (1+git20121213090918) raring; urgency=low + + * add postinst to auto generate and update po & mo files + + -- Li Longyu (Ai Kotoba) Thu, 13 Dec 2012 09:10:07 +0800 + +deepin-music-player (1+git20121213090917) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Thu, 13 Dec 2012 09:09:18 +0800 + +deepin-music-player (1+git20121211085749) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Tue, 11 Dec 2012 08:57:49 +0800 + +deepin-music-player (1+git20121209151118) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Sun, 09 Dec 2012 15:11:18 +0800 + +deepin-music-player (1+git20121207181614) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Fri, 07 Dec 2012 18:16:15 +0800 + +deepin-music-player (1+git20121207085229) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Fri, 07 Dec 2012 08:52:29 +0800 + +deepin-music-player (1+git20121206110818) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Thu, 06 Dec 2012 11:08:19 +0800 + +deepin-music-player (1+git20121206085048) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Thu, 06 Dec 2012 08:50:48 +0800 + +deepin-music-player (1+git20121205085803) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Wed, 05 Dec 2012 08:58:03 +0800 + +deepin-music-player (1+git20121204145422) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Tue, 04 Dec 2012 14:54:22 +0800 + +deepin-music-player (1+git20121204090308) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Tue, 04 Dec 2012 09:03:09 +0800 + +deepin-music-player (1+git20121203175108) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Mon, 03 Dec 2012 17:51:08 +0800 + +deepin-music-player (1+git20121203154638) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Mon, 03 Dec 2012 15:46:38 +0800 + +deepin-music-player (1+git20121203154246) raring; urgency=low + + * Upstreamer update + + -- Li Longyu (Ai Kotoba) Mon, 03 Dec 2012 15:42:46 +0800 + +deepin-music-player (1+git201209111106) raring; urgency=low + + * fix i18n + + -- Yueqian Zhang Tue, 11 Sep 2012 16:05:05 +0800 + +deepin-music-player (1+git201209111105) raring; urgency=low + + * new upstream update. + + -- Yueqian Zhang Tue, 11 Sep 2012 11:04:48 +0800 + +deepin-music-player (1+git201209101336) raring; urgency=low + + * update deepin-ui dependency. + + -- Yueqian Zhang Mon, 10 Sep 2012 13:39:13 +0800 + +deepin-music-player (1+git201209071753) raring; urgency=low + + * new upstream update. + + -- Yueqian Zhang Fri, 07 Sep 2012 17:53:37 +0800 + +deepin-music-player (1+git201207161003) raring; urgency=low + + * Non-maintainer upload. + * fix translation. + + -- Yueqian Zhang Mon, 16 Jul 2012 10:03:14 +0800 + +deepin-music-player (1+git201207131728) raring; urgency=low + + * Upstream updates. + + -- Li Longyu Fri, 13 Jul 2012 17:29:31 +0800 + +deepin-music-player (1+git201207122326) raring; urgency=low + + * fix translation filename. + + -- Yueqian Zhang Thu, 12 Jul 2012 23:26:16 +0800 + +deepin-music-player (1+git201207122315) raring; urgency=low + + * Upstream updates. + + -- Yueqian Zhang Thu, 12 Jul 2012 23:13:13 +0800 + +deepin-music-player (1+git201207122254) raring; urgency=low + + * add translation. fix last version. + + -- Yueqian Zhang Thu, 12 Jul 2012 22:54:10 +0800 + +deepin-music-player (1+git201207122053) raring; urgency=low + + * add translation. + + -- Yueqian Zhang Thu, 12 Jul 2012 20:51:04 +0800 + +deepin-music-player (1+git201207121954) raring; urgency=low + + * Upstream updates. + * 1.0 beta. + + -- Yueqian Zhang Thu, 12 Jul 2012 19:52:55 +0800 + +deepin-music-player (1+git201207111907) raring; urgency=low + + * Nearly release version 1.0. + + -- Li Longyu Wed, 11 Jul 2012 19:08:14 +0800 + +deepin-music-player (1+git2012062119) raring; urgency=low + + * Upstream updates. + + -- Li Longyu Thu, 21 Jun 2012 19:41:05 +0800 + +deepin-music-player (1+git20120621-1) raring; urgency=low + + * Upstream updates. + + -- Li Longyu Thu, 21 Jun 2012 15:25:58 +0800 + +deepin-music-player (1+git20120606-1) raring; urgency=low + + * fix some bugs + + -- Li Longyu Tue, 05 Jun 2012 20:44:26 +0800 + +deepin-music-player (1+git20120605-1) raring; urgency=low + + * Release for Linuxdeepin 12.06 beta2 + + -- Li Longyu Tue, 05 Jun 2012 16:29:00 +0800 + +deepin-music-player (1+git20120508-1) raring; urgency=low + + * add cover item. + + -- Li Longyu Tue, 08 May 2012 14:44:36 +0800 + +deepin-music-player (1+git20120503-1) raring; urgency=low + + * upstreamer update. + + -- Li Longyu Thu, 03 May 2012 16:19:32 +0800 + +deepin-music-player (1+git20120502-1) oneiric; urgency=low + + * modifed baidu ting demo + + -- Li Longyu Wed, 02 May 2012 13:03:33 +0800 + +deepin-music-player (1+gitba975743bfbd-1) unstable; urgency=low + + * New xiami demo + + -- Li Longyu Fri, 20 Apr 2012 12:32:59 +0800 diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/debian/control deepin-music-player-1.3.3/debian/control --- deepin-music-player-1.3~raring~NoobsLab.com/debian/control 2013-08-12 12:03:30.000000000 +0000 +++ deepin-music-player-1.3.3/debian/control 2013-11-24 09:15:31.000000000 +0000 @@ -2,10 +2,10 @@ Section: sound Priority: extra Maintainer: Li Longyu -Uploader: Umair Riaz +Uploaders: Umair Riaz Build-Depends: debhelper (>= 8.0.0), python Standards-Version: 3.9.3 -Homepage: http://www.NoobsLab.com/ +Homepage: http://www.noobslab.com/ Package: deepin-music-player Architecture: all @@ -15,5 +15,5 @@ Deepin-UI based, gstreamer front-end, with features likes search music by pinyin,quanpin, colorful lyrics supports, and more powerfull functions you will found. - http://www.linuxdeepin.com/ + . Just enjoy it! have fun! diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/debian/copyright deepin-music-player-1.3.3/debian/copyright --- deepin-music-player-1.3~raring~NoobsLab.com/debian/copyright 2013-08-08 11:10:22.000000000 +0000 +++ deepin-music-player-1.3.3/debian/copyright 2013-10-27 07:23:29.000000000 +0000 @@ -2,8 +2,6 @@ Upstream-Name: deepin-music-player Source: http://www.linuxdeepin.com -This package was debianized by Umair Riaz - http://www.NoobsLab.com - Files: * Copyright: 2012 huoshaohui@linudeepin.com 2011-2012 wangyong@linuxdeepin.com @@ -27,6 +25,3 @@ . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". - -# Please also look if there are files or directories which have a -# different copyright/license attached and list them here. diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/debian/deepin-music-player.desktop deepin-music-player-1.3.3/debian/deepin-music-player.desktop --- deepin-music-player-1.3~raring~NoobsLab.com/debian/deepin-music-player.desktop 2013-08-09 15:09:44.000000000 +0000 +++ deepin-music-player-1.3.3/debian/deepin-music-player.desktop 2013-06-05 08:50:36.000000000 +0000 @@ -8,7 +8,6 @@ GenericName=Music Player Exec=deepin-music-player %F Icon=deepin-music-player -Icon=/usr/share/icons/hicolor/48x48/apps/deepin-music-player.png Type=Application Categories=AudioVideo;Player;GTK; StartupNotify=true diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/debian/install deepin-music-player-1.3.3/debian/install --- deepin-music-player-1.3~raring~NoobsLab.com/debian/install 2013-05-06 16:29:35.000000000 +0000 +++ deepin-music-player-1.3.3/debian/install 2013-10-18 15:14:58.000000000 +0000 @@ -1,5 +1,5 @@ -debian/deepin-music-player.desktop /usr/share/applications/ -debian/deepin-music-player.png /usr/share/icons/hicolor/48x48/apps/ +deepin-music-player.desktop /usr/share/applications/ +debian/deepin-music-player.png /usr/share/icons/hicolor/128x128/apps/ app_theme /usr/share/deepin-music-player image /usr/share/deepin-music-player skin /usr/share/deepin-music-player diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/deepin-music-player.desktop deepin-music-player-1.3.3/deepin-music-player.desktop --- deepin-music-player-1.3~raring~NoobsLab.com/deepin-music-player.desktop 2013-08-09 15:10:00.000000000 +0000 +++ deepin-music-player-1.3.3/deepin-music-player.desktop 2013-11-22 02:49:38.000000000 +0000 @@ -1,12 +1,31 @@ [Desktop Entry] -Name=Deepin Music +Name=DMusic Name[zh_CN]=深度音乐 +Name[zh_TW]=深度音樂 Comment=Play your music collection Comment[zh_CN]=为您播放本地及网络音频流 +Comment[zh_TW]=爲您播放本地及網絡音頻流 GenericName=Music Player Exec=deepin-music-player %F Icon=deepin-music-player -Icon=/usr/share/icons/hicolor/48x48/apps/deepin-music-player.png Type=Application Categories=AudioVideo;Player;GTK; MimeType=audio/musepack;application/musepack;application/x-ape;audio/ape;audio/x-ape;audio/x-musepack;application/x-musepack;audio/x-mp3;application/x-id3;audio/mpeg;audio/x-mpeg;audio/x-mpeg-3;audio/mpeg3;audio/mp3;audio/x-m4a;audio/mpc;audio/x-mpc;audio/mp;audio/x-mp;application/ogg;application/x-ogg;audio/vorbis;audio/x-vorbis;audio/ogg;audio/x-ogg;audio/x-flac;application/x-flac;audio/flac; + +[Previous Shortcut Group] +Name=Previous track +Name[zh_CN]=上一首 +Name[zh_TW]=上一首 +Exec=deepin-music-player -p + +[Next Shortcut Group] +Name=Next track +Name[zh_CN]=下一首 +Name[zh_TW]=下一首 +Exec=deepin-music-player -n + +[PlayPause Shortcut Group] +Name=Play/Pause track +Name[zh_CN]=暂停/继续 +Name[zh_TW]=暫停/繼續 +Exec=deepin-music-player -t diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/locale/deepin-music-player.pot deepin-music-player-1.3.3/locale/deepin-music-player.pot --- deepin-music-player-1.3~raring~NoobsLab.com/locale/deepin-music-player.pot 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/locale/deepin-music-player.pot 2013-09-26 05:29:51.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-13 18:30+0800\n" +"POT-Creation-Date: 2013-09-26 11:30+0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -57,124 +57,124 @@ msgid "Unknown" msgstr "" -#: ../src/main.py:94 +#: ../src/main.py:103 msgid "Usage: deepin-music-player [OPTION]... [URI]" msgstr "" -#: ../src/main.py:95 +#: ../src/main.py:104 msgid "Options" msgstr "" -#: ../src/main.py:99 +#: ../src/main.py:108 msgid "Control Options" msgstr "" -#: ../src/main.py:101 +#: ../src/main.py:110 msgid "Play the next track" msgstr "" -#: ../src/main.py:103 +#: ../src/main.py:112 msgid "Play the previous track" msgstr "" -#: ../src/main.py:105 +#: ../src/main.py:114 msgid "Pause or resume playback" msgstr "" -#: ../src/main.py:107 +#: ../src/main.py:116 msgid "Seek Forward" msgstr "" -#: ../src/main.py:109 +#: ../src/main.py:118 msgid "Seek Backward" msgstr "" -#: ../src/main.py:111 +#: ../src/main.py:120 msgid "Stop playback" msgstr "" -#: ../src/main.py:115 +#: ../src/main.py:124 msgid "Volume Options" msgstr "" -#: ../src/main.py:117 +#: ../src/main.py:126 msgid "Change Volume (VOLUME 0.0-1.0)" msgstr "" -#: ../src/main.py:120 +#: ../src/main.py:129 msgid "Track information Options" msgstr "" -#: ../src/main.py:122 +#: ../src/main.py:131 msgid "Print the title of current track" msgstr "" -#: ../src/main.py:124 +#: ../src/main.py:133 msgid "Print the album of current track" msgstr "" -#: ../src/main.py:126 +#: ../src/main.py:135 msgid "Print the artist of current track" msgstr "" -#: ../src/main.py:128 +#: ../src/main.py:137 msgid "Print the length of current track" msgstr "" -#: ../src/main.py:130 +#: ../src/main.py:139 msgid "Print the path of current track" msgstr "" -#: ../src/main.py:132 +#: ../src/main.py:141 msgid "Print current playback position" msgstr "" -#: ../src/main.py:135 +#: ../src/main.py:144 msgid "Other Options" msgstr "" -#: ../src/main.py:137 +#: ../src/main.py:146 msgid "Show this help message and exit" msgstr "" -#: ../src/main.py:139 +#: ../src/main.py:148 msgid "Start new instance" msgstr "" -#: ../src/main.py:141 +#: ../src/main.py:150 msgid "Show program's version number and exit." msgstr "" -#: ../src/main.py:143 +#: ../src/main.py:152 msgid "Start minimized" msgstr "" -#: ../src/main.py:146 +#: ../src/main.py:155 msgid "Toggle visibility of the GUI (if possible)" msgstr "" -#: ../src/main.py:149 +#: ../src/main.py:158 msgid "Make control options like --play start program if it is not running" msgstr "" -#: ../src/main.py:152 +#: ../src/main.py:161 msgid "Development/Debug Options" msgstr "" -#: ../src/main.py:153 +#: ../src/main.py:162 msgid "Change debug level (0-9)" msgstr "" -#: ../src/main.py:157 +#: ../src/main.py:166 msgid "Show information about supported audio file" msgstr "" -#: ../src/main.py:163 ../src/widget/global_keys.py:95 +#: ../src/main.py:172 ../src/widget/global_keys.py:95 #: ../src/widget/information.py:40 ../src/widget/information.py:82 -#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:748 -#: ../src/widget/preference.py:568 ../src/widget/preference.py:578 -#: ../src/widget/preference.py:889 ../src/widget/instance.py:92 -#: ../src/widget/dummy_lyrics.py:208 ../src/widget/tray.py:156 +#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:749 +#: ../src/widget/preference.py:579 ../src/widget/preference.py:589 +#: ../src/widget/preference.py:900 ../src/widget/instance.py:92 +#: ../src/widget/tray.py:156 msgid "DMusic" msgstr "" @@ -220,18 +220,18 @@ msgstr "" #: ../src/widget/song_editor.py:72 ../src/widget/song_editor.py:202 -#: ../src/widget/song_view.py:649 ../src/widget/lyrics_search.py:82 +#: ../src/widget/song_view.py:680 ../src/widget/lyrics_search.py:83 msgid "Title" msgstr "" #: ../src/widget/song_editor.py:73 ../src/widget/song_editor.py:203 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:85 -#: ../src/widget/lyrics_search.py:82 ../plugins/notify/__init__.py:43 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:85 +#: ../src/widget/lyrics_search.py:83 ../plugins/notify/__init__.py:43 msgid "Artist" msgstr "" #: ../src/widget/song_editor.py:74 ../src/widget/song_editor.py:204 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:87 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:87 #: ../plugins/notify/__init__.py:45 msgid "Album" msgstr "" @@ -240,12 +240,12 @@ msgid "Type" msgstr "" -#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:421 +#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:433 msgid "Format" msgstr "" -#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:675 -#: ../src/widget/preference.py:828 ../src/widget/song_notify.py:193 +#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:686 +#: ../src/widget/preference.py:839 ../src/widget/song_notify.py:193 msgid "Size" msgstr "" @@ -281,8 +281,8 @@ msgid "Location" msgstr "" -#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:355 -#: ../src/widget/playlist.py:517 ../src/widget/lyrics_module.py:218 +#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:367 +#: ../src/widget/playlist.py:560 ../src/widget/lyrics_module.py:240 msgid "Open directory" msgstr "" @@ -295,53 +295,57 @@ msgid "Save" msgstr "" -#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:463 +#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:475 #: ../src/widget/preference.py:252 msgid "Change" msgstr "" -#: ../src/widget/song_editor.py:298 ../src/widget/equalizer.py:252 +#: ../src/widget/song_editor.py:299 +msgid "Retrieve from the Internet" +msgstr "" + +#: ../src/widget/song_editor.py:302 ../src/widget/equalizer.py:252 #: ../src/widget/preference.py:375 msgid "Reset" msgstr "" -#: ../src/widget/song_editor.py:316 ../src/widget/local_browser.py:344 +#: ../src/widget/song_editor.py:321 ../src/widget/local_browser.py:343 msgid "Select image" msgstr "" -#: ../src/widget/song_editor.py:326 ../src/widget/song_view.py:762 -#: ../src/widget/playlist.py:518 +#: ../src/widget/song_editor.py:335 ../src/widget/song_view.py:793 +#: ../src/widget/playlist.py:561 msgid "Properties" msgstr "" -#: ../src/widget/song_editor.py:329 ../src/widget/equalizer.py:250 -#: ../src/widget/ui.py:1142 ../src/widget/converter.py:382 -#: ../src/widget/converter.py:437 ../src/widget/preference.py:934 -#: ../src/widget/lyrics_search.py:88 +#: ../src/widget/song_editor.py:338 ../src/widget/equalizer.py:250 +#: ../src/widget/ui.py:1248 ../src/widget/converter.py:394 +#: ../src/widget/converter.py:449 ../src/widget/preference.py:945 +#: ../src/widget/lyrics_search.py:89 msgid "Close" msgstr "" -#: ../src/widget/song_editor.py:332 ../src/widget/headerbar.py:70 -#: ../src/widget/preference.py:369 ../src/widget/instance.py:328 +#: ../src/widget/song_editor.py:341 ../src/widget/headerbar.py:72 +#: ../src/widget/preference.py:369 ../src/widget/instance.py:329 #: ../src/widget/tray.py:63 msgid "Previous" msgstr "" -#: ../src/widget/song_editor.py:334 ../src/widget/headerbar.py:71 -#: ../src/widget/preference.py:370 ../src/widget/instance.py:329 +#: ../src/widget/song_editor.py:343 ../src/widget/headerbar.py:73 +#: ../src/widget/preference.py:370 ../src/widget/instance.py:330 #: ../src/widget/tray.py:64 msgid "Next" msgstr "" -#: ../src/widget/song_editor.py:358 +#: ../src/widget/song_editor.py:367 msgid "Track Infomation" msgstr "" -#: ../src/widget/song_editor.py:359 +#: ../src/widget/song_editor.py:368 msgid "Edit tags" msgstr "" -#: ../src/widget/song_editor.py:360 +#: ../src/widget/song_editor.py:369 msgid "Edit cover" msgstr "" @@ -417,7 +421,7 @@ msgid "Techno" msgstr "" -#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:360 +#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:362 msgid "Equalizer" msgstr "" @@ -447,21 +451,21 @@ msgstr "" #: ../src/widget/webcast_view.py:114 ../src/widget/webcast_view.py:120 -#: ../src/widget/playlist.py:86 ../plugins/musicfm/radio_view.py:129 -#: ../plugins/musicfm/radio_view.py:135 +#: ../src/widget/playlist.py:103 ../plugins/musicfm/radio_view.py:134 +#: ../plugins/musicfm/radio_view.py:140 msgid "Delete" msgstr "" #: ../src/widget/webcast_view.py:115 ../src/widget/webcast_view.py:123 -#: ../src/widget/playlist.py:512 ../plugins/musicfm/radio_view.py:130 -#: ../plugins/musicfm/radio_view.py:136 +#: ../src/widget/playlist.py:555 ../plugins/musicfm/radio_view.py:135 +#: ../plugins/musicfm/radio_view.py:141 msgid "Clear List" msgstr "" #: ../src/widget/webcast_view.py:119 ../src/widget/webcast_view.py:338 -#: ../src/widget/instance.py:319 ../src/widget/song_view.py:754 -#: ../src/widget/playlist.py:506 ../src/widget/tray.py:58 -#: ../plugins/musicfm/radio_view.py:134 +#: ../src/widget/instance.py:320 ../src/widget/song_view.py:785 +#: ../src/widget/playlist.py:549 ../src/widget/tray.py:58 +#: ../plugins/musicfm/radio_view.py:139 msgid "Play" msgstr "" @@ -474,7 +478,7 @@ msgstr "" #: ../src/widget/webcast_view.py:333 ../src/widget/webcast_view.py:339 -#: ../src/widget/song_view.py:755 +#: ../src/widget/song_view.py:786 msgid "Add to Playlist" msgstr "" @@ -483,140 +487,140 @@ msgid "Radio" msgstr "" -#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:786 +#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:817 #: ../src/widget/local_tab.py:28 msgid "Library" msgstr "" -#: ../src/widget/lyrics.py:733 +#: ../src/widget/lyrics.py:734 msgid "Lyrics window" msgstr "" -#: ../src/widget/ui.py:201 +#: ../src/widget/ui.py:203 msgid "Need some music? Find it here..." msgstr "" -#: ../src/widget/ui.py:399 +#: ../src/widget/ui.py:401 msgid "Add Music" msgstr "" -#: ../src/widget/ui.py:1012 +#: ../src/widget/ui.py:1118 msgid "Your search {keyword} did not match any items in {from}" msgstr "" -#: ../src/widget/ui.py:1013 +#: ../src/widget/ui.py:1119 msgid "Suggestions" msgstr "" -#: ../src/widget/ui.py:1014 +#: ../src/widget/ui.py:1120 msgid "Make sure all words are spelled correctly." msgstr "" -#: ../src/widget/ui.py:1015 +#: ../src/widget/ui.py:1121 msgid "" "Try more general keywords, such as a title, an artist or the name of an " "album." msgstr "" -#: ../src/widget/ui.py:1112 ../src/widget/plugins_view.py:163 +#: ../src/widget/ui.py:1218 ../src/widget/plugins_view.py:166 msgid "Add-on" msgstr "" -#: ../src/widget/ui.py:1120 +#: ../src/widget/ui.py:1226 msgid "Author(s)" msgstr "" -#: ../src/widget/ui.py:1150 ../src/widget/preference.py:195 +#: ../src/widget/ui.py:1256 ../src/widget/preference.py:195 msgid "Minimize to tray" msgstr "" -#: ../src/widget/ui.py:1152 ../src/widget/preference.py:196 -#: ../src/widget/instance.py:371 ../src/widget/tray.py:83 +#: ../src/widget/ui.py:1258 ../src/widget/preference.py:196 +#: ../src/widget/instance.py:373 ../src/widget/tray.py:83 msgid "Quit" msgstr "" -#: ../src/widget/ui.py:1156 +#: ../src/widget/ui.py:1262 msgid "Don't prompt again" msgstr "" -#: ../src/widget/ui.py:1163 +#: ../src/widget/ui.py:1269 msgid "OK" msgstr "" -#: ../src/widget/ui.py:1166 +#: ../src/widget/ui.py:1272 msgid "Cancel" msgstr "" -#: ../src/widget/headerbar.py:62 ../src/widget/preference.py:368 +#: ../src/widget/headerbar.py:64 ../src/widget/preference.py:368 msgid "Play/Pause" msgstr "" -#: ../src/widget/headerbar.py:76 +#: ../src/widget/headerbar.py:78 msgid "Show/Hide Lyrics" msgstr "" -#: ../src/widget/converter.py:297 ../src/widget/song_view.py:406 -#: ../src/widget/song_view.py:749 ../src/widget/local_browser.py:340 +#: ../src/widget/converter.py:309 ../src/widget/song_view.py:437 +#: ../src/widget/song_view.py:780 ../src/widget/local_browser.py:339 msgid "Prompt" msgstr "" -#: ../src/widget/converter.py:297 +#: ../src/widget/converter.py:309 msgid "Target file already exitsts, do you want to overwrite it?" msgstr "" -#: ../src/widget/converter.py:357 +#: ../src/widget/converter.py:369 msgid "Delete task" msgstr "" -#: ../src/widget/converter.py:358 +#: ../src/widget/converter.py:370 msgid "Clear finished tasks" msgstr "" -#: ../src/widget/converter.py:364 ../src/widget/instance.py:340 +#: ../src/widget/converter.py:376 ../src/widget/instance.py:341 msgid "Task Manager" msgstr "" -#: ../src/widget/converter.py:380 ../src/widget/converter.py:400 -#: ../src/widget/converter.py:403 ../src/widget/instance.py:322 +#: ../src/widget/converter.py:392 ../src/widget/converter.py:412 +#: ../src/widget/converter.py:415 ../src/widget/instance.py:323 #: ../src/widget/tray.py:61 msgid "Pause" msgstr "" -#: ../src/widget/converter.py:401 +#: ../src/widget/converter.py:413 msgid "Continue" msgstr "" -#: ../src/widget/converter.py:415 ../src/widget/instance.py:339 -#: ../src/widget/instance.py:361 ../src/widget/song_view.py:761 -#: ../src/widget/playlist.py:516 +#: ../src/widget/converter.py:427 ../src/widget/instance.py:340 +#: ../src/widget/instance.py:363 ../src/widget/song_view.py:792 +#: ../src/widget/playlist.py:559 msgid "Convert" msgstr "" -#: ../src/widget/converter.py:424 +#: ../src/widget/converter.py:436 msgid "Quality" msgstr "" -#: ../src/widget/converter.py:432 +#: ../src/widget/converter.py:444 msgid "Target file already exists" msgstr "" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Ask" msgstr "" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Cover" msgstr "" -#: ../src/widget/converter.py:436 +#: ../src/widget/converter.py:448 msgid "Start" msgstr "" -#: ../src/widget/converter.py:438 +#: ../src/widget/converter.py:450 msgid "Add to Playlist when finished" msgstr "" -#: ../src/widget/converter.py:460 +#: ../src/widget/converter.py:472 msgid "Output" msgstr "" @@ -668,7 +672,7 @@ msgid "Lyrics directory" msgstr "" -#: ../src/widget/preference.py:346 ../src/widget/preference.py:986 +#: ../src/widget/preference.py:346 ../src/widget/preference.py:997 msgid "Hotkeys" msgstr "" @@ -696,122 +700,122 @@ msgid "Decrease volume" msgstr "" -#: ../src/widget/preference.py:590 ../src/widget/preference.py:602 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:601 ../src/widget/preference.py:613 +#: ../src/widget/preference.py:845 msgid "Left" msgstr "" -#: ../src/widget/preference.py:591 ../src/widget/preference.py:603 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:602 ../src/widget/preference.py:614 +#: ../src/widget/preference.py:845 msgid "Centered" msgstr "" -#: ../src/widget/preference.py:592 ../src/widget/preference.py:604 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:603 ../src/widget/preference.py:615 +#: ../src/widget/preference.py:845 msgid "Right" msgstr "" -#: ../src/widget/preference.py:605 +#: ../src/widget/preference.py:616 msgid "Justified" msgstr "" -#: ../src/widget/preference.py:616 ../src/widget/lyrics_module.py:425 +#: ../src/widget/preference.py:627 ../src/widget/lyrics_module.py:455 msgid "Vitality yellow" msgstr "" -#: ../src/widget/preference.py:617 ../src/widget/lyrics_module.py:426 +#: ../src/widget/preference.py:628 ../src/widget/lyrics_module.py:456 msgid "Fresh green" msgstr "" -#: ../src/widget/preference.py:618 ../src/widget/lyrics_module.py:427 +#: ../src/widget/preference.py:629 ../src/widget/lyrics_module.py:457 msgid "Playful pink" msgstr "" -#: ../src/widget/preference.py:619 ../src/widget/lyrics_module.py:428 +#: ../src/widget/preference.py:630 ../src/widget/lyrics_module.py:458 msgid "Cool blue" msgstr "" -#: ../src/widget/preference.py:631 +#: ../src/widget/preference.py:642 msgid "Color scheme" msgstr "" -#: ../src/widget/preference.py:639 ../src/widget/preference.py:796 +#: ../src/widget/preference.py:650 ../src/widget/preference.py:807 msgid "Regular" msgstr "" -#: ../src/widget/preference.py:640 ../src/widget/preference.py:797 +#: ../src/widget/preference.py:651 ../src/widget/preference.py:808 msgid "Italic" msgstr "" -#: ../src/widget/preference.py:641 ../src/widget/preference.py:798 +#: ../src/widget/preference.py:652 ../src/widget/preference.py:809 msgid "Bold" msgstr "" -#: ../src/widget/preference.py:642 ../src/widget/preference.py:799 +#: ../src/widget/preference.py:653 ../src/widget/preference.py:810 msgid "Bold Italic" msgstr "" -#: ../src/widget/preference.py:652 ../src/widget/preference.py:807 +#: ../src/widget/preference.py:663 ../src/widget/preference.py:818 msgid "Style" msgstr "" -#: ../src/widget/preference.py:660 ../src/widget/preference.py:813 +#: ../src/widget/preference.py:671 ../src/widget/preference.py:824 msgid "Lyrics style" msgstr "" -#: ../src/widget/preference.py:670 ../src/widget/preference.py:822 +#: ../src/widget/preference.py:681 ../src/widget/preference.py:833 msgid "Font" msgstr "" -#: ../src/widget/preference.py:678 +#: ../src/widget/preference.py:689 msgid "Lines" msgstr "" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Single" msgstr "" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Double" msgstr "" -#: ../src/widget/preference.py:682 ../src/widget/preference.py:832 +#: ../src/widget/preference.py:693 ../src/widget/preference.py:843 msgid "Alignment" msgstr "" -#: ../src/widget/preference.py:691 +#: ../src/widget/preference.py:702 msgid "Outline" msgstr "" -#: ../src/widget/preference.py:695 +#: ../src/widget/preference.py:706 msgid "Stroke" msgstr "" -#: ../src/widget/preference.py:700 ../src/widget/preference.py:844 +#: ../src/widget/preference.py:711 ../src/widget/preference.py:855 msgid "Coming" msgstr "" -#: ../src/widget/preference.py:711 ../src/widget/preference.py:845 +#: ../src/widget/preference.py:722 ../src/widget/preference.py:856 msgid "Played" msgstr "" -#: ../src/widget/preference.py:839 +#: ../src/widget/preference.py:850 msgid "Rolling" msgstr "" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "Always" msgstr "" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "By line" msgstr "" -#: ../src/widget/preference.py:894 ../src/widget/plugins_view.py:163 +#: ../src/widget/preference.py:905 ../src/widget/plugins_view.py:166 msgid "Version" msgstr "" -#: ../src/widget/preference.py:909 +#: ../src/widget/preference.py:920 msgid "" " DMusic is a music application designed for Linux users.It features " "lyrics searching and downloading, desktop lyrics display,album cover " @@ -820,32 +824,32 @@ "DMusic is free software licensed under GNU GPLv3." msgstr "" -#: ../src/widget/preference.py:927 ../src/widget/instance.py:369 +#: ../src/widget/preference.py:938 ../src/widget/instance.py:371 #: ../src/widget/tray.py:82 msgid "Preferences" msgstr "" -#: ../src/widget/preference.py:985 +#: ../src/widget/preference.py:996 msgid "General" msgstr "" -#: ../src/widget/preference.py:987 +#: ../src/widget/preference.py:998 msgid "Lyrics" msgstr "" -#: ../src/widget/preference.py:988 +#: ../src/widget/preference.py:999 msgid "Desktop" msgstr "" -#: ../src/widget/preference.py:989 +#: ../src/widget/preference.py:1000 msgid "Window" msgstr "" -#: ../src/widget/preference.py:990 +#: ../src/widget/preference.py:1001 msgid "Add-ons" msgstr "" -#: ../src/widget/preference.py:991 +#: ../src/widget/preference.py:1002 msgid "About" msgstr "" @@ -853,57 +857,57 @@ msgid "Join us" msgstr "" -#: ../src/widget/instance.py:326 +#: ../src/widget/instance.py:327 msgid "Forward" msgstr "" -#: ../src/widget/instance.py:327 +#: ../src/widget/instance.py:328 msgid "Rewind" msgstr "" -#: ../src/widget/instance.py:356 ../src/widget/playlist.py:80 +#: ../src/widget/instance.py:358 ../src/widget/playlist.py:97 msgid "Add" msgstr "" -#: ../src/widget/instance.py:357 +#: ../src/widget/instance.py:359 msgid "Controls" msgstr "" -#: ../src/widget/instance.py:358 ../src/widget/playlist.py:83 -#: ../src/widget/playlist.py:514 +#: ../src/widget/instance.py:360 ../src/widget/playlist.py:100 +#: ../src/widget/playlist.py:557 msgid "Playback Order" msgstr "" -#: ../src/widget/instance.py:368 +#: ../src/widget/instance.py:370 msgid "View New Features" msgstr "" -#: ../src/widget/instance.py:375 ../src/widget/tray.py:72 +#: ../src/widget/instance.py:377 ../src/widget/tray.py:72 msgid "Search Lyrics" msgstr "" -#: ../src/widget/instance.py:394 ../src/widget/tray.py:71 +#: ../src/widget/instance.py:396 ../src/widget/tray.py:71 msgid "Hide Lyrics" msgstr "" -#: ../src/widget/instance.py:396 ../src/widget/tray.py:74 +#: ../src/widget/instance.py:398 ../src/widget/tray.py:74 msgid "Show Lyrics" msgstr "" -#: ../src/widget/instance.py:400 ../src/widget/tray.py:77 +#: ../src/widget/instance.py:402 ../src/widget/tray.py:77 msgid "Unlock lyrics" msgstr "" -#: ../src/widget/instance.py:402 ../src/widget/lyrics_module.py:152 +#: ../src/widget/instance.py:404 ../src/widget/lyrics_module.py:155 #: ../src/widget/tray.py:79 msgid "Lock lyrics" msgstr "" -#: ../src/widget/instance.py:477 +#: ../src/widget/instance.py:479 msgid "Mini Mode" msgstr "" -#: ../src/widget/instance.py:479 +#: ../src/widget/instance.py:481 msgid "Normal Mode" msgstr "" @@ -911,81 +915,81 @@ msgid "jobs waiting!" msgstr "" -#: ../src/widget/song_view.py:406 ../src/widget/song_view.py:749 -#: ../src/widget/local_browser.py:340 +#: ../src/widget/song_view.py:437 ../src/widget/song_view.py:780 +#: ../src/widget/local_browser.py:339 msgid "Are you sure you want to delete them?" msgstr "" -#: ../src/widget/song_view.py:450 +#: ../src/widget/song_view.py:481 msgid "Repeat (single)" msgstr "" -#: ../src/widget/song_view.py:451 +#: ../src/widget/song_view.py:482 msgid "Play (ordered)" msgstr "" -#: ../src/widget/song_view.py:452 +#: ../src/widget/song_view.py:483 msgid "Repeat (list)" msgstr "" -#: ../src/widget/song_view.py:453 +#: ../src/widget/song_view.py:484 msgid "Random" msgstr "" -#: ../src/widget/song_view.py:476 +#: ../src/widget/song_view.py:507 msgid "Remove Track from this List" msgstr "" -#: ../src/widget/song_view.py:477 +#: ../src/widget/song_view.py:508 msgid "Remove Unavailable Tracks" msgstr "" -#: ../src/widget/song_view.py:478 ../src/widget/song_view.py:758 -#: ../src/widget/local_browser.py:355 ../src/widget/playlist.py:511 +#: ../src/widget/song_view.py:509 ../src/widget/song_view.py:789 +#: ../src/widget/local_browser.py:354 ../src/widget/playlist.py:554 msgid "Move to Trash" msgstr "" -#: ../src/widget/song_view.py:479 +#: ../src/widget/song_view.py:510 msgid "Clear list" msgstr "" -#: ../src/widget/song_view.py:490 +#: ../src/widget/song_view.py:521 msgid "URL" msgstr "" -#: ../src/widget/song_view.py:491 ../src/widget/song_view.py:499 +#: ../src/widget/song_view.py:522 ../src/widget/song_view.py:530 msgid "File" msgstr "" -#: ../src/widget/song_view.py:492 +#: ../src/widget/song_view.py:523 msgid "Directory (include subdirectories)" msgstr "" -#: ../src/widget/song_view.py:493 ../src/widget/song_view.py:501 +#: ../src/widget/song_view.py:524 ../src/widget/song_view.py:532 msgid "Directory" msgstr "" -#: ../src/widget/song_view.py:500 +#: ../src/widget/song_view.py:531 msgid "Directory(include subdirectories)" msgstr "" -#: ../src/widget/song_view.py:511 +#: ../src/widget/song_view.py:542 msgid "Add URL" msgstr "" -#: ../src/widget/song_view.py:649 +#: ../src/widget/song_view.py:680 msgid "Added time" msgstr "" -#: ../src/widget/song_view.py:757 ../src/widget/local_browser.py:354 +#: ../src/widget/song_view.py:788 ../src/widget/local_browser.py:353 msgid "Remove from Library" msgstr "" -#: ../src/widget/song_view.py:760 ../src/widget/local_browser.py:360 +#: ../src/widget/song_view.py:791 ../src/widget/local_browser.py:359 msgid "Open Directory" msgstr "" -#: ../src/widget/plugins_view.py:163 +#: ../src/widget/plugins_view.py:166 msgid "Enable" msgstr "" @@ -1005,188 +1009,192 @@ msgid "Refresh" msgstr "" -#: ../src/widget/local_browser.py:351 +#: ../src/widget/local_browser.py:350 msgid "Play All" msgstr "" -#: ../src/widget/local_browser.py:352 ../src/widget/playlist.py:507 +#: ../src/widget/local_browser.py:351 ../src/widget/playlist.py:550 msgid "Add to List" msgstr "" -#: ../src/widget/local_browser.py:362 +#: ../src/widget/local_browser.py:361 msgid "Change Cover" msgstr "" -#: ../src/widget/playlist.py:77 +#: ../src/widget/playlist.py:94 msgid "Search in Current Playlist" msgstr "" -#: ../src/widget/playlist.py:79 +#: ../src/widget/playlist.py:96 msgid "Playlist Operations" msgstr "" -#: ../src/widget/playlist.py:165 +#: ../src/widget/playlist.py:183 msgid "Default List" msgstr "" -#: ../src/widget/playlist.py:261 ../src/widget/playlist.py:273 -#: ../src/widget/playlist.py:274 ../src/widget/playlist.py:314 -#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:433 +#: ../src/widget/playlist.py:304 ../src/widget/playlist.py:316 +#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:357 +#: ../src/widget/playlist.py:360 ../src/widget/playlist.py:476 msgid "New List" msgstr "" -#: ../src/widget/playlist.py:262 ../src/widget/playlist.py:434 +#: ../src/widget/playlist.py:305 ../src/widget/playlist.py:477 msgid "Import List" msgstr "" -#: ../src/widget/playlist.py:263 ../src/widget/playlist.py:442 +#: ../src/widget/playlist.py:306 ../src/widget/playlist.py:485 msgid "Open List" msgstr "" -#: ../src/widget/playlist.py:264 +#: ../src/widget/playlist.py:307 msgid "Export List" msgstr "" -#: ../src/widget/playlist.py:265 ../src/widget/playlist.py:441 +#: ../src/widget/playlist.py:308 ../src/widget/playlist.py:484 msgid "Remove List" msgstr "" -#: ../src/widget/playlist.py:267 ../src/widget/playlist.py:436 -#: ../src/widget/playlist.py:444 +#: ../src/widget/playlist.py:310 ../src/widget/playlist.py:479 +#: ../src/widget/playlist.py:487 msgid "Save all Lists" msgstr "" -#: ../src/widget/playlist.py:440 ../src/widget/playlist.py:450 +#: ../src/widget/playlist.py:483 ../src/widget/playlist.py:493 msgid "Rename" msgstr "" -#: ../src/widget/playlist.py:491 +#: ../src/widget/playlist.py:534 msgid "By Filename" msgstr "" -#: ../src/widget/playlist.py:492 +#: ../src/widget/playlist.py:535 msgid "By Title" msgstr "" -#: ../src/widget/playlist.py:493 ../src/widget/combo.py:184 +#: ../src/widget/playlist.py:536 ../src/widget/combo.py:184 #: ../src/widget/combo.py:233 msgid "By Artist" msgstr "" -#: ../src/widget/playlist.py:494 ../src/widget/combo.py:235 +#: ../src/widget/playlist.py:537 ../src/widget/combo.py:235 msgid "By Album" msgstr "" -#: ../src/widget/playlist.py:495 ../src/widget/combo.py:234 +#: ../src/widget/playlist.py:538 ../src/widget/combo.py:234 msgid "By Genre" msgstr "" -#: ../src/widget/playlist.py:496 +#: ../src/widget/playlist.py:539 msgid "By Track" msgstr "" -#: ../src/widget/playlist.py:497 +#: ../src/widget/playlist.py:540 msgid "By Play Count" msgstr "" -#: ../src/widget/playlist.py:498 +#: ../src/widget/playlist.py:541 msgid "By Date Added" msgstr "" -#: ../src/widget/playlist.py:502 +#: ../src/widget/playlist.py:545 msgid "Randomize" msgstr "" -#: ../src/widget/playlist.py:508 +#: ../src/widget/playlist.py:551 msgid "move to List" msgstr "" -#: ../src/widget/playlist.py:510 +#: ../src/widget/playlist.py:553 msgid "Remove Track" msgstr "" -#: ../src/widget/playlist.py:515 +#: ../src/widget/playlist.py:558 msgid "Sort" msgstr "" -#: ../src/widget/lyrics_module.py:148 +#: ../src/widget/lyrics_module.py:151 msgid "increase the lyrics size" msgstr "" -#: ../src/widget/lyrics_module.py:149 +#: ../src/widget/lyrics_module.py:152 msgid "decrease the lyrics size" msgstr "" -#: ../src/widget/lyrics_module.py:151 +#: ../src/widget/lyrics_module.py:154 msgid "Select color theme" msgstr "" -#: ../src/widget/lyrics_module.py:155 +#: ../src/widget/lyrics_module.py:158 msgid "karaoke on/off" msgstr "" -#: ../src/widget/lyrics_module.py:158 +#: ../src/widget/lyrics_module.py:160 msgid "Switch lines" msgstr "" -#: ../src/widget/lyrics_module.py:159 +#: ../src/widget/lyrics_module.py:162 msgid "Open settings panel" msgstr "" -#: ../src/widget/lyrics_module.py:160 +#: ../src/widget/lyrics_module.py:163 msgid "search lrc file for current track" msgstr "" -#: ../src/widget/lyrics_module.py:161 +#: ../src/widget/lyrics_module.py:164 msgid "Close lyrics" msgstr "" -#: ../src/widget/lyrics_module.py:162 ../src/widget/lyrics_module.py:201 +#: ../src/widget/lyrics_module.py:165 ../src/widget/lyrics_module.py:223 msgid "Lyrics rewind" msgstr "" -#: ../src/widget/lyrics_module.py:163 ../src/widget/lyrics_module.py:202 +#: ../src/widget/lyrics_module.py:166 ../src/widget/lyrics_module.py:224 msgid "Lyrics forward" msgstr "" -#: ../src/widget/lyrics_module.py:164 ../src/widget/lyrics_module.py:221 +#: ../src/widget/lyrics_module.py:167 ../src/widget/lyrics_module.py:243 msgid "Switch to window mode" msgstr "" -#: ../src/widget/lyrics_module.py:199 +#: ../src/widget/lyrics_module.py:221 msgid "Switch to desktop mode" msgstr "" -#: ../src/widget/lyrics_module.py:204 ../src/widget/lyrics_module.py:214 -#: ../src/widget/lyrics_search.py:58 +#: ../src/widget/lyrics_module.py:226 ../src/widget/lyrics_module.py:236 +#: ../src/widget/lyrics_search.py:59 msgid "Search" msgstr "" -#: ../src/widget/lyrics_module.py:205 ../src/widget/lyrics_module.py:220 +#: ../src/widget/lyrics_module.py:227 ../src/widget/lyrics_module.py:242 msgid "Settings" msgstr "" -#: ../src/widget/lyrics_module.py:211 +#: ../src/widget/lyrics_module.py:233 msgid "Forward 0.5 seconds" msgstr "" -#: ../src/widget/lyrics_module.py:212 +#: ../src/widget/lyrics_module.py:234 msgid "Rewind 0.5 seconds" msgstr "" -#: ../src/widget/lyrics_module.py:215 +#: ../src/widget/lyrics_module.py:237 msgid "Adjust lyrics" msgstr "" -#: ../src/widget/lyrics_module.py:217 +#: ../src/widget/lyrics_module.py:239 msgid "Choose local lrc" msgstr "" -#: ../src/widget/lyrics_module.py:763 ../src/widget/lyrics_module.py:764 +#: ../src/widget/lyrics_module.py:247 +msgid "Network get lrc" +msgstr "" + +#: ../src/widget/lyrics_module.py:793 ../src/widget/lyrics_module.py:794 msgid "No lyrics found!" msgstr "" -#: ../src/widget/lyrics_module.py:766 ../src/widget/lyrics_module.py:767 +#: ../src/widget/lyrics_module.py:796 ../src/widget/lyrics_module.py:797 msgid "Searching for lyrics..." msgstr "" @@ -1214,40 +1222,40 @@ msgid "Lyrics search" msgstr "" -#: ../src/widget/lyrics_search.py:53 +#: ../src/widget/lyrics_search.py:54 msgid "Artist:" msgstr "" -#: ../src/widget/lyrics_search.py:54 +#: ../src/widget/lyrics_search.py:55 msgid "Title:" msgstr "" -#: ../src/widget/lyrics_search.py:86 +#: ../src/widget/lyrics_search.py:87 msgid "Download" msgstr "" -#: ../src/widget/lyrics_search.py:127 +#: ../src/widget/lyrics_search.py:136 msgid "Now searching..." msgstr "" -#: ../src/widget/lyrics_search.py:129 ../src/widget/lyrics_search.py:154 +#: ../src/widget/lyrics_search.py:138 ../src/widget/lyrics_search.py:163 msgid "Not found!" msgstr "" -#: ../src/widget/lyrics_search.py:148 ../src/widget/lyrics_search.py:152 +#: ../src/widget/lyrics_search.py:157 ../src/widget/lyrics_search.py:161 #, python-format msgid "%d lyrics found" msgstr "" -#: ../src/widget/lyrics_search.py:161 +#: ../src/widget/lyrics_search.py:170 msgid "Downloading lyrics..." msgstr "" -#: ../src/widget/lyrics_search.py:171 +#: ../src/widget/lyrics_search.py:180 msgid "File save to" msgstr "" -#: ../src/widget/lyrics_search.py:173 +#: ../src/widget/lyrics_search.py:182 msgid "Download failed." msgstr "" @@ -1272,7 +1280,7 @@ msgstr "" #: ../plugins/musicfm/__init__.py:33 ../plugins/musicfm/__init__.py:35 -#: ../plugins/musicfm/radio_view.py:449 +#: ../plugins/musicfm/radio_view.py:474 msgid "MusicFM" msgstr "" diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/locale/zh_CN.po deepin-music-player-1.3.3/locale/zh_CN.po --- deepin-music-player-1.3~raring~NoobsLab.com/locale/zh_CN.po 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/locale/zh_CN.po 2013-09-26 05:29:51.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-13 18:30+0800\n" +"POT-Creation-Date: 2013-09-26 11:30+0800\n" "PO-Revision-Date: 2012-12-29 11:33+0800\n" "Last-Translator: SmallEvilBeast \n" "Language-Team: none\n" @@ -65,124 +65,124 @@ msgid "Unknown" msgstr "未知" -#: ../src/main.py:94 +#: ../src/main.py:103 msgid "Usage: deepin-music-player [OPTION]... [URI]" msgstr "用法: deepin-music-player [选项]... [URI]" -#: ../src/main.py:95 +#: ../src/main.py:104 msgid "Options" msgstr "选项" -#: ../src/main.py:99 +#: ../src/main.py:108 msgid "Control Options" msgstr "控制选项" -#: ../src/main.py:101 +#: ../src/main.py:110 msgid "Play the next track" msgstr "播放下一首" -#: ../src/main.py:103 +#: ../src/main.py:112 msgid "Play the previous track" msgstr "播放上一首" -#: ../src/main.py:105 +#: ../src/main.py:114 msgid "Pause or resume playback" msgstr "暂停/继续播放" -#: ../src/main.py:107 +#: ../src/main.py:116 msgid "Seek Forward" msgstr "快进" -#: ../src/main.py:109 +#: ../src/main.py:118 msgid "Seek Backward" msgstr "后退" -#: ../src/main.py:111 +#: ../src/main.py:120 msgid "Stop playback" msgstr "停止播放" -#: ../src/main.py:115 +#: ../src/main.py:124 msgid "Volume Options" msgstr "音量选项" -#: ../src/main.py:117 +#: ../src/main.py:126 msgid "Change Volume (VOLUME 0.0-1.0)" msgstr "调整音量 (VOLUME 0.0-1.0)" -#: ../src/main.py:120 +#: ../src/main.py:129 msgid "Track information Options" msgstr "歌曲信息选项" -#: ../src/main.py:122 +#: ../src/main.py:131 msgid "Print the title of current track" msgstr "查看当前歌曲标题" -#: ../src/main.py:124 +#: ../src/main.py:133 msgid "Print the album of current track" msgstr "查看当前歌曲专辑" -#: ../src/main.py:126 +#: ../src/main.py:135 msgid "Print the artist of current track" msgstr "查看当前歌曲艺术家" -#: ../src/main.py:128 +#: ../src/main.py:137 msgid "Print the length of current track" msgstr "查看当前歌曲时长" -#: ../src/main.py:130 +#: ../src/main.py:139 msgid "Print the path of current track" msgstr "查看当前歌曲路径" -#: ../src/main.py:132 +#: ../src/main.py:141 msgid "Print current playback position" msgstr "查看当前播放位置" -#: ../src/main.py:135 +#: ../src/main.py:144 msgid "Other Options" msgstr "其它选项" -#: ../src/main.py:137 +#: ../src/main.py:146 msgid "Show this help message and exit" msgstr "显示帮助信息并退出" -#: ../src/main.py:139 +#: ../src/main.py:148 msgid "Start new instance" msgstr "启动新实例" -#: ../src/main.py:141 +#: ../src/main.py:150 msgid "Show program's version number and exit." msgstr "显示程序版本号并退出" -#: ../src/main.py:143 +#: ../src/main.py:152 msgid "Start minimized" msgstr "启动后最小化" -#: ../src/main.py:146 +#: ../src/main.py:155 msgid "Toggle visibility of the GUI (if possible)" msgstr "界面可视性切换" -#: ../src/main.py:149 +#: ../src/main.py:158 msgid "Make control options like --play start program if it is not running" msgstr "此选项可以使控制选项来启动程序" -#: ../src/main.py:152 +#: ../src/main.py:161 msgid "Development/Debug Options" msgstr "开发/调试选项" -#: ../src/main.py:153 +#: ../src/main.py:162 msgid "Change debug level (0-9)" msgstr "设置调试级别 (0-9)" -#: ../src/main.py:157 +#: ../src/main.py:166 msgid "Show information about supported audio file" msgstr "显示所支持音频文件的信息" -#: ../src/main.py:163 ../src/widget/global_keys.py:95 +#: ../src/main.py:172 ../src/widget/global_keys.py:95 #: ../src/widget/information.py:40 ../src/widget/information.py:82 -#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:748 -#: ../src/widget/preference.py:568 ../src/widget/preference.py:578 -#: ../src/widget/preference.py:889 ../src/widget/instance.py:92 -#: ../src/widget/dummy_lyrics.py:208 ../src/widget/tray.py:156 +#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:749 +#: ../src/widget/preference.py:579 ../src/widget/preference.py:589 +#: ../src/widget/preference.py:900 ../src/widget/instance.py:92 +#: ../src/widget/tray.py:156 msgid "DMusic" msgstr "深度音乐" @@ -228,18 +228,18 @@ msgstr "音频CD" #: ../src/widget/song_editor.py:72 ../src/widget/song_editor.py:202 -#: ../src/widget/song_view.py:649 ../src/widget/lyrics_search.py:82 +#: ../src/widget/song_view.py:680 ../src/widget/lyrics_search.py:83 msgid "Title" msgstr "标题" #: ../src/widget/song_editor.py:73 ../src/widget/song_editor.py:203 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:85 -#: ../src/widget/lyrics_search.py:82 ../plugins/notify/__init__.py:43 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:85 +#: ../src/widget/lyrics_search.py:83 ../plugins/notify/__init__.py:43 msgid "Artist" msgstr "艺术家" #: ../src/widget/song_editor.py:74 ../src/widget/song_editor.py:204 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:87 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:87 #: ../plugins/notify/__init__.py:45 msgid "Album" msgstr "专辑" @@ -248,12 +248,12 @@ msgid "Type" msgstr "类型" -#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:421 +#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:433 msgid "Format" msgstr "格式" -#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:675 -#: ../src/widget/preference.py:828 ../src/widget/song_notify.py:193 +#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:686 +#: ../src/widget/preference.py:839 ../src/widget/song_notify.py:193 msgid "Size" msgstr "大小" @@ -289,8 +289,8 @@ msgid "Location" msgstr "文件位置" -#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:355 -#: ../src/widget/playlist.py:517 ../src/widget/lyrics_module.py:218 +#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:367 +#: ../src/widget/playlist.py:560 ../src/widget/lyrics_module.py:240 msgid "Open directory" msgstr "打开目录" @@ -303,53 +303,57 @@ msgid "Save" msgstr "保存" -#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:463 +#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:475 #: ../src/widget/preference.py:252 msgid "Change" msgstr "更改" -#: ../src/widget/song_editor.py:298 ../src/widget/equalizer.py:252 +#: ../src/widget/song_editor.py:299 +msgid "Retrieve from the Internet" +msgstr "网络获取" + +#: ../src/widget/song_editor.py:302 ../src/widget/equalizer.py:252 #: ../src/widget/preference.py:375 msgid "Reset" msgstr "重置" -#: ../src/widget/song_editor.py:316 ../src/widget/local_browser.py:344 +#: ../src/widget/song_editor.py:321 ../src/widget/local_browser.py:343 msgid "Select image" msgstr "选择图片" -#: ../src/widget/song_editor.py:326 ../src/widget/song_view.py:762 -#: ../src/widget/playlist.py:518 +#: ../src/widget/song_editor.py:335 ../src/widget/song_view.py:793 +#: ../src/widget/playlist.py:561 msgid "Properties" msgstr "属性" -#: ../src/widget/song_editor.py:329 ../src/widget/equalizer.py:250 -#: ../src/widget/ui.py:1142 ../src/widget/converter.py:382 -#: ../src/widget/converter.py:437 ../src/widget/preference.py:934 -#: ../src/widget/lyrics_search.py:88 +#: ../src/widget/song_editor.py:338 ../src/widget/equalizer.py:250 +#: ../src/widget/ui.py:1248 ../src/widget/converter.py:394 +#: ../src/widget/converter.py:449 ../src/widget/preference.py:945 +#: ../src/widget/lyrics_search.py:89 msgid "Close" msgstr "关闭" -#: ../src/widget/song_editor.py:332 ../src/widget/headerbar.py:70 -#: ../src/widget/preference.py:369 ../src/widget/instance.py:328 +#: ../src/widget/song_editor.py:341 ../src/widget/headerbar.py:72 +#: ../src/widget/preference.py:369 ../src/widget/instance.py:329 #: ../src/widget/tray.py:63 msgid "Previous" msgstr "上一首" -#: ../src/widget/song_editor.py:334 ../src/widget/headerbar.py:71 -#: ../src/widget/preference.py:370 ../src/widget/instance.py:329 +#: ../src/widget/song_editor.py:343 ../src/widget/headerbar.py:73 +#: ../src/widget/preference.py:370 ../src/widget/instance.py:330 #: ../src/widget/tray.py:64 msgid "Next" msgstr "下一首" -#: ../src/widget/song_editor.py:358 +#: ../src/widget/song_editor.py:367 msgid "Track Infomation" msgstr "歌词信息" -#: ../src/widget/song_editor.py:359 +#: ../src/widget/song_editor.py:368 msgid "Edit tags" msgstr "信息设置" -#: ../src/widget/song_editor.py:360 +#: ../src/widget/song_editor.py:369 msgid "Edit cover" msgstr "封面设置" @@ -425,7 +429,7 @@ msgid "Techno" msgstr "电子" -#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:360 +#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:362 msgid "Equalizer" msgstr "均衡器" @@ -455,21 +459,21 @@ msgstr "正在缓冲" #: ../src/widget/webcast_view.py:114 ../src/widget/webcast_view.py:120 -#: ../src/widget/playlist.py:86 ../plugins/musicfm/radio_view.py:129 -#: ../plugins/musicfm/radio_view.py:135 +#: ../src/widget/playlist.py:103 ../plugins/musicfm/radio_view.py:134 +#: ../plugins/musicfm/radio_view.py:140 msgid "Delete" msgstr "删除" #: ../src/widget/webcast_view.py:115 ../src/widget/webcast_view.py:123 -#: ../src/widget/playlist.py:512 ../plugins/musicfm/radio_view.py:130 -#: ../plugins/musicfm/radio_view.py:136 +#: ../src/widget/playlist.py:555 ../plugins/musicfm/radio_view.py:135 +#: ../plugins/musicfm/radio_view.py:141 msgid "Clear List" msgstr "清空列表" #: ../src/widget/webcast_view.py:119 ../src/widget/webcast_view.py:338 -#: ../src/widget/instance.py:319 ../src/widget/song_view.py:754 -#: ../src/widget/playlist.py:506 ../src/widget/tray.py:58 -#: ../plugins/musicfm/radio_view.py:134 +#: ../src/widget/instance.py:320 ../src/widget/song_view.py:785 +#: ../src/widget/playlist.py:549 ../src/widget/tray.py:58 +#: ../plugins/musicfm/radio_view.py:139 msgid "Play" msgstr "播放" @@ -482,7 +486,7 @@ msgstr "添加到收藏" #: ../src/widget/webcast_view.py:333 ../src/widget/webcast_view.py:339 -#: ../src/widget/song_view.py:755 +#: ../src/widget/song_view.py:786 msgid "Add to Playlist" msgstr "添加到播放列表" @@ -491,140 +495,140 @@ msgid "Radio" msgstr "网络广播" -#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:786 +#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:817 #: ../src/widget/local_tab.py:28 msgid "Library" msgstr "本地音乐" -#: ../src/widget/lyrics.py:733 +#: ../src/widget/lyrics.py:734 msgid "Lyrics window" msgstr "窗口歌词" -#: ../src/widget/ui.py:201 +#: ../src/widget/ui.py:203 msgid "Need some music? Find it here..." msgstr "找音乐,在这里..." -#: ../src/widget/ui.py:399 +#: ../src/widget/ui.py:401 msgid "Add Music" msgstr "添加本地音乐" -#: ../src/widget/ui.py:1012 +#: ../src/widget/ui.py:1118 msgid "Your search {keyword} did not match any items in {from}" msgstr "在{from}中没有找到与{keyword}相关的内容" -#: ../src/widget/ui.py:1013 +#: ../src/widget/ui.py:1119 msgid "Suggestions" msgstr "深度音乐建议您" -#: ../src/widget/ui.py:1014 +#: ../src/widget/ui.py:1120 msgid "Make sure all words are spelled correctly." msgstr "看看输入文字是否有误" -#: ../src/widget/ui.py:1015 +#: ../src/widget/ui.py:1121 msgid "" "Try more general keywords, such as a title, an artist or the name of an " "album." msgstr "尽量输入标题、艺术家或专辑名称" -#: ../src/widget/ui.py:1112 ../src/widget/plugins_view.py:163 +#: ../src/widget/ui.py:1218 ../src/widget/plugins_view.py:166 msgid "Add-on" msgstr "附加组件" -#: ../src/widget/ui.py:1120 +#: ../src/widget/ui.py:1226 msgid "Author(s)" msgstr "作者" -#: ../src/widget/ui.py:1150 ../src/widget/preference.py:195 +#: ../src/widget/ui.py:1256 ../src/widget/preference.py:195 msgid "Minimize to tray" msgstr "最小化到托盘" -#: ../src/widget/ui.py:1152 ../src/widget/preference.py:196 -#: ../src/widget/instance.py:371 ../src/widget/tray.py:83 +#: ../src/widget/ui.py:1258 ../src/widget/preference.py:196 +#: ../src/widget/instance.py:373 ../src/widget/tray.py:83 msgid "Quit" msgstr "退出" -#: ../src/widget/ui.py:1156 +#: ../src/widget/ui.py:1262 msgid "Don't prompt again" msgstr "下次不再提示" -#: ../src/widget/ui.py:1163 +#: ../src/widget/ui.py:1269 msgid "OK" msgstr "确定" -#: ../src/widget/ui.py:1166 +#: ../src/widget/ui.py:1272 msgid "Cancel" msgstr "取消" -#: ../src/widget/headerbar.py:62 ../src/widget/preference.py:368 +#: ../src/widget/headerbar.py:64 ../src/widget/preference.py:368 msgid "Play/Pause" msgstr "暂停/继续" -#: ../src/widget/headerbar.py:76 +#: ../src/widget/headerbar.py:78 msgid "Show/Hide Lyrics" msgstr "打开/关闭歌词" -#: ../src/widget/converter.py:297 ../src/widget/song_view.py:406 -#: ../src/widget/song_view.py:749 ../src/widget/local_browser.py:340 +#: ../src/widget/converter.py:309 ../src/widget/song_view.py:437 +#: ../src/widget/song_view.py:780 ../src/widget/local_browser.py:339 msgid "Prompt" msgstr "提示" -#: ../src/widget/converter.py:297 +#: ../src/widget/converter.py:309 msgid "Target file already exitsts, do you want to overwrite it?" msgstr "目标文件已存在,是否覆盖?" -#: ../src/widget/converter.py:357 +#: ../src/widget/converter.py:369 msgid "Delete task" msgstr "删除任务" -#: ../src/widget/converter.py:358 +#: ../src/widget/converter.py:370 msgid "Clear finished tasks" msgstr "清空已完成的任务" -#: ../src/widget/converter.py:364 ../src/widget/instance.py:340 +#: ../src/widget/converter.py:376 ../src/widget/instance.py:341 msgid "Task Manager" msgstr "任务管理器" -#: ../src/widget/converter.py:380 ../src/widget/converter.py:400 -#: ../src/widget/converter.py:403 ../src/widget/instance.py:322 +#: ../src/widget/converter.py:392 ../src/widget/converter.py:412 +#: ../src/widget/converter.py:415 ../src/widget/instance.py:323 #: ../src/widget/tray.py:61 msgid "Pause" msgstr "暂停" -#: ../src/widget/converter.py:401 +#: ../src/widget/converter.py:413 msgid "Continue" msgstr "继续" -#: ../src/widget/converter.py:415 ../src/widget/instance.py:339 -#: ../src/widget/instance.py:361 ../src/widget/song_view.py:761 -#: ../src/widget/playlist.py:516 +#: ../src/widget/converter.py:427 ../src/widget/instance.py:340 +#: ../src/widget/instance.py:363 ../src/widget/song_view.py:792 +#: ../src/widget/playlist.py:559 msgid "Convert" msgstr "格式转换器" -#: ../src/widget/converter.py:424 +#: ../src/widget/converter.py:436 msgid "Quality" msgstr "质量" -#: ../src/widget/converter.py:432 +#: ../src/widget/converter.py:444 msgid "Target file already exists" msgstr "目标文件存在时" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Ask" msgstr "询问" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Cover" msgstr "覆盖" -#: ../src/widget/converter.py:436 +#: ../src/widget/converter.py:448 msgid "Start" msgstr "开始" -#: ../src/widget/converter.py:438 +#: ../src/widget/converter.py:450 msgid "Add to Playlist when finished" msgstr "当转换完成后添加到播放列表" -#: ../src/widget/converter.py:460 +#: ../src/widget/converter.py:472 msgid "Output" msgstr "输出目录" @@ -676,7 +680,7 @@ msgid "Lyrics directory" msgstr "歌词保存目录" -#: ../src/widget/preference.py:346 ../src/widget/preference.py:986 +#: ../src/widget/preference.py:346 ../src/widget/preference.py:997 msgid "Hotkeys" msgstr "热键设置" @@ -704,122 +708,122 @@ msgid "Decrease volume" msgstr "减小音量" -#: ../src/widget/preference.py:590 ../src/widget/preference.py:602 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:601 ../src/widget/preference.py:613 +#: ../src/widget/preference.py:845 msgid "Left" msgstr "左对齐" -#: ../src/widget/preference.py:591 ../src/widget/preference.py:603 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:602 ../src/widget/preference.py:614 +#: ../src/widget/preference.py:845 msgid "Centered" msgstr "居中对齐" -#: ../src/widget/preference.py:592 ../src/widget/preference.py:604 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:603 ../src/widget/preference.py:615 +#: ../src/widget/preference.py:845 msgid "Right" msgstr "右对齐" -#: ../src/widget/preference.py:605 +#: ../src/widget/preference.py:616 msgid "Justified" msgstr "两端对齐" -#: ../src/widget/preference.py:616 ../src/widget/lyrics_module.py:425 +#: ../src/widget/preference.py:627 ../src/widget/lyrics_module.py:455 msgid "Vitality yellow" msgstr "活力黄" -#: ../src/widget/preference.py:617 ../src/widget/lyrics_module.py:426 +#: ../src/widget/preference.py:628 ../src/widget/lyrics_module.py:456 msgid "Fresh green" msgstr "清新绿" -#: ../src/widget/preference.py:618 ../src/widget/lyrics_module.py:427 +#: ../src/widget/preference.py:629 ../src/widget/lyrics_module.py:457 msgid "Playful pink" msgstr "俏皮粉" -#: ../src/widget/preference.py:619 ../src/widget/lyrics_module.py:428 +#: ../src/widget/preference.py:630 ../src/widget/lyrics_module.py:458 msgid "Cool blue" msgstr "清爽蓝" -#: ../src/widget/preference.py:631 +#: ../src/widget/preference.py:642 msgid "Color scheme" msgstr "配色方案" -#: ../src/widget/preference.py:639 ../src/widget/preference.py:796 +#: ../src/widget/preference.py:650 ../src/widget/preference.py:807 msgid "Regular" msgstr "常规" -#: ../src/widget/preference.py:640 ../src/widget/preference.py:797 +#: ../src/widget/preference.py:651 ../src/widget/preference.py:808 msgid "Italic" msgstr "倾斜" -#: ../src/widget/preference.py:641 ../src/widget/preference.py:798 +#: ../src/widget/preference.py:652 ../src/widget/preference.py:809 msgid "Bold" msgstr "粗体" -#: ../src/widget/preference.py:642 ../src/widget/preference.py:799 +#: ../src/widget/preference.py:653 ../src/widget/preference.py:810 msgid "Bold Italic" msgstr "粗体 倾斜" -#: ../src/widget/preference.py:652 ../src/widget/preference.py:807 +#: ../src/widget/preference.py:663 ../src/widget/preference.py:818 msgid "Style" msgstr "字型" -#: ../src/widget/preference.py:660 ../src/widget/preference.py:813 +#: ../src/widget/preference.py:671 ../src/widget/preference.py:824 msgid "Lyrics style" msgstr "歌词样式" -#: ../src/widget/preference.py:670 ../src/widget/preference.py:822 +#: ../src/widget/preference.py:681 ../src/widget/preference.py:833 msgid "Font" msgstr "字体" -#: ../src/widget/preference.py:678 +#: ../src/widget/preference.py:689 msgid "Lines" msgstr "行数" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Single" msgstr "单行" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Double" msgstr "双行" -#: ../src/widget/preference.py:682 ../src/widget/preference.py:832 +#: ../src/widget/preference.py:693 ../src/widget/preference.py:843 msgid "Alignment" msgstr "对齐" -#: ../src/widget/preference.py:691 +#: ../src/widget/preference.py:702 msgid "Outline" msgstr "轮廓" -#: ../src/widget/preference.py:695 +#: ../src/widget/preference.py:706 msgid "Stroke" msgstr "描边" -#: ../src/widget/preference.py:700 ../src/widget/preference.py:844 +#: ../src/widget/preference.py:711 ../src/widget/preference.py:855 msgid "Coming" msgstr "未播放" -#: ../src/widget/preference.py:711 ../src/widget/preference.py:845 +#: ../src/widget/preference.py:722 ../src/widget/preference.py:856 msgid "Played" msgstr "已播放" -#: ../src/widget/preference.py:839 +#: ../src/widget/preference.py:850 msgid "Rolling" msgstr "滚动方式" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "Always" msgstr "总是滚动" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "By line" msgstr "按行滚动" -#: ../src/widget/preference.py:894 ../src/widget/plugins_view.py:163 +#: ../src/widget/preference.py:905 ../src/widget/plugins_view.py:166 msgid "Version" msgstr "版本" -#: ../src/widget/preference.py:909 +#: ../src/widget/preference.py:920 msgid "" " DMusic is a music application designed for Linux users.It features " "lyrics searching and downloading, desktop lyrics display,album cover " @@ -833,32 +837,32 @@ "\n" "深度音乐是自由软件,遵循自由软件基金会发布的 GNU 通用公共许可证第三版." -#: ../src/widget/preference.py:927 ../src/widget/instance.py:369 +#: ../src/widget/preference.py:938 ../src/widget/instance.py:371 #: ../src/widget/tray.py:82 msgid "Preferences" msgstr "选项设置" -#: ../src/widget/preference.py:985 +#: ../src/widget/preference.py:996 msgid "General" msgstr "常规设置" -#: ../src/widget/preference.py:987 +#: ../src/widget/preference.py:998 msgid "Lyrics" msgstr "歌词设置" -#: ../src/widget/preference.py:988 +#: ../src/widget/preference.py:999 msgid "Desktop" msgstr "桌面歌词" -#: ../src/widget/preference.py:989 +#: ../src/widget/preference.py:1000 msgid "Window" msgstr "窗口歌词" -#: ../src/widget/preference.py:990 +#: ../src/widget/preference.py:1001 msgid "Add-ons" msgstr "附加组件" -#: ../src/widget/preference.py:991 +#: ../src/widget/preference.py:1002 msgid "About" msgstr "关于" @@ -866,57 +870,57 @@ msgid "Join us" msgstr "加入我们" -#: ../src/widget/instance.py:326 +#: ../src/widget/instance.py:327 msgid "Forward" msgstr "快进" -#: ../src/widget/instance.py:327 +#: ../src/widget/instance.py:328 msgid "Rewind" msgstr "后退" -#: ../src/widget/instance.py:356 ../src/widget/playlist.py:80 +#: ../src/widget/instance.py:358 ../src/widget/playlist.py:97 msgid "Add" msgstr "添加音乐" -#: ../src/widget/instance.py:357 +#: ../src/widget/instance.py:359 msgid "Controls" msgstr "播放控制" -#: ../src/widget/instance.py:358 ../src/widget/playlist.py:83 -#: ../src/widget/playlist.py:514 +#: ../src/widget/instance.py:360 ../src/widget/playlist.py:100 +#: ../src/widget/playlist.py:557 msgid "Playback Order" msgstr "播放模式" -#: ../src/widget/instance.py:368 +#: ../src/widget/instance.py:370 msgid "View New Features" msgstr "查看新特性" -#: ../src/widget/instance.py:375 ../src/widget/tray.py:72 +#: ../src/widget/instance.py:377 ../src/widget/tray.py:72 msgid "Search Lyrics" msgstr "搜索歌词" -#: ../src/widget/instance.py:394 ../src/widget/tray.py:71 +#: ../src/widget/instance.py:396 ../src/widget/tray.py:71 msgid "Hide Lyrics" msgstr "关闭歌词" -#: ../src/widget/instance.py:396 ../src/widget/tray.py:74 +#: ../src/widget/instance.py:398 ../src/widget/tray.py:74 msgid "Show Lyrics" msgstr "打开歌词" -#: ../src/widget/instance.py:400 ../src/widget/tray.py:77 +#: ../src/widget/instance.py:402 ../src/widget/tray.py:77 msgid "Unlock lyrics" msgstr "解锁歌词" -#: ../src/widget/instance.py:402 ../src/widget/lyrics_module.py:152 +#: ../src/widget/instance.py:404 ../src/widget/lyrics_module.py:155 #: ../src/widget/tray.py:79 msgid "Lock lyrics" msgstr "锁定歌词" -#: ../src/widget/instance.py:477 +#: ../src/widget/instance.py:479 msgid "Mini Mode" msgstr "迷你模式" -#: ../src/widget/instance.py:479 +#: ../src/widget/instance.py:481 msgid "Normal Mode" msgstr "普通模式" @@ -924,81 +928,81 @@ msgid "jobs waiting!" msgstr "个任务在等待!" -#: ../src/widget/song_view.py:406 ../src/widget/song_view.py:749 -#: ../src/widget/local_browser.py:340 +#: ../src/widget/song_view.py:437 ../src/widget/song_view.py:780 +#: ../src/widget/local_browser.py:339 msgid "Are you sure you want to delete them?" msgstr "您确定要删除吗?" -#: ../src/widget/song_view.py:450 +#: ../src/widget/song_view.py:481 msgid "Repeat (single)" msgstr "单曲循环" -#: ../src/widget/song_view.py:451 +#: ../src/widget/song_view.py:482 msgid "Play (ordered)" msgstr "顺序播放" -#: ../src/widget/song_view.py:452 +#: ../src/widget/song_view.py:483 msgid "Repeat (list)" msgstr "列表循环" -#: ../src/widget/song_view.py:453 +#: ../src/widget/song_view.py:484 msgid "Random" msgstr "随机排序" -#: ../src/widget/song_view.py:476 +#: ../src/widget/song_view.py:507 msgid "Remove Track from this List" msgstr "删除选中歌曲" -#: ../src/widget/song_view.py:477 +#: ../src/widget/song_view.py:508 msgid "Remove Unavailable Tracks" msgstr "删除错误歌曲" -#: ../src/widget/song_view.py:478 ../src/widget/song_view.py:758 -#: ../src/widget/local_browser.py:355 ../src/widget/playlist.py:511 +#: ../src/widget/song_view.py:509 ../src/widget/song_view.py:789 +#: ../src/widget/local_browser.py:354 ../src/widget/playlist.py:554 msgid "Move to Trash" msgstr "移动到回收站" -#: ../src/widget/song_view.py:479 +#: ../src/widget/song_view.py:510 msgid "Clear list" msgstr "清空列表" -#: ../src/widget/song_view.py:490 +#: ../src/widget/song_view.py:521 msgid "URL" msgstr "添加指定URL" -#: ../src/widget/song_view.py:491 ../src/widget/song_view.py:499 +#: ../src/widget/song_view.py:522 ../src/widget/song_view.py:530 msgid "File" msgstr "文件" -#: ../src/widget/song_view.py:492 +#: ../src/widget/song_view.py:523 msgid "Directory (include subdirectories)" msgstr "文件夹(包含子目录)" -#: ../src/widget/song_view.py:493 ../src/widget/song_view.py:501 +#: ../src/widget/song_view.py:524 ../src/widget/song_view.py:532 msgid "Directory" msgstr "文件夹" -#: ../src/widget/song_view.py:500 +#: ../src/widget/song_view.py:531 msgid "Directory(include subdirectories)" msgstr "文件夹(包含子目录)" -#: ../src/widget/song_view.py:511 +#: ../src/widget/song_view.py:542 msgid "Add URL" msgstr "添加指定URL" -#: ../src/widget/song_view.py:649 +#: ../src/widget/song_view.py:680 msgid "Added time" msgstr "添加时间" -#: ../src/widget/song_view.py:757 ../src/widget/local_browser.py:354 +#: ../src/widget/song_view.py:788 ../src/widget/local_browser.py:353 msgid "Remove from Library" msgstr "从歌曲库中移除" -#: ../src/widget/song_view.py:760 ../src/widget/local_browser.py:360 +#: ../src/widget/song_view.py:791 ../src/widget/local_browser.py:359 msgid "Open Directory" msgstr "打开目录" -#: ../src/widget/plugins_view.py:163 +#: ../src/widget/plugins_view.py:166 msgid "Enable" msgstr "启用" @@ -1018,188 +1022,192 @@ msgid "Refresh" msgstr "刷新歌曲库" -#: ../src/widget/local_browser.py:351 +#: ../src/widget/local_browser.py:350 msgid "Play All" msgstr "播放全部" -#: ../src/widget/local_browser.py:352 ../src/widget/playlist.py:507 +#: ../src/widget/local_browser.py:351 ../src/widget/playlist.py:550 msgid "Add to List" msgstr "添加到列表" -#: ../src/widget/local_browser.py:362 +#: ../src/widget/local_browser.py:361 msgid "Change Cover" msgstr "更改封面" -#: ../src/widget/playlist.py:77 +#: ../src/widget/playlist.py:94 msgid "Search in Current Playlist" msgstr "从当前播放列表检索歌曲" -#: ../src/widget/playlist.py:79 +#: ../src/widget/playlist.py:96 msgid "Playlist Operations" msgstr "播放列表操作" -#: ../src/widget/playlist.py:165 +#: ../src/widget/playlist.py:183 msgid "Default List" msgstr "默认列表" -#: ../src/widget/playlist.py:261 ../src/widget/playlist.py:273 -#: ../src/widget/playlist.py:274 ../src/widget/playlist.py:314 -#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:433 +#: ../src/widget/playlist.py:304 ../src/widget/playlist.py:316 +#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:357 +#: ../src/widget/playlist.py:360 ../src/widget/playlist.py:476 msgid "New List" msgstr "新建列表" -#: ../src/widget/playlist.py:262 ../src/widget/playlist.py:434 +#: ../src/widget/playlist.py:305 ../src/widget/playlist.py:477 msgid "Import List" msgstr "导入列表" -#: ../src/widget/playlist.py:263 ../src/widget/playlist.py:442 +#: ../src/widget/playlist.py:306 ../src/widget/playlist.py:485 msgid "Open List" msgstr "打开列表" -#: ../src/widget/playlist.py:264 +#: ../src/widget/playlist.py:307 msgid "Export List" msgstr "导出列表" -#: ../src/widget/playlist.py:265 ../src/widget/playlist.py:441 +#: ../src/widget/playlist.py:308 ../src/widget/playlist.py:484 msgid "Remove List" msgstr "删除列表" -#: ../src/widget/playlist.py:267 ../src/widget/playlist.py:436 -#: ../src/widget/playlist.py:444 +#: ../src/widget/playlist.py:310 ../src/widget/playlist.py:479 +#: ../src/widget/playlist.py:487 msgid "Save all Lists" msgstr "保存所有列表" -#: ../src/widget/playlist.py:440 ../src/widget/playlist.py:450 +#: ../src/widget/playlist.py:483 ../src/widget/playlist.py:493 msgid "Rename" msgstr "重命名" -#: ../src/widget/playlist.py:491 +#: ../src/widget/playlist.py:534 msgid "By Filename" msgstr "按文件名" -#: ../src/widget/playlist.py:492 +#: ../src/widget/playlist.py:535 msgid "By Title" msgstr "按标题" -#: ../src/widget/playlist.py:493 ../src/widget/combo.py:184 +#: ../src/widget/playlist.py:536 ../src/widget/combo.py:184 #: ../src/widget/combo.py:233 msgid "By Artist" msgstr "按艺术家" -#: ../src/widget/playlist.py:494 ../src/widget/combo.py:235 +#: ../src/widget/playlist.py:537 ../src/widget/combo.py:235 msgid "By Album" msgstr "按专辑" -#: ../src/widget/playlist.py:495 ../src/widget/combo.py:234 +#: ../src/widget/playlist.py:538 ../src/widget/combo.py:234 msgid "By Genre" msgstr "按流派" -#: ../src/widget/playlist.py:496 +#: ../src/widget/playlist.py:539 msgid "By Track" msgstr "按音轨" -#: ../src/widget/playlist.py:497 +#: ../src/widget/playlist.py:540 msgid "By Play Count" msgstr "按播放次数" -#: ../src/widget/playlist.py:498 +#: ../src/widget/playlist.py:541 msgid "By Date Added" msgstr "按添加时间" -#: ../src/widget/playlist.py:502 +#: ../src/widget/playlist.py:545 msgid "Randomize" msgstr "随机排序" -#: ../src/widget/playlist.py:508 +#: ../src/widget/playlist.py:551 msgid "move to List" msgstr "移动到列表" -#: ../src/widget/playlist.py:510 +#: ../src/widget/playlist.py:553 msgid "Remove Track" msgstr "删除歌曲" -#: ../src/widget/playlist.py:515 +#: ../src/widget/playlist.py:558 msgid "Sort" msgstr "排序" -#: ../src/widget/lyrics_module.py:148 +#: ../src/widget/lyrics_module.py:151 msgid "increase the lyrics size" msgstr "增大歌词尺寸" -#: ../src/widget/lyrics_module.py:149 +#: ../src/widget/lyrics_module.py:152 msgid "decrease the lyrics size" msgstr "减小歌词尺寸" -#: ../src/widget/lyrics_module.py:151 +#: ../src/widget/lyrics_module.py:154 msgid "Select color theme" msgstr "选择配色" -#: ../src/widget/lyrics_module.py:155 +#: ../src/widget/lyrics_module.py:158 msgid "karaoke on/off" msgstr "启用/关闭卡拉OK模式" -#: ../src/widget/lyrics_module.py:158 +#: ../src/widget/lyrics_module.py:160 msgid "Switch lines" msgstr "切换行数" -#: ../src/widget/lyrics_module.py:159 +#: ../src/widget/lyrics_module.py:162 msgid "Open settings panel" msgstr "打开设置面板" -#: ../src/widget/lyrics_module.py:160 +#: ../src/widget/lyrics_module.py:163 msgid "search lrc file for current track" msgstr "搜索歌词" -#: ../src/widget/lyrics_module.py:161 +#: ../src/widget/lyrics_module.py:164 msgid "Close lyrics" msgstr "关闭歌词" -#: ../src/widget/lyrics_module.py:162 ../src/widget/lyrics_module.py:201 +#: ../src/widget/lyrics_module.py:165 ../src/widget/lyrics_module.py:223 msgid "Lyrics rewind" msgstr "后退歌词" -#: ../src/widget/lyrics_module.py:163 ../src/widget/lyrics_module.py:202 +#: ../src/widget/lyrics_module.py:166 ../src/widget/lyrics_module.py:224 msgid "Lyrics forward" msgstr "前进歌词" -#: ../src/widget/lyrics_module.py:164 ../src/widget/lyrics_module.py:221 +#: ../src/widget/lyrics_module.py:167 ../src/widget/lyrics_module.py:243 msgid "Switch to window mode" msgstr "切换到窗口歌词" -#: ../src/widget/lyrics_module.py:199 +#: ../src/widget/lyrics_module.py:221 msgid "Switch to desktop mode" msgstr "切换到窗口歌词" -#: ../src/widget/lyrics_module.py:204 ../src/widget/lyrics_module.py:214 -#: ../src/widget/lyrics_search.py:58 +#: ../src/widget/lyrics_module.py:226 ../src/widget/lyrics_module.py:236 +#: ../src/widget/lyrics_search.py:59 msgid "Search" msgstr "搜索" -#: ../src/widget/lyrics_module.py:205 ../src/widget/lyrics_module.py:220 +#: ../src/widget/lyrics_module.py:227 ../src/widget/lyrics_module.py:242 msgid "Settings" msgstr "设置" -#: ../src/widget/lyrics_module.py:211 +#: ../src/widget/lyrics_module.py:233 msgid "Forward 0.5 seconds" msgstr "提前0.5秒" -#: ../src/widget/lyrics_module.py:212 +#: ../src/widget/lyrics_module.py:234 msgid "Rewind 0.5 seconds" msgstr "后退0.5秒" -#: ../src/widget/lyrics_module.py:215 +#: ../src/widget/lyrics_module.py:237 msgid "Adjust lyrics" msgstr "调整歌词" -#: ../src/widget/lyrics_module.py:217 +#: ../src/widget/lyrics_module.py:239 msgid "Choose local lrc" -msgstr "关联本地歌词" +msgstr "选择本地歌词" + +#: ../src/widget/lyrics_module.py:247 +msgid "Network get lrc" +msgstr "网络获取歌词" -#: ../src/widget/lyrics_module.py:763 ../src/widget/lyrics_module.py:764 +#: ../src/widget/lyrics_module.py:793 ../src/widget/lyrics_module.py:794 msgid "No lyrics found!" msgstr "没有找到歌词文件!" -#: ../src/widget/lyrics_module.py:766 ../src/widget/lyrics_module.py:767 +#: ../src/widget/lyrics_module.py:796 ../src/widget/lyrics_module.py:797 msgid "Searching for lyrics..." msgstr "正在搜索歌词..." @@ -1227,40 +1235,40 @@ msgid "Lyrics search" msgstr "歌词搜索" -#: ../src/widget/lyrics_search.py:53 +#: ../src/widget/lyrics_search.py:54 msgid "Artist:" msgstr "艺术家:" -#: ../src/widget/lyrics_search.py:54 +#: ../src/widget/lyrics_search.py:55 msgid "Title:" msgstr "标题:" -#: ../src/widget/lyrics_search.py:86 +#: ../src/widget/lyrics_search.py:87 msgid "Download" msgstr "下载" -#: ../src/widget/lyrics_search.py:127 +#: ../src/widget/lyrics_search.py:136 msgid "Now searching..." msgstr "正在搜索..." -#: ../src/widget/lyrics_search.py:129 ../src/widget/lyrics_search.py:154 +#: ../src/widget/lyrics_search.py:138 ../src/widget/lyrics_search.py:163 msgid "Not found!" msgstr "没有找到!" -#: ../src/widget/lyrics_search.py:148 ../src/widget/lyrics_search.py:152 +#: ../src/widget/lyrics_search.py:157 ../src/widget/lyrics_search.py:161 #, python-format msgid "%d lyrics found" msgstr "找到%d歌词" -#: ../src/widget/lyrics_search.py:161 +#: ../src/widget/lyrics_search.py:170 msgid "Downloading lyrics..." msgstr "正在下载歌词..." -#: ../src/widget/lyrics_search.py:171 +#: ../src/widget/lyrics_search.py:180 msgid "File save to" msgstr "文件保存到" -#: ../src/widget/lyrics_search.py:173 +#: ../src/widget/lyrics_search.py:182 msgid "Download failed." msgstr "下载失败。" @@ -1285,7 +1293,7 @@ msgstr "深度音乐" #: ../plugins/musicfm/__init__.py:33 ../plugins/musicfm/__init__.py:35 -#: ../plugins/musicfm/radio_view.py:449 +#: ../plugins/musicfm/radio_view.py:474 msgid "MusicFM" msgstr "音乐电台" diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/locale/zh_HK.po deepin-music-player-1.3.3/locale/zh_HK.po --- deepin-music-player-1.3~raring~NoobsLab.com/locale/zh_HK.po 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/locale/zh_HK.po 2013-09-26 05:29:51.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-13 18:30+0800\n" +"POT-Creation-Date: 2013-09-26 11:30+0800\n" "PO-Revision-Date: 2012-12-29 11:34+0800\n" "Last-Translator: SmallEvilBeast \n" "Language-Team: none\n" @@ -65,124 +65,124 @@ msgid "Unknown" msgstr "未知" -#: ../src/main.py:94 +#: ../src/main.py:103 msgid "Usage: deepin-music-player [OPTION]... [URI]" msgstr "用法: deepin-music-player [選項]... [URI]" -#: ../src/main.py:95 +#: ../src/main.py:104 msgid "Options" msgstr "選項" -#: ../src/main.py:99 +#: ../src/main.py:108 msgid "Control Options" msgstr "控制選項" -#: ../src/main.py:101 +#: ../src/main.py:110 msgid "Play the next track" msgstr "播放下一首" -#: ../src/main.py:103 +#: ../src/main.py:112 msgid "Play the previous track" msgstr "播放上一首" -#: ../src/main.py:105 +#: ../src/main.py:114 msgid "Pause or resume playback" msgstr "暫停/繼續播放" -#: ../src/main.py:107 +#: ../src/main.py:116 msgid "Seek Forward" msgstr "快進" -#: ../src/main.py:109 +#: ../src/main.py:118 msgid "Seek Backward" msgstr "後退" -#: ../src/main.py:111 +#: ../src/main.py:120 msgid "Stop playback" msgstr "停止播放" -#: ../src/main.py:115 +#: ../src/main.py:124 msgid "Volume Options" msgstr "音量選項" -#: ../src/main.py:117 +#: ../src/main.py:126 msgid "Change Volume (VOLUME 0.0-1.0)" msgstr "調整音量 (VOLUME 0.0-1.0)" -#: ../src/main.py:120 +#: ../src/main.py:129 msgid "Track information Options" msgstr "歌曲資訊選項" -#: ../src/main.py:122 +#: ../src/main.py:131 msgid "Print the title of current track" msgstr "查看當前歌曲標題" -#: ../src/main.py:124 +#: ../src/main.py:133 msgid "Print the album of current track" msgstr "查看當前歌曲專輯" -#: ../src/main.py:126 +#: ../src/main.py:135 msgid "Print the artist of current track" msgstr "查看當前歌曲藝術家" -#: ../src/main.py:128 +#: ../src/main.py:137 msgid "Print the length of current track" msgstr "查看當前歌曲時長" -#: ../src/main.py:130 +#: ../src/main.py:139 msgid "Print the path of current track" msgstr "查看當前歌曲路徑" -#: ../src/main.py:132 +#: ../src/main.py:141 msgid "Print current playback position" msgstr "查看當前播放位置" -#: ../src/main.py:135 +#: ../src/main.py:144 msgid "Other Options" msgstr "其他選項" -#: ../src/main.py:137 +#: ../src/main.py:146 msgid "Show this help message and exit" msgstr "顯示幫助資訊並退出" -#: ../src/main.py:139 +#: ../src/main.py:148 msgid "Start new instance" msgstr "啟動新實例" -#: ../src/main.py:141 +#: ../src/main.py:150 msgid "Show program's version number and exit." msgstr "顯示程式版本號並退出" -#: ../src/main.py:143 +#: ../src/main.py:152 msgid "Start minimized" msgstr "啟動後最小化" -#: ../src/main.py:146 +#: ../src/main.py:155 msgid "Toggle visibility of the GUI (if possible)" msgstr "介面可視性切換" -#: ../src/main.py:149 +#: ../src/main.py:158 msgid "Make control options like --play start program if it is not running" msgstr "此選項可以使控制選項來啟動程式" -#: ../src/main.py:152 +#: ../src/main.py:161 msgid "Development/Debug Options" msgstr "開發/調試選項" -#: ../src/main.py:153 +#: ../src/main.py:162 msgid "Change debug level (0-9)" msgstr "設置調試級別(0-9)" -#: ../src/main.py:157 +#: ../src/main.py:166 msgid "Show information about supported audio file" msgstr "顯示所支持音頻檔的資訊" -#: ../src/main.py:163 ../src/widget/global_keys.py:95 +#: ../src/main.py:172 ../src/widget/global_keys.py:95 #: ../src/widget/information.py:40 ../src/widget/information.py:82 -#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:748 -#: ../src/widget/preference.py:568 ../src/widget/preference.py:578 -#: ../src/widget/preference.py:889 ../src/widget/instance.py:92 -#: ../src/widget/dummy_lyrics.py:208 ../src/widget/tray.py:156 +#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:749 +#: ../src/widget/preference.py:579 ../src/widget/preference.py:589 +#: ../src/widget/preference.py:900 ../src/widget/instance.py:92 +#: ../src/widget/tray.py:156 msgid "DMusic" msgstr "深度音樂" @@ -228,18 +228,18 @@ msgstr "音頻CD" #: ../src/widget/song_editor.py:72 ../src/widget/song_editor.py:202 -#: ../src/widget/song_view.py:649 ../src/widget/lyrics_search.py:82 +#: ../src/widget/song_view.py:680 ../src/widget/lyrics_search.py:83 msgid "Title" msgstr "標題" #: ../src/widget/song_editor.py:73 ../src/widget/song_editor.py:203 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:85 -#: ../src/widget/lyrics_search.py:82 ../plugins/notify/__init__.py:43 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:85 +#: ../src/widget/lyrics_search.py:83 ../plugins/notify/__init__.py:43 msgid "Artist" msgstr "藝術家" #: ../src/widget/song_editor.py:74 ../src/widget/song_editor.py:204 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:87 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:87 #: ../plugins/notify/__init__.py:45 msgid "Album" msgstr "專輯" @@ -248,12 +248,12 @@ msgid "Type" msgstr "類型" -#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:421 +#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:433 msgid "Format" msgstr "格式" -#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:675 -#: ../src/widget/preference.py:828 ../src/widget/song_notify.py:193 +#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:686 +#: ../src/widget/preference.py:839 ../src/widget/song_notify.py:193 msgid "Size" msgstr "大小" @@ -289,8 +289,8 @@ msgid "Location" msgstr "檔位置" -#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:355 -#: ../src/widget/playlist.py:517 ../src/widget/lyrics_module.py:218 +#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:367 +#: ../src/widget/playlist.py:560 ../src/widget/lyrics_module.py:240 msgid "Open directory" msgstr "打開目錄" @@ -303,53 +303,57 @@ msgid "Save" msgstr "保存" -#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:463 +#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:475 #: ../src/widget/preference.py:252 msgid "Change" msgstr "更改" -#: ../src/widget/song_editor.py:298 ../src/widget/equalizer.py:252 +#: ../src/widget/song_editor.py:299 +msgid "Retrieve from the Internet" +msgstr "網絡獲取" + +#: ../src/widget/song_editor.py:302 ../src/widget/equalizer.py:252 #: ../src/widget/preference.py:375 msgid "Reset" msgstr "重置" -#: ../src/widget/song_editor.py:316 ../src/widget/local_browser.py:344 +#: ../src/widget/song_editor.py:321 ../src/widget/local_browser.py:343 msgid "Select image" msgstr "選擇圖片" -#: ../src/widget/song_editor.py:326 ../src/widget/song_view.py:762 -#: ../src/widget/playlist.py:518 +#: ../src/widget/song_editor.py:335 ../src/widget/song_view.py:793 +#: ../src/widget/playlist.py:561 msgid "Properties" msgstr "屬性" -#: ../src/widget/song_editor.py:329 ../src/widget/equalizer.py:250 -#: ../src/widget/ui.py:1142 ../src/widget/converter.py:382 -#: ../src/widget/converter.py:437 ../src/widget/preference.py:934 -#: ../src/widget/lyrics_search.py:88 +#: ../src/widget/song_editor.py:338 ../src/widget/equalizer.py:250 +#: ../src/widget/ui.py:1248 ../src/widget/converter.py:394 +#: ../src/widget/converter.py:449 ../src/widget/preference.py:945 +#: ../src/widget/lyrics_search.py:89 msgid "Close" msgstr "關閉" -#: ../src/widget/song_editor.py:332 ../src/widget/headerbar.py:70 -#: ../src/widget/preference.py:369 ../src/widget/instance.py:328 +#: ../src/widget/song_editor.py:341 ../src/widget/headerbar.py:72 +#: ../src/widget/preference.py:369 ../src/widget/instance.py:329 #: ../src/widget/tray.py:63 msgid "Previous" msgstr "上一首" -#: ../src/widget/song_editor.py:334 ../src/widget/headerbar.py:71 -#: ../src/widget/preference.py:370 ../src/widget/instance.py:329 +#: ../src/widget/song_editor.py:343 ../src/widget/headerbar.py:73 +#: ../src/widget/preference.py:370 ../src/widget/instance.py:330 #: ../src/widget/tray.py:64 msgid "Next" msgstr "下一首" -#: ../src/widget/song_editor.py:358 +#: ../src/widget/song_editor.py:367 msgid "Track Infomation" msgstr "歌詞資訊" -#: ../src/widget/song_editor.py:359 +#: ../src/widget/song_editor.py:368 msgid "Edit tags" msgstr "資訊設置" -#: ../src/widget/song_editor.py:360 +#: ../src/widget/song_editor.py:369 msgid "Edit cover" msgstr "封面設置" @@ -425,7 +429,7 @@ msgid "Techno" msgstr "電子" -#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:360 +#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:362 msgid "Equalizer" msgstr "均衡器" @@ -455,21 +459,21 @@ msgstr "正在緩衝" #: ../src/widget/webcast_view.py:114 ../src/widget/webcast_view.py:120 -#: ../src/widget/playlist.py:86 ../plugins/musicfm/radio_view.py:129 -#: ../plugins/musicfm/radio_view.py:135 +#: ../src/widget/playlist.py:103 ../plugins/musicfm/radio_view.py:134 +#: ../plugins/musicfm/radio_view.py:140 msgid "Delete" msgstr "刪除" #: ../src/widget/webcast_view.py:115 ../src/widget/webcast_view.py:123 -#: ../src/widget/playlist.py:512 ../plugins/musicfm/radio_view.py:130 -#: ../plugins/musicfm/radio_view.py:136 +#: ../src/widget/playlist.py:555 ../plugins/musicfm/radio_view.py:135 +#: ../plugins/musicfm/radio_view.py:141 msgid "Clear List" msgstr "清空列表" #: ../src/widget/webcast_view.py:119 ../src/widget/webcast_view.py:338 -#: ../src/widget/instance.py:319 ../src/widget/song_view.py:754 -#: ../src/widget/playlist.py:506 ../src/widget/tray.py:58 -#: ../plugins/musicfm/radio_view.py:134 +#: ../src/widget/instance.py:320 ../src/widget/song_view.py:785 +#: ../src/widget/playlist.py:549 ../src/widget/tray.py:58 +#: ../plugins/musicfm/radio_view.py:139 msgid "Play" msgstr "播放" @@ -482,149 +486,149 @@ msgstr "添加到收藏" #: ../src/widget/webcast_view.py:333 ../src/widget/webcast_view.py:339 -#: ../src/widget/song_view.py:755 +#: ../src/widget/song_view.py:786 msgid "Add to Playlist" msgstr "添加到播放列表" #: ../src/widget/webcast_view.py:450 ../plugins/webcast/__init__.py:34 #: ../plugins/webcast/__init__.py:36 msgid "Radio" -msgstr "網路廣播" +msgstr "網絡電台" -#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:786 +#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:817 #: ../src/widget/local_tab.py:28 msgid "Library" msgstr "本地音樂" -#: ../src/widget/lyrics.py:733 +#: ../src/widget/lyrics.py:734 msgid "Lyrics window" msgstr "窗口歌詞" -#: ../src/widget/ui.py:201 +#: ../src/widget/ui.py:203 msgid "Need some music? Find it here..." -msgstr "找音樂,在這裏..." +msgstr "找音樂,在這裡..." -#: ../src/widget/ui.py:399 +#: ../src/widget/ui.py:401 msgid "Add Music" msgstr "添加本地音樂" -#: ../src/widget/ui.py:1012 +#: ../src/widget/ui.py:1118 msgid "Your search {keyword} did not match any items in {from}" msgstr "在{from}中未發現與{keyword}關聯的內容" -#: ../src/widget/ui.py:1013 +#: ../src/widget/ui.py:1119 msgid "Suggestions" -msgstr "提請" +msgstr "建議" -#: ../src/widget/ui.py:1014 +#: ../src/widget/ui.py:1120 msgid "Make sure all words are spelled correctly." msgstr "確保全部單詞拼寫正確。" -#: ../src/widget/ui.py:1015 +#: ../src/widget/ui.py:1121 msgid "" "Try more general keywords, such as a title, an artist or the name of an " "album." msgstr "請嘗試更多關鍵字搜索,如標題、藝人或專輯名稱。" -#: ../src/widget/ui.py:1112 ../src/widget/plugins_view.py:163 +#: ../src/widget/ui.py:1218 ../src/widget/plugins_view.py:166 msgid "Add-on" msgstr "附加元件" -#: ../src/widget/ui.py:1120 +#: ../src/widget/ui.py:1226 msgid "Author(s)" msgstr "作者" -#: ../src/widget/ui.py:1150 ../src/widget/preference.py:195 +#: ../src/widget/ui.py:1256 ../src/widget/preference.py:195 msgid "Minimize to tray" msgstr "最小化到託盤" -#: ../src/widget/ui.py:1152 ../src/widget/preference.py:196 -#: ../src/widget/instance.py:371 ../src/widget/tray.py:83 +#: ../src/widget/ui.py:1258 ../src/widget/preference.py:196 +#: ../src/widget/instance.py:373 ../src/widget/tray.py:83 msgid "Quit" msgstr "退出" -#: ../src/widget/ui.py:1156 +#: ../src/widget/ui.py:1262 msgid "Don't prompt again" msgstr "下次不再提示" -#: ../src/widget/ui.py:1163 +#: ../src/widget/ui.py:1269 msgid "OK" msgstr "確定" -#: ../src/widget/ui.py:1166 +#: ../src/widget/ui.py:1272 msgid "Cancel" msgstr "取消" -#: ../src/widget/headerbar.py:62 ../src/widget/preference.py:368 +#: ../src/widget/headerbar.py:64 ../src/widget/preference.py:368 msgid "Play/Pause" msgstr "暫停/繼續" -#: ../src/widget/headerbar.py:76 +#: ../src/widget/headerbar.py:78 msgid "Show/Hide Lyrics" msgstr "打開/關閉歌詞" -#: ../src/widget/converter.py:297 ../src/widget/song_view.py:406 -#: ../src/widget/song_view.py:749 ../src/widget/local_browser.py:340 +#: ../src/widget/converter.py:309 ../src/widget/song_view.py:437 +#: ../src/widget/song_view.py:780 ../src/widget/local_browser.py:339 msgid "Prompt" msgstr "提示" -#: ../src/widget/converter.py:297 +#: ../src/widget/converter.py:309 msgid "Target file already exitsts, do you want to overwrite it?" msgstr "目標檔已存在,是否覆蓋?" -#: ../src/widget/converter.py:357 +#: ../src/widget/converter.py:369 msgid "Delete task" msgstr "刪除任務" -#: ../src/widget/converter.py:358 +#: ../src/widget/converter.py:370 msgid "Clear finished tasks" msgstr "清空已完成的任務" -#: ../src/widget/converter.py:364 ../src/widget/instance.py:340 +#: ../src/widget/converter.py:376 ../src/widget/instance.py:341 msgid "Task Manager" msgstr "任務管理器" -#: ../src/widget/converter.py:380 ../src/widget/converter.py:400 -#: ../src/widget/converter.py:403 ../src/widget/instance.py:322 +#: ../src/widget/converter.py:392 ../src/widget/converter.py:412 +#: ../src/widget/converter.py:415 ../src/widget/instance.py:323 #: ../src/widget/tray.py:61 msgid "Pause" msgstr "暫停" -#: ../src/widget/converter.py:401 +#: ../src/widget/converter.py:413 msgid "Continue" msgstr "繼續" -#: ../src/widget/converter.py:415 ../src/widget/instance.py:339 -#: ../src/widget/instance.py:361 ../src/widget/song_view.py:761 -#: ../src/widget/playlist.py:516 +#: ../src/widget/converter.py:427 ../src/widget/instance.py:340 +#: ../src/widget/instance.py:363 ../src/widget/song_view.py:792 +#: ../src/widget/playlist.py:559 msgid "Convert" msgstr "格式轉換器" -#: ../src/widget/converter.py:424 +#: ../src/widget/converter.py:436 msgid "Quality" msgstr "品質" -#: ../src/widget/converter.py:432 +#: ../src/widget/converter.py:444 msgid "Target file already exists" msgstr "目標檔存在時" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Ask" msgstr "詢問" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Cover" msgstr "覆蓋" -#: ../src/widget/converter.py:436 +#: ../src/widget/converter.py:448 msgid "Start" msgstr "開始" -#: ../src/widget/converter.py:438 +#: ../src/widget/converter.py:450 msgid "Add to Playlist when finished" msgstr "當轉換完成後添加到播放列表" -#: ../src/widget/converter.py:460 +#: ../src/widget/converter.py:472 msgid "Output" msgstr "輸出目錄" @@ -676,7 +680,7 @@ msgid "Lyrics directory" msgstr "歌詞保存目錄" -#: ../src/widget/preference.py:346 ../src/widget/preference.py:986 +#: ../src/widget/preference.py:346 ../src/widget/preference.py:997 msgid "Hotkeys" msgstr "熱鍵設置" @@ -704,122 +708,122 @@ msgid "Decrease volume" msgstr "減小音量" -#: ../src/widget/preference.py:590 ../src/widget/preference.py:602 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:601 ../src/widget/preference.py:613 +#: ../src/widget/preference.py:845 msgid "Left" msgstr "左對齊" -#: ../src/widget/preference.py:591 ../src/widget/preference.py:603 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:602 ../src/widget/preference.py:614 +#: ../src/widget/preference.py:845 msgid "Centered" msgstr "居中對齊" -#: ../src/widget/preference.py:592 ../src/widget/preference.py:604 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:603 ../src/widget/preference.py:615 +#: ../src/widget/preference.py:845 msgid "Right" msgstr "右對齊" -#: ../src/widget/preference.py:605 +#: ../src/widget/preference.py:616 msgid "Justified" msgstr "兩端對齊" -#: ../src/widget/preference.py:616 ../src/widget/lyrics_module.py:425 +#: ../src/widget/preference.py:627 ../src/widget/lyrics_module.py:455 msgid "Vitality yellow" msgstr "活力黃" -#: ../src/widget/preference.py:617 ../src/widget/lyrics_module.py:426 +#: ../src/widget/preference.py:628 ../src/widget/lyrics_module.py:456 msgid "Fresh green" msgstr "清新綠" -#: ../src/widget/preference.py:618 ../src/widget/lyrics_module.py:427 +#: ../src/widget/preference.py:629 ../src/widget/lyrics_module.py:457 msgid "Playful pink" msgstr "俏皮粉" -#: ../src/widget/preference.py:619 ../src/widget/lyrics_module.py:428 +#: ../src/widget/preference.py:630 ../src/widget/lyrics_module.py:458 msgid "Cool blue" msgstr "清爽藍" -#: ../src/widget/preference.py:631 +#: ../src/widget/preference.py:642 msgid "Color scheme" msgstr "配色方案" -#: ../src/widget/preference.py:639 ../src/widget/preference.py:796 +#: ../src/widget/preference.py:650 ../src/widget/preference.py:807 msgid "Regular" msgstr "常規" -#: ../src/widget/preference.py:640 ../src/widget/preference.py:797 +#: ../src/widget/preference.py:651 ../src/widget/preference.py:808 msgid "Italic" msgstr "傾斜" -#: ../src/widget/preference.py:641 ../src/widget/preference.py:798 +#: ../src/widget/preference.py:652 ../src/widget/preference.py:809 msgid "Bold" msgstr "粗體" -#: ../src/widget/preference.py:642 ../src/widget/preference.py:799 +#: ../src/widget/preference.py:653 ../src/widget/preference.py:810 msgid "Bold Italic" msgstr "粗體 傾斜" -#: ../src/widget/preference.py:652 ../src/widget/preference.py:807 +#: ../src/widget/preference.py:663 ../src/widget/preference.py:818 msgid "Style" msgstr "字型" -#: ../src/widget/preference.py:660 ../src/widget/preference.py:813 +#: ../src/widget/preference.py:671 ../src/widget/preference.py:824 msgid "Lyrics style" msgstr "歌詞樣式" -#: ../src/widget/preference.py:670 ../src/widget/preference.py:822 +#: ../src/widget/preference.py:681 ../src/widget/preference.py:833 msgid "Font" msgstr "字體" -#: ../src/widget/preference.py:678 +#: ../src/widget/preference.py:689 msgid "Lines" msgstr "行數" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Single" msgstr "單行" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Double" msgstr "雙行" -#: ../src/widget/preference.py:682 ../src/widget/preference.py:832 +#: ../src/widget/preference.py:693 ../src/widget/preference.py:843 msgid "Alignment" msgstr "對齊" -#: ../src/widget/preference.py:691 +#: ../src/widget/preference.py:702 msgid "Outline" msgstr "輪廓" -#: ../src/widget/preference.py:695 +#: ../src/widget/preference.py:706 msgid "Stroke" msgstr "描邊" -#: ../src/widget/preference.py:700 ../src/widget/preference.py:844 +#: ../src/widget/preference.py:711 ../src/widget/preference.py:855 msgid "Coming" msgstr "未播放" -#: ../src/widget/preference.py:711 ../src/widget/preference.py:845 +#: ../src/widget/preference.py:722 ../src/widget/preference.py:856 msgid "Played" msgstr "已播放" -#: ../src/widget/preference.py:839 +#: ../src/widget/preference.py:850 msgid "Rolling" msgstr "滾動方式" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "Always" msgstr "總是滾動" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "By line" msgstr "按行滾動" -#: ../src/widget/preference.py:894 ../src/widget/plugins_view.py:163 +#: ../src/widget/preference.py:905 ../src/widget/plugins_view.py:166 msgid "Version" msgstr "版本" -#: ../src/widget/preference.py:909 +#: ../src/widget/preference.py:920 msgid "" " DMusic is a music application designed for Linux users.It features " "lyrics searching and downloading, desktop lyrics display,album cover " @@ -831,34 +835,34 @@ "下載,桌面歌詞顯示,專輯封面下載,歌曲記憶播放,獨創音樂管理,自定義換膚等幾大特" "點.\n" "\n" -"深度音樂是自由軟體,遵循自由軟體基金會發佈的 GNU 通用公共許可證第三版." +"深度音樂是自由軟件,遵循自由軟件基金會發佈的 GNU 通用公共許可證第三版." -#: ../src/widget/preference.py:927 ../src/widget/instance.py:369 +#: ../src/widget/preference.py:938 ../src/widget/instance.py:371 #: ../src/widget/tray.py:82 msgid "Preferences" msgstr "選項設置" -#: ../src/widget/preference.py:985 +#: ../src/widget/preference.py:996 msgid "General" msgstr "常規設置" -#: ../src/widget/preference.py:987 +#: ../src/widget/preference.py:998 msgid "Lyrics" msgstr "歌詞設置" -#: ../src/widget/preference.py:988 +#: ../src/widget/preference.py:999 msgid "Desktop" msgstr "桌面歌詞" -#: ../src/widget/preference.py:989 +#: ../src/widget/preference.py:1000 msgid "Window" msgstr "窗口歌詞" -#: ../src/widget/preference.py:990 +#: ../src/widget/preference.py:1001 msgid "Add-ons" msgstr "附加元件" -#: ../src/widget/preference.py:991 +#: ../src/widget/preference.py:1002 msgid "About" msgstr "關於" @@ -866,57 +870,57 @@ msgid "Join us" msgstr "加入我們" -#: ../src/widget/instance.py:326 +#: ../src/widget/instance.py:327 msgid "Forward" msgstr "快進" -#: ../src/widget/instance.py:327 +#: ../src/widget/instance.py:328 msgid "Rewind" msgstr "後退" -#: ../src/widget/instance.py:356 ../src/widget/playlist.py:80 +#: ../src/widget/instance.py:358 ../src/widget/playlist.py:97 msgid "Add" msgstr "添加時間:" -#: ../src/widget/instance.py:357 +#: ../src/widget/instance.py:359 msgid "Controls" msgstr "播放控制" -#: ../src/widget/instance.py:358 ../src/widget/playlist.py:83 -#: ../src/widget/playlist.py:514 +#: ../src/widget/instance.py:360 ../src/widget/playlist.py:100 +#: ../src/widget/playlist.py:557 msgid "Playback Order" msgstr "播放模式" -#: ../src/widget/instance.py:368 +#: ../src/widget/instance.py:370 msgid "View New Features" msgstr "查看新特性" -#: ../src/widget/instance.py:375 ../src/widget/tray.py:72 +#: ../src/widget/instance.py:377 ../src/widget/tray.py:72 msgid "Search Lyrics" msgstr "搜索歌詞" -#: ../src/widget/instance.py:394 ../src/widget/tray.py:71 +#: ../src/widget/instance.py:396 ../src/widget/tray.py:71 msgid "Hide Lyrics" msgstr "關閉歌詞" -#: ../src/widget/instance.py:396 ../src/widget/tray.py:74 +#: ../src/widget/instance.py:398 ../src/widget/tray.py:74 msgid "Show Lyrics" msgstr "打開歌詞" -#: ../src/widget/instance.py:400 ../src/widget/tray.py:77 +#: ../src/widget/instance.py:402 ../src/widget/tray.py:77 msgid "Unlock lyrics" msgstr "解鎖歌詞" -#: ../src/widget/instance.py:402 ../src/widget/lyrics_module.py:152 +#: ../src/widget/instance.py:404 ../src/widget/lyrics_module.py:155 #: ../src/widget/tray.py:79 msgid "Lock lyrics" msgstr "鎖定歌詞" -#: ../src/widget/instance.py:477 +#: ../src/widget/instance.py:479 msgid "Mini Mode" msgstr "迷你模式" -#: ../src/widget/instance.py:479 +#: ../src/widget/instance.py:481 msgid "Normal Mode" msgstr "普通模式" @@ -924,81 +928,81 @@ msgid "jobs waiting!" msgstr "個任務在等待!" -#: ../src/widget/song_view.py:406 ../src/widget/song_view.py:749 -#: ../src/widget/local_browser.py:340 +#: ../src/widget/song_view.py:437 ../src/widget/song_view.py:780 +#: ../src/widget/local_browser.py:339 msgid "Are you sure you want to delete them?" -msgstr "您確定要刪除嗎?" +msgstr "是否要刪除以下檔案?" -#: ../src/widget/song_view.py:450 +#: ../src/widget/song_view.py:481 msgid "Repeat (single)" msgstr "單曲迴圈" -#: ../src/widget/song_view.py:451 +#: ../src/widget/song_view.py:482 msgid "Play (ordered)" msgstr "順序播放" -#: ../src/widget/song_view.py:452 +#: ../src/widget/song_view.py:483 msgid "Repeat (list)" msgstr "列表迴圈" -#: ../src/widget/song_view.py:453 +#: ../src/widget/song_view.py:484 msgid "Random" msgstr "隨機排序" -#: ../src/widget/song_view.py:476 +#: ../src/widget/song_view.py:507 msgid "Remove Track from this List" msgstr "刪除選中歌曲" -#: ../src/widget/song_view.py:477 +#: ../src/widget/song_view.py:508 msgid "Remove Unavailable Tracks" msgstr "刪除錯誤歌曲" -#: ../src/widget/song_view.py:478 ../src/widget/song_view.py:758 -#: ../src/widget/local_browser.py:355 ../src/widget/playlist.py:511 +#: ../src/widget/song_view.py:509 ../src/widget/song_view.py:789 +#: ../src/widget/local_browser.py:354 ../src/widget/playlist.py:554 msgid "Move to Trash" msgstr "移動到回收站" -#: ../src/widget/song_view.py:479 +#: ../src/widget/song_view.py:510 msgid "Clear list" msgstr "清空列表" -#: ../src/widget/song_view.py:490 +#: ../src/widget/song_view.py:521 msgid "URL" msgstr "添加指定URL" -#: ../src/widget/song_view.py:491 ../src/widget/song_view.py:499 +#: ../src/widget/song_view.py:522 ../src/widget/song_view.py:530 msgid "File" msgstr "檔" -#: ../src/widget/song_view.py:492 +#: ../src/widget/song_view.py:523 msgid "Directory (include subdirectories)" msgstr "檔夾(包含子目錄)" -#: ../src/widget/song_view.py:493 ../src/widget/song_view.py:501 +#: ../src/widget/song_view.py:524 ../src/widget/song_view.py:532 msgid "Directory" msgstr "檔夾" -#: ../src/widget/song_view.py:500 +#: ../src/widget/song_view.py:531 msgid "Directory(include subdirectories)" msgstr "檔夾(包含子目錄)" -#: ../src/widget/song_view.py:511 +#: ../src/widget/song_view.py:542 msgid "Add URL" msgstr "添加指定URL" -#: ../src/widget/song_view.py:649 +#: ../src/widget/song_view.py:680 msgid "Added time" msgstr "添加時間" -#: ../src/widget/song_view.py:757 ../src/widget/local_browser.py:354 +#: ../src/widget/song_view.py:788 ../src/widget/local_browser.py:353 msgid "Remove from Library" msgstr "從歌曲庫中移除" -#: ../src/widget/song_view.py:760 ../src/widget/local_browser.py:360 +#: ../src/widget/song_view.py:791 ../src/widget/local_browser.py:359 msgid "Open Directory" msgstr "打開目錄" -#: ../src/widget/plugins_view.py:163 +#: ../src/widget/plugins_view.py:166 msgid "Enable" msgstr "啟用" @@ -1018,188 +1022,192 @@ msgid "Refresh" msgstr "刷新歌曲庫" -#: ../src/widget/local_browser.py:351 +#: ../src/widget/local_browser.py:350 msgid "Play All" msgstr "播放全部" -#: ../src/widget/local_browser.py:352 ../src/widget/playlist.py:507 +#: ../src/widget/local_browser.py:351 ../src/widget/playlist.py:550 msgid "Add to List" msgstr "添加到列表" -#: ../src/widget/local_browser.py:362 +#: ../src/widget/local_browser.py:361 msgid "Change Cover" msgstr "更改封面" -#: ../src/widget/playlist.py:77 +#: ../src/widget/playlist.py:94 msgid "Search in Current Playlist" msgstr "從當前播放列表檢索歌曲" -#: ../src/widget/playlist.py:79 +#: ../src/widget/playlist.py:96 msgid "Playlist Operations" msgstr "播放列表操作" -#: ../src/widget/playlist.py:165 +#: ../src/widget/playlist.py:183 msgid "Default List" msgstr "默認列表" -#: ../src/widget/playlist.py:261 ../src/widget/playlist.py:273 -#: ../src/widget/playlist.py:274 ../src/widget/playlist.py:314 -#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:433 +#: ../src/widget/playlist.py:304 ../src/widget/playlist.py:316 +#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:357 +#: ../src/widget/playlist.py:360 ../src/widget/playlist.py:476 msgid "New List" msgstr "新建列表" -#: ../src/widget/playlist.py:262 ../src/widget/playlist.py:434 +#: ../src/widget/playlist.py:305 ../src/widget/playlist.py:477 msgid "Import List" msgstr "導入列表" -#: ../src/widget/playlist.py:263 ../src/widget/playlist.py:442 +#: ../src/widget/playlist.py:306 ../src/widget/playlist.py:485 msgid "Open List" msgstr "打開列表" -#: ../src/widget/playlist.py:264 +#: ../src/widget/playlist.py:307 msgid "Export List" msgstr "導出列表" -#: ../src/widget/playlist.py:265 ../src/widget/playlist.py:441 +#: ../src/widget/playlist.py:308 ../src/widget/playlist.py:484 msgid "Remove List" msgstr "刪除列表" -#: ../src/widget/playlist.py:267 ../src/widget/playlist.py:436 -#: ../src/widget/playlist.py:444 +#: ../src/widget/playlist.py:310 ../src/widget/playlist.py:479 +#: ../src/widget/playlist.py:487 msgid "Save all Lists" msgstr "保存所有列表" -#: ../src/widget/playlist.py:440 ../src/widget/playlist.py:450 +#: ../src/widget/playlist.py:483 ../src/widget/playlist.py:493 msgid "Rename" msgstr "重命名" -#: ../src/widget/playlist.py:491 +#: ../src/widget/playlist.py:534 msgid "By Filename" msgstr "按文件名" -#: ../src/widget/playlist.py:492 +#: ../src/widget/playlist.py:535 msgid "By Title" msgstr "按標題" -#: ../src/widget/playlist.py:493 ../src/widget/combo.py:184 +#: ../src/widget/playlist.py:536 ../src/widget/combo.py:184 #: ../src/widget/combo.py:233 msgid "By Artist" msgstr "按藝術家" -#: ../src/widget/playlist.py:494 ../src/widget/combo.py:235 +#: ../src/widget/playlist.py:537 ../src/widget/combo.py:235 msgid "By Album" msgstr "按專輯" -#: ../src/widget/playlist.py:495 ../src/widget/combo.py:234 +#: ../src/widget/playlist.py:538 ../src/widget/combo.py:234 msgid "By Genre" msgstr "按流派" -#: ../src/widget/playlist.py:496 +#: ../src/widget/playlist.py:539 msgid "By Track" msgstr "按音軌" -#: ../src/widget/playlist.py:497 +#: ../src/widget/playlist.py:540 msgid "By Play Count" msgstr "按播放次數" -#: ../src/widget/playlist.py:498 +#: ../src/widget/playlist.py:541 msgid "By Date Added" msgstr "按添加時間" -#: ../src/widget/playlist.py:502 +#: ../src/widget/playlist.py:545 msgid "Randomize" msgstr "隨機排序" -#: ../src/widget/playlist.py:508 +#: ../src/widget/playlist.py:551 msgid "move to List" msgstr "移動到列表" -#: ../src/widget/playlist.py:510 +#: ../src/widget/playlist.py:553 msgid "Remove Track" msgstr "刪除歌曲" -#: ../src/widget/playlist.py:515 +#: ../src/widget/playlist.py:558 msgid "Sort" msgstr "排序" -#: ../src/widget/lyrics_module.py:148 +#: ../src/widget/lyrics_module.py:151 msgid "increase the lyrics size" msgstr "增大歌詞尺寸" -#: ../src/widget/lyrics_module.py:149 +#: ../src/widget/lyrics_module.py:152 msgid "decrease the lyrics size" msgstr "減小歌詞尺寸" -#: ../src/widget/lyrics_module.py:151 +#: ../src/widget/lyrics_module.py:154 msgid "Select color theme" msgstr "選擇配色" -#: ../src/widget/lyrics_module.py:155 +#: ../src/widget/lyrics_module.py:158 msgid "karaoke on/off" msgstr "啟用/關閉卡拉OK模式" -#: ../src/widget/lyrics_module.py:158 +#: ../src/widget/lyrics_module.py:160 msgid "Switch lines" msgstr "切換行數" -#: ../src/widget/lyrics_module.py:159 +#: ../src/widget/lyrics_module.py:162 msgid "Open settings panel" msgstr "打開設置面板" -#: ../src/widget/lyrics_module.py:160 +#: ../src/widget/lyrics_module.py:163 msgid "search lrc file for current track" msgstr "搜索歌詞" -#: ../src/widget/lyrics_module.py:161 +#: ../src/widget/lyrics_module.py:164 msgid "Close lyrics" msgstr "關閉歌詞" -#: ../src/widget/lyrics_module.py:162 ../src/widget/lyrics_module.py:201 +#: ../src/widget/lyrics_module.py:165 ../src/widget/lyrics_module.py:223 msgid "Lyrics rewind" msgstr "後退歌詞" -#: ../src/widget/lyrics_module.py:163 ../src/widget/lyrics_module.py:202 +#: ../src/widget/lyrics_module.py:166 ../src/widget/lyrics_module.py:224 msgid "Lyrics forward" msgstr "前進歌詞" -#: ../src/widget/lyrics_module.py:164 ../src/widget/lyrics_module.py:221 +#: ../src/widget/lyrics_module.py:167 ../src/widget/lyrics_module.py:243 msgid "Switch to window mode" msgstr "切換到窗口歌詞" -#: ../src/widget/lyrics_module.py:199 +#: ../src/widget/lyrics_module.py:221 msgid "Switch to desktop mode" msgstr "切換到窗口歌詞" -#: ../src/widget/lyrics_module.py:204 ../src/widget/lyrics_module.py:214 -#: ../src/widget/lyrics_search.py:58 +#: ../src/widget/lyrics_module.py:226 ../src/widget/lyrics_module.py:236 +#: ../src/widget/lyrics_search.py:59 msgid "Search" msgstr "搜索" -#: ../src/widget/lyrics_module.py:205 ../src/widget/lyrics_module.py:220 +#: ../src/widget/lyrics_module.py:227 ../src/widget/lyrics_module.py:242 msgid "Settings" msgstr "設置" -#: ../src/widget/lyrics_module.py:211 +#: ../src/widget/lyrics_module.py:233 msgid "Forward 0.5 seconds" msgstr "提前0.5秒" -#: ../src/widget/lyrics_module.py:212 +#: ../src/widget/lyrics_module.py:234 msgid "Rewind 0.5 seconds" msgstr "後退0.5秒" -#: ../src/widget/lyrics_module.py:215 +#: ../src/widget/lyrics_module.py:237 msgid "Adjust lyrics" msgstr "調整歌詞" -#: ../src/widget/lyrics_module.py:217 +#: ../src/widget/lyrics_module.py:239 msgid "Choose local lrc" -msgstr "關聯本地歌詞" +msgstr "選擇本地歌詞" + +#: ../src/widget/lyrics_module.py:247 +msgid "Network get lrc" +msgstr "網絡穫取歌詞" -#: ../src/widget/lyrics_module.py:763 ../src/widget/lyrics_module.py:764 +#: ../src/widget/lyrics_module.py:793 ../src/widget/lyrics_module.py:794 msgid "No lyrics found!" msgstr "沒有找到歌詞檔!" -#: ../src/widget/lyrics_module.py:766 ../src/widget/lyrics_module.py:767 +#: ../src/widget/lyrics_module.py:796 ../src/widget/lyrics_module.py:797 msgid "Searching for lyrics..." msgstr "正在搜索歌詞..." @@ -1227,40 +1235,40 @@ msgid "Lyrics search" msgstr "歌詞搜索" -#: ../src/widget/lyrics_search.py:53 +#: ../src/widget/lyrics_search.py:54 msgid "Artist:" msgstr "藝術家:" -#: ../src/widget/lyrics_search.py:54 +#: ../src/widget/lyrics_search.py:55 msgid "Title:" msgstr "標題:" -#: ../src/widget/lyrics_search.py:86 +#: ../src/widget/lyrics_search.py:87 msgid "Download" msgstr "下載" -#: ../src/widget/lyrics_search.py:127 +#: ../src/widget/lyrics_search.py:136 msgid "Now searching..." msgstr "正在搜索..." -#: ../src/widget/lyrics_search.py:129 ../src/widget/lyrics_search.py:154 +#: ../src/widget/lyrics_search.py:138 ../src/widget/lyrics_search.py:163 msgid "Not found!" msgstr "沒有找到!" -#: ../src/widget/lyrics_search.py:148 ../src/widget/lyrics_search.py:152 +#: ../src/widget/lyrics_search.py:157 ../src/widget/lyrics_search.py:161 #, python-format msgid "%d lyrics found" msgstr "找到%d歌詞" -#: ../src/widget/lyrics_search.py:161 +#: ../src/widget/lyrics_search.py:170 msgid "Downloading lyrics..." msgstr "正在下載歌詞..." -#: ../src/widget/lyrics_search.py:171 +#: ../src/widget/lyrics_search.py:180 msgid "File save to" msgstr "檔保存到" -#: ../src/widget/lyrics_search.py:173 +#: ../src/widget/lyrics_search.py:182 msgid "Download failed." msgstr "下載失敗" @@ -1285,9 +1293,9 @@ msgstr "深度音樂" #: ../plugins/musicfm/__init__.py:33 ../plugins/musicfm/__init__.py:35 -#: ../plugins/musicfm/radio_view.py:449 +#: ../plugins/musicfm/radio_view.py:474 msgid "MusicFM" -msgstr "音樂電臺" +msgstr "音樂電台" #: ../plugins/musicfm/radio_item.py:508 msgid "More" diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/locale/zh_TW.po deepin-music-player-1.3.3/locale/zh_TW.po --- deepin-music-player-1.3~raring~NoobsLab.com/locale/zh_TW.po 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/locale/zh_TW.po 2013-10-10 07:22:37.000000000 +0000 @@ -1,5 +1,5 @@ # Chinese(HK) translations for PACKAGE package -# Deepin Music Player 軟體包的繁體中文(TW)翻譯. +# Deepin Music Player 套件的繁體中文(TW)翻譯. # Copyright (C) 2012 THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Wangdianjin, , 2012 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-06-13 18:30+0800\n" +"POT-Creation-Date: 2013-09-26 11:30+0800\n" "PO-Revision-Date: 2012-12-29 11:34+0800\n" "Last-Translator: SmallEvilBeast \n" "Language-Team: none\n" @@ -23,42 +23,42 @@ "Vorbis is an open source, lossy audio codec with high quality output at a " "lower file size than MP3." msgstr "" -"Vorbis 是一种开源的有损音频编解码器,与 MP3 格式相比,可以用更小的文件获得更" -"佳的输出效果。" +"Vorbis 是一種開源的有損音訊的编解碼器,與 MP3 格式相比,可以用更小的文件取得更" +"佳的輸出效果。" #: ../src/transcoder.py:66 msgid "" "Free Lossless Audio Codec (FLAC) is an open source codec that compresses but " "does not degrade audio quality." msgstr "" -"自由无损音频编解码器(FLAC)是一种开源的编解码器,可以压缩音频而不降低音频质" -"量。" +"自由無損音訊编解碼器(FLAC)是一種開源的編解碼器,可以壓縮音訊而不降低音訊品" +"質。" #: ../src/transcoder.py:80 msgid "" "Apple's proprietary lossy audio format that achieves better sound quality " "than MP3 at lower bitrates." -msgstr "苹果公司开发的专有有损音频格式,可以用较低的码率达到更佳的音质" +msgstr "蘋果公司開發的專有有損音訊格式,可以用較低的位元率達到更佳的音質质" #: ../src/transcoder.py:93 msgid "" "A proprietary and older, but also popular, lossy audio format. VBR gives " "higher quality than CBR, but may be incompatible with some players." msgstr "" -"一种专有音频格式,虽然较老但仍很流行。VBR比CBR音质更佳,但可能与某些播放器不" -"兼容。" +"一種專有的音訊格式,雖然較老但仍很流行。VBR比CBR音質更佳,但可能與某些播放器不" +"相容。" #: ../src/transcoder.py:106 msgid "" "A proprietary and older, but also popular, lossy audio format. CBR gives " "less quality than VBR, but is compatible with any player." msgstr "" -"一种专有音频格式,虽然较老便仍很流行。CBR的输出效果不及VBR,但兼容于所有播放" +"一種專有的音訊格式,雖然較老但仍很流行。CBR的輸出效果不及VBR,但相容於所有播放" "器。" #: ../src/transcoder.py:118 msgid "A very fast Free lossless audio format with good compression." -msgstr "一种解码快速的自由无损音频格式,压缩比率较高。" +msgstr "一種解碼快速的自由無損音訊格式,壓縮比较高。" #: ../src/library.py:990 ../src/library.py:991 ../src/library.py:992 #: ../src/library.py:999 ../src/library.py:1000 ../src/library.py:1001 @@ -66,130 +66,130 @@ msgid "Unknown" msgstr "不明" -#: ../src/main.py:94 +#: ../src/main.py:103 msgid "Usage: deepin-music-player [OPTION]... [URI]" msgstr "用法: deepin-music-player [選項]... [URI]" -#: ../src/main.py:95 +#: ../src/main.py:104 msgid "Options" msgstr "選項" -#: ../src/main.py:99 +#: ../src/main.py:108 msgid "Control Options" msgstr "控制選項" -#: ../src/main.py:101 +#: ../src/main.py:110 msgid "Play the next track" msgstr "播放下一首" -#: ../src/main.py:103 +#: ../src/main.py:112 msgid "Play the previous track" msgstr "播放上一首" -#: ../src/main.py:105 +#: ../src/main.py:114 msgid "Pause or resume playback" msgstr "暫停/繼續播放" -#: ../src/main.py:107 +#: ../src/main.py:116 msgid "Seek Forward" msgstr "往前" -#: ../src/main.py:109 +#: ../src/main.py:118 msgid "Seek Backward" msgstr "往後" -#: ../src/main.py:111 +#: ../src/main.py:120 msgid "Stop playback" msgstr "停止播放" -#: ../src/main.py:115 +#: ../src/main.py:124 msgid "Volume Options" msgstr "音量選項" -#: ../src/main.py:117 +#: ../src/main.py:126 msgid "Change Volume (VOLUME 0.0-1.0)" msgstr "調整音量 (VOLUME 0.0-1.0)" -#: ../src/main.py:120 +#: ../src/main.py:129 msgid "Track information Options" msgstr "歌曲資訊選項" -#: ../src/main.py:122 +#: ../src/main.py:131 msgid "Print the title of current track" msgstr "檢視目前歌曲標題" -#: ../src/main.py:124 +#: ../src/main.py:133 msgid "Print the album of current track" msgstr "檢視目前歌曲專輯" -#: ../src/main.py:126 +#: ../src/main.py:135 msgid "Print the artist of current track" msgstr "檢視目前歌曲演出者" -#: ../src/main.py:128 +#: ../src/main.py:137 msgid "Print the length of current track" msgstr "檢視目前歌曲長度" -#: ../src/main.py:130 +#: ../src/main.py:139 msgid "Print the path of current track" msgstr "檢視目前歌曲路徑" -#: ../src/main.py:132 +#: ../src/main.py:141 msgid "Print current playback position" msgstr "檢視目前播放位置" -#: ../src/main.py:135 +#: ../src/main.py:144 msgid "Other Options" msgstr "其他選項" -#: ../src/main.py:137 +#: ../src/main.py:146 msgid "Show this help message and exit" msgstr "顯示幫助資訊並退出" -#: ../src/main.py:139 +#: ../src/main.py:148 msgid "Start new instance" msgstr "啟動新實例" -#: ../src/main.py:141 +#: ../src/main.py:150 msgid "Show program's version number and exit." msgstr "顯示程式版本號並退出" -#: ../src/main.py:143 +#: ../src/main.py:152 msgid "Start minimized" msgstr "啟動後最小化" -#: ../src/main.py:146 +#: ../src/main.py:155 msgid "Toggle visibility of the GUI (if possible)" msgstr "介面可視性切換" -#: ../src/main.py:149 +#: ../src/main.py:158 msgid "Make control options like --play start program if it is not running" msgstr "此選項可以使控制選項來啟動程式" -#: ../src/main.py:152 +#: ../src/main.py:161 msgid "Development/Debug Options" msgstr "開發/除錯選項" -#: ../src/main.py:153 +#: ../src/main.py:162 msgid "Change debug level (0-9)" msgstr "變更偵錯級別 (0-9)" -#: ../src/main.py:157 +#: ../src/main.py:166 msgid "Show information about supported audio file" -msgstr "顯示所支持音頻檔的資訊" +msgstr "顯示所支持音訊檔的資訊" -#: ../src/main.py:163 ../src/widget/global_keys.py:95 +#: ../src/main.py:172 ../src/widget/global_keys.py:95 #: ../src/widget/information.py:40 ../src/widget/information.py:82 -#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:748 -#: ../src/widget/preference.py:568 ../src/widget/preference.py:578 -#: ../src/widget/preference.py:889 ../src/widget/instance.py:92 -#: ../src/widget/dummy_lyrics.py:208 ../src/widget/tray.py:156 +#: ../src/widget/lyrics.py:80 ../src/widget/lyrics.py:749 +#: ../src/widget/preference.py:579 ../src/widget/preference.py:589 +#: ../src/widget/preference.py:900 ../src/widget/instance.py:92 +#: ../src/widget/tray.py:156 msgid "DMusic" msgstr "深度音樂" #: ../src/plugins.py:91 msgid "Add-on archive is not in the correct format." -msgstr "附加元件的歸檔文件格式錯誤。" +msgstr "附加元件的壓縮檔文件格式錯誤。" #: ../src/plugins.py:98 #, python-format @@ -198,7 +198,7 @@ #: ../src/plugins.py:103 msgid "Add-on archive contains an unsafe path." -msgstr "附加元件的歸檔文檔包含了一個不安全的路徑。" +msgstr "附加元件的壓縮檔文檔包含了一個不安全的路徑。" #: ../src/source/local.py:43 msgid "Reading directories..." @@ -229,18 +229,18 @@ msgstr "音樂 CD" #: ../src/widget/song_editor.py:72 ../src/widget/song_editor.py:202 -#: ../src/widget/song_view.py:649 ../src/widget/lyrics_search.py:82 +#: ../src/widget/song_view.py:680 ../src/widget/lyrics_search.py:83 msgid "Title" msgstr "標題" #: ../src/widget/song_editor.py:73 ../src/widget/song_editor.py:203 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:85 -#: ../src/widget/lyrics_search.py:82 ../plugins/notify/__init__.py:43 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:85 +#: ../src/widget/lyrics_search.py:83 ../plugins/notify/__init__.py:43 msgid "Artist" msgstr "演出者" #: ../src/widget/song_editor.py:74 ../src/widget/song_editor.py:204 -#: ../src/widget/song_view.py:649 ../src/widget/local_browser.py:87 +#: ../src/widget/song_view.py:680 ../src/widget/local_browser.py:87 #: ../plugins/notify/__init__.py:45 msgid "Album" msgstr "專輯" @@ -249,12 +249,12 @@ msgid "Type" msgstr "類型" -#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:421 +#: ../src/widget/song_editor.py:96 ../src/widget/converter.py:433 msgid "Format" msgstr "格式" -#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:675 -#: ../src/widget/preference.py:828 ../src/widget/song_notify.py:193 +#: ../src/widget/song_editor.py:97 ../src/widget/preference.py:686 +#: ../src/widget/preference.py:839 ../src/widget/song_notify.py:193 msgid "Size" msgstr "大小" @@ -290,8 +290,8 @@ msgid "Location" msgstr "檔案位置" -#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:355 -#: ../src/widget/playlist.py:517 ../src/widget/lyrics_module.py:218 +#: ../src/widget/song_editor.py:150 ../src/widget/converter.py:367 +#: ../src/widget/playlist.py:560 ../src/widget/lyrics_module.py:240 msgid "Open directory" msgstr "開啟目錄" @@ -302,55 +302,59 @@ #: ../src/widget/song_editor.py:214 msgid "Save" -msgstr "保存" +msgstr "儲存" -#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:463 +#: ../src/widget/song_editor.py:296 ../src/widget/converter.py:475 #: ../src/widget/preference.py:252 msgid "Change" msgstr "變更" -#: ../src/widget/song_editor.py:298 ../src/widget/equalizer.py:252 +#: ../src/widget/song_editor.py:299 +msgid "Retrieve from the Internet" +msgstr "網路取得" + +#: ../src/widget/song_editor.py:302 ../src/widget/equalizer.py:252 #: ../src/widget/preference.py:375 msgid "Reset" msgstr "重設" -#: ../src/widget/song_editor.py:316 ../src/widget/local_browser.py:344 +#: ../src/widget/song_editor.py:321 ../src/widget/local_browser.py:343 msgid "Select image" msgstr "選擇圖片" -#: ../src/widget/song_editor.py:326 ../src/widget/song_view.py:762 -#: ../src/widget/playlist.py:518 +#: ../src/widget/song_editor.py:335 ../src/widget/song_view.py:793 +#: ../src/widget/playlist.py:561 msgid "Properties" msgstr "屬性" -#: ../src/widget/song_editor.py:329 ../src/widget/equalizer.py:250 -#: ../src/widget/ui.py:1142 ../src/widget/converter.py:382 -#: ../src/widget/converter.py:437 ../src/widget/preference.py:934 -#: ../src/widget/lyrics_search.py:88 +#: ../src/widget/song_editor.py:338 ../src/widget/equalizer.py:250 +#: ../src/widget/ui.py:1248 ../src/widget/converter.py:394 +#: ../src/widget/converter.py:449 ../src/widget/preference.py:945 +#: ../src/widget/lyrics_search.py:89 msgid "Close" msgstr "關閉" -#: ../src/widget/song_editor.py:332 ../src/widget/headerbar.py:70 -#: ../src/widget/preference.py:369 ../src/widget/instance.py:328 +#: ../src/widget/song_editor.py:341 ../src/widget/headerbar.py:72 +#: ../src/widget/preference.py:369 ../src/widget/instance.py:329 #: ../src/widget/tray.py:63 msgid "Previous" msgstr "上一首" -#: ../src/widget/song_editor.py:334 ../src/widget/headerbar.py:71 -#: ../src/widget/preference.py:370 ../src/widget/instance.py:329 +#: ../src/widget/song_editor.py:343 ../src/widget/headerbar.py:73 +#: ../src/widget/preference.py:370 ../src/widget/instance.py:330 #: ../src/widget/tray.py:64 msgid "Next" msgstr "下一首" -#: ../src/widget/song_editor.py:358 +#: ../src/widget/song_editor.py:367 msgid "Track Infomation" msgstr "歌詞資訊" -#: ../src/widget/song_editor.py:359 +#: ../src/widget/song_editor.py:368 msgid "Edit tags" msgstr "資訊設定" -#: ../src/widget/song_editor.py:360 +#: ../src/widget/song_editor.py:369 msgid "Edit cover" msgstr "封面設定" @@ -426,18 +430,18 @@ msgid "Techno" msgstr "電子" -#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:360 +#: ../src/widget/equalizer.py:199 ../src/widget/instance.py:362 msgid "Equalizer" msgstr "等化器" #: ../src/widget/equalizer.py:254 msgid "Predefined" -msgstr "預定義" +msgstr "預設值" #: ../src/widget/global_keys.py:96 #, python-format msgid "Failed to bind %s !" -msgstr "綁定捷徑鍵「%s」失敗!" +msgstr "連結捷徑鍵「%s」失敗!" #: ../src/widget/local_item.py:59 msgid "All Tracks" @@ -456,21 +460,21 @@ msgstr "正在建立緩衝區" #: ../src/widget/webcast_view.py:114 ../src/widget/webcast_view.py:120 -#: ../src/widget/playlist.py:86 ../plugins/musicfm/radio_view.py:129 -#: ../plugins/musicfm/radio_view.py:135 +#: ../src/widget/playlist.py:103 ../plugins/musicfm/radio_view.py:134 +#: ../plugins/musicfm/radio_view.py:140 msgid "Delete" msgstr "刪除" #: ../src/widget/webcast_view.py:115 ../src/widget/webcast_view.py:123 -#: ../src/widget/playlist.py:512 ../plugins/musicfm/radio_view.py:130 -#: ../plugins/musicfm/radio_view.py:136 +#: ../src/widget/playlist.py:555 ../plugins/musicfm/radio_view.py:135 +#: ../plugins/musicfm/radio_view.py:141 msgid "Clear List" msgstr "清除清單" #: ../src/widget/webcast_view.py:119 ../src/widget/webcast_view.py:338 -#: ../src/widget/instance.py:319 ../src/widget/song_view.py:754 -#: ../src/widget/playlist.py:506 ../src/widget/tray.py:58 -#: ../plugins/musicfm/radio_view.py:134 +#: ../src/widget/instance.py:320 ../src/widget/song_view.py:785 +#: ../src/widget/playlist.py:549 ../src/widget/tray.py:58 +#: ../plugins/musicfm/radio_view.py:139 msgid "Play" msgstr "播放" @@ -483,7 +487,7 @@ msgstr "加入「喜好」" #: ../src/widget/webcast_view.py:333 ../src/widget/webcast_view.py:339 -#: ../src/widget/song_view.py:755 +#: ../src/widget/song_view.py:786 msgid "Add to Playlist" msgstr "加入到播放清單" @@ -492,140 +496,140 @@ msgid "Radio" msgstr "網路廣播" -#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:786 +#: ../src/widget/global_search.py:48 ../src/widget/song_view.py:817 #: ../src/widget/local_tab.py:28 msgid "Library" -msgstr "本地端音樂" +msgstr "本機音樂" -#: ../src/widget/lyrics.py:733 +#: ../src/widget/lyrics.py:734 msgid "Lyrics window" msgstr "視窗歌詞" -#: ../src/widget/ui.py:201 +#: ../src/widget/ui.py:203 msgid "Need some music? Find it here..." -msgstr "找音樂,在這裏..." +msgstr "找音樂,在這裡..." -#: ../src/widget/ui.py:399 +#: ../src/widget/ui.py:401 msgid "Add Music" -msgstr "加入本地端音樂" +msgstr "加入本機音樂" -#: ../src/widget/ui.py:1012 +#: ../src/widget/ui.py:1118 msgid "Your search {keyword} did not match any items in {from}" -msgstr "在{from}中未發現與{keyword}關聯的內容" +msgstr "在{from}中未發現與{keyword}相關的內容" -#: ../src/widget/ui.py:1013 +#: ../src/widget/ui.py:1119 msgid "Suggestions" msgstr "建議" -#: ../src/widget/ui.py:1014 +#: ../src/widget/ui.py:1120 msgid "Make sure all words are spelled correctly." msgstr "請確認全部字詞拼寫正確。" -#: ../src/widget/ui.py:1015 +#: ../src/widget/ui.py:1121 msgid "" "Try more general keywords, such as a title, an artist or the name of an " "album." msgstr "請嘗試更多關鍵字進行搜尋,如標題、演出者或專輯名稱。" -#: ../src/widget/ui.py:1112 ../src/widget/plugins_view.py:163 +#: ../src/widget/ui.py:1218 ../src/widget/plugins_view.py:166 msgid "Add-on" msgstr "附加元件" -#: ../src/widget/ui.py:1120 +#: ../src/widget/ui.py:1226 msgid "Author(s)" msgstr "作者" -#: ../src/widget/ui.py:1150 ../src/widget/preference.py:195 +#: ../src/widget/ui.py:1256 ../src/widget/preference.py:195 msgid "Minimize to tray" msgstr "最小化到系統匣" -#: ../src/widget/ui.py:1152 ../src/widget/preference.py:196 -#: ../src/widget/instance.py:371 ../src/widget/tray.py:83 +#: ../src/widget/ui.py:1258 ../src/widget/preference.py:196 +#: ../src/widget/instance.py:373 ../src/widget/tray.py:83 msgid "Quit" msgstr "結束" -#: ../src/widget/ui.py:1156 +#: ../src/widget/ui.py:1262 msgid "Don't prompt again" msgstr "下次不再提示" -#: ../src/widget/ui.py:1163 +#: ../src/widget/ui.py:1269 msgid "OK" msgstr "確認" -#: ../src/widget/ui.py:1166 +#: ../src/widget/ui.py:1272 msgid "Cancel" msgstr "取消" -#: ../src/widget/headerbar.py:62 ../src/widget/preference.py:368 +#: ../src/widget/headerbar.py:64 ../src/widget/preference.py:368 msgid "Play/Pause" msgstr "暫停/繼續" -#: ../src/widget/headerbar.py:76 +#: ../src/widget/headerbar.py:78 msgid "Show/Hide Lyrics" msgstr "開啟/關閉歌詞" -#: ../src/widget/converter.py:297 ../src/widget/song_view.py:406 -#: ../src/widget/song_view.py:749 ../src/widget/local_browser.py:340 +#: ../src/widget/converter.py:309 ../src/widget/song_view.py:437 +#: ../src/widget/song_view.py:780 ../src/widget/local_browser.py:339 msgid "Prompt" msgstr "提示" -#: ../src/widget/converter.py:297 +#: ../src/widget/converter.py:309 msgid "Target file already exitsts, do you want to overwrite it?" msgstr "目標檔案已存在,是否覆寫?" -#: ../src/widget/converter.py:357 +#: ../src/widget/converter.py:369 msgid "Delete task" msgstr "刪除工作" -#: ../src/widget/converter.py:358 +#: ../src/widget/converter.py:370 msgid "Clear finished tasks" msgstr "清除已完成的工作" -#: ../src/widget/converter.py:364 ../src/widget/instance.py:340 +#: ../src/widget/converter.py:376 ../src/widget/instance.py:341 msgid "Task Manager" msgstr "工作管理員" -#: ../src/widget/converter.py:380 ../src/widget/converter.py:400 -#: ../src/widget/converter.py:403 ../src/widget/instance.py:322 +#: ../src/widget/converter.py:392 ../src/widget/converter.py:412 +#: ../src/widget/converter.py:415 ../src/widget/instance.py:323 #: ../src/widget/tray.py:61 msgid "Pause" msgstr "暫停" -#: ../src/widget/converter.py:401 +#: ../src/widget/converter.py:413 msgid "Continue" msgstr "繼續" -#: ../src/widget/converter.py:415 ../src/widget/instance.py:339 -#: ../src/widget/instance.py:361 ../src/widget/song_view.py:761 -#: ../src/widget/playlist.py:516 +#: ../src/widget/converter.py:427 ../src/widget/instance.py:340 +#: ../src/widget/instance.py:363 ../src/widget/song_view.py:792 +#: ../src/widget/playlist.py:559 msgid "Convert" msgstr "格式轉換器" -#: ../src/widget/converter.py:424 +#: ../src/widget/converter.py:436 msgid "Quality" msgstr "品質" -#: ../src/widget/converter.py:432 +#: ../src/widget/converter.py:444 msgid "Target file already exists" msgstr "目標檔案存在時" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Ask" msgstr "詢問" -#: ../src/widget/converter.py:433 +#: ../src/widget/converter.py:445 msgid "Cover" msgstr "覆寫" -#: ../src/widget/converter.py:436 +#: ../src/widget/converter.py:448 msgid "Start" msgstr "開始" -#: ../src/widget/converter.py:438 +#: ../src/widget/converter.py:450 msgid "Add to Playlist when finished" msgstr "當轉換完成後加入到播放清單" -#: ../src/widget/converter.py:460 +#: ../src/widget/converter.py:472 msgid "Output" msgstr "輸出目錄" @@ -675,9 +679,9 @@ #: ../src/widget/preference.py:241 msgid "Lyrics directory" -msgstr "歌詞保存目錄" +msgstr "歌詞儲存目錄" -#: ../src/widget/preference.py:346 ../src/widget/preference.py:986 +#: ../src/widget/preference.py:346 ../src/widget/preference.py:997 msgid "Hotkeys" msgstr "捷徑鍵設定" @@ -705,122 +709,122 @@ msgid "Decrease volume" msgstr "減小音量" -#: ../src/widget/preference.py:590 ../src/widget/preference.py:602 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:601 ../src/widget/preference.py:613 +#: ../src/widget/preference.py:845 msgid "Left" msgstr "左對齊" -#: ../src/widget/preference.py:591 ../src/widget/preference.py:603 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:602 ../src/widget/preference.py:614 +#: ../src/widget/preference.py:845 msgid "Centered" msgstr "置中對齊" -#: ../src/widget/preference.py:592 ../src/widget/preference.py:604 -#: ../src/widget/preference.py:834 +#: ../src/widget/preference.py:603 ../src/widget/preference.py:615 +#: ../src/widget/preference.py:845 msgid "Right" msgstr "右對齊" -#: ../src/widget/preference.py:605 +#: ../src/widget/preference.py:616 msgid "Justified" msgstr "兩端對齊" -#: ../src/widget/preference.py:616 ../src/widget/lyrics_module.py:425 +#: ../src/widget/preference.py:627 ../src/widget/lyrics_module.py:455 msgid "Vitality yellow" msgstr "活力黃" -#: ../src/widget/preference.py:617 ../src/widget/lyrics_module.py:426 +#: ../src/widget/preference.py:628 ../src/widget/lyrics_module.py:456 msgid "Fresh green" msgstr "清新綠" -#: ../src/widget/preference.py:618 ../src/widget/lyrics_module.py:427 +#: ../src/widget/preference.py:629 ../src/widget/lyrics_module.py:457 msgid "Playful pink" msgstr "俏皮粉" -#: ../src/widget/preference.py:619 ../src/widget/lyrics_module.py:428 +#: ../src/widget/preference.py:630 ../src/widget/lyrics_module.py:458 msgid "Cool blue" msgstr "清爽藍" -#: ../src/widget/preference.py:631 +#: ../src/widget/preference.py:642 msgid "Color scheme" msgstr "色彩配置" -#: ../src/widget/preference.py:639 ../src/widget/preference.py:796 +#: ../src/widget/preference.py:650 ../src/widget/preference.py:807 msgid "Regular" -msgstr "常規" +msgstr "標準" -#: ../src/widget/preference.py:640 ../src/widget/preference.py:797 +#: ../src/widget/preference.py:651 ../src/widget/preference.py:808 msgid "Italic" -msgstr "傾斜" +msgstr "斜體" -#: ../src/widget/preference.py:641 ../src/widget/preference.py:798 +#: ../src/widget/preference.py:652 ../src/widget/preference.py:809 msgid "Bold" msgstr "粗體" -#: ../src/widget/preference.py:642 ../src/widget/preference.py:799 +#: ../src/widget/preference.py:653 ../src/widget/preference.py:810 msgid "Bold Italic" -msgstr "粗體 傾斜" +msgstr "粗體 斜體" -#: ../src/widget/preference.py:652 ../src/widget/preference.py:807 +#: ../src/widget/preference.py:663 ../src/widget/preference.py:818 msgid "Style" msgstr "字型" -#: ../src/widget/preference.py:660 ../src/widget/preference.py:813 +#: ../src/widget/preference.py:671 ../src/widget/preference.py:824 msgid "Lyrics style" msgstr "歌詞樣式" -#: ../src/widget/preference.py:670 ../src/widget/preference.py:822 +#: ../src/widget/preference.py:681 ../src/widget/preference.py:833 msgid "Font" msgstr "字體" -#: ../src/widget/preference.py:678 +#: ../src/widget/preference.py:689 msgid "Lines" msgstr "行數" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Single" msgstr "單行" -#: ../src/widget/preference.py:679 +#: ../src/widget/preference.py:690 msgid "Double" msgstr "雙行" -#: ../src/widget/preference.py:682 ../src/widget/preference.py:832 +#: ../src/widget/preference.py:693 ../src/widget/preference.py:843 msgid "Alignment" msgstr "對齊" -#: ../src/widget/preference.py:691 +#: ../src/widget/preference.py:702 msgid "Outline" msgstr "輪廓" -#: ../src/widget/preference.py:695 +#: ../src/widget/preference.py:706 msgid "Stroke" msgstr "描邊" -#: ../src/widget/preference.py:700 ../src/widget/preference.py:844 +#: ../src/widget/preference.py:711 ../src/widget/preference.py:855 msgid "Coming" msgstr "未播放" -#: ../src/widget/preference.py:711 ../src/widget/preference.py:845 +#: ../src/widget/preference.py:722 ../src/widget/preference.py:856 msgid "Played" msgstr "已播放" -#: ../src/widget/preference.py:839 +#: ../src/widget/preference.py:850 msgid "Rolling" msgstr "滾動方式" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "Always" msgstr "總是滾動" -#: ../src/widget/preference.py:840 +#: ../src/widget/preference.py:851 msgid "By line" msgstr "按行滾動" -#: ../src/widget/preference.py:894 ../src/widget/plugins_view.py:163 +#: ../src/widget/preference.py:905 ../src/widget/plugins_view.py:166 msgid "Version" msgstr "版本" -#: ../src/widget/preference.py:909 +#: ../src/widget/preference.py:920 msgid "" " DMusic is a music application designed for Linux users.It features " "lyrics searching and downloading, desktop lyrics display,album cover " @@ -828,38 +832,38 @@ "\n" "DMusic is free software licensed under GNU GPLv3." msgstr "" -"深度音樂是Linux Deepin團隊為廣大linux用戶量身開發的一款音樂軟件.具有歌詞搜索" -"下載,桌面歌詞顯示,專輯封面下載,歌曲記憶播放,獨創音樂管理,自定義換膚等幾大特" -"點.\n" +"深度音樂是Linux Deepin團隊為廣大Linux用戶量身開發的一款音樂軟體,具有歌詞搜尋" +"下載、桌面歌詞顯示、專輯封面下載、歌曲記憶播放、獨創音樂管理、自行更換主題等幾大特" +"點。\n" "\n" -"深度音樂是自由軟體,遵照自由軟體基金會發佈的 GNU 通用公共許可證條款第三版." +"深度音樂是自由軟體,遵照自由軟體基金會發佈的GNU通用公共許可證條款第三版。" -#: ../src/widget/preference.py:927 ../src/widget/instance.py:369 +#: ../src/widget/preference.py:938 ../src/widget/instance.py:371 #: ../src/widget/tray.py:82 msgid "Preferences" msgstr "偏好設定" -#: ../src/widget/preference.py:985 +#: ../src/widget/preference.py:996 msgid "General" msgstr "一般" -#: ../src/widget/preference.py:987 +#: ../src/widget/preference.py:998 msgid "Lyrics" msgstr "歌詞設定" -#: ../src/widget/preference.py:988 +#: ../src/widget/preference.py:999 msgid "Desktop" msgstr "桌面歌詞" -#: ../src/widget/preference.py:989 +#: ../src/widget/preference.py:1000 msgid "Window" msgstr "視窗歌詞" -#: ../src/widget/preference.py:990 +#: ../src/widget/preference.py:1001 msgid "Add-ons" msgstr "附加元件" -#: ../src/widget/preference.py:991 +#: ../src/widget/preference.py:1002 msgid "About" msgstr "關於" @@ -867,57 +871,57 @@ msgid "Join us" msgstr "加入我們" -#: ../src/widget/instance.py:326 +#: ../src/widget/instance.py:327 msgid "Forward" msgstr "前進" -#: ../src/widget/instance.py:327 +#: ../src/widget/instance.py:328 msgid "Rewind" msgstr "後退" -#: ../src/widget/instance.py:356 ../src/widget/playlist.py:80 +#: ../src/widget/instance.py:358 ../src/widget/playlist.py:97 msgid "Add" msgstr "添加時間:" -#: ../src/widget/instance.py:357 +#: ../src/widget/instance.py:359 msgid "Controls" msgstr "播放控制" -#: ../src/widget/instance.py:358 ../src/widget/playlist.py:83 -#: ../src/widget/playlist.py:514 +#: ../src/widget/instance.py:360 ../src/widget/playlist.py:100 +#: ../src/widget/playlist.py:557 msgid "Playback Order" msgstr "播放次序" -#: ../src/widget/instance.py:368 +#: ../src/widget/instance.py:370 msgid "View New Features" -msgstr "檢視新特性" +msgstr "檢視新特點" -#: ../src/widget/instance.py:375 ../src/widget/tray.py:72 +#: ../src/widget/instance.py:377 ../src/widget/tray.py:72 msgid "Search Lyrics" msgstr "搜尋歌詞" -#: ../src/widget/instance.py:394 ../src/widget/tray.py:71 +#: ../src/widget/instance.py:396 ../src/widget/tray.py:71 msgid "Hide Lyrics" msgstr "關閉歌詞" -#: ../src/widget/instance.py:396 ../src/widget/tray.py:74 +#: ../src/widget/instance.py:398 ../src/widget/tray.py:74 msgid "Show Lyrics" msgstr "啟用歌詞" -#: ../src/widget/instance.py:400 ../src/widget/tray.py:77 +#: ../src/widget/instance.py:402 ../src/widget/tray.py:77 msgid "Unlock lyrics" msgstr "解鎖歌詞" -#: ../src/widget/instance.py:402 ../src/widget/lyrics_module.py:152 +#: ../src/widget/instance.py:404 ../src/widget/lyrics_module.py:155 #: ../src/widget/tray.py:79 msgid "Lock lyrics" msgstr "鎖定歌詞" -#: ../src/widget/instance.py:477 +#: ../src/widget/instance.py:479 msgid "Mini Mode" msgstr "迷你模式" -#: ../src/widget/instance.py:479 +#: ../src/widget/instance.py:481 msgid "Normal Mode" msgstr "一般模式" @@ -925,81 +929,81 @@ msgid "jobs waiting!" msgstr "個工作在等待!" -#: ../src/widget/song_view.py:406 ../src/widget/song_view.py:749 -#: ../src/widget/local_browser.py:340 +#: ../src/widget/song_view.py:437 ../src/widget/song_view.py:780 +#: ../src/widget/local_browser.py:339 msgid "Are you sure you want to delete them?" msgstr "您確定要刪除它們嗎?" -#: ../src/widget/song_view.py:450 +#: ../src/widget/song_view.py:481 msgid "Repeat (single)" msgstr "單曲重複" -#: ../src/widget/song_view.py:451 +#: ../src/widget/song_view.py:482 msgid "Play (ordered)" msgstr "順序播放" -#: ../src/widget/song_view.py:452 +#: ../src/widget/song_view.py:483 msgid "Repeat (list)" msgstr "列表重複" -#: ../src/widget/song_view.py:453 +#: ../src/widget/song_view.py:484 msgid "Random" msgstr "隨機播放" -#: ../src/widget/song_view.py:476 +#: ../src/widget/song_view.py:507 msgid "Remove Track from this List" msgstr "刪除選中歌曲" -#: ../src/widget/song_view.py:477 +#: ../src/widget/song_view.py:508 msgid "Remove Unavailable Tracks" msgstr "刪除錯誤歌曲" -#: ../src/widget/song_view.py:478 ../src/widget/song_view.py:758 -#: ../src/widget/local_browser.py:355 ../src/widget/playlist.py:511 +#: ../src/widget/song_view.py:509 ../src/widget/song_view.py:789 +#: ../src/widget/local_browser.py:354 ../src/widget/playlist.py:554 msgid "Move to Trash" msgstr "移至回收筒" -#: ../src/widget/song_view.py:479 +#: ../src/widget/song_view.py:510 msgid "Clear list" msgstr "清除清單" -#: ../src/widget/song_view.py:490 +#: ../src/widget/song_view.py:521 msgid "URL" msgstr "添加指定 URL" -#: ../src/widget/song_view.py:491 ../src/widget/song_view.py:499 +#: ../src/widget/song_view.py:522 ../src/widget/song_view.py:530 msgid "File" msgstr "檔案" -#: ../src/widget/song_view.py:492 +#: ../src/widget/song_view.py:523 msgid "Directory (include subdirectories)" msgstr "資料夾(包含子目錄)" -#: ../src/widget/song_view.py:493 ../src/widget/song_view.py:501 +#: ../src/widget/song_view.py:524 ../src/widget/song_view.py:532 msgid "Directory" msgstr "資料夾" -#: ../src/widget/song_view.py:500 +#: ../src/widget/song_view.py:531 msgid "Directory(include subdirectories)" msgstr "資料夾(包含子目錄)" -#: ../src/widget/song_view.py:511 +#: ../src/widget/song_view.py:542 msgid "Add URL" msgstr "添加指定 URL" -#: ../src/widget/song_view.py:649 +#: ../src/widget/song_view.py:680 msgid "Added time" msgstr "添加時間" -#: ../src/widget/song_view.py:757 ../src/widget/local_browser.py:354 +#: ../src/widget/song_view.py:788 ../src/widget/local_browser.py:353 msgid "Remove from Library" msgstr "從歌曲庫中移除" -#: ../src/widget/song_view.py:760 ../src/widget/local_browser.py:360 +#: ../src/widget/song_view.py:791 ../src/widget/local_browser.py:359 msgid "Open Directory" msgstr "開啟目錄" -#: ../src/widget/plugins_view.py:163 +#: ../src/widget/plugins_view.py:166 msgid "Enable" msgstr "啟用" @@ -1019,188 +1023,192 @@ msgid "Refresh" msgstr "刷新歌曲庫" -#: ../src/widget/local_browser.py:351 +#: ../src/widget/local_browser.py:350 msgid "Play All" msgstr "播放全部" -#: ../src/widget/local_browser.py:352 ../src/widget/playlist.py:507 +#: ../src/widget/local_browser.py:351 ../src/widget/playlist.py:550 msgid "Add to List" msgstr "加入到清單" -#: ../src/widget/local_browser.py:362 +#: ../src/widget/local_browser.py:361 msgid "Change Cover" msgstr "變更封面" -#: ../src/widget/playlist.py:77 +#: ../src/widget/playlist.py:94 msgid "Search in Current Playlist" -msgstr "從當前播放清單檢索歌曲" +msgstr "從目前播放清單尋找歌曲" -#: ../src/widget/playlist.py:79 +#: ../src/widget/playlist.py:96 msgid "Playlist Operations" msgstr "播放清單操作" -#: ../src/widget/playlist.py:165 +#: ../src/widget/playlist.py:183 msgid "Default List" msgstr "預設清單" -#: ../src/widget/playlist.py:261 ../src/widget/playlist.py:273 -#: ../src/widget/playlist.py:274 ../src/widget/playlist.py:314 -#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:433 +#: ../src/widget/playlist.py:304 ../src/widget/playlist.py:316 +#: ../src/widget/playlist.py:317 ../src/widget/playlist.py:357 +#: ../src/widget/playlist.py:360 ../src/widget/playlist.py:476 msgid "New List" msgstr "新建清單" -#: ../src/widget/playlist.py:262 ../src/widget/playlist.py:434 +#: ../src/widget/playlist.py:305 ../src/widget/playlist.py:477 msgid "Import List" msgstr "匯入清單" -#: ../src/widget/playlist.py:263 ../src/widget/playlist.py:442 +#: ../src/widget/playlist.py:306 ../src/widget/playlist.py:485 msgid "Open List" msgstr "打開清單" -#: ../src/widget/playlist.py:264 +#: ../src/widget/playlist.py:307 msgid "Export List" msgstr "匯出清單" -#: ../src/widget/playlist.py:265 ../src/widget/playlist.py:441 +#: ../src/widget/playlist.py:308 ../src/widget/playlist.py:484 msgid "Remove List" msgstr "刪除清單" -#: ../src/widget/playlist.py:267 ../src/widget/playlist.py:436 -#: ../src/widget/playlist.py:444 +#: ../src/widget/playlist.py:310 ../src/widget/playlist.py:479 +#: ../src/widget/playlist.py:487 msgid "Save all Lists" -msgstr "保存全部清單" +msgstr "儲存全部清單" -#: ../src/widget/playlist.py:440 ../src/widget/playlist.py:450 +#: ../src/widget/playlist.py:483 ../src/widget/playlist.py:493 msgid "Rename" msgstr "重新命名" -#: ../src/widget/playlist.py:491 +#: ../src/widget/playlist.py:534 msgid "By Filename" msgstr "按檔案名稱" -#: ../src/widget/playlist.py:492 +#: ../src/widget/playlist.py:535 msgid "By Title" msgstr "按標題" -#: ../src/widget/playlist.py:493 ../src/widget/combo.py:184 +#: ../src/widget/playlist.py:536 ../src/widget/combo.py:184 #: ../src/widget/combo.py:233 msgid "By Artist" msgstr "按演出者" -#: ../src/widget/playlist.py:494 ../src/widget/combo.py:235 +#: ../src/widget/playlist.py:537 ../src/widget/combo.py:235 msgid "By Album" msgstr "按專輯" -#: ../src/widget/playlist.py:495 ../src/widget/combo.py:234 +#: ../src/widget/playlist.py:538 ../src/widget/combo.py:234 msgid "By Genre" msgstr "按曲風" -#: ../src/widget/playlist.py:496 +#: ../src/widget/playlist.py:539 msgid "By Track" msgstr "按音軌" -#: ../src/widget/playlist.py:497 +#: ../src/widget/playlist.py:540 msgid "By Play Count" msgstr "按播放次數" -#: ../src/widget/playlist.py:498 +#: ../src/widget/playlist.py:541 msgid "By Date Added" msgstr "按添加時間" -#: ../src/widget/playlist.py:502 +#: ../src/widget/playlist.py:545 msgid "Randomize" msgstr "隨機排序" -#: ../src/widget/playlist.py:508 +#: ../src/widget/playlist.py:551 msgid "move to List" msgstr "移動到清單" -#: ../src/widget/playlist.py:510 +#: ../src/widget/playlist.py:553 msgid "Remove Track" msgstr "刪除歌曲" -#: ../src/widget/playlist.py:515 +#: ../src/widget/playlist.py:558 msgid "Sort" msgstr "排序" -#: ../src/widget/lyrics_module.py:148 +#: ../src/widget/lyrics_module.py:151 msgid "increase the lyrics size" msgstr "增大歌詞尺寸" -#: ../src/widget/lyrics_module.py:149 +#: ../src/widget/lyrics_module.py:152 msgid "decrease the lyrics size" msgstr "減小歌詞尺寸" -#: ../src/widget/lyrics_module.py:151 +#: ../src/widget/lyrics_module.py:154 msgid "Select color theme" msgstr "選擇色彩配置" -#: ../src/widget/lyrics_module.py:155 +#: ../src/widget/lyrics_module.py:158 msgid "karaoke on/off" msgstr "啟用/關閉卡拉 OK 模式" -#: ../src/widget/lyrics_module.py:158 +#: ../src/widget/lyrics_module.py:160 msgid "Switch lines" msgstr "切換行數" -#: ../src/widget/lyrics_module.py:159 +#: ../src/widget/lyrics_module.py:162 msgid "Open settings panel" msgstr "開啟設定面板" -#: ../src/widget/lyrics_module.py:160 +#: ../src/widget/lyrics_module.py:163 msgid "search lrc file for current track" msgstr "搜尋當前歌曲的歌詞" -#: ../src/widget/lyrics_module.py:161 +#: ../src/widget/lyrics_module.py:164 msgid "Close lyrics" msgstr "關閉歌詞" -#: ../src/widget/lyrics_module.py:162 ../src/widget/lyrics_module.py:201 +#: ../src/widget/lyrics_module.py:165 ../src/widget/lyrics_module.py:223 msgid "Lyrics rewind" msgstr "後退歌詞" -#: ../src/widget/lyrics_module.py:163 ../src/widget/lyrics_module.py:202 +#: ../src/widget/lyrics_module.py:166 ../src/widget/lyrics_module.py:224 msgid "Lyrics forward" msgstr "前進歌詞" -#: ../src/widget/lyrics_module.py:164 ../src/widget/lyrics_module.py:221 +#: ../src/widget/lyrics_module.py:167 ../src/widget/lyrics_module.py:243 msgid "Switch to window mode" msgstr "切換到視窗歌詞" -#: ../src/widget/lyrics_module.py:199 +#: ../src/widget/lyrics_module.py:221 msgid "Switch to desktop mode" msgstr "切換到桌面歌詞" -#: ../src/widget/lyrics_module.py:204 ../src/widget/lyrics_module.py:214 -#: ../src/widget/lyrics_search.py:58 +#: ../src/widget/lyrics_module.py:226 ../src/widget/lyrics_module.py:236 +#: ../src/widget/lyrics_search.py:59 msgid "Search" msgstr "搜尋" -#: ../src/widget/lyrics_module.py:205 ../src/widget/lyrics_module.py:220 +#: ../src/widget/lyrics_module.py:227 ../src/widget/lyrics_module.py:242 msgid "Settings" msgstr "設定" -#: ../src/widget/lyrics_module.py:211 +#: ../src/widget/lyrics_module.py:233 msgid "Forward 0.5 seconds" msgstr "提前 0.5 秒" -#: ../src/widget/lyrics_module.py:212 +#: ../src/widget/lyrics_module.py:234 msgid "Rewind 0.5 seconds" msgstr "後退 0.5 秒" -#: ../src/widget/lyrics_module.py:215 +#: ../src/widget/lyrics_module.py:237 msgid "Adjust lyrics" msgstr "調整歌詞" -#: ../src/widget/lyrics_module.py:217 +#: ../src/widget/lyrics_module.py:239 msgid "Choose local lrc" -msgstr "關聯本地端歌詞" +msgstr "選擇本機歌詞" + +#: ../src/widget/lyrics_module.py:247 +msgid "Network get lrc" +msgstr "網絡取得歌詞" -#: ../src/widget/lyrics_module.py:763 ../src/widget/lyrics_module.py:764 +#: ../src/widget/lyrics_module.py:793 ../src/widget/lyrics_module.py:794 msgid "No lyrics found!" msgstr "沒有找到歌詞檔案!" -#: ../src/widget/lyrics_module.py:766 ../src/widget/lyrics_module.py:767 +#: ../src/widget/lyrics_module.py:796 ../src/widget/lyrics_module.py:797 msgid "Searching for lyrics..." msgstr "正在搜尋歌詞..." @@ -1228,40 +1236,40 @@ msgid "Lyrics search" msgstr "歌詞搜尋" -#: ../src/widget/lyrics_search.py:53 +#: ../src/widget/lyrics_search.py:54 msgid "Artist:" msgstr "演出者:" -#: ../src/widget/lyrics_search.py:54 +#: ../src/widget/lyrics_search.py:55 msgid "Title:" msgstr "標題:" -#: ../src/widget/lyrics_search.py:86 +#: ../src/widget/lyrics_search.py:87 msgid "Download" msgstr "下載" -#: ../src/widget/lyrics_search.py:127 +#: ../src/widget/lyrics_search.py:136 msgid "Now searching..." msgstr "正在搜尋..." -#: ../src/widget/lyrics_search.py:129 ../src/widget/lyrics_search.py:154 +#: ../src/widget/lyrics_search.py:138 ../src/widget/lyrics_search.py:163 msgid "Not found!" msgstr "沒有找到!" -#: ../src/widget/lyrics_search.py:148 ../src/widget/lyrics_search.py:152 +#: ../src/widget/lyrics_search.py:157 ../src/widget/lyrics_search.py:161 #, python-format msgid "%d lyrics found" msgstr "找到 %d 個歌詞" -#: ../src/widget/lyrics_search.py:161 +#: ../src/widget/lyrics_search.py:170 msgid "Downloading lyrics..." msgstr "正在下載歌詞..." -#: ../src/widget/lyrics_search.py:171 +#: ../src/widget/lyrics_search.py:180 msgid "File save to" msgstr "保存檔案到" -#: ../src/widget/lyrics_search.py:173 +#: ../src/widget/lyrics_search.py:182 msgid "Download failed." msgstr "下載失敗。" @@ -1286,7 +1294,7 @@ msgstr "深度音樂" #: ../plugins/musicfm/__init__.py:33 ../plugins/musicfm/__init__.py:35 -#: ../plugins/musicfm/radio_view.py:449 +#: ../plugins/musicfm/radio_view.py:474 msgid "MusicFM" msgstr "音樂電臺" diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/plugins/musicfm/radio_home_page.py deepin-music-player-1.3.3/plugins/musicfm/radio_home_page.py --- deepin-music-player-1.3~raring~NoobsLab.com/plugins/musicfm/radio_home_page.py 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/plugins/musicfm/radio_home_page.py 2013-08-22 04:02:49.000000000 +0000 @@ -109,7 +109,8 @@ ).start() def fetch_banner_channels(self): - ret = fmlib.get_hot_chls(start=random.randrange(100, 1500, 5), limit=5) + start = random.randrange(0, 25, 5) + ret = fmlib.get_hot_chls(start=start, limit=5) return ret.get("data", {}).get("channels", []) @post_gui @@ -118,6 +119,8 @@ return if not channels: return + + # print channels self.home_slider.set_infos(channels) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/plugins/musicfm/radio_list.py deepin-music-player-1.3.3/plugins/musicfm/radio_list.py --- deepin-music-player-1.3~raring~NoobsLab.com/plugins/musicfm/radio_list.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/plugins/musicfm/radio_list.py 2013-08-16 02:22:18.000000000 +0000 @@ -49,3 +49,5 @@ def save(self): self.radio_view.save() + + restore_status = property(lambda self: self.radio_view.restore_status) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/plugins/musicfm/radio_view.py deepin-music-player-1.3.3/plugins/musicfm/radio_view.py --- deepin-music-player-1.3~raring~NoobsLab.com/plugins/musicfm/radio_view.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/plugins/musicfm/radio_view.py 2013-08-22 04:02:49.000000000 +0000 @@ -29,6 +29,7 @@ from dtk.ui.treeview import TreeView from dtk.ui.iconview import IconView from dtk.ui.threads import post_gui +from deepin_utils.net import is_network_connected from dtk.ui.menu import Menu from dtk.ui.scrolled_window import ScrolledWindow @@ -37,13 +38,14 @@ from widget.ui_utils import draw_alpha_mask, switch_tab from widget.ui import SearchPrompt + from helper import Dispatcher from player import Player from posterlib import fmlib from cover_manager import cover_thread_pool import utils -from xdg_support import get_config_file +from xdg_support import get_config_file, get_cache_file from nls import _ from logger import Logger @@ -73,6 +75,8 @@ self.playlist = [] self.limit_number = 25 self.preview_db_file = get_config_file("preview_radios.db") + self.status_db_file = get_cache_file("musicfm/status.db") + self.load_status() @contextmanager def keep_list_lock(self): @@ -113,6 +117,7 @@ self.reset_playlist() self.set_highlight_item(item) self.fetch_playlist(play=True) + self.save_status() def clear_selected_status(self): self.select_items([]) @@ -275,6 +280,11 @@ self.visible_highlight() self.queue_draw() + def play_channel(self, channel): + self.set_highlight_channel(channel) + self.reset_playlist() + self.fetch_playlist(play=True) + def on_button_press_event(self, widget, event): pass @@ -291,6 +301,19 @@ if channel_infos is not None: self.add_channels(channel_infos) + def save_status(self): + if self.highlight_item: + channel_info = self.highlight_item.channel_info + utils.save_db(channel_info, self.status_db_file) + + def load_status(self): + self.channel_info = utils.load_db(self.status_db_file) + + def restore_status(self): + if is_network_connected(): + if self.channel_info: + self.play_channel(self.channel_info) + TAG_HOT = 1 TAG_FAST = 2 TAG_GENRE = 3 @@ -379,6 +402,8 @@ channel_data = ret.get("data", {}) channels = channel_data.get("channels", []) + channels = filter(lambda item: item.get("song_num", 0) != 0, channels) + total = int(channel_data.get("total", 0)) if thread_id != self.__fetch_thread_id: Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/black/background.jpg and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/black/background.jpg differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/black/config.ini deepin-music-player-1.3.3/skin/black/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/black/config.ini 1970-01-01 00:00:00.000000000 +0000 +++ deepin-music-player-1.3.3/skin/black/config.ini 2013-10-31 06:37:46.000000000 +0000 @@ -0,0 +1,21 @@ +[theme] +theme_name = dodger_blue + +[application] +app_id = dmusic +app_version = 2.0 + +[background] +image = background.jpg +x = 0.0 +y = 0.0 +scale_x = 0.484435797665 +scale_y = 0.643598615917 +dominant_color = #aeaeae + +[action] +deletable = False +editable = False +vertical_mirror = False +horizontal_mirror = False + Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/blue_daisy/background.jpg and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/blue_daisy/background.jpg differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/blue_daisy/config.ini deepin-music-player-1.3.3/skin/blue_daisy/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/blue_daisy/config.ini 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/skin/blue_daisy/config.ini 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -[theme] -theme_name = dodger_blue - -[application] -app_id = dmusic -app_version = 2.0 - -[background] -image = background.jpg -x = -208.467153285 -y = -180.308333333 -scale_x = 0.608888888889 -scale_y = 0.683274021352 -dominant_color = #d7eee9 - -[action] -deletable = False -editable = False -vertical_mirror = True -horizontal_mirror = False - Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/colourless_glass/background.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/colourless_glass/background.png differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/colourless_glass/config.ini deepin-music-player-1.3.3/skin/colourless_glass/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/colourless_glass/config.ini 2013-05-06 16:29:46.000000000 +0000 +++ deepin-music-player-1.3.3/skin/colourless_glass/config.ini 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -[theme] -theme_name = dodger_blue - -[application] -app_id = dmusic -app_version = 2.0 - -[background] -image = background.png -x = 0.0 -y = 0.0 -scale_x = 0.484435797665 -scale_y = 0.643598615917 -dominant_color = #aeaeae - -[action] -deletable = False -editable = False -vertical_mirror = False -horizontal_mirror = False - Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/glass/background.png and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/glass/background.png differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/glass/config.ini deepin-music-player-1.3.3/skin/glass/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/glass/config.ini 1970-01-01 00:00:00.000000000 +0000 +++ deepin-music-player-1.3.3/skin/glass/config.ini 2013-10-31 06:37:46.000000000 +0000 @@ -0,0 +1,21 @@ +[theme] +theme_name = dodger_blue + +[application] +app_id = dmusic +app_version = 2.0 + +[background] +image = background.png +x = 0.0 +y = 0.0 +scale_x = 0.484435797665 +scale_y = 0.643598615917 +dominant_color = #aeaeae + +[action] +deletable = False +editable = False +vertical_mirror = False +horizontal_mirror = False + Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/green_forest/background.jpg and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/green_forest/background.jpg differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/green_forest/config.ini deepin-music-player-1.3.3/skin/green_forest/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/green_forest/config.ini 2013-05-06 16:29:46.000000000 +0000 +++ deepin-music-player-1.3.3/skin/green_forest/config.ini 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -[theme] -theme_name = green_yellow - -[application] -app_id = dmusic -app_version = 2.0 - -[background] -image = background.jpg -x = -323.052749719 -y = -102.72 -scale_x = 0.577821011673 -scale_y = 0.545171339564 -dominant_color = #253423 - -[action] -deletable = False -editable = False -vertical_mirror = False -horizontal_mirror = False - Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/orange_jung/background.jpg and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/orange_jung/background.jpg differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/orange_jung/config.ini deepin-music-player-1.3.3/skin/orange_jung/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/orange_jung/config.ini 2013-05-06 16:29:46.000000000 +0000 +++ deepin-music-player-1.3.3/skin/orange_jung/config.ini 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -[theme] -theme_name = orange - -[application] -app_id = dmusic -app_version = 2.0 - -[background] -image = background.jpg -x = -149.25037037 -y = 0.0 -scale_x = 0.525291828794 -scale_y = 0.59169550173 -dominant_color = #e2934e - -[action] -deletable = False -editable = False -vertical_mirror = False -horizontal_mirror = False - Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/purple/227680.jpg and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/purple/227680.jpg differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/purple/config.ini deepin-music-player-1.3.3/skin/purple/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/purple/config.ini 1970-01-01 00:00:00.000000000 +0000 +++ deepin-music-player-1.3.3/skin/purple/config.ini 2013-10-31 06:37:46.000000000 +0000 @@ -0,0 +1,21 @@ +[theme] +theme_name = blue + +[application] +app_id = dmusic +app_version = 2.0 + +[background] +image = 227680.jpg +x = 0.0 +y = -201.11318408 +scale_x = 0.459615384615 +scale_y = 0.458904109589 +dominant_color = #b3c4f4 + +[action] +deletable = True +editable = True +vertical_mirror = False +horizontal_mirror = False + Binary files /tmp/8C8f8lJXPl/deepin-music-player-1.3~raring~NoobsLab.com/skin/red_logo/background.jpg and /tmp/3AKaauBe7g/deepin-music-player-1.3.3/skin/red_logo/background.jpg differ diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/skin/red_logo/config.ini deepin-music-player-1.3.3/skin/red_logo/config.ini --- deepin-music-player-1.3~raring~NoobsLab.com/skin/red_logo/config.ini 2013-05-06 16:29:46.000000000 +0000 +++ deepin-music-player-1.3.3/skin/red_logo/config.ini 1970-01-01 00:00:00.000000000 +0000 @@ -1,21 +0,0 @@ -[theme] -theme_name = red - -[application] -app_id = dmusic -app_version = 2.0 - -[background] -image = background.jpg -x = -51.49375 -y = -13.0764397906 -scale_x = 0.797507788162 -scale_y = 0.856502242152 -dominant_color = #850e21 - -[action] -deletable = False -editable = False -vertical_mirror = False -horizontal_mirror = False - diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/config.py deepin-music-player-1.3.3/src/config.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/config.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/config.py 2013-08-16 02:22:18.000000000 +0000 @@ -133,8 +133,8 @@ "locked" : "false", "dock_mode" : "true", "line_count" : "2", - "blur_radius" : "3", - "outline_width" : "3", + "blur_radius" : "2", + "outline_width" : "2", "blur_color" : "#000000", "single_line_align" : "centered", "double_line_align" : "justified", @@ -199,6 +199,10 @@ "plugins" : { "enabled" : "mpris2", }, + + "listmanager" : { + "source" : "", + } } config = Config() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/cover_manager.py deepin-music-player-1.3.3/src/cover_manager.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/cover_manager.py 2013-05-08 09:21:31.000000000 +0000 +++ deepin-music-player-1.3.3/src/cover_manager.py 2013-08-22 04:02:49.000000000 +0000 @@ -46,7 +46,7 @@ REINIT_COVER_TO_SKIP_TIME = 100 * 60 * 30 -COVER_SIZE = {"x": 70, "y": 70} +COVER_SIZE = {"x": 71, "y": 71} SMALL_COVER_SIZE = {"x" : 17, "y" : 17} COVER_SAVE_SIZE = {"x": 300, "y": 300} BROWSER_COVER_SIZE = {"x": 40, "y": 40} @@ -253,7 +253,7 @@ random.shuffle(GENRE_PATH) return app_theme.get_pixbuf("genre/%s" % GENRE_PATH[1]).get_pixbuf() - def get_cover(self, song, try_web=True): + def get_cover(self, song, try_web=True, read_local=True): album = self.get_cover_search_str(song) image_path = get_cache_file("cover/%s.jpg" % album) image_path_disable = get_cache_file("cover/%s.jpg.#disable#" % album) @@ -263,49 +263,52 @@ return None # Cover already exist. - if os.path.exists(image_path): - try: - gtk.gdk.pixbuf_new_from_file_at_size(image_path, COVER_SIZE["x"], COVER_SIZE["y"]) - except gobject.GError: + if read_local: + if os.path.exists(image_path): try: - os.unlink(image_path) - except: - pass - else: - return image_path + gtk.gdk.pixbuf_new_from_file_at_size(image_path, COVER_SIZE["x"], COVER_SIZE["y"]) + except gobject.GError: + try: + os.unlink(image_path) + except: + pass + else: + return image_path # Retrieve cover from mp3 tag - if song.get_scheme() == "file" and song.get_ext() in [".mp3", ".tta"]: - found = False - fp = None - try: - fp = file(image_path, "wb+") - tag = ID3(song.get_path()) - for frame in tag.getall("APIC"): - found = True - fp.write(frame.data) - fp.flush() - fp.seek(0, 0) - except: - if fp: - fp.close() - else: - if fp: - fp.close() - if found and self.cleanup_cover(song, image_path): - return image_path + if read_local: + if song.get_scheme() == "file" and song.get_ext() in [".mp3", ".tta"]: + found = False + fp = None + try: + fp = file(image_path, "wb+") + tag = ID3(song.get_path()) + for frame in tag.getall("APIC"): + found = True + fp.write(frame.data) + fp.flush() + fp.seek(0, 0) + except: + if fp: + fp.close() + else: + if fp: + fp.close() + if found and self.cleanup_cover(song, image_path): + return image_path # Search in local directory of the file. - if song.get("uri") != None and song.get_scheme() == "file": - song_dir = song.get_dir() - if os.path.exists(song_dir): - list_file = os.listdir(song_dir) - for pattern in COVER_PATTERNS: - matches = fnmatch.filter(list_file, pattern) - if matches: - matches = sorted(matches, lambda a,b : (len(a) - len(b)) * 10 + cmp(a, b)) - if self.cleanup_cover(song, song_dir + "/" + matches[0], image_path): - return image_path + if read_local: + if song.get("uri") != None and song.get_scheme() == "file": + song_dir = song.get_dir() + if os.path.exists(song_dir): + list_file = os.listdir(song_dir) + for pattern in COVER_PATTERNS: + matches = fnmatch.filter(list_file, pattern) + if matches: + matches = sorted(matches, lambda a,b : (len(a) - len(b)) * 10 + cmp(a, b)) + if self.cleanup_cover(song, song_dir + "/" + matches[0], image_path): + return image_path if not config.getboolean("setting", "offline") and try_web and is_network_connected(): try: @@ -390,6 +393,15 @@ Dispatcher.emit("album-changed", song_or_name) MediaDB.set_property(song_or_name, {"album" : song_or_name.get("album")}) return True + + @utils.threaded + def fetch_cover(self, song): + success = self.get_cover(song, try_web=True, read_local=False) + if success: + Dispatcher.emit("album-changed", song) + MediaDB.set_property(song, {"album" : song.get("album")}) + + CoverManager = DeepinCoverManager() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/cover_query.py deepin-music-player-1.3.3/src/cover_query.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/cover_query.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/cover_query.py 2013-08-23 02:38:55.000000000 +0000 @@ -29,6 +29,7 @@ import utils from logger import Logger from mycurl import MyCurl, CurlException, public_curl +from deepin_utils.net import is_network_connected class PosterLib(Logger): @@ -128,6 +129,8 @@ poster = PosterLib() def multi_query_artist_engine(artist_name): + if not is_network_connected(): + return None if artist_name.find(",") != -1: artist_name = artist_name.split(",")[0] quote_artist_name = urllib.quote(artist_name) @@ -171,6 +174,9 @@ return False def query_album_cover_from_xiami(artist_name, album_name): + if not is_network_connected(): + return None + if not artist_name and not album_name: return False xiami_album_search_url = 'http://www.xiami.com/search/album?key=' + artist_name + '+' + album_name diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/dbus_manager.py deepin-music-player-1.3.3/src/dbus_manager.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/dbus_manager.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/dbus_manager.py 2013-10-10 07:22:37.000000000 +0000 @@ -219,6 +219,7 @@ """ app_instance = utils.get_main_window() current_view = app_instance.playlist_ui.get_selected_song_view() + app_instance.list_manager.switch_to_local() if current_view: current_view.add_file(filename, True) @@ -226,6 +227,7 @@ def Enqueue(self, locations): app_instance = utils.get_main_window() current_view = app_instance.playlist_ui.get_selected_song_view() + app_instance.list_manager.switch_to_local() if current_view: uris = utils.convert_args_to_uris(locations) current_view.play_uris(uris) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/helper.py deepin-music-player-1.3.3/src/helper.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/helper.py 2013-07-23 02:12:28.000000000 +0000 +++ deepin-music-player-1.3.3/src/helper.py 2013-09-26 05:29:51.000000000 +0000 @@ -23,6 +23,8 @@ import gobject +NEED_RESTORE = True + class EventDispatcher(gobject.GObject): SIGNAL = (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,gobject.TYPE_PYOBJECT)) SIGNAL_SIMPLE = (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)) @@ -76,6 +78,7 @@ "dialog-run" : SIGNAL_BASE, "dialog-close" : SIGNAL_BASE, "download-songs" : SIGNAL_SIMPLE, + "ready" : SIGNAL_BASE, } def __init__(self): diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/lrc_manager.py deepin-music-player-1.3.3/src/lrc_manager.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/lrc_manager.py 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/src/lrc_manager.py 2013-09-26 05:29:51.000000000 +0000 @@ -111,10 +111,19 @@ def allocation_lrc_file(self, song, lrc_path): if os.path.exists(lrc_path): if self.vaild_lrc(lrc_path): - save_lrc_path = self.get_lrc_filepath(song) - if os.path.exists(save_lrc_path): os.unlink(save_lrc_path) - utils.run_command("cp %s %s" % (lrc_path, save_lrc_path)) + song["location_lrc"] = lrc_path + # save_lrc_path = self.get_lrc_filepath(song) + # if os.path.exists(save_lrc_path): os.unlink(save_lrc_path) + # utils.run_command("cp %s %s" % (lrc_path, save_lrc_path)) Dispatcher.reload_lrc(song) + + def unallocation_lrc_file(self, song): + try: + del song["location_lrc"] + except KeyError: + pass + else: + Dispatcher.reload_lrc(song) def get_lrc_filepath(self, song): save_path = os.path.expanduser(config.get("lyrics", "save_lrc_path")) @@ -127,6 +136,12 @@ lrc_path = self.get_lrc_filepath(song) + + # user allocation lrc + location_lrc = song.get("location_lrc", "") + if location_lrc and os.path.exists(location_lrc): + return location_lrc + # lrc already exist if os.path.exists(lrc_path): if self.vaild_lrc(lrc_path): @@ -135,14 +150,25 @@ try: os.unlink(lrc_path) except: pass + + # search in current directory and same name file + current_lrc_path = os.path.join(song.get_dir(), song.get_filename() + ".lrc") + if os.path.exists(current_lrc_path) and self.vaild_lrc(current_lrc_path): + return current_lrc_path # Search in local directory of the file if song.get("uri") != None and song.get_scheme() == "file": local_lrc = os.path.join(song.get_dir(), self.get_lrc_search_str(song)) if os.path.exists(local_lrc): return local_lrc - + + if try_web and is_network_connected(): + if song.get("lyric_url", None): + ret = utils.download(song.get("lyric_url"), lrc_path) + if ret: + return lrc_path + trust_a = song.get_str("artist") trust_t = song.get_str("title") filename = song.get_filename() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/main.py deepin-music-player-1.3.3/src/main.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/main.py 2013-07-23 05:55:20.000000000 +0000 +++ deepin-music-player-1.3.3/src/main.py 2013-09-26 05:29:51.000000000 +0000 @@ -61,6 +61,9 @@ self.dbus = dbus_manager.DeepinMusicDBus() + import helper + helper.NEED_RESTORE = False if self.args else True + #load the rest. self.__init() @@ -175,6 +178,7 @@ # dbus_init. import dbus, dbus.mainloop.glib dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) + dbus.mainloop.glib.threads_init() dbus.mainloop.glib.gthreads_init() @@ -232,21 +236,21 @@ def post_start(self): if self.db_ready and self.app_ready: - restore = True + # restore = True if self.app_instance: current_view = self.app_instance.playlist_ui.get_selected_song_view() from utils import convert_args_to_uris args = convert_args_to_uris(self.args) if len(args) > 0: if current_view: - restore = False + # restore = False current_view.add_file(args[0], play=True) if args[1:]: if current_view: current_view.async_add_uris(args[1:], False) - if restore: - from player import Player - Player.load() + # if restore: + # from player import Player + # Player.load() if self.options.StartAnyway and self.check_result == "command": import dbus_manager diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/player/__init__.py deepin-music-player-1.3.3/src/player/__init__.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/player/__init__.py 2013-07-23 02:12:28.000000000 +0000 +++ deepin-music-player-1.3.3/src/player/__init__.py 2013-08-29 07:20:07.000000000 +0000 @@ -65,6 +65,7 @@ self.__current_stream_seeked = False self.__next_already_called = False self.__emit_signal_new_song_id = None + self.skip_error_song_flag = False self.stop_after_this_track = False @@ -107,12 +108,16 @@ def __on_error(self, bin, uri): self.logdebug("gst error received for %s", uri) + if self.skip_error_song_flag: + self.skip_error_song_flag = False + return + self.bin.xfade_close() config.set("player", "play", "false") self.emit("paused") if self.song: - if getattr(self.__source, 'add_invaild_song'): + if getattr(self.__source, 'add_invaild_song', None): self.__source.add_invaild_song(self.song) if not self.song: @@ -357,10 +362,11 @@ else: ret = uri and self.bin.xfade_open(uri) if not ret: - gobject.idle_add(self.emit, "play-end") + # gobject.idle_add(self.emit, "play-end") if self.song: - if getattr(self.__source, 'add_invaild_song'): + if getattr(self.__source, 'add_invaild_song', None): self.__source.add_invaild_song(self.song) + self.skip_error_song_flag = True self.next() elif play: self.play(crossfade, seek) @@ -639,27 +645,7 @@ def load(self): '''load configure''' - if not self.__need_load_prefs: - return - uri = config.get("player", "uri") - seek = int(config.get("player", "seek")) - state = config.get("player", "state") - play = False - self.logdebug("player load %s in state %s at %d", uri, state, seek) - if config.getboolean("player", "play_on_startup") and state == "playing": - play = True - if uri: - song = MediaDB.get_song(uri) - if song.get_type() == "cue": - seek = seek + song.get("seek", 0) - if song and song.exists(): - if not config.getboolean("player", "resume_last_progress") or not play: - if song.get_type() == "cue": - seek = song.get("seek", 0) - else: - seek = None - self.set_song(song, play, self.get_crossfade() * 2, seek) - self.emit("loaded") + pass def save_state(self): '''save current song's state''' diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/player/fadebin.py deepin-music-player-1.3.3/src/player/fadebin.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/player/fadebin.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/player/fadebin.py 2013-09-12 09:06:20.000000000 +0000 @@ -140,7 +140,6 @@ from threading import Lock, Thread from logger import Logger - MMS_STREAM_SCHEMES = [ "mms", "mmsh", "mmsu", "mmst" ] HTTP_STREAM_SCHEME = "http" RTSP_STREAM_SCHEMES = [ "rtspu", "rtspt", "rtsph", "rtsp" ] @@ -190,9 +189,15 @@ "tags-found" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)), + "spectrum-data-found" : (gobject.SIGNAL_RUN_LAST, + gobject.TYPE_NONE, + (gobject.TYPE_PYOBJECT,)), "playing-stream" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING,)), + "queue-running" : (gobject.SIGNAL_RUN_LAST, + gobject.TYPE_NONE, + (gobject.TYPE_STRING,)), "playing" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()), @@ -279,6 +284,8 @@ self.__filterbin.add_pad(gst.GhostPad("src", pad)) queue.set_property("max-size-buffers", 10) + + # self.spectrum = gst.element_factory_make ("spectrum", "spectrum") self.__output.add(self.__capsfilter, audioconvert , audioresample , \ self.__tee , self.__volume, self.__filterbin, postaudioconvert, postaudioresample, queue, self.__sink) @@ -369,7 +376,11 @@ def xfade_open(self, uri): - + + buffer_streams = filter(lambda item: item.is_in_buffer(), self.streams) + if len(buffer_streams) > 0: + self.dispose_streams() + try: stream = StreamBin(self, uri) except Exception: @@ -389,6 +400,7 @@ def xfade_close(self, uri=None): ret = True + uri = None if not uri: self.stream_list_lock.acquire() streams = self.streams[:] @@ -578,7 +590,7 @@ return stream.seek_target = time * gst.SECOND - + if stream.state == PAUSED: self.logdebug("seeking in paused stream %s; target %f", stream.cutted_uri , stream.seek_target) stream.perform_seek() @@ -684,6 +696,9 @@ if name == "STREAM_PLAYING_MESSAGE": self.logdebug("got stream playing message for %s", stream.cutted_uri) self.emit("playing-stream", stream.uri) + + elif name == "STREAM_QUEUE_RUNNING": + self.emit("queue-running", stream.uri) elif name == "FADE_IN_DONE_MESSAGE": pass elif name == "FADE_OUT_DONE_MESSAGE": @@ -728,7 +743,25 @@ self.emit("buffering", progress) elif message.type == gst.MESSAGE_ELEMENT: # FOR imperfect stream messages not implemented in python version - pass + s = message.structure + name = s.get_name() + + if name == "spectrum": + waittime = 0 + if s.has_key("running_time") and s.has_key("duration"): + timestamp = s["running_time"] + duration = s["duration"] + waittime = timestamp + duration / 2 + elif s.has_key("endtime"): + waittime = s["endtime"] + + if waittime: + magnitude_list = s['magnitude'] + # basetime = self.spectrum.get_base_time() + # clock_id = self.sync_clock.new_single_shot_id(waittime + basetime) + # self.delayed_spectrum_update(spect) + self.emit("spectrum-data-found", magnitude_list) + elif message.type == gst.MESSAGE_STATE_CHANGED: pass else: @@ -737,6 +770,7 @@ # FIXME: missing in python need code it... #bus.async_signal_func(message) + return True @@ -1644,7 +1678,7 @@ def __queue_threshold_cb(self, queue): self.logdebug("%s: queue running", self.cutted_uri) - + sinkpad = self.__queue.get_pad("sink") sinkpad.remove_buffer_probe(self.__queue_probe_id) self.__queue_probe_id = None @@ -1654,15 +1688,22 @@ self.__queue.disconnect(self.__queue_threshold_id) self.__queue_threshold_id = None self.post_buffering_message(100) + + s = gst.Structure("STREAM_QUEUE_RUNNING") + msg = gst.message_new_application(self, s) + self.post_message(msg) + + def is_in_buffer(self): + return self.__queue_probe_id is not None def __queue_underrun_cb(self, queue): self.logdebug("%s: queue underrun", self.cutted_uri) - self.__queue.set_property("min-threshold-bytes", self.__queue_threshold) + if not self.__queue_probe_id: sinkpad = self.__queue.get_pad("sink") self.__queue_probe_id = sinkpad.add_buffer_probe(self.__queue_probe_cb) - + if not self.__queue_threshold_id: self.__queue_threshold_id = self.__queue.connect("running", self.__queue_threshold_cb) self.post_buffering_message(0) @@ -1789,6 +1830,11 @@ for pstream in to_fade: fade_out_start = 1.0 fade_out_time = float(self.crossfade) * gst.SECOND + if pstream.is_in_buffer(): + pstream.unlink_and_block_stream() + pstream.unlink_and_dispose_stream() + continue + if pstream.state in [ FADING_IN ] : fade_out_start = float(pstream.get_volume()) fade_out_time = (float(self.crossfade) * fade_out_start) * gst.SECOND @@ -1960,6 +2006,9 @@ self.state = PAUSED elif self.state == SEEKING_EOS: self.logdebug("waiting for pad block to complete for %s before unlinking", self.cutted_uri) + + if self.state == PLAYING: + self.actually_start_stream() def perform_seek_idle(self): self.perform_seek() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/song.py deepin-music-player-1.3.3/src/song.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/song.py 2013-08-02 09:18:56.000000000 +0000 +++ deepin-music-player-1.3.3/src/song.py 2013-09-26 05:29:51.000000000 +0000 @@ -75,7 +75,7 @@ #lastplayed #added #date #mtime #ctime #rate #progress #bitrate #size #stream_offset seek sort_title sort_artist sort_album sort_genre search real_uri id collected collect ssid company rating_avg subtype aid sid like -tag categroys genres country location comment +tag categroys genres country location comment location_lrc """.split() class Song(dict, Logger): @@ -88,7 +88,8 @@ other_dict[key] = other_dict.get(key, default) self.update(other_dict) - if not self.has_key("#added"): + added = self.get("#added", 0) + if not added: self["#added"] = time() self.cmp_key = cmp_key @@ -311,12 +312,17 @@ def read_from_file(self): ''' Read song infomation for file. ''' - if self.get_scheme() == "file" and not self.exists(): - ret = False - if self.get_scheme() == "file" and common.file_is_supported(self.get_path()): + # if self.get_scheme() == "file" and not self.exists(): + # ret = False + # if self.get_scheme() == "file" and common.file_is_supported(self.get_path()): + # ret = self.__read_from_local_file() + # else: + # ret = self.__read_from_remote_file() + # return ret + try: ret = self.__read_from_local_file() - else: - ret = self.__read_from_remote_file() + except: + ret = False return ret def __read_from_local_file(self): @@ -506,4 +512,4 @@ return False else: return True - \ No newline at end of file + diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/utils.py deepin-music-player-1.3.3/src/utils.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/utils.py 2013-08-02 09:18:56.000000000 +0000 +++ deepin-music-player-1.3.3/src/utils.py 2013-09-05 06:17:25.000000000 +0000 @@ -803,11 +803,14 @@ def save_db(objs, fn): '''Save object to db file.''' - f = open(fn + ".tmp", "w") - fcntl.flock(f.fileno(), fcntl.LOCK_EX) - cPickle.dump(objs, f, cPickle.HIGHEST_PROTOCOL) - f.close() - os.rename(fn + ".tmp", fn) + try: + f = open(fn + ".tmp", "w") + fcntl.flock(f.fileno(), fcntl.LOCK_EX) + cPickle.dump(objs, f, cPickle.HIGHEST_PROTOCOL) + f.close() + os.rename(fn + ".tmp", fn) + except: + pass def load_db(fn): '''Load object from db file.''' diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/webcast_library.py deepin-music-player-1.3.3/src/webcast_library.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/webcast_library.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/webcast_library.py 2013-08-29 07:20:07.000000000 +0000 @@ -148,7 +148,7 @@ with self.keep_operation(): self.__songs[uri] = song - self.logdebug("add webcast %s ", uri) + # self.logdebug("add webcast %s ", uri) with self.keep_signal(): self.__queued_signal["added"].add(song) @@ -302,7 +302,7 @@ s = Song(obj) s.set_type(self.__type) if not self.__songs.has_key(s.get("uri")): - self.logdebug("load webcast %s" % s) + # self.logdebug("load webcast %s" % s) self.add(s) if save_flag: diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/browser_manager.py deepin-music-player-1.3.3/src/widget/browser_manager.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/browser_manager.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/browser_manager.py 2013-10-29 05:17:15.000000000 +0000 @@ -59,7 +59,7 @@ self.last_browser = local_browser self.bottom_box.add(local_browser) self.bottom_box_align = gtk.Alignment() - self.bottom_box_align.set_padding(0, 0, 1, 2) + self.bottom_box_align.set_padding(0, 0, 1, 1) self.bottom_box_align.set(1, 1, 1, 1) self.bottom_box_align.add(self.bottom_box) @@ -115,7 +115,7 @@ def on_expose_event(self, widget, event): cr = widget.window.cairo_create() rect = widget.allocation - draw_alpha_mask(cr, rect.x, rect.y, rect.width - 2, rect.height ,"layoutRight") + draw_alpha_mask(cr, rect.x, rect.y, rect.width - 1, rect.height ,"layoutRight") draw_line(cr, (rect.x + 1, rect.y), (rect.x + 1, rect.y + rect.height), "#b0b0b0") diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/converter.py deepin-music-player-1.3.3/src/widget/converter.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/converter.py 2013-06-04 00:58:45.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/converter.py 2013-08-22 04:02:49.000000000 +0000 @@ -43,7 +43,7 @@ from nls import _ from widget.skin import app_theme from widget.dialog import WinDir -from widget.ui_utils import (set_widget_left, render_item_text) +from widget.ui_utils import (set_widget_left, render_item_text2) from constant import DEFAULT_FONT_SIZE from helper import Dispatcher from player import Player @@ -74,15 +74,19 @@ self.status_icon_press = app_theme.get_pixbuf("transcoder/wait_press.png").get_pixbuf() self.stop_icon = app_theme.get_pixbuf("transcoder/stop.png").get_pixbuf() self.progress_ratio = 0.0 + self.skip_flag = False self.trans_data = trans_data self.init_transcoder(trans_data) self.__update() self.progress_buffer = ProgressBuffer() - + def start(self): - self.transcoder.start_transcode() - self.__set_status_icon("working") - self.__updater_id = gobject.timeout_add(500, self.update_progress) + if self.skip_flag: + self.finish_job() + else: + self.transcoder.start_transcode() + self.__set_status_icon("working") + self.__updater_id = gobject.timeout_add(500, self.update_progress) def update_progress(self): self.set_progress_ratio(self.transcoder.get_ratio()) @@ -118,6 +122,10 @@ self.exists_prompt = True else: self.exists_prompt = False + + if self.raw_song.get_path() == self.output_path: + self.skip_flag = True + self.output_ext = FORMATS[attr["format"]]["extension"] self.transcoder = Transcoder() self.transcoder.set_format(attr["format"]) @@ -134,6 +142,10 @@ self.write_tags() except: pass + + self.finish_job() + + def finish_job(self): self.emit("end") self.__set_status_icon("success") self.set_progress_ratio(1.0) @@ -223,7 +235,7 @@ def render_title(self, cr, rect, in_select, in_highlight): rect.x += self.title_padding_x rect.width -= self.title_padding_x * 2 - render_item_text(cr, self.title, rect, in_select, in_highlight) + render_item_text2(cr, self.title, rect, in_select, in_highlight) def render_progress(self, cr, rect, in_select, in_highlight): self.progress_buffer.progress = self.progress_ratio * 100 @@ -240,7 +252,7 @@ def render_ext(self, cr, rect, in_select, in_highlight): rect.x += self.ext_padding_x rect.width -= self.ext_padding_x * 2 - render_item_text(cr, self.output_ext.upper(), rect, in_select, in_highlight) + render_item_text2(cr, self.output_ext.upper(), rect, in_select, in_highlight) def get_ext_type(self): gio_file = gio.File(self.output_path) @@ -293,7 +305,7 @@ self.__job_end_cb(self.__jobs[0][0]) def __run_check(self, ajob): - if ajob.exists_prompt: + if ajob.exists_prompt and not ajob.skip_flag: ConfirmDialog(_("Prompt"), _("Target file already exitsts, do you want to overwrite it?"), confirm_callback=lambda : ajob.start(), cancel_callback=lambda :self.start_new_job(ajob) @@ -490,7 +502,7 @@ return hbox, combo_box def reset_quality_items(self, widget, label, allocated_data, index): - self.quality_combo_box.set_items(self.get_quality_items(label)) + self.quality_combo_box.add_items(self.get_quality_items(label), clear_first=True) self.quality_combo_box.set_select_index(self.get_quality_index(label)) self.quality_combo_box.queue_draw() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/cover.py deepin-music-player-1.3.3/src/widget/cover.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/cover.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/cover.py 2013-08-22 04:02:49.000000000 +0000 @@ -101,11 +101,11 @@ self.active_pixbuf = self.get_default_pixbuf(self.current_song) draw_pixbuf(cr, self.cover_side_pixbuf, rect.x, rect.y) - draw_pixbuf(cr, self.active_pixbuf, rect.x + 3.5, rect.y + 3.5, - self.active_alpha) + draw_pixbuf(cr, self.active_pixbuf, rect.x + 3, rect.y + 3, self.active_alpha) if self.target_pixbuf: - draw_pixbuf(cr, self.target_pixbuf, rect.x + 3.5, rect.y + 3.5, self.target_alpha) + draw_pixbuf(cr, self.target_pixbuf, rect.x + 3, rect.y + 3, self.target_alpha) + return True diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/global_keys.py deepin-music-player-1.3.3/src/widget/global_keys.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/global_keys.py 2013-06-06 08:21:30.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/global_keys.py 2013-08-16 07:49:17.000000000 +0000 @@ -71,7 +71,7 @@ def start_bind(self): for field in self.func.keys(): keystr = config.get("globalkey", field) - if keystr: + if keystr and keystr != "None": self.__bind(keystr, field) config.set("globalkey", "%s_last" % field, keystr) @@ -111,12 +111,12 @@ self.__try_unbind(config.get(section, option + "_last", value)) if value: - try: - self.__bind(config.get(section, option, value), option) - except: - pass - else: - config.set(section, option + "_last", value) + if value != "None": + try: + self.__bind(config.get(section, option, value), option) + except: pass + + config.set(section, option + "_last", value) if section == "globalkey" and option == "enable": if value == "true": diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/headerbar.py deepin-music-player-1.3.3/src/widget/headerbar.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/headerbar.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/headerbar.py 2013-10-28 02:14:06.000000000 +0000 @@ -28,7 +28,8 @@ from player import Player from widget.information import PlayInfo -from widget.timer import SongTimer, VolumeSlider +from widget.timer import VolumeSlider +from widget.new_timer import SongTimer from widget.cover import PlayerCoverButton from widget.skin import app_theme @@ -124,6 +125,13 @@ body_vbox = gtk.VBox(spacing=6) body_vbox.pack_start(cover_main_box, False, True) body_vbox.pack_start(self.song_timer, False, True) + # progressbar_align = gtk.Alignment() + # progressbar_align.add(ProgressBar()) + # progressbar_align.set(1, 1, 1, 1) + # progressbar_align.set_padding(0, 0, 2, 2) + # body_vbox.pack_start(progressbar_align, False, True) + + self.add(body_vbox) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/instance.py deepin-music-player-1.3.3/src/widget/instance.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/instance.py 2013-06-06 08:21:30.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/instance.py 2013-08-29 07:20:07.000000000 +0000 @@ -157,8 +157,8 @@ application.main_box.pack_start(main_box) application.main_box.pack_start(status_bar, False, True) - if config.get("globalkey", "enable", "false") == "true": - global_hotkeys.start_bind() + # if config.get("globalkey", "enable", "false") == "true": + # global_hotkeys.start_bind() if config.get("setting", "window_mode") == "simple": self.revert_toggle_button.set_active(False) @@ -220,6 +220,7 @@ self.emit("ready") + Dispatcher.emit("ready") # wizard if not first_started: self.show_wizard_win(True, self.ready_show) @@ -297,7 +298,7 @@ def hide_to_tray(self): event = self.window.get_state() if config.get("setting", "window_mode") == "full": - if event == gtk.gdk.WINDOW_STATE_MAXIMIZED: + if event & gtk.gdk.WINDOW_STATE_MAXIMIZED == gtk.gdk.WINDOW_STATE_MAXIMIZED: config.set("window", "state", "maximized") else: config.set("window", "state", "normal") @@ -347,6 +348,7 @@ tags = {"uri" : utils.get_uri_from_path(filename)} s = Song() s.init_from_dict(tags) + s.set_type("local") s.read_from_file() AttributesUI([s]).show_window() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/list_manager.py deepin-music-player-1.3.3/src/widget/list_manager.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/list_manager.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/list_manager.py 2013-10-10 07:22:37.000000000 +0000 @@ -21,10 +21,13 @@ # along with this program. If not, see . import gtk +import gobject +import helper from helper import Dispatcher from widget.tab_box import TabManager from widget.local_tab import local_search_tab +from config import config class ListManager(gtk.VBox): def __init__(self): @@ -39,23 +42,54 @@ self.tab_box.connect("switch-tab", self.on_tab_box_switch_tab) main_align.add(self.tab_box) self.add(main_align) + self.current_title = config.get("listmanager", "source", "") + self.current_source = None Dispatcher.connect("add-source", self.on_dispatcher_add_source) Dispatcher.connect("remove-source", self.on_dispatcher_remove_source) Dispatcher.connect("switch-source", self.on_dispatcher_switch_source) + if helper.NEED_RESTORE: + Dispatcher.connect("ready", self.on_dispatcher_ready) + + def on_dispatcher_ready(self, widget): + if self.current_source: + self.switch_source(self.current_source, True) + restore_status = getattr(self.current_source.list_widget, "restore_status", None) + if restore_status and callable(restore_status): + # gobject.idle_add(restore_status) + restore_status() + + else: + try: + gobject.idle_add(local_search_tab.list_widget.restore_status) + except Exception, e: + print e def on_tab_box_switch_tab(self, widget, item): + try: + config.set("listmanager", "source", item.title) + config.write() + except: pass + Dispatcher.emit("switch-browser", item, True) def manual_active_tab(self, widget, songs, tab_type): self.tab_box.active_tab(tab_type) def on_dispatcher_add_source(self, widget, data): + if data.title == self.current_title: + self.current_source = data self.tab_box.add_items([data], False) def on_dispatcher_remove_source(self, widget, data): self.tab_box.remove_items([data]) def on_dispatcher_switch_source(self, widget, data): + self.switch_source(data) + + def switch_source(self, data, switched=False): self.tab_box.active_item(data) - Dispatcher.emit("switch-browser", data, False) + Dispatcher.emit("switch-browser", data, switched) + + def switch_to_local(self): + self.switch_source(local_search_tab, True) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/lyrics.py deepin-music-player-1.3.3/src/widget/lyrics.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/lyrics.py 2013-06-06 08:21:30.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/lyrics.py 2013-08-16 07:49:17.000000000 +0000 @@ -569,7 +569,7 @@ def draw_lyrics(self, cr): - alpha = 1.0 + alpha = 0.99 font_height = self.render_lyrics.get_font_height() if self.is_composited() and self.get_locked() and self.mouse_over_lyrics and self.get_translucent_on_mouse_over(): alpha = 0.3 @@ -621,11 +621,12 @@ pass def set_input_shape_mask(self, disable_input): - if disable_input: - region = gtk.gdk.Region() - self.window.input_shape_combine_region(region, 0, 0) - else: - self.window.input_shape_combine_region(self.window.get_visible_region(), 0, 0) + if self.get_property("visible"): + if disable_input: + region = gtk.gdk.Region() + self.window.input_shape_combine_region(region, 0, 0) + else: + self.window.input_shape_combine_region(self.window.get_visible_region(), 0, 0) def point_in_rect(self, x, y, rect): return rect.x <= x < rect.x + rect.width and rect.y <= y < rect.y + rect.height diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/lyrics_module.py deepin-music-player-1.3.3/src/widget/lyrics_module.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/lyrics_module.py 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/lyrics_module.py 2013-09-26 05:29:51.000000000 +0000 @@ -27,6 +27,7 @@ import time from collections import OrderedDict +from contextlib import contextmanager from dtk.ui.window import Window from dtk.ui.button import ImageButton, ToggleButton from dtk.ui.box import ImageBox @@ -80,6 +81,8 @@ Dispatcher.connect("dialog-run", self.on_dialog_run) Dispatcher.connect("dialog-close", self.on_dialog_close) + config.connect("config-changed", self.on_config_changed) + self.lrc_manager = LrcManager() self.lrc = LrcParser() @@ -153,9 +156,9 @@ karaoke_align, self.karaoke_button = self.__create_single_toggle_button("karaoke", self.change_karaoke_status, _("karaoke on/off")) - line_align, self.line_button = self.__create_simple_toggle_button("double_line", "single_line", - self.change_line_status, - _("Switch lines")) + line_align, self.line_button = self.__create_simple_toggle_button("single_line", "double_line", + None,_("Switch lines")) + self.line_button_toggled_id = self.line_button.connect("toggled", self.change_line_status) setting_align = self.__create_simple_button("setting", self.open_setting_window, _("Open settings panel")) search_align = self.__create_simple_button("search", self.open_search_window, _("search lrc file for current track")) close_align = self.__create_simple_button("close", self.close_lyric_window, _("Close lyrics")) @@ -188,6 +191,25 @@ self.load_button_status() + + def on_config_changed(self, obj, selection, option, value): + if selection == "lyrics" and option == "line_count": + is_active = self.line_button.get_active() + if value == "1" and not is_active: + with self.line_button_toggled_status(): + self.line_button.set_active(True) + elif value == "2" and is_active: + with self.line_button_toggled_status(): + self.line_button.set_active(False) + + @contextmanager + def line_button_toggled_status(self): + self.line_button.disconnect(self.line_button_toggled_id) + try: + yield + finally: + self.line_button_toggled_id = self.line_button.connect("toggled", self.change_line_status) + def expose_toolbar_mask(self, widget, event): cr = widget.window.cairo_create() rect = widget.allocation @@ -220,6 +242,9 @@ (None, _("Settings"), lambda : self.open_setting_window(None)), (None, _("Switch to window mode"), lambda : self.switch_to_scroll_lyrics(None)) ] + + if Player.song.get("location_lrc", None): + menu_items.insert(4, (None, _("Network get lrc"), self.disassociate_lrc)) Menu(menu_items, True).show((int(event.x_root), int(event.y_root))) def allocation_lrc(self): @@ -227,6 +252,9 @@ if lrc_path: self.lrc_manager.allocation_lrc_file(Player.song, lrc_path) + def disassociate_lrc(self): + self.lrc_manager.unallocation_lrc_file(Player.song) + def open_lrc_dir(self): save_dir = os.path.expanduser(config.get("lyrics", "save_lrc_path", "~/.lyrics")) utils.run_command("xdg-open %s" % save_dir) @@ -285,7 +313,7 @@ button_align.add(button) return button_align - def __create_simple_toggle_button(self, normal_name, active_name, callback, tip_msg=None): + def __create_simple_toggle_button(self, normal_name, active_name, callback=None, tip_msg=None): toggle_button = ToggleButton( app_theme.get_pixbuf("lyric/%s_normal.png" % normal_name), app_theme.get_pixbuf("lyric/%s_normal.png" % active_name), @@ -294,7 +322,9 @@ app_theme.get_pixbuf("lyric/%s_press.png" % normal_name), app_theme.get_pixbuf("lyric/%s_press.png" % active_name), ) - toggle_button.connect("toggled", callback) + + if callback: + toggle_button.connect("toggled", callback) toggle_align = gtk.Alignment() toggle_align.set(0.5, 0.5, 0, 0) toggle_align.add(toggle_button) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/lyrics_search.py deepin-music-player-1.3.3/src/widget/lyrics_search.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/lyrics_search.py 2013-06-14 02:41:36.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/lyrics_search.py 2013-08-16 02:22:18.000000000 +0000 @@ -45,7 +45,8 @@ def __init__(self): DialogBox.__init__( self, _("Lyrics search"), 460, 300, DIALOG_MASK_MULTIPLE_PAGE, close_callback=self.hide_all, - modal=False, window_hint=None, skip_taskbar_hint=False) + modal=False, window_hint=None, skip_taskbar_hint=False, window_pos=gtk.WIN_POS_CENTER) + self.artist_entry = InputEntry() self.artist_entry.set_size(130, 23) self.title_entry = InputEntry() @@ -99,6 +100,10 @@ self.right_button_box.set_buttons([download_button, cancel_button]) self.lrc_manager = LrcManager() + def show_window(self): + DialogBox.show_window(self) + self.present() + def draw_view_mask(self, cr, x, y, width, height): draw_alpha_mask(cr, x, y, width, height, "layoutMiddle") diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/new_timer.py deepin-music-player-1.3.3/src/widget/new_timer.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/new_timer.py 1970-01-01 00:00:00.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/new_timer.py 2013-10-28 02:14:06.000000000 +0000 @@ -0,0 +1,187 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- + +# Copyright (C) 2011 ~ 2013 Deepin, Inc. +# 2011 ~ 2013 Hou ShaoHui +# +# Author: Hou ShaoHui +# Maintainer: Hou ShaoHui +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import gtk +import gobject + +from dtk.ui.label import Label +import utils +from widget.progressbar import ProgressBar +from widget.skin import app_theme +from player import Player + +class SongTimer(gtk.HBox): + __gsignals__ = { + "play-end" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, ()) + } + def __init__(self, draw_time_callback=None): + super(SongTimer, self).__init__() + + self.label_time = Label("00:00", app_theme.get_color("labelText"), 8, enable_gaussian=True) + self.draw_time_callback = draw_time_callback + if draw_time_callback: + draw_time_callback(self.label_time.get_text()) + + self.bar = ProgressBar() + bar_align = gtk.Alignment() + bar_align.set_padding(0, 0, 1, 1) + bar_align.set(1, 1, 1, 1) + bar_align.add(self.bar) + self.bar.connect("button-press-event", self.on_bar_press) + self.bar.connect("button-release-event", self.on_bar_release) + self.__value_changed_id = self.bar.connect("value-changed", self.on_bar_value_changed) + + self.pack_start(bar_align, True, True) + self.update_bar = 1 + self.duration = 0 + self.__idle_release_id = None + self.delete = False + self.__need_report = False + self.press_flag = False + + Player.connect("instant-new-song", self.set_duration) + Player.connect("init-status", self.on_player_init_status) + + Player.bin.connect("queue-running", self.on_queue_running) + Player.bin.connect("tick", self.on_tick) + Player.connect("seeked", self.on_seek) + Player.connect("stopped", self.set_duration) + if not Player.song: + self.bar.set_sensitive(False) + + def on_queue_running(self, obj, uri): + self.update_bar = 1 + + def on_player_init_status(self, player): + self.label_time.set_text("00:00") + self.bar.set_value(0) + self.bar.set_sensitive(True) + if self.draw_time_callback: + self.draw_time_callback(self.label_time.get_text()) + + + def get_label(self): + return self.label_time + + def stop(self): + self.delete = True + + def set_duration(self, player, song=None): + self.update_bar = 1 + + if not song: + if player.song: song = player.song + else: return + else: + self.__need_report = True + + self.duration = song.get("#duration", 0) / 1000 + self.set_current_time(0, self.duration) + + def on_tick(self, bin, pos, duration): + if Player.song: + if Player.song.get_type() == "webcast": + duration = 0 + + pos /= 1000.0 + duration /= 1000.0 + + if Player.song and Player.song.get_type() == "cue": + duration = Player.song.get("#duration") / 1000 + pos = pos - Player.song.get("seek", 0) + + self.duration = duration + if self.update_bar == 1: + self.set_current_time(pos, duration) + return not self.delete + + def set_current_time(self, pos, duration): + if self.update_bar == 1: + if duration == 0 or pos >= duration: + self.bar.set_range(0, 1000) + self.bar.set_value(0) + self.bar.set_sensitive(False) + else : + self.bar.set_sensitive(True) + self.bar.set_range(0, duration) + self.bar.set_value(pos) + + # total = utils.duration_to_string(duration * 1000, "00:00") + if pos > 0 and pos < duration: + current = utils.duration_to_string(pos, "00:00", 1) + else: + current = "00:00" + + if pos >0 and Player.song and Player.song.get_type() == "webcast": + current = utils.duration_to_string(pos, "00:00", 1) + # total = "--:--" + # text = "%s/%s" % (current, total) + text = current + self.label_time.set_text(text) + if self.draw_time_callback: + self.draw_time_callback(text) + + def on_seek(self, *args, **kwargs): + self.__need_report = False + + def on_bar_value_changed(self, widget, value): + pos = self.bar.get_value() + self.set_current_time(pos, self.duration) + + def on_bar_press(self, widget, event): + if not self.press_flag: + if self.__idle_release_id: + gobject.source_remove(self.__idle_release_id) + self.__idle_release_id = None + self.update_bar = 0 + self.__need_report = False + + + self.bar.disconnect(self.__value_changed_id) + self.press_flag = True + + def __idle_release(self): + if Player.song.get_type() in ("cue", "cdda", "local"): + self.update_bar = 1 + + self.__idle_release_id = None + + def on_bar_release(self, widget, event): + if self.press_flag: + self.__value_changed_id = self.bar.connect("value-changed", self.on_bar_value_changed) + + s = Player.song + if not s : + return + if s.get_type() in [ "webcast",]: + return + + if s.get_type() == "cue": + Player.seek(s.get("seek", 0) + self.bar.get_value()) + else: + Player.seek(self.bar.get_value()) + + # wait a bit that the player are really seek to update the progress bar + # if not self.__idle_release_id: + self.__idle_release() + self.__idle_release_id = gobject.idle_add(self.__idle_release) + self.press_flag = False diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/playlist.py deepin-music-player-1.3.3/src/widget/playlist.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/playlist.py 2013-06-04 00:58:45.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/playlist.py 2013-09-05 06:17:25.000000000 +0000 @@ -46,6 +46,20 @@ from constant import CATEGROYLIST_WIDTH, HIDE_PLAYLIST_WIDTH import utils +class CategoryView(TreeView): + + def add_items(self, items, insert_pos=None, clear_first=False): + for item in items: + song_view = getattr(item, "song_view", None) + if song_view: + setattr(song_view, "category_view", self) + TreeView.add_items(self, items, insert_pos, clear_first) + + items = property(lambda self: self.visible_items) + + def check_view_status(self): + for item in self.items: + item.song_view.async_reset_error_items() class PlaylistUI(gtk.VBox): '''Playlist UI.''' @@ -55,11 +69,14 @@ gtk.VBox.__init__(self) # Init catagory list. - self.category_list = TreeView() + self.category_list = CategoryView() + setattr(self.category_list, "save_to_library", self.save_to_library) self.category_list.draw_mask = self.draw_category_list_mask self.category_list.connect("single-click-item", self.on_category_single_click) self.category_list.connect("right-press-items", self.on_category_right_press) self.category_list.set_size_request(CATEGROYLIST_WIDTH, -1) + + del self.category_list.keymap["Delete"] # Init SearchEntry. self.entry_box = SearchEntry("") @@ -111,6 +128,7 @@ self.menu_source_id = None self.song_notify_id = None self.detail_menu = None + self.save_flag = False if MediaDB.isloaded(): self.__on_db_loaded(MediaDB) @@ -178,12 +196,37 @@ Player.set_source(self.current_item.song_view) self.right_box.add(self.current_item.get_list_widget()) + + self.category_list.check_view_status() self.list_paned.show_all() def __on_player_loaded(self, player): if self.current_item: self.current_item.song_view.reset_error_items() self.current_item.song_view.set_highlight_song(Player.song) + + def restore_status(self): + uri = config.get("player", "uri") + seek = int(config.get("player", "seek")) + state = config.get("player", "state") + play = False + + if config.getboolean("player", "play_on_startup") and state == "playing": + play = True + + if uri and self.current_item: + song = MediaDB.get_song(uri) + if song.get_type() == "cue": + seek = seek + song.get("seek", 0) + + if song and song.exists(): + if not config.getboolean("player", "resume_last_progress") or not play: + if song.get_type() == "cue": + seek = song.get("seek", 0) + else: + seek = None + + self.current_item.song_view.play_song(song, play, seek) def __play_and_add(self, widget, song): self.current_item.song_view.add_songs(song, play=True) @@ -525,10 +568,18 @@ def save_current_playlist(self, *args): - index = self.get_current_item_index() + index = 0 + player_source = Player.get_source() + for i, item in enumerate(self.category_list.get_items()): + if item.song_view == player_source: + index = i config.set("playlist","current_index", str(index)) def save_to_library(self): + if self.save_flag: + return + + self.save_flag = True if self.search_flag: self.reset_search_entry() @@ -539,5 +590,7 @@ songs = item.get_songs() name = item.get_title() MediaDB.create_playlist("local", name, songs) + MediaDB.async_save() + self.save_flag = False playlist_ui = PlaylistUI() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/plugins_view.py deepin-music-player-1.3.3/src/widget/plugins_view.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/plugins_view.py 2013-06-04 00:58:45.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/plugins_view.py 2013-08-16 02:22:18.000000000 +0000 @@ -73,6 +73,7 @@ self.redraw_request_callback(self) def select(self): + self.plugins_view.display_plugin_info(self) self.is_select = True self.emit_redraw_request() @@ -155,10 +156,12 @@ self.set_spacing(5) self.plugins = utils.get_main_window().plugins self.plugins_view = TreeView() + self.plugins_view.add_items = self.plugins_view_add_items self.plugins_view.set_expand_column(0) self.plugins_view.draw_mask = self.plugins_view_draw_mask self.plugins_view.set_size_request(420, 330) self.plugins_view.connect("single-click-item", self.on_plugins_view_single_click) + self.plugins_view.connect("press-return", self.on_plugins_view_press_return) self.plugins_view.set_column_titles([_("Add-on"), _("Version"), _("Enable"), ""], (self.sort_by_title, self.sort_by_title, @@ -173,6 +176,11 @@ self.pack_start(plugins_view_align, False, True) self.pack_start(self.plugin_infos, False, True) + def plugins_view_add_items(self, items, insert_pos=None, clear_first=False): + for item in items: + item.plugins_view = self + TreeView.add_items(self.plugins_view, items, insert_pos, clear_first) + def sort_by_title(self, items, reverse): return sorted(items, key=lambda item: item.plugin, reverse=reverse) @@ -205,22 +213,32 @@ plugins_items = [PluginItem(*args) for args in plugins_list] self.plugins_view.add_items(plugins_items) + + def on_plugins_view_press_return(self, widget, items): + if len(items) > 0: + item = items[0] + self.toggle_plugin_status(item) + def on_plugins_view_single_click(self, widget, item, column, x, y): if column == 2: - plugin = item.plugin - will_enable = not item.enabled - if will_enable: - try: - self.plugins.enable_plugin(plugin) - except Exception, e: - print e - return - else: - try: - self.plugins.disable_plugin(plugin) - except Exception, e: - print e - return - item.toggle_enabled() + self.toggle_plugin_status(item) + def toggle_plugin_status(self, item): + plugin = item.plugin + will_enable = not item.enabled + if will_enable: + try: + self.plugins.enable_plugin(plugin) + except Exception, e: + print e + return + else: + try: + self.plugins.disable_plugin(plugin) + except Exception, e: + print e + return + item.toggle_enabled() + + def display_plugin_info(self, item): self.plugin_infos.update_info(item.pluginfo) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/preference.py deepin-music-player-1.3.3/src/widget/preference.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/preference.py 2013-06-06 08:21:30.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/preference.py 2013-08-16 07:49:17.000000000 +0000 @@ -413,7 +413,8 @@ combo_hbox.pack_start(hotkey_label, False, False) # Hotkey entry. - hotkey_entry = ShortcutKeyEntry(hotkey_content) + hotkey_entry = ShortcutKeyEntry() + hotkey_entry.set_shortcut_key(None if hotkey_content == "None" else hotkey_content) hotkey_entry.set_size(170, 24) hotkey_entry_align = gtk.Alignment() hotkey_entry_align.set_padding(0, 0, 0, 50) @@ -463,6 +464,16 @@ self.active_middle_color_button.connect("color-select", self.update_active_middle_color) self.active_bottom_color_button.connect("color-select", self.update_active_bottom_color) + config.connect("config-changed", self.on_config_changed) + + + def on_config_changed(self, obj, selection, option, value): + if selection == "lyrics" and option == "line_count": + value = int(value) - 1 + index = self.line_number_combo_box.get_select_index() + if index != value: + self.line_number_combo_box.set_select_index(value) + def get_render_color(self, active=False): if active: return [color_hex_to_cairo(config.get("lyrics", "active_color_upper")), diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/progressbar.py deepin-music-player-1.3.3/src/widget/progressbar.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/progressbar.py 1970-01-01 00:00:00.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/progressbar.py 2013-08-23 02:38:55.000000000 +0000 @@ -0,0 +1,338 @@ +#! /usr/bin/env python +# -*- coding: utf-8 -*- + +import gtk +import gobject +import cairo +import pango + +from dtk.ui.draw import draw_pixbuf, draw_text +from dtk.ui.utils import is_left_button, cairo_disable_antialias, set_cursor, get_widget_root_coordinate, WIDGET_POS_TOP_LEFT +from dtk.ui.cache_pixbuf import CachePixbuf + + +from widget.skin import app_theme +from utils import color_hex_to_cairo +from widget.ui_utils import draw_round_rectangle_with_triangle + +class ProgressBar(gtk.Button): + + __gsignals__ = { + "value-changed" : (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT,)), + } + + def __init__(self, value=100, lower=0, upper=100, step=5): + gtk.Button.__init__(self) + + # Init data. + self.__value = value + self.__lower = lower + self.__upper = upper + self.__step = step + self.drag_flag = False + self.move_flag = False + + # Init DPixbufs. + self.bg_dpixbuf = app_theme.get_pixbuf("scalebar/bg.png") + + self.point_dpixbuf = app_theme.get_pixbuf("scalebar/point_normal.png") + self.point_width = self.point_dpixbuf.get_pixbuf().get_width() + + # Init Dcolors. + self.fg_left_dcolor = app_theme.get_color("progressBarLeft") + self.fg_right_dcolor = app_theme.get_color("progressBarRight") + + # self.progressbar_tip = progressBarTip() + + # Init Sizes. + self._value = lower + self.padding_x = 0 + self.padding_y = 0 + self.progress_x = 0 + self.point_offset = 0 + + self.fg_offset = self.bg_offset = 0 + self.default_height = self.bg_dpixbuf.get_pixbuf().get_height() + + # Init CachePixbufs + self.bg_cache_pixbuf = CachePixbuf() + self.fg_cache_pixbuf = CachePixbuf() + + + self.set_size_request(-1, self.default_height) + + # Init Events. + self.add_events(gtk.gdk.ALL_EVENTS_MASK) + self.connect("expose-event", self.on_expose_event) + self.connect("button-press-event", self.on_button_press_event) + self.connect("motion-notify-event", self.on_motion_notify_event) + self.connect("button-release-event", self.on_button_release_event) + # self.connect("enter-notify-event", self.on_enter_notify_event) + # self.connect("leave-notify-event", self.on_leave_notify_event) + + + def set_range(self, lower, upper): + self.__lower = lower + self.__upper = upper + + self.queue_draw() + + @property + def progress_width(self): + return self.allocation.width - getattr(self, "point_width", 0) + + @property + def virtual_width(self): + return self.allocation.width + + def value_to_width(self, value): + return value / float(self.__upper) * self.progress_width + + def width_to_value(self, width): + return width / float(self.progress_width) * self.__upper + + @property + def current_progress_width(self): + return int(self.value_to_width(self.value)) + + def get_size(self): + rect = self.allocation + return (rect.width, rect.height) + + def emit_value_changed(self): + self.emit("value-changed", self.value) + + def update_progress_width(self, event, emit=False): + progress_width = int(event.x - self.point_width) + + if progress_width < 0: + progress_width = 0 + + elif progress_width > self.progress_width: + progress_width = self.progress_width + + self.set_value(self.width_to_value(progress_width), emit) + + self.queue_draw() + + def on_expose_event(self, widget, event): + cr = widget.window.cairo_create() + rect = widget.allocation + + self.draw_progress_bar(cr, rect) + return True + + def on_enter_notify_event(self, widget, event): + self.show_progressbar_tip(event) + + def on_leave_notify_event(self, widget, event): + self.hide_progressbar_tip() + + def adjust_event_coords(self, event): + _, y = get_widget_root_coordinate(self, pos_type=WIDGET_POS_TOP_LEFT) + x, _ = event.get_root_coords() + return x, y + + def show_progressbar_tip(self, event): + self.progressbar_tip.move_to(*self.adjust_event_coords(event)) + self.progressbar_tip.show_all() + + def hide_progressbar_tip(self): + # self.progressbar_tip.hide_all() + pass + + def draw_progress_bar(self, cr, rect): + + # Draw progressbar background. + bg_height = self.bg_dpixbuf.get_pixbuf().get_height() + self.bg_cache_pixbuf.scale(self.bg_dpixbuf.get_pixbuf(), self.virtual_width, + bg_height) + + # bg_y = rect.y + (rect.height - bg_height) / 2 + draw_pixbuf(cr, self.bg_cache_pixbuf.get_cache(), rect.x + self.bg_offset, rect.y) + + # Draw progressbar foreground. + if self.current_progress_width > 0: + fg_height = self.default_height + fg_y = rect.y + lg_width = int(self.current_progress_width) + pat = cairo.LinearGradient(rect.x + self.fg_offset, fg_y, rect.x + self.fg_offset + lg_width, fg_y) + pat.add_color_stop_rgb(0.7, *color_hex_to_cairo(self.fg_left_dcolor.get_color())) + pat.add_color_stop_rgb(1.0, *color_hex_to_cairo(self.fg_right_dcolor.get_color())) + cr.set_operator(cairo.OPERATOR_OVER) + cr.set_source(pat) + cr.rectangle(rect.x + self.fg_offset, fg_y, lg_width, fg_height) + cr.fill() + + with cairo_disable_antialias(cr): + cr.set_line_width(1) + cr.set_source_rgba(1, 1, 1, 0.5) + cr.move_to(rect.x, fg_y + 1) + cr.rel_line_to(lg_width, 0) + cr.stroke() + + # Draw point. + point_y = rect.y + (rect.height - self.point_dpixbuf.get_pixbuf().get_height()) / 2 + + + draw_pixbuf(cr, self.point_dpixbuf.get_pixbuf(), + rect.x + self.current_progress_width, + point_y) + + def on_button_press_event(self, widget, event): + self.update_progress_width(event, emit=True) + self.drag_flag = True + self.queue_draw() + + def on_motion_notify_event(self, widget, event): + # self.show_progressbar_tip(event) + + if self.drag_flag: + self.update_progress_width(event, emit=False) + self.queue_draw() + + def on_button_release_event(self, widget, event): + self.drag_flag = False + self.queue_draw() + + def get_value(self): + return self._value + + def set_value(self, value, emit=False): + self._value = value + if emit: + self.emit_value_changed() + self.queue_draw() + + value = property(get_value, set_value) + +SHADOW_VALUE = 2 +ARROW_WIDTH = 10 +ARROW_HEIGHT = ARROW_WIDTH / 2 + +from dtk_cairo_blur import gaussian_blur +from dtk.ui.utils import alpha_color_hex_to_cairo + + +class progressBarTip(gtk.Window): + ''' + class docs + ''' + + def __init__(self): + ''' + init docs + ''' + gtk.Window.__init__(self) + + self.set_colormap(gtk.gdk.Screen().get_rgba_colormap() or + gtk.gdk.Screen().get_rgb_colormap()) + + self.set_keep_above(True) + self.set_decorated(False) + self.set_app_paintable(True) + self.set_skip_pager_hint(True) + self.set_skip_taskbar_hint(True) + self.set_position(gtk.WIN_POS_NONE) + + self.surface = None + self.surface_x = SHADOW_VALUE + self.surface_y = SHADOW_VALUE + self.surface_border = SHADOW_VALUE + self.arrow_width = ARROW_WIDTH + self.arrow_height = ARROW_HEIGHT + self.radius = 5 + self.pos_type = gtk.POS_BOTTOM + self.offset = 25 + self.reset_surface_flag = False + + self.content = "03:12" + self.shadow_color = ("#000000", 0.6) + self.mask_color = ("#ffffff", 0.8) + self.border_out_color = ("#000000", 1.0) + self.set_redraw_on_allocate(True) + + self.drawing = gtk.Alignment() + self.drawing.set_redraw_on_allocate(True) + self.drawing.connect("expose-event", self.on_expose_event) + self.add(self.drawing) + + self.set_size_request(60, 40) + + def compute_shadow(self, rect): + self.surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, rect.width, rect.height) + surface_cr = cairo.Context(self.surface) + + draw_round_rectangle_with_triangle(surface_cr, + rect, + self.radius, + self.arrow_width, self.arrow_height, self.offset, + border=5, + pos_type=self.pos_type) + + surface_cr.set_line_width(2) + surface_cr.set_source_rgba(*alpha_color_hex_to_cairo(self.shadow_color)) + surface_cr.stroke_preserve() + gaussian_blur(self.surface, 2) + + # border. + # out border. + surface_cr.clip() + draw_round_rectangle_with_triangle(surface_cr, + rect, + self.radius, + self.arrow_width, self.arrow_height, self.offset, + border=6, + pos_type=self.pos_type) + surface_cr.set_source_rgba(*alpha_color_hex_to_cairo(self.mask_color)) + surface_cr.set_line_width(1) + surface_cr.fill() + + # in border. + # surface_cr.reset_clip() + # draw_round_rectangle_with_triangle(surface_cr, + # rect, + # self.radius, + # self.arrow_width, self.arrow_height, self.offset, + # border=2, + # pos_type=self.pos_type) + + # surface_cr.set_source_rgba(1, 1, 1, 1.0) # set in border color. + # surface_cr.set_line_width(self.border_width) + # surface_cr.fill() + + def on_expose_event(self, widget, event): + ''' + docs + ''' + cr = widget.window.cairo_create() + rect = widget.allocation + + cr.set_operator(cairo.OPERATOR_SOURCE) + cr.set_source_rgba(1, 1, 1, 0) + cr.rectangle(*rect) + cr.paint() + + cr.set_operator(cairo.OPERATOR_OVER) + + + if not self.surface or self.reset_surface_flag: + self.compute_shadow(rect) + cr.set_source_surface(self.surface, 0, 0) + cr.paint() + + draw_text(cr, self.content, + rect.x + 6, rect.y + 6, rect.width - 6 * 2, rect.height - 6 *2 - self.arrow_height, + 9, "#707070", + alignment=pango.ALIGN_CENTER) + + return True + + def reset_surface(self): + self.reset_surface_flag = True + + def move_to(self, x, y): + self.move(int(x - self.allocation.width / 2), int(y - self.allocation.height + 3)) + + + diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/skin.py deepin-music-player-1.3.3/src/widget/skin.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/skin.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/skin.py 2013-11-01 01:16:58.000000000 +0000 @@ -6,7 +6,7 @@ # Init skin config. skin_config.init_skin( - "orange_jung", + "blue_cherry", os.path.join(get_parent_dir(__file__, 3), "skin"), os.path.expanduser("~/.config/deepin-music-player/skin"), os.path.expanduser("~/.config/deepin-music-player/skin_config.ini"), diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/song_editor.py deepin-music-player-1.3.3/src/widget/song_editor.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/song_editor.py 2013-06-04 00:58:45.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/song_editor.py 2013-08-22 04:02:49.000000000 +0000 @@ -295,11 +295,16 @@ button_box_align.add(button_box) change_button = Button(_("Change")) change_button.connect("clicked", self.change_cover_image) + + fetch_button = Button(_("Retrieve from the Internet")) + fetch_button.connect("clicked", self.fetch_cover_image) + delete_button = Button(_("Reset")) delete_button.connect("clicked", self.delete_cover_image) button_box.pack_start(create_right_align(), True, True) button_box.pack_start(change_button, False, False) button_box.pack_start(delete_button, False, False) + button_box.pack_start(fetch_button, False, False) self.pack_start(cover_box_align, False, True) self.pack_start(button_box_align, False, True) @@ -319,6 +324,10 @@ def delete_cover_image(self, widget): CoverManager.remove_cover(self.song, True) + + def fetch_cover_image(self, widget): + CoverManager.fetch_cover(self.song) + class SongEditor(DialogBox): diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/song_view.py deepin-music-player-1.3.3/src/widget/song_view.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/song_view.py 2013-07-18 00:38:10.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/song_view.py 2013-09-05 07:06:36.000000000 +0000 @@ -51,7 +51,6 @@ from widget.song_notify import SongNotify from nls import _ - class SongView(TreeView): ''' song view. ''' __gsignals__ = { @@ -99,7 +98,10 @@ if len(self.items) <= 0: self.emit("empty-items") self.song_notify.hide_notify() - + try: + self.category_view.save_to_library() + except: pass + def set_current_source(self): if Player.get_source() != self: @@ -117,8 +119,8 @@ self.set_highlight_item(item) Player.play_new(item.get_song(), seek=item.get_song().get("seek", None)) self.set_current_source() - else: - pass + + self.async_reset_error_items() def draw_mask(self, cr, x, y, width, height): draw_alpha_mask(cr, x, y, width, height, "layoutMiddle") @@ -212,6 +214,8 @@ else: each_item.set_error() + async_reset_error_items = property(lambda self: utils.threaded(self.reset_error_items)) + def set_song_items(self, items): self.add_items(items, clear_first=True) self.update_item_index() @@ -291,7 +295,16 @@ self.set_highlight_song(songs[0]) Player.play_new(self.highlight_item.get_song(), seek=self.highlight_item.get_song().get("seek", 0)) self.set_current_source() - + + self.async_reset_error_items() + + def play_song(self, song, play=False, seek=None): + self.async_reset_error_items() + + highlight_song_flag = self.set_highlight_song(song) + if highlight_song_flag: + Player.set_song(song, play, seek=seek) + def emit_add_signal(self): self.emit("begin-add-items") @@ -336,6 +349,12 @@ if self.add_song_cache: self.render_song(self.add_song_cache, pos, sort) del self.add_song_cache[:] + + # save playlists + try: + self.category_view.save_to_library() + except: + pass @post_gui def render_song(self, songs, pos, sort): @@ -352,11 +371,13 @@ self.queue_draw() def set_highlight_song(self, song): - if not song: return + if not song: return False if SongItem(song) in self.items: self.set_highlight_item(self.items[self.items.index(SongItem(song))]) self.visible_highlight() self.queue_draw() + return True + return False def play_select_item(self): if len(self.select_rows) > 0: diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/tab_box.py deepin-music-player-1.3.3/src/widget/tab_box.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/tab_box.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/tab_box.py 2013-08-22 04:02:49.000000000 +0000 @@ -195,6 +195,8 @@ self.total = total self.queue_draw() + def __repr__(self): + return "<%s %s>" % (self.__class__.__name__, self.title) class TabManager(gtk.VBox): __gtype_name__ = 'DtkTabManager' @@ -237,8 +239,12 @@ self.items.append(item) self.adjust_items_index() - def remove_items(self, items): + def remove_items(self, items, switch_to_local=True): for item in items: + + if item.index == self.current_index: + switch_to_local = True + item.clear_selected_status() try: self.items.remove(item) @@ -246,9 +252,10 @@ continue self.adjust_items_index() - item = self.items[0] - item.manual_select() - self.on_item_press(item) + if switch_to_local: + item = self.items[0] + item.manual_select() + self.on_item_press(item) def adjust_items_index(self): self.total_number = len(self.items) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/timer.py deepin-music-player-1.3.3/src/widget/timer.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/timer.py 2013-06-09 01:16:13.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/timer.py 2013-08-29 07:20:07.000000000 +0000 @@ -58,7 +58,7 @@ self.bar.connect("button-press-event", self.on_bar_press) self.bar.connect("button-release-event", self.on_bar_release) self.__value_changed_id = self.bar.connect("value-changed", self.on_bar_value_changed) - self.bar.handler_block(self.__value_changed_id) + self.pack_start(bar_align, True, True) self.update_bar = 1 self.duration = 0 @@ -158,10 +158,8 @@ self.update_bar = 0 self.__need_report = False - try: - self.bar.handler_unblock(self.__value_changed_id) - except: pass + self.bar.disconnect(self.__value_changed_id) self.press_flag = True def __idle_release(self): @@ -170,10 +168,7 @@ def on_bar_release(self, widget, event): if self.press_flag: - try: - self.bar.handler_block(self.__value_changed_id) - except: - pass + self.__value_changed_id = self.bar.connect("value-changed", self.on_bar_value_changed) s = Player.song if not s : @@ -218,6 +213,8 @@ return Label(str(int(self.volume_button.get_value()))) def change_volume(self,helper,value): + config.set("player", "volume_mute", "false") + self.volume_button.unset_mute() val = value * 100 self.volume_button.set_value(int(val)) diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/ui.py deepin-music-player-1.3.3/src/widget/ui.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/ui.py 2013-07-23 05:55:20.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/ui.py 2013-10-29 02:14:22.000000000 +0000 @@ -989,7 +989,11 @@ self.search_button.connect("button-press-event", self.on_search_button_press_event) self.pack_start(self.entry_box, False, True) - self.pack_start(self.search_button, False, False) + search_button_align = gtk.Alignment() + search_button_align.set_padding(0, 0, 0, 1) + search_button_align.set(1, 1, 1, 1) + search_button_align.add(self.search_button) + self.pack_start(search_button_align, False, False) self.entry = self.entry_box.entry self.connect("realize", self.on_realize, 74) @@ -1299,3 +1303,7 @@ else: status = "false" config.set("setting", "close_remember", status) + + + + diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/ui_utils.py deepin-music-player-1.3.3/src/widget/ui_utils.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/ui_utils.py 2013-07-23 02:12:28.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/ui_utils.py 2013-08-23 02:38:55.000000000 +0000 @@ -23,6 +23,7 @@ import pango import gtk import pangocairo +import math from dtk.ui.utils import (alpha_color_hex_to_cairo, cairo_disable_antialias) from dtk.ui.line import draw_vlinear, draw_hlinear @@ -97,6 +98,19 @@ content = utils.xmlescape(content) draw_text(cr, content, rect.x, rect.y, rect.width, rect.height, font_size, color, alignment=align) +def render_item_text2(cr, content, rect, in_select, in_highlight, align=pango.ALIGN_LEFT, font_size=9, error=False): + if in_select: + color = app_theme.get_color("simpleSelectItem").get_color() + else: + # color = app_theme.get_color("labelText").get_color() + color = "#707070" + + if error: + color = "#ff0000" + + content = utils.xmlescape(content) + draw_text(cr, content, rect.x, rect.y, rect.width, rect.height, font_size, color, alignment=align) + def create_separator_box(padding_x=0, padding_y=0): separator_box = HSeparator( app_theme.get_shadow_color("hSeparator").get_color_info(), @@ -225,3 +239,56 @@ +def draw_round_rectangle_with_triangle(cr, + rect, + radius, + arrow_width, arrow_height, + offset=0, border=2, + pos_type=gtk.POS_TOP): + + x = rect.x + border + y = rect.y + border + w = rect.width - border * 2 + h = rect.height - border * 2 + + # set position top, bottom. + if pos_type == gtk.POS_TOP: + y += arrow_height + h -= arrow_height + elif pos_type == gtk.POS_BOTTOM: + h -= arrow_height + + # draw. + cr.arc (x + radius, + y + radius, + radius, + math.pi, + math.pi * 1.5) + + if pos_type == gtk.POS_TOP: + cr.line_to(offset, y) + cr.rel_line_to(arrow_width / 2.0, -arrow_height) + cr.rel_line_to(arrow_width / 2.0, arrow_height) + + cr.arc(x + w - radius, y + radius, + radius, math.pi * 1.5, math.pi * 2.0) + + cr.arc(x + w - radius, + y + h - radius, + radius, + 0, + math.pi * 0.5) + + if pos_type == gtk.POS_BOTTOM: + arrow_top = y + h + cr.line_to(offset + arrow_width, arrow_top) + cr.rel_line_to(-arrow_width / 2.0, arrow_height) + cr.rel_line_to(-arrow_width / 2.0, -arrow_height) + + cr.arc(x + radius, + y + h - radius, + radius, + math.pi * 0.5, + math.pi) + + cr.close_path() diff -Nru deepin-music-player-1.3~raring~NoobsLab.com/src/widget/volume_button.py deepin-music-player-1.3.3/src/widget/volume_button.py --- deepin-music-player-1.3~raring~NoobsLab.com/src/widget/volume_button.py 2013-05-06 16:29:47.000000000 +0000 +++ deepin-music-player-1.3.3/src/widget/volume_button.py 2013-09-05 06:17:25.000000000 +0000 @@ -1,22 +1,22 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2012 Deepin, Inc. -# 2012 Hailong Qiu -# -# Author: Hailong Qiu <356752238@qq.com> -# Maintainer: Hailong Qiu <356752238@qq.com> -# +# Copyright (C) 2011 ~ 2013 Deepin, Inc. +# 2011 ~ 2013 Hou ShaoHui +# +# Author: Hou ShaoHui +# Maintainer: Hou ShaoHui +# # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # any later version. -# +# # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with this program. If not, see . @@ -256,6 +256,7 @@ self.icon_state = STATE_PRESS self.drag_flag = False else: + self.update_progress_width(event, emit=True) self.state_press_flag = False self.drag_flag = True self.mute_flag = False