#include "language.h"
#include "gettext.h"
#include "ParagraphParameters.h"
+#include "author.h"
+#include "changes.h"
#include "frontends/Alert.h"
#include "support/lstrings.h"
+#include "BoostFormat.h"
+
void emph(BufferView * bv)
{
LyXFont font(LyXFont::ALL_IGNORE);
ostringstream state;
if (!bv->available())
- return "";
+ return string();
- // I think we should only show changes from the default
- // font. (Asger)
LyXText * text = bv->getLyXText();
Buffer * buffer = bv->buffer();
+ LyXCursor const & c(text->cursor);
+
+ bool const show_change = buffer->params.tracking_changes
+ && c.pos() != c.par()->size()
+ && c.par()->lookupChange(c.pos()) != Change::UNCHANGED;
+
+ if (show_change) {
+ Change change(c.par()->lookupChangeFull(c.pos()));
+ Author const & a(bv->buffer()->authors().get(change.author));
+ state << _("Change: ") << a.name();
+ if (!a.email().empty()) {
+ state << " (" << a.email() << ")";
+ }
+ if (change.changetime)
+ state << _(" at ") << ctime(&change.changetime);
+ state << " : ";
+ }
+
+ // I think we should only show changes from the default
+ // font. (Asger)
LyXFont font = text->real_current_font;
LyXFont const & defaultfont =
buffer->params.getLyXTextClass().defaultfont();
font.reduce(defaultfont);
- state << _("Font:") << ' ' << font.stateText(&buffer->params);
+#if USE_BOOST_FORMAT
+ state << boost::format(_("Font: %1$s")) % font.stateText(&buffer->params);
+#else
+ state << _("Font: ") << font.stateText(&buffer->params);
+#endif
// The paragraph depth
int depth = text->getDepth();
- if (depth > 0)
+ if (depth > 0) {
+#if USE_BOOST_FORMAT
+ state << boost::format(_(", Depth: %1$d")) % depth;
+#else
state << _(", Depth: ") << depth;
+#endif
+ }
+
// The paragraph spacing, but only if different from
// buffer spacing.
state << _("Single");
break;
case Spacing::Onehalf:
- state << _("Onehalf");
+ state << _("OneHalf");
break;
case Spacing::Double:
state << _("Double");
case Spacing::Other:
state << _("Other (")
<< text->cursor.par()->params().spacing().getValue()
- << ")";
+ << ')';
break;
case Spacing::Default:
// should never happen, do nothing