mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-25 22:06:15 +00:00
Add inset clearpage and cleardoublepage, from Urgas
* src/insets/insetert.C * src/text3.C * src/lfuns.h * src/factory.C * src/tex2lyx/text.C * src/text.C * src/LyXAction.C: add and handle LFUN_CLEARPAGE_INSET and LFUN_CLEARDOUBLEPAGE_INSET * src/insets/insetpagebreak.h/C: extend InsetPageBreak * lib/lyx2lyx/lyx_1_5.py: file format change * lib/ui/stdmenus.ui: add menu items git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16037 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
70e134e536
commit
7b031e5d86
@ -603,6 +603,45 @@ def revert_esint(document):
|
|||||||
if (use_esint == 2):
|
if (use_esint == 2):
|
||||||
document.preamble.append('\\usepackage{esint}')
|
document.preamble.append('\\usepackage{esint}')
|
||||||
|
|
||||||
|
def revert_clearpage(document):
|
||||||
|
" clearpage -> ERT"
|
||||||
|
i = 0
|
||||||
|
while 1:
|
||||||
|
i = find_token(document.body, "\\clearpage", i)
|
||||||
|
if i == -1:
|
||||||
|
break
|
||||||
|
document.body[i:i+1] = ['\\begin_inset ERT',
|
||||||
|
'status collapsed',
|
||||||
|
'',
|
||||||
|
'\\begin_layout %s' % document.default_layout,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'\\backslash',
|
||||||
|
'clearpage',
|
||||||
|
'\\end_layout',
|
||||||
|
'',
|
||||||
|
'\\end_inset']
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
|
def revert_cleardoublepage(document):
|
||||||
|
" cleardoublepage -> ERT"
|
||||||
|
i = 0
|
||||||
|
while 1:
|
||||||
|
i = find_token(document.body, "\\cleardoublepage", i)
|
||||||
|
if i == -1:
|
||||||
|
break
|
||||||
|
document.body[i:i+1] = ['\\begin_inset ERT',
|
||||||
|
'status collapsed',
|
||||||
|
'',
|
||||||
|
'\\begin_layout %s' % document.default_layout,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'\\backslash',
|
||||||
|
'cleardoublepage',
|
||||||
|
'\\end_layout',
|
||||||
|
'',
|
||||||
|
'\\end_inset']
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
##
|
##
|
||||||
# Conversion hub
|
# Conversion hub
|
||||||
@ -619,7 +658,8 @@ convert = [[246, []],
|
|||||||
[253, []],
|
[253, []],
|
||||||
[254, [convert_esint]]]
|
[254, [convert_esint]]]
|
||||||
|
|
||||||
revert = [[253, [revert_esint]],
|
revert = [[254, [revert_clearpage, revert_cleardoublepage]],
|
||||||
|
[253, [revert_esint]],
|
||||||
[252, [revert_nomenclature, revert_printnomenclature]],
|
[252, [revert_nomenclature, revert_printnomenclature]],
|
||||||
[251, [revert_commandparams]],
|
[251, [revert_commandparams]],
|
||||||
[250, [revert_cs_label]],
|
[250, [revert_cs_label]],
|
||||||
|
@ -334,6 +334,8 @@ Menuset
|
|||||||
Item "Ligature Break|k" "ligature-break-insert"
|
Item "Ligature Break|k" "ligature-break-insert"
|
||||||
Item "Line Break|B" "break-line"
|
Item "Line Break|B" "break-line"
|
||||||
Item "Page Break|a" "pagebreak-insert"
|
Item "Page Break|a" "pagebreak-insert"
|
||||||
|
Item "Clear Page" "clearpage-insert"
|
||||||
|
Item "Clear Double Page" "cleardoublepage-insert"
|
||||||
End
|
End
|
||||||
|
|
||||||
Menu "insert_math"
|
Menu "insert_math"
|
||||||
|
@ -369,6 +369,8 @@ void LyXAction::init()
|
|||||||
{ LFUN_TOOLBAR_TOGGLE_STATE, "", NoBuffer },
|
{ LFUN_TOOLBAR_TOGGLE_STATE, "", NoBuffer },
|
||||||
{ LFUN_NOMENCL_INSERT, "nomencl-insert", Noop },
|
{ LFUN_NOMENCL_INSERT, "nomencl-insert", Noop },
|
||||||
{ LFUN_NOMENCL_PRINT, "nomencl-print", Noop },
|
{ LFUN_NOMENCL_PRINT, "nomencl-print", Noop },
|
||||||
|
{ LFUN_CLEARPAGE_INSERT, "clearpage-insert", Noop },
|
||||||
|
{ LFUN_CLEARDOUBLEPAGE_INSERT, "cleardoublepage-insert", Noop },
|
||||||
|
|
||||||
{ LFUN_NOACTION, "", Noop }
|
{ LFUN_NOACTION, "", Noop }
|
||||||
};
|
};
|
||||||
|
@ -88,6 +88,12 @@ InsetBase * createInset(BufferView * bv, FuncRequest const & cmd)
|
|||||||
case LFUN_PAGEBREAK_INSERT:
|
case LFUN_PAGEBREAK_INSERT:
|
||||||
return new InsetPagebreak;
|
return new InsetPagebreak;
|
||||||
|
|
||||||
|
case LFUN_CLEARPAGE_INSERT:
|
||||||
|
return new InsetClearPage;
|
||||||
|
|
||||||
|
case LFUN_CLEARDOUBLEPAGE_INSERT:
|
||||||
|
return new InsetClearDoublePage;
|
||||||
|
|
||||||
case LFUN_CHARSTYLE_INSERT: {
|
case LFUN_CHARSTYLE_INSERT: {
|
||||||
string s = cmd.getArg(0);
|
string s = cmd.getArg(0);
|
||||||
LyXTextClass tclass = params.getLyXTextClass();
|
LyXTextClass tclass = params.getLyXTextClass();
|
||||||
|
@ -322,6 +322,8 @@ bool InsetERT::getStatus(LCursor & cur, FuncRequest const & cmd,
|
|||||||
case LFUN_BIBITEM_INSERT:
|
case LFUN_BIBITEM_INSERT:
|
||||||
case LFUN_LINE_INSERT:
|
case LFUN_LINE_INSERT:
|
||||||
case LFUN_PAGEBREAK_INSERT:
|
case LFUN_PAGEBREAK_INSERT:
|
||||||
|
case LFUN_CLEARPAGE_INSERT:
|
||||||
|
case LFUN_CLEARDOUBLEPAGE_INSERT:
|
||||||
case LFUN_LANGUAGE:
|
case LFUN_LANGUAGE:
|
||||||
case LFUN_LAYOUT:
|
case LFUN_LAYOUT:
|
||||||
case LFUN_LAYOUT_PARAGRAPH:
|
case LFUN_LAYOUT_PARAGRAPH:
|
||||||
|
@ -38,7 +38,7 @@ void InsetPagebreak::read(Buffer const &, LyXLex &)
|
|||||||
|
|
||||||
void InsetPagebreak::write(Buffer const &, ostream & os) const
|
void InsetPagebreak::write(Buffer const &, ostream & os) const
|
||||||
{
|
{
|
||||||
os << "\n\\newpage\n";
|
os << "\n" << getCmdName() << '\n';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -53,7 +53,7 @@ void InsetPagebreak::metrics(MetricsInfo & mi, Dimension & dim) const
|
|||||||
|
|
||||||
void InsetPagebreak::draw(PainterInfo & pi, int x, int y) const
|
void InsetPagebreak::draw(PainterInfo & pi, int x, int y) const
|
||||||
{
|
{
|
||||||
static docstring const label = _("Page Break");
|
docstring const label = _(insetLabel());
|
||||||
|
|
||||||
LyXFont font;
|
LyXFont font;
|
||||||
font.setColor(LColor::pagebreak);
|
font.setColor(LColor::pagebreak);
|
||||||
@ -80,7 +80,7 @@ void InsetPagebreak::draw(PainterInfo & pi, int x, int y) const
|
|||||||
int InsetPagebreak::latex(Buffer const &, odocstream & os,
|
int InsetPagebreak::latex(Buffer const &, odocstream & os,
|
||||||
OutputParams const &) const
|
OutputParams const &) const
|
||||||
{
|
{
|
||||||
os << "\\newpage{}";
|
os << from_ascii(getCmdName()) << "{}";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,7 +20,6 @@ namespace lyx {
|
|||||||
|
|
||||||
class InsetPagebreak : public InsetOld {
|
class InsetPagebreak : public InsetOld {
|
||||||
public:
|
public:
|
||||||
|
|
||||||
InsetPagebreak() {}
|
InsetPagebreak() {}
|
||||||
|
|
||||||
InsetBase::Code lyxCode() const { return InsetBase::LINE_CODE; }
|
InsetBase::Code lyxCode() const { return InsetBase::LINE_CODE; }
|
||||||
@ -29,7 +28,7 @@ public:
|
|||||||
|
|
||||||
void draw(PainterInfo & pi, int x, int y) const;
|
void draw(PainterInfo & pi, int x, int y) const;
|
||||||
|
|
||||||
int latex(Buffer const &, odocstream &,
|
virtual int latex(Buffer const &, odocstream &,
|
||||||
OutputParams const &) const;
|
OutputParams const &) const;
|
||||||
|
|
||||||
int plaintext(Buffer const &, odocstream &,
|
int plaintext(Buffer const &, odocstream &,
|
||||||
@ -40,11 +39,16 @@ public:
|
|||||||
|
|
||||||
void read(Buffer const &, LyXLex & lex);
|
void read(Buffer const &, LyXLex & lex);
|
||||||
|
|
||||||
void write(Buffer const & buf, std::ostream & os) const;
|
virtual void write(Buffer const & buf, std::ostream & os) const;
|
||||||
/// We don't need \begin_inset and \end_inset
|
/// We don't need \begin_inset and \end_inset
|
||||||
bool directWrite() const { return true; }
|
bool directWrite() const { return true; }
|
||||||
|
|
||||||
bool display() const { return true; }
|
bool display() const { return true; }
|
||||||
|
|
||||||
|
virtual std::string insetLabel() const { return "Page Break"; }
|
||||||
|
|
||||||
|
virtual std::string getCmdName() const { return "\\newpage"; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual std::auto_ptr<InsetBase> doClone() const
|
virtual std::auto_ptr<InsetBase> doClone() const
|
||||||
{
|
{
|
||||||
@ -53,6 +57,37 @@ private:
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class InsetClearPage : public InsetPagebreak {
|
||||||
|
public:
|
||||||
|
InsetClearPage() {}
|
||||||
|
|
||||||
|
std::string insetLabel() const { return "Clear Page"; }
|
||||||
|
|
||||||
|
std::string getCmdName() const { return "\\clearpage"; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual std::auto_ptr<InsetBase> doClone() const
|
||||||
|
{
|
||||||
|
return std::auto_ptr<InsetBase>(new InsetClearPage);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class InsetClearDoublePage : public InsetPagebreak {
|
||||||
|
public:
|
||||||
|
InsetClearDoublePage() {}
|
||||||
|
|
||||||
|
std::string insetLabel() const { return "Clear Double Page"; }
|
||||||
|
|
||||||
|
std::string getCmdName() const { return "\\cleardoublepage"; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
virtual std::auto_ptr<InsetBase> doClone() const
|
||||||
|
{
|
||||||
|
return std::auto_ptr<InsetBase>(new InsetClearDoublePage);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace lyx
|
} // namespace lyx
|
||||||
|
|
||||||
#endif // INSET_NEWLINE_H
|
#endif // INSET_NEWLINE_H
|
||||||
|
@ -377,6 +377,9 @@ enum kb_action {
|
|||||||
LFUN_TOOLBAR_TOGGLE_STATE, // bpeng 20061101
|
LFUN_TOOLBAR_TOGGLE_STATE, // bpeng 20061101
|
||||||
LFUN_NOMENCL_INSERT, // Ugras
|
LFUN_NOMENCL_INSERT, // Ugras
|
||||||
LFUN_NOMENCL_PRINT, // Ugras
|
LFUN_NOMENCL_PRINT, // Ugras
|
||||||
|
LFUN_CLEARPAGE_INSERT, // Ugras 20061125
|
||||||
|
//290
|
||||||
|
LFUN_CLEARDOUBLEPAGE_INSERT, // ugras 20061125
|
||||||
|
|
||||||
LFUN_LASTACTION // end of the table
|
LFUN_LASTACTION // end of the table
|
||||||
};
|
};
|
||||||
|
@ -2216,10 +2216,12 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
|||||||
skip_braces(p);
|
skip_braces(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (t.cs() == "newpage") {
|
else if (t.cs() == "newpage" ||
|
||||||
|
t.cs() == "clearpage" ||
|
||||||
|
t.cs() == "cleardoublepage") {
|
||||||
context.check_layout(os);
|
context.check_layout(os);
|
||||||
// FIXME: what about \\clearpage and \\pagebreak?
|
// FIXME: what about \\pagebreak?
|
||||||
os << "\n\\newpage\n";
|
os << "\n\\" << t.cs() << "\n";
|
||||||
skip_braces(p); // eat {}
|
skip_braces(p); // eat {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -316,6 +316,10 @@ void readParToken(Buffer const & buf, Paragraph & par, LyXLex & lex,
|
|||||||
par.insertInset(par.size(), new InsetLine, font, change);
|
par.insertInset(par.size(), new InsetLine, font, change);
|
||||||
} else if (token == "\\newpage") {
|
} else if (token == "\\newpage") {
|
||||||
par.insertInset(par.size(), new InsetPagebreak, font, change);
|
par.insertInset(par.size(), new InsetPagebreak, font, change);
|
||||||
|
} else if (token == "\\clearpage") {
|
||||||
|
par.insertInset(par.size(), new InsetClearPage, font, change);
|
||||||
|
} else if (token == "\\cleardoublepage") {
|
||||||
|
par.insertInset(par.size(), new InsetClearDoublePage, font, change);
|
||||||
} else if (token == "\\change_unchanged") {
|
} else if (token == "\\change_unchanged") {
|
||||||
change = Change(Change::UNCHANGED);
|
change = Change(Change::UNCHANGED);
|
||||||
} else if (token == "\\change_inserted") {
|
} else if (token == "\\change_inserted") {
|
||||||
|
@ -1187,6 +1187,8 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
|
|||||||
case LFUN_HFILL_INSERT:
|
case LFUN_HFILL_INSERT:
|
||||||
case LFUN_LINE_INSERT:
|
case LFUN_LINE_INSERT:
|
||||||
case LFUN_PAGEBREAK_INSERT:
|
case LFUN_PAGEBREAK_INSERT:
|
||||||
|
case LFUN_CLEARPAGE_INSERT:
|
||||||
|
case LFUN_CLEARDOUBLEPAGE_INSERT:
|
||||||
// do nothing fancy
|
// do nothing fancy
|
||||||
doInsertInset(cur, this, cmd, false, false);
|
doInsertInset(cur, this, cmd, false, false);
|
||||||
cur.posRight();
|
cur.posRight();
|
||||||
@ -1804,6 +1806,8 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
|
|||||||
case LFUN_SELF_INSERT:
|
case LFUN_SELF_INSERT:
|
||||||
case LFUN_LINE_INSERT:
|
case LFUN_LINE_INSERT:
|
||||||
case LFUN_PAGEBREAK_INSERT:
|
case LFUN_PAGEBREAK_INSERT:
|
||||||
|
case LFUN_CLEARPAGE_INSERT:
|
||||||
|
case LFUN_CLEARDOUBLEPAGE_INSERT:
|
||||||
case LFUN_MATH_DISPLAY:
|
case LFUN_MATH_DISPLAY:
|
||||||
case LFUN_MATH_IMPORT_SELECTION:
|
case LFUN_MATH_IMPORT_SELECTION:
|
||||||
case LFUN_MATH_MODE:
|
case LFUN_MATH_MODE:
|
||||||
|
Loading…
Reference in New Issue
Block a user