]> git.lyx.org Git - features.git/commitdiff
Fixed one more "missing feature" for InsetText/Tabular.
authorJürgen Vigna <jug@sad.it>
Thu, 7 Jun 2001 14:51:20 +0000 (14:51 +0000)
committerJürgen Vigna <jug@sad.it>
Thu, 7 Jun 2001 14:51:20 +0000 (14:51 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2098 a592a061-630c-0410-9148-cb99ea01b6c8

13 files changed:
boost/boost/limits.hpp
po/POTFILES.in
src/ChangeLog
src/insets/ChangeLog
src/insets/insetcollapsable.C
src/insets/insetcollapsable.h
src/insets/insettabular.C
src/insets/insettabular.h
src/insets/insettext.C
src/insets/insettext.h
src/insets/lyxinset.h
src/paragraph.C
src/text.C

index 1d2ca13895737ef73931f42d98b3414607fd4387..132c772898a332d9da8aa78f5ff8f84e9029d2cd 100644 (file)
 
 #include <boost/config.hpp>
 
+// for now just deactivate the following as otherwise we cannot compile
+// using LString.h and our own string implementation (Jug)
+#define BOOST_NO_LIMITS 1
+
 #ifdef BOOST_NO_LIMITS
 #include <boost/detail/limits.hpp>
 #else
index ce1833e6897dd2097212e269e4d2a61cbbd608cd..04b1702eba515a409336ddf63aeb0bf7a4422ead 100644 (file)
@@ -10,8 +10,8 @@ src/CutAndPaste.C
 src/debug.C
 src/exporter.C
 src/ext_l10n.h
-src/figureForm.C
 src/figure_form.C
+src/figureForm.C
 src/FontLoader.C
 src/frontends/controllers/ButtonController.h
 src/frontends/controllers/character.C
@@ -90,67 +90,67 @@ src/frontends/qt2/paragraphdlgimpl.C
 src/frontends/qt2/tabularcreatedlgimpl.C
 src/frontends/xforms/combox.C
 src/frontends/xforms/FileDialog.C
-src/frontends/xforms/FormBibitem.C
 src/frontends/xforms/form_bibitem.C
-src/frontends/xforms/FormBibtex.C
+src/frontends/xforms/FormBibitem.C
 src/frontends/xforms/form_bibtex.C
+src/frontends/xforms/FormBibtex.C
 src/frontends/xforms/form_browser.C
-src/frontends/xforms/FormCharacter.C
 src/frontends/xforms/form_character.C
-src/frontends/xforms/FormCitation.C
+src/frontends/xforms/FormCharacter.C
 src/frontends/xforms/form_citation.C
-src/frontends/xforms/FormCopyright.C
+src/frontends/xforms/FormCitation.C
 src/frontends/xforms/form_copyright.C
-src/frontends/xforms/FormCredits.C
+src/frontends/xforms/FormCopyright.C
 src/frontends/xforms/form_credits.C
-src/frontends/xforms/FormDocument.C
+src/frontends/xforms/FormCredits.C
 src/frontends/xforms/form_document.C
-src/frontends/xforms/FormError.C
+src/frontends/xforms/FormDocument.C
 src/frontends/xforms/form_error.C
-src/frontends/xforms/FormExternal.C
+src/frontends/xforms/FormError.C
 src/frontends/xforms/form_external.C
-src/frontends/xforms/FormFiledialog.C
+src/frontends/xforms/FormExternal.C
 src/frontends/xforms/form_filedialog.C
-src/frontends/xforms/FormGraphics.C
+src/frontends/xforms/FormFiledialog.C
 src/frontends/xforms/form_graphics.C
-src/frontends/xforms/FormInclude.C
+src/frontends/xforms/FormGraphics.C
 src/frontends/xforms/form_include.C
-src/frontends/xforms/FormIndex.C
+src/frontends/xforms/FormInclude.C
 src/frontends/xforms/form_index.C
+src/frontends/xforms/FormIndex.C
 src/frontends/xforms/FormLog.C
 src/frontends/xforms/FormMathsBitmap.C
-src/frontends/xforms/FormMathsDeco.C
 src/frontends/xforms/form_maths_deco.C
-src/frontends/xforms/FormMathsDelim.C
+src/frontends/xforms/FormMathsDeco.C
 src/frontends/xforms/form_maths_delim.C
-src/frontends/xforms/FormMathsMatrix.C
+src/frontends/xforms/FormMathsDelim.C
 src/frontends/xforms/form_maths_matrix.C
-src/frontends/xforms/FormMathsPanel.C
+src/frontends/xforms/FormMathsMatrix.C
 src/frontends/xforms/form_maths_panel.C
-src/frontends/xforms/FormMathsSpace.C
+src/frontends/xforms/FormMathsPanel.C
 src/frontends/xforms/form_maths_space.C
-src/frontends/xforms/FormMinipage.C
+src/frontends/xforms/FormMathsSpace.C
 src/frontends/xforms/form_minipage.C
-src/frontends/xforms/FormParagraph.C
+src/frontends/xforms/FormMinipage.C
 src/frontends/xforms/form_paragraph.C
-src/frontends/xforms/FormPreamble.C
+src/frontends/xforms/FormParagraph.C
 src/frontends/xforms/form_preamble.C
-src/frontends/xforms/FormPreferences.C
+src/frontends/xforms/FormPreamble.C
 src/frontends/xforms/form_preferences.C
-src/frontends/xforms/FormPrint.C
+src/frontends/xforms/FormPreferences.C
 src/frontends/xforms/form_print.C
-src/frontends/xforms/FormRef.C
+src/frontends/xforms/FormPrint.C
 src/frontends/xforms/form_ref.C
-src/frontends/xforms/FormSearch.C
+src/frontends/xforms/FormRef.C
 src/frontends/xforms/form_search.C
-src/frontends/xforms/FormTabular.C
+src/frontends/xforms/FormSearch.C
 src/frontends/xforms/form_tabular.C
-src/frontends/xforms/FormTabularCreate.C
+src/frontends/xforms/FormTabular.C
 src/frontends/xforms/form_tabular_create.C
-src/frontends/xforms/FormToc.C
+src/frontends/xforms/FormTabularCreate.C
 src/frontends/xforms/form_toc.C
-src/frontends/xforms/FormUrl.C
+src/frontends/xforms/FormToc.C
 src/frontends/xforms/form_url.C
+src/frontends/xforms/FormUrl.C
 src/frontends/xforms/FormVCLog.C
 src/frontends/xforms/input_validators.C
 src/frontends/xforms/Menubar_pimpl.C
index 6c1e53d73d826deead2a95219d66cfb08fceb4e9..116c3b65b899c2f7187b5757c938ea1230cb5536 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-07  Juergen Vigna  <jug@sad.it>
+
+       * text.C (BreakAgain): subst spaces with tabs.
+
+       * paragraph.C (deleteInsetsLyXText): set recursive on deleteLyXText.
+       (resizeInsetsLyXText): set force on resizeLyXText.
+
 2001-06-05  Jean-Marc Lasgouttes  <Jean-Marc.Lasgouttes@inria.fr>
 
        * gettext.h (gettext_init): 
index 945d21e9375e23e085127b01d002422ae5942af7..588885633834eb7afed772f1d2cd0a62304ab982 100644 (file)
@@ -1,3 +1,11 @@
+2001-06-07  Juergen Vigna  <jug@sad.it>
+
+       * insettext.C (resizeLyXText): honor the new force flag.
+
+       * lyxinset.h: add 'bool force' parameter to resizeLyXText(...)
+
+       * insettabular.C (deleteLyXText): new function
+
 2001-06-02  John Levon  <moz@compsoc.man.ac.uk>
 
        * insettheorem.C:
index 2e9aff3ceffbcd9066eaf398de3d3542fd3a3d97..66abb443263459572c6b9928f7e489cbe15c1e8b 100644 (file)
@@ -468,9 +468,9 @@ void InsetCollapsable::deleteLyXText(BufferView * bv, bool recursive) const
 }
 
 
