]> git.lyx.org Git - lyx.git/blobdiff - src/paragraph.C
more guii moving around.
[lyx.git] / src / paragraph.C
index 055f0d435982d8b0aa3515d5475e76aa1b3f6e18..e52de16bcc07183b4c44f1acbe4a073f4fa3223b 100644 (file)
@@ -231,7 +231,11 @@ void Paragraph::writeFile(Buffer const * buf, ostream & os,
        // Noindent?
        if (params().noindent())
                os << "\\noindent ";
-
+       
+       // Do we have a manual left indent?
+       if (!params().leftIndent().zero())
+               os << "\\leftindent " << params().leftIndent().asString() << " ";
+       
        // Alignment?
        if (params().align() != LYX_ALIGN_LAYOUT) {
                int h = 0;
@@ -389,6 +393,9 @@ void Paragraph::validate(LaTeXFeatures & features) const
                }
        }
 
+       if (!params().leftIndent().zero())
+               features.require("ParagraphLeftIndent");
+
        // then the insets
        LyXLayout const & lout = textclasslist[bparams.textclass][layout()];
 
@@ -884,7 +891,8 @@ void Paragraph::breakParagraph(BufferParams const & bparams,
                tmp->setLabelWidthString(params().labelWidthString());
        }
 
-       bool isempty = textclasslist[bparams.textclass][layout()].keepempty;
+       bool isempty = (textclasslist[bparams.textclass][layout()].keepempty &&
+                       !size());
        if (!isempty && (size() > pos || !size() || flag == 2)) {
                tmp->layout(layout());
                tmp->params().align(params().align());
@@ -1843,6 +1851,14 @@ Paragraph * Paragraph::TeXEnvironment(Buffer const * buf,
                        texrow.newline();
                }
        }
+       
+       bool leftindent_open = false;
+       if (!params().leftIndent().zero()) {
+               os << "\\begin{LyXParagraphLeftIndent}{" <<
+                       params().leftIndent().asLatexString() << "}\n";
+               texrow.newline();
+               leftindent_open = true;
+       }
 
        if (style.isEnvironment()) {
                if (style.latextype == LATEX_LIST_ENVIRONMENT) {
@@ -1888,13 +1904,19 @@ Paragraph * Paragraph::TeXEnvironment(Buffer const * buf,
                }
        } while (par
                 && par->layout() == layout()
-                && par->params().depth() == params().depth());
+                && par->params().depth() == params().depth()
+                && par->params().leftIndent() == params().leftIndent());
 
        if (style.isEnvironment()) {
                os << "\\end{" << style.latexname() << "}\n";
                texrow.newline();
        }
 
+       if (leftindent_open) {
+               os << "\\end{LyXParagraphLeftIndent}\n";
+               texrow.newline();
+       }
+       
        lyxerr[Debug::LATEX] << "TeXEnvironment...done " << par << endl;
        return par;  // ale970302
 }
@@ -1984,7 +2006,9 @@ Paragraph::getParLanguage(BufferParams const & bparams) const
 bool Paragraph::isRightToLeftPar(BufferParams const & bparams) const
 {
        return lyxrc.rtl_support
-               && getParLanguage(bparams)->RightToLeft();
+               && getParLanguage(bparams)->RightToLeft()
+               && !(inInset() && inInset()->owner() &&
+                    inInset()->owner()->lyxCode() == Inset::ERT_CODE);
 }