officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu |    5 
 sc/Library_sc.mk                                                  |    2 
 sc/UIConfig_scalc.mk                                              |    1 
 sc/inc/TableStylesControl.hxx                                     |   32 +
 sc/source/ui/app/scdll.cxx                                        |    2 
 sc/source/ui/cctrl/TableStylesBox.cxx                             |  141 ++++++
 sc/source/ui/cctrl/TableStylesControl.cxx                         |   65 +++
 sc/source/ui/inc/TableStylesBox.hxx                               |   42 ++
 sc/source/ui/view/tabview3.cxx                                    |    1 
 sc/uiconfig/scalc/ui/notebookbar_online.ui                        |   25 +
 sc/uiconfig/scalc/ui/tablestylesbox.ui                            |  202 
++++++++++
 sfx2/source/control/unoctitm.cxx                                  |    1 
 vcl/jsdialog/enabled.cxx                                          |    1 
 vcl/jsdialog/jsdialogbuilder.cxx                                  |    4 
 14 files changed, 521 insertions(+), 3 deletions(-)

New commits:
commit 118210092359111d0040332e0b0726e482263804
Author:     Balazs Varga <[email protected]>
AuthorDate: Wed Nov 26 09:04:21 2025 +0100
Commit:     Balazs Varga <[email protected]>
CommitDate: Thu Dec 4 09:27:28 2025 +0100

    Table Styles: Add NoteBookBar implementation for table styles
    
    New ui file for the notebookbars which includes all the database
    settings options.
    
    Also fix some view shell issue when we deselect a table context
    and Insert Table is not active
    
    Since JSCheckButton is kind of a button which can have a default
    state (false) always need to send Update to online for registering
    the api call connecting to the checkbutton.
    
    Change-Id: Ie9701d2897b389c2a0192650a2f907e5fae59673
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194917
    Reviewed-by: Gökay ŞATIR <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>

diff --git a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
index fb5406a7e5b4..8b7c974ca840 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu
@@ -1167,6 +1167,11 @@
           <value>1</value>
         </prop>
       </node>
+      <node oor:name=".uno:DatabaseSettings" oor:op="replace">
+        <prop oor:name="Label" oor:type="xs:string">
+          <value xml:lang="en-US">Table Style Options</value>
+        </prop>
+      </node>
       <node oor:name=".uno:DataTableMenu" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">
           <value xml:lang="en-US">~Table</value>
