Mailing list archives : pcb-rnd

ID:2507
From:ge...@igor2.repo.hu
Date:Thu, 13 Dec 2018 09:28:36 +0100 (CET)
Subject:[pcb-rnd] new preferences dialog: near to finish
Hi all,
 
please test the new preferences dialog: you can invoke it by action 
"preferences". In a few days I am going to remove the original, gtk-only 
preferences dialog in favor of the new one.
 
The new code is 25% smaller, universal (hid-independent), more real-time 
and already has more features, including some that was just missing 
feature from the original.
 
While most features work, there may be random bugs and segfaults. Please 
report anything you find, with an exact sequence of clicks on how to 
reporoduce it.
 
Changes compared to the old preferences dialog:
 
1. DAD-based, so works in lesstif and any future HID (lesstif still 
doesn't have the tree view widget, but that will be solved in this cycle)
 
2. real-time, live: any change you make will immediatelly take effect and 
the window content follows any change you make elsewhere
 
3. target role: we used to save settings to the design role by default 
and had 4 buttons to copy over all settings of a page to another role 
(e.g. user or project config). This had two disadvantages: you couldn't 
change user or project config from the GUI without also changing design 
config, and it had to copy all settings of a page at once, even the ones 
you didn't change. The new setup is a combo box on the bottom of the 
dialog, telling where any further change will land. This fixes both 
problems.
 
4. user pov, config pov: DAD is great in the sense that we code once and 
it works with all GUI HIDs, but this has a cost: we have less control over 
screen estate and we need to be more careful with large dialogs to fit in 
800x600. So I had to do a different approach and instead of one large 
tree, we have tabs. The first many tabs are User PoV pages, the last one 
is always the Config PoV. The action can be invoked with jumping to 
a page, e.g. preferences(colors).
 
5. library path page: again a DAD thing: with the gtk-only implementation 
we used to be able to code with any fancy gtk feature. With DAD we have to 
restrict ourselves to a subset of features that we can support under any 
HID. This subset is actively kept on the minimum, for API/code simplicity 
reasons. So we lost the possibility to reorder a list by drag&drop - 
instead, we have explicit buttons for these.
 
6. colors: instead of a tree for the two sections, we have left-side tabs. 
 
7. window tab: not yet coded; this will collect all dialog box 
size/placement settings.
 
8. config tree + filter: it's the config pov only, so the tree listing is 
1:1 the in-memory native conf tree. It got a name filter, similar to whatw 
e got used to in the library window. This makes it easier to find the low 
level details of a specific setting without knowing the full conf path. 
Extra: the action can be invoked as preferences(config tree, grids), in 
which case the second argument is put in the filter. Will be conveninet in 
doc&tutorials.
 
9. config tree value edit: originally because of the dialog size issue, I 
decided to separate the config node value edit into a separate, non-modal, 
multi-open dialog. If you select a config node and a role, you can edit it 
in such a separate window. On the other hand this turned out to be a big 
improvement too: you can keep such windows open, even if you close the 
preferences dialog. This is similar to tear-off menus: on a large screen 
this lets you collect dialogs for a set of important settings to have a 
fast way changing the values.
 
For a few days you can use both in parallel. Please don't report bugs 
about the old dialog, only about the new one. Please don't yet report bugs 
on lesstif, we should do that once we have the tree view widget ready.
 
Best regards,
 
Igor2
 

Reply subtree:
2507 [pcb-rnd] new preferences dialog: near to finish from ge...@igor2.repo.hu