]> git.lyx.org Git - features.git/commitdiff
move tabular creation to the factory
authorAndré Pönitz <poenitz@gmx.net>
Tue, 27 Aug 2002 15:56:32 +0000 (15:56 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Tue, 27 Aug 2002 15:56:32 +0000 (15:56 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5125 a592a061-630c-0410-9148-cb99ea01b6c8

src/factory.C
src/text3.C

index 54d08fa2ea7b80edb2c304fa63b030407df5b118..ac1368b63010f617c2b058786f91e3e5c4c7a707 100644 (file)
 #include "insets/insetoptarg.h"
 #include "insets/insetparent.h"
 #include "insets/insetref.h"
+#include "insets/insettabular.h"
 #include "insets/insettext.h"
+#include "frontends/Dialogs.h"
+#include "frontends/LyXView.h"
+
+#include <cstdio>
 
 
 Inset * createInset(FuncRequest const & cmd)
 {
-       BufferParams const & params = cmd.view()->buffer()->params;
+       BufferView * bv = cmd.view();
+       BufferParams const & params = bv->buffer()->params;
 
        switch (cmd.action) {
 
@@ -61,6 +67,16 @@ Inset * createInset(FuncRequest const & cmd)
                        lyxerr << "Non-existent float type: " << cmd.argument << endl;
                        return 0;
 
+               case LFUN_TABULAR_INSERT:
+                       if (!cmd.argument.empty()) {
+                               int r = 2;
+                               int c = 2;
+                               ::sscanf(cmd.argument.c_str(),"%d%d", &r, &c);
+                               return new InsetTabular(*bv->buffer(), r, c);
+                       }
+                       bv->owner()->getDialogs().showTabularCreate();
+                       return 0;
+
        #if 0
                case LFUN_INSET_LIST:
                        return new InsetList;
index e7ecc2867cf9327232067cb12bef2de3819c43fa..fa90c2e43ef3d6d94612e2866f0d00f8b9c9d3cf 100644 (file)
 #include "frontends/LyXView.h"
 #include "frontends/screen.h"
 #include "frontends/WorkArea.h"
-#include "frontends/Dialogs.h"
 #include "insets/insetspecialchar.h"
 #include "insets/insettext.h"
 #include "insets/insetquotes.h"
 #include "insets/insetcommand.h"
-#include "insets/insettabular.h"
 #include "undo_funcs.h"
 
 #include <ctime>
 #include <clocale>
-#include <cstdio>
 
 using std::endl;
 
@@ -1072,7 +1069,9 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd)
        case LFUN_INSET_MARGINAL:
        case LFUN_INSET_MINIPAGE:
        case LFUN_INSET_OPTARG:
-       case LFUN_INSET_WIDE_FLOAT: {
+       case LFUN_INSET_WIDE_FLOAT:
+       case LFUN_TABULAR_INSERT:
+       {
                Inset * inset = createInset(cmd);
                if (inset) {
                        bool gotsel = false;
@@ -1091,22 +1090,6 @@ Inset::RESULT LyXText::dispatch(FuncRequest const & cmd)
                break;
        }
 
-       case LFUN_TABULAR_INSERT:
-               if (cmd.argument.empty()) 
-                       bv->owner()->getDialogs().showTabularCreate();
-               else {
-                       int r = 2;
-                       int c = 2;
-                       ::sscanf(cmd.argument.c_str(),"%d%d", &r, &c);
-                       InsetTabular * inset = new InsetTabular(*bv->buffer(), r, c);
-                       bv->beforeChange(this);
-                       finishUndo();
-                       if (!bv->insertInset(inset))
-                               delete inset;
-                       else
-                               inset->edit(bv, !real_current_font.isRightToLeft());
-               }
-               break;
 
        case LFUN_QUOTE: {
                Paragraph const * par = cursor.par();