libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx    |    1 
 libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx |   35 +++++++++++++++
 libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx |    2 
 libreofficekit/qa/gtktiledviewer/gtv.ui                  |   20 +++++++-
 4 files changed, 55 insertions(+), 3 deletions(-)

New commits:
commit 2c149dc9983317bce9116649270c3513adc35514
Author:     Miklos Vajna <[email protected]>
AuthorDate: Wed Nov 30 08:57:50 2022 +0100
Commit:     Miklos Vajna <[email protected]>
CommitDate: Wed Nov 30 10:26:06 2022 +0100

    libreofficekit: add a way to invoke getCommandValues()
    
    - add a new button to the toolbar to invoke the getCommandValues() LOK
      API with user-provided command name (and parameters)
    
    - log the result using g_info(), which is visible on the console if
      gtktiledviewer is started with G_MESSAGES_DEBUG=all
    
    - change some labels to tooltip texts that actually show up on mouse
      hover so you can understand what button does what
    
    - tweak the icons, so the question mark icon is the getter and the info
      icon is the setter
    
    Change-Id: If6984d2dde3d669b42aafcc3f58a0ca757ccaaff
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143477
    Reviewed-by: Miklos Vajna <[email protected]>
    Tested-by: Jenkins

diff --git a/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx 
b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
index 84c5335b32c2..a89b8fc7fc72 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-main-toolbar.cxx
@@ -129,6 +129,7 @@ gtv_main_toolbar_init(GtvMainToolbar* toolbar)
     gtk_builder_add_callback_symbol(builder.get(), "getRulerState", 
G_CALLBACK(getRulerState));
     gtk_builder_add_callback_symbol(builder.get(), "recentUnoChanged", 
G_CALLBACK(recentUnoChanged));
     gtk_builder_add_callback_symbol(builder.get(), "unoCommandDebugger", 
G_CALLBACK(unoCommandDebugger));
+    gtk_builder_add_callback_symbol(builder.get(), "commandValuesDebugger", 
G_CALLBACK(commandValuesDebugger));
     gtk_builder_add_callback_symbol(builder.get(), "toggleEditing", 
G_CALLBACK(toggleEditing));
     gtk_builder_add_callback_symbol(builder.get(), "changePartMode", 
G_CALLBACK(changePartMode));
     gtk_builder_add_callback_symbol(builder.get(), "changePart", 
G_CALLBACK(changePart));
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx 
b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx
index 973e2095275a..1f2520162c10 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.cxx
@@ -284,6 +284,41 @@ void unoCommandDebugger(GtkWidget* pButton, gpointer /* 
pItem */)
     gtk_widget_destroy(pUnoCmdDialog);
 }
 
