Ticket #2557 (closed defect: fixed)
"Chmod" dialog: Use screenspace better (with patch)
Reported by: | bugreporter | Owned by: | andrew_b |
---|---|---|---|
Priority: | major | Milestone: | 4.8.0-pre1 |
Component: | mc-core | Version: | 4.7.5 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Branch state: | merged | Votes for changeset: | committed-master committed-stable |
Description
MC's "chmod" dialog has its size hardcoded in the source -- both the overall size, and the size of the dialog's components.
The hardcoded numbers work well with the English language (see the attached screenshot "english_before.png").
They do NOT work well with many other languages (see the attached screenshot "international_before.png"; it uses German as an example). Perfectly translated strings overflow their allocated width. At the same time, the dialog leaves much blank space that stays unused.
The attached patch "mc-4.7.5.2-chmod_use_whitespace-1.patch" re-structures the "chmod" dialog's internal dimensions such that less of the dialog's area is wasted for whitespace. The dialog's outer dimensions stay untouched.
This improves the situation for non-English languages considerably (see the attached screenshot "international_after.png").
The dialog in English language still looks good (see the attached screenshot "english_after.png").
Attachments
Change History
comment:1 Changed 13 years ago by bugreporter
The blank before the "[ ]" boxes is actually used for something, so it must stay. An updated patch is attached: "mc-4.7.5.2-chmod_use_whitespace-2.patch".
comment:2 Changed 13 years ago by andrew_b
- Status changed from new to closed
- Resolution set to wontfix
chmod dialog is not only one where the i18n is implemented not quite correctly. Unfortunately, your patch also contains hardcoded widget positions. Try select several files in panel and then open chmod (or chown) dialog. You see that position of buttons are not well. I think, buttons should be located in two lines for this case.
In general, i18n of chmod and chown and many other dialogs should be reimplemented totally.
As a result, I'd close this ticket as wontfix because of #64.
comment:3 Changed 13 years ago by andrew_b
- Keywords chmod dialog size, i18n, usability, professional-level software quality, attention to detail removed
comment:4 follow-up: ↓ 5 Changed 13 years ago by bugreporter
- Keywords chmod dialog size, i18n, usability, professional-level software quality, attention to detail added
- Status changed from closed to reopened
- Resolution wontfix deleted
Reopening.
These buttons overlap with and without the patch. The patch does not introduce that overlap. See the attached screenshot "international_before_and_after.png".
The patch does not solve all of the chmod dialog's problems. But it improves the current situation -- without introducing additional code, and without undesired side-effects. Please provide a better reason why you don't want it.
comment:5 in reply to: ↑ 4 ; follow-up: ↓ 6 Changed 13 years ago by andrew_b
Replying to bugreporter:
The patch does not solve all of the chmod dialog's problems.
And why not fix all problems of one dialog at once?
Please provide a better reason why you don't want it.
Because this is a semi-solution of chmod i18n problems. Again, why not fix a chmod dialog completely at once?
comment:6 in reply to: ↑ 5 Changed 13 years ago by bugreporter
Replying to andrew_b:
And why not fix all problems of one dialog at once?
The changes that are needed to fix all problems, and properly (from the ground up), are not trivial. They go beyond my current knowledge of MC, glib, and even C. What I can do is to find and fix things like missed opportunities (that's what the patch does), off-by-one errors, and so on. The boring groundwork.
And that is important, too. By replacing the existing set of hard-coded values with a better set, my trivial patch removes a lot of blatant ugliness in the non-English interface (see the screenshots). We must still wait for someone to do the big rewrite, but at least we have a more usable international interface while we wait.
The same can be done for the buttons in the chmod dialog (to spread them out horizontally a bit better), and perhaps also for other dialogs. But before doing more work it is interesting to see whether such semi-solutions have a chance of getting accepted upstream at all.
comment:7 follow-up: ↓ 8 Changed 13 years ago by gms
Hi.
I've seen a fork of MC with solved i18n dialog buttons problem. The buttons were placed in 2 rows in chmod and chown dialogs. But I've forgotten what a fork it have been :(
comment:8 in reply to: ↑ 7 Changed 13 years ago by andrew_b
Replying to gms:
I've seen a fork of MC with solved i18n dialog buttons problem. The buttons were placed in 2 rows in chmod and chown dialogs. But I've forgotten what a fork it have been :(
I have my own patches for that.
comment:9 Changed 13 years ago by andrew_b
- Status changed from reopened to accepted
- severity changed from no branch to on review
- Owner set to andrew_b
- Milestone changed from 4.8 to 4.8.0-pre1
- Keywords stable-candidate added; chmod dialog size, i18n, usability, professional-level software quality, attention to detail removed
- Type changed from enhancement to defect
Created 2557_chmod_i18n branch (parent: maser).
Initial changeset:a3c0b3ba4d556820f4583132cdfcd0c0281265c9
comment:11 Changed 13 years ago by slavazanko
- severity changed from on review to no branch
- Branch state set to on review
comment:12 Changed 13 years ago by angel_il
- Votes for changeset changed from slavazanko to slavazanko angel_il
- Branch state changed from on review to approved
comment:13 Changed 13 years ago by andrew_b
- Status changed from accepted to testing
- Votes for changeset changed from slavazanko angel_il to committed-master
- Resolution set to fixed
- Branch state changed from approved to merged
Merged to master.
changeset:32de3c2215a44460302f66ef00abd513a5ecd7a8
git log --pretty=oneline 63c0f34..32de3c2
comment:14 Changed 13 years ago by slavazanko
- Status changed from testing to closed
- Keywords stable-candidate removed
- Votes for changeset changed from committed-master to committed-master committed-stable
Cherry-picked in stable:
git log --pretty=oneline d8af12222..1cad05bb3