X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt%2FGuiChanges.cpp;h=b2f809b026a5bd9c620f339dd060552d09e551d7;hb=b4211ef206827f85378b9392472fdc14e1e9f6c4;hp=150d8a1c3b1a4b5f9ffe67e60704eab2078bdae8;hpb=d914142969f0877e701dcb320d1ed55ef3b907b2;p=lyx.git diff --git a/src/frontends/qt/GuiChanges.cpp b/src/frontends/qt/GuiChanges.cpp index 150d8a1c3b..b2f809b026 100644 --- a/src/frontends/qt/GuiChanges.cpp +++ b/src/frontends/qt/GuiChanges.cpp @@ -15,15 +15,12 @@ #include "qt_helpers.h" -#include "support/gettext.h" -#include "support/lstrings.h" -#include "support/lyxtime.h" - #include "Author.h" #include "Buffer.h" #include "BufferParams.h" #include "BufferView.h" #include "Changes.h" +#include "Cursor.h" #include "FuncRequest.h" #include "LyXRC.h" @@ -49,8 +46,6 @@ GuiChanges::GuiChanges(GuiView & lv) bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy); bc().setCancel(buttonBox->button(QDialogButtonBox::Cancel)); - bc().addReadOnly(acceptPB); - bc().addReadOnly(rejectPB); } @@ -63,28 +58,49 @@ void GuiChanges::updateContents() Change const & c = bufferview()->getCurrentChange(); bool const changePresent = c.type != Change::UNCHANGED; - rejectPB->setEnabled(changePresent); - acceptPB->setEnabled(changePresent); + rejectPB->setEnabled(changePresent && !isBufferReadonly()); + acceptPB->setEnabled(changePresent && !isBufferReadonly()); + bool const inserted = c.type == Change::INSERTED; QString text; if (changePresent) { QString const author = toqstr(buffer().params().authors().get(c.author).nameAndEmail()); if (!author.isEmpty()) - text += (c.type == Change::INSERTED) ? qt_("Inserted by %1").arg(author) - : qt_("Deleted by %1").arg(author); - - QString const date = QDateTime::fromTime_t(c.changetime) - .toString(Qt::DefaultLocaleLongDate); + text += inserted ? qt_("Inserted by %1").arg(author) + : qt_("Deleted by %1").arg(author); + +#if (QT_VERSION >= QT_VERSION_CHECK(5, 8, 0)) + QString const date = + QLocale().toString(QDateTime::fromSecsSinceEpoch(c.changetime), + QLocale::LongFormat); +#else + QString const date = + QLocale().toString(QDateTime::fromTime_t(c.changetime), + QLocale::LongFormat); +#endif if (!date.isEmpty()) { if (!author.isEmpty()) - text += qt_(" on[[date]] %1\n").arg(date); + text += qt_(" on[[date]] %1").arg(date); else - text += (c.type == Change::INSERTED) ? qt_("Inserted on %1\n").arg(date) - : qt_("Deleted on %1\n").arg(date); + text += inserted ? qt_("Inserted on %1").arg(date) + : qt_("Deleted on %1").arg(date); + } + QString changedcontent = toqstr(bufferview()->cursor().selectionAsString(false)); + if (!changedcontent.isEmpty()) { + text += ":

"; + if (inserted) + text += ""; + else + text += ""; + text += changedcontent; + if (inserted) + text += ""; + else + text += ""; } } - changeTB->setPlainText(text); + changeTB->setHtml(text); } @@ -114,9 +130,6 @@ void GuiChanges::rejectChange() } -Dialog * createGuiChanges(GuiView & lv) { return new GuiChanges(lv); } - - } // namespace frontend } // namespace lyx