]> git.lyx.org Git - features.git/blobdiff - src/paragraph.C
Replace LString.h with support/std_string.h,
[features.git] / src / paragraph.C
index 5579d6deeea234e75227382628a16d643d69cfa7..0a6c8bd34d0fdf917434156efd20dbea781e4e87 100644 (file)
@@ -1,12 +1,19 @@
-/* This file is part of
- * ======================================================
+/**
+ * \file paragraph.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *           LyX, The Document Processor
+ * \author Asger Alstrup
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ * \author Angus Leeming
+ * \author John Levon
+ * \author André Pönitz
+ * \author Dekel Tsur
+ * \author Jürgen Vigna
  *
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2001 The LyX Team.
- *
- * ====================================================== */
+ * Full author contact details are available in file CREDITS.
+ */
 
 #include <config.h>
 
 #include "paragraph_pimpl.h"
 
 #include "buffer.h"
-#include "bufferparams.h"
-#include "BufferView.h"
-#include "changes.h"
 #include "encoding.h"
 #include "debug.h"
 #include "gettext.h"
 #include "language.h"
 #include "latexrunparams.h"
-#include "layout.h"
-#include "lyxrc.h"
-#include "paragraph_funcs.h"
-#include "ParameterStruct.h"
-#include "texrow.h"
 
-#include "Lsstream.h"
+#include "support/std_sstream.h"
 
 #include "insets/insetbibitem.h"
 #include "insets/insetoptarg.h"
-#include "insets/insetenv.h"
 
-#include "support/filetools.h"
 #include "support/lstrings.h"
-#include "support/lyxmanip.h"
-#include "support/FileInfo.h"
 #include "support/LAssert.h"
 #include "support/textutils.h"
 
-#include <algorithm>
-#include <fstream>
-#include <csignal>
-#include <ctime>
 
 using namespace lyx::support;
 
@@ -58,19 +49,8 @@ using std::upper_bound;
 using lyx::pos_type;
 
 
-// this is a minibuffer
-
-namespace {
-
-char minibuffer_char;
-LyXFont minibuffer_font;
-InsetOld * minibuffer_inset;
-
-} // namespace anon
-
-
 Paragraph::Paragraph()
-       : pimpl_(new Paragraph::Pimpl(this))
+       : y(0), pimpl_(new Paragraph::Pimpl(this))
 {
        enumdepth = 0;
        itemdepth = 0;
@@ -79,7 +59,7 @@ Paragraph::Paragraph()
 
 
 Paragraph::Paragraph(Paragraph const & lp)
-       : pimpl_(new Paragraph::Pimpl(*lp.pimpl_, this))
+       : y(0), pimpl_(new Paragraph::Pimpl(*lp.pimpl_, this))
 {
        enumdepth = 0;
        itemdepth = 0;
@@ -94,8 +74,6 @@ Paragraph::Paragraph(Paragraph const & lp)
        for (; it != end; ++it) {
                // currently we hold Inset*, not InsetBase*
                it->inset = static_cast<InsetOld*>(it->inset->clone().release());
-               // tell the new inset who is the boss now
-               it->inset->parOwner(this);
        }
 }
 
@@ -105,7 +83,9 @@ void Paragraph::operator=(Paragraph const & lp)
        // needed as we will destroy the pimpl_ before copying it
        if (&lp != this)
                return;
-       lyxerr << "Paragraph::operator=()\n";
+
+       lyxerr << "Paragraph::operator=()" << endl;
+
        delete pimpl_;
        pimpl_ = new Pimpl(*lp.pimpl_, this);
 
@@ -121,8 +101,6 @@ void Paragraph::operator=(Paragraph const & lp)
        InsetList::iterator end = insetlist.end();
        for (; it != end; ++it) {
                it->inset = static_cast<InsetOld*>(it->inset->clone().release());
-               // tell the new inset who is the boss now
-               it->inset->parOwner(this);
        }
 }
 
@@ -136,7 +114,7 @@ Paragraph::~Paragraph()
 }
 
 
