Changeset 335

Show
Ignore:
Timestamp:
06/27/06 23:27:48 (2 years ago)
Author:
nicfit
Message:

Added a MUCH better volume widget. /me is proud

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/po/es.po

    r331 r335  
    88"Project-Id-Version: 0.1.1\n" 
    99"Report-Msgid-Bugs-To: \n" 
    10 "POT-Creation-Date: 2006-06-25 15:01-0600\n" 
     10"POT-Creation-Date: 2006-06-27 14:19-0600\n" 
    1111"PO-Revision-Date: 2006-04-15 17:38-0600\n" 
    1212"Last-Translator: Travis Shirk <travis@pobox.com>\n" 
     
    4949 
    5050#: ../src/mesk_gui.glade.h:7 
     51msgid "" 
     52"<big>Welcome To <b>Mesk</b></big>\n" 
     53"\n" 
     54"Add, or open, a playlist using the File menu." 
     55msgstr "" 
     56 
     57#: ../src/mesk_gui.glade.h:10 
    5158msgid "Add Music..." 
    5259msgstr "Agregue La Música" 
    5360 
    54 #: ../src/mesk_gui.glade.h:8 
     61#: ../src/mesk_gui.glade.h:11 
    5562msgid "Add music..." 
    5663msgstr "Agregue la música" 
    5764 
    58 #: ../src/mesk_gui.glade.h:9 
     65#: ../src/mesk_gui.glade.h:12 
    5966msgid "CD Audio" 
    6067msgstr "" 
    6168 
    62 #: ../src/mesk_gui.glade.h:10 
     69#: ../src/mesk_gui.glade.h:13 
    6370msgid "Clear Queue" 
    6471msgstr "Coleta Clara" 
    6572 
    66 #: ../src/mesk_gui.glade.h:11 
     73#: ../src/mesk_gui.glade.h:14 
    6774msgid "Clear search" 
    6875msgstr "Búsqueda clara" 
    6976 
    70 #: ../src/mesk_gui.glade.h:12 
     77#: ../src/mesk_gui.glade.h:15 
    7178msgid "Close search" 
    7279msgstr "Búsqueda cercana" 
    7380 
    74 #: ../src/mesk_gui.glade.h:13 
     81#: ../src/mesk_gui.glade.h:16 
    7582msgid "Configure..." 
    7683msgstr "Configure..." 
    7784 
    78 #: ../src/mesk_gui.glade.h:14 
     85#: ../src/mesk_gui.glade.h:17 
    7986msgid "Copyright © 2006 Travis Shirk" 
    8087msgstr "Copyright © 2006 Travis Shirk" 
    8188 
    82 #: ../src/mesk_gui.glade.h:15 
     89#: ../src/mesk_gui.glade.h:18 
    8390msgid "Find:" 
    8491msgstr "Hallazgo:" 
    8592 
    86 #: ../src/mesk_gui.glade.h:16 
     93#: ../src/mesk_gui.glade.h:19 
     94msgid "First" 
     95msgstr "" 
     96 
     97#: ../src/mesk_gui.glade.h:20 
    8798msgid "Mesk" 
    8899msgstr "Mesk" 
    89100 
    90 #: ../src/mesk_gui.glade.h:17 
     101#: ../src/mesk_gui.glade.h:21 
    91102msgid "Next" 
    92103msgstr "Después" 
    93104 
    94 #: ../src/mesk_gui.glade.h:18 
     105#: ../src/mesk_gui.glade.h:22 
    95106msgid "Online Help" 
    96107msgstr "Ayuda En línea" 
    97108 
    98109#. Tooltip strings 
    99 #: ../src/mesk_gui.glade.h:19 ../src/audio_control.py:42 
     110#: ../src/mesk_gui.glade.h:23 ../src/audio_control.py:42 
    100111msgid "Play" 
    101112msgstr "Juego" 
    102113 
    103 #: ../src/mesk_gui.glade.h:20 ../src/mesk/__init__.py:46 
     114#: ../src/mesk_gui.glade.h:24 ../src/mesk/__init__.py:46 
    104115msgid "Playlist" 
    105116msgstr "Playlist" 
    106117 
    107 #: ../src/mesk_gui.glade.h:21 
     118#: ../src/mesk_gui.glade.h:25 
    108119#, fuzzy 
    109120msgid "Playlist Name" 
    110121msgstr "Playlist" 
    111122 
    112 #: ../src/mesk_gui.glade.h:22 
     123#: ../src/mesk_gui.glade.h:26 
    113124msgid "Playlist stats" 
    114125msgstr "Playlist stats" 
    115126 
    116 #: ../src/mesk_gui.glade.h:23 
     127#: ../src/mesk_gui.glade.h:27 
    117128msgid "Plugins" 
    118129msgstr "Plugins" 
    119130 
    120 #: ../src/mesk_gui.glade.h:24 
     131#: ../src/mesk_gui.glade.h:28 
    121132msgid "Preferences" 
    122133msgstr "Preferencias" 
    123134 
    124 #: ../src/mesk_gui.glade.h:25 
     135#: ../src/mesk_gui.glade.h:29 
    125136msgid "Previous" 
    126137msgstr "Anterior" 
    127138 
    128 #: ../src/mesk_gui.glade.h:26 
     139#: ../src/mesk_gui.glade.h:30 
    129140msgid "Queue" 
    130141msgstr "Coleta" 
    131142 
    132 #: ../src/mesk_gui.glade.h:27 
     143#: ../src/mesk_gui.glade.h:31 
    133144msgid "Queue/Unqueue" 
    134145msgstr "Coleta/Unqueue" 
    135146 
    136 #: ../src/mesk_gui.glade.h:28 
     147#: ../src/mesk_gui.glade.h:32 
    137148msgid "Remove" 
    138149msgstr "Quite" 
    139150 
    140 #: ../src/mesk_gui.glade.h:29 
     151#: ../src/mesk_gui.glade.h:33 
    141152msgid "Rename..." 
    142153msgstr "" 
    143154 
    144 #: ../src/mesk_gui.glade.h:30 
     155#: ../src/mesk_gui.glade.h:34 
    145156msgid "Repeat playlist" 
    146157msgstr "Repetición el playlist" 
    147158 
    148 #: ../src/mesk_gui.glade.h:31 
     159#: ../src/mesk_gui.glade.h:35 
    149160msgid "Shuffle playlist" 
    150161msgstr "Playlist de la barajadura" 
    151162 
    152 #: ../src/mesk_gui.glade.h:32 
     163#: ../src/mesk_gui.glade.h:36 
    153164msgid "Stop" 
    154165msgstr "Parada" 
    155166 
    156 #: ../src/mesk_gui.glade.h:33 
     167#: ../src/mesk_gui.glade.h:37 
    157168msgid "_About" 
    158169msgstr "_Sobre" 
    159170 
    160 #: ../src/mesk_gui.glade.h:34 
     171#: ../src/mesk_gui.glade.h:38 
    161172#, fuzzy 
    162173msgid "_Compact" 
    163174msgstr "Acuerdo" 
    164175 
    165 #: ../src/mesk_gui.glade.h:35 
     176#: ../src/mesk_gui.glade.h:39 
    166177#, fuzzy 
    167178msgid "_Contents" 
    168179msgstr "Contenido" 
    169180 
    170 #: ../src/mesk_gui.glade.h:36 
     181#: ../src/mesk_gui.glade.h:40 
    171182msgid "_Edit" 
    172183msgstr "_Corrija" 
    173184 
    174 #: ../src/mesk_gui.glade.h:37 
     185#: ../src/mesk_gui.glade.h:41 
    175186msgid "_File" 
    176187msgstr "_Archivo" 
    177188 
    178 #: ../src/mesk_gui.glade.h:38 
     189#: ../src/mesk_gui.glade.h:42 
    179190msgid "_Help" 
    180191msgstr "_Ayuda" 
    181192 
    182 #: ../src/mesk_gui.glade.h:39 
     193#: ../src/mesk_gui.glade.h:43 
    183194#, fuzzy 
    184195msgid "_New Playlist..." 
    185196msgstr "Abra el playlist" 
    186197 
    187 #: ../src/mesk_gui.glade.h:40 
     198#: ../src/mesk_gui.glade.h:44 
    188199#, fuzzy 
    189200msgid "_Open Playlist" 
    190201msgstr "Abra el playlist" 
    191202 
    192 #: ../src/mesk_gui.glade.h:41 
     203#: ../src/mesk_gui.glade.h:45 
    193204msgid "_Preferences" 
    194205msgstr "_Preferencias" 
    195206 
    196 #: ../src/mesk_gui.glade.h:42 
     207#: ../src/mesk_gui.glade.h:46 
    197208msgid "_View" 
    198209msgstr "_Visión" 
    199210 
    200211#. TRANSLATORS: Replace this string with your names, one name per line. 
    201 #: ../src/mesk_gui.glade.h:44 
     212#: ../src/mesk_gui.glade.h:48 
    202213msgid "es: Babelfish" 
    203214msgstr "" 
    204215 
    205 #: ../src/mesk_gui.glade.h:45 
     216#: ../src/mesk_gui.glade.h:49 
    206217msgid "example" 
    207218msgstr "" 
     
    293304msgstr "La gerencia de la sesión inhabilitó (ningún módulo de gnome.ui)" 
    294305 
    295 #: ../src/main_window.py:72 ../src/main_window.py:362 
     306#: ../src/main_window.py:73 ../src/main_window.py:394 
    296307#, python-format 
    297308msgid "Volume %d%%" 
    298309msgstr "" 
    299310 
    300 #: ../src/main_window.py:94 
     311#: ../src/main_window.py:110 
    301312#, python-format 
    302313msgid "Error loading playlist '%s'" 
     
    327338 
    328339#: ../src/mesk/__init__.py:57 
     340msgid "The foreground playlist that has audio control" 
     341msgstr "" 
     342 
     343#: ../src/mesk/__init__.py:59 
    329344#, fuzzy 
    330345msgid "A list of playlists to open on startup" 
    331346msgstr "Una lista de los plugins (separados por ';') para activar en arranque" 
    332347 
    333 #: ../src/mesk/__init__.py:59 
     348#: ../src/mesk/__init__.py:61 
    334349msgid "Logging level. May be CRITICAL, ERROR, WARNING, INFO, VERBOSE, or DEBUG" 
    335350msgstr "" 
     
    337352"DEBUG" 
    338353 
    339 #: ../src/mesk/__init__.py:62 
     354#: ../src/mesk/__init__.py:64 
    340355msgid "The directory containing user installed plugins" 
    341356msgstr "El directorio que contiene plugins instalados usuario" 
    342357 
    343 #: ../src/mesk/__init__.py:63 
     358#: ../src/mesk/__init__.py:65 
    344359msgid "A list of plugins (separated by ';') to activate on startup." 
    345360msgstr "Una lista de los plugins (separados por ';') para activar en arranque" 
    346361 
    347 #: ../src/mesk/__init__.py:68 
     362#: ../src/mesk/__init__.py:70 
    348363msgid "Start in compact view mode" 
    349364msgstr "Comience en modo compacto de la visión" 
    350365 
    351 #: ../src/mesk/__init__.py:70 
     366#: ../src/mesk/__init__.py:72 
    352367msgid "" 
    353368"If True, the main window is hidded instead of closed when the window close " 
     
    357372"chasca el botón del cierre de la ventana" 
    358373 
    359 #: ../src/mesk/__init__.py:73 
     374#: ../src/mesk/__init__.py:75 
    360375msgid "Main window width" 
    361376msgstr "Anchura principal de la ventana" 
    362377 
    363 #: ../src/mesk/__init__.py:74 
     378#: ../src/mesk/__init__.py:76 
    364379msgid "Main window height" 
    365380msgstr "Altura principal de la ventana" 
    366381 
    367 #: ../src/mesk/__init__.py:75 
     382#: ../src/mesk/__init__.py:77 
    368383msgid "Main window x origin" 
    369384msgstr "Origen principal de la ventana x" 
    370385 
    371 #: ../src/mesk/__init__.py:76 
     386#: ../src/mesk/__init__.py:78 
    372387msgid "Main window y origin" 
    373388msgstr "Origen principal de la ventana y" 
    374389 
    375 #: ../src/mesk/__init__.py:78 
     390#: ../src/mesk/__init__.py:80 
    376391msgid "Main window x origin in compact mode" 
    377392msgstr "Origen principal de la ventana x en modo compacto" 
    378393 
    379 #: ../src/mesk/__init__.py:80 
     394#: ../src/mesk/__init__.py:82 
    380395msgid "Main window y origin in compact mode" 
    381396msgstr "Origen principal de la ventana y en modo compacto" 
    382397 
    383 #: ../src/mesk/__init__.py:82 
     398#: ../src/mesk/__init__.py:84 
    384399msgid "Display the close button on each tab" 
    385400msgstr "" 
    386401 
    387 #: ../src/mesk/__init__.py:87 
     402#: ../src/mesk/__init__.py:89 
    388403#, fuzzy, python-format 
    389404msgid "GStreamer output sink. May be %s (default), %s, '%s','%s', or '%s'" 
     
    391406"Fregadero de la salida de GStreamer. Pueden ser '%s', '%s', '%s' o '%s'" 
    392407 
    393 #: ../src/mesk/__init__.py:91 
     408#: ../src/mesk/__init__.py:93 
    394409msgid "Number of milliseconds to pause between tracks" 
    395410msgstr "Número de los milisegundos a detenerse brevemente entre las pistas" 
    396411 
    397 #: ../src/mesk/__init__.py:93 
     412#: ../src/mesk/__init__.py:95 
    398413msgid "Volume level is a value between 0.0 and 1.0" 
    399414msgstr "" 
    400415 
    401 #: ../src/mesk/__init__.py:97 
     416#: ../src/mesk/__init__.py:99 
    402417msgid "Playlist (file) location" 
    403418msgstr "Localización de Playlist (archivo)" 
    404419 
    405 #: ../src/mesk/__init__.py:98 
     420#: ../src/mesk/__init__.py:100 
    406421msgid "Starting playlist index" 
    407422msgstr "Comenzar índice del playlist" 
    408423 
    409 #: ../src/mesk/__init__.py:99 
     424#: ../src/mesk/__init__.py:101 
    410425msgid "Is the playlist in repeat mode" 
    411426msgstr "Es el playlist en modo de la repetición" 
    412427 
    413 #: ../src/mesk/__init__.py:100 
     428#: ../src/mesk/__init__.py:102 
    414429msgid "Is the playlist in shuffle mode" 
    415430msgstr "Es el playlist en modo de la barajadura" 
    416431 
    417 #: ../src/mesk/__init__.py:101 
     432#: ../src/mesk/__init__.py:103 
    418433msgid "The playlist queue which is a comma separated list of indices" 
    419434msgstr "La coleta del playlist que es una coma separó la lista de índices" 
    420435 
    421 #: ../src/mesk/__init__.py:104 
     436#: ../src/mesk/__init__.py:106 
    422437msgid "The directory to open when adding files" 
    423438msgstr "El directorio a abrirse al agregar archivos" 
    424439 
    425 #: ../src/mesk/__init__.py:115 ../src/mesk/__init__.py:117 
    426 #: ../src/mesk/__init__.py:119 
     440#: ../src/mesk/__init__.py:117 ../src/mesk/__init__.py:119 
     441#: ../src/mesk/__init__.py:121 
    427442#, python-format 
    428443msgid "Creating %s..." 
     
    671686msgstr "Gajim y/o Dbus no está funcionando" 
    672687 
    673 #: ../src/plugins/gajimstatus.py:129 
     688#: ../src/plugins/gajimstatus.py:141 
    674689msgid " [paused]" 
    675690msgstr " [detenido brevemente]" 
    676691 
    677 #: ../src/plugins/gajimstatus.py:180 
     692#: ../src/plugins/gajimstatus.py:194 
    678693msgid "Gajim must be running in order to determine accounts." 
    679694msgstr "Gajim debe funcionar para determinar cuentas." 
  • trunk/po/mesk.pot

    r331 r335  
    99"Project-Id-Version: PACKAGE VERSION\n" 
    1010"Report-Msgid-Bugs-To: \n" 
    11 "POT-Creation-Date: 2006-06-25 15:01-0600\n" 
     11"POT-Creation-Date: 2006-06-27 14:19-0600\n" 
    1212"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 
    1313"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 
     
    5050 
    5151#: ../src/mesk_gui.glade.h:7 
     52msgid "" 
     53"<big>Welcome To <b>Mesk</b></big>\n" 
     54"\n" 
     55"Add, or open, a playlist using the File menu." 
     56msgstr "" 
     57 
     58#: ../src/mesk_gui.glade.h:10 
    5259msgid "Add Music..." 
    5360msgstr "" 
    5461 
    55 #: ../src/mesk_gui.glade.h:8 
     62#: ../src/mesk_gui.glade.h:11 
    5663msgid "Add music..." 
    5764msgstr "" 
    5865 
    59 #: ../src/mesk_gui.glade.h:9 
     66#: ../src/mesk_gui.glade.h:12 
    6067msgid "CD Audio" 
    6168msgstr "" 
    6269 
    63 #: ../src/mesk_gui.glade.h:10 
     70#: ../src/mesk_gui.glade.h:13 
    6471msgid "Clear Queue" 
    6572msgstr "" 
    6673 
    67 #: ../src/mesk_gui.glade.h:11 
     74#: ../src/mesk_gui.glade.h:14 
    6875msgid "Clear search" 
    6976msgstr "" 
    7077 
    71 #: ../src/mesk_gui.glade.h:12 
     78#: ../src/mesk_gui.glade.h:15 
    7279msgid "Close search" 
    7380msgstr "" 
    7481 
    75 #: ../src/mesk_gui.glade.h:13 
     82#: ../src/mesk_gui.glade.h:16 
    7683msgid "Configure..." 
    7784msgstr "" 
    7885 
    79 #: ../src/mesk_gui.glade.h:14 
     86#: ../src/mesk_gui.glade.h:17 
    8087msgid "Copyright © 2006 Travis Shirk" 
    8188msgstr "" 
    8289 
    83 #: ../src/mesk_gui.glade.h:15 
     90#: ../src/mesk_gui.glade.h:18 
    8491msgid "Find:" 
    8592msgstr "" 
    8693 
    87 #: ../src/mesk_gui.glade.h:16 
     94#: ../src/mesk_gui.glade.h:19 
     95msgid "First" 
     96msgstr "" 
     97 
     98#: ../src/mesk_gui.glade.h:20 
    8899msgid "Mesk" 
    89100msgstr "" 
    90101 
    91 #: ../src/mesk_gui.glade.h:17 
     102#: ../src/mesk_gui.glade.h:21 
    92103msgid "Next" 
    93104msgstr "" 
    94105 
    95 #: ../src/mesk_gui.glade.h:18 
     106#: ../src/mesk_gui.glade.h:22 
    96107msgid "Online Help" 
    97108msgstr "" 
    98109 
    99110#. Tooltip strings 
    100 #: ../src/mesk_gui.glade.h:19 ../src/audio_control.py:42 
     111#: ../src/mesk_gui.glade.h:23 ../src/audio_control.py:42 
    101112msgid "Play" 
    102113msgstr "" 
    103114 
    104 #: ../src/mesk_gui.glade.h:20 ../src/mesk/__init__.py:46 
     115#: ../src/mesk_gui.glade.h:24 ../src/mesk/__init__.py:46 
    105116msgid "Playlist" 
    106117msgstr "" 
    107118 
    108 #: ../src/mesk_gui.glade.h:21 
     119#: ../src/mesk_gui.glade.h:25 
    109120msgid "Playlist Name" 
    110121msgstr "" 
    111122 
    112 #: ../src/mesk_gui.glade.h:22 
     123#: ../src/mesk_gui.glade.h:26 
    113124msgid "Playlist stats" 
    114125msgstr "" 
    115126 
    116 #: ../src/mesk_gui.glade.h:23 
     127#: ../src/mesk_gui.glade.h:27 
    117128msgid "Plugins" 
    118129msgstr "" 
    119130 
    120 #: ../src/mesk_gui.glade.h:24 
     131#: ../src/mesk_gui.glade.h:28 
    121132msgid "Preferences" 
    122133msgstr "" 
    123134 
    124 #: ../src/mesk_gui.glade.h:25 
     135#: ../src/mesk_gui.glade.h:29 
    125136msgid "Previous" 
    126137msgstr "" 
    127138 
    128 #: ../src/mesk_gui.glade.h:26 
     139#: ../src/mesk_gui.glade.h:30 
    129140msgid "Queue" 
    130141msgstr "" 
    131142 
    132 #: ../src/mesk_gui.glade.h:27 
     143#: ../src/mesk_gui.glade.h:31 
    133144msgid "Queue/Unqueue" 
    134145msgstr "" 
    135146 
    136 #: ../src/mesk_gui.glade.h:28 
     147#: ../src/mesk_gui.glade.h:32 
    137148msgid "Remove" 
    138149msgstr "" 
    139150 
    140 #: ../src/mesk_gui.glade.h:29 
     151#: ../src/mesk_gui.glade.h:33 
    141152msgid "Rename..." 
    142153msgstr "" 
    143154 
    144 #: ../src/mesk_gui.glade.h:30 
     155#: ../src/mesk_gui.glade.h:34 
    145156msgid "Repeat playlist" 
    146157msgstr "" 
    147158 
    148 #: ../src/mesk_gui.glade.h:31 
     159#: ../src/mesk_gui.glade.h:35 
    149160msgid "Shuffle playlist" 
    150161msgstr "" 
    151162 
    152 #: ../src/mesk_gui.glade.h:32 
     163#: ../src/mesk_gui.glade.h:36 
    153164msgid "Stop" 
    154165msgstr "" 
    155166 
    156 #: ../src/mesk_gui.glade.h:33 
     167#: ../src/mesk_gui.glade.h:37 
    157168msgid "_About" 
    158169msgstr "" 
    159170 
    160 #: ../src/mesk_gui.glade.h:34 
     171#: ../src/mesk_gui.glade.h:38 
    161172msgid "_Compact" 
    162173msgstr "" 
    163174 
    164 #: ../src/mesk_gui.glade.h:35 
     175#: ../src/mesk_gui.glade.h:39 
    165176msgid "_Contents" 
    166177msgstr "" 
    167178 
    168 #: ../src/mesk_gui.glade.h:36 
     179#: ../src/mesk_gui.glade.h:40 
    169180msgid "_Edit" 
    170181msgstr "" 
    171182 
    172 #: ../src/mesk_gui.glade.h:37 
     183#: ../src/mesk_gui.glade.h:41 
    173184msgid "_File" 
    174185msgstr "" 
    175186 
    176 #: ../src/mesk_gui.glade.h:38 
     187#: ../src/mesk_gui.glade.h:42 
    177188msgid "_Help" 
    178189msgstr "" 
    179190 
    180 #: ../src/mesk_gui.glade.h:39 
     191#: ../src/mesk_gui.glade.h:43 
    181192msgid "_New Playlist..." 
    182193msgstr "" 
    183194 
    184 #: ../src/mesk_gui.glade.h:40 
     195#: ../src/mesk_gui.glade.h:44 
    185196msgid "_Open Playlist" 
    186197msgstr "" 
    187198 
    188 #: ../src/mesk_gui.glade.h:41 
     199#: ../src/mesk_gui.glade.h:45 
    189200msgid "_Preferences" 
    190201msgstr "" 
    191202 
    192 #: ../src/mesk_gui.glade.h:42 
     203#: ../src/mesk_gui.glade.h:46 
    193204msgid "_View" 
    194205msgstr "" 
    195206 
    196207#. TRANSLATORS: Replace this string with your names, one name per line. 
    197 #: ../src/mesk_gui.glade.h:44 
     208#: ../src/mesk_gui.glade.h:48 
    198209msgid "es: Babelfish" 
    199210msgstr "" 
    200211 
    201 #: ../src/mesk_gui.glade.h:45 
     212#: ../src/mesk_gui.glade.h:49 
    202213msgid "example" 
    203214msgstr "" 
     
    282293msgstr "" 
    283294 
    284 #: ../src/main_window.py:72 ../src/main_window.py:362 
     295#: ../src/main_window.py:73 ../src/main_window.py:394 
    285296#, python-format 
    286297msgid "Volume %d%%" 
    287298msgstr "" 
    288299 
    289 #: ../src/main_window.py:94 
     300#: ../src/main_window.py:110 
    290301#, python-format 
    291302msgid "Error loading playlist '%s'" 
     
    316327 
    317328#: ../src/mesk/__init__.py:57 
     329msgid "The foreground playlist that has audio control" 
     330msgstr "" 
     331 
     332#: ../src/mesk/__init__.py:59 
    318333msgid "A list of playlists to open on startup" 
    319334msgstr "" 
    320335 
    321 #: ../src/mesk/__init__.py:59 
     336#: ../src/mesk/__init__.py:61 
    322337msgid "Logging level. May be CRITICAL, ERROR, WARNING, INFO, VERBOSE, or DEBUG" 
    323338msgstr "" 
    324339 
    325 #: ../src/mesk/__init__.py:62 
     340#: ../src/mesk/__init__.py:64 
    326341msgid "The directory containing user installed plugins" 
    327342msgstr "" 
    328343 
    329 #: ../src/mesk/__init__.py:63 
     344#: ../src/mesk/__init__.py:65 
    330345msgid "A list of plugins (separated by ';') to activate on startup." 
    331346msgstr "" 
    332347 
    333 #: ../src/mesk/__init__.py:68 
     348#: ../src/mesk/__init__.py:70 
    334349msgid "Start in compact view mode" 
    335350msgstr "" 
    336351 
    337 #: ../src/mesk/__init__.py:70 
     352#: ../src/mesk/__init__.py:72 
    338353msgid "" 
    339354"If True, the main window is hidded instead of closed when the window close " 
     
    341356msgstr "" 
    342357 
    343 #: ../src/mesk/__init__.py:73 
     358#: ../src/mesk/__init__.py:75 
    344359msgid "Main window width" 
    345360msgstr "" 
    346361 
    347 #: ../src/mesk/__init__.py:74 
     362#: ../src/mesk/__init__.py:76 
    348363msgid "Main window height" 
    349364msgstr "" 
    350365 
    351 #: ../src/mesk/__init__.py:75 
     366#: ../src/mesk/__init__.py:77 
    352367msgid "Main window x origin" 
    353368msgstr "" 
    354369 
    355 #: ../src/mesk/__init__.py:76 
     370#: ../src/mesk/__init__.py:78 
    356371msgid "Main window y origin" 
    357372msgstr "" 
    358373 
    359 #: ../src/mesk/__init__.py:78 
     374#: ../src/mesk/__init__.py:80 
    360375msgid "Main window x origin in compact mode" 
    361376msgstr "" 
    362377 
    363 #: ../src/mesk/__init__.py:80 
     378#: ../src/mesk/__init__.py:82 
    364379msgid "Main window y origin in compact mode" 
    365380msgstr "" 
    366381 
    367 #: ../src/mesk/__init__.py:82 
     382#: ../src/mesk/__init__.py:84 
    368383msgid "Display the close button on each tab" 
    369384msgstr "" 
    370385 
    371 #: ../src/mesk/__init__.py:87 
     386#: ../src/mesk/__init__.py:89 
    372387#, python-format 
    373388msgid "GStreamer output sink. May be %s (default), %s, '%s','%s', or '%s'" 
    374389msgstr "" 
    375390 
    376 #: ../src/mesk/__init__.py:91 
     391#: ../src/mesk/__init__.py:93 
    377392msgid "Number of milliseconds to pause between tracks" 
    378393msgstr "" 
    379394 
    380 #: ../src/mesk/__init__.py:93 
     395#: ../src/mesk/__init__.py:95 
    381396msgid "Volume level is a value between 0.0 and 1.0" 
    382397msgstr "" 
    383398 
    384 #: ../src/mesk/__init__.py:97 
     399#: ../src/mesk/__init__.py:99 
    385400msgid "Playlist (file) location" 
    386401msgstr "" 
    387402 
    388 #: ../src/mesk/__init__.py:98 
     403#: ../src/mesk/__init__.py:100 
    389404msgid "Starting playlist index" 
    390405msgstr "" 
    391406 
    392 #: ../src/mesk/__init__.py:99 
     407#: ../src/mesk/__init__.py:101 
    393408msgid "Is the playlist in repeat mode" 
    394409msgstr "" 
    395410 
    396 #: ../src/mesk/__init__.py:100 
     411#: ../src/mesk/__init__.py:102 
    397412msgid "Is the playlist in shuffle mode" 
    398413msgstr "" 
    399414 
    400 #: ../src/mesk/__init__.py:101 
     415#: ../src/mesk/__init__.py:103 
    401416msgid "The playlist queue which is a comma separated list of indices" 
    402417msgstr "" 
    403418 
    404 #: ../src/mesk/__init__.py:104 
     419#: ../src/mesk/__init__.py:106 
    405420msgid "The directory to open when adding files" 
    406421msgstr "" 
    407422 
    408 #: ../src/mesk/__init__.py:115 ../src/mesk/__init__.py:117 
    409 #: ../src/mesk/__init__.py:119 
     423#: ../src/mesk/__init__.py:117 ../src/mesk/__init__.py:119 
     424#: ../src/mesk/__init__.py:121 
    410425#, python-format 
    411426msgid "Creating %s..." 
     
    650665msgstr "" 
    651666 
    652 #: ../src/plugins/gajimstatus.py:129 
     667#: ../src/plugins/gajimstatus.py:141 
    653668msgid " [paused]" 
    654669msgstr "" 
    655670 
    656 #: ../src/plugins/gajimstatus.py:180 
     671#: ../src/plugins/gajimstatus.py:194 
    657672msgid "Gajim must be running in order to determine accounts." 
    658673msgstr "" 
  • trunk/src/audio_control.py

    r318 r335  
    2929 
    3030import control 
     31import gtk_utils 
    3132 
    3233class AudioControl(control.Control): 
     
    5152        self._current_audio_src = None 
    5253        self._last_src_started = None 
     54        self._volume_button_tip = gtk.Tooltips() 
     55        self._volume_scale_tip = gtk.Tooltips() 
     56 
     57        # Volume slider window 
     58        vol_xml = gtk_utils.get_glade('volume_slider_window') 
     59        vol_xml.signal_autoconnect(self) 
     60        self._volume_window = vol_xml.get_widget('volume_slider_window') 
     61        self._volume_scale = vol_xml.get_widget('volume_scale') 
     62        self._volume_scale_ebox = vol_xml.get_widget('volume_scale_eventbox') 
    5363 
    5464        self._state = self.STOP 
     
    5666        self._duration = gst.CLOCK_TIME_NONE 
    5767 
    58         self._volume = mesk.config.getfloat(mesk.CONFIG_AUDIO, 'volume') 
    59         self._volume = max(self._volume, 0.0) 
    60         self._volume = min(self._volume, 1.0) 
    61         mesk.config.set(mesk.CONFIG_AUDIO, 'volume', str(self._volume)) 
    62  
    63         # Get widgets 
     68        # Set up volume widgets 
     69        self._volume_ebox = parent_xml.get_widget('volume_eventbox') 
     70        self._volume_togglebutton = parent_xml.get_widget('volume_togglebutton') 
     71        self._volume_mute_img = None 
     72        self._volume_low_img = None 
     73        self._volume_medium_img = None 
     74        self._volume_high_img = None 
     75 
     76        # Control widgets 
    6477        self._prev_button = parent_xml.get_widget('prev_button') 
    6578        self._play_pause_button = parent_xml.get_widget('play_pause_button') 
     
    126139        self._create_gst_pipeline() 
    127140 
     141        # Set initial volume from config 
     142        vol = mesk.config.getfloat(mesk.CONFIG_AUDIO, 'volume') 
     143        vol = max(vol, 0.0) 
     144        vol = min(vol, 1.0) 
     145        self.set_volume(vol) 
     146 
    128147    def set_playlist(self, pl): 
    129148        self._playlist = pl 
     
    282301        if v < 0.0 or v > 1.0: 
    283302            raise AttributeError('Invalid volume: %f' % v) 
     303 
    284304        self._volume = v 
    285305        self._gst_bin.set_property('volume', v) 
     306 
     307        self._set_volume_image() 
     308        self._volume_scale.set_value(v) 
     309        tip_str = _('Volume %d%%') % int(self._volume * 100.0) 
     310        self._volume_button_tip.set_tip(self._volume_ebox, tip_str) 
     311        self._volume_scale_tip.set_tip(self._volume_scale_ebox, tip_str) 
     312 
     313        # Update config 
    286314        mesk.config.set(mesk.CONFIG_AUDIO, 'volume', str(self._volume)) 
    287315 
     
    498526        return not self._tick_stopped 
    499527 
     528    ### Track scale events ### 
    500529    def _on_track_scale_button_press_event(self, event, arg): 
    501530        if self.is_playing(): 
     
    533562        label = mesk.utils.format_track_time(p / gst.SECOND, d) 
    534563        self._track_time_label.set_markup('<i>%s</i>' % label) 
     564 
     565    def _set_volume_image(self): 
     566        old_img = self._volume_togglebutton.get_child() 
     567        if old_img: 
     568            self._volume_togglebutton.remove(old_img) 
     569 
     570        val = int(self._volume * 100.0) 
     571        if val == 0: 
     572            if not self._volume_mute_img: 
     573                img = gtk.Image() 
     574                img.set_from_file('images/audio-volume-muted.png') 
     575                self._volume_mute_img = img 
     576            new_img = self._volume_mute_img 
     577        elif val <= 35: 
     578            if not self._volume_low_img: 
     579                img = gtk.Image() 
     580                img.set_from_file('images/audio-volume-low.png') 
     581                self._volume_low_img = img 
     582            new_img = self._volume_low_img 
     583        elif val <= 68: 
     584            if not self._volume_medium_img: 
     585                img = gtk.Image() 
     586                img.set_from_file('images/audio-volume-medium.png') 
     587                self._volume_medium_img = img 
     588            new_img = self._volume_medium_img 
     589        else: 
     590            if not self._volume_high_img: 
     591                img = gtk.Image() 
     592                img.set_from_file('images/audio-volume-high.png') 
     593                self._volume_high_img = img 
     594            new_img = self._volume_high_img 
     595 
     596        self._volume_togglebutton.add(new_img) 
     597        new_img.show() 
     598 
     599    ### Volume events ### 
     600    def _on_volume_togglebutton_scroll_event(self, widget, event): 
     601        FACTOR = 0.04 
     602        if event.direction == gtk.gdk.SCROLL_UP: 
     603            new_vol = self._volume + FACTOR 
     604        elif event.direction == gtk.gdk.SCROLL_DOWN: 
     605            new_vol = self._volume - FACTOR 
     606        else: 
     607            return 
     608 
     609        # Coerce vol to an acceptable range 
     610        if new_vol < 0.0: 
     611            new_vol = 0.0 
     612        elif new_vol > 1.0: 
     613            new_vol = 1.0 
     614 
     615        self.set_volume(new_vol) 
     616 
     617    def _on_volume_togglebutton_toggled(self, button): 
     618        # Show or hide the volume scale window 
     619        if button.get_active(): 
     620            self._volume_button_tip.disable() 
     621            self._volume_scale_tip.enable() 
     622 
     623            x0, y0 = self._volume_ebox.window.get_origin() 
     624            y0 += self._volume_ebox.allocation.height + 1 
     625            self._volume_window.move(x0, y0) 
     626            self._volume_window.show() 
     627            # FIXME: This does not appear to be working 
     628            self._volume_scale.grab_focus() 
     629        else: 
     630            self._volume_scale_tip.disable() 
     631            self._volume_button_tip.enable() 
     632            self._volume_window.hide() 
     633 
     634    def _on_main_window_configure_event(self, window, event): 
     635        if self._volume_togglebutton.get_active(): 
     636            # The first stab at this I hid the volume window as soon as 
     637            # the top-level moved (self._volume_togglebutton.set_active(False)) 
     638            # but emitting toggled makes the volume window follow the main 
     639            # window, which is definitely cool 
     640            self._volume_togglebutton.toggled() 
     641 
     642    def _on_volume_scale_value_changed(self, scale): 
     643        self.set_volume(scale.get_value()) 
  • trunk/src/main_window.py

    r333 r335  
    4040        self._controls = [] 
    4141 
    42         self._tooltips = gtk.Tooltips() 
    4342        self.xml = gtk_utils.get_glade('main_window') 
    4443        self.xml.signal_autoconnect(self) 
     
    5958            self._audio_control = AudioControl(self.xml) 
    6059        except Exception, ex: 
    61             mesk.log.error(str(ex)) 
     60            exc_str = mesk.utils.get_traceback_str() 
     61            mesk.log.error(str(ex) + "\n" + exc_str) 
    6262            # FIXME: This should not be able to fail when #149 is done 
    6363            sys.exit(1) 
     
    6767                                    self._on_audio_source_tag_update) 
    6868 
    69         # Set initial volume 
    70         vol = self._audio_control.get_volume() 
    71         self.xml.get_widget('volume_scale').set_value(vol) 
    72         self._tooltips.set_tip(self.xml.get_widget('volume_eventbox'), 
    73                                _('Volume %d%%') % (vol * 100)) 
    7469 
    7570        self._album_cover_control = AlbumCoverControl(self.xml, 
     
    388383        self._update_marquee(src) 
    389384 
    390     def _on_volume_scale_value_changed(self, scale): 
    391         vol = scale.get_value() 
    392         self._audio_control.set_volume(vol) 
    393         self._tooltips.set_tip(scale.get_parent(), 
    394                                _('Volume %d%%') % (vol * 100)) 
    395  
    396385    def _update_playlists_menu(self): 
    397386        # Remove existing menu entries 
  • trunk/src/mesk_gui.glade

    r333 r335  
    2222  <signal name="delete_event" handler="_on_window_delete" last_modification_time="Sun, 19 Feb 2006 04:08:26 GMT"/> 
    2323  <signal name="focus_in_event" handler="_on_window_focus_in_event" last_modification_time="Thu, 09 Mar 2006 04:14:34 GMT"/> 
     24  <signal name="configure_event" handler="_on_main_window_configure_event" last_modification_time="Wed, 28 Jun 2006 04:45:21 GMT"/> 
    2425 
    2526  <child> 
     
    279280                          <property name="can_focus">True</property> 
    280281                          <property name="relief">GTK_RELIEF_NORMAL</property> 
    281                           <property name="focus_on_click">True</property> 
     282                          <property name="focus_on_click">False</property> 
    282283 
    283284                          <child> 
     
    308309                          <property name="can_focus">True</property> 
    309310                          <property name="relief">GTK_RELIEF_NORMAL</property> 
    310                           <property name="focus_on_click">True</property> 
     311                          <property name="focus_on_click">False</property> 
    311312 
    312313                          <child> 
     
    337338                          <property name="can_focus">True</property> 
    338339                          <property name="relief">GTK_RELIEF_NORMAL</property> 
    339                           <property name="focus_on_click">True</property> 
     340                          <property name="focus_on_click">False</property> 
    340341 
    341342                          <child> 
     
    366367                          <property name="can_focus">True</property> 
    367368                          <property name="relief">GTK_RELIEF_NORMAL</property> 
    368                           <property name="focus_on_click">True</property> 
     369                          <property name="focus_on_click">False</property> 
    369370 
    370371                          <child> 
     
    377378                              <property name="xpad">0</property> 
    378379                              <property name="ypad">0</property> 
     380                            </widget> 
     381                          </child> 
     382                        </widget> 
     383                        <packing> 
     384                          <property name="padding">0</property> 
     385                          <property name="expand">False</property> 
     386                          <property name="fill">False</property> 
     387                        </packing> 
     388                      </child> 
     389 
     390                      <child> 
     391                        <widget class="GtkVSeparator" id="vseparator2"> 
     392                          <property name="visible">True</property> 
     393                        </widget> 
     394                        <packing> 
     395                          <property name="padding">0</property> 
     396                          <property name="expand">True</property> 
     397                          <property name="fill">True</property> 
     398                        </packing> 
     399                      </child> 
     400 
     401                      <child> 
     402                        <widget class="GtkEventBox" id="volume_eventbox"> 
     403                          <property name="visible">True</property> 
     404                          <property name="visible_window">True</property> 
     405                          <property name="above_child">False</property> 
     406 
     407                          <child> 
     408                            <widget class="GtkToggleButton" id="volume_togglebutton"> 
     409                              <property name="visible">True</property> 
     410                              <property name="can_focus">True</property> 
     411                              <property name="label" translatable="yes"></property> 
     412                              <property name="use_underline">True</property> 
     413                              <property name="relief">GTK_RELIEF_NORMAL</property> 
     414                              <property name="focus_on_click">False</property> 
     415                              <property name="active">False</property> 
     416                              <property name="inconsistent">False</property> 
     417                              <signal name="scroll_event" handler="_on_volume_togglebutton_scroll_event" last_modification_time="Wed, 28 Jun 2006 03:24:37 GMT"/> 
     418                              <signal name="toggled" handler="_on_volume_togglebutton_toggled" last_modification_time="Wed, 28 Jun 2006 03:39:12 GMT"/> 
    379419                            </widget> 
    380420                          </child> 
     
    464504 
    465505              <child> 
    466                 <widget class="GtkVBox" id="vbox7"> 
    467                   <property name="visible">True</property> 
    468                   <property name="homogeneous">False</property> 
    469                   <property name="spacing">0</property> 
    470  
    471                   <child> 
    472                     <widget class="GtkEventBox" id="volume_eventbox"> 
    473                       <property name="visible">True</property> 
    474                       <property name="visible_window">True</property> 
    475                       <property name="above_child">False</property> 
    476  
    477                       <child> 
    478                         <widget class="GtkVScale" id="volume_scale"> 
    479                       &nbs