[Libreoffice-commits] core.git: solenv/sanitizers sw/source sw/uiconfig

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Fri Dec 20 15:41:50 UTC 2019


 solenv/sanitizers/ui/modules/swriter.suppr |    3 -
 sw/source/uibase/sidebar/ThemePanel.cxx    |   55 +++++++++++--------
 sw/source/uibase/sidebar/ThemePanel.hxx    |   20 ++-----
 sw/uiconfig/swriter/ui/sidebartheme.ui     |   80 +++++++++++++++++++++++++----
 4 files changed, 108 insertions(+), 50 deletions(-)

New commits:
commit 8c0a015f7f4a007b1cb6ac293838d75741f8ae0a
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Fri Dec 20 10:59:50 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Fri Dec 20 16:40:34 2019 +0100

    weld ThemePanel
    
    Change-Id: I5eca63762e5e243ae791e15655fac60cc9437aa5
    Reviewed-on: https://gerrit.libreoffice.org/85591
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/solenv/sanitizers/ui/modules/swriter.suppr b/solenv/sanitizers/ui/modules/swriter.suppr
index c02c0c77d3cb..9fad88ba117b 100644
--- a/solenv/sanitizers/ui/modules/swriter.suppr
+++ b/solenv/sanitizers/ui/modules/swriter.suppr
@@ -207,9 +207,6 @@ sw/uiconfig/swriter/ui/selectaddressdialog.ui://GtkLabel[@id='connecting'] orpha
 sw/uiconfig/swriter/ui/selecttabledialog.ui://GtkLabel[@id='select'] orphan-label
 sw/uiconfig/swriter/ui/sidebarwrap.ui://GtkLabel[@id='label1'] orphan-label
 sw/uiconfig/swriter/ui/sidebarwrap.ui://GtkLabel[@id='customlabel'] orphan-label
-sw/uiconfig/swriter/ui/sidebartheme.ui://GtkLabel[@id='label1'] orphan-label
-sw/uiconfig/swriter/ui/sidebartheme.ui://GtkTreeView[@id='listbox_fonts'] no-labelled-by
-sw/uiconfig/swriter/ui/sidebartheme.ui://GtkLabel[@id='label2'] orphan-label
 sw/uiconfig/swriter/ui/spellmenu.ui://GtkMenuItem[@id='spelldialog'] button-no-label
 sw/uiconfig/swriter/ui/spellmenu.ui://GtkMenuItem[@id='correctdialog'] button-no-label
 sw/uiconfig/swriter/ui/statisticsinfopage.ui://GtkLabel[@id='nopages'] orphan-label
diff --git a/sw/source/uibase/sidebar/ThemePanel.cxx b/sw/source/uibase/sidebar/ThemePanel.cxx
index 499863889217..d2f6e64cd08b 100644
--- a/sw/source/uibase/sidebar/ThemePanel.cxx
+++ b/sw/source/uibase/sidebar/ThemePanel.cxx
@@ -426,25 +426,24 @@ VclPtr<vcl::Window> ThemePanel::Create (vcl::Window* pParent,
 
 ThemePanel::ThemePanel(vcl::Window* pParent,
                        const css::uno::Reference<css::frame::XFrame>& rxFrame)
-    : PanelLayout(pParent, "ThemePanel", "modules/swriter/ui/sidebartheme.ui", rxFrame)
+    : PanelLayout(pParent, "ThemePanel", "modules/swriter/ui/sidebartheme.ui", rxFrame, true)
+    , mxListBoxFonts(m_xBuilder->weld_tree_view("listbox_fonts"))
+    , mxValueSetColors(new SvtValueSet(nullptr))
+    , mxValueSetColorsWin(new weld::CustomWeld(*m_xBuilder, "valueset_colors", *mxValueSetColors))
+    , mxApplyButton(m_xBuilder->weld_button("apply"))
     , maColorSets()
 {
-    get(mpListBoxFonts, "listbox_fonts");
-    get(mpValueSetColors, "valueset_colors");
-    get(mpApplyButton, "apply");
+    mxValueSetColors->SetColCount(2);
+    mxValueSetColors->SetLineCount(3);
 
-    mpValueSetColors->SetColCount(2);
-    mpValueSetColors->SetLineCount(4);
-
-    mpApplyButton->SetClickHdl(LINK(this, ThemePanel, ClickHdl));
-    mpListBoxFonts->SetDoubleClickHdl(LINK(this, ThemePanel, DoubleClickHdl));
-    mpValueSetColors->SetDoubleClickHdl(LINK(this, ThemePanel, DoubleClickValueSetHdl));
+    mxApplyButton->connect_clicked(LINK(this, ThemePanel, ClickHdl));
+    mxListBoxFonts->connect_row_activated(LINK(this, ThemePanel, DoubleClickHdl));
+    mxValueSetColors->SetDoubleClickHdl(LINK(this, ThemePanel, DoubleClickValueSetHdl));
 
     std::vector<FontSet> aFontSets = initFontSets();
     for (const FontSet & rFontSet : aFontSets)
-    {
-        mpListBoxFonts->InsertEntry(rFontSet.maName);
-    }
+        mxListBoxFonts->append_text(rFontSet.maName);
+    mxListBoxFonts->set_size_request(-1, mxListBoxFonts->get_height_rows(aFontSets.size()));
 
     maColorSets.init();
 
@@ -455,8 +454,12 @@ ThemePanel::ThemePanel(vcl::Window* pParent,
 
         const OUString& aName = rColorSet.getName();
         BitmapEx aPreview = GenerateColorPreview(rColorSet);
-        mpValueSetColors->InsertItem(i, Image(aPreview), aName);
+
+        sal_uInt16 nId = i + 1;
+        mxValueSetColors->InsertItem(nId, Image(aPreview), aName);
     }
+
+    mxValueSetColors->SetOptimalSize();
 }
 
 ThemePanel::~ThemePanel()
@@ -466,33 +469,39 @@ ThemePanel::~ThemePanel()
 
 void ThemePanel::dispose()
 {
-    mpListBoxFonts.clear();
-    mpValueSetColors.clear();
-    mpApplyButton.clear();
+    mxListBoxFonts.reset();
+    mxValueSetColorsWin.reset();
+    mxValueSetColors.reset();
+    mxApplyButton.reset();
 
     PanelLayout::dispose();
 }
 
-IMPL_LINK_NOARG(ThemePanel, ClickHdl, Button*, void)
+IMPL_LINK_NOARG(ThemePanel, ClickHdl, weld::Button&, void)
 {
     DoubleClickHdl();
 }
-IMPL_LINK_NOARG(ThemePanel, DoubleClickValueSetHdl, ValueSet*, void)
+
+IMPL_LINK_NOARG(ThemePanel, DoubleClickValueSetHdl, SvtValueSet*, void)
 {
     DoubleClickHdl();
 }
-IMPL_LINK_NOARG(ThemePanel, DoubleClickHdl, ListBox&, void)
+
+IMPL_LINK_NOARG(ThemePanel, DoubleClickHdl, weld::TreeView&, bool)
 {
     DoubleClickHdl();
+    return true;
 }
+
 void ThemePanel::DoubleClickHdl()
 {
     SwDocShell* pDocSh = static_cast<SwDocShell*>(SfxObjectShell::Current());
     if (pDocSh)
     {
-        OUString sEntryFonts = mpListBoxFonts->GetSelectedEntry();
-        sal_uInt32 nItemId = mpValueSetColors->GetSelectedItemId();
-        OUString sEntryColors = maColorSets.getColorSet(nItemId).getName();
+        OUString sEntryFonts = mxListBoxFonts->get_selected_text();
+        sal_uInt32 nItemId = mxValueSetColors->GetSelectedItemId();
+        sal_uInt32 nIndex = nItemId - 1;
+        OUString sEntryColors = maColorSets.getColorSet(nIndex).getName();
 
         StyleSet aStyleSet = setupThemes();
 
diff --git a/sw/source/uibase/sidebar/ThemePanel.hxx b/sw/source/uibase/sidebar/ThemePanel.hxx
index 898caae9fc4a..1eafe682d450 100644
--- a/sw/source/uibase/sidebar/ThemePanel.hxx
+++ b/sw/source/uibase/sidebar/ThemePanel.hxx
@@ -12,16 +12,9 @@
 #define INCLUDED_SW_SOURCE_UIBASE_SIDEBAR_THEMEPANEL_HXX
 
 #include <com/sun/star/frame/XFrame.hpp>
-
 #include <svx/sidebar/PanelLayout.hxx>
-
 #include <sfx2/sidebar/ControllerItem.hxx>
-
-#include <vcl/button.hxx>
-#include <vcl/lstbox.hxx>
-
 #include <svtools/valueset.hxx>
-
 #include <svx/ColorSets.hxx>
 
 namespace sw { namespace sidebar {
@@ -45,15 +38,16 @@ private:
 
     virtual void dispose() override;
 
-    VclPtr<ListBox> mpListBoxFonts;
-    VclPtr<ValueSet> mpValueSetColors;
-    VclPtr<PushButton> mpApplyButton;
+    std::unique_ptr<weld::TreeView> mxListBoxFonts;
+    std::unique_ptr<SvtValueSet> mxValueSetColors;
+    std::unique_ptr<weld::CustomWeld> mxValueSetColorsWin;
+    std::unique_ptr<weld::Button> mxApplyButton;
 
     svx::ColorSets maColorSets;
 
-    DECL_LINK(ClickHdl, Button*, void);
-    DECL_LINK(DoubleClickHdl, ListBox&, void);
-    DECL_LINK(DoubleClickValueSetHdl, ValueSet*, void);
+    DECL_LINK(ClickHdl, weld::Button&, void);
+    DECL_LINK(DoubleClickHdl, weld::TreeView&, bool);
+    DECL_LINK(DoubleClickValueSetHdl, SvtValueSet*, void);
     void DoubleClickHdl();
 
 };
diff --git a/sw/uiconfig/swriter/ui/sidebartheme.ui b/sw/uiconfig/swriter/ui/sidebartheme.ui
index b93c6504345d..f4734aae3adc 100644
--- a/sw/uiconfig/swriter/ui/sidebartheme.ui
+++ b/sw/uiconfig/swriter/ui/sidebartheme.ui
@@ -1,9 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="sw">
   <requires lib="gtk+" version="3.18"/>
-  <requires lib="LibreOffice" version="1.0"/>
-
+  <object class="GtkTreeStore" id="liststore1">
+    <columns>
+      <!-- column-name text -->
+      <column type="gchararray"/>
+      <!-- column-name id -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
   <object class="GtkGrid" id="ThemePanel">
     <property name="visible">True</property>
     <property name="can_focus">False</property>
@@ -13,18 +19,24 @@
       <object class="GtkAlignment" id="alignment1">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <object class="GtkGrid" id="grid1">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <property name="vexpand">True</property>
             <property name="row_spacing">6</property>
             <property name="column_spacing">6</property>
             <child>
               <object class="GtkLabel" id="label1">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="xalign">0</property>
                 <property name="label" translatable="yes" context="sidebartheme|label1">Fonts</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">listbox_fonts</property>
+                <property name="xalign">0</property>
               </object>
               <packing>
                 <property name="left_attach">0</property>
@@ -32,13 +44,37 @@
               </packing>
             </child>
             <child>
-              <object class="GtkTreeView" id="listbox_fonts">
+              <object class="GtkScrolledWindow">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="hexpand">True</property>
-                <property name="show_expanders">False</property>
-                <child internal-child="selection">
-                  <object class="GtkTreeSelection" id="treeview-selection1"/>
+                <property name="vexpand">True</property>
+                <property name="shadow_type">in</property>
+                <child>
+                  <object class="GtkTreeView" id="listbox_fonts">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="hexpand">True</property>
+                    <property name="vexpand">True</property>
+                    <property name="model">liststore1</property>
+                    <property name="headers_visible">False</property>
+                    <property name="headers_clickable">False</property>
+                    <property name="search_column">0</property>
+                    <property name="show_expanders">False</property>
+                    <child internal-child="selection">
+                      <object class="GtkTreeSelection"/>
+                    </child>
+                    <child>
+                      <object class="GtkTreeViewColumn" id="treeviewcolumn1">
+                        <child>
+                          <object class="GtkCellRendererText" id="cellrenderertext1"/>
+                          <attributes>
+                            <attribute name="text">0</attribute>
+                          </attributes>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
                 </child>
               </object>
               <packing>
@@ -50,8 +86,10 @@
               <object class="GtkLabel" id="label2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="xalign">0</property>
                 <property name="label" translatable="yes" context="sidebartheme|label2">Colors</property>
+                <property name="use_underline">True</property>
+                <property name="mnemonic_widget">valueset_colors</property>
+                <property name="xalign">0</property>
               </object>
               <packing>
                 <property name="left_attach">0</property>
@@ -72,9 +110,29 @@
               </packing>
             </child>
             <child>
-              <object class="svtlo-ValueSet" id="valueset_colors">
+              <object class="GtkScrolledWindow" id="valuesetwin">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
+                <property name="can_focus">True</property>
+                <property name="hexpand">True</property>
+                <property name="vexpand">True</property>
+                <property name="hscrollbar_policy">never</property>
+                <property name="vscrollbar_policy">never</property>
+                <property name="shadow_type">in</property>
+                <child>
+                  <object class="GtkViewport">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="GtkDrawingArea" id="valueset_colors">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="events">GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property>
+                        <property name="hexpand">True</property>
+                        <property name="vexpand">True</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="left_attach">0</property>


More information about the Libreoffice-commits mailing list