Re: [Nautilus-list] preferences



On Saturday, August 18, 2001, at 04:19  PM, Havoc Pennington wrote:

Anyhow, I'll give it a rest, and try to come up with a patch in the
next few weeks. No doubt new solutions will become apparent during the
hacking process.

First, I should note that this is the classic problem of building systems from the bottom up. GConf is built first, then we design the UI, and we discover that it doesn't have the features we need to build the UI we want. We can debate all we want about whether the user level feature we implemented is good or bad, but the fact is we had to build more features on top of GConf and that's why we made this mess.

It would be great to make the layer between Nautilus preferences code and GConf be thinner. For places where we want the beginner default and the expert default to be different, I think there's a simple hack that could keep the user experience the same and make things still be pretty nice for admins using GConf. Maybe we can use an extra enum value that means "appropriate default for user level" and have that be the default, and readers of these preferences would just use a cover that takes care of mapping this. This might work for all 6 of the spots -- I'm not really sure. A little hacking in Nautilus preference code would be needed, and there would be no UI way to get back to this "appropriate default for user level" setting, but I think it could be a clean solution.

Or you could use Ramiro's proposed defaults for those 6 items. I'm not sure I agree with some of his calls on those, but frankly we lost the people who were thinking about the fine tuning of such things with Eazel's demise so the Nautilus team is now easily convinced about such things.

I personally am not as happy as Ramiro is about having the NautilusPreferences level between us and GConf. It does have the nice effect of reducing Nautilus dependencies on GConf, leaving us with only one place to change, but it has the other effect of introducing yet another API. It's a way to make Nautilus safer from changes to underlying libraries, but I don't think we need that kind of safety net. But it's a little too late for me to complain about this now.

On the other hand, the layer was absolutely required to make the user level feature work. I also love how Ramiro made the preferences dialog UI work automatically, but somehow I still suspect this could have been done without wrapping GConf as much. I'm not sure that the user level feature was a total failure, and I have mixed feelings about the (implicit in this discussion) possibility of just removing it altogether. It's true that if you remove all of the "crackrock UI" then you probably don't need user levels as much, but can you ever do that? Andy has more understanding of the importance of the user level concept than I do, I think.

I think we have too many of these additional layers in Nautilus code though. For example, I'd rather have functions that work on GLists of strdup'd strings rather than the EelStringList class. I think this is all part of my "when in GNOME, program as the GNOMERs do" philosophy. I'd like to remove code that's not pulling its weight.

Continuing to get way off topic, I also really wish we hadn't ended up with a Nautilus coding style that is different from the style for other projects. I would much rather have a style that exactly matched the style of gtk or of bonobo, but instead we have something idiosyncratically different from either! (As Michael Meeks is constantly reminding me.)

    -- Darin




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]