]> git.lyx.org Git - features.git/blobdiff - src/frontends/controllers/ControlDocument.cpp
Remove warnings reported with gcc 4.3:
[features.git] / src / frontends / controllers / ControlDocument.cpp
index 10d2117884af3bc09c6fb2bcd1f0060fa01fa5e3..d21f1d3aa75756dd2d1bb2bc6bfd6cbd0cb551d4 100644 (file)
@@ -4,6 +4,7 @@
  * Licence details can be found in the file COPYING.
  *
  * \author Edwin Leuven
+ * \author Richard Heck (modules)
  *
  * Full author contact details are available in file CREDITS.
  */
 #include "BufferParams.h"
 #include "BufferView.h"
 #include "buffer_funcs.h"
+#include "Color.h"
 #include "FuncRequest.h"
 #include "gettext.h"
 #include "Language.h"
 #include "LaTeXFeatures.h"
-#include "Color.h"
+#include "ModuleList.h"
 #include "OutputParams.h"
 #include "TextClassList.h"
 
@@ -33,7 +35,9 @@
 #include <sstream>
 
 using std::ostringstream;
+using std::sort;
 using std::string;
+using std::vector;
 
 namespace lyx {
 namespace frontend {
@@ -57,10 +61,11 @@ ControlDocument::~ControlDocument()
 {}
 
 
-bool ControlDocument::initialiseParams(std::string const &)
+bool ControlDocument::initialiseParams(string const &)
 {
        bp_.reset(new BufferParams);
        *bp_ = buffer().params();
+       loadModuleNames();
        return true;
 }
 
@@ -84,6 +89,37 @@ BufferId ControlDocument::id() const
 }
 
 
+vector<string> ControlDocument::getModuleNames()
+{
+       return moduleNames_;
+}
+
+
+vector<string> const & ControlDocument::getSelectedModules()
+{
+       return params().getModules();
+}
+
+
+string ControlDocument::getModuleDescription(string const & modName) const
+{
+       LyXModule const * const mod = moduleList[modName];
+       if (!mod)
+               return string("Module unavailable!");
+       return mod->description;
+}
+
+
+vector<string>
+ControlDocument::getPackageList(string const & modName) const
+{
+       LyXModule const * const mod = moduleList[modName];
+       if (!mod)
+               return vector<string>(); //empty such thing
+       return mod->packageList;
+}
+
+
 TextClass const & ControlDocument::textClass() const
 {
        return textclasslist[bp_->getBaseClass()];
@@ -143,7 +179,7 @@ void ControlDocument::setLanguage() const
        if (buffer().params().language == newL)
                return;
 
-       string const lang_name = newL->lang();
+       string const lang_name = newL->lang();
        dispatch(FuncRequest(LFUN_BUFFER_LANGUAGE, lang_name));
 }
 
@@ -154,7 +190,7 @@ void ControlDocument::saveAsDefault() const
 }
 
 
-bool const ControlDocument::isFontAvailable(std::string const & font) const
+bool ControlDocument::isFontAvailable(string const & font) const
 {
        if (font == "default" || font == "cmr"
            || font == "cmss" || font == "cmtt")
@@ -178,7 +214,7 @@ bool const ControlDocument::isFontAvailable(std::string const & font) const
 }
 
 
-bool const ControlDocument::providesOSF(std::string const & font) const
+bool ControlDocument::providesOSF(string const & font) const
 {
        if (font == "cmr")
                return isFontAvailable("eco");
@@ -189,7 +225,7 @@ bool const ControlDocument::providesOSF(std::string const & font) const
 }
 
 
-bool const ControlDocument::providesSC(std::string const & font) const
+bool ControlDocument::providesSC(string const & font) const
 {
        if (font == "palatino")
                return isFontAvailable("mathpazo");
@@ -200,12 +236,23 @@ bool const ControlDocument::providesSC(std::string const & font) const
 }
 
 
-bool const ControlDocument::providesScale(std::string const & font) const
+bool ControlDocument::providesScale(string const & font) const
 {
        return (font == "helvet" || font == "luximono"
                || font == "berasans"  || font == "beramono");
 }
 
 
+void ControlDocument::loadModuleNames ()
+{
+       moduleNames_.clear();
+       LyXModuleList::const_iterator it = moduleList.begin();
+       for (; it != moduleList.end(); ++it)
+               moduleNames_.push_back(it->name);
+       if (!moduleNames_.empty())
+               sort(moduleNames_.begin(), moduleNames_.end());
+}
+
+
 } // namespace frontend
 } // namespace lyx