From c42a61c5ac5cd8db86d6482ad8b0d42afc8ebdc4 Mon Sep 17 00:00:00 2001 From: Vincent van Ravesteijn Date: Mon, 29 Nov 2010 23:21:52 +0000 Subject: [PATCH] Fix bug #6642: Concatenate the context menus for: InsetCollapsables without a button, InsetTexts which have a custom context menu and InsetTabulars. Override the default behaviour for InsetInfo. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@36606 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/InsetCollapsable.cpp | 4 ++-- src/insets/InsetInfo.cpp | 8 ++++++++ src/insets/InsetInfo.h | 2 ++ src/insets/InsetTabular.cpp | 9 ++++++++- src/insets/InsetTabular.h | 2 ++ src/insets/InsetText.cpp | 9 +++++++++ src/insets/InsetText.h | 2 ++ 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/insets/InsetCollapsable.cpp b/src/insets/InsetCollapsable.cpp index 72cd73b5b2..c75285796c 100644 --- a/src/insets/InsetCollapsable.cpp +++ b/src/insets/InsetCollapsable.cpp @@ -622,10 +622,10 @@ docstring InsetCollapsable::contextMenu(BufferView const & bv, int x, int y) const { if (decoration() == InsetLayout::CONGLOMERATE) - return contextMenuName(); + return contextMenuName() + ";" + InsetText::contextMenuName(); if (geometry(bv) == NoButton) - return contextMenuName(); + return contextMenuName() + ";" + InsetText::contextMenuName(); Dimension dim = dimensionCollapsed(bv); if (x < xo(bv) + dim.wid && y < yo(bv) + dim.des) diff --git a/src/insets/InsetInfo.cpp b/src/insets/InsetInfo.cpp index 4dbee710ae..28bce9e318 100644 --- a/src/insets/InsetInfo.cpp +++ b/src/insets/InsetInfo.cpp @@ -452,6 +452,14 @@ void InsetInfo::updateInfo() } +docstring InsetInfo::contextMenuName() const +{ + //FIXME: We override the implementation of InsetCollapsable, + //because this inset is not a collapsable inset. + return contextMenuName(); +} + + docstring InsetInfo::contextMenuName() const { return from_ascii("context-info"); diff --git a/src/insets/InsetInfo.h b/src/insets/InsetInfo.h index bb2144db03..ee64c016b6 100644 --- a/src/insets/InsetInfo.h +++ b/src/insets/InsetInfo.h @@ -127,6 +127,8 @@ public: docstring toolTip(BufferView const & bv, int x, int y) const; /// docstring contextMenuName() const; + /// + docstring contextMenuName() const; /// should paragraph indendation be ommitted in any case? bool neverIndent() const { return true; } diff --git a/src/insets/InsetTabular.cpp b/src/insets/InsetTabular.cpp index b1706be00e..b68d03a8c5 100644 --- a/src/insets/InsetTabular.cpp +++ b/src/insets/InsetTabular.cpp @@ -3329,7 +3329,14 @@ void InsetTabular::write(ostream & os) const docstring InsetTabular::contextMenuName() const { - // FIXME: depending on the selection state, we could offer a different menu. + // FIXME: depending on the selection state, + // we could offer a different menu. + return cell(0)->contextMenuName() + ";" + contextMenuName(); +} + + +docstring InsetTabular::contextMenuName() const +{ return from_ascii("context-tabular"); } diff --git a/src/insets/InsetTabular.h b/src/insets/InsetTabular.h index 6b34e6caf3..289b32f5c3 100644 --- a/src/insets/InsetTabular.h +++ b/src/insets/InsetTabular.h @@ -813,6 +813,8 @@ public: /// InsetCode lyxCode() const { return TABULAR_CODE; } /// + docstring contextMenu(BufferView const &, int, int) const; + /// docstring contextMenuName() const; /// get offset of this cursor slice relative to our upper left corner void cursorPos(BufferView const & bv, CursorSlice const & sl, diff --git a/src/insets/InsetText.cpp b/src/insets/InsetText.cpp index 68220af5d6..c8c8175036 100644 --- a/src/insets/InsetText.cpp +++ b/src/insets/InsetText.cpp @@ -813,6 +813,15 @@ void InsetText::completionPosAndDim(Cursor const & cur, int & x, int & y, } +docstring InsetText::contextMenuName() const +{ + docstring context_menu = contextMenuName(); + if (context_menu != InsetText::contextMenuName()) + context_menu += ";" + InsetText::contextMenuName(); + return context_menu; +} + + docstring InsetText::contextMenuName() const { return from_ascii("context-edit"); diff --git a/src/insets/InsetText.h b/src/insets/InsetText.h index ebb11a29f1..f1c23cccaf 100644 --- a/src/insets/InsetText.h +++ b/src/insets/InsetText.h @@ -195,6 +195,8 @@ public: /// e.g., "Index: ". docstring toolTipText(docstring prefix = empty_docstring()) const; + /// + docstring contextMenu(BufferView const &, int, int) const; /// docstring contextMenuName() const; /// -- 2.39.2