Ticket #3935 (closed enhancement: fixed)

Opened 6 years ago

Last modified 5 years ago

Feature request: Extra options in "File exists" dialog

Reported by: tylla Owned by: andrew_b
Priority: minor Milestone: 4.8.23
Component: mc-core Version: master
Keywords: Cc:
Blocked By: Blocking:
Branch state: merged Votes for changeset: committed-master

Description

Currently the "File exists" dialog has 7 options for overwriting files: "Yes", "No", "Append", "All", "Update", "None", "If size differs".
The individual file options are fine, but the "all targets" options could benefit from some extra functionality:

"If smaller": overwrite existing file if the copied/moved one is bigger. One typical use case when copying picture files and some of them have extra metadata added, so have bigger file size. This would handle the interrupted copy/move operation as well, if the interrupted file is only a chunk. This is absolutely different from "If size differs".
"If older": overwrite existing file if the new file is more recent. If I understand correctly this is the functionality of the "Update", but the name is somewhat misleading, so I would suggest renaming the option.

Another idea is, maybe the whole dialog should get an overhaul, the options taken apart, and the options "Yes", "No", "Append", "If older", "If smaller", "If size differs" should be followed by a separate check-box "Do this for all the files".

Change History

comment:1 in reply to: ↑ description Changed 5 years ago by andrew_b

Branch: 3935_file_exists_extra_options
Initial changeset:a91c20c0d2aae2afb4fe72e81a1c809ff70be1b2

Replying to tylla:

"If smaller": overwrite existing file if the copied/moved one is bigger.

Done.

"If older": overwrite existing file if the new file is more recent. If I understand correctly this is the functionality of the "Update", but the name is somewhat misleading, so I would suggest renaming the option.

Done.

Another idea is, maybe the whole dialog should get an overhaul, the options taken apart, and the options "Yes", "No", "Append", "If older", "If smaller", "If size differs" should be followed by a separate check-box "Do this for all the files".

Would you like to propose the new dialog design/layout?

comment:2 Changed 5 years ago by tylla

Wow, thanks for your work! :)

As about the dialog layout, I've came up with something like this:

┌───────────────────── File exists ──────────────────────┐ 
│              Target file already exists!               │ 
│  Source: /path/to/original_file_name                   │ 
│  Target: /path/to/target_file_name                     │ 
├────────────────────────────────────────────────────────┤ 
│            Modification date/time                Size  │
│  Source: feb 4 2017 13:37                     1234567  │ 
│  Target: feb 4 2017 13:38                  1234567890  │ 
├────────────────────────────────────────────────────────┤ 
│  Overwrite target:          [ Yes ] [ No ] [ Append ]  │ 
│       [ If older ] [ If smaller ] [ If size differs ]  │ 
├────────────────────────────────────────────────────────┤ 
│  Do this to all targets:  [ ]                          │ 
│  Never overwrite with zero length file:  [ ]           │ 
├────────────────────────────────────────────────────────┤ 
│                       [ Abort ]                        │ 
└────────────────────────────────────────────────────────┘ 

As you can see I've added a few other extras which happened to come in my mind while I was thinking about the layout.

  • display the original (source) and the existing (target) path and file name as well, (it is useful if some tricky regexp is used).
  • created separated column header to cleanly mark the information
  • always show the full date/time in this dialog (currently the time is hidden if it is more than a year(?) in the past)
  • "Never overwrite with zero length file:" should do what it says. Not a frequent problem, but sometimes is handy.

Opinion?

comment:3 Changed 5 years ago by andrew_b

Ok. I'll try do that this weekend.

comment:4 Changed 5 years ago by andrew_b

I think the usage of "Do this to all targets" checkbox makes the usability of this dialog worse.

In the dialog, initially the "Yes" button is selected.

In the current dialog, if we want to overwrite all files we select the "Yes" button and press it. These are two actions: select and press.

In the proposed dialog, we should select the "Do this to all targets" checkbox, change it, move back to the "Yes button" and press it. These are four actions: select, change, select, and press.

I propose to change current dialog layout, keeping all buttons, and add the "Never overwrite with zero length file". Something like following:

┌───────────────────── File exists ───────────────────────┐
│ New:      /path/to/original_file_name                   │
│                  1234567890            feb 4 2017 13:37 │
│ Existing: /path/to/target_file_name                     │
│                     1234567            feb 4 2017 13:38 │
├─────────────────────────────────────────────────────────┤
│                    Overwrite file?                      │
│           [ Yes ] [ No ] [ Append ] [ Reget ]           │
├─────────────────────────────────────────────────────────┤
│                  Overwrite all files?                   │
│ [ ] Overwrite with zero length file                     │
│ [ All ] [ If older ] [ If smaller ] [ If size differs ] │
├─────────────────────────────────────────────────────────┤
│                       [ Abort ]                         │
└─────────────────────────────────────────────────────────┘

comment:5 Changed 5 years ago by andrew_b

  • Owner set to andrew_b
  • Status changed from new to accepted
  • Branch state changed from no branch to on review
  • Milestone changed from Future Releases to 4.8.23

Branch: 3935_file_exists_extra_options
Initial changeset:036166119366a400238e3faea4987bda06f5764b

Please test.

comment:6 Changed 5 years ago by andrew_b

  • Votes for changeset set to andrew_b
  • Branch state changed from on review to approved

comment:7 Changed 5 years ago by andrew_b

  • Status changed from accepted to testing
  • Votes for changeset changed from andrew_b to committed-master
  • Resolution set to fixed
  • Branch state changed from approved to merged

Merged to master: [657d8e8822cf94a9b7dd9e9b63de17ec0dd3469d].

git log --pretty=oneline e7249a8..657d8e8

comment:8 Changed 5 years ago by andrew_b

  • Status changed from testing to closed

comment:9 Changed 5 years ago by tylla

Really sorry, real-life intervened...

Yeah, you are right, it really takes more keystrokes to use the dialog the way I designed it, I didn't thought about it this way.
Your proposed layout is absolutely acceptable (except for the "Overwrite with zero length file" option, which in the text above is written as "Never overwrite with zero length file" so I think this must be just a typo).
Currently I don't have the circumstances to test this, but I will definitely do it as soon as I can.

I'm really glad that I could contribute with some ideas to the project.
Thank you for your prompt response and the nice work you do with MC.

Note: See TracTickets for help on using tickets.