[Libreoffice-commits] core.git: officecfg/registry svx/Library_svx.mk svx/source svx/uiconfig svx/UIConfig_svx.mk

Shivam Kumar Singh (via logerrit) logerrit at kemper.freedesktop.org
Mon May 18 09:02:20 UTC 2020


 officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu |   49 +++
 svx/Library_svx.mk                                           |    1 
 svx/UIConfig_svx.mk                                          |    1 
 svx/source/sidebar/PanelFactory.cxx                          |    5 
 svx/source/sidebar/inspector/InspectorTextPanel.cxx          |   77 +++++
 svx/source/sidebar/inspector/InspectorTextPanel.hxx          |   55 +++
 svx/uiconfig/ui/inspectortextpanel.ui                        |  156 +++++++++++
 7 files changed, 344 insertions(+)

New commits:
commit 9d6e64ba575c12ce4ab381332f8971e55ffe9972
Author:     Shivam Kumar Singh <shivamhere247 at gmail.com>
AuthorDate: Sat May 9 19:41:25 2020 +0530
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Mon May 18 11:01:41 2020 +0200

    Added a new tab "Styles Inspector" at the side bar
    
    Patch significance :-
    1) Added a new tab "Styles Inspector" at the side bar
    2) Added the "Character Styles" properties in the inspector
    
    Change-Id: I717f0a555d9c90f833c61b641c8eba53f93d4655
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93909
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
index af6acf5218a9..fae993013b49 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
@@ -41,6 +41,29 @@
         </prop>
       </node>
 
+      <node oor:name="InspectorDeck" oor:op="replace">
+        <prop oor:name="Title" oor:type="xs:string">
+          <value xml:lang="en-US">Styles Inspector</value>
+        </prop>
+        <prop oor:name="Id" oor:type="xs:string">
+          <value>InspectorDeck</value>
+        </prop>
+        <prop oor:name="IconURL" oor:type="xs:string">
+          <value>private:graphicrepository/cmd/lc_editglossary.png</value>
+        </prop>
+        <prop oor:name="ContextList">
+          <value oor:separator=";">
+            WriterVariants, any, visible ;
+          </value>
+        </prop>
+        <prop oor:name="OrderIndex" oor:type="xs:int">
+          <value>450</value>
+        </prop>
+        <prop oor:name="IsExperimental" oor:type="xs:boolean">
+          <value>true</value>
+        </prop>
+      </node>
+
       <node oor:name="WriterPageDeck" oor:op="replace">
         <prop oor:name="Title" oor:type="xs:string">
           <value xml:lang="en-US">Page</value>
@@ -372,6 +395,32 @@
         </prop>
       </node>
 
+      <node oor:name="InspectorTextPanel" oor:op="replace">
+        <prop oor:name="Title" oor:type="xs:string">
+          <value xml:lang="en-US">Character Styles</value>
+        </prop>
+        <prop oor:name="Id" oor:type="xs:string">
+          <value>InspectorTextPanel</value>
+        </prop>
+        <prop oor:name="DeckId" oor:type="xs:string">
+          <value>InspectorDeck</value>
+        </prop>
+        <prop oor:name="ContextList">
+          <value oor:separator=";">
+            WriterVariants, any, visible ;
+          </value>
+        </prop>
+        <prop oor:name="ImplementationURL" oor:type="xs:string">
+          <value>private:resource/toolpanel/SvxPanelFactory/InspectorTextPanel</value>
+        </prop>
+        <prop oor:name="OrderIndex" oor:type="xs:int">
+          <value>120</value>
+        </prop>
+        <prop oor:name="IsExperimental" oor:type="xs:boolean">
+          <value>true</value>
+        </prop>
+      </node>
+
       <node oor:name="MediaPlaybackPanel" oor:op="replace">
         <prop oor:name="Title" oor:type="xs:string">
           <value xml:lang="en-US">Media Playback</value>
