commit 68e268e117564db25993ca0476b626feef25a81c
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Fri Nov 4 11:29:56 2022 +0100

    Add some options to index context menu
---
 lib/ui/stdcontext.inc     |   10 ++++++++++
 src/insets/InsetIndex.cpp |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/lib/ui/stdcontext.inc b/lib/ui/stdcontext.inc
index d073006..f440d98 100644
--- a/lib/ui/stdcontext.inc
+++ b/lib/ui/stdcontext.inc
@@ -630,6 +630,16 @@ Menuset
 
        Menu "context-index"
                IndicesContext
+               Separator
+               OptItem "Single Page (No Page Range)|P" "inset-modify 
changeparam range none"
+               OptItem "Start Page Range|t" "inset-modify changeparam range 
start"
+               OptItem "End Page Range|E" "inset-modify changeparam range end"
+               Separator
+               OptItem "No Page Formatting|N" "inset-modify changeparam 
pagefmt default"
+               OptItem "Bold Page Formatting|B" "inset-modify changeparam 
pagefmt textbf"
+               OptItem "Italic Page Formatting|I" "inset-modify changeparam 
pagefmt textit"
+               OptItem "Emphasized Page Formatting|z" "inset-modify 
changeparam pagefmt emph"
+               OptItem "Custom Page Formatting|C" "inset-modify changeparam 
pagefmt custom"
        End
        
        Menu "context-edit-index"
diff --git a/src/insets/InsetIndex.cpp b/src/insets/InsetIndex.cpp
index d863ed2..b5625e8 100644
--- a/src/insets/InsetIndex.cpp
+++ b/src/insets/InsetIndex.cpp
@@ -582,6 +582,21 @@ void InsetIndex::doDispatch(Cursor & cur, FuncRequest & 
cmd)
                        params_.index = from_utf8(cmd.getArg(1));
                        break;
                }
+               if (cmd.getArg(0) == "changeparam") {
+                       string const p = cmd.getArg(1);
+                       string const v = cmd.getArg(2);
+                       cur.recordUndoInset(this);
+                       if (p == "range")
+                               params_.range = 
insetindexpagerangetranslator().find(v);
+                       if (p == "pagefmt") {
+                               if (v == "default" || v == "textbf"
+                                   || v == "textit" || v == "emph")
+                                       params_.pagefmt = v;
+                               else
+                                       
lyx::dispatch(FuncRequest(LFUN_INSET_SETTINGS, "index"));
+                       }
+                       break;
+               }
                InsetIndexParams params;
                InsetIndex::string2params(to_utf8(cmd.argument()), params);
                cur.recordUndoInset(this);
@@ -629,6 +644,23 @@ bool InsetIndex::getStatus(Cursor & cur, FuncRequest const 
& cmd,
                                from_utf8(cmd.getArg(1)) == params_.index);
                        return true;
                }
+               if (cmd.getArg(0) == "changeparam") {
+                       string const p = cmd.getArg(1);
+                       string const v = cmd.getArg(2);
+                       if (p == "range") {
+                               flag.setEnabled(v == "none" || v == "start" || 
v == "end");
+                               flag.setOnOff(params_.range == 
insetindexpagerangetranslator().find(v));
+                       }
+                       if (p == "pagefmt") {
+                               flag.setEnabled(!v.empty());
+                               if (params_.pagefmt == "default" || 
params_.pagefmt == "textbf"
+                                   || params_.pagefmt == "textit" || 
params_.pagefmt == "emph")
+                                       flag.setOnOff(params_.pagefmt == v);
+                               else
+                                       flag.setOnOff(v == "custom");
+                       }
+                       return true;
+               }
                return InsetCollapsible::getStatus(cur, cmd, flag);
 
        case LFUN_INSET_DIALOG_UPDATE: {
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to