Ticket #2557 (closed defect: fixed)

Opened 13 years ago

Last modified 13 years ago

"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

english_before.png (16.0 KB) - added by bugreporter 13 years ago.
english_after.png (15.8 KB) - added by bugreporter 13 years ago.
international_before.png (17.3 KB) - added by bugreporter 13 years ago.
international_after.png (17.3 KB) - added by bugreporter 13 years ago.
mc-4.7.5.2-chmod_use_whitespace-1.patch (1.5 KB) - added by bugreporter 13 years ago.
mc-4.7.5.2-chmod_use_whitespace-2.patch (1.3 KB) - added by bugreporter 13 years ago.
international_before_and_after.png (37.6 KB) - added by bugreporter 13 years ago.

Change History

Changed 13 years ago by bugreporter

Changed 13 years ago by bugreporter

Changed 13 years ago by bugreporter

Changed 13 years ago by bugreporter

Changed 13 years ago by bugreporter

Changed 13 years ago by bugreporter

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

Changed 13 years ago by bugreporter

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
  • Keywords stable-candidate added; chmod dialog size, i18n, usability, professional-level software quality, attention to detail removed
  • Milestone changed from 4.8 to 4.8.0-pre1
  • Owner set to andrew_b
  • Type changed from enhancement to defect

Created 2557_chmod_i18n branch (parent: maser).
Initial changeset:a3c0b3ba4d556820f4583132cdfcd0c0281265c9

comment:10 Changed 13 years ago by slavazanko

  • Votes for changeset set to slavazanko

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

  • Keywords stable-candidate removed
  • Status changed from testing to closed
  • Votes for changeset changed from committed-master to committed-master committed-stable

Cherry-picked in stable:

git log --pretty=oneline d8af12222..1cad05bb3
Note: See TracTickets for help on using tickets.