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