]> git.lyx.org Git - lyx.git/commitdiff
A more general way of setting paragraphs in an inset to standard
authorMartin Vermeer <martin.vermeer@hut.fi>
Thu, 30 Mar 2006 12:43:32 +0000 (12:43 +0000)
committerMartin Vermeer <martin.vermeer@hut.fi>
Thu, 30 Mar 2006 12:43:32 +0000 (12:43 +0000)
layout upon paste.

* insettext.[Ch]: add forceParagraphsToDefault method

* insettabular.C
(InsetTabular::doDispatch): use it for cell

* insetbox.C
(InsetBox::doDispatch): use it

* insetert.C
(InsetERT::doDispatch): use it

* insetcharstyle.C
(InsetCharStyle::doDispatch): use it

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13535 a592a061-630c-0410-9148-cb99ea01b6c8

src/insets/insetbox.C
src/insets/insetcharstyle.C
src/insets/insetert.C
src/insets/insettabular.C
src/insets/insettext.C
src/insets/insettext.h

index 9440fc5283d330a3f09aef35a2dcbdbc45f5416b..602b00e9bcade8b824294bd6dbc379832faafc70 100644 (file)
@@ -198,6 +198,12 @@ void InsetBox::doDispatch(LCursor & cur, FuncRequest & cmd)
                }
                InsetCollapsable::doDispatch(cur, cmd);
                break;
+       case LFUN_PASTE:
+       case LFUN_PASTESELECTION:
+               InsetCollapsable::doDispatch(cur, cmd);
+               if (!params_.inner_box)
+                       forceParagraphsToDefault(cur);
+               break;
 
        default:
                InsetCollapsable::doDispatch(cur, cmd);
index ba4a13c208448007ebf85fb077e27e364bf720da..30f8e605e46b201be8f3bf9b49aeda3235355ecd 100644 (file)
@@ -238,13 +238,7 @@ void InsetCharStyle::doDispatch(LCursor & cur, FuncRequest & cmd)
        case LFUN_PASTE:
        case LFUN_PASTESELECTION: {
                InsetCollapsable::doDispatch(cur, cmd);
-               BufferParams const & bp = cur.buffer().params();
-               LyXLayout_ptr const layout =
-                       bp.getLyXTextClass().defaultLayout();
-               ParagraphList::iterator const end = paragraphs().end();
-               for (ParagraphList::iterator par = paragraphs().begin(); 
-                               par != end; ++par)
-                       par->layout(layout);
+               forceParagraphsToDefault(cur);
                break;
                }
                default:
index fa7533093bc6f656b391af6aa63186f159f414d6..ec2afaa3b1c584b6593b3254d1cc9262a8f36edd 100644 (file)
@@ -244,6 +244,7 @@ void InsetERT::doDispatch(LCursor & cur, FuncRequest & cmd)
 
                // Since we can only store plain text, we must reset all
                // attributes.
+               forceParagraphsToDefault(cur);
                // FIXME: Change only the pasted paragraphs
 
                BufferParams const & bp = cur.buffer().params();
@@ -255,7 +256,6 @@ void InsetERT::doDispatch(LCursor & cur, FuncRequest & cmd)
                ParagraphList::iterator const end = paragraphs().end();
                for (ParagraphList::iterator par = paragraphs().begin();
                     par != end; ++par) {
-                       par->layout(layout);
                        // in case par had a manual label
                        par->setBeginOfBody();
                        pos_type const siz = par->size();
index ed94b67f96d520dda27b138b3d144be4c3d31e11..45f3321a4a5b7c036665298b3dcadd5c8f50dd46 100644 (file)
@@ -745,6 +745,9 @@ void InsetTabular::doDispatch(LCursor & cur, FuncRequest & cmd)
                        break;
                }
                cell(cur.idx())->dispatch(cur, cmd);
+               // Reset pasted paragraphs:
+               if (tabular.getPWidth(cur.idx()).zero())
+                       cell(cur.idx())->forceParagraphsToDefault(cur);
                break;
 
        case LFUN_EMPH:
index 6a45246adea85db7c54807d800e326d5c90d3201..2d6730930c74577a008c16f291d4b12d7ddada37 100644 (file)
@@ -264,6 +264,18 @@ bool const InsetText::Tall() const
 }
 
 
+void InsetText::forceParagraphsToDefault(LCursor & cur)
+{
+       BufferParams const & bp = cur.buffer().params();
+       LyXLayout_ptr const layout =
+               bp.getLyXTextClass().defaultLayout();
+       ParagraphList::iterator const end = paragraphs().end();
+       for (ParagraphList::iterator par = paragraphs().begin(); 
+                       par != end; ++par)
+               par->layout(layout);
+}
+
+
 void InsetText::doDispatch(LCursor & cur, FuncRequest & cmd)
 {
        lyxerr[Debug::DEBUG] << BOOST_CURRENT_FUNCTION
index a47c1c0988e2b9dafef31ae0df0e12c7590e1f1c..c98102b08bfc9ae7fa43e739e13017f77d698883 100644 (file)
@@ -143,6 +143,8 @@ public:
        bool & Wide() const { return wide_inset_; }
        ///
        bool const Tall() const;
+       ///
+       void forceParagraphsToDefault(LCursor & cur);
 
 protected:
        ///