Changeset 1628

Show
Ignore:
Timestamp:
2005-11-14 16:53:31 (3 years ago)
Author:
scott
Message:

Supports/displays links and images in the cmml.
New default image created, better would be nice.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • annoamp/trunk/annoamp.py

    r1627 r1628  
    2828import anxplayer 
    2929import m3uhandler 
     30#To spawn links to webpages 
     31import webbrowser 
     32#To download images off the web. 
     33import urllib2 
    3034 
    3135def destroy(widget, self): 
     
    102106        tree_selection.unselect_all() 
    103107        xml.get_widget("description").set_text('No Clip') 
     108        xml.get_widget("link").set_label('No Link') 
    104109    else: 
    105110        tree_selection.select_path(playlist.get_path(playlist.iter_nth_child(playlist.iter_nth_child(None,current),chapter))) 
     
    109114        else: 
    110115            xml.get_widget("description").set_text("No Description") 
     116        link_text = player.chapter_info[current][chapter].props.anchor_text 
     117        if link_text != None: 
     118            xml.get_widget("link").set_label(link_text) 
     119        else: 
     120            xml.get_widget("link").set_label('No Link.') 
     121        img_src = player.chapter_info[current][chapter].props.img_src 
     122        if img_src != None: 
     123            try: 
     124                img_file = urllib2.urlopen(img_src) 
     125            except: 
     126                xml.get_widget("image").set_from_file("annoamp.png") 
     127                return 
     128            pbl = gtk.gdk.PixbufLoader() 
     129            pbl.write(img_file.read()) 
     130            img_pb = pbl.get_pixbuf() 
     131            pbl.close() 
     132            xml.get_widget("image").set_from_pixbuf(img_pb) 
     133        else: 
     134            xml.get_widget("image").set_from_file("annoamp.png") 
    111135 
    112136    #print "updated chapter: "+str(chapter) 
     
    204228    config.write(file(config_file,'w')) 
    205229 
     230def open_URL(widget): 
     231    webbrowser.open(player.chapter_info[player.current][player.pos].props.anchor_href) 
     232     
    206233playlist = gtk.TreeStore(str, int) 
    207234loop = gobject.MainLoop () 
     
    221248        'save_playlist' : save_playlist, 
    222249    'playlist_expanded' : playlist_expanded, 
    223     'volume_changed' : volume_changed 
     250    'volume_changed' : volume_changed, 
     251    'open_URL' : open_URL 
    224252        }) 
    225253playlist_view = xml.get_widget("playlist") 
     
    230258playlist_view.append_column(tvcolumn) 
    231259playlist_view.set_model(playlist) 
     260xml.get_widget("image").set_from_file("annoamp.png") 
    232261xml.get_widget("main").show() 
    233262 
  • annoamp/trunk/annocast.glade

    r1622 r1628  
    107107 
    108108              <child> 
    109                 <widget class="GtkLabel" id="description"> 
     109                <widget class="GtkHBox" id="hbox2"> 
    110110                  <property name="visible">True</property> 
    111                   <property name="can_focus">True</property> 
    112                   <property name="label" translatable="yes">No Clip</property> 
    113                   <property name="use_underline">False</property> 
    114                   <property name="use_markup">True</property> 
    115                   <property name="justify">GTK_JUSTIFY_LEFT</property> 
    116                   <property name="wrap">True</property> 
    117                   <property name="selectable">True</property> 
    118                   <property name="xalign">0.00999999977648</property> 
    119                   <property name="yalign">0.5</property> 
    120                   <property name="xpad">0</property> 
    121                   <property name="ypad">2</property> 
    122                   <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
    123                   <property name="width_chars">-1</property> 
    124                   <property name="single_line_mode">False</property> 
    125                   <property name="angle">0</property> 
     111                  <property name="homogeneous">False</property> 
     112                  <property name="spacing">0</property> 
     113 
     114                  <child> 
     115                    <widget class="GtkImage" id="image"> 
     116                      <property name="visible">True</property> 
     117                      <property name="xalign">0.5</property> 
     118                      <property name="yalign">0.5</property> 
     119                      <property name="xpad">0</property> 
     120                      <property name="ypad">0</property> 
     121                    </widget> 
     122                    <packing> 
     123                      <property name="padding">0</property> 
     124                      <property name="expand">False</property> 
     125                      <property name="fill">True</property> 
     126                    </packing> 
     127                  </child> 
     128 
     129                  <child> 
     130                    <widget class="GtkVBox" id="vbox4"> 
     131                      <property name="visible">True</property> 
     132                      <property name="homogeneous">False</property> 
     133                      <property name="spacing">0</property> 
     134 
     135                      <child> 
     136                        <widget class="GtkLabel" id="description"> 
     137                          <property name="visible">True</property> 
     138                          <property name="can_focus">True</property> 
     139                          <property name="label" translatable="yes">No Clip</property> 
     140                          <property name="use_underline">False</property> 
     141                          <property name="use_markup">True</property> 
     142                          <property name="justify">GTK_JUSTIFY_LEFT</property> 
     143                          <property name="wrap">True</property> 
     144                          <property name="selectable">True</property> 
     145                          <property name="xalign">0.00999999977648</property> 
     146                          <property name="yalign">0.5</property> 
     147                          <property name="xpad">0</property> 
     148                          <property name="ypad">2</property> 
     149                          <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
     150                          <property name="width_chars">-1</property> 
     151                          <property name="single_line_mode">False</property> 
     152                          <property name="angle">0</property> 
     153                        </widget> 
     154                        <packing> 
     155                          <property name="padding">0</property> 
     156                          <property name="expand">False</property> 
     157                          <property name="fill">False</property> 
     158                        </packing> 
     159                      </child> 
     160 
     161                      <child> 
     162                        <widget class="GtkHBox" id="hbox3"> 
     163                          <property name="visible">True</property> 
     164                          <property name="homogeneous">False</property> 
     165                          <property name="spacing">0</property> 
     166 
     167                          <child> 
     168                            <widget class="GtkLabel" id="label2"> 
     169                              <property name="visible">True</property> 
     170                              <property name="label" translatable="yes">Link:</property> 
     171                              <property name="use_underline">False</property> 
     172                              <property name="use_markup">False</property> 
     173                              <property name="justify">GTK_JUSTIFY_LEFT</property> 
     174                              <property name="wrap">False</property> 
     175                              <property name="selectable">False</property> 
     176                              <property name="xalign">0.5</property> 
     177                              <property name="yalign">0.5</property> 
     178                              <property name="xpad">5</property> 
     179                              <property name="ypad">0</property> 
     180                              <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
     181                              <property name="width_chars">-1</property> 
     182                              <property name="single_line_mode">False</property> 
     183                              <property name="angle">0</property> 
     184                            </widget> 
     185                            <packing> 
     186                              <property name="padding">0</property> 
     187                              <property name="expand">False</property> 
     188                              <property name="fill">False</property> 
     189                            </packing> 
     190                          </child> 
     191 
     192                          <child> 
     193                            <widget class="GtkButton" id="link"> 
     194                              <property name="visible">True</property> 
     195                              <property name="can_focus">True</property> 
     196                              <property name="label" translatable="yes">No Link.</property> 
     197                              <property name="use_underline">True</property> 
     198                              <property name="relief">GTK_RELIEF_HALF</property> 
     199                              <property name="focus_on_click">True</property> 
     200                              <signal name="clicked" handler="open_URL" last_modification_time="Mon, 14 Nov 2005 23:39:51 GMT"/> 
     201                            </widget> 
     202                            <packing> 
     203                              <property name="padding">0</property> 
     204                              <property name="expand">False</property> 
     205                              <property name="fill">False</property> 
     206                            </packing> 
     207                          </child> 
     208                        </widget> 
     209                        <packing> 
     210                          <property name="padding">0</property> 
     211                          <property name="expand">False</property> 
     212                          <property name="fill">False</property> 
     213                        </packing> 
     214                      </child> 
     215                    </widget> 
     216                    <packing> 
     217                      <property name="padding">0</property> 
     218                      <property name="expand">True</property> 
     219                      <property name="fill">True</property> 
     220                    </packing> 
     221                  </child> 
    126222                </widget> 
    127223                <packing> 
    128224                  <property name="padding">0</property> 
    129                   <property name="expand">True</property> 
     225                  <property name="expand">False</property> 
    130226                  <property name="fill">False</property> 
    131227                </packing>