diff --git a/svx/Library_svx.mk b/svx/Library_svx.mk
index 8f8dd0c7020f..a378df63702d 100644
--- a/svx/Library_svx.mk
+++ b/svx/Library_svx.mk
@@ -177,6 +177,7 @@ $(eval $(call gb_Library_add_exception_objects,svx,\
     svx/source/mnuctrls/smarttagmenu \
     svx/source/sidebar/ContextChangeEventMultiplexer \
     svx/source/sidebar/EmptyPanel \
+    svx/source/sidebar/inspector/InspectorTextPanel \
     svx/source/sidebar/nbdtmg \
     svx/source/sidebar/nbdtmgfact	\
     svx/source/sidebar/PanelFactory \
diff --git a/svx/UIConfig_svx.mk b/svx/UIConfig_svx.mk
index 1a6a87cca4de..fdc7d1b3bc52 100644
--- a/svx/UIConfig_svx.mk
+++ b/svx/UIConfig_svx.mk
@@ -80,6 +80,7 @@ $(eval $(call gb_UIConfig_add_uifiles,svx,\
 	svx/uiconfig/ui/headfootformatpage \
 	svx/uiconfig/ui/imapdialog \
 	svx/uiconfig/ui/imapmenu \
+	svx/uiconfig/ui/inspectortextpanel \
 	svx/uiconfig/ui/interimdockparent \
 	svx/uiconfig/ui/interimparent \
 	svx/uiconfig/ui/labelbox \
diff --git a/svx/source/sidebar/PanelFactory.cxx b/svx/source/sidebar/PanelFactory.cxx
index e37648b38c25..6b8ed657351e 100644
--- a/svx/source/sidebar/PanelFactory.cxx
+++ b/svx/source/sidebar/PanelFactory.cxx
@@ -20,6 +20,7 @@
 #include <config_features.h>
 
 #include "text/TextPropertyPanel.hxx"
+#include "inspector/InspectorTextPanel.hxx"
 #include "styles/StylesPropertyPanel.hxx"
 #include "paragraph/ParaPropertyPanel.hxx"
 #include "lists/ListsPropertyPanel.hxx"
@@ -124,6 +125,10 @@ Reference<ui::XUIElement> SAL_CALL PanelFactory::createUIElement (
     {
         pControl = TextPropertyPanel::Create(pParentWindow, xFrame);
     }
+    else if (rsResourceURL.endsWith("/InspectorTextPanel"))
+    {
+        pControl = InspectorTextPanel::Create(pParentWindow, xFrame);
+    }
     else if (rsResourceURL.endsWith("/StylesPropertyPanel"))
     {
         pControl = StylesPropertyPanel::Create(pParentWindow, xFrame);
diff --git a/svx/source/sidebar/inspector/InspectorTextPanel.cxx b/svx/source/sidebar/inspector/InspectorTextPanel.cxx
new file mode 100644
index 000000000000..0c719dfccb2f
--- /dev/null
+++ b/svx/source/sidebar/inspector/InspectorTextPanel.cxx
@@ -0,0 +1,77 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+
+#include "InspectorTextPanel.hxx"
+
+#include <com/sun/star/lang/IllegalArgumentException.hpp>
+#include <comphelper/lok.hxx>
+#include <sfx2/lokhelper.hxx>
+
+using namespace css;
+
+namespace svx::sidebar
+{
+VclPtr<vcl::Window>
+InspectorTextPanel::Create(vcl::Window* pParent,
+                           const css::uno::Reference<css::frame::XFrame>& rxFrame)
+{
+    if (pParent == nullptr)
+        throw lang::IllegalArgumentException("no parent Window given to InspectorTextPanel::Create",
+                                             nullptr, 0);
+    if (!rxFrame.is())
+        throw lang::IllegalArgumentException("no XFrame given to InspectorTextPanel::Create",
+                                             nullptr, 1);
+
+    return VclPtr<InspectorTextPanel>::Create(pParent, rxFrame);
+}
+
+InspectorTextPanel::InspectorTextPanel(vcl::Window* pParent,
+                                       const css::uno::Reference<css::frame::XFrame>& rxFrame)
+    : PanelLayout(pParent, "InspectorTextPanel", "svx/ui/inspectortextpanel.ui", rxFrame)
+    , mxFont(m_xBuilder->weld_toolbar("font"))
+    , mxFontDispatch(new ToolbarUnoDispatcher(*mxFont, *m_xBuilder, rxFrame))
+    , mxFontHeight(m_xBuilder->weld_toolbar("fontheight"))
+    , mxFontHeightDispatch(new ToolbarUnoDispatcher(*mxFontHeight, *m_xBuilder, rxFrame))
+{
+}
+
+InspectorTextPanel::~InspectorTextPanel() { disposeOnce(); }
+
+void InspectorTextPanel::dispose()
+{
+    mxFontHeightDispatch.reset();
+    mxFontDispatch.reset();
+
+    mxFontHeight.reset();
+    mxFont.reset();
+
+    PanelLayout::dispose();
+}
+
+void InspectorTextPanel::HandleContextChange(const vcl::EnumContext& rContext)
+{
+    if (maContext == rContext)
+        return;
+
+    maContext = rContext;
+}
+
+} // end of namespace svx::sidebar
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/sidebar/inspector/InspectorTextPanel.hxx b/svx/source/sidebar/inspector/InspectorTextPanel.hxx
new file mode 100644
index 000000000000..ed8b24a52d48
--- /dev/null
+++ b/svx/source/sidebar/inspector/InspectorTextPanel.hxx
@@ -0,0 +1,55 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ *   Licensed to the Apache Software Foundation (ASF) under one or more
+ *   contributor license agreements. See the NOTICE file distributed
+ *   with this work for additional information regarding copyright
+ *   ownership. The ASF licenses this file to you under the Apache
+ *   License, Version 2.0 (the "License"); you may not use this file
+ *   except in compliance with the License. You may obtain a copy of
+ *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
+ */
+#pragma once
+
+#include <sfx2/sidebar/IContextChangeReceiver.hxx>
+#include <sfx2/weldutils.hxx>
+#include <vcl/EnumContext.hxx>
+#include <sfx2/sidebar/PanelLayout.hxx>
+
+namespace svx
+{
+namespace sidebar
+{
+class InspectorTextPanel : public PanelLayout, public ::sfx2::sidebar::IContextChangeReceiver
+{
+public:
+    virtual ~InspectorTextPanel() override;
+    virtual void dispose() override;
+
+    static VclPtr<vcl::Window> Create(vcl::Window* pParent,
+                                      const css::uno::Reference<css::frame::XFrame>& rxFrame);
+
+    virtual void HandleContextChange(const vcl::EnumContext& rContext) override;
+
+    InspectorTextPanel(vcl::Window* pParent,
+                       const css::uno::Reference<css::frame::XFrame>& rxFrame);
+
+private:
+    std::unique_ptr<weld::Toolbar> mxFont;
+    std::unique_ptr<ToolbarUnoDispatcher> mxFontDispatch;
+    std::unique_ptr<weld::Toolbar> mxFontHeight;
+    std::unique_ptr<ToolbarUnoDispatcher> mxFontHeightDispatch;
+
+    vcl::EnumContext maContext;
+};
+}
+} // end of namespace svx::sidebar
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/uiconfig/ui/inspectortextpanel.ui b/svx/uiconfig/ui/inspectortextpanel.ui
new file mode 100644
index 000000000000..f3966cc687fd
--- /dev/null
+++ b/svx/uiconfig/ui/inspectortextpanel.ui
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.22.0 -->
+<interface domain="svx">
+  <requires lib="gtk+" version="3.18"/>
+  <object class="GtkGrid" id="InspectorTextPanel">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="hexpand">True</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="border_width">6</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">3</property>
+        <child>
+          <object class="GtkBox" id="box3">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkLabel" id="fontnamelabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="xpad">10</property>
+                <property name="label" translatable="yes" context="inspectortextpanel|fontnamelabel">Font Name</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">font</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolbar" id="font">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="hexpand">True</property>
+                <property name="toolbar_style">icons</property>
+                <property name="show_arrow">False</property>
+                <property name="icon_size">2</property>
+                <child>
+                  <object class="GtkToolItem" id=".uno:CharFontName">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="hexpand">True</property>
+                    <child>
+                      <object class="GtkComboBoxText" id="fontnamecombobox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="hexpand">True</property>
+                        <property name="has_entry">True</property>
+                        <property name="popup_fixed_width">False</property>
+                        <child internal-child="entry">
+                          <object class="GtkEntry">
+                            <property name="can_focus">True</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkBox" id="box2">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="spacing">6</property>
+            <child>
+              <object class="GtkLabel" id="fontsizelabel">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="xpad">15</property>
+                <property name="label" translatable="yes" context="inspectortextpanel|fontsizelabel">Font Size</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">fontheight</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolbar" id="fontheight">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="toolbar_style">icons</property>
+                <property name="show_arrow">False</property>
+                <property name="icon_size">2</property>
+                <child>
+                  <object class="GtkToolItem" id=".uno:FontHeight">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="GtkComboBoxText" id="fontsizecombobox">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="has_entry">True</property>
+                        <child internal-child="entry">
+                          <object class="GtkEntry">
+                            <property name="can_focus">True</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">True</property>
+                    <property name="homogeneous">False</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="pack_type">end</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+      </packing>
+    </child>
+  </object>
+</interface>


More information about the Libreoffice-commits mailing list