From 69d2e076dc7f259430628b7a0b52a2c759be61cd Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Fri, 1 May 2009 17:55:26 +0000 Subject: [PATCH] Add accept/reject change to the context menu of the toc. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@29480 a592a061-630c-0410-9148-cb99ea01b6c8 --- lib/ui/stdcontext.inc | 10 +++++++++ src/frontends/qt4/TocWidget.cpp | 40 +++++++++++++++++++++++++++------ 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/lib/ui/stdcontext.inc b/lib/ui/stdcontext.inc index 1b5fbc71bc..a3b5e7ed43 100644 --- a/lib/ui/stdcontext.inc +++ b/lib/ui/stdcontext.inc @@ -531,4 +531,14 @@ Menuset OptItem "Settings...|S" "inset-settings" End + +# +# Toc Changes context menu +# + + Menu "context-toc-change" + Item "Accept Change|C" "change-accept" + Item "Reject Change|R" "change-reject" + End + End diff --git a/src/frontends/qt4/TocWidget.cpp b/src/frontends/qt4/TocWidget.cpp index 159054cd9b..fa044ad645 100644 --- a/src/frontends/qt4/TocWidget.cpp +++ b/src/frontends/qt4/TocWidget.cpp @@ -111,7 +111,8 @@ Inset * TocWidget::itemInset() const inset = dit.nextInset(); else if (current_type_ == "branch" - || current_type_ == "index") + || current_type_ == "index" + || current_type_ == "change") inset = &dit.inset(); else if (current_type_ == "table" @@ -129,10 +130,20 @@ bool TocWidget::getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus & status) const { Inset * inset = itemInset(); - FuncRequest tmpcmd(cmd); - if (inset) - return inset->getStatus(cur, tmpcmd, status); + + switch (cmd.action) + { + case LFUN_CHANGE_ACCEPT: + case LFUN_CHANGE_REJECT: + status.setEnabled(true); + return true; + + default: + if (inset) + return inset->getStatus(cur, tmpcmd, status); + } + return false; } @@ -140,10 +151,24 @@ bool TocWidget::getStatus(Cursor & cur, FuncRequest const & cmd, void TocWidget::doDispatch(Cursor & cur, FuncRequest const & cmd) { Inset * inset = itemInset(); - FuncRequest tmpcmd(cmd); - if (inset) - inset->dispatch(cur, tmpcmd); + + QModelIndex const & index = tocTV->currentIndex(); + TocItem const & item = + gui_view_.tocModels().currentItem(current_type_, index); + + switch (cmd.action) + { + case LFUN_CHANGE_ACCEPT: + case LFUN_CHANGE_REJECT: + dispatch(item.action()); + cur.dispatch(tmpcmd); + break; + + default: + if (inset) + inset->dispatch(cur, tmpcmd); + } } @@ -369,6 +394,7 @@ void TocWidget::updateView() sortCB->setChecked(gui_view_.tocModels().isSorted(current_type_)); sortCB->blockSignals(false); + bool const can_navigate_ = canNavigate(current_type_); persistentCB->setEnabled(can_navigate_);