From 1ecd2189f27f1870bcc6374db78f9075b7a9f513 Mon Sep 17 00:00:00 2001 From: Martin Vermeer Date: Sat, 13 Oct 2007 12:59:44 +0000 Subject: [PATCH] Dissolve CharStyle initial implementation. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20944 a592a061-630c-0410-9148-cb99ea01b6c8 --- lib/ui/stdmenus.inc | 1 + src/Text3.cpp | 8 +++++++- src/insets/InsetFlex.h | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/ui/stdmenus.inc b/lib/ui/stdmenus.inc index 64c50e83da..d658f25a13 100644 --- a/lib/ui/stdmenus.inc +++ b/lib/ui/stdmenus.inc @@ -140,6 +140,7 @@ Menuset End Menu "edit_textstyles" + Item "Dissolve CharStyle" "inset-dissolve charstyle" CharStyles Elements Separator diff --git a/src/Text3.cpp b/src/Text3.cpp index 1f7157a48e..c5795bfb55 100644 --- a/src/Text3.cpp +++ b/src/Text3.cpp @@ -1840,7 +1840,13 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd, break; case LFUN_INSET_DISSOLVE: - enable = !isMainText(cur.bv().buffer()) && cur.inset().nargs() == 1; + if (!cmd.argument().empty()) { + InsetLayout il = cur.inset().getLayout(cur.buffer().params()); + enable = (cur.inset().lyxCode() == FLEX_CODE) + && (il.lyxtype == to_utf8(cmd.argument())); + } else + enable = !isMainText(cur.bv().buffer()) + && cur.inset().nargs() == 1; break; case LFUN_CHANGE_ACCEPT: diff --git a/src/insets/InsetFlex.h b/src/insets/InsetFlex.h index eba3503fb2..51e1ec44c5 100644 --- a/src/insets/InsetFlex.h +++ b/src/insets/InsetFlex.h @@ -40,6 +40,8 @@ public: InsetFlex(BufferParams const &, InsetLayout); /// docstring name() const { return from_ascii("Flex"); } + /// + InsetLayout const & getLayout(BufferParams const &) const { return layout_; } /// Is this character style defined in the document's textclass? /// May be wrong after textclass change or paste from another document bool undefined() const; -- 2.39.2