mathed compilation fix

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2971 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Jean-Marc Lasgouttes 2001-11-07 10:25:05 +00:00
parent 0f23028f4b
commit f73a9f37f4
9 changed files with 143 additions and 86 deletions

View File

@ -1,3 +1,9 @@
2001-11-06 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* buffer.C (setPaperStuff): removed from here...
* bufferparams.C (setPaperStuff): ... and moved there.
2001-11-03 John Levon <moz@compsoc.man.ac.uk> 2001-11-03 John Levon <moz@compsoc.man.ac.uk>
* minibuffer.h: * minibuffer.h:

View File

@ -1553,7 +1553,7 @@ bool Buffer::readFile(LyXLex & lex, Paragraph * par)
} }
} }
bool the_end = readLyXformat2(lex, par); bool the_end = readLyXformat2(lex, par);
setPaperStuff(); params.setPaperStuff();
// the_end was added in 213 // the_end was added in 213
if (file_format < 213) if (file_format < 213)
the_end = true; the_end = true;
@ -3475,33 +3475,6 @@ void Buffer::validate(LaTeXFeatures & features) const
} }
void Buffer::setPaperStuff()
{
params.papersize = BufferParams::PAPER_DEFAULT;
char const c1 = params.paperpackage;
if (c1 == BufferParams::PACKAGE_NONE) {
char const c2 = params.papersize2;
if (c2 == BufferParams::VM_PAPER_USLETTER)
params.papersize = BufferParams::PAPER_USLETTER;
else if (c2 == BufferParams::VM_PAPER_USLEGAL)
params.papersize = BufferParams::PAPER_LEGALPAPER;
else if (c2 == BufferParams::VM_PAPER_USEXECUTIVE)
params.papersize = BufferParams::PAPER_EXECUTIVEPAPER;
else if (c2 == BufferParams::VM_PAPER_A3)
params.papersize = BufferParams::PAPER_A3PAPER;
else if (c2 == BufferParams::VM_PAPER_A4)
params.papersize = BufferParams::PAPER_A4PAPER;
else if (c2 == BufferParams::VM_PAPER_A5)
params.papersize = BufferParams::PAPER_A5PAPER;
else if ((c2 == BufferParams::VM_PAPER_B3) || (c2 == BufferParams::VM_PAPER_B4) ||
(c2 == BufferParams::VM_PAPER_B5))
params.papersize = BufferParams::PAPER_B5PAPER;
} else if ((c1 == BufferParams::PACKAGE_A4) || (c1 == BufferParams::PACKAGE_A4WIDE) ||
(c1 == BufferParams::PACKAGE_WIDEMARGINSA4))
params.papersize = BufferParams::PAPER_A4PAPER;
}
// This function should be in Buffer because it's a buffer's property (ale) // This function should be in Buffer because it's a buffer's property (ale)
string const Buffer::getIncludeonlyList(char delim) string const Buffer::getIncludeonlyList(char delim)
{ {

View File

@ -248,9 +248,6 @@ public:
/// returns \c true if the buffer contains a Wed document /// returns \c true if the buffer contains a Wed document
bool isLiterate() const; bool isLiterate() const;
///
void setPaperStuff();
/** Validate a buffer for LaTeX. /** Validate a buffer for LaTeX.
This validates the buffer, and returns a struct for use by This validates the buffer, and returns a struct for use by
#makeLaTeX# and others. Its main use is to figure out what #makeLaTeX# and others. Its main use is to figure out what

View File

@ -177,6 +177,33 @@ void BufferParams::writeFile(ostream & os) const
} }
void BufferParams::setPaperStuff()
{
papersize = PAPER_DEFAULT;
char const c1 = paperpackage;
if (c1 == PACKAGE_NONE) {
char const c2 = papersize2;
if (c2 == VM_PAPER_USLETTER)
papersize = PAPER_USLETTER;
else if (c2 == VM_PAPER_USLEGAL)
papersize = PAPER_LEGALPAPER;
else if (c2 == VM_PAPER_USEXECUTIVE)
papersize = PAPER_EXECUTIVEPAPER;
else if (c2 == VM_PAPER_A3)
papersize = PAPER_A3PAPER;
else if (c2 == VM_PAPER_A4)
papersize = PAPER_A4PAPER;
else if (c2 == VM_PAPER_A5)
papersize = PAPER_A5PAPER;
else if ((c2 == VM_PAPER_B3) || (c2 == VM_PAPER_B4) ||
(c2 == VM_PAPER_B5))
papersize = PAPER_B5PAPER;
} else if ((c1 == PACKAGE_A4) || (c1 == PACKAGE_A4WIDE) ||
(c1 == PACKAGE_WIDEMARGINSA4))
papersize = PAPER_A4PAPER;
}
void BufferParams::useClassDefaults() void BufferParams::useClassDefaults()
{ {
LyXTextClass const & tclass = textclasslist.TextClass(textclass); LyXTextClass const & tclass = textclasslist.TextClass(textclass);

View File

@ -110,6 +110,9 @@ public:
/// ///
void writeFile(std::ostream &) const; void writeFile(std::ostream &) const;
///
void setPaperStuff();
/// ///
void useClassDefaults(); void useClassDefaults();

View File

@ -610,10 +610,9 @@ void FormDocument::ComboInputCB(int, void * v, Combox * combox)
} }
bool FormDocument::class_apply() bool FormDocument::class_apply(BufferParams &params)
{ {
bool redo = false; bool redo = false;
BufferParams &params = lv_->buffer()->params;
// If default skip is a "Length" but there's no text in the // If default skip is a "Length" but there's no text in the
// input field, reset the kind to "Medskip", which is the default. // input field, reset the kind to "Medskip", which is the default.
@ -625,38 +624,8 @@ bool FormDocument::class_apply()
params.fontsize = fl_get_choice_text(class_->choice_doc_fontsize); params.fontsize = fl_get_choice_text(class_->choice_doc_fontsize);
params.pagestyle = fl_get_choice_text(class_->choice_doc_pagestyle); params.pagestyle = fl_get_choice_text(class_->choice_doc_pagestyle);
unsigned int const new_class = combo_doc_class->get() - 1; params.textclass = combo_doc_class->get() - 1;
if (params.textclass != new_class) {
// try to load new_class
if (textclasslist.Load(new_class)) {
// successfully loaded
redo = true;
setMinibuffer(lv_, _("Converting document to new document class..."));
int ret = CutAndPaste::SwitchLayoutsBetweenClasses(
params.textclass, new_class,
lv_->buffer()->paragraph);
if (ret) {
string s;
if (ret==1) {
s = _("One paragraph couldn't be converted");
} else {
s += tostr(ret);
s += _(" paragraphs couldn't be converted");
}
WriteAlert(_("Conversion Errors!"),s,
_("into chosen document class"));
}
params.textclass = new_class;
} else {
// problem changing class -- warn user and retain old style
WriteAlert(_("Conversion Errors!"),
_("Errors loading new document class."),
_("Reverting to original document class."));
combo_doc_class->select(int(params.textclass) + 1);
}
}
BufferParams::PARSEP tmpsep = params.paragraph_separation; BufferParams::PARSEP tmpsep = params.paragraph_separation;
if (fl_get_button(class_->radio_doc_indent)) if (fl_get_button(class_->radio_doc_indent))
params.paragraph_separation = BufferParams::PARSEP_INDENT; params.paragraph_separation = BufferParams::PARSEP_INDENT;
@ -731,17 +700,57 @@ bool FormDocument::class_apply()
} }
void FormDocument::paper_apply() bool FormDocument::class_apply()
{ {
BufferParams & params = lv_->buffer()->params; BufferParams &params = lv_->buffer()->params;
unsigned int const old_class = params.textclass;
bool redo = class_apply(params);
if (params.textclass != old_class) {
// try to load new_class
if (textclasslist.Load(params.textclass)) {
// successfully loaded
redo = true;
setMinibuffer(lv_, _("Converting document to new document class..."));
int ret = CutAndPaste::SwitchLayoutsBetweenClasses(
old_class, params.textclass,
lv_->buffer()->paragraph);
if (ret) {
string s;
if (ret==1) {
s = _("One paragraph couldn't be converted");
} else {
s += tostr(ret);
s += _(" paragraphs couldn't be converted");
}
WriteAlert(_("Conversion Errors!"),s,
_("into chosen document class"));
}
} else {
// problem changing class -- warn user and retain old style
WriteAlert(_("Conversion Errors!"),
_("Errors loading new document class."),
_("Reverting to original document class."));
combo_doc_class->select(int(old_class) + 1);
}
}
return redo;
}
void FormDocument::paper_apply(BufferParams & params)
{
params.papersize2 = char(fl_get_choice(paper_->choice_papersize)-1); params.papersize2 = char(fl_get_choice(paper_->choice_papersize)-1);
params.paperpackage = params.paperpackage =
char(fl_get_choice(paper_->choice_paperpackage)-1); char(fl_get_choice(paper_->choice_paperpackage)-1);
// set params.papersize from params.papersize2 and params.paperpackage // set params.papersize from params.papersize2 and params.paperpackage
lv_->buffer()->setPaperStuff(); params.setPaperStuff();
params.use_geometry = fl_get_button(paper_->check_use_geometry); params.use_geometry = fl_get_button(paper_->check_use_geometry);
@ -788,9 +797,14 @@ void FormDocument::paper_apply()
} }
bool FormDocument::language_apply() void FormDocument::paper_apply()
{
paper_apply(lv_->buffer()->params);
}
bool FormDocument::language_apply(BufferParams & params)
{ {
BufferParams & params = lv_->buffer()->params;
InsetQuotes::quote_language lga = InsetQuotes::EnglishQ; InsetQuotes::quote_language lga = InsetQuotes::EnglishQ;
bool redo = false; bool redo = false;
@ -820,19 +834,11 @@ bool FormDocument::language_apply()
else else
params.quotes_times = InsetQuotes::DoubleQ; params.quotes_times = InsetQuotes::DoubleQ;
Language const * old_language = params.language;
Language const * new_language = Language const * new_language =
languages.getLanguage(combo_language->getline()); languages.getLanguage(combo_language->getline());
if (!new_language) if (!new_language)
new_language = default_language; new_language = default_language;
if (old_language != new_language
&& old_language->RightToLeft() == new_language->RightToLeft()
&& !lv_->buffer()->isMultiLingual())
lv_->buffer()->changeLanguage(old_language, new_language);
if (old_language != new_language) {
redo = true;
}
params.language = new_language; params.language = new_language;
params.inputenc = fl_get_choice_text(language_->choice_inputenc); params.inputenc = fl_get_choice_text(language_->choice_inputenc);
@ -840,9 +846,27 @@ bool FormDocument::language_apply()
} }
bool FormDocument::options_apply() bool FormDocument::language_apply()
{ {
BufferParams & params = lv_->buffer()->params; BufferParams & params = lv_->buffer()->params;
Language const * old_language = params.language;
bool redo = language_apply(params);
if (old_language != params.language
&& old_language->RightToLeft() == params.language->RightToLeft()
&& !lv_->buffer()->isMultiLingual())
lv_->buffer()->changeLanguage(old_language, params.language);
if (old_language != params.language) {
redo = true;
}
return redo;
}
bool FormDocument::options_apply(BufferParams & params)
{
bool redo = false; bool redo = false;
params.graphicsDriver = params.graphicsDriver =
@ -866,16 +890,28 @@ bool FormDocument::options_apply()
} }
void FormDocument::bullets_apply() bool FormDocument::options_apply()
{
return options_apply(lv_->buffer()->params);
}
void FormDocument::bullets_apply(BufferParams & params)
{ {
/* update the bullet settings */ /* update the bullet settings */
BufferParams & param = lv_->buffer()->params; BufferParams & params_doc = lv_->buffer()->params;
// a little bit of loop unrolling // a little bit of loop unrolling
param.user_defined_bullets[0] = param.temp_bullets[0]; params.user_defined_bullets[0] = params_doc.temp_bullets[0];
param.user_defined_bullets[1] = param.temp_bullets[1]; params.user_defined_bullets[1] = params_doc.temp_bullets[1];
param.user_defined_bullets[2] = param.temp_bullets[2]; params.user_defined_bullets[2] = params_doc.temp_bullets[2];
param.user_defined_bullets[3] = param.temp_bullets[3]; params.user_defined_bullets[3] = params_doc.temp_bullets[3];
}
void FormDocument::bullets_apply()
{
bullets_apply(lv_->buffer()->params);
} }