+void commandValuesDebugger(GtkWidget* pButton, gpointer /* pItem */)
+{
+    GtvApplicationWindow* window = 
GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pButton));
+    GtkWidget* pUnoCmdDialog = gtk_dialog_new_with_buttons ("Get command 
values",
+                                                            GTK_WINDOW 
(window),
+                                                            GTK_DIALOG_MODAL,
+                                                            "Execute",
+                                                            GTK_RESPONSE_OK,
+                                                            nullptr);
+    g_object_set(G_OBJECT(pUnoCmdDialog), "resizable", FALSE, nullptr);
+    GtkWidget* pDialogMessageArea = gtk_dialog_get_content_area (GTK_DIALOG 
(pUnoCmdDialog));
+    GtkWidget* pUnoCmdAreaBox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
+    gtk_box_pack_start(GTK_BOX(pDialogMessageArea), pUnoCmdAreaBox, true, 
true, 2);
+
+    GtkWidget* pUnoCmdLabel = gtk_label_new("Enter UNO command");
+    gtk_box_pack_start(GTK_BOX(pUnoCmdAreaBox), pUnoCmdLabel, true, true, 2);
+
+    GtkWidget* pUnoCmdEntry = gtk_entry_new ();
+    gtk_box_pack_start(GTK_BOX(pUnoCmdAreaBox), pUnoCmdEntry, true, true, 2);
+    gtk_entry_set_placeholder_text(GTK_ENTRY(pUnoCmdEntry), "e.g. .uno:Undo");
+
+    gtk_widget_show_all(pUnoCmdDialog);
+
+    gint res = gtk_dialog_run (GTK_DIALOG(pUnoCmdDialog));
+    if (res == GTK_RESPONSE_OK)
+    {
+        const gchar* pUnoCmd = gtk_entry_get_text(GTK_ENTRY(pUnoCmdEntry));
+        gchar* pValues = 
lok_doc_view_get_command_values(LOK_DOC_VIEW(window->lokdocview), pUnoCmd);
+        g_info("lok::Document::getCommandValues(%s) : %s", pUnoCmd, pValues);
+        g_free(pValues);
+    }
+
+    gtk_widget_destroy(pUnoCmdDialog);
+}
+
 void toggleEditing(GtkWidget* pButton, gpointer /*pItem*/)
 {
     GtvApplicationWindow* window = 
GTV_APPLICATION_WINDOW(gtk_widget_get_toplevel(pButton));
diff --git a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx 
b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx
index c06017d87414..447b7be8898f 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx
+++ b/libreofficekit/qa/gtktiledviewer/gtv-signal-handlers.hxx
@@ -26,6 +26,8 @@ void recentUnoChanged(GtkWidget* pSelector, gpointer /* pItem 
*/);
 
 void unoCommandDebugger(GtkWidget* pButton, gpointer /* pItem */);
 
+void commandValuesDebugger(GtkWidget* pButton, gpointer /* pItem */);
+
 void toggleEditing(GtkWidget* pButton, gpointer /*pItem*/);
 
 void changePartMode(GtkWidget* pSelector, gpointer /* pItem */);
diff --git a/libreofficekit/qa/gtktiledviewer/gtv.ui 
b/libreofficekit/qa/gtktiledviewer/gtv.ui
index a66cefefef3f..3b9ab76d0c5d 100644
--- a/libreofficekit/qa/gtktiledviewer/gtv.ui
+++ b/libreofficekit/qa/gtktiledviewer/gtv.ui
@@ -470,7 +470,7 @@
     <child>
       <object class="GtkToggleToolButton" id="btn_editmode">
         <property name="visible">True</property>
-        <property name="label" translatable="yes">Turn on/off edit 
mode</property>
+        <property name="tooltip_text">Turn on/off edit mode</property>
         <property name="use_underline">True</property>
         <property name="icon_name">insert-text-symbolic</property>
         <signal name="clicked" handler="toggleEditing" swapped="no"/>
@@ -493,6 +493,7 @@
     <child>
       <object class="GtkToolItem" id="recentunoselectortoolitem">
         <property name="visible">True</property>
+        <property name="tooltip_text">Recent UNO command selector</property>
         <property name="can_focus">False</property>
         <child>
           <object class="GtkComboBoxText" id="combo_recentunoselector">
@@ -514,9 +515,9 @@
     <child>
       <object class="GtkToolButton" id="btn_unodebugger">
         <property name="visible">True</property>
-        <property name="label" translatable="yes">Uno Command 
Debugger</property>
+        <property name="tooltip_text">Uno Command Debugger</property>
         <property name="use_underline">True</property>
-        <property name="icon_name">dialog-question-symbolic</property>
+        <property name="icon_name">dialog-information-symbolic</property>
         <signal name="clicked" handler="unoCommandDebugger" swapped="no"/>
       </object>
       <packing>
@@ -524,6 +525,19 @@
         <property name="homogeneous">True</property>
       </packing>
     </child>
+    <child>
+      <object class="GtkToolButton" id="btn_commandvaluesdebugger">
+        <property name="visible">True</property>
+        <property name="tooltip_text">Command values Debugger</property>
+        <property name="use_underline">True</property>
+        <property name="icon_name">dialog-question-symbolic</property>
+        <signal name="clicked" handler="commandValuesDebugger" swapped="no"/>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="homogeneous">True</property>
+      </packing>
+    </child>
     <child>
       <object class="GtkSeparatorToolItem" id="separator6">
         <property name="visible">True</property>

Reply via email to