#include <clocale>
#include <sstream>
+using std::endl;
+using std::string;
+using std::istringstream;
+using std::ostringstream;
namespace lyx {
using support::isStrUnsignedInt;
using support::token;
-using std::endl;
-using std::string;
-using std::istringstream;
-using std::ostringstream;
-
-
+namespace frontend {
extern docstring current_layout;
-
+}
namespace {
Paragraph & par = cur.paragraph();
bool start = !par.params().startOfAppendix();
-#ifdef WITH_WARNINGS
-#warning The code below only makes sense at top level.
+// FIXME: The code below only makes sense at top level.
// Should LFUN_APPENDIX be restricted to top-level paragraphs?
-#endif
// ensure that we have only one start_of_appendix in this document
// FIXME: this don't work for multipart document!
for (pit_type tmp = 0, end = pars_.size(); tmp != end; ++tmp) {
case LFUN_DELETE_BACKWARD_SKIP:
// Reverse the effect of LFUN_BREAK_PARAGRAPH_SKIP.
if (!cur.selection()) {
-#ifdef WITH_WARNINGS
-#warning look here
-#endif
+ // FIXME: look here
//CursorSlice cur = cursor();
backspace(cur);
//anchor() = cur;
break;
}
+ // TODO
+ // With the creation of LFUN_PARAGRAPH_PARAMS, this is now redundant,
+ // as its duties can be performed there. Should it be removed??
+ // FIXME For now, it can just dispatch LFUN_PARAGRAPH_PARAMS...
case LFUN_PARAGRAPH_SPACING: {
Paragraph & par = cur.paragraph();
Spacing::Space cur_spacing = par.params().spacing().getSpace();
break;
}
- bool change_layout = (current_layout != layout);
+ bool change_layout = (frontend::current_layout != layout);
if (!change_layout && cur.selection() &&
cur.selBegin().pit() != cur.selEnd().pit())
pit_type spit = cur.selBegin().pit();
pit_type epit = cur.selEnd().pit() + 1;
while (spit != epit) {
- if (pars_[spit].layout()->name() != current_layout) {
+ if (pars_[spit].layout()->name() != frontend::current_layout) {
change_layout = true;
break;
}
break;
}
- case LFUN_DATE_INSERT:
- if (cmd.argument().empty())
- lyx::dispatch(FuncRequest(LFUN_SELF_INSERT,
- formatted_time(current_time())));
- else
- lyx::dispatch(FuncRequest(LFUN_SELF_INSERT,
- formatted_time(current_time(), to_utf8(cmd.argument()))));
+ case LFUN_DATE_INSERT: {
+ string const format = cmd.argument().empty()
+ ? lyxrc.date_insert_format : to_utf8(cmd.argument());
+ string const time = formatted_time(current_time(), format);
+ lyx::dispatch(FuncRequest(LFUN_SELF_INSERT, time));
break;
+ }
case LFUN_MOUSE_TRIPLE:
if (cmd.button() == mouse_button::button1) {
}
setLayout(cur, tclass.defaultLayoutName());
- setParagraph(cur, Spacing(), LYX_ALIGN_LAYOUT, docstring(), 0);
+ ParagraphParameters p;
+ setParagraphs(cur, p);
insertInset(cur, new InsetFloatList(to_utf8(cmd.argument())));
cur.posRight();
} else {
case LFUN_PARAGRAPH_PARAMS_APPLY: {
// Given data, an encoding of the ParagraphParameters
// generated in the Paragraph dialog, this function sets
- // the current paragraph appropriately.
- istringstream is(to_utf8(cmd.argument()));
- Lexer lex(0, 0);
- lex.setStream(is);
- ParagraphParameters params;
- params.read(lex);
- setParagraph(cur,
- params.spacing(),
- params.align(),
- params.labelWidthString(),
- params.noindent());
+ // the current paragraph, or currently selected paragraphs,
+ // appropriately.
+ // NOTE: This function overrides all existing settings.
+ setParagraphs(cur, cmd.argument());
+ cur.message(_("Paragraph layout set"));
+ break;
+ }
+
+ case LFUN_PARAGRAPH_PARAMS: {
+ // Given data, an encoding of the ParagraphParameters as we'd
+ // find them in a LyX file, this function modifies the current paragraph,
+ // or currently selected paragraphs.
+ // NOTE: This function only modifies, and does not override, existing
+ // settings.
+ setParagraphs(cur, cmd.argument(), true);
cur.message(_("Paragraph layout set"));
break;
}
case LFUN_ACCENT_OGONEK:
case LFUN_THESAURUS_ENTRY:
case LFUN_PARAGRAPH_PARAMS_APPLY:
+ case LFUN_PARAGRAPH_PARAMS:
case LFUN_ESCAPE:
case LFUN_BUFFER_END:
case LFUN_BUFFER_BEGIN: