add is_overwrite

This commit is contained in:
ochibani 2025-01-03 15:59:31 +02:00
parent d544e75551
commit 98230d76c1
3 changed files with 160 additions and 319 deletions

87
Cargo.lock generated
View File

@ -106,7 +106,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -285,7 +285,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -347,7 +347,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -421,7 +421,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -571,9 +571,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.2.6"
version = "1.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d6dbb628b8f8555f86d0323c2eb39e3ec81901f4b83e091db8a6a76d316a333"
checksum = "a012a0df96dd6d06ba9a1b29d6402d1a5d77c6befd2566afdc26e10603dc93d7"
dependencies = [
"jobserver",
"libc",
@ -984,7 +984,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -1077,7 +1077,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -1259,7 +1259,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -1367,7 +1367,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -2123,7 +2123,7 @@ checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -2213,7 +2213,7 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -2689,7 +2689,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -2739,7 +2739,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -2823,7 +2823,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -3083,7 +3083,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a65f2e60fbf1063868558d69c6beacf412dc755f9fc020f514b7955fc914fe30"
dependencies = [
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -3270,9 +3270,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c"
[[package]]
name = "reqwest"
version = "0.12.11"
version = "0.12.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7fe060fe50f524be480214aba758c71f99f90ee8c83c5a36b5e9e1d568eb4eb3"
checksum = "43e734407157c3c2034e0258f5e4473ddb361b1e85f95a66690d67264d7cd1da"
dependencies = [
"base64",
"bytes",
@ -3538,7 +3538,7 @@ checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -3561,7 +3561,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -3739,9 +3739,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.93"
version = "2.0.94"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c786062daee0d6db1132800e623df74274a0a87322d8e183338e01b3d98d058"
checksum = "987bc0be1cdea8b10216bd06e2ca407d40b9543468fafd3ddfb02f36e77f71f3"
dependencies = [
"proc-macro2",
"quote",
@ -3765,7 +3765,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -3825,12 +3825,13 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
[[package]]
name = "tempfile"
version = "3.14.0"
version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c"
checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704"
dependencies = [
"cfg-if 1.0.0",
"fastrand 2.3.0",
"getrandom",
"once_cell",
"rustix 0.38.42",
"windows-sys 0.59.0",
@ -3853,7 +3854,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -3976,7 +3977,7 @@ dependencies = [
"serde",
"serde_spanned",
"toml_datetime",
"winnow 0.6.20",
"winnow 0.6.21",
]
[[package]]
@ -4025,7 +4026,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -4221,7 +4222,7 @@ dependencies = [
"log",
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
"wasm-bindgen-shared",
]
@ -4256,7 +4257,7 @@ checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@ -4497,7 +4498,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -4508,7 +4509,7 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -4519,7 +4520,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -4530,7 +4531,7 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -4797,9 +4798,9 @@ dependencies = [
[[package]]
name = "winnow"
version = "0.6.20"
version = "0.6.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b"
checksum = "e6f5bb5257f2407a5425c6e749bfd9692192a73e70a6060516ac04f889087d68"
dependencies = [
"memchr",
]
@ -4901,7 +4902,7 @@ checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
"synstructure",
]
@ -4987,7 +4988,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
"zvariant_utils",
]
@ -5020,7 +5021,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -5040,7 +5041,7 @@ checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
"synstructure",
]
@ -5069,7 +5070,7 @@ checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]
[[package]]
@ -5144,7 +5145,7 @@ dependencies = [
"proc-macro-crate 3.2.0",
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
"zvariant_utils",
]
@ -5156,5 +5157,5 @@ checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.93",
"syn 2.0.94",
]

View File

@ -5,7 +5,7 @@ use adw::gtk::glib;
use adw::gtk::prelude::*;
use adw::Window;
pub fn recording_delay(delay_spin: SpinButton, mut delay_time: u64, delay_window: Window, delay_window_button: ToggleButton,
pub fn recording_delay(delay_spin: SpinButton, mut delay_time: u16, delay_window: Window, delay_window_button: ToggleButton,
delay_window_label: Label, record_button: Button) {
// Keep time label alive and update every 1sec
let default_value = delay_time;
@ -55,12 +55,12 @@ pub fn stop_timer(record_time_label: Label) {
record_time_label.set_text(&current_record_time(stop_time));
}
fn current_delay_time(delay_time: u64) -> String {
let delay = secfmt::from(delay_time);
fn current_delay_time(delay_time: u16) -> String {
let delay = secfmt::from(delay_time as u64);
format!("{:02}", delay.seconds)
}
fn current_record_time(start_time: u64) -> String {
let start = secfmt::from(start_time);
fn current_record_time(start_time: u16) -> String {
let start = secfmt::from(start_time as u64);
format!("{:02}:{:02}:{:02}", start.hours, start.minutes, start.seconds)
}

View File

@ -782,11 +782,14 @@ fn build_ui(application: &Application, error_dialog: MessageDialog, error_messag
}));
// Record button
let _audio_input_switch = audio_input_switch.clone();
//let bundle_msg = get_bundle("already-exist", None);
let _delay_spin = delay_spin.clone();
delay_window_button.set_label(&get_bundle("delay-window-stop", None));
delay_window_title.set_label(&get_bundle("delay-title", None));
record_button.set_tooltip_text(Some(&get_bundle("record-tooltip", None)));
record_label.set_label(&get_bundle("record", None));
let _audio_input_switch = audio_input_switch.clone();
let _audio_output_switch = audio_output_switch.clone();
//let bundle_msg = get_bundle("already-exist", None);
let _delay_spin = delay_spin.clone();
let _delay_window = delay_window.clone();
let _delay_window_button = delay_window_button.clone();
let _error_dialog = error_dialog.clone();
@ -797,11 +800,8 @@ fn build_ui(application: &Application, error_dialog: MessageDialog, error_messag
let _play_button = play_button.clone();
let _record_button = record_button.clone();
let _record_time_label = record_time_label.clone();
let _audio_output_switch = audio_output_switch.clone();
let _stop_button = stop_button.clone();
let _video_switch = video_switch.clone();
record_button.set_tooltip_text(Some(&get_bundle("record-tooltip", None)));
record_label.set_label(&get_bundle("record", None));
//let wayland_record = main_context.block_on(WaylandRecorder::new());
record_button.connect_clicked(move |_| {
if !_audio_input_switch.is_active() &&
@ -810,194 +810,95 @@ fn build_ui(application: &Application, error_dialog: MessageDialog, error_messag
{
// Do nothing
} else {
let file_name = _ffmpeg_record_interface.borrow_mut().filename.clone();
let is_file_already_exists = Path::new(&file_name).try_exists().is_ok();
if is_file_already_exists {
let message_dialog = MessageDialog::new(
Some(&_main_window),
adw::gtk::DialogFlags::all(),
adw::gtk::MessageType::Warning,
adw::gtk::ButtonsType::YesNo,
&&get_bundle("already-exist", None),
_delay_window_button.set_active(false);
if _delay_spin.value() as u16 > 0 {
recording_delay(
_delay_spin.clone(),
_delay_spin.value() as u16,
delay_window.clone(),
_delay_window_button.clone(),
delay_window_label.clone(),
_record_button.clone(),
);
let main_context = glib::MainContext::default();
let answer = main_context.block_on(message_dialog.run_future());
message_dialog.close();
if answer != adw::gtk::ResponseType::Yes {
} else if _delay_spin.value() as u16 == 0 {
let file_name = _ffmpeg_record_interface.borrow_mut().filename.clone();
if !is_overwrite(&file_name, _main_window.clone()) {
// Do nothing
} else {
_delay_window_button.set_active(false);
if _delay_spin.value() as u64 > 0 {
recording_delay(
_delay_spin.clone(),
_delay_spin.value() as u64,
delay_window.clone(),
_delay_window_button.clone(),
delay_window_label.clone(),
_record_button.clone(),
);
} else if _delay_spin.value() as u64 == 0 {
let _area_capture = area_capture.borrow_mut();
let start_video_record = _ffmpeg_record_interface.borrow_mut().start_video(
_area_capture.x,
_area_capture.y,
_area_capture.width,
_area_capture.height,
mode,
);
_audio_input_switch.set_sensitive(false);
_audio_output_switch.set_sensitive(false);
_video_switch.set_sensitive(false);
start_timer(record_time_label.clone());
record_time_label.set_visible(true);
if hide_switch.is_active() {
_main_window.minimize();
}
_play_button.hide();
_record_button.hide();
_stop_button.show();
if _audio_input_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_input_audio() {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
if _audio_output_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_output_audio() {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
if _video_switch.is_active() {
match start_video_record {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
let _area_capture = area_capture.borrow_mut();
let start_video_record = _ffmpeg_record_interface.borrow_mut().start_video(
_area_capture.x,
_area_capture.y,
_area_capture.width,
_area_capture.height,
mode,
);
_audio_input_switch.set_sensitive(false);
_audio_output_switch.set_sensitive(false);
_video_switch.set_sensitive(false);
start_timer(record_time_label.clone());
record_time_label.set_visible(true);
if hide_switch.is_active() {
_main_window.minimize();
}
_play_button.hide();
_record_button.hide();
_stop_button.show();
if _audio_input_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_input_audio() {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
} else {
_delay_window_button.set_active(false);
if _delay_spin.value() as u64 > 0 {
recording_delay(
_delay_spin.clone(),
_delay_spin.value() as u64,
delay_window.clone(),
_delay_window_button.clone(),
delay_window_label.clone(),
_record_button.clone(),
);
} else if _delay_spin.value() as u64 == 0 {
let _area_capture = area_capture.borrow_mut();
let start_video_record = _ffmpeg_record_interface.borrow_mut().start_video(
_area_capture.x,
_area_capture.y,
_area_capture.width,
_area_capture.height,
mode,
);
_audio_input_switch.set_sensitive(false);
_audio_output_switch.set_sensitive(false);
_video_switch.set_sensitive(false);
start_timer(record_time_label.clone());
record_time_label.set_visible(true);
if hide_switch.is_active() {
_main_window.minimize();
if _audio_output_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_output_audio() {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
_play_button.hide();
_record_button.hide();
_stop_button.show();
if _audio_input_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_input_audio() {
Ok(_) => {
// Do nothing
}
if _video_switch.is_active() {
match start_video_record {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
if _audio_output_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_output_audio() {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
if _video_switch.is_active() {
match start_video_record {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
}
}
}
});
@ -1056,7 +957,7 @@ fn build_ui(application: &Application, error_dialog: MessageDialog, error_messag
match _ffmpeg_record_interface.borrow_mut().stop_video() {
Ok(_) => {
// Do nothing
},
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
@ -1210,89 +1111,28 @@ fn build_ui(application: &Application, error_dialog: MessageDialog, error_messag
Ok(())
}
/*fn record() {
_delay_window_button.set_active(false);
if _delay_spin.value() as u64 > 0 {
recording_delay(
_delay_spin.clone(),
_delay_spin.value() as u64,
delay_window.clone(),
_delay_window_button.clone(),
delay_window_label.clone(),
_record_button.clone(),
);
} else if _delay_spin.value() as u64 == 0 {
let _area_capture = area_capture.borrow_mut();
let start_video_record = _ffmpeg_record_interface.borrow_mut().start_video(
_area_capture.x,
_area_capture.y,
_area_capture.width,
_area_capture.height,
mode,
);
_audio_input_switch.set_sensitive(false);
_audio_output_switch.set_sensitive(false);
_video_switch.set_sensitive(false);
start_timer(record_time_label.clone());
record_time_label.set_visible(true);
if hide_switch.is_active() {
_main_window.minimize();
}
_play_button.hide();
_record_button.hide();
_stop_button.show();
if _audio_input_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_input_audio() {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
if _audio_output_switch.is_active() {
match _ffmpeg_record_interface.borrow_mut().start_output_audio() {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
}
if _video_switch.is_active() {
match start_video_record {
Ok(_) => {
// Do nothing
},
Err(error) => {
_audio_input_switch.set_sensitive(true);
_audio_output_switch.set_sensitive(true);
_video_switch.set_sensitive(true);
_record_button.show();
_stop_button.hide();
let text_buffer = TextBuffer::new(None);
text_buffer.set_text(&format!("{}", error));
_error_message.set_buffer(Some(&text_buffer));
_error_dialog.show();
},
}
// Overwrite file if exists or not
fn is_overwrite(filename: &str, window: Window) -> bool {
let is_file_already_exists = Path::new(filename).try_exists().is_ok();
if is_file_already_exists {
let message_dialog = adw::gtk::MessageDialog::new(
Some(&window),
adw::gtk::DialogFlags::all(),
adw::gtk::MessageType::Warning,
adw::gtk::ButtonsType::YesNo,
&&get_bundle("already-exist", None),
);
}*/
let main_context = glib::MainContext::default();
let answer = main_context.block_on(message_dialog.run_future());
message_dialog.close();
if answer != adw::gtk::ResponseType::Yes {
return false;
} else {
return true;
}
} else {
return true;
}
}