Dear all, You can find an implementation of nomencl support in the attachments. there are two diffs and the tgz file for the new files.
I basically developed everything deriving from the index counterpart. Files in the directory frontend should be OK ( except the silly constructors), since they are very straightforward. I should admit that, I had some difficulties in LFUNs since I am quite new on them. But they seem to be working :).. The main questionable development is in insetCommandParams class. I have changed the scanCommand() and getCommand() functions a bit. So that it can parse the commands in the form: \command [option 1] [option 2] {content 1} {content 2} where previously it could parse only the form \command [option 1] [option 2] {content 1}. Unfortunately, I am not a LaTeX guy, and I cannot foresee any problems that may be introduced with this development. I have tested some lyx functionalities that uses scanCommand() function, and it seems OK. However, I have no idea if for some extreme cases this can create problems. Therefore I would be glad if somebody checks them. and last of all, I developed this against the lyx 1.5.x. However, (if insetCommandParams mod. is correct) there is no reason not to add this functionality in lyx 1.4.x with my kindest regards, ugras
Index: LyXAction.C =================================================================== --- LyXAction.C (revision 14934) +++ LyXAction.C (working copy) @@ -3,10 +3,10 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjnnes * \author Jean-Marc Lasgouttes * \author John Levon - * \author André Pönitz + * \author Andr�P�itz * * Full author contact details are available in file CREDITS. */ @@ -359,6 +359,8 @@ { LFUN_MOUSE_TRIPLE, "", ReadOnly }, { LFUN_PARAGRAPH_MOVE_DOWN, "paragraph-move-down", Noop }, { LFUN_PARAGRAPH_MOVE_UP, "paragraph-move-up", Noop }, + { LFUN_NOMENCL_INSERT, "nomencl-insert", Noop }, + { LFUN_NOMENCL_PRINT, "nomencl-print", Noop }, { LFUN_NOACTION, "", Noop } }; Index: LaTeXFeatures.C =================================================================== --- LaTeXFeatures.C (revision 14934) +++ LaTeXFeatures.C (working copy) @@ -3,11 +3,11 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author José Matos - * \author Lars Gullik Bjønnes + * \author Jos�Matos + * \author Lars Gullik Bjnnes * \author Jean-Marc Lasgouttes - * \author Jürgen Vigna - * \author André Pönitz + * \author Jrgen Vigna + * \author Andr�P�itz * * Full author contact details are available in file CREDITS. */ @@ -383,6 +383,12 @@ packages << "\\usepackage[dot]{bibtopic}\n"; } + if (isRequired("nomencl")) { + packages << "\\usepackage{nomencl}\n" + << "\\makeglossary\n"; + } + + return packages.str(); } Index: insets/insetbase.h =================================================================== --- insets/insetbase.h (revision 14934) +++ insets/insetbase.h (working copy) @@ -317,7 +317,11 @@ /// VSPACE_CODE, /// - MATHMACROARG_CODE + MATHMACROARG_CODE, + /// + NOMENCL_CODE, + /// + NOMENCL_PRINT_CODE }; /** returns the Code corresponding to the \c name. Index: insets/insetcommandparams.C =================================================================== --- insets/insetcommandparams.C (revision 14934) +++ insets/insetcommandparams.C (working copy) @@ -28,19 +28,20 @@ InsetCommandParams::InsetCommandParams(string const & n, string const & c, string const & o, - string const & s) - : cmdname(n), contents(c), options(o), sec_options(s), + string const & s, + string const & sc) + : cmdname(n), contents(c), options(o), sec_options(s), sec_contents(sc), preview_(false) {} void InsetCommandParams::scanCommand(string const & cmd) { - string tcmdname, toptions, tsecoptions, tcontents; + string tcmdname, toptions, tsecoptions, tcontents,tseccontents; if (cmd.empty()) return; - enum { WS, CMDNAME, OPTION, SECOPTION, CONTENT } state = WS; + enum { WS, CMDNAME, OPTION, CONTENT } state = WS; // Used to handle things like \command[foo[bar]]{foo{bar}} int nestdepth = 0; @@ -52,55 +53,55 @@ (state == CMDNAME && c == '{')) { state = WS; } - if ((state == OPTION && c == ']') || - (state == SECOPTION && c == ']') || - (state == CONTENT && c == '}')) { - if (nestdepth == 0) { - state = WS; - } else { - --nestdepth; - } + if((state == OPTION && c == ']')|| + (state == CONTENT && c == '}')) { + --nestdepth; } - if ((state == OPTION && c == '[') || - (state == SECOPTION && c == '[') || - (state == CONTENT && c == '{')) { + if((state == OPTION && c == '[')|| + (state == CONTENT && c == '{')) { ++nestdepth; } + if(state != CMDNAME &&!nestdepth) { + if(state == OPTION && toptions.empty()){ + toptions = tsecoptions; + tsecoptions.clear(); + } + if(state == CONTENT && tcontents.empty()){ + tcontents= tseccontents; + tseccontents.clear(); + } + state = WS; + } switch (state) { case CMDNAME: tcmdname += c; break; - case OPTION: toptions += c; break; - case SECOPTION: tsecoptions += c; break; - case CONTENT: tcontents += c; break; + case OPTION: tsecoptions += c; break; + case CONTENT: tseccontents += c; break; case WS: { - char const b = i? cmd[i-1]: 0; if (c == '\\') { state = CMDNAME; - } else if (c == '[' && b != ']') { - state = OPTION; - nestdepth = 0; // Just to be sure - } else if (c == '[' && b == ']') { - state = SECOPTION; - nestdepth = 0; // Just to be sure - } else if (c == '{') { - state = CONTENT; - nestdepth = 0; // Just to be sure } - break; + if (c == '[') { + state = OPTION; ++nestdepth; + } + if (c == '{') { + state = CONTENT; ++nestdepth; + } } } } - // Don't mess with this. if (!tcmdname.empty()) setCmdName(tcmdname); if (!toptions.empty()) setOptions(toptions); if (!tsecoptions.empty()) setSecOptions(tsecoptions); if (!tcontents.empty()) setContents(tcontents); + if (!tseccontents.empty()) setSecContents(tseccontents); if (lyxerr.debugging(Debug::PARSER)) lyxerr << "Command <" << cmd << "> == <" << getCommand() << "> == <" << getCmdName() << '|' << getContents() + << '|' << getSecContents() << '|' << getOptions() << '|' << getSecOptions() << '>' << endl; } @@ -151,6 +152,7 @@ s += '[' + getSecOptions() + ']'; } s += '{' + getContents() + '}'; + if(!getSecContents().empty()) s += '{' + getSecContents() + '}'; return s; } @@ -160,6 +162,7 @@ { return o1.getCmdName() == o2.getCmdName() && o1.getContents() == o2.getContents() + && o1.getSecContents() == o2.getSecContents() && o1.getOptions() == o2.getOptions() && o1.getSecOptions() == o2.getSecOptions() && o1.preview() == o2.preview(); Index: insets/insetcommand.h =================================================================== --- insets/insetcommand.h (revision 14934) +++ insets/insetcommand.h (working copy) @@ -5,7 +5,7 @@ * Licence details can be found in the file COPYING. * * \author Angus Leeming - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjnnes * * Full author contact details are available in file CREDITS. */ @@ -91,6 +91,12 @@ p_.setCmdName(n); } /// + void setSecContents(std::string const & c) + { + updateButtonLabel_ = true; + p_.setSecContents(c); + } + /// void setOptions(std::string const & o) { updateButtonLabel_ = true; Index: insets/insetcommandparams.h =================================================================== --- insets/insetcommandparams.h (revision 14934) +++ insets/insetcommandparams.h (working copy) @@ -15,6 +15,7 @@ #include <string> #include <iosfwd> +#include "debug.h" class LyXLex; @@ -27,7 +28,8 @@ explicit InsetCommandParams(std::string const & n, std::string const & c = std::string(), std::string const & o = std::string(), - std::string const & s = std::string()); + std::string const & s = std::string(), + std::string const & sc = std::string()); /// void read(LyXLex &); /// Parse the command @@ -45,14 +47,20 @@ /// std::string const & getContents() const { return contents; } /// + std::string const & getSecContents() const { return sec_contents; } + /// void setCmdName(std::string const & n) { cmdname = n; } /// void setOptions(std::string const & o) { options = o; } /// - void setSecOptions(std::string const & s) { sec_options = s; } + void setSecOptions(std::string const & s) { sec_options = s; if (lyxerr.debugging(Debug::PARSER)) + lyxerr << "Sec options set as <" << s; +} /// void setContents(std::string const & c) { contents = c; } /// + void setSecContents(std::string const & s) { sec_contents = s; } + /// bool preview() const { return preview_; } /// void preview(bool p) { preview_ = p; } @@ -63,6 +71,8 @@ /// std::string contents; /// + std::string sec_contents; + /// std::string options; /// std::string sec_options; Index: insets/insetbase.C =================================================================== --- insets/insetbase.C (revision 14934) +++ insets/insetbase.C (working copy) @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author Andr�P�itz * * Full author contact details are available in file CREDITS. */ @@ -63,6 +63,7 @@ InsetName("accent", InsetBase::ACCENT_CODE), InsetName("math", InsetBase::MATH_CODE), InsetName("index", InsetBase::INDEX_CODE), + InsetName("nomenclature", InsetBase::NOMENCL_CODE), InsetName("include", InsetBase::INCLUDE_CODE), InsetName("graphics", InsetBase::GRAPHICS_CODE), InsetName("bibitem", InsetBase::BIBITEM_CODE), @@ -81,6 +82,7 @@ InsetName("cite", InsetBase::CITE_CODE), InsetName("float_list", InsetBase::FLOAT_LIST_CODE), InsetName("index_print", InsetBase::INDEX_PRINT_CODE), + InsetName("nomencl_print", InsetBase::NOMENCL_PRINT_CODE), InsetName("optarg", InsetBase::OPTARG_CODE), InsetName("environment", InsetBase::ENVIRONMENT_CODE), InsetName("hfill", InsetBase::HFILL_CODE), Index: insets/insetcommand.C =================================================================== --- insets/insetcommand.C (revision 14934) +++ insets/insetcommand.C (working copy) @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author Angus Leeming - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjnnes * * Full author contact details are available in file CREDITS. */ @@ -31,7 +31,7 @@ InsetCommand::InsetCommand(InsetCommandParams const & p, string const & mailer_name) - : p_(p.getCmdName(), p.getContents(), p.getOptions(), p.getSecOptions()), + : p_(p.getCmdName(), p.getContents(), p.getOptions(), p.getSecOptions(), p.getSecContents() ), mailer_name_(mailer_name), updateButtonLabel_(true) {} Index: insets/Makefile.am =================================================================== --- insets/Makefile.am (revision 14934) +++ insets/Makefile.am (working copy) @@ -75,6 +75,8 @@ insetinclude.h \ insetindex.C \ insetindex.h \ + insetnomencl.C \ + insetnomencl.h \ insetlabel.C \ insetlabel.h \ insetlatexaccent.C \ Index: factory.C =================================================================== --- factory.C (revision 14934) +++ factory.C (working copy) @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author Andr�P�itz * * Full author contact details are available in file CREDITS. */ @@ -37,6 +37,7 @@ #include "insets/insethfill.h" #include "insets/insetinclude.h" #include "insets/insetindex.h" +#include "insets/insetnomencl.h" #include "insets/insetlabel.h" #include "insets/insetline.h" #include "insets/insetmarginal.h" @@ -168,6 +169,10 @@ icp.setContents(contents); return new InsetIndex(icp); } + case LFUN_NOMENCL_INSERT: { + InsetCommandParams icp("nomenclature"); + return new InsetNomencl(icp); + } case LFUN_TABULAR_INSERT: { if (cmd.argument().empty()) @@ -193,6 +198,9 @@ case LFUN_INDEX_PRINT: return new InsetPrintIndex(InsetCommandParams("printindex")); + case LFUN_NOMENCL_PRINT: + return new InsetPrintNomencl(InsetCommandParams("printglossary")); + case LFUN_TOC_INSERT: return new InsetTOC(InsetCommandParams("tableofcontents")); @@ -262,10 +270,16 @@ icp); return new InsetIndex(icp); - } else if (name == "label") { + } else if (name == "nomenclature") { InsetCommandParams icp; InsetCommandMailer::string2params(name, lyx::to_utf8(cmd.argument()), icp); + return new InsetNomencl(icp); + + }else if (name == "label") { + InsetCommandParams icp; + InsetCommandMailer::string2params(name, lyx::to_utf8(cmd.argument()), + icp); return new InsetLabel(icp); } else if (name == "ref") { @@ -360,6 +374,8 @@ inset.reset(new InsetBibtex(inscmd)); } else if (cmdName == "index") { inset.reset(new InsetIndex(inscmd)); + } else if (cmdName == "nomenclature") { + inset.reset(new InsetNomencl(inscmd)); } else if (cmdName == "include") { inset.reset(new InsetInclude(inscmd)); } else if (cmdName == "label") { @@ -387,6 +403,10 @@ inset.reset(new InsetFloatList("table")); } else if (cmdName == "printindex") { inset.reset(new InsetPrintIndex(inscmd)); + } else if (cmdName == "printnomencl") { + inset.reset(new InsetPrintIndex(inscmd)); + } else if (cmdName == "printglossary") { + inset.reset(new InsetPrintNomencl(inscmd)); } else { lyxerr << "unknown CommandInset '" << cmdName << "'" << std::endl; Index: lyxfunc.C =================================================================== --- lyxfunc.C (revision 14934) +++ lyxfunc.C (working copy) @@ -4,15 +4,15 @@ * Licence details can be found in the file COPYING. * * \author Alfredo Braunstein - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjnnes * \author Jean-Marc Lasgouttes * \author Angus Leeming * \author John Levon - * \author André Pönitz + * \author Andr�P�itz * \author Allan Rae * \author Dekel Tsur * \author Martin Vermeer - * \author Jürgen Vigna + * \author Jrgen Vigna * * Full author contact details are available in file CREDITS. */ @@ -1191,6 +1191,7 @@ name == "label" || name == "ref" || name == "toc" || + name == "nomenclature" || name == "url") { InsetCommandParams p(name); data = InsetCommandMailer::params2string(name, p); @@ -1280,6 +1281,10 @@ dispatch(FuncRequest(LFUN_DIALOG_SHOW, "citation")); break; } + case LFUN_NOMENCL_INSERT: { + dispatch(FuncRequest(LFUN_DIALOG_SHOW_NEW_INSET, "nomenclature")); + break; + } case LFUN_BUFFER_CHILD_OPEN: { string const filename = Index: LaTeX.C =================================================================== --- LaTeX.C (revision 14934) +++ LaTeX.C (working copy) @@ -4,7 +4,7 @@ * Licence details can be found in the file COPYING. * * \author Alfredo Braunstein - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjnnes * \author Jean-Marc Lasgouttes * \author Angus Leeming * \author Dekel Tsur @@ -156,6 +156,10 @@ string const ind = changeExtension(ofname, ".ind"); unlink(ind); + // makeindex file + string const gls = changeExtension(ofname, ".gls"); + unlink(gls); + // Also remove the aux file string const aux = changeExtension(ofname, ".aux"); unlink(aux); @@ -275,6 +279,14 @@ && fs::is_empty(changeExtension(file, ".idx")); // run makeindex + if (head.haschanged(onlyFilename(changeExtension(file, ".glo")))) { + // no checks for now + lyxerr[Debug::LATEX] << "Running MakeIndex." << endl; + message(_("Running Makeindex for nomencl")); + string nomenclstr = " -s nomencl.ist -o " + changeExtension(file, ".gls"); + rerun |= runMakeIndexForNonIDX(onlyFilename(changeExtension(file, ".glo")), runparams, nomenclstr); + } + if (head.haschanged(onlyFilename(changeExtension(file, ".idx")))) { // no checks for now lyxerr[Debug::LATEX] << "Running MakeIndex." << endl; @@ -282,6 +294,7 @@ rerun |= runMakeIndex(onlyFilename(changeExtension(file, ".idx")), runparams); } + // run bibtex // if (scanres & UNDEF_CIT || scanres & RERUN || run_bibtex) if (scanres & UNDEF_CIT || run_bibtex) { @@ -350,6 +363,15 @@ rerun = runMakeIndex(onlyFilename(changeExtension(file, ".idx")), runparams); } + // I am not pretty sure if need this twice. + if (head.haschanged(onlyFilename(changeExtension(file, ".glo")))) { + // no checks for now + lyxerr[Debug::LATEX] << "Running MakeIndex." << endl; + message(_("Running MakeIndex for nomencl")); + string nomenclstr1 = " -s nomencl.ist -o " + changeExtension(file, ".gls"); + rerun |= runMakeIndexForNonIDX(onlyFilename(changeExtension(file, ".glo")), runparams, nomenclstr1); + } + // 2 // we will only run latex more if the log file asks for it. // or if the sumchange() is true. @@ -398,15 +420,34 @@ { lyxerr[Debug::LATEX] << "idx file has been made," " running makeindex on file " - << f << endl; + << f << endl; string tmp = lyxrc.index_command + " "; tmp = subst(tmp, "$$lang", runparams.document_language); tmp += quoteName(f); + lyxerr[Debug::LATEX] << "idx file has been made," + " running makeindex on file " + << tmp << endl; Systemcall one; one.startscript(Systemcall::Wait, tmp); return true; } +bool LaTeX::runMakeIndexForNonIDX(string const & f, OutputParams const & runparams, string const & params) +{ + lyxerr[Debug::LATEX] << "glo file has been made," + " running makeindex for nomencl on file " + << f << endl; + string tmp = lyxrc.index_command + " "; + tmp = subst(tmp, "$$lang", runparams.document_language); + tmp += quoteName(f); + tmp += params; + lyxerr[Debug::LATEX] << "idx file has been made," + " running makeindex NMCL on file " + << tmp << endl; + Systemcall one; + one.startscript(Systemcall::Wait, tmp); + return true; +} vector<Aux_Info> const LaTeX::scanAuxFiles(string const & file) @@ -711,7 +752,7 @@ // (2) foundfile is in the tmpdir // insert it into head if (fs::exists(onlyfile)) { - static regex unwanted("^.*\\.(aux|log|dvi|bbl|ind|glo)$"); + static regex unwanted("^.*\\.(aux|log|dvi|bbl|ind)$"); if (regex_match(onlyfile, unwanted)) { lyxerr[Debug::DEPEND] << "We don't want " @@ -760,6 +801,7 @@ // but instead only a line like this into the log: // Writing index file sample.idx static regex reg5("Writing index file ([^ ]+).*"); + static regex regnomencl("Writing glossary file ([^ ]+).*"); // If a toc should be created, MikTex does not write a line like // \openout# = `sample.toc'. // but only a line like this into the log: @@ -771,7 +813,7 @@ ifstream ifs(logfile.c_str()); while (ifs) { // Ok, the scanning of files here is not sufficient. - // Sometimes files are named by "File: xxx" only + // Sometimes files are named by "File:xxx" only // So I think we should use some regexps to find files instead. // "(\([^ ]+\)" should match the "(file " variant, note // that we can have several of these on one line. @@ -808,6 +850,8 @@ handleFoundFile(sub.str(1), head); else if (regex_match(token, sub, reg5)) handleFoundFile(sub.str(1), head); + else if (regex_match(token, sub, regnomencl)) + handleFoundFile(sub.str(1), head); else if (regex_match(token, sub, miktexTocReg)) handleFoundFile(changeExtension(file, ".toc"), head); } Index: frontends/gtk/Makefile.am =================================================================== --- frontends/gtk/Makefile.am (revision 14934) +++ frontends/gtk/Makefile.am (working copy) @@ -101,6 +101,8 @@ GTexinfo.h \ GText.C \ GText.h \ + GNomencl.C \ + GNomencl.h \ GThesaurus.C \ GThesaurus.h \ GTimeout.C \ Index: frontends/gtk/glade/Makefile.am =================================================================== --- frontends/gtk/glade/Makefile.am (revision 14934) +++ frontends/gtk/glade/Makefile.am (working copy) @@ -23,6 +23,7 @@ mathDelim.glade \ mathMatrix.glade \ mathPanel.glade \ + nomencl.glade \ note.glade \ paragraph.glade \ preferences.glade \ Index: frontends/gtk/Dialogs.C =================================================================== --- frontends/gtk/Dialogs.C (revision 14934) +++ frontends/gtk/Dialogs.C (working copy) @@ -56,6 +56,7 @@ #include "GAboutlyx.h" #include "GText.h" +#include "GNomencl.h" #include "GMathDelim.h" #include "GBibItem.h" #include "GBibtex.h" @@ -136,7 +137,7 @@ char const * const dialognames[] = { "aboutlyx", "bibitem", "bibtex", "box", "branch", "changes", "character", "citation", "document", "errorlist" , "ert", "external", "file", -"findreplace", "float", "graphics", "include", "index", "label", "log", +"findreplace", "float", "graphics", "include", "index","nomenclature", "label", "log", "mathpanel", "mathaccents", "matharrows", "mathoperators", "mathrelations", "mathgreek", "mathmisc", "mathdots", "mathbigoperators", "mathamsmisc", "mathamsarrows", "mathamsrelations", "mathamsnegatedrelations", @@ -264,6 +265,13 @@ dialog->setView(new GText(*dialog, _("Index Entry"), _("Keyword:|#K"))); dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); + } else if (name == "nomenclature") { + dialog->bc().view(new GBC(dialog->bc())); + dialog->setController(new ControlCommand(*dialog, name)); + dialog->setView(new GNomencl(*dialog, + _("Notation Entry"), + _("Keyword:"))); + dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); } else if (name == "label") { dialog->bc().view(new GBC(dialog->bc())); dialog->setController(new ControlCommand(*dialog, name)); Index: frontends/qt3/Makefile.am =================================================================== --- frontends/qt3/Makefile.am (revision 14934) +++ frontends/qt3/Makefile.am (working copy) @@ -57,6 +57,7 @@ QGraphics.C QGraphics.h \ QInclude.C QInclude.h \ QIndex.C QIndex.h \ + QNomencl.C QNomencl.h \ QLImage.C QLImage.h \ QLog.C QLog.h \ QViewSource.C QViewSource.h \ Index: frontends/qt3/Dialogs.C =================================================================== --- frontends/qt3/Dialogs.C (revision 14934) +++ frontends/qt3/Dialogs.C (working copy) @@ -66,6 +66,7 @@ #include "QGraphics.h" #include "QInclude.h" #include "QIndex.h" +#include "QNomencl.h" #include "QLog.h" #include "QViewSource.h" #include "QMath.h" @@ -104,7 +105,7 @@ char const * const dialognames[] = { "aboutlyx", "bibitem", "bibtex", "box", "branch", "changes", "character", "citation", "document", "errorlist", "ert", "external", "file", -"findreplace", "float", "graphics", "include", "index", "label", "log", "view-source", +"findreplace", "float", "graphics", "include", "index","nomenclature", "label", "log", "view-source", "mathpanel", "mathdelimiter", "mathmatrix", "note", "paragraph", "prefs", "print", "ref", "sendto", "spellchecker","tabular", "tabularcreate", @@ -219,6 +220,12 @@ _("Index Entry"), qt_("&Keyword:"))); dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); + } else if (name == "nomenclature") { + dialog->setController(new ControlCommand(*dialog, name)); + dialog->setView(new QNomencl(*dialog, + _("Notation Entry"), + qt_("&Keyword:"))); + dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); } else if (name == "label") { dialog->setController(new ControlCommand(*dialog, name)); dialog->setView(new QIndex(*dialog, Index: frontends/qt4/Makefile.dialogs =================================================================== --- frontends/qt4/Makefile.dialogs (revision 14934) +++ frontends/qt4/Makefile.dialogs (working copy) @@ -33,6 +33,7 @@ QGraphicsUi.ui \ QIncludeUi.ui \ QIndexUi.ui \ + QNomenclUi.ui \ QLogUi.ui \ QViewSourceUi.ui \ QMathUi.ui \ @@ -104,6 +105,7 @@ QGraphicsDialog.C QGraphicsDialog.h \ QIncludeDialog.C QIncludeDialog.h \ QIndexDialog.C QIndexDialog.h \ + QNomenclDialog.C QNomenclDialog.h \ QLogDialog.C QLogDialog.h \ QViewSourceDialog.C QViewSourceDialog.h \ QViewSource.C QViewSource.h \ Index: frontends/qt4/Makefile.am =================================================================== --- frontends/qt4/Makefile.am (revision 14934) +++ frontends/qt4/Makefile.am (working copy) @@ -59,6 +59,7 @@ QGraphics.C QGraphics.h \ QInclude.C QInclude.h \ QIndex.C QIndex.h \ + QNomencl.C QNomencl.h \ QLImage.C QLImage.h \ QLog.C QLog.h \ QViewSource.C QViewSource.h \ Index: frontends/qt4/Dialogs.C =================================================================== --- frontends/qt4/Dialogs.C (revision 14934) +++ frontends/qt4/Dialogs.C (working copy) @@ -61,6 +61,7 @@ #include "QGraphics.h" #include "QInclude.h" #include "QIndex.h" +#include "QNomencl.h" #include "QLog.h" #include "QViewSource.h" #include "QMath.h" @@ -100,7 +101,7 @@ char const * const dialognames[] = { "aboutlyx", "bibitem", "bibtex", "box", "branch", "changes", "character", "citation", "document", "errorlist", "ert", "external", "file", -"findreplace", "float", "graphics", "include", "index", "label", "log", "view-source", +"findreplace", "float", "graphics", "include", "index","nomenclature", "label", "log", "view-source", "mathpanel", "mathdelimiter", "mathmatrix", "note", "paragraph", "prefs", "print", "ref", "sendto", "spellchecker","tabular", "tabularcreate", @@ -216,6 +217,12 @@ _("Index Entry"), qt_("&Keyword:"))); dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); + } else if (name == "nomenclature") { + dialog->setController(new ControlCommand(*dialog, name)); + dialog->setView(new QNomencl(*dialog, + _("Notation Entry"), + qt_("&Keyword:"))); + dialog->bc().bp(new NoRepeatedApplyReadOnlyPolicy); } else if (name == "label") { dialog->setController(new ControlCommand(*dialog, name)); dialog->setView(new QIndex(*dialog, Index: text3.C =================================================================== --- text3.C (revision 14934) +++ text3.C (working copy) @@ -4,11 +4,11 @@ * Licence details can be found in the file COPYING. * * \author Asger Alstrup - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Alfredo Braunstein * \author Angus Leeming * \author John Levon - * \author André Pönitz + * \author André Pönitz * * Full author contact details are available in file CREDITS. */ @@ -1195,6 +1195,7 @@ } case LFUN_INDEX_PRINT: + case LFUN_NOMENCL_PRINT: case LFUN_TOC_INSERT: case LFUN_HFILL_INSERT: case LFUN_LINE_INSERT: @@ -1572,6 +1573,8 @@ code = InsetBase::INCLUDE_CODE; else if (cmd.argument() == "index") code = InsetBase::INDEX_CODE; + else if (cmd.argument() == "nomenclature") + code = InsetBase::NOMENCL_CODE; else if (cmd.argument() == "label") code = InsetBase::LABEL_CODE; else if (cmd.argument() == "note") @@ -1654,6 +1657,12 @@ case LFUN_INDEX_PRINT: code = InsetBase::INDEX_PRINT_CODE; break; + case LFUN_NOMENCL_INSERT: + code = InsetBase::NOMENCL_CODE; + break; + case LFUN_NOMENCL_PRINT: + code = InsetBase::NOMENCL_PRINT_CODE; + break; case LFUN_TOC_INSERT: code = InsetBase::TOC_CODE; break; Index: LaTeX.h =================================================================== --- LaTeX.h (revision 14934) +++ LaTeX.h (working copy) @@ -4,7 +4,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjnnes * \author Angus Leeming * \author Dekel Tsur * @@ -159,6 +159,9 @@ bool runMakeIndex(std::string const &, OutputParams const &); /// + bool runMakeIndexForNonIDX(std::string const & f, OutputParams const &, std::string const &); + /// + std::vector<Aux_Info> const scanAuxFiles(std::string const &); /// Index: lfuns.h =================================================================== --- lfuns.h (revision 14934) +++ lfuns.h (working copy) @@ -300,7 +300,7 @@ LFUN_ALL_CHANGES_ACCEPT, // Levon 20021016 // 225 LFUN_ALL_CHANGES_REJECT, // Levon 20021016 - LFUN_BIBITEM_INSERT, // André 14 Feb 2003 + LFUN_BIBITEM_INSERT, // Andr�14 Feb 2003 LFUN_DIALOG_SHOW, LFUN_DIALOG_SHOW_NEW_INSET, LFUN_DIALOG_UPDATE, @@ -366,7 +366,9 @@ LFUN_CLIPBOARD_PASTE, // 280 LFUN_INSET_DISSOLVE, // jspitzm 20060807 - + LFUN_NOMENCL_INSERT, // Ugras + LFUN_NOMENCL_PRINT, // Ugras + //285 LFUN_LASTACTION // end of the table };
nomencl_files.tgz
Description: GNU Zip compressed data
Index: ui/stdtoolbars.ui =================================================================== --- ui/stdtoolbars.ui (revision 14934) +++ ui/stdtoolbars.ui (working copy) @@ -76,6 +76,7 @@ Item "Insert cross-reference" "dialog-show-new-inset ref" Item "Insert citation" "dialog-show-new-inset citation" Item "Insert index entry" "index-insert" + Item "Insert notation entry" "nomencl-insert" Separator Item "Insert footnote" "footnote-insert" Item "Insert margin note" "marginalnote-insert" Index: ui/classic.ui =================================================================== --- ui/classic.ui (revision 14934) +++ ui/classic.ui (working copy) @@ -4,18 +4,18 @@ # This file is part of LyX, the document processor. # Licence details can be found in the file COPYING. -# author Lars Gullik Bjønnes +# author Lars Gullik Bjønnes # author Jean-Marc Lasgouttes # author Rob Lahaye # author Angus Leeming # author Edwin Leuven # author John Levon -# author André Pönitz +# author André Pönitz # author Allan Rae -# author Jürgen Spitzmüller +# author Jürgen Spitzmüller # author Kayvan Sylvan # author Dekel Tsur -# author Jürgen Vigna +# author Jürgen Vigna # author Herbert Voss # Full author contact details are available in file CREDITS. @@ -221,6 +221,7 @@ Item "Marginal Note|M" "marginalnote-insert" Item "Short Title" "optional-insert" Item "Index Entry|I" "index-insert" + Item "Notation Entry|I" "nomencl-insert" Item "URL...|U" "url-insert" Item "Note|N" "note-insert" Submenu "Lists & TOC|O" "insert_toc" @@ -310,6 +311,7 @@ Item "Table of Contents|C" "toc-insert" FloatListInsert Item "Index List|I" "index-print" + Item "Notation|N" "nomencl-print" Item "BibTeX Bibliography...|B" "dialog-show-new-inset bibtex" End Index: ui/stdmenus.ui =================================================================== --- ui/stdmenus.ui (revision 14934) +++ ui/stdmenus.ui (working copy) @@ -261,6 +261,7 @@ Item "Cross-reference...|r" "dialog-show-new-inset ref" Item "Label...|L" "label-insert" Item "Index Entry|d" "index-insert" + Item "Notation Entry|n" "nomencl-insert" Item "Date" "date-insert" # I'm going to kill this dumb dialog, but for now ... Separator @@ -355,6 +356,7 @@ Item "Table of Contents|C" "toc-insert" FloatListInsert Item "Index List|I" "index-print" + Item "Notation List|N" "nomencl-print" Item "BibTeX Bibliography...|B" "dialog-show-new-inset bibtex" End