-void Paragraph::write(Buffer const * buf, ostream & os,
+void Paragraph::write(Buffer const & buf, ostream & os,
                          BufferParams const & bparams,
                          depth_type & dth) const
 {
@@ -251,63 +229,6 @@ void Paragraph::validate(LaTeXFeatures & features) const
 }
 
 
-// First few functions needed for cut and paste and paragraph breaking.
-void Paragraph::copyIntoMinibuffer(Buffer const & buffer, pos_type pos) const
-{
-       BufferParams bparams = buffer.params;
-
-       minibuffer_char = getChar(pos);
-       minibuffer_font = getFontSettings(bparams, pos);
-       minibuffer_inset = 0;
-       if (minibuffer_char == Paragraph::META_INSET) {
-               if (getInset(pos)) {
-                       minibuffer_inset = static_cast<InsetOld *>(getInset(pos)->clone().release());
-               } else {
-                       minibuffer_inset = 0;
-                       minibuffer_char = ' ';
-                       // This reflects what GetInset() does (ARRae)
-               }
-       }
-}
-
-
-void Paragraph::cutIntoMinibuffer(BufferParams const & bparams, pos_type pos)
-{
-       minibuffer_char = getChar(pos);
-       minibuffer_font = getFontSettings(bparams, pos);
-       minibuffer_inset = 0;
-       if (minibuffer_char == Paragraph::META_INSET) {
-               if (getInset(pos)) {
-                       // the inset is not in a paragraph anymore
-                       minibuffer_inset = insetlist.release(pos);
-                       minibuffer_inset->parOwner(0);
-               } else {
-                       minibuffer_inset = 0;
-                       minibuffer_char = ' ';
-                       // This reflects what GetInset() does (ARRae)
-               }
-       }
-}
-
-
-bool Paragraph::insertFromMinibuffer(pos_type pos)
-{
-       if (minibuffer_char == Paragraph::META_INSET) {
-               if (!insetAllowed(minibuffer_inset->lyxCode()))
-                       return false;
-               insertInset(pos, minibuffer_inset, minibuffer_font);
-       } else {
-               LyXFont f = minibuffer_font;
-               if (!checkInsertChar(f))
-                       return false;
-               insertChar(pos, minibuffer_char, f);
-       }
-       return true;
-}
-
-// end of minibuffer
-
-
 void Paragraph::eraseIntern(lyx::pos_type pos)
 {
        pimpl_->eraseIntern(pos);
@@ -353,7 +274,8 @@ void Paragraph::insertInset(pos_type pos, InsetOld * inset)
 }
 
 
-void Paragraph::insertInset(pos_type pos, InsetOld * inset, LyXFont const & font, Change change)
+void Paragraph::insertInset(pos_type pos, InsetOld * inset,
+       LyXFont const & font, Change change)
 {
        pimpl_->insertInset(pos, inset, font, change);
 }
@@ -404,8 +326,7 @@ LyXFont const Paragraph::getFontSettings(BufferParams const & bparams,
 }
 
 
-lyx::pos_type
-Paragraph::getEndPosOfFontSpan(lyx::pos_type pos) const
+lyx::pos_type Paragraph::getEndPosOfFontSpan(lyx::pos_type pos) const
 {
        Assert(pos <= size());
 
@@ -416,7 +337,8 @@ Paragraph::getEndPosOfFontSpan(lyx::pos_type pos) const
                        return cit->pos();
 
        // This should not happen, but if so, we take no chances.
-       lyxerr << "Pararaph::getEndPosOfFontSpan: This should not happen!\n";
+       //lyxerr << "Paragraph::getEndPosOfFontSpan: This should not happen!"
+       //      << endl;
        return pos;
 }
 
@@ -880,7 +802,7 @@ int Paragraph::endTeXParParams(BufferParams const & bparams,
 
 
 // This one spits out the text of the paragraph
-bool Paragraph::simpleTeXOnePar(Buffer const * buf,
+bool Paragraph::simpleTeXOnePar(Buffer const & buf,
                                BufferParams const & bparams,
                                LyXFont const & outerfont,
                                ostream & os, TexRow & texrow,
@@ -1185,7 +1107,7 @@ bool Paragraph::isMultiLingual(BufferParams const & bparams)
        for (; cit != end; ++cit)
                if (cit->font().language() != ignore_language &&
                    cit->font().language() != latex_language &&
-                       cit->font().language() != doc_language)
+                   cit->font().language() != doc_language)
                        return true;
        return false;
 }
@@ -1193,7 +1115,7 @@ bool Paragraph::isMultiLingual(BufferParams const & bparams)
 
 // Convert the paragraph to a string.
 // Used for building the table of contents
-string const Paragraph::asString(Buffer const * buffer, bool label) const
+string const Paragraph::asString(Buffer const & buffer, bool label) const
 {
 #if 0
        string s;
@@ -1221,7 +1143,7 @@ string const Paragraph::asString(Buffer const * buffer, bool label) const
 }
 
 
-string const Paragraph::asString(Buffer const * buffer,
+string const Paragraph::asString(Buffer const & buffer,
                                 pos_type beg, pos_type end, bool label) const
 {
        ostringstream os;
@@ -1230,7 +1152,7 @@ string const Paragraph::asString(Buffer const * buffer,
                os << params().labelString() << ' ';
 
        for (pos_type i = beg; i < end; ++i) {
-               value_type const c = getUChar(buffer->params, i);
+               value_type const c = getUChar(buffer.params, i);
                if (IsPrintable(c))
                        os << c;
                else if (c == META_INSET)
@@ -1258,12 +1180,6 @@ void Paragraph::deleteInsetsLyXText(BufferView * bv)
 }
 
 
-void Paragraph::resizeInsetsLyXText(BufferView * bv)
-{
-       insetlist.resizeInsetsLyXText(bv);
-}
-
-
 void Paragraph::setContentsFromPar(Paragraph const & par)
 {
        pimpl_->setContentsFromPar(par);
@@ -1421,9 +1337,9 @@ bool Paragraph::isFreeSpacing() const
                return true;
 
        // for now we just need this, later should we need this in some
-       // other way we can always add a function to InsetOld::() too.
+       // other way we can always add a function to InsetOld too.
        if (pimpl_->inset_owner && pimpl_->inset_owner->owner())
-               return (pimpl_->inset_owner->owner()->lyxCode() == InsetOld::ERT_CODE);
+               return pimpl_->inset_owner->owner()->lyxCode() == InsetOld::ERT_CODE;
        return false;
 }
 
@@ -1433,13 +1349,6 @@ bool Paragraph::allowEmpty() const
        if (layout()->keepempty)
                return true;
        if (pimpl_->inset_owner && pimpl_->inset_owner->owner())
-               return (pimpl_->inset_owner->owner()->lyxCode() == InsetOld::ERT_CODE);
+               return pimpl_->inset_owner->owner()->lyxCode() == InsetOld::ERT_CODE;
        return false;
 }
-
-
-bool operator==(Paragraph const & lhs, Paragraph const & rhs)
-{
-#warning FIXME this implementatoin must be completely wrong...
-       return &lhs == &rhs;
-}