]> git.lyx.org Git - lyx.git/blobdiff - src/bufferview_funcs.C
clean up a bit
[lyx.git] / src / bufferview_funcs.C
index 123ad1e70110b1e117db2648255c469d7ce413f3..35cbf78e8583401f107d4d67f89ae4682576d4f9 100644 (file)
 #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);
@@ -88,10 +92,8 @@ void changeDepth(BufferView * bv, LyXText * text, int decInc)
        else
                text->decDepth(bv);
        if (text->inset_owner)
-           bv->updateInset((Inset *)text->inset_owner, true);
+               bv->updateInset((Inset *)text->inset_owner, true);
        bv->update(bv->text, BufferView::SELECT|BufferView::FITCUR|BufferView::CHANGE);
-       bv->owner()->message(_("Changed environment depth "
-                              "(in possible range, maybe not)"));
 }
 
 
@@ -121,11 +123,7 @@ void roman(BufferView * bv)
 
 void styleReset(BufferView * bv)
 {
-#ifndef INHERIT_LANG
        LyXFont font(LyXFont::ALL_INHERIT, ignore_language);
-#else
-       LyXFont font(LyXFont::ALL_INHERIT);
-#endif
        toggleAndShow(bv, font);
 }
 
@@ -152,23 +150,51 @@ string const currentState(BufferView * bv)
        ostringstream state;
 
        if (!bv->available())
-               return "";
+               return string();
+
+       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)
-       LyXText * text = bv->getLyXText();
-       Buffer * buffer = bv->buffer();
        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.
@@ -182,7 +208,7 @@ string const currentState(BufferView * bv)
                        state << _("Single");
                        break;
                case Spacing::Onehalf:
-                       state << _("Onehalf");
+                       state << _("OneHalf");
                        break;
                case Spacing::Double:
                        state << _("Double");
@@ -190,7 +216,7 @@ string const currentState(BufferView * bv)
                case Spacing::Other:
                        state << _("Other (")
                              << text->cursor.par()->params().spacing().getValue()
-                             << ")";
+                             << ')';
                        break;
                case Spacing::Default:
                        // should never happen, do nothing
@@ -200,7 +226,7 @@ string const currentState(BufferView * bv)
 #ifdef DEVEL_VERSION
        state << _(", Paragraph: ") << text->cursor.par()->id();
 #endif
-       return state.str().c_str();
+       return STRCONV(state.str());
 }
 
 
@@ -211,14 +237,14 @@ void toggleAndShow(BufferView * bv, LyXFont const & font, bool toggleall)
 {
        if (!bv->available())
                return;
+
        if (bv->theLockingInset()) {
                bv->theLockingInset()->setFont(bv, font, toggleall);
                return;
        }
+
        LyXText * text = bv->getLyXText();
-       // FIXME: can this happen ?? 
+       // FIXME: can this happen ??
        if (!text)
                return;