X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiChanges.cpp;h=63268ae24e808d3dc3f89428c7649ffd3c5455b7;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=05d1cf41e72c36fa29a48ba17cc1c11c3ef95395;hpb=a1cec91afaca91968b46e695533c10ad2a3f73d3;p=lyx.git diff --git a/src/frontends/qt4/GuiChanges.cpp b/src/frontends/qt4/GuiChanges.cpp index 05d1cf41e7..63268ae24e 100644 --- a/src/frontends/qt4/GuiChanges.cpp +++ b/src/frontends/qt4/GuiChanges.cpp @@ -12,124 +12,120 @@ #include #include "GuiChanges.h" -#include "Qt2BC.h" + #include "qt_helpers.h" +#include "support/gettext.h" #include "support/lstrings.h" +#include "support/lyxtime.h" -#include "controllers/ControlChanges.h" +#include "Author.h" +#include "Buffer.h" +#include "BufferParams.h" +#include "BufferView.h" +#include "Changes.h" +#include "FuncRequest.h" +#include "LyXRC.h" -#include -#include #include -using lyx::support::bformat; - namespace lyx { namespace frontend { -///////////////////////////////////////////////////////////////////// -// -// GuiChangesDialog -// -///////////////////////////////////////////////////////////////////// +using support::bformat; -GuiChangesDialog::GuiChangesDialog(GuiChanges * form) - : form_(form) +GuiChanges::GuiChanges(GuiView & lv) + : GuiDialog(lv, "changes", qt_("Merge Changes")) { setupUi(this); - connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose())); - connect(nextPB, SIGNAL(clicked()), this, SLOT(nextPressed())); - connect(rejectPB, SIGNAL(clicked()), this, SLOT(rejectPressed())); - connect(acceptPB, SIGNAL(clicked()), this, SLOT(acceptPressed())); -} + connect(closePB, SIGNAL(clicked()), this, SLOT(slotClose())); + connect(nextPB, SIGNAL(clicked()), this, SLOT(nextChange())); + connect(previousPB, SIGNAL(clicked()), this, SLOT(previousChange())); + connect(rejectPB, SIGNAL(clicked()), this, SLOT(rejectChange())); + connect(acceptPB, SIGNAL(clicked()), this, SLOT(acceptChange())); -void GuiChangesDialog::nextPressed() -{ - form_->next(); + bc().setPolicy(ButtonPolicy::NoRepeatedApplyReadOnlyPolicy); + bc().setCancel(closePB); + bc().addReadOnly(acceptPB); + bc().addReadOnly(rejectPB); } -void GuiChangesDialog::acceptPressed() +void GuiChanges::updateContents() { - form_->accept(); -} + docstring text; + docstring author = changeAuthor(); + docstring date = changeDate(); + if (!author.empty()) + text += bformat(_("Change by %1$s\n\n"), author); + if (!date.empty()) + text += bformat(_("Change made at %1$s\n"), date); -void GuiChangesDialog::rejectPressed() -{ - form_->reject(); + changeTB->setPlainText(toqstr(text)); } -void GuiChangesDialog::closeEvent(QCloseEvent *e) +void GuiChanges::nextChange() { - form_->slotWMHide(); - e->accept(); + dispatch(FuncRequest(LFUN_CHANGE_NEXT)); } - -///////////////////////////////////////////////////////////////////// -// -// GuiChanges -// -///////////////////////////////////////////////////////////////////// - -typedef QController > ChangesBase; - - -GuiChanges::GuiChanges(Dialog & parent) - : ChangesBase(parent, _("Merge Changes")) +void GuiChanges::previousChange() { + dispatch(FuncRequest(LFUN_CHANGE_PREVIOUS)); } -void GuiChanges::build_dialog() +docstring GuiChanges::changeDate() const { - dialog_.reset(new GuiChangesDialog(this)); + Change const & c = bufferview()->getCurrentChange(); + if (c.type == Change::UNCHANGED) + return docstring(); - bcview().setCancel(dialog_->closePB); - bcview().addReadOnly(dialog_->acceptPB); - bcview().addReadOnly(dialog_->rejectPB); + // FIXME UNICODE + return from_utf8(formatted_time(c.changetime, lyxrc.date_insert_format)); } -void GuiChanges::update_contents() +docstring GuiChanges::changeAuthor() const { - docstring text; - docstring author = controller().getChangeAuthor(); - docstring date = controller().getChangeDate(); + Change const & c = bufferview()->getCurrentChange(); + if (c.type == Change::UNCHANGED) + return docstring(); - if (!author.empty()) - text += bformat(_("Change by %1$s\n\n"), author); - if (!date.empty()) - text += bformat(_("Change made at %1$s\n"), date); + Author const & a = buffer().params().authors().get(c.author); - dialog_->changeTB->setPlainText(toqstr(text)); -} + docstring author = a.name(); + if (!a.email().empty()) + author += " (" + a.email() + ")"; -void GuiChanges::next() -{ - controller().next(); + return author; } -void GuiChanges::accept() +void GuiChanges::acceptChange() { - controller().accept(); + dispatch(FuncRequest(LFUN_CHANGE_ACCEPT)); + nextChange(); } -void GuiChanges::reject() +void GuiChanges::rejectChange() { - controller().reject(); + dispatch(FuncRequest(LFUN_CHANGE_REJECT)); + nextChange(); } + +Dialog * createGuiChanges(GuiView & lv) { return new GuiChanges(lv); } + + } // namespace frontend } // namespace lyx -#include "GuiChanges_moc.cpp" +#include "moc_GuiChanges.cpp"