Changeset 56

Show
Ignore:
Timestamp:
02/26/06 14:27:04 (3 years ago)
Author:
nicfit
Message:

Added playlist search UI and keybindings

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Makefile.in

    r51 r56  
    8484        -rm doc/mesk.1 
    8585        -rm README.t2t 
     86        -rm tags 
    8687 
    8788dist: docs dist-clean 
  • trunk/src/mesk_gui.glade

    r54 r56  
    378378                  <property name="selectable">False</property> 
    379379                  <property name="xalign">0</property> 
    380                   <property name="yalign">0.75</property> 
     380                  <property name="yalign">1</property> 
    381381                  <property name="xpad">2</property> 
    382382                  <property name="ypad">2</property> 
     
    591591                    </packing> 
    592592                  </child> 
     593 
     594                  <child> 
     595                    <widget class="GtkHBox" id="playlist_search_hbox"> 
     596                      <property name="homogeneous">False</property> 
     597                      <property name="spacing">0</property> 
     598 
     599                      <child> 
     600                        <widget class="GtkButton" id="playlist_search_close_button"> 
     601                          <property name="visible">True</property> 
     602                          <property name="can_focus">True</property> 
     603                          <property name="relief">GTK_RELIEF_NONE</property> 
     604                          <property name="focus_on_click">False</property> 
     605 
     606                          <child> 
     607                            <widget class="GtkImage" id="image11"> 
     608                              <property name="visible">True</property> 
     609                              <property name="stock">gtk-close</property> 
     610                              <property name="icon_size">4</property> 
     611                              <property name="xalign">0.5</property> 
     612                              <property name="yalign">0.5</property> 
     613                              <property name="xpad">0</property> 
     614                              <property name="ypad">0</property> 
     615                            </widget> 
     616                          </child> 
     617                        </widget> 
     618                        <packing> 
     619                          <property name="padding">0</property> 
     620                          <property name="expand">False</property> 
     621                          <property name="fill">False</property> 
     622                        </packing> 
     623                      </child> 
     624 
     625                      <child> 
     626                        <widget class="GtkLabel" id="playlist_search_label"> 
     627                          <property name="visible">True</property> 
     628                          <property name="label" translatable="yes">Find:</property> 
     629                          <property name="use_underline">False</property> 
     630                          <property name="use_markup">False</property> 
     631                          <property name="justify">GTK_JUSTIFY_LEFT</property> 
     632                          <property name="wrap">False</property> 
     633                          <property name="selectable">False</property> 
     634                          <property name="xalign">0.5</property> 
     635                          <property name="yalign">0.5</property> 
     636                          <property name="xpad">0</property> 
     637                          <property name="ypad">0</property> 
     638                          <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> 
     639                          <property name="width_chars">-1</property> 
     640                          <property name="single_line_mode">False</property> 
     641                          <property name="angle">0</property> 
     642                        </widget> 
     643                        <packing> 
     644                          <property name="padding">0</property> 
     645                          <property name="expand">False</property> 
     646                          <property name="fill">False</property> 
     647                        </packing> 
     648                      </child> 
     649 
     650                      <child> 
     651                        <widget class="GtkAlignment" id="alignment3"> 
     652                          <property name="visible">True</property> 
     653                          <property name="xalign">0.5</property> 
     654                          <property name="yalign">0.5</property> 
     655                          <property name="xscale">1</property> 
     656                          <property name="yscale">1</property> 
     657                          <property name="top_padding">0</property> 
     658                          <property name="bottom_padding">0</property> 
     659                          <property name="left_padding">3</property> 
     660                          <property name="right_padding">0</property> 
     661 
     662                          <child> 
     663                            <widget class="GtkEntry" id="playlist_search_entry"> 
     664                              <property name="visible">True</property> 
     665                              <property name="can_focus">True</property> 
     666                              <property name="editable">True</property> 
     667                              <property name="visibility">True</property> 
     668                              <property name="max_length">0</property> 
     669                              <property name="text" translatable="yes"></property> 
     670                              <property name="has_frame">True</property> 
     671                              <property name="invisible_char">*</property> 
     672                              <property name="activates_default">False</property> 
     673                            </widget> 
     674                          </child> 
     675                        </widget> 
     676                        <packing> 
     677                          <property name="padding">0</property> 
     678                          <property name="expand">True</property> 
     679                          <property name="fill">True</property> 
     680                        </packing> 
     681                      </child> 
     682                    </widget> 
     683                    <packing> 
     684                      <property name="padding">0</property> 
     685                      <property name="expand">False</property> 
     686                      <property name="fill">True</property> 
     687                    </packing> 
     688                  </child> 
    593689                </widget> 
    594690                <packing> 
  • trunk/src/playlist_control.py

    r55 r56  
    104104        pl.set_shuffle(self._pl_config.shuffle) 
    105105        pl.set_repeat(self._pl_config.repeat) 
    106         try: 
    107             pl.set_curr_index(self._pl_config.current - 1) 
    108         except IndexError: 
    109             self._pl_config.current = -1 
     106        if not pl.is_shuffled(): 
     107            try: 
     108                pl.set_curr_index(self._pl_config.current - 1) 
     109            except IndexError: 
     110                self._pl_config.current = -1 
    110111 
    111112        # Fill playlist model 
     
    113114 
    114115        self._pl_view.set_model(self._pl_model) 
    115         self.widget.show_all() 
     116 
     117        # Hide search box 
     118        self.widget_xml.get_widget('playlist_search_hbox').hide() 
     119 
     120        self.widget.show() 
    116121 
    117122        # Connect events for audio_control 
     
    268273                queue_pos += 1 
    269274        elif event.keyval == gtk.keysyms.slash: 
    270             print "search" 
     275            self.widget_xml.get_widget('playlist_search_hbox').show() 
     276        elif event.keyval == gtk.keysyms.Escape: 
     277            self.widget_xml.get_widget('playlist_search_hbox').hide() 
    271278 
    272279    # DnD of playlist rows for reordering 
     
    341348        self._img_renderer = gtk.CellRendererPixbuf() 
    342349        self._txt_renderer = gtk.CellRendererText() 
     350        # Make text font slightly smaller 
     351        font = gtk_utils.get_default_font() 
     352        font_desc = pango.FontDescription(font) 
     353        # 1024 pango units per device unit, subtract 2 points 
     354        font_desc.set_size(font_desc.get_size() - (2 * 1024)) 
     355        self._txt_renderer.set_property('font-desc', font_desc) 
    343356 
    344357        self.pack_start(self._img_renderer, False)