Skip to content

Commit 115cf94

Browse files
committed
[*] refactor
1 parent efe1ebf commit 115cf94

File tree

12 files changed

+51
-37
lines changed

12 files changed

+51
-37
lines changed

todo.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
## 问题
2-
- 添加音频轨道时,音频文件稍微大一点,轨道就没法及时更新ui waveform显示。添加另外一条音频轨道或滤镜或移动轨道,才显示处轨道上的ui waveform
2+
33

44
## 待验证
55

wayshot/src/logic.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ pub fn init(ui: &AppWindow) {
4040
popup_action::init(ui);
4141

4242
downloader::init(ui);
43-
transcribe::startup_init(ui);
43+
transcribe::app_launch_init(ui);
44+
video_editor::app_launch_init(ui);
4445

4546
logic_cb!(startup_recorder_init, ui);
4647
logic_cb!(startup_video_editor_init, ui);

wayshot/src/logic/transcribe.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ mod audio_player;
22
mod downloader;
33
mod model;
44

5-
pub use model::startup_init;
5+
pub use model::app_launch_init;
66

77
pub fn init(ui: &crate::slint_generatedAppWindow::AppWindow) {
88
model::init(ui);

wayshot/src/logic/transcribe/model.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ pub fn init(ui: &AppWindow) {
104104
logic_cb!(transcribe_subtitle_remove, ui, index);
105105
}
106106

107-
pub fn startup_init(ui: &AppWindow) {
107+
pub fn app_launch_init(ui: &AppWindow) {
108108
logic_cb!(file_exist, ui, file);
109109
logic_cb!(is_valid_subtitle_timestamp, ui, timestamp);
110110
logic_cb!(ms_to_srt_timestamp_ui, ui, ms);

wayshot/src/logic/video_editor.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,8 @@ pub fn init(ui: &crate::slint_generatedAppWindow::AppWindow) {
2525
subtitle::init(ui);
2626
preview::init(ui);
2727
record_audio::init(ui);
28+
}
29+
30+
pub fn app_launch_init(ui: &crate::slint_generatedAppWindow::AppWindow) {
2831
font::init(ui);
2932
}

wayshot/src/logic/video_editor/conversion.rs

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -266,23 +266,10 @@ impl From<Arc<Segment>> for UIVideoEditorTrackSegment {
266266
.audio_samples
267267
.as_ref()
268268
.map(|audio| {
269-
// NOTE: 注释的代码是为了让声音很小的音频也能够在ui上显示出来,但是这样会使展示失真
270-
// let peak = audio
271-
// .samples
272-
// .iter()
273-
// .fold(0.0f32, |max, &s| max.max(s.abs()));
274-
//
275-
// let scale = if peak > 0.0 && peak < 0.1 {
276-
// 0.5 / peak
277-
// } else {
278-
// 1.0
279-
// };
280-
281-
let scale = 1.0;
282269
(
283270
audio.channels as i32,
284271
ModelRc::new(VecModel::from_slice(&audio.samples)),
285-
scale,
272+
1.0,
286273
)
287274
})
288275
.unwrap_or((0, ModelRc::new(VecModel::default()), 1.0));

wayshot/src/logic/video_editor/font.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ macro_rules! store_font_entries {
2626
}
2727

2828
pub fn init(ui: &AppWindow) {
29-
store_font_entries!(ui).set_vec(vec![]);
29+
inner_int(ui);
3030

3131
logic_cb!(init_font_dialog, ui);
3232
logic_cb!(refresh_font_entries, ui);
@@ -35,6 +35,15 @@ pub fn init(ui: &AppWindow) {
3535
logic_cb!(toggle_font_marked, ui, index);
3636
}
3737

38+
pub fn inner_int(ui: &AppWindow) {
39+
let ui_weak = ui.as_weak();
40+
store_font_entries!(ui).set_vec(vec![]);
41+
42+
tokio::spawn(async move {
43+
refresh_font_entries_impl(ui_weak).await;
44+
});
45+
}
46+
3847
fn init_font_dialog(ui: &AppWindow) {
3948
let ui_weak = ui.as_weak();
4049
tokio::spawn(async move {

wayshot/src/logic/video_editor/record_audio.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,14 +247,14 @@ fn video_editor_stop_recording_audio(ui: &AppWindow) {
247247
return;
248248
};
249249

250-
if config.gain != 0.0 {
251-
audio.apply_gain(config.gain);
252-
}
253-
254250
if config.mono {
255251
audio.convert_to_mono();
256252
}
257253

254+
if config.gain != 0.0 {
255+
audio.apply_gain(config.gain);
256+
}
257+
258258
let timestamp = chrono::Local::now().format("%Y%m%d_%H%M%S");
259259
let filename = format!("recording_{}.wav", timestamp);
260260
let save_path = PathBuf::from(&save_dir).join(&filename);

wayshot/src/logic/video_editor/segment.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,7 +505,7 @@ pub fn async_load_segment_audio(
505505
};
506506

507507
let (channels, audio_samples) =
508-
seg.audio_resampling_for_display((seg.duration.as_secs_f64() * 15.0).ceil() as u32);
508+
seg.audio_resampling_for_display((seg.duration.as_secs_f64() * 30.0).ceil() as u32);
509509

510510
log::debug!(
511511
"segment[{uuid}]: load {} audio samples",

wayshot/ui/panel/desktop/font-dialog.slint

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,20 @@ import {
1717
} from "../../base/widgets.slint";
1818

1919
component HeadBar inherits HorizontalLayout {
20-
alignment: end;
20+
alignment: space-between;
2121

2222
private property <bool> show-search-bar;
2323

24+
VerticalLayout {
25+
alignment: center;
26+
padding-left: Theme.padding * 4;
27+
28+
Label {
29+
text: Logic.tr("Font: ") + Store.font-entries.length;
30+
font-size: Theme.title3-font-size;
31+
}
32+
}
33+
2434
Rectangle {
2535
width: hbox.preferred-width;
2636
border-radius: self.height / 2;

0 commit comments

Comments
 (0)