def __on_play_clicked(self, event): """ """ track = db.get_track_for_playback(self.book) current_track = player.get_current_track() if current_track and current_track.book.id == self.book.id: player.play_pause(None) if player.get_gst_player_state() == Gst.State.PLAYING: player.jump_to_ns(track.position) else: player.load_file(track) player.play_pause(None, True) return True
def __on_button_press(self, eventbox, event): """ Play the selected track. """ current_track = player.get_current_track() if current_track and current_track.id == self.track.id: player.play_pause(None) if player.get_gst_player_state() == Gst.State.PLAYING: player.jump_to_ns(db.Track.select().where( db.Track.id == self.track.id).get().position) else: player.load_file(db.Track.select().where(db.Track.id == self.track.id).get()) player.play_pause(None, True) db.Book.update(position=self.track).where( db.Book.id == self.track.book.id).execute()
def locate(self, button): """ Locate the file and update the database if the user selected one. """ directory, filename = os.path.split(self.missing_file) dialog = Gtk.FileChooserDialog( "Please locate the file " + filename, self.parent.window, Gtk.FileChooserAction.OPEN, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK)) filter = Gtk.FileFilter() filter.add_pattern(filename) filter.set_name(filename) dialog.add_filter(filter) path, file_extension = os.path.splitext(self.missing_file) filter = Gtk.FileFilter() filter.add_pattern("*" + file_extension) filter.set_name(file_extension + " files") dialog.add_filter(filter) filter = Gtk.FileFilter() filter.add_pattern("*") filter.set_name(_("All files")) dialog.add_filter(filter) dialog.set_local_only(False) response = dialog.run() if response == Gtk.ResponseType.OK: new_location = dialog.get_filename() Track.update(file=new_location).where( Track.file == self.missing_file).execute() directory, filename = os.path.split(new_location) importer.import_file(filename, directory, new_location, update=True) self.parent.refresh_content() self.dialog.destroy() self.parent.dialog_open = False player.load_file( Track.select().where(Track.file == new_location).get()) player.play_pause(None, True) dialog.destroy()
def _on_play_button_press(self, widget, event): """ Play this book. """ if event.type == Gdk.EventType.BUTTON_PRESS and event.button != 1: return track = db.get_track_for_playback(self.book) current_track = player.get_current_track() if current_track and current_track.book.id == self.book.id: player.play_pause(None) if player.get_gst_player_state() == Gst.State.PLAYING: player.jump_to_ns(track.position) else: player.load_file(track) player.play_pause(None, True) return True
def __on_progress_clicked(self, widget, sender): """ Jump to the slided time and release the progress scale update lock. """ value = self.progress_scale.get_value() * self.ui.speed.get_speed() if tools.get_glib_settings().get_boolean("titlebar-remaining-time"): track, time = db.get_track_from_book_time(self.current_book, value) if track.id == player.get_current_track().id: player.jump_to(time) else: player.load_file( db.Track.select().where(db.Track.id == track.id).get()) player.play_pause(None, True) self.__set_progress_scale_value(time / self.ui.speed.get_speed()) player.jump_to(time) else: player.jump_to(value) self.progress_scale_clicked = False return False