#include "support/lassert.h"
#include "support/lstrings.h"
#include "support/lyxalgo.h"
+#include "support/lyxtime.h"
#include "support/textutils.h"
#include <sstream>
Layout const & layout = cpar.layout();
if (cur.lastpos() == 0 && !cpar.allowEmpty()) {
- if (changeDepthAllowed(cur, DEC_DEPTH))
+ if (changeDepthAllowed(cur, DEC_DEPTH)) {
changeDepth(cur, DEC_DEPTH);
- else {
+ pit_type const prev = depthHook(cpit, cpar.getDepth());
+ docstring const & lay = pars_[prev].layout().name();
+ if (lay != layout.name())
+ setLayout(cur, lay);
+ } else {
docstring const & lay = cur.paragraph().usePlainLayout()
? tclass.plainLayoutName() : tclass.defaultLayoutName();
- setLayout(cur, lay);
+ if (lay != layout.name())
+ setLayout(cur, lay);
}
return;
}
par.eraseChar(pos - 1, cur.buffer()->params().track_changes);
c = 0x2014;
pos--;
- } else if (par.getChar(pos - 1) == 0x2014) {
- // convert "----" to "-"
- par.eraseChar(pos - 1, cur.buffer()->params().track_changes);
- c = '-';
- pos--;
}
}
return dissolveInset(cur);
if (!par.isMergedOnEndOfParDeletion(cur.buffer()->params().track_changes)) {
+ cur.recordUndo(DELETE_UNDO);
par.setChange(cur.pos(), Change(Change::DELETED));
cur.forwardPos();
needsUpdate = true;
Change change = par.lookupChange(cur.pos());
if (change.changed()) {
- Author const & a = buf.params().authors().get(change.author);
- os << _("Change: ") << a.name();
- if (!a.email().empty())
- os << " (" << a.email() << ")";
- // FIXME ctime is english, we should translate that
- os << _(" at ") << ctime(&change.changetime);
- os << " : ";
+ docstring const author =
+ buf.params().authors().get(change.author).nameAndEmail();
+ docstring const date = formatted_datetime(change.changetime);
+ os << bformat(_("Changed by %1$s[[author]] on %2$s[[date]]. "),
+ author, date);
}
// I think we should only show changes from the default