[PyKDE] PyQt4 installation issue

Detlev Offenbach detlev at die-offenbachs.de
Sun Oct 15 14:03:42 BST 2006


On Sunday 15 October 2006 13:20, Phil Thompson wrote:
> On Sunday 15 October 2006 11:45 am, Detlev Offenbach wrote:
> > On Sunday 15 October 2006 12:16, Phil Thompson wrote:
> > > On Sunday 15 October 2006 9:36 am, Detlev Offenbach wrote:
> > > > On Saturday 14 October 2006 20:24, Phil Thompson wrote:
> > > > > On Saturday 14 October 2006 6:17 pm, Detlev Offenbach wrote:
> > > > > > Hi,
> > > > > >
> > > > > > the latest snapshot of PyQt4 creates an API file for QScintilla.
> > > > > > However, this file is not installed by "make install". For Linux
> > > > > > I propose to put it in "/usr/share/QScintilla". Furthermore, the
> > > > > > configure script should get an option to specify the installation
> > > > > > path for the API file.
> > > > > >
> > > > > > -a dir  where the PyQt4 .api file will be installed
> > > > > > [default /usr/share/QScintilla]
> > > > >
> > > > > I haven't decided yet how this should be handled. For example I
> > > > > might create a Scintilla subdirectory in $QTDIR with lexer specific
> > > > > subdirectories in that - and maybe autoload any API files found
> > > > > there.
> > > >
> > > > Please no automatism. Give the user the chance to decide, if he wants
> > > > to have autocompletion and calltips. If decides against it, it is not
> > > > neccessary to load the API files. If you introduce a global API
> > > > storage area, you must include provisions for a per user API storage
> > > > area as well.
> > > >
> > > > > Or
> > > > > maybe have an configurable API path that is searched.
> > > >
> > > > One per lexer type?
> > > >
> > > >
> > > > What should happen, if a user just wants to load a subset of the API
> > > > files available for a specific lexer (e.g. for Python there might be
> > > > a python.api and PyQt4.api; the user just wants to use the later
> > > > one). With the current API solution, it is the responsibility of the
> > > > application to provide these services to the user. Eric4 (and eric3)
> > > > do this. QScintilla2 is a widget meant to be integrated into an
> > > > application and should provide the programmer an API to access the
> > > > service needed. I think, the current QScintilla2 API is good in this
> > > > respect.
> > >
> > > Agreed that QScintilla should not mandate any policy. Also, the
> > > producer of any API file (eg, PyQt, PyKDE) should be decoupled from any
> > > consumer (eg eric, another QScintilla based editor).
> > >
> > > How about, when loading an API file, if the file is not found and no
> > > directory path was included in the name, then it looks for a file in a
> > > standard location.
> >
> > Ok, how about a configurable API search path. This could be configurable
> > via an environment variable (e.g. QSCINTILLA_API_PATH) and overridable
> > via an API call (e.g. setApiSearchPath(QStringList searchPath))
> > accompanied by the relevant getter method.
> >
> > > There should also be a lexer method that returns the
> > > names of the files (excluding the .api extension) of all the files in
> > > the lexer specific standard directory.
> >
> > As mentioned before, if there is a global standard directory, there
> > should be a per user standard directory as well.
> >
> > > That way, PyQwt could install a .api in a standard place.
> >
> > The install should offer to install into the standard directory, but that
> > should be overridable by the user. For example, a user might want to
> > install a package like PyQwt locally to test it or he has not the rights
> > to install it globally. How does QScintilla know about the API file in
> > that case?
>
> Your dialog would have a check box for each file discovered in the standard
> directory and a way of selecting additional API files from anywhere in the
> file system.
>
> I think the whole path thing is unnecessary over-engineering.
>

Summary:
We have a standard (global) API installation path, which is used, if the lexer 
is loaded with a file, that doesn't exist and has no path. We have an API 
call, that returns a list of files found in the lexer specific global API 
storage area. Applications can offer a dialog to load API files either from 
the central storage or from anywhere else.

Is this correct?

Detlev
-- 
Detlev Offenbach
detlev at die-offenbachs.de




More information about the PyQt mailing list