Exemple #1
0
 def test_get_query(self):
     sbb = SearchBarBox()
     self.failIf(sbb.get_query(None))
     a_star = ["artist", "date", "custom"]
     sbb.set_text("foobar")
     expected = Query("foobar", star=a_star)
     self.failUnlessEqual(sbb.get_query(a_star), expected)
 def test_get_query(self):
     sbb = SearchBarBox()
     self.failIf(sbb.get_query(None))
     a_star = ["artist", "date", "custom"]
     sbb.set_text("foobar")
     expected = Query("foobar", star=a_star)
     self.failUnlessEqual(sbb.get_query(a_star), expected)
Exemple #3
0
 def test_get_query_override_star(self):
     sbb = SearchBarBox(star=["initial"])
     text = "foobar"
     sbb.set_text(text)
     self.failUnlessEqual(sbb.get_query(), Query(text, star=["initial"]))
     another_star = ["another", "star"]
     self.failUnlessEqual(sbb.get_query(star=another_star),
                          Query(text, star=another_star))
 def test_get_query_override_star(self):
     sbb = SearchBarBox(star=["initial"])
     text = "foobar"
     sbb.set_text(text)
     self.failUnlessEqual(sbb.get_query(), Query(text, star=["initial"]))
     another_star = ["another", "star"]
     self.failUnlessEqual(sbb.get_query(star=another_star),
                          Query(text, star=another_star))
Exemple #5
0
class SearchBar(EmptyBar):

    name = _("Search Library")
    accelerated_name = _("_Search Library")
    priority = 1
    in_menu = True

    def __init__(self, library, main, limit=True):
        super(SearchBar, self).__init__(library, main)
        self.set_spacing(6)

        completion = LibraryTagCompletion(library.librarian)
        self.accelerators = gtk.AccelGroup()
        if limit:
            self._search_bar = LimitSearchBar(completion=completion,
                                              accel_group=self.accelerators)
        else:
            self._search_bar = SearchBarBox(completion=completion,
                                            accel_group=self.accelerators)
        self._search_bar.connect('query-changed', self.__text_parse)

        def focus(widget, *args):
            qltk.get_top_parent(widget).songlist.grab_focus()
        self._search_bar.connect('focus-out', focus)

        self.connect('destroy', self.__destroy)
        if main:
            align = Alignment(self._search_bar, left=3, right=3, top=3)
        else:
            align = Alignment(self._search_bar)
        align.show()
        self.pack_start(align, expand=False)
        self.show()

    def __destroy(self, *args):
        self._search_bar = None

    def activate(self):
        songs = self._get_songs()
        if songs is not None and self._search_bar:
            songs = self._search_bar.limit(songs)
            gobject.idle_add(self.emit, 'songs-selected', songs, None)

    def __text_parse(self, bar, text):
        self._text = text
        self.activate()

    def filter_text(self, text):
        self._text = text
        self._search_bar.set_text(text)
        self.activate()