]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetcite.C
prevent crash when inserting minipage in table cell,
[lyx.git] / src / insets / insetcite.C
index 8bd95bfdbea5f73c6cad53c8bd0767386521126c..e7437b480436623e10b3a651da53316a9ba576fe 100644 (file)
@@ -12,6 +12,7 @@
 #include <config.h>
 
 #include "insetcite.h"
+#include "funcrequest.h"
 #include "buffer.h"
 #include "BufferView.h"
 #include "LaTeXFeatures.h"
@@ -22,6 +23,8 @@
 
 #include <map>
 
+using namespace lyx::support;
+
 using std::ostream;
 using std::vector;
 using std::map;
@@ -220,11 +223,16 @@ string const getBasicLabel(string const & keyList, string const & after)
 } // anon namespace
 
 
-InsetCitation::InsetCitation(InsetCommandParams const & p, bool)
+InsetCitation::InsetCitation(InsetCommandParams const & p)
        : InsetCommand(p)
 {}
 
 
+// InsetCitation::InsetCitation(InsetCommandParams const & p, bool)
+//     : InsetCommand(p, false)
+// {}
+
+
 InsetCitation::~InsetCitation()
 {
        InsetCommandMailer mailer("citation", *this);
@@ -317,33 +325,28 @@ void InsetCitation::setLoadingBuffer(Buffer const * buffer, bool state) const
 }
 
 
-void InsetCitation::edit(BufferView * bv, int, int, mouse_button::state)
+dispatch_result InsetCitation::localDispatch(FuncRequest const & cmd)
 {
-       // A call to edit() indicates that we're no longer loading the
-       // buffer but doing some real work.
-       setLoadingBuffer(bv->buffer(), false);
-
-       InsetCommandMailer mailer("citation", *this);
-       mailer.showDialog(bv);
-}
-
-
-void InsetCitation::edit(BufferView * bv, bool)
-{
-       edit(bv, 0, 0, mouse_button::none);
+       switch (cmd.action) {
+       case LFUN_INSET_EDIT:
+               // A call to edit indicates that we're no longer loading the
+               // buffer but doing some real work.
+               setLoadingBuffer(cmd.view()->buffer(), false);
+               InsetCommandMailer("citation", *this).showDialog(cmd.view());
+               return DISPATCHED;
+
+       default:
+               return InsetCommand::localDispatch(cmd);
+       }
 }
 
 
 int InsetCitation::ascii(Buffer const * buffer, ostream & os, int) const
 {
-       string label;
-
        if (cache.params == params() && cache.style == getStyle(buffer))
-               label = cache.generated_label;
+               os << cache.generated_label;
        else
-               label = generateLabel(buffer);
-
-       os << label;
+               os << generateLabel(buffer);
        return 0;
 }
 
@@ -353,7 +356,7 @@ int InsetCitation::ascii(Buffer const * buffer, ostream & os, int) const
 // citations and then changes his mind, turning natbib support off. The output
 // should revert to \cite[]{}
 int InsetCitation::latex(Buffer const * buffer, ostream & os,
-                       bool /*fragile*/, bool/*fs*/) const
+                        LatexRunParams const &) const
 {
        os << "\\";
        if (buffer->params.use_natbib)