Dear devels, I am starting to look into biblatex support, with a long term project of perhaps writing the required code or (what's more likely, given my poor knowledge of C++) helping put together some general desiderata and detailing the associated work.
My understanding of the problem is the following: >From a user's perspective, a minimally satisfactory support of biblatex requires the following: 1. A biblatex dialog similar to the current bibtex's dialog, where users can enter: a. the list of files (not necessarily in bibtex format) containing the references b. the citation style to be used in-text c. the reference style to be used in the references section d. a list of additional biblatex's specific calling parameters This dialog box would insert in the document's preamble a call to biblatex (with the parameters at (d) passed verbatim) plus a series of \addbibresource commands (one per reference file) Additionally, it would insert a \printbibliography command at the cursor location (when it was opened), similarly to the current bibtex's dialog 2. A mechanism to insert citations in the text that takes advantage of biblatex's more extensive set of citation commands (e.g. citeauthor, citetitle, etc.) 1+2 would mimick LyX-bibtex's current behavior for biblatex. A natural way to approach the biblatex issue would then be to replicate bibtex's machinery and change what's needed Now, as a question to the developers: where is the magic for 1 and 2 happening in LyX's codebase (for bibtex, I mean)? Warning: I am somewhat familiar with Qt 4, but only as used from python through pyqt. My knowledge of C++ is rudimentary as best---please be gentle! My fumbling search through the code has reached the following preliminary conclusions: a. frontends/qt4/GuiBibtex.cpp defines the Bibtex dialog's class with all the required signal/slot connections and associated methods. b. I don't quite understand where and how the widget itself is defined. I am used to either define widget programmatically by creating (and possibly nesting) layouts and then adding the widgets manually, or by creating them by hand with QT Designer and then importing them into code. I can't see either method used here. My ignorance of C++ is certainly to blame and input would be welcome. I still have no clear idea of: c. where and how is the bibtex widget called. d. where is the machinery that's needed to insert citations into LyX. Is it the src/insets/InsetBibtex.cpp class? (of which I confess I have a very dim understanding)? e. how the various cite commands are inserted in the insert inset pop-up list. Comments appreciated. Cheers, Stefano -- __________________________________________________ Stefano Franchi stefano.fran...@gmail.com <stef...@tamu.edu> http://stefano.cleinias.org