diff --git a/sc/Library_sc.mk b/sc/Library_sc.mk
index dc46636209e6..f4eda1ad1ebd 100644
--- a/sc/Library_sc.mk
+++ b/sc/Library_sc.mk
@@ -404,6 +404,8 @@ $(eval $(call gb_Library_add_exception_objects,sc,\
     sc/source/ui/cctrl/tbzoomsliderctrl \
     sc/source/ui/cctrl/SheetViewBox \
     sc/source/ui/cctrl/SheetViewControl \
+    sc/source/ui/cctrl/TableStylesBox \
+    sc/source/ui/cctrl/TableStylesControl \
     sc/source/ui/condformat/condformatdlg \
     sc/source/ui/condformat/condformatdlgentry \
     sc/source/ui/condformat/condformatdlgdata \
diff --git a/sc/UIConfig_scalc.mk b/sc/UIConfig_scalc.mk
index e330e6d7a8ab..3607c7d91ad4 100644
--- a/sc/UIConfig_scalc.mk
+++ b/sc/UIConfig_scalc.mk
@@ -265,6 +265,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/scalc,\
        sc/uiconfig/scalc/ui/subtotaloptionspage \
        sc/uiconfig/scalc/ui/subtotalgrppage \
        sc/uiconfig/scalc/ui/statisticsinfopage \
+       sc/uiconfig/scalc/ui/tablestylesbox \
        sc/uiconfig/scalc/ui/tabcolordialog \
        sc/uiconfig/scalc/ui/textimportoptions \
        sc/uiconfig/scalc/ui/textimportcsv \
diff --git a/sc/inc/TableStylesControl.hxx b/sc/inc/TableStylesControl.hxx
new file mode 100644
index 000000000000..a0bf7aeb002a
--- /dev/null
+++ b/sc/inc/TableStylesControl.hxx
@@ -0,0 +1,32 @@
+/* -*- 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/.
+ */
+
+#pragma once
+
+#include <sfx2/tbxctrl.hxx>
+
+namespace sc
+{
+/** Toolbox control for showing the Table Styles in the toolbar / notebookbar 
*/
+class TableStylesControl final : public SfxToolBoxControl
+{
+public:
+    SFX_DECL_TOOLBOX_CONTROL();
+
+    TableStylesControl(sal_uInt16 nSlotId, ToolBoxItemId nId, ToolBox& 
rToolBox);
+    virtual ~TableStylesControl() override;
+
+    virtual void StateChangedAtToolBoxControl(sal_uInt16 nSID, SfxItemState 
eState,
+                                              const SfxPoolItem* pState) 
override;
+    virtual VclPtr<InterimItemWindow> CreateItemWindow(vcl::Window* pParent) 
override;
+};
+
+} // end of namespace sc
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/app/scdll.cxx b/sc/source/ui/app/scdll.cxx
index b15e3c3fd605..5766417d13ad 100644
--- a/sc/source/ui/app/scdll.cxx
+++ b/sc/source/ui/app/scdll.cxx
@@ -74,6 +74,7 @@
 #include <tbzoomsliderctrl.hxx>
 #include <svx/zoomsliderctrl.hxx>
 #include <SheetViewControl.hxx>
+#include <TableStylesControl.hxx>
 
 #include <svx/xmlsecctrl.hxx>
 // Child windows
@@ -152,6 +153,7 @@ void ScDLL::Init()
     svx::FormatPaintBrushToolBoxControl::RegisterControl(SID_FORMATPAINTBRUSH, 
 pMod );
     sc::ScNumberFormatControl       ::RegisterControl(SID_NUMBER_TYPE_FORMAT,  
 pMod );
     sc::SheetViewControl::RegisterControl(FID_CURRENT_SHEET_VIEW, pMod);
+    sc::TableStylesControl          ::RegisterControl(SID_DATABASE_SETTINGS,   
 pMod);
 
     SvxGrafModeToolBoxControl       ::RegisterControl(SID_ATTR_GRAF_MODE,      
 pMod);
     SvxGrafRedToolBoxControl        ::RegisterControl(SID_ATTR_GRAF_RED,       
 pMod);
diff --git a/sc/source/ui/cctrl/TableStylesBox.cxx 
b/sc/source/ui/cctrl/TableStylesBox.cxx
new file mode 100644
index 000000000000..b239de1cc69c
--- /dev/null
+++ b/sc/source/ui/cctrl/TableStylesBox.cxx
@@ -0,0 +1,141 @@
+/* -*- 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/.
+ */
+
+#include <TableStylesBox.hxx>
+
+#include <sfx2/dispatch.hxx>
+#include <sfx2/viewfrm.hxx>
+#include <sfx2/viewsh.hxx>
+#include <svl/intitem.hxx>
+#include <svl/itemset.hxx>
+
+#include <globstr.hrc>
+#include <scresid.hxx>
+#include <sc.hrc>
+#include <docsh.hxx>
+#include <viewdata.hxx>
+
+TableStylesBox::TableStylesBox(vcl::Window* pParent)
+    : InterimItemWindow(pParent, u"modules/scalc/ui/tablestylesbox.ui"_ustr, 
u"TableStylesBox"_ustr,
+                        true, 
reinterpret_cast<sal_uInt64>(SfxViewShell::Current()))
+    , m_xChkHeaderRow(m_xBuilder->weld_check_button(u"chk_header_row2"_ustr))
+    , m_xChkTotalRow(m_xBuilder->weld_check_button(u"chk_total_row2"_ustr))
+    , 
m_xChkFilterButtons(m_xBuilder->weld_check_button(u"chk_filter_buttons2"_ustr))
+    , m_xChkBandedRows(m_xBuilder->weld_check_button(u"chk_banded_rows2"_ustr))
+    , 
m_xChkBandedColumns(m_xBuilder->weld_check_button(u"chk_banded_cols2"_ustr))
+    , 
m_xChkFirstColumn(m_xBuilder->weld_check_button(u"chk_first_column2"_ustr))
+    , m_xChkLastColumn(m_xBuilder->weld_check_button(u"chk_last_column2"_ustr))
+    , m_xCmbStyle(m_xBuilder->weld_combo_box(u"tablestyles_cb2"_ustr))
+{
+    m_xChkHeaderRow->connect_toggled(LINK(this, TableStylesBox, ToggleHdl));
+    m_xChkTotalRow->connect_toggled(LINK(this, TableStylesBox, ToggleHdl));
+    m_xChkFilterButtons->connect_toggled(LINK(this, TableStylesBox, 
ToggleHdl));
+    m_xChkBandedRows->connect_toggled(LINK(this, TableStylesBox, ToggleHdl));
+    m_xChkBandedColumns->connect_toggled(LINK(this, TableStylesBox, 
ToggleHdl));
+    m_xChkFirstColumn->connect_toggled(LINK(this, TableStylesBox, ToggleHdl));
+    m_xChkLastColumn->connect_toggled(LINK(this, TableStylesBox, ToggleHdl));
+
+    m_xCmbStyle->connect_changed(LINK(this, TableStylesBox, SelectHdl));
+    m_xCmbStyle->connect_key_press(LINK(this, TableStylesBox, KeyInputHdl));
+    // to have enough space for the entries since we have two row of entries
+    SetSizePixel(pParent->get_preferred_size() * 2);
+    // TODO: no Table tab page for core
+}
+
+void TableStylesBox::dispose()
+{
+    m_xChkHeaderRow.reset();
+    m_xChkTotalRow.reset();
+    m_xChkFilterButtons.reset();
+    m_xChkBandedRows.reset();
+    m_xChkBandedColumns.reset();
+    m_xChkFirstColumn.reset();
+    m_xChkLastColumn.reset();
+    m_xCmbStyle.reset();
+
+    InterimItemWindow::dispose();
+}
+
+TableStylesBox::~TableStylesBox() { disposeOnce(); }
+
+void TableStylesBox::Update(const ScDatabaseSettingItem* pItem)
+{
+    m_xChkHeaderRow->set_active(pItem->HasHeaderRow());
+    m_xChkTotalRow->set_active(pItem->HasTotalRow());
+    m_xChkFirstColumn->set_active(pItem->HasFirstCol());
+    m_xChkLastColumn->set_active(pItem->HasLastCol());
+    m_xChkBandedRows->set_active(pItem->HasStripedRows());
+    m_xChkBandedColumns->set_active(pItem->HasStripedCols());
+    m_xChkFilterButtons->set_active(pItem->HasShowFilters());
+    m_xCmbStyle->set_active_id(pItem->GetStyleID());
+}
+
+IMPL_LINK_NOARG(TableStylesBox, ToggleHdl, weld::Toggleable&, void)
+{
+    auto* pViewFrame = SfxViewFrame::Current();
+    if (!pViewFrame)
+        return;
+
+    SfxDispatcher* pDispatcher = pViewFrame->GetBindings().GetDispatcher();
+    if (!pDispatcher)
+        return;
+
+    ScDatabaseSettingItem aItem(m_xChkHeaderRow->get_active(), 
m_xChkTotalRow->get_active(),
+                                m_xChkFirstColumn->get_active(), 
m_xChkLastColumn->get_active(),
+                                m_xChkBandedRows->get_active(), 
m_xChkBandedColumns->get_active(),
+                                m_xChkFilterButtons->get_active(), 
m_xCmbStyle->get_active_id());
+    pDispatcher->ExecuteList(SID_DATABASE_SETTINGS, SfxCallMode::RECORD, { 
&aItem });
+    pViewFrame->GetWindow().GrabFocus();
+}
+
+IMPL_LINK_NOARG(TableStylesBox, SelectHdl, weld::ComboBox&, void)
+{
+    auto* pViewFrame = SfxViewFrame::Current();
+    if (!pViewFrame)
+        return;
+
+    SfxDispatcher* pDispatcher = pViewFrame->GetBindings().GetDispatcher();
+    if (!pDispatcher)
+        return;
+
+    ScViewData* pViewData = ScDocShell::GetViewData();
+    if (!pViewData)
+        return;
+
+    const ScAddress aAddr = pViewData->GetCurPos();
+    const ScDBData* pDBData = pViewData->GetDocument().GetDBAtCursor(
+        aAddr.Col(), aAddr.Row(), aAddr.Tab(), ScDBDataPortion::AREA);
+
+    bool bChanged = true;
+    const OUString sValue = m_xCmbStyle->get_active_id();
+    if (pDBData && pDBData->GetTableStyleInfo())
+    {
+        const ScTableStyleParam* pParam = pDBData->GetTableStyleInfo();
+        if (pParam->maStyleID == sValue)
+            bChanged = false;
+    }
+
+    if (bChanged)
+    {
+        ScDatabaseSettingItem aItem(m_xChkHeaderRow->get_active(), 
m_xChkTotalRow->get_active(),
+                                    m_xChkFirstColumn->get_active(), 
m_xChkLastColumn->get_active(),
+                                    m_xChkBandedRows->get_active(),
+                                    m_xChkBandedColumns->get_active(),
+                                    m_xChkFilterButtons->get_active(), sValue);
+        pDispatcher->ExecuteList(SID_DATABASE_SETTINGS, SfxCallMode::RECORD, { 
&aItem });
+        pViewFrame->GetWindow().GrabFocus();
+    }
+}
+
+IMPL_LINK(TableStylesBox, KeyInputHdl, const KeyEvent&, rKEvt, bool)
+{
+    return ChildKeyInput(rKEvt);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/cctrl/TableStylesControl.cxx 
b/sc/source/ui/cctrl/TableStylesControl.cxx
new file mode 100644
index 000000000000..701c368c5dc4
--- /dev/null
+++ b/sc/source/ui/cctrl/TableStylesControl.cxx
@@ -0,0 +1,65 @@
+/* -*- 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/.
+ */
+
+#include <TableStylesControl.hxx>
+#include <TableStylesBox.hxx>
+#include <svl/intitem.hxx>
+#include <vcl/toolbox.hxx>
+#include <dbdata.hxx>
+
+using namespace sc;
+
+SFX_IMPL_TOOLBOX_CONTROL(TableStylesControl, ScDatabaseSettingItem);
+
+TableStylesControl::TableStylesControl(sal_uInt16 nSlotId, ToolBoxItemId nId, 
ToolBox& rTbx)
+    : SfxToolBoxControl(nSlotId, nId, rTbx)
+{
+}
+
+TableStylesControl::~TableStylesControl() {}
+
+void TableStylesControl::StateChangedAtToolBoxControl(sal_uInt16, SfxItemState 
eState,
+                                                      const SfxPoolItem* 
pState)
+{
+    ToolBoxItemId nId = GetId();
+    ToolBox& rToolBox = GetToolBox();
+    TableStylesBox* pTableStylesBox = 
static_cast<TableStylesBox*>(rToolBox.GetItemWindow(nId));
+
+    if (SfxItemState::DISABLED == eState)
+        pTableStylesBox->Disable();
+    else
+        pTableStylesBox->Enable();
+
+    rToolBox.EnableItem(nId, SfxItemState::DISABLED != eState);
+
+    switch (eState)
+    {
+        case SfxItemState::DEFAULT:
+        {
+            const ScDatabaseSettingItem* pDBItem
+                = static_cast<const ScDatabaseSettingItem*>(pState);
+            if (pDBItem)
+                pTableStylesBox->Update(pDBItem);
+            break;
+        }
+
+        default:
+            break;
+    }
+}
+
+VclPtr<InterimItemWindow> TableStylesControl::CreateItemWindow(vcl::Window* 
pParent)
+{
+    VclPtr<TableStylesBox> pControl = VclPtr<TableStylesBox>::Create(pParent);
+    pControl->Show();
+
+    return pControl;
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/TableStylesBox.hxx 
b/sc/source/ui/inc/TableStylesBox.hxx
new file mode 100644
index 000000000000..ded18609471b
--- /dev/null
+++ b/sc/source/ui/inc/TableStylesBox.hxx
@@ -0,0 +1,42 @@
+/* -*- 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/.
+ */
+
+#pragma once
+
+#include <vcl/InterimItemWindow.hxx>
+#include <dbdata.hxx>
+
+/** Box / container for the combobox for showing / selecting the sheet view */
+class TableStylesBox final : public InterimItemWindow
+{
+public:
+    explicit TableStylesBox(vcl::Window* pParent);
+    virtual void dispose() override;
+    virtual ~TableStylesBox() override;
+
+    void Update(const ScDatabaseSettingItem* pItem);
+
+    weld::ComboBox* getWidget() { return m_xCmbStyle.get(); }
+
+private:
+    std::unique_ptr<weld::CheckButton> m_xChkHeaderRow;
+    std::unique_ptr<weld::CheckButton> m_xChkTotalRow;
+    std::unique_ptr<weld::CheckButton> m_xChkFilterButtons;
+    std::unique_ptr<weld::CheckButton> m_xChkBandedRows;
+    std::unique_ptr<weld::CheckButton> m_xChkBandedColumns;
+    std::unique_ptr<weld::CheckButton> m_xChkFirstColumn;
+    std::unique_ptr<weld::CheckButton> m_xChkLastColumn;
+    std::unique_ptr<weld::ComboBox> m_xCmbStyle;
+
+    DECL_LINK(ToggleHdl, weld::Toggleable&, void);
+    DECL_LINK(SelectHdl, weld::ComboBox&, void);
+    DECL_LINK(KeyInputHdl, const KeyEvent&, bool);
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index b11a15ac89c0..3f811ef10fe3 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -568,6 +568,7 @@ void ScTabView::SelectionChanged(bool bFromPaste)
 
     rBindings.Invalidate( SID_CURRENTCELL );    // -> Navigator
     rBindings.Invalidate( SID_AUTO_FILTER );    // -> Menu
+    rBindings.Invalidate( SID_INSERT_CALCTABLE );
     rBindings.Invalidate( FID_NOTE_VISIBLE );
     rBindings.Invalidate( FID_SHOW_NOTE );
     rBindings.Invalidate( FID_HIDE_NOTE );
diff --git a/sc/uiconfig/scalc/ui/notebookbar_online.ui 
b/sc/uiconfig/scalc/ui/notebookbar_online.ui
index ac926fe20410..ccabe97190c4 100644
--- a/sc/uiconfig/scalc/ui/notebookbar_online.ui
+++ b/sc/uiconfig/scalc/ui/notebookbar_online.ui
@@ -121,6 +121,31 @@
             <property name="position">3</property>
           </packing>
         </child>
+        <child>
+          <object class="sfxlo-NotebookbarToolBox" 
id="DatabaseSettingsToolBox">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="valign">center</property>
+            <property name="hexpand">True</property>
+            <property name="toolbar_style">both</property>
+            <property name="show_arrow">False</property>
+            <child>
+              <object class="GtkToolButton" id="Home-DatabaseSettings">
+                <property name="visible">True</property>
+                <property name="action_name">.uno:DatabaseSettings</property>
+              </object>
+              <packing>
+                <property name="expand">True</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">3</property>
+          </packing>
+        </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
diff --git a/sc/uiconfig/scalc/ui/tablestylesbox.ui 
b/sc/uiconfig/scalc/ui/tablestylesbox.ui
new file mode 100644
index 000000000000..134d3037f190
--- /dev/null
+++ b/sc/uiconfig/scalc/ui/tablestylesbox.ui
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.38.2 -->
+<interface domain="sc">
+  <requires lib="gtk+" version="3.20"/>
+  <object class="GtkBox" id="TableStylesBox">
+    <property name="visible">True</property>
+    <property name="can-focus">False</property>
+    <property name="valign">center</property>
+    <property name="spacing">6</property>
+    <child>
+      <!-- n-columns=4 n-rows=2 -->
+      <object class="GtkGrid" id="grid1">
+        <property name="visible">True</property>
+        <property name="can-focus">False</property>
+        <property name="valign">center</property>
+        <property name="column-spacing">4</property>
+        <child>
+          <object class="GtkCheckButton" id="chk_header_row2">
+            <property name="label" translatable="yes" 
context="tablestylebox|chk_header_row">Show Header Row</property>
+            <property name="visible">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">False</property>
+            <property name="hexpand">True</property>
+            <property name="draw-indicator">True</property>
+          </object>
+          <packing>
+            <property name="left-attach">0</property>
+            <property name="top-attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="chk_total_row2">
+            <property name="label" translatable="yes" 
context="tablestylebox|chk_total_row">Show Total Row</property>
+            <property name="visible">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">False</property>
+            <property name="hexpand">True</property>
+            <property name="draw-indicator">True</property>
+          </object>
+          <packing>
+            <property name="left-attach">0</property>
+            <property name="top-attach">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="chk_filter_buttons2">
+            <property name="label" translatable="yes" 
context="tablestylebox|chk_filter_buttons">Show Filter Buttons</property>
+            <property name="visible">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">False</property>
+            <property name="hexpand">True</property>
+            <property name="draw-indicator">True</property>
+          </object>
+          <packing>
+            <property name="left-attach">3</property>
+            <property name="top-attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="chk_first_column2">
+            <property name="label" translatable="yes" 
context="tablestylebox|chk_first_column">First Column</property>
+            <property name="visible">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">False</property>
+            <property name="hexpand">True</property>
+            <property name="draw-indicator">True</property>
+          </object>
+          <packing>
+            <property name="left-attach">2</property>
+            <property name="top-attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="chk_last_column2">
+            <property name="label" translatable="yes" 
context="tablestylebox|chk_last_column">Last Column</property>
+            <property name="visible">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">False</property>
+            <property name="hexpand">True</property>
+            <property name="draw-indicator">True</property>
+          </object>
+          <packing>
+            <property name="left-attach">2</property>
+            <property name="top-attach">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="chk_banded_rows2">
+            <property name="label" translatable="yes" 
context="tablestylebox|chk_banded_rows">Banded Rows</property>
+            <property name="visible">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">False</property>
+            <property name="hexpand">True</property>
+            <property name="draw-indicator">True</property>
+          </object>
+          <packing>
+            <property name="left-attach">1</property>
+            <property name="top-attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="chk_banded_cols2">
+            <property name="label" translatable="yes" 
context="tablestylebox|chk_banded_cols">Banded Columns</property>
+            <property name="visible">True</property>
+            <property name="can-focus">True</property>
+            <property name="receives-default">False</property>
+            <property name="hexpand">True</property>
+            <property name="draw-indicator">True</property>
+          </object>
+          <packing>
+            <property name="left-attach">1</property>
+            <property name="top-attach">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkComboBoxText" id="tablestyles_cb2">
+            <property name="visible">True</property>
+            <property name="can-focus">False</property>
+            <property name="active">0</property>
+            <items>
+              <item id="none" translatable="yes" 
context="tablestylebox|none">None</item>
+              <item id="TableStyleLight1" translatable="yes" 
context="tablestylebox|tablestylelight1">Table Style Light 1</item>
+              <item id="TableStyleLight2" translatable="yes" 
context="tablestylebox|tablestylelight2">Table Style Light 2</item>
+              <item id="TableStyleLight3" translatable="yes" 
context="tablestylebox|tablestylelight3">Table Style Light 3</item>
+              <item id="TableStyleLight4" translatable="yes" 
context="tablestylebox|tablestylelight4">Table Style Light 4</item>
+              <item id="TableStyleLight5" translatable="yes" 
context="tablestylebox|tablestylelight5">Table Style Light 5</item>
+              <item id="TableStyleLight6" translatable="yes" 
context="tablestylebox|tablestylelight6">Table Style Light 6</item>
+              <item id="TableStyleLight7" translatable="yes" 
context="tablestylebox|tablestylelight7">Table Style Light 7</item>
+              <item id="TableStyleLight8" translatable="yes" 
context="tablestylebox|tablestylelight8">Table Style Light 8</item>
+              <item id="TableStyleLight9" translatable="yes" 
context="tablestylebox|tablestylelight9">Table Style Light 9</item>
+              <item id="TableStyleLight10" translatable="yes" 
context="tablestylebox|tablestylelight10">Table Style Light 10</item>
+              <item id="TableStyleLight11" translatable="yes" 
context="tablestylebox|tablestylelight11">Table Style Light 11</item>
+              <item id="TableStyleLight12" translatable="yes" 
context="tablestylebox|tablestylelight12">Table Style Light 12</item>
+              <item id="TableStyleLight13" translatable="yes" 
context="tablestylebox|tablestylelight13">Table Style Light 13</item>
+              <item id="TableStyleLight14" translatable="yes" 
context="tablestylebox|tablestylelight14">Table Style Light 14</item>
+              <item id="TableStyleLight15" translatable="yes" 
context="tablestylebox|tablestylelight15">Table Style Light 15</item>
+              <item id="TableStyleLight16" translatable="yes" 
context="tablestylebox|tablestylelight16">Table Style Light 16</item>
+              <item id="TableStyleLight17" translatable="yes" 
context="tablestylebox|tablestylelight17">Table Style Light 17</item>
+              <item id="TableStyleLight18" translatable="yes" 
context="tablestylebox|tablestylelight18">Table Style Light 18</item>
+              <item id="TableStyleLight19" translatable="yes" 
context="tablestylebox|tablestylelight19">Table Style Light 19</item>
+              <item id="TableStyleLight20" translatable="yes" 
context="tablestylebox|tablestylelight20">Table Style Light 20</item>
+              <item id="TableStyleLight21" translatable="yes" 
context="tablestylebox|tablestylelight21">Table Style Light 21</item>
+              <item id="TableStyleMedium1" translatable="yes" 
context="tablestylebox|tablestylemedium1">Table Style Medium 1</item>
+              <item id="TableStyleMedium2" translatable="yes" 
context="tablestylebox|tablestylemedium2">Table Style Medium 2</item>
+              <item id="TableStyleMedium3" translatable="yes" 
context="tablestylebox|tablestylemedium3">Table Style Medium 3</item>
+              <item id="TableStyleMedium4" translatable="yes" 
context="tablestylebox|tablestylemedium4">Table Style Medium 4</item>
+              <item id="TableStyleMedium5" translatable="yes" 
context="tablestylebox|tablestylemedium5">Table Style Medium 5</item>
+              <item id="TableStyleMedium6" translatable="yes" 
context="tablestylebox|tablestylemedium6">Table Style Medium 6</item>
+              <item id="TableStyleMedium7" translatable="yes" 
context="tablestylebox|tablestylemedium7">Table Style Medium 7</item>
+              <item id="TableStyleMedium8" translatable="yes" 
context="tablestylebox|tablestylemedium8">Table Style Medium 8</item>
+              <item id="TableStyleMedium9" translatable="yes" 
context="tablestylebox|tablestylemedium9">Table Style Medium 9</item>
+              <item id="TableStyleMedium10" translatable="yes" 
context="tablestylebox|tablestylemedium10">Table Style Medium 10</item>
+              <item id="TableStyleMedium11" translatable="yes" 
context="tablestylebox|tablestylemedium11">Table Style Medium 11</item>
+              <item id="TableStyleMedium12" translatable="yes" 
context="tablestylebox|tablestylemedium12">Table Style Medium 12</item>
+              <item id="TableStyleMedium13" translatable="yes" 
context="tablestylebox|tablestylemedium13">Table Style Medium 13</item>
+              <item id="TableStyleMedium14" translatable="yes" 
context="tablestylebox|tablestylemedium14">Table Style Medium 14</item>
+              <item id="TableStyleMedium15" translatable="yes" 
context="tablestylebox|tablestylemedium15">Table Style Medium 15</item>
+              <item id="TableStyleMedium16" translatable="yes" 
context="tablestylebox|tablestylemedium16">Table Style Medium 16</item>
+              <item id="TableStyleMedium17" translatable="yes" 
context="tablestylebox|tablestylemedium17">Table Style Medium 17</item>
+              <item id="TableStyleMedium18" translatable="yes" 
context="tablestylebox|tablestylemedium18">Table Style Medium 18</item>
+              <item id="TableStyleMedium19" translatable="yes" 
context="tablestylebox|tablestylemedium19">Table Style Medium 19</item>
+              <item id="TableStyleMedium20" translatable="yes" 
context="tablestylebox|tablestylemedium20">Table Style Medium 20</item>
+              <item id="TableStyleMedium21" translatable="yes" 
context="tablestylebox|tablestylemedium21">Table Style Medium 21</item>
+              <item id="TableStyleMedium22" translatable="yes" 
context="tablestylebox|tablestylemedium22">Table Style Medium 22</item>
+              <item id="TableStyleMedium23" translatable="yes" 
context="tablestylebox|tablestylemedium23">Table Style Medium 23</item>
+              <item id="TableStyleMedium24" translatable="yes" 
context="tablestylebox|tablestylemedium24">Table Style Medium 24</item>
+              <item id="TableStyleMedium25" translatable="yes" 
context="tablestylebox|tablestylemedium25">Table Style Medium 25</item>
+              <item id="TableStyleMedium26" translatable="yes" 
context="tablestylebox|tablestylemedium26">Table Style Medium 26</item>
+              <item id="TableStyleMedium27" translatable="yes" 
context="tablestylebox|tablestylemedium27">Table Style Medium 27</item>
+              <item id="TableStyleMedium28" translatable="yes" 
context="tablestylebox|tablestylemedium28">Table Style Medium 28</item>
+              <item id="TableStyleDark1" translatable="yes" 
context="tablestylebox|tablestyledark1">Table Style Dark 1</item>
+              <item id="TableStyleDark2" translatable="yes" 
context="tablestylebox|tablestyledark2">Table Style Dark 2</item>
+              <item id="TableStyleDark3" translatable="yes" 
context="tablestylebox|tablestyledark3">Table Style Dark 3</item>
+              <item id="TableStyleDark4" translatable="yes" 
context="tablestylebox|tablestyledark4">Table Style Dark 4</item>
+              <item id="TableStyleDark5" translatable="yes" 
context="tablestylebox|tablestyledark5">Table Style Dark 5</item>
+              <item id="TableStyleDark6" translatable="yes" 
context="tablestylebox|tablestyledark6">Table Style Dark 6</item>
+              <item id="TableStyleDark7" translatable="yes" 
context="tablestylebox|tablestyledark7">Table Style Dark 7</item>
+              <item id="TableStyleDark8" translatable="yes" 
context="tablestylebox|tablestyledark8">Table Style Dark 8</item>
+              <item id="TableStyleDark9" translatable="yes" 
context="tablestylebox|tablestyledark9">Table Style Dark 9</item>
+              <item id="TableStyleDark10" translatable="yes" 
context="tablestylebox|tablestyledark10">Table Style Dark 10</item>
+              <item id="TableStyleDark11" translatable="yes" 
context="tablestylebox|tablestyledark11">Table Style Dark 11</item>
+            </items>
+            <child internal-child="accessible">
+              <object class="AtkObject" id="tablestyles_cb2-atkobject">
+                <property name="AtkObject::accessible-name" translatable="yes" 
context="tablestylebox|tablestyles_cb|accessible_name">Table Styles</property>
+              </object>
+            </child>
+          </object>
+          <packing>
+            <property name="left-attach">3</property>
+            <property name="top-attach">1</property>
+          </packing>
+        </child>
+      </object>
+      <packing>
+        <property name="expand">False</property>
+        <property name="fill">True</property>
+        <property name="position">0</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/sfx2/source/control/unoctitm.cxx b/sfx2/source/control/unoctitm.cxx
index 7bef4796d3c8..660ce33229c4 100644
--- a/sfx2/source/control/unoctitm.cxx
+++ b/sfx2/source/control/unoctitm.cxx
@@ -1353,6 +1353,7 @@ const std::map<std::u16string_view, KitUnoCommand>& 
GetKitUnoCommandList()
         { u"EditHeaderAndFooter", { PayloadType::EnabledPayload, true } },
         { u"InsertCalcTable", { PayloadType::EnabledPayload, true } },
         { u"RemoveCalcTable", { PayloadType::EnabledPayload, true } },
+        { u"DatabaseSettings", { PayloadType::EnabledPayload, true } },
         { u"InsertSparkline", { PayloadType::EnabledPayload, true } },
         { u"DeleteSparkline", { PayloadType::EnabledPayload, true } },
         { u"DeleteSparklineGroup", { PayloadType::EnabledPayload, true } },
diff --git a/vcl/jsdialog/enabled.cxx b/vcl/jsdialog/enabled.cxx
index 856470d462ec..381f36d7b444 100644
--- a/vcl/jsdialog/enabled.cxx
+++ b/vcl/jsdialog/enabled.cxx
@@ -500,6 +500,7 @@ constexpr auto NotebookbarList
     = frozen::make_unordered_set<std::u16string_view>({
         { u"modules/scalc/ui/numberbox.ui" },
         { u"modules/scalc/ui/sheetviewbox.ui" },
+        { u"modules/scalc/ui/tablestylesbox.ui" },
         { u"svx/ui/fontnamebox.ui" },
         { u"svx/ui/fontsizebox.ui" },
         { u"svx/ui/stylespreview.ui" },
diff --git a/vcl/jsdialog/jsdialogbuilder.cxx b/vcl/jsdialog/jsdialogbuilder.cxx
index 843d023f5f58..7f2f44313586 100644
--- a/vcl/jsdialog/jsdialogbuilder.cxx
+++ b/vcl/jsdialog/jsdialogbuilder.cxx
@@ -1560,10 +1560,8 @@ JSCheckButton::JSCheckButton(JSDialogSender* pSender, 
::CheckBox* pCheckBox,
 
 void JSCheckButton::set_active(bool active)
 {
-    bool bWasActive = get_active();
     SalInstanceCheckButton::set_active(active);
-    if (bWasActive != active)
-        sendUpdate();
+    sendUpdate();
 }
 
 JSDrawingArea::JSDrawingArea(JSDialogSender* pSender, VclDrawingArea* 
pDrawingArea,

Reply via email to