[gnome-sound-recorder] Dialog on delete recording
- From: Bilal Elmoussaoui <bilelmoussaoui src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-sound-recorder] Dialog on delete recording
- Date: Wed, 9 Sep 2020 12:57:57 +0000 (UTC)
commit ab53b0cbcc810a1bd06ccce51a77e315692fa902
Author: Kavan Mevada <kavanmevada gmail com>
Date: Wed Sep 9 17:46:36 2020 +0530
Dialog on delete recording
data/ui/help-overlay.ui | 4 ++--
data/ui/recorder.ui | 2 +-
po/POTFILES.in | 1 +
src/recorderWidget.js | 48 ++++++++++++++++++++++++++++++++++++++++++------
4 files changed, 46 insertions(+), 9 deletions(-)
---
diff --git a/data/ui/help-overlay.ui b/data/ui/help-overlay.ui
index 8f7d3a7..fc559ef 100644
--- a/data/ui/help-overlay.ui
+++ b/data/ui/help-overlay.ui
@@ -65,7 +65,7 @@
<object class="GtkShortcutsShortcut">
<property name="visible">1</property>
<property name="accelerator"><ctrl>C</property>
- <property name="title" translatable="yes" context="shortcut window">Cancel</property>
+ <property name="title" translatable="yes" context="shortcut window">Delete</property>
</object>
</child>
</object>
@@ -121,4 +121,4 @@
</object>
</child>
</object>
-</interface>
\ No newline at end of file
+</interface>
diff --git a/data/ui/recorder.ui b/data/ui/recorder.ui
index f7c60ab..b70f994 100644
--- a/data/ui/recorder.ui
+++ b/data/ui/recorder.ui
@@ -150,7 +150,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
- <property name="tooltip_text" translatable="yes">Cancel Recording</property>
+ <property name="tooltip_text" translatable="yes">Delete Recording</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="action_name">recorder.cancel</property>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index cdab85f..73bfaac 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -10,6 +10,7 @@ data/ui/window.ui
src/application.js
src/main.js
src/recorder.js
+src/recorderWidget.js
src/recordingList.js
src/row.js
src/utils.js
diff --git a/src/recorderWidget.js b/src/recorderWidget.js
index 8d996f3..a487c0f 100644
--- a/src/recorderWidget.js
+++ b/src/recorderWidget.js
@@ -1,5 +1,5 @@
/* exported RecorderState RecorderWidget */
-const { Gio, GObject, Gtk } = imports.gi;
+const { Gdk, Gio, GObject, Gtk } = imports.gi;
const { formatTime } = imports.utils;
const { WaveForm, WaveType } = imports.waveform;
@@ -82,12 +82,48 @@ var RecorderWidget = GObject.registerClass({
}
onCancel() {
- const recording = this.recorder.stop();
- this.state = RecorderState.STOPPED;
- this.waveform.destroy();
+ this.onPause();
+ let dialog = new Gtk.MessageDialog({
+ modal: true,
+ destroy_with_parent: true,
+ buttons: Gtk.ButtonsType.NONE,
+ message_type: Gtk.MessageType.QUESTION,
+ text: _('Delete recording?'),
+ secondary_text: _('This recording will not be saved.'),
+ });
+
+ dialog.set_default_response(Gtk.ResponseType.NO);
+ dialog.add_button(_('Resume'), Gtk.ResponseType.NO);
+ dialog.add_button(_('Delete'), Gtk.ResponseType.YES)
+ .get_style_context().add_class('destructive-action');
+
+ dialog.set_transient_for(Gio.Application.get_default().get_active_window());
+ dialog.connect('response', (_, response) => {
+ switch (response) {
+ case Gtk.ResponseType.YES: {
+ const recording = this.recorder.stop();
+ this.state = RecorderState.STOPPED;
+ this.waveform.destroy();
+
+ recording.delete();
+ this.emit('canceled');
+ break;
+ }
+ case Gtk.ResponseType.NO:
+ this.onResume();
+ break;
+ }
+
+ dialog.close();
+ });
+
+ dialog.connect('key-press-event', (_, event) => {
+ const key = event.get_keyval()[1];
+ if (key === Gdk.KEY_Escape)
+ dialog.response(Gtk.ResponseType.NO);
+ });
- recording.delete();
- this.emit('canceled');
+ dialog.show();
}
onStop() {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]