Skip to content

Commit f31d890

Browse files
committed
FX
1 parent fcc7164 commit f31d890

File tree

4 files changed

+43
-2
lines changed

4 files changed

+43
-2
lines changed

.github/workflows/linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
run: rustup default 1.85.0
3131

3232
- name: Build Release
33-
#if: ${{ github.ref == 'refs/heads/master' }} # TODO - re-enable
33+
if: ${{ github.ref == 'refs/heads/master' }}
3434
run: |
3535
sed -i 's/#lto = /lto = /g' Cargo.toml
3636
sed -i 's/#codegen-units /codegen-units /g' Cargo.toml

czkawka_gui/src/connect_things/connect_button_delete.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use std::fs;
44
use czkawka_core::common::check_if_folder_contains_only_empty_folders;
55
use gtk4::prelude::*;
66
use gtk4::{Align, CheckButton, Dialog, Orientation, ResponseType, TextView};
7+
use log::debug;
78

89
use crate::flg;
910
use crate::gui_structs::gui_data::GuiData;
@@ -290,6 +291,10 @@ pub(crate) fn empty_folder_remover(
290291
return; // No selected rows
291292
}
292293

294+
debug!("Starting to delete {} folders", selected_rows.len());
295+
let start_time = std::time::Instant::now();
296+
let mut deleted_folders: u32 = 0;
297+
293298
let mut messages: String = String::new();
294299

295300
// Must be deleted from end to start, because when deleting entries, TreePath(and also TreeIter) will points to invalid data
@@ -308,13 +313,15 @@ pub(crate) fn empty_folder_remover(
308313
match fs::remove_dir_all(&full_path) {
309314
Ok(()) => {
310315
model.remove(&iter);
316+
deleted_folders += 1;
311317
}
312318
Err(_inspected) => error_happened = true,
313319
}
314320
} else {
315321
match trash::delete(&full_path) {
316322
Ok(()) => {
317323
model.remove(&iter);
324+
deleted_folders += 1;
318325
}
319326
Err(_inspected) => error_happened = true,
320327
}
@@ -328,6 +335,8 @@ pub(crate) fn empty_folder_remover(
328335
}
329336
}
330337

338+
debug!("Deleted {deleted_folders} folders in {:?}", start_time.elapsed());
339+
331340
text_view_errors.buffer().set_text(messages.as_str());
332341
}
333342

@@ -363,6 +372,10 @@ pub(crate) fn basic_remove(
363372
return; // No selected rows
364373
}
365374

375+
debug!("Starting to delete {} files", selected_rows.len());
376+
let start_time = std::time::Instant::now();
377+
let mut deleted_files: u32 = 0;
378+
366379
// Must be deleted from end to start, because when deleting entries, TreePath(and also TreeIter) will points to invalid data
367380
for tree_path in selected_rows.iter().rev() {
368381
let iter = model.iter(tree_path).expect("Using invalid tree_path");
@@ -374,6 +387,7 @@ pub(crate) fn basic_remove(
374387
match fs::remove_file(get_full_name_from_path_name(&path, &name)) {
375388
Ok(()) => {
376389
model.remove(&iter);
390+
deleted_files += 1;
377391
}
378392

379393
Err(e) => {
@@ -385,6 +399,7 @@ pub(crate) fn basic_remove(
385399
match trash::delete(get_full_name_from_path_name(&path, &name)) {
386400
Ok(()) => {
387401
model.remove(&iter);
402+
deleted_files += 1;
388403
}
389404
Err(e) => {
390405
messages += flg!("delete_file_failed", name = get_full_name_from_path_name(&path, &name), reason = e.to_string()).as_str();
@@ -394,6 +409,8 @@ pub(crate) fn basic_remove(
394409
}
395410
}
396411

412+
debug!("Deleted {deleted_files} files in {:?}", start_time.elapsed());
413+
397414
text_view_errors.buffer().set_text(messages.as_str());
398415
}
399416

czkawka_gui/src/connect_things/connect_button_move.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::path::{Path, PathBuf};
33
use fs_extra::dir::CopyOptions;
44
use gtk4::prelude::*;
55
use gtk4::{ResponseType, TreePath};
6+
use log::debug;
67

78
use crate::flg;
89
use crate::gui_structs::gui_data::GuiData;
@@ -182,6 +183,9 @@ fn move_files_common(
182183

183184
let mut moved_files: u32 = 0;
184185

186+
debug!("Starting to move {} files", selected_rows.len());
187+
let start_time = std::time::Instant::now();
188+
185189
// Save to variable paths of files, and remove it when not removing all occurrences.
186190
'next_result: for tree_path in selected_rows.iter().rev() {
187191
let iter = model.iter(tree_path).expect("Using invalid tree_path");
@@ -209,6 +213,8 @@ fn move_files_common(
209213
moved_files += 1;
210214
}
211215

216+
debug!("Moved {moved_files} files in {:?}", start_time.elapsed());
217+
212218
entry_info.set_text(flg!("move_stats", num_files = moved_files, all_files = selected_rows.len()).as_str());
213219

214220
text_view_errors.buffer().set_text(messages.as_str());

krokiet/src/model_operations/model_processor.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use crossbeam_channel::Sender;
66
use czkawka_core::common::progress_data::{CurrentStage, ProgressData};
77
use czkawka_core::helpers::delayed_sender::DelayedSender;
88
use czkawka_core::helpers::messages::Messages;
9-
use log::error;
9+
use log::{debug, error};
1010
use rayon::iter::{IntoParallelIterator, ParallelIterator};
1111
use slint::{ComponentHandle, ModelRc, VecModel, Weak};
1212

@@ -54,6 +54,13 @@ impl MessageType {
5454
Self::Move => ProgressData::get_empty_state(CurrentStage::MovingFiles),
5555
}
5656
}
57+
fn msg_type(&self) -> &'static str {
58+
match self {
59+
Self::Delete => "delete",
60+
Self::Rename => "rename",
61+
Self::Move => "move",
62+
}
63+
}
5764
}
5865

5966
impl ModelProcessor {
@@ -148,6 +155,7 @@ impl ModelProcessor {
148155
.expect("Failed to update app info text");
149156

150157
let items_queued_to_delete = simpler_model.iter().filter(|(_idx, e)| e.checked).count();
158+
debug!("Processing {} items for {}", items_queued_to_delete, message_type.msg_type());
151159
if items_queued_to_delete == 0 {
152160
weak_app
153161
.upgrade_in_event_loop(move |app| {
@@ -170,8 +178,18 @@ impl ModelProcessor {
170178
.unwrap_or_default();
171179
let _ = progress_sender.send(base_progress).map_err(|e| error!("Failed to send progress data: {e}"));
172180

181+
let start_time = std::time::Instant::now();
173182
let results = self.process_items(simpler_model, items_queued_to_delete, progress_sender.clone(), &stop_flag, dlt_fnc, message_type, size_idx);
183+
let processing_time = start_time.elapsed();
184+
let removing_items_from_model = std::time::Instant::now();
174185
let (new_simple_model, errors, items_deleted) = self.remove_deleted_items_from_model(results);
186+
debug!(
187+
"Items processed in {processing_time:?}, removing items from model took {:?}, from all {} items, removed from list {}, failed to process {}",
188+
removing_items_from_model.elapsed(),
189+
items_queued_to_delete,
190+
items_deleted,
191+
errors.len()
192+
);
175193
let errors_len = errors.len();
176194

177195
// Sending progress data at the end of deletion, to indicate that deletion is finished

0 commit comments

Comments
 (0)