]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlFloat.C
fix crash due to invalidated iterator
[lyx.git] / src / frontends / controllers / ControlFloat.C
index 79e8f1fd4c726ea77243d5a558563db3155a3847..7e66324dcd78d14fbe3c8f3695b19dcc8e13b25d 100644 (file)
@@ -5,36 +5,46 @@
  *
  * \author unknown
  *
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
  */
 
 #include <config.h>
 
-
 #include "ControlFloat.h"
-#include "BufferView.h"
-#include "buffer.h"
+#include "funcrequest.h"
+#include "insets/insetfloat.h"
+
 
+using std::string;
 
-ControlFloat::ControlFloat(LyXView & lv, Dialogs & d)
-       : ControlInset<InsetFloat, InsetFloatParams>(lv, d)
+namespace lyx {
+namespace frontend {
+
+ControlFloat::ControlFloat(Dialog & parent)
+       : Dialog::Controller(parent)
 {}
 
 
-void ControlFloat::applyParamsToInset()
+bool ControlFloat::initialiseParams(string const & data)
 {
-       inset()->placement(params().placement);
-       inset()->wide(params().wide, bufferview()->buffer()->params);
-       bufferview()->updateInset(inset(), true);
-
+       InsetFloatParams params;
+       InsetFloatMailer::string2params(data, params);
+       params_.reset(new InsetFloatParams(params));
+       return true;
 }
 
 
-void ControlFloat::applyParamsNoInset()
-{}
+void ControlFloat::clearParams()
+{
+       params_.reset();
+}
 
 
-InsetFloatParams const ControlFloat::getParams(InsetFloat const & inset)
+void ControlFloat::dispatchParams()
 {
-       return inset.params();
+       string const lfun = InsetFloatMailer::params2string(params());
+       kernel().dispatch(FuncRequest(getLfun(), lfun));
 }
+
+} // namespace frontend
+} // namespace lyx