Re: gCvs popup menu customization, future plans
Richard Wirth <[email protected]> Tue, 14 Feb 2006 09:15:10 +0100
| Newsgroups | gmane.comp.version-control.cvs.gui.devel |
|---|---|
| Organization | Ing.Büro Richard Wirth |
| Message-ID | <[email protected]> |
Hello Guy, Tuesday, February 14, 2006, 4:24:04 AM, you wrote: GR> Richard, I'm working on allowing the user to customize the popup menus GR> (as you already can do in WinCvs.) You're lucky to have so mutch time! GR> The approach I'm now pursuing is to store the customized menus in the GR> preferences file, using one string for the customized folder popup menu GR> and one for the customized file popup menu. I'm thinking of just using GR> the numeric values for the menu commands, separated by a single space. GR> Do you see any issues with this approach? I originally thought of using GR> the string representations (like cmdSave, etc, from UCvsCommands.h), GR> which is what sent me down the multistrings path. But now I don't see GR> much value to doing that, as I would just have to translate those GR> strings to their numeric equivalents anyway. The only benefit I can see GR> to using the strings instead of the numbers is that it makes the stored GR> values impervious to any change in the value of the constants. But that GR> probably hasn't happened since the project began, so it's likely not a GR> big deal. I also think they're stable. But I'm not verry happy with the persistent format in general. It is raw binary, and this complete machine dependent. So one can not move its setup from one computer to another. Also there is no easy way in migrating existing setups when new fearures are added. So I often thought about storing prefernces in clear text. But that will imply a lot of work, cause there isn't an easy way for transforming binary complex data into text... But for the moment your approach is the best we can implement! GR> GR> Have you given any thought to near and long term plans for gCvs? I GR> mentioned here a short while ago the idea of rewriting all platforms in GR> something like mono/.Net, but Jerzy expressed doubt that the platform GR> was up to the task. Rewriting it in .Net is like a complete new implementation -- too mutch work :-(( GR>  If that is true and the three platforms are GR> destined to be separately implemented for the foreseeable future, then GR> near term we should probably GR> GR> (1) find and fix memory leaks Most of them come from my stupid implementation of FoldersView. The Gtk2 aproach is verry incompatible with the existing rf. So the whole FoldersView (and also FilesView) have to be reimplemented independent of the rf (like WinCvs and MacCvs already do). GR> (2) revamp the build system (at the very least, so newcomers can use it GR> without having to come to the ML numerous times just to get it built; GR> you also mentioned your desire to get rid of the autotools approach and GR> just use a simple configure/make. (I was talking autogen.sh versus simple configure/make. Autotools are ever used to do the job in any case. But autogen.sh requires autotools to be installed in the correct version on the target, while configure/make do only reqire this on the developers platform) There is a basic question about gCvs's target environment to be answered first. Is gCvs a true gnome application or not? This has implications on the autogen/configure approach. At the moment gCvs isn't a gnome app but it is also not gnome independent. There are lots of crude things like the hardcoded fonts (have you ever tried it on a high resolution desktop??) I would prefere a pure gnome independant application. But what about all the gnome users than?? GR> I'm unable to build it on Gentoo GR> 32-bit because newer versions of intltool have gotten rid of GR> xml-i18n-toolize. So we should adapt the build to not use this and doing things another way (!). I'm using SuSE linux and Solaris and have not seen this problem until now. GR>  I have noticed on Gentoo at least, many packages are GR> migrating *to* the autotools approach. I have no preference.) Do they use the autogen.sh approach? It's surely not a problem for Geentoo cause the whole build env comes from a single source and is consitent for each version. GR> (3) address the kludges we used (e.g., using hidden variables) to get GR> the tree view working. The kludges may very well be the source of the GR> memory leaks. As I mentioned above... There are lots of other things ported from WinCvs to gCvs (first all 'INTERNAL_AUTHEN' stuff). GR> Longer term, I'd like to investigate some possible code refactoring. GR> All the current precompiler conditionals make the code very hard to GR> follow for newcomers like me; using C++ inheritance to separate all that GR> out would certainly help. (Don't mean any offense to the long timers GR> here; previous contributors may have tried that approach and found it GR> too cumbersome.) Inheritance isn't a solution. Many platform specific code is intermixed with platform common code. Inheritance will lead to copy the common code, so it isn't manageable any more. For that task all code has to be restructured. And that is like rewriting the whole app (for all Platforms). So I think we have to live with the current code anyway. The only thing I see is to migrate the Windows code to a more portable GUI library (like qt or wxWidgets) to have one source for Windows and KDE based systems. (I prefer KDE on my desktops even on Solaris :)) -- Best regards, Richard mailto:[email protected] Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/cvsgui-dev/ <*> To unsubscribe from this group, send an email to: [email protected] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/