-void InsetCollapsable::resizeLyXText(BufferView * bv) const
+void InsetCollapsable::resizeLyXText(BufferView * bv, bool force) const
 {
-       inset.resizeLyXText(bv);
+       inset.resizeLyXText(bv, force);
        LyXFont font(LyXFont::ALL_SANE);
        oldWidth = width(bv, font);
 }
index 15d7b091cbd4bed9ae075d9b0652f02f39dcb9cd..9b0e65425d4ccd03579b29defd362221ff0ff23b 100644 (file)
@@ -124,7 +124,7 @@ public:
        ///
        void deleteLyXText(BufferView *, bool recursive=true) const;
        ///
-       void resizeLyXText(BufferView *) const;
+       void resizeLyXText(BufferView *, bool force = false) const;
        ///
        std::vector<string> const getLabelList() const;
        ///
index 39650ad2b60bbe641d37f7ccd20d0d25029df599..e2b8088fa17107ea434e8b72bfd76c4c4ee09074 100644 (file)
@@ -1910,9 +1910,20 @@ int InsetTabular::getMaxWidth(BufferView * bv,
        return w;
 }
 
+void InsetTabular::deleteLyXText(BufferView * bv, bool recursive) const
+{
+       resizeLyXText(bv, recursive);
+}
 
-void InsetTabular::resizeLyXText(BufferView *) const
+void InsetTabular::resizeLyXText(BufferView * bv, bool force) const
 {
+       if (force) {
+               for(int i=0; i < tabular->rows(); ++i) {
+                       for(int j=0; j < tabular->columns(); ++j) {
+                               tabular->GetCellInset(i, j)->resizeLyXText(bv, true);
+                       }
+               }
+       }
        need_update = FULL;
 }
 
index 0670ec7616489cbb5230b5bb9b4f01fa4408f3e6..1b2ed5ab4fac01e8758d8a67fb8e9fb9ad1c2c9f 100644 (file)
@@ -170,7 +170,9 @@ public:
        LyXText * getLyXText(BufferView const *,
                             bool const recursive = false) const;
        ///
-       void resizeLyXText(BufferView *) const;
+       void deleteLyXText(BufferView *, bool recursive = true) const;
+       ///
+       void resizeLyXText(BufferView *, bool force = false) const;
        ///
        void OpenLayoutDialog(BufferView *) const;
        ///
index 9367aa62ee9601b66e8981d94c23b2246244d88d..da65680a78008105f34bbba424f1ae907ac7a6ab 100644 (file)
@@ -422,6 +422,12 @@ void InsetText::clearFrame(Painter & pain, bool cleared) const
 
 void InsetText::update(BufferView * bv, LyXFont const & font, bool reinit)
 {
+#if 0
+       int ww = TEXT(bv)->width;
+       TEXT(bv)->BreakParagraph(bv);
+       if (ww != TEXT(bv)->width)
+               reinit = true;
+#endif
        if (reinit) {
                need_update |= INIT;
                resizeLyXText(bv);
@@ -1629,11 +1635,12 @@ void InsetText::deleteLyXText(BufferView * bv, bool recursive) const
 }
 
 
-void InsetText::resizeLyXText(BufferView * bv) const
+void InsetText::resizeLyXText(BufferView * bv, bool force) const
 {
        if (!par->next() && !par->size()) // no data, resize not neccessary!
                return;
-       if (getMaxWidth(bv, this) < 0) // one endless line, no resize necessary
+       // one endless line, resize normally not necessary
+       if (!force && getMaxWidth(bv, this) < 0)
                return;
        if ((cache.find(bv) == cache.end()) || !cache[bv])
                return;
@@ -1665,7 +1672,7 @@ void InsetText::resizeLyXText(BufferView * bv) const
                selection = TEXT(bv)->selection.set();
                mark_set = TEXT(bv)->selection.mark();
        }
-       deleteLyXText(bv, (the_locking_inset == 0));
+       deleteLyXText(bv, (the_locking_inset == 0) || force);
 
        if (lpar) {
                TEXT(bv)->selection.set(true);
index faa5cef34fe1451990f808d2104812764a066c85..abc0cf3aac08f7d7463c50819d33e5ed53f45ed2 100644 (file)
@@ -175,7 +175,7 @@ public:
        ///
        void deleteLyXText(BufferView *, bool recursive=true) const;
        ///
-       void resizeLyXText(BufferView *) const;
+       void resizeLyXText(BufferView *, bool force=false) const;
        ///
        bool ShowInsetDialog(BufferView *) const;
        ///
index ebe6c1cd7d423ff9f581915ed1ed702c82c76c3d..2b39b83c651bdcb6f901a95ba75a1cef34242fe7 100644 (file)
@@ -228,7 +228,7 @@ public:
        ///
        virtual void deleteLyXText(BufferView *, bool = true) const {}
        ///
-       virtual void resizeLyXText(BufferView *) const {}
+       virtual void resizeLyXText(BufferView *, bool force = false) const {}
        /// returns the actuall scroll-value
        virtual int scroll(bool recursive=true) const {
                if (!recursive || !owner_)
index 1f05276cdee3be5aaceb3d368bd61c6bd970dd70..3af82b6910fb2d9198e1263e054b680ccd13961b 100644 (file)
@@ -2361,7 +2361,7 @@ void LyXParagraph::deleteInsetsLyXText(BufferView * bv)
                if ((*cit).inset) {
                        if ((*cit).inset->IsTextInset()) {
                                static_cast<UpdatableInset *>
-                                       ((*cit).inset)->deleteLyXText(bv);
+                                       ((*cit).inset)->deleteLyXText(bv, true);
                        }
                }
        }
@@ -2376,7 +2376,7 @@ void LyXParagraph::resizeInsetsLyXText(BufferView * bv)
                if ((*cit).inset) {
                        if ((*cit).inset->IsTextInset()) {
                                static_cast<UpdatableInset *>
-                                       ((*cit).inset)->resizeLyXText(bv);
+                                       ((*cit).inset)->resizeLyXText(bv, true);
                        }
                }
        }
index 09a410947bae7465cd9dbf869b65b5317be3e2b1..579304c719b81cf03edb2a39f958ef3e8a67251b 100644 (file)
@@ -1501,47 +1501,47 @@ void LyXText::AppendParagraph(BufferView * bview, Row * row) const
 
 void LyXText::BreakAgain(BufferView * bview, Row * row) const
 {
-   bool not_ready = true;
+       bool not_ready = true;
    
-   do  {
-          // get the next breakpoint
-       LyXParagraph::size_type z = NextBreakPoint(bview, row, workWidth(bview));
-      Row * tmprow = row;
+       do  {
+               // get the next breakpoint
+               LyXParagraph::size_type z = NextBreakPoint(bview, row, workWidth(bview));
+               Row * tmprow = row;
 
-      if (z < row->par()->size()) {
-        if (!row->next() || (row->next() && row->next()->par() != row->par())) {
-                // insert a new row
-           ++z;
-           InsertRow(row, row->par(), z);
-           row = row->next();
-           row->height(0);
-        } else  {
-           row = row->next();
-           ++z;
-           if (row->pos() == z)
-                   not_ready = false;     // the rest will not change
-           else {
-              row->pos(z);
-           }
-        }
-      } else {
-        /* if there are some rows too much, delete them */
-        /* only if you broke the whole paragraph! */ 
-        Row * tmprow2 = row;
-        while (tmprow2->next() && tmprow2->next()->par() == row->par()) {
-           tmprow2 = tmprow2->next();
-        }
-        while (tmprow2 != row) {
-           tmprow2 = tmprow2->previous();
-           RemoveRow(tmprow2->next());
-        }
-        not_ready = false;
-      }
-       
-      /* set the dimensions of the row */ 
-      tmprow->fill(Fill(bview, tmprow, workWidth(bview)));
-      SetHeightOfRow(bview, tmprow);
-   } while (not_ready);
+               if (z < row->par()->size()) {
+                       if (!row->next() || (row->next() && row->next()->par() != row->par())) {
+                               // insert a new row
+                               ++z;
+                               InsertRow(row, row->par(), z);
+                               row = row->next();
+                               row->height(0);
+                       } else  {
+                               row = row->next();
+                               ++z;
+                               if (row->pos() == z)
+                                       not_ready = false;     // the rest will not change
+                               else {
+                                       row->pos(z);
+                               }
+                       }
+               } else {
+                       /* if there are some rows too much, delete them */
+                       /* only if you broke the whole paragraph! */ 
+                       Row * tmprow2 = row;
+                       while (tmprow2->next() && tmprow2->next()->par() == row->par()) {
+                               tmprow2 = tmprow2->next();
+                       }
+                       while (tmprow2 != row) {
+                               tmprow2 = tmprow2->previous();
+                               RemoveRow(tmprow2->next());
+                       }
+                       not_ready = false;
+               }
+               
+               /* set the dimensions of the row */ 
+               tmprow->fill(Fill(bview, tmprow, workWidth(bview)));
+               SetHeightOfRow(bview, tmprow);
+       } while (not_ready);
 }