def __init__(self, icons, tempfile, codec, old_path): Gtk.Window.__init__(self, title="Kazam - " + _("Recording finished")) self.icons = icons self.tempfile = tempfile self.codec = codec self.action = ACTION_SAVE self.old_path = old_path self.set_position(Gtk.WindowPosition.NONE) # Setup UI self.set_border_width(10) self.vbox = Gtk.Box(spacing=20, orientation=Gtk.Orientation.VERTICAL) self.label_box = Gtk.Box() self.done_label = Gtk.Label( _("Kazam finished recording.\nWhat do you want to do now?")) self.label_box.add(self.done_label) self.grid = Gtk.Grid(row_spacing=10, column_spacing=5) self.radiobutton_edit = Gtk.RadioButton.new_with_label_from_widget( None, _("Edit with:")) self.combobox_editor = EditComboBox(self.icons) self.grid.add(self.radiobutton_edit) self.grid.attach_next_to(self.combobox_editor, self.radiobutton_edit, Gtk.PositionType.RIGHT, 1, 1) self.radiobutton_save = Gtk.RadioButton.new_from_widget( self.radiobutton_edit) self.radiobutton_save.set_label(_("Save for later")) if self.combobox_editor.empty: self.radiobutton_edit.set_active(False) self.radiobutton_edit.set_sensitive(False) self.radiobutton_save.set_active(True) self.radiobutton_save.connect("toggled", self.cb_radiobutton_save_toggled) self.radiobutton_edit.connect("toggled", self.cb_radiobutton_edit_toggled) self.btn_cancel = Gtk.Button(label=_("Cancel")) self.btn_cancel.set_size_request(100, -1) self.btn_continue = Gtk.Button(label=_("Continue")) self.btn_continue.set_size_request(100, -1) self.btn_continue.connect("clicked", self.cb_continue_clicked) self.btn_cancel.connect("clicked", self.cb_cancel_clicked) self.hbox = Gtk.Box(spacing=10) self.left_hbox = Gtk.Box() self.right_hbox = Gtk.Box(spacing=5) self.right_hbox.pack_start(self.btn_cancel, False, True, 0) self.right_hbox.pack_start(self.btn_continue, False, True, 0) self.hbox.pack_start(self.left_hbox, True, True, 0) self.hbox.pack_start(self.right_hbox, False, False, 0) self.vbox.pack_start(self.label_box, True, True, 0) self.vbox.pack_start(self.grid, True, True, 0) self.vbox.pack_start(self.radiobutton_save, True, True, 0) self.vbox.pack_start(self.hbox, True, True, 0) self.add(self.vbox) self.connect("delete-event", self.cb_delete_event) self.set_resizable(False) self.show_all() self.present()
def __init__(self, icons, tempfile, codec, old_path): Gtk.Window.__init__(self, title="Kazam - " + _("Recording finished")) self.icons = icons self.tempfile = tempfile self.codec = codec self.action = ACTION_SAVE self.old_path = old_path self.set_position(Gtk.WindowPosition.NONE) # Setup UI self.set_border_width(10) self.vbox = Gtk.Box(spacing=20, orientation=Gtk.Orientation.VERTICAL) self.label_box = Gtk.Box() self.done_label = Gtk.Label(_("Kazam finished recording.\nWhat do you want to do now?")) self.label_box.add(self.done_label) self.grid = Gtk.Grid(row_spacing=10, column_spacing=5) self.radiobutton_edit = Gtk.RadioButton.new_with_label_from_widget(None, _("Edit with:")) self.combobox_editor = EditComboBox(self.icons) self.grid.add(self.radiobutton_edit) self.grid.attach_next_to(self.combobox_editor, self.radiobutton_edit, Gtk.PositionType.RIGHT, 1, 1) self.radiobutton_save = Gtk.RadioButton.new_from_widget(self.radiobutton_edit) self.radiobutton_save.set_label(_("Save for later")) if self.combobox_editor.empty: self.radiobutton_edit.set_active(False) self.radiobutton_edit.set_sensitive(False) self.radiobutton_save.set_active(True) self.radiobutton_save.connect("toggled", self.cb_radiobutton_save_toggled) self.radiobutton_edit.connect("toggled", self.cb_radiobutton_edit_toggled) self.btn_cancel = Gtk.Button(label = _("Cancel")) self.btn_cancel.set_size_request(100, -1) self.btn_continue = Gtk.Button(label = _("Continue")) self.btn_continue.set_size_request(100, -1) self.btn_continue.connect("clicked", self.cb_continue_clicked) self.btn_cancel.connect("clicked", self.cb_cancel_clicked) self.hbox = Gtk.Box(spacing = 10) self.left_hbox = Gtk.Box() self.right_hbox = Gtk.Box(spacing = 5) self.right_hbox.pack_start(self.btn_cancel, False, True, 0) self.right_hbox.pack_start(self.btn_continue, False, True, 0) self.hbox.pack_start(self.left_hbox, True, True, 0) self.hbox.pack_start(self.right_hbox, False, False, 0) self.vbox.pack_start(self.label_box, True, True, 0) self.vbox.pack_start(self.grid, True, True, 0) self.vbox.pack_start(self.radiobutton_save, True, True, 0) self.vbox.pack_start(self.hbox, True, True, 0) self.add(self.vbox) self.connect("delete-event", self.cb_delete_event) self.set_resizable(False) self.show_all() self.present()
class DoneRecording(Gtk.Window): __gsignals__ = { "save-done": ( GObject.SIGNAL_RUN_LAST, None, [GObject.TYPE_PYOBJECT], ), "edit-request": ( GObject.SIGNAL_RUN_LAST, None, [GObject.TYPE_PYOBJECT], ), "save-cancel": ( GObject.SIGNAL_RUN_LAST, None, (), ) } def __init__(self, icons, tempfile, codec, old_path): Gtk.Window.__init__(self, title="Kazam - " + _("Recording finished")) self.icons = icons self.tempfile = tempfile self.codec = codec self.action = ACTION_SAVE self.old_path = old_path self.set_position(Gtk.WindowPosition.NONE) # Setup UI self.set_border_width(10) self.vbox = Gtk.Box(spacing=20, orientation=Gtk.Orientation.VERTICAL) self.label_box = Gtk.Box() self.done_label = Gtk.Label( _("Kazam finished recording.\nWhat do you want to do now?")) self.label_box.add(self.done_label) self.grid = Gtk.Grid(row_spacing=10, column_spacing=5) self.radiobutton_edit = Gtk.RadioButton.new_with_label_from_widget( None, _("Edit with:")) self.combobox_editor = EditComboBox(self.icons) self.grid.add(self.radiobutton_edit) self.grid.attach_next_to(self.combobox_editor, self.radiobutton_edit, Gtk.PositionType.RIGHT, 1, 1) self.radiobutton_save = Gtk.RadioButton.new_from_widget( self.radiobutton_edit) self.radiobutton_save.set_label(_("Save for later")) if self.combobox_editor.empty: self.radiobutton_edit.set_active(False) self.radiobutton_edit.set_sensitive(False) self.radiobutton_save.set_active(True) self.radiobutton_save.connect("toggled", self.cb_radiobutton_save_toggled) self.radiobutton_edit.connect("toggled", self.cb_radiobutton_edit_toggled) self.btn_cancel = Gtk.Button(label=_("Cancel")) self.btn_cancel.set_size_request(100, -1) self.btn_continue = Gtk.Button(label=_("Continue")) self.btn_continue.set_size_request(100, -1) self.btn_continue.connect("clicked", self.cb_continue_clicked) self.btn_cancel.connect("clicked", self.cb_cancel_clicked) self.hbox = Gtk.Box(spacing=10) self.left_hbox = Gtk.Box() self.right_hbox = Gtk.Box(spacing=5) self.right_hbox.pack_start(self.btn_cancel, False, True, 0) self.right_hbox.pack_start(self.btn_continue, False, True, 0) self.hbox.pack_start(self.left_hbox, True, True, 0) self.hbox.pack_start(self.right_hbox, False, False, 0) self.vbox.pack_start(self.label_box, True, True, 0) self.vbox.pack_start(self.grid, True, True, 0) self.vbox.pack_start(self.radiobutton_save, True, True, 0) self.vbox.pack_start(self.hbox, True, True, 0) self.add(self.vbox) self.connect("delete-event", self.cb_delete_event) self.set_resizable(False) self.show_all() self.present() def cb_continue_clicked(self, widget): if self.action == ACTION_EDIT: logger.debug("Continue - Edit.") (command, args) = self.combobox_editor.get_active_value() self.emit("edit-request", (command, args)) self.destroy() else: self.set_sensitive(False) logger.debug("Continue - Save ({0}).".format(self.codec)) (dialog, result, self.old_path) = SaveDialog(_("Save screencast"), self.old_path, self.codec) if result == Gtk.ResponseType.OK: uri = os.path.join(dialog.get_current_folder(), dialog.get_filename()) if not uri.endswith(CODEC_LIST[self.codec][3]): uri += CODEC_LIST[self.codec][3] logger.debug("Moving from {} to {}".format(self.tempfile, uri)) shutil.move(self.tempfile, uri) dialog.destroy() self.emit("save-done", self.old_path) self.destroy() else: logger.debug("Save cancelled.") self.set_sensitive(True) dialog.destroy() def cb_cancel_clicked(self, widget): self.emit("save-cancel") self.destroy() def cb_delete_event(self, widget, data): self.emit("save-cancel") self.destroy() def cb_radiobutton_save_toggled(self, widget): if not widget.get_active(): return else: self.action = ACTION_SAVE self.combobox_editor.set_sensitive(False) def cb_radiobutton_edit_toggled(self, widget): if not widget.get_active(): return else: self.action = ACTION_EDIT self.combobox_editor.set_sensitive(True)
class DoneRecording(Gtk.Window): __gsignals__ = { "save-done" : (GObject.SIGNAL_RUN_LAST, None, [GObject.TYPE_PYOBJECT],), "edit-request" : (GObject.SIGNAL_RUN_LAST, None, [GObject.TYPE_PYOBJECT],), "save-cancel" : (GObject.SIGNAL_RUN_LAST, None, (),) } def __init__(self, icons, tempfile, codec, old_path): Gtk.Window.__init__(self, title="Kazam - " + _("Recording finished")) self.icons = icons self.tempfile = tempfile self.codec = codec self.action = ACTION_SAVE self.old_path = old_path self.set_position(Gtk.WindowPosition.NONE) # Setup UI self.set_border_width(10) self.vbox = Gtk.Box(spacing=20, orientation=Gtk.Orientation.VERTICAL) self.label_box = Gtk.Box() self.done_label = Gtk.Label(_("Kazam finished recording.\nWhat do you want to do now?")) self.label_box.add(self.done_label) self.grid = Gtk.Grid(row_spacing=10, column_spacing=5) self.radiobutton_edit = Gtk.RadioButton.new_with_label_from_widget(None, _("Edit with:")) self.combobox_editor = EditComboBox(self.icons) self.grid.add(self.radiobutton_edit) self.grid.attach_next_to(self.combobox_editor, self.radiobutton_edit, Gtk.PositionType.RIGHT, 1, 1) self.radiobutton_save = Gtk.RadioButton.new_from_widget(self.radiobutton_edit) self.radiobutton_save.set_label(_("Save for later")) if self.combobox_editor.empty: self.radiobutton_edit.set_active(False) self.radiobutton_edit.set_sensitive(False) self.radiobutton_save.set_active(True) self.radiobutton_save.connect("toggled", self.cb_radiobutton_save_toggled) self.radiobutton_edit.connect("toggled", self.cb_radiobutton_edit_toggled) self.btn_cancel = Gtk.Button(label = _("Cancel")) self.btn_cancel.set_size_request(100, -1) self.btn_continue = Gtk.Button(label = _("Continue")) self.btn_continue.set_size_request(100, -1) self.btn_continue.connect("clicked", self.cb_continue_clicked) self.btn_cancel.connect("clicked", self.cb_cancel_clicked) self.hbox = Gtk.Box(spacing = 10) self.left_hbox = Gtk.Box() self.right_hbox = Gtk.Box(spacing = 5) self.right_hbox.pack_start(self.btn_cancel, False, True, 0) self.right_hbox.pack_start(self.btn_continue, False, True, 0) self.hbox.pack_start(self.left_hbox, True, True, 0) self.hbox.pack_start(self.right_hbox, False, False, 0) self.vbox.pack_start(self.label_box, True, True, 0) self.vbox.pack_start(self.grid, True, True, 0) self.vbox.pack_start(self.radiobutton_save, True, True, 0) self.vbox.pack_start(self.hbox, True, True, 0) self.add(self.vbox) self.connect("delete-event", self.cb_delete_event) self.set_resizable(False) self.show_all() self.present() def cb_continue_clicked(self, widget): if self.action == ACTION_EDIT: logger.debug("Continue - Edit.") (command, args) = self.combobox_editor.get_active_value() self.emit("edit-request", (command, args)) self.destroy() else: self.set_sensitive(False) logger.debug("Continue - Save ({0}).".format(self.codec)) (dialog, result, self.old_path) = SaveDialog(_("Save screencast"), self.old_path, self.codec) if result == Gtk.ResponseType.OK: uri = os.path.join(dialog.get_current_folder(), dialog.get_filename()) if not uri.endswith(CODEC_LIST[self.codec][3]): uri += CODEC_LIST[self.codec][3] shutil.move(self.tempfile, uri) dialog.destroy() self.emit("save-done", self.old_path) self.destroy() else: self.set_sensitive(True) dialog.destroy() def cb_cancel_clicked(self, widget): self.emit("save-cancel") self.destroy() def cb_delete_event(self, widget, data): self.emit("save-cancel") self.destroy() def cb_radiobutton_save_toggled(self, widget): if not widget.get_active(): return else: self.action = ACTION_SAVE self.combobox_editor.set_sensitive(False) def cb_radiobutton_edit_toggled(self, widget): if not widget.get_active(): return else: self.action = ACTION_EDIT self.combobox_editor.set_sensitive(True)