On 16/01/2016 21:08, Ondrej Pokorny wrote:
On 15.01.2016 23:30, Howard wrote:
Sorry, my apologies - I missed that you didn't try it.

Yes working fine for me (Windows 7 32bit and Linux 64 bit).
I'm relieved that such a simple change has had such a good effect, and that no further tinkering with TShadowMenu size and positioning code was required; and that my poorly implemented scrolling code can therefore be dumped entirely.

Yes, you must have wasted a lot of time on the extra scrolling code :(
+ Could you take a look also at this one?: http://mantis.freepascal.org/view.php?id=29399 Basically you should use a simple parented TEdit and not a modal dialog. Take a look at grids in-place editor.

I'll have a look later next week.

To me it seems that you have taken hard and complicated routes at a lot of places in the new menu editor, which are very bug-prone, hard to maintain and hard to understand - instead of using easy and simple ways. As a result, you wasted your time and also mine and others that tried to understand what's going wrong in the unnecessary code and tried to fix it.

This is also the case of resource strings. Take a look e.g. at r51249 and r51305. Why was the dialog so complicated with duplicate strings? Yes and No as answers are clear enough.
It stated:
"Deleting this item will delete all subitems too.
Delete this item and its subitems?"
You use the word delete three times, (sub)items 2+2 times. Why? (And I don't count the dialog title and former buttons.) Why not only the second line?: "Delete this item and its subitems?" -> again it is clear enough. Furthermore, using the same words and phrases over and over again is stylistically wrong.
In this particular instance of deleting a submenu (not just a single item) my motivation was not to make it overly complicated (though I appreciate it may seem so). It is quite possible a user may have spent 10 minutes designing a submenu with half a dozen items, and then hits the delete key accidentally. With a simple Yes/No dialog (especially if the the default button is Yes) it is all to easy to hit the wrong button and lose the last few minutes' work; and there is no undo facility implemented. I may have written that dialog clumsily, but I wanted to avoid the possibility of an 'automatic' response which was disastrous. I quite agree a straightforward Yes/No dialog is simpler and more elegant, but it may not give a hurried user sufficient 'pause' to avoid accidentally losing valuable work.

Honestly, the new menu editor is a translator's nightmare. Although I do like what the new designer does, I don't really like how it is written :( I tried to fix some code but I am somehow already tired to go through all the issues.

Please don't get me wrong - I don't want to offend you in any way. I just want to explain that you should use the KISS-principle whereever possible. It will not only save everybody's time but also lead to better code. (I know, I also have hard time to apply KISS.)

Ondrej

PS: Just for comparison:
BEFORE:


AFTER:


Even as a user, I need much more time to understand what's going on in the first dialog...
No offence taken. I appreciate you taking the time to give constructive feedback, as well as tracing through code you find poorly written in order to improve it.

You'll realise I'm on a learning curve. This is my first significant code contribution to an open source project. I actually never thought I had the skill to offer a new menueditor. It was a forum comment by the late BigChimp some years ago about the previous menueditor which first got me thinking about its shortcomings, why it was so difficult to improve/maintain, and how a replacement might be designed to be better in that respect; and several developers said a complete rewrite was the only way forward. Months became years and no one as far as I could see was working on a replacement. So I decided to bite the bullet, and started to look at relevant bits of the IDE code (much of which I still don't understand). I've been learning on the job, as you plainly see...

Howard
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to