Example #1
0
 def __delete(self, item, files, fs):
     d = DeleteDialog(self, files)
     removed = d.run()
     d.destroy()
     removed = filter(None, map(self.__library.get, removed))
     self.__library.remove(removed)
     fs.rescan()
class TDeleteDialog(TestCase):
    def setUp(self):
        self.win = DeleteDialog(None, ["/dev/null"])

    def test_ctr(self):
        pass

    def tearDown(self):
        self.win.destroy()
Example #3
0
 def __delete(self, item, songs, library):
     songs = set(songs)
     files = [song["~filename"] for song in songs]
     d = DeleteDialog(None, files)
     removed = dict.fromkeys(d.run())
     d.destroy()
     removed = filter(lambda s: s["~filename"] in removed, songs)
     if removed:
         try: library.librarian.remove(removed)
         except AttributeError:
             library.remove(removed)
Example #4
0
    def __delete_songs(self, songs):
        model, iter = self.__view.get_selection().get_selected()
        if not iter:
            return False

        device = model[iter][0]
        if not self.__check_device(device, _("Unable to delete songs")):
            return False

        dialog = DeleteDialog.for_songs(self, songs)
        if dialog.run() != DeleteDialog.RESPONSE_DELETE:
            return False

        self.__busy = True

        wlb = self.__statusbar
        wlb.setup(
            len(songs),
            _("Deleting %(song)s") % {"song": "<b>%(song)s</b>"},
            {'song': ''})
        wlb.show()

        for song in songs:
            label = util.escape(song('~artist~title'))
            if wlb.step(song=label):
                wlb.hide()
                break

            status = device.delete(self, song)
            if status is True:
                try:
                    self.__cache[device.bid].remove(song)
                except (KeyError, ValueError):
                    pass
                self.__refresh_space(device)
            else:
                msg = _("%s could not be deleted.") % util.bold(label)
                if type(status) == unicode:
                    msg += "\n\n%s" % status
                qltk.WarningMessage(
                    self, _("Unable to delete song"), msg).run()

        if device.cleanup and not device.cleanup(wlb, 'delete'):
            pass
        else:
            wlb.hide()

        self.__busy = False
Example #5
0
    def __delete_songs(self, songs):
        model, iter = self.__view.get_selection().get_selected()
        if not iter:
            return False

        device = model[iter][0]
        if not self.__check_device(device, _("Unable to delete songs")):
            return False

        dialog = DeleteDialog.for_songs(self, songs)
        if dialog.run() != DeleteDialog.RESPONSE_DELETE:
            return False

        self.__busy = True

        wlb = self.__statusbar
        wlb.setup(
            len(songs),
            _("Deleting %(song)s") % {"song": "<b>%(song)s</b>"},
            {'song': ''})
        wlb.show()

        for song in songs:
            label = util.escape(song('~artist~title'))
            if wlb.step(song=label):
                wlb.hide()
                break

            status = device.delete(self, song)
            if status is True:
                try:
                    self.__cache[device.bid].remove(song)
                except (KeyError, ValueError):
                    pass
                self.__refresh_space(device)
            else:
                msg = _("%s could not be deleted.") % util.bold(label)
                if type(status) == unicode:
                    msg += "\n\n%s" % status
                qltk.WarningMessage(
                    self, _("Unable to delete song"), msg).run()

        if device.cleanup and not device.cleanup(wlb, 'delete'):
            pass
        else:
            wlb.hide()

        self.__busy = False
Example #6
0
 def test_delete_files_full(self):
     w = Gtk.Window()
     dialog = DeleteDialog.for_files(w, [SONG("~filename")])
     dialog.destroy()
Example #7
0
 def test_delete_songs_full(self):
     w = Gtk.Window()
     dialog = DeleteDialog.for_songs(w, [SONG])
     dialog.destroy()
Example #8
0
 def test_delete_files(self):
     dialog = DeleteDialog.for_files(None, [])
     dialog.destroy()
Example #9
0
 def test_delete_songs(self):
     dialog = DeleteDialog.for_songs(None, [])
     dialog.destroy()
Example #10
0
 def setUp(self):
     self.win = DeleteDialog(None, ["/dev/null"])