View File

@ -124,6 +124,17 @@ private:
/// ///
void bullets_update(BufferParams const &); void bullets_update(BufferParams const &);
///
void paper_apply(BufferParams &);
///
bool class_apply(BufferParams &);
///
bool language_apply(BufferParams &);
///
bool options_apply(BufferParams &);
///
void bullets_apply(BufferParams &);
/// ///
void paper_apply(); void paper_apply();
/// ///

View File

@ -1,8 +1,11 @@
2001-11-07 Jean-Marc Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
* math_inset.C: compilation fix
2001-11-07 André Pönitz <poenitz@gmx.net> 2001-11-07 André Pönitz <poenitz@gmx.net>
* math_*inset.[Ch]: * math_*inset.[Ch]:
array.[Ch]: start native C++ support for Octave, Maple and MathML * array.[Ch]: start native C++ support for Octave, Maple and MathML
2001-10-31 Angus Leeming <a.leeming@ic.ac.uk> 2001-10-31 Angus Leeming <a.leeming@ic.ac.uk>

View File

@ -19,8 +19,9 @@
#pragma implementation #pragma implementation
#endif #endif
#include <sstream> #include <config.h>
#include "Lsstream.h"
#include "math_inset.h" #include "math_inset.h"
#include "math_scriptinset.h" #include "math_scriptinset.h"
#include "debug.h" #include "debug.h"