cui/source/tabpages/autocdlg.cxx             |   66 +++++++++++++--------------
 cui/uiconfig/ui/acoroptionspage.ui           |    3 +
 cui/uiconfig/ui/applyautofmtpage.ui          |    6 ++
 cui/uiconfig/ui/applylocalizedpage.ui        |    9 +++
 cui/uiconfig/ui/smarttagoptionspage.ui       |   15 +-----
 include/vcl/weld.hxx                         |    4 -
 sw/uiconfig/swriter/ui/assignstylesdialog.ui |   24 +++++++++
 sw/uiconfig/swriter/ui/optcaptionpage.ui     |    2 
 sw/uiconfig/swriter/ui/tocindexpage.ui       |    2 
 vcl/source/app/salvtables.cxx                |    7 --
 vcl/unx/gtk3/gtk3gtkinst.cxx                 |   19 ++++---
 11 files changed, 94 insertions(+), 63 deletions(-)

New commits:
commit c8e26c255238e41c378bce4a715a566034a6a9e2
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Tue Jan 15 11:15:50 2019 +0000
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Wed Jan 16 17:19:07 2019 +0100

    Related: tdf#122627 auto detect of toggle column doesn't work
    
    so remove it and explicitly state what column contains the toggle
    
    Change-Id: I58fb12a4b8fa9eeb9c038f796e48b0aeaa0b2404
    Reviewed-on: https://gerrit.libreoffice.org/66380
    Tested-by: Jenkins
    Reviewed-by: Xisco Faulí <xiscofa...@libreoffice.org>
    Tested-by: Xisco Faulí <xiscofa...@libreoffice.org>
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 6f9f82a0eb62..8fae6fd346fd 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -206,20 +206,24 @@ VclPtr<SfxTabPage> 
OfaAutocorrOptionsPage::Create(TabPageParent pParent,
     return VclPtr<OfaAutocorrOptionsPage>::Create(pParent, *rSet);
 }
 
+#define CBCOL_FIRST     0
+#define CBCOL_SECOND    1
+#define CBCOL_BOTH      2
+
 bool OfaAutocorrOptionsPage::FillItemSet( SfxItemSet* )
 {
     SvxAutoCorrect* pAutoCorrect = SvxAutoCorrCfg::Get().GetAutoCorrect();
     ACFlags nFlags = pAutoCorrect->GetFlags();
 
     int nPos = 0;
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::Autocorrect,          
m_xCheckLB->get_toggle(nPos++));
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartWord,     
m_xCheckLB->get_toggle(nPos++));
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence, 
m_xCheckLB->get_toggle(nPos++));
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl,      
m_xCheckLB->get_toggle(nPos++));
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr,          
m_xCheckLB->get_toggle(nPos++));
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash,        
m_xCheckLB->get_toggle(nPos++));
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::IgnoreDoubleSpace,    
m_xCheckLB->get_toggle(nPos++));
-    pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock,      
m_xCheckLB->get_toggle(nPos++));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::Autocorrect,          
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartWord,     
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence, 
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl,      
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr,          
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash,        
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::IgnoreDoubleSpace,    
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+    pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock,      
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
 
     bool bReturn = nFlags != pAutoCorrect->GetFlags();
     if(bReturn )
@@ -241,14 +245,10 @@ void OfaAutocorrOptionsPage::InsertEntry(const OUString& 
rTxt)
     m_xCheckLB->insert(nullptr, -1, nullptr, nullptr, nullptr,
                        nullptr, nullptr, false);
     const int nRow = m_xCheckLB->n_children() - 1;
-    m_xCheckLB->set_toggle(nRow, false, 0);
+    m_xCheckLB->set_toggle(nRow, false, CBCOL_FIRST);
     m_xCheckLB->set_text(nRow, rTxt, 1);
 }
 
-#define CBCOL_FIRST     0
-#define CBCOL_SECOND    1
-#define CBCOL_BOTH      2
-
 void OfaAutocorrOptionsPage::Reset( const SfxItemSet* )
 {
     SvxAutoCorrect* pAutoCorrect = SvxAutoCorrCfg::Get().GetAutoCorrect();
@@ -411,25 +411,25 @@ bool OfaSwAutoFmtOptionsPage::FillItemSet( SfxItemSet*  )
     SvxSwAutoFormatFlags *pOpt = &pAutoCorrect->GetSwFlags();
     ACFlags nFlags = pAutoCorrect->GetFlags();
 
-    bool bCheck = m_xCheckLB->get_toggle(USE_REPLACE_TABLE);
+    bool bCheck = m_xCheckLB->get_toggle(USE_REPLACE_TABLE, CBCOL_FIRST);
     bModified |= pOpt->bAutoCorrect != bCheck;
     pOpt->bAutoCorrect = bCheck;
     pAutoCorrect->SetAutoCorrFlag(ACFlags::Autocorrect,
                         m_xCheckLB->get_toggle(USE_REPLACE_TABLE, 
CBCOL_SECOND));
 
-    bCheck = m_xCheckLB->get_toggle(CORR_UPPER);
+    bCheck = m_xCheckLB->get_toggle(CORR_UPPER, CBCOL_FIRST);
     bModified |= pOpt->bCapitalStartWord != bCheck;
     pOpt->bCapitalStartWord = bCheck;
     pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartWord,
                         m_xCheckLB->get_toggle(CORR_UPPER, CBCOL_SECOND));
 
-    bCheck = m_xCheckLB->get_toggle(BEGIN_UPPER);
+    bCheck = m_xCheckLB->get_toggle(BEGIN_UPPER, CBCOL_FIRST);
     bModified |= pOpt->bCapitalStartSentence != bCheck;
     pOpt->bCapitalStartSentence = bCheck;
     pAutoCorrect->SetAutoCorrFlag(ACFlags::CapitalStartSentence,
                         m_xCheckLB->get_toggle(BEGIN_UPPER, CBCOL_SECOND));
 
-    bCheck = m_xCheckLB->get_toggle(BOLD_UNDERLINE);
+    bCheck = m_xCheckLB->get_toggle(BOLD_UNDERLINE, CBCOL_FIRST);
     bModified |= pOpt->bChgWeightUnderl != bCheck;
     pOpt->bChgWeightUnderl = bCheck;
     pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgWeightUnderl,
@@ -441,21 +441,21 @@ bool OfaSwAutoFmtOptionsPage::FillItemSet( SfxItemSet*  )
     pAutoCorrect->SetAutoCorrFlag(ACFlags::CorrectCapsLock,
                         m_xCheckLB->get_toggle(CORRECT_CAPS_LOCK, 
CBCOL_SECOND));
 
-    bCheck = m_xCheckLB->get_toggle(DETECT_URL);
+    bCheck = m_xCheckLB->get_toggle(DETECT_URL, CBCOL_FIRST);
     bModified |= pOpt->bSetINetAttr != bCheck;
     pOpt->bSetINetAttr = bCheck;
     pAutoCorrect->SetAutoCorrFlag(ACFlags::SetINetAttr,
                         m_xCheckLB->get_toggle(DETECT_URL, CBCOL_SECOND));
 
-    bCheck = m_xCheckLB->get_toggle(DEL_EMPTY_NODE);
+    bCheck = m_xCheckLB->get_toggle(DEL_EMPTY_NODE, CBCOL_FIRST);
     bModified |= pOpt->bDelEmptyNode != bCheck;
     pOpt->bDelEmptyNode = bCheck;
 
-    bCheck = m_xCheckLB->get_toggle(REPLACE_USER_COLL);
+    bCheck = m_xCheckLB->get_toggle(REPLACE_USER_COLL, CBCOL_FIRST);
     bModified |= pOpt->bChgUserColl != bCheck;
     pOpt->bChgUserColl = bCheck;
 
-    bCheck = m_xCheckLB->get_toggle(REPLACE_BULLETS);
+    bCheck = m_xCheckLB->get_toggle(REPLACE_BULLETS, CBCOL_FIRST);
     bModified |= pOpt->bChgEnumNum != bCheck;
     pOpt->bChgEnumNum = bCheck;
     bModified |= aBulletFont != pOpt->aBulletFont;
@@ -468,7 +468,7 @@ bool OfaSwAutoFmtOptionsPage::FillItemSet( SfxItemSet*  )
     pOpt->aByInputBulletFont = aByInputBulletFont;
     pOpt->cByInputBullet = sByInputBulletChar[0];
 
-    bCheck = m_xCheckLB->get_toggle(MERGE_SINGLE_LINE_PARA);
+    bCheck = m_xCheckLB->get_toggle(MERGE_SINGLE_LINE_PARA, CBCOL_FIRST);
     bModified |= pOpt->bRightMargin != bCheck;
     pOpt->bRightMargin = bCheck;
     bModified |= nPercent != pOpt->nRightMargin;
@@ -490,20 +490,20 @@ bool OfaSwAutoFmtOptionsPage::FillItemSet( SfxItemSet*  )
     bModified |= pOpt->bReplaceStyles != bCheck;
     pOpt->bReplaceStyles = bCheck;
 
-    bCheck = m_xCheckLB->get_toggle(REPLACE_DASHES);
+    bCheck = m_xCheckLB->get_toggle(REPLACE_DASHES, CBCOL_FIRST);
     bModified |= pOpt->bChgToEnEmDash != bCheck;
     pOpt->bChgToEnEmDash = bCheck;
     pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgToEnEmDash,
                         m_xCheckLB->get_toggle(REPLACE_DASHES, CBCOL_SECOND));
 
-    bCheck = m_xCheckLB->get_toggle(DEL_SPACES_AT_STT_END);
+    bCheck = m_xCheckLB->get_toggle(DEL_SPACES_AT_STT_END, CBCOL_FIRST);
     bModified |= pOpt->bAFormatDelSpacesAtSttEnd != bCheck;
     pOpt->bAFormatDelSpacesAtSttEnd = bCheck;
     bCheck = m_xCheckLB->get_toggle(DEL_SPACES_AT_STT_END, CBCOL_SECOND);
     bModified |= pOpt->bAFormatByInpDelSpacesAtSttEnd != bCheck;
     pOpt->bAFormatByInpDelSpacesAtSttEnd = bCheck;
 
-    bCheck = m_xCheckLB->get_toggle(DEL_SPACES_BETWEEN_LINES);
+    bCheck = m_xCheckLB->get_toggle(DEL_SPACES_BETWEEN_LINES, CBCOL_FIRST);
     bModified |= pOpt->bAFormatDelSpacesBetweenLines != bCheck;
     pOpt->bAFormatDelSpacesBetweenLines = bCheck;
     bCheck = m_xCheckLB->get_toggle(DEL_SPACES_BETWEEN_LINES, CBCOL_SECOND);
@@ -1720,8 +1720,8 @@ bool OfaQuoteTabPage::FillItemSet( SfxItemSet*  )
     if (m_xCheckLB->get_visible())
     {
         int nPos = 0;
-        pAutoCorrect->SetAutoCorrFlag(ACFlags::AddNonBrkSpace, 
m_xCheckLB->get_toggle(nPos++));
-        pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgOrdinalNumber, 
m_xCheckLB->get_toggle(nPos++));
+        pAutoCorrect->SetAutoCorrFlag(ACFlags::AddNonBrkSpace, 
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
+        pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgOrdinalNumber, 
m_xCheckLB->get_toggle(nPos++, CBCOL_FIRST));
     }
 
     bool bModified = false;
@@ -1729,13 +1729,13 @@ bool OfaQuoteTabPage::FillItemSet( SfxItemSet*  )
     {
         SvxSwAutoFormatFlags *pOpt = &pAutoCorrect->GetSwFlags();
 
-        bool bCheck = m_xSwCheckLB->get_toggle(ADD_NONBRK_SPACE);
+        bool bCheck = m_xSwCheckLB->get_toggle(ADD_NONBRK_SPACE, CBCOL_FIRST);
         bModified |= pOpt->bAddNonBrkSpace != bCheck;
         pOpt->bAddNonBrkSpace = bCheck;
         pAutoCorrect->SetAutoCorrFlag(ACFlags::AddNonBrkSpace,
                             m_xSwCheckLB->get_toggle(ADD_NONBRK_SPACE, 
CBCOL_SECOND));
 
-        bCheck = m_xSwCheckLB->get_toggle(REPLACE_1ST);
+        bCheck = m_xSwCheckLB->get_toggle(REPLACE_1ST, CBCOL_FIRST);
         bModified |= pOpt->bChgOrdinalNumber != bCheck;
         pOpt->bChgOrdinalNumber = bCheck;
         pAutoCorrect->SetAutoCorrFlag(ACFlags::ChgOrdinalNumber,
@@ -1818,8 +1818,8 @@ void OfaQuoteTabPage::Reset( const SfxItemSet* )
         CreateEntry(*m_xCheckLB, sOrdinal, CBCOL_FIRST, 1);
 
         int nPos = 0;
-        m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::AddNonBrkSpace));
-        m_xCheckLB->set_toggle(nPos++, bool(nFlags & 
ACFlags::ChgOrdinalNumber));
+        m_xCheckLB->set_toggle(nPos++, bool(nFlags & ACFlags::AddNonBrkSpace), 
CBCOL_FIRST);
+        m_xCheckLB->set_toggle(nPos++, bool(nFlags & 
ACFlags::ChgOrdinalNumber), CBCOL_FIRST);
 
         m_xCheckLB->thaw();
     }
@@ -2315,7 +2315,7 @@ void OfaSmartTagOptionsTabPage::FillListBox( const 
SmartTagMgr& rSmartTagMgr )
                                        nullptr, nullptr, false);
             const int nRow = m_xSmartTagTypesLB->n_children() - 1;
             const bool bCheck = rSmartTagMgr.IsSmartTagTypeEnabled( 
aSmartTagType );
-            m_xSmartTagTypesLB->set_toggle(nRow, bCheck);
+            m_xSmartTagTypesLB->set_toggle(nRow, bCheck, CBCOL_FIRST);
             m_xSmartTagTypesLB->set_text(nRow, aLBEntry, 1);
             m_xSmartTagTypesLB->set_id(nRow, 
OUString::number(reinterpret_cast<sal_Int64>(new 
ImplSmartTagLBUserData(aSmartTagType, xRec, j))));
         }
@@ -2390,7 +2390,7 @@ bool OfaSmartTagOptionsTabPage::FillItemSet( SfxItemSet* )
     for (int i = 0; i < nCount; ++i)
     {
         const ImplSmartTagLBUserData* pUserData = 
reinterpret_cast<ImplSmartTagLBUserData*>(m_xSmartTagTypesLB->get_id(i).toInt64());
-        const bool bChecked = m_xSmartTagTypesLB->get_toggle(i);
+        const bool bChecked = m_xSmartTagTypesLB->get_toggle(i, CBCOL_FIRST);
         const bool bIsCurrentlyEnabled = pSmartTagMgr->IsSmartTagTypeEnabled( 
pUserData->maSmartTagType );
 
         bModifiedSmartTagTypes = bModifiedSmartTagTypes || ( !bChecked != 
!bIsCurrentlyEnabled );
diff --git a/cui/uiconfig/ui/acoroptionspage.ui 
b/cui/uiconfig/ui/acoroptionspage.ui
index 5721b2b54b2d..9c10c2b50f58 100644
--- a/cui/uiconfig/ui/acoroptionspage.ui
+++ b/cui/uiconfig/ui/acoroptionspage.ui
@@ -10,6 +10,8 @@
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkBox" id="AutocorrectOptionsPage">
@@ -48,6 +50,7 @@
                 <child>
                   <object class="GtkCellRendererToggle" id="cellrenderer5"/>
                   <attributes>
+                    <attribute name="visible">3</attribute>
                     <attribute name="active">0</attribute>
                   </attributes>
                 </child>
diff --git a/cui/uiconfig/ui/applyautofmtpage.ui 
b/cui/uiconfig/ui/applyautofmtpage.ui
index 77b179a7fc96..98528c5d13c1 100644
--- a/cui/uiconfig/ui/applyautofmtpage.ui
+++ b/cui/uiconfig/ui/applyautofmtpage.ui
@@ -12,6 +12,10 @@
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis2 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkBox" id="ApplyAutoFmtPage">
@@ -116,6 +120,7 @@
                         <child>
                           <object class="GtkCellRendererToggle" 
id="cellrenderer1"/>
                           <attributes>
+                            <attribute name="visible">4</attribute>
                             <attribute name="active">0</attribute>
                           </attributes>
                         </child>
@@ -130,6 +135,7 @@
                         <child>
                           <object class="GtkCellRendererToggle" 
id="cellrenderer2"/>
                           <attributes>
+                            <attribute name="visible">5</attribute>
                             <attribute name="active">1</attribute>
                           </attributes>
                         </child>
diff --git a/cui/uiconfig/ui/applylocalizedpage.ui 
b/cui/uiconfig/ui/applylocalizedpage.ui
index 7376e74ddfcb..705a810f58db 100644
--- a/cui/uiconfig/ui/applylocalizedpage.ui
+++ b/cui/uiconfig/ui/applylocalizedpage.ui
@@ -12,6 +12,10 @@
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis2 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkTreeStore" id="liststore2">
@@ -22,6 +26,8 @@
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkBox" id="ApplyLocalizedPage">
@@ -74,6 +80,7 @@
                         <child>
                           <object class="GtkCellRendererToggle" 
id="cellrenderer1"/>
                           <attributes>
+                            <attribute name="visible">4</attribute>
                             <attribute name="active">0</attribute>
                           </attributes>
                         </child>
@@ -88,6 +95,7 @@
                         <child>
                           <object class="GtkCellRendererToggle" 
id="cellrenderer2"/>
                           <attributes>
+                            <attribute name="visible">5</attribute>
                             <attribute name="active">1</attribute>
                           </attributes>
                         </child>
@@ -143,6 +151,7 @@
                         <child>
                           <object class="GtkCellRendererToggle" 
id="cellrenderer5"/>
                           <attributes>
+                            <attribute name="visible">3</attribute>
                             <attribute name="active">0</attribute>
                           </attributes>
                         </child>
diff --git a/cui/uiconfig/ui/smarttagoptionspage.ui 
b/cui/uiconfig/ui/smarttagoptionspage.ui
index 46fe9173f07a..b4e00e16a8a7 100644
--- a/cui/uiconfig/ui/smarttagoptionspage.ui
+++ b/cui/uiconfig/ui/smarttagoptionspage.ui
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.16.1 -->
+<!-- Generated with glade 3.22.1 -->
 <interface domain="cui">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkTreeStore" id="liststore2">
@@ -10,6 +10,8 @@
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkGrid" id="SmartTagOptionsPage">
@@ -38,8 +40,6 @@
           <packing>
             <property name="left_attach">0</property>
             <property name="top_attach">0</property>
-            <property name="width">1</property>
-            <property name="height">1</property>
           </packing>
         </child>
         <child>
@@ -77,8 +77,6 @@
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
                       </packing>
                     </child>
                     <child>
@@ -110,6 +108,7 @@
                                 <child>
                                   <object class="GtkCellRendererToggle" 
id="cellrenderer5"/>
                                   <attributes>
+                                    <attribute name="activatable">3</attribute>
                                     <attribute name="active">0</attribute>
                                   </attributes>
                                 </child>
@@ -133,8 +132,6 @@
                       <packing>
                         <property name="left_attach">0</property>
                         <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
                       </packing>
                     </child>
                   </object>
@@ -155,16 +152,12 @@
           <packing>
             <property name="left_attach">0</property>
             <property name="top_attach">1</property>
-            <property name="width">1</property>
-            <property name="height">1</property>
           </packing>
         </child>
       </object>
       <packing>
         <property name="left_attach">0</property>
         <property name="top_attach">0</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
       </packing>
     </child>
   </object>
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index 41ba948be3a4..53bab37b6d78 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -475,8 +475,8 @@ public:
     virtual OUString get_text(int row, int col = -1) const = 0;
     virtual void set_text(int row, const OUString& rText, int col = -1) = 0;
     virtual void set_id(int row, const OUString& rId) = 0;
-    virtual void set_toggle(int row, bool bOn, int col = -1) = 0;
-    virtual bool get_toggle(int row, int col = -1) const = 0;
+    virtual void set_toggle(int row, bool bOn, int col) = 0;
+    virtual bool get_toggle(int row, int col) const = 0;
     virtual void set_top_entry(int pos) = 0;
     virtual std::vector<int> get_selected_rows() const = 0;
     virtual void set_font_color(int pos, const Color& rColor) const = 0;
diff --git a/sw/uiconfig/swriter/ui/assignstylesdialog.ui 
b/sw/uiconfig/swriter/ui/assignstylesdialog.ui
index ddf3892a949a..6d4a931b6887 100644
--- a/sw/uiconfig/swriter/ui/assignstylesdialog.ui
+++ b/sw/uiconfig/swriter/ui/assignstylesdialog.ui
@@ -16,7 +16,7 @@
     <columns>
       <!-- column-name text -->
       <column type="gchararray"/>
-      <!-- column-name check -->
+      <!-- column-name check1 -->
       <column type="gboolean"/>
       <!-- column-name check2 -->
       <column type="gboolean"/>
@@ -40,6 +40,28 @@
       <column type="gboolean"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis2 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis3 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis4 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis5 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis6 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis7 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis8 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis9 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis10 -->
+      <column type="gboolean"/>
+      <!-- column-name checkvis11 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkDialog" id="AssignStylesDialog">
diff --git a/sw/uiconfig/swriter/ui/optcaptionpage.ui 
b/sw/uiconfig/swriter/ui/optcaptionpage.ui
index ac2a137b2644..779503e00d77 100644
--- a/sw/uiconfig/swriter/ui/optcaptionpage.ui
+++ b/sw/uiconfig/swriter/ui/optcaptionpage.ui
@@ -10,6 +10,8 @@
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkBox" id="OptCaptionPage">
diff --git a/sw/uiconfig/swriter/ui/tocindexpage.ui 
b/sw/uiconfig/swriter/ui/tocindexpage.ui
index d8e5f92c0c85..9522028fc1d1 100644
--- a/sw/uiconfig/swriter/ui/tocindexpage.ui
+++ b/sw/uiconfig/swriter/ui/tocindexpage.ui
@@ -45,6 +45,8 @@
       <column type="gchararray"/>
       <!-- column-name id -->
       <column type="gchararray"/>
+      <!-- column-name checkvis1 -->
+      <column type="gboolean"/>
     </columns>
   </object>
   <object class="GtkBox" id="TocIndexPage">
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 6ba7c5f36493..97626e1f762b 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -2127,8 +2127,6 @@ public:
     virtual bool get_toggle(int pos, int col) const override
     {
         SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
-        if (col == -1)
-            return m_xTreeView->GetCheckButtonState(pEntry) == 
SvButtonState::Checked;
 
         ++col; //skip dummy/expander column
 
@@ -2144,11 +2142,6 @@ public:
     virtual void set_toggle(int pos, bool bOn, int col) override
     {
         SvTreeListEntry* pEntry = m_xTreeView->GetEntry(nullptr, pos);
-        if (col == -1)
-        {
-            m_xTreeView->SetCheckButtonState(pEntry, bOn ? 
SvButtonState::Checked : SvButtonState::Unchecked);
-            return;
-        }
 
         bool bRadio = std::find(m_aRadioIndexes.begin(), 
m_aRadioIndexes.end(), col) != m_aRadioIndexes.end();
         ++col; //skip dummy/expander column
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index c440cd45189e..4ea6de898734 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -4750,8 +4750,9 @@ private:
     GtkTreeView* m_pTreeView;
     GtkTreeStore* m_pTreeStore;
     std::unique_ptr<comphelper::string::NaturalStringSorter> m_xSorter;
+    // map from toggle column to toggle visibility column
+    std::map<int, int> m_aToggleVisMap;
     gint m_nTextCol;
-    gint m_nToggleCol;
     gint m_nImageCol;
     gint m_nExpanderImageCol;
     gint m_nIdCol;
@@ -4941,7 +4942,6 @@ public:
         , m_pTreeView(pTreeView)
         , m_pTreeStore(GTK_TREE_STORE(gtk_tree_view_get_model(m_pTreeView)))
         , m_nTextCol(-1)
-        , m_nToggleCol(-1)
         , m_nImageCol(-1)
         , m_nExpanderImageCol(-1)
         , 
m_nChangedSignalId(g_signal_connect(gtk_tree_view_get_selection(pTreeView), 
"changed",
@@ -4962,10 +4962,9 @@ public:
                     m_nTextCol = nIndex;
                 else if (GTK_IS_CELL_RENDERER_TOGGLE(pCellRenderer))
                 {
-                    if (m_nToggleCol == -1)
-                        m_nToggleCol = nIndex;
                     g_object_set_data(G_OBJECT(pCellRenderer), 
"g-lo-CellIndex", reinterpret_cast<gpointer>(nIndex));
                     g_signal_connect(G_OBJECT(pCellRenderer), "toggled", 
G_CALLBACK(signalCellToggled), this);
+                    m_aToggleVisMap[nIndex] = -1;
                 }
                 else if (GTK_IS_CELL_RENDERER_PIXBUF(pCellRenderer))
                 {
@@ -4980,7 +4979,11 @@ public:
             g_list_free(pRenderers);
         }
         g_list_free(pColumns);
-        m_nIdCol = nIndex;
+        m_nIdCol = nIndex++;
+        for (auto& a : m_aToggleVisMap)
+        {
+            a.second = nIndex++;
+        }
     }
 
     virtual void set_column_fixed_widths(const std::vector<int>& rWidths) 
override
@@ -5195,15 +5198,13 @@ public:
 
     virtual bool get_toggle(int pos, int col) const override
     {
-        if (col == -1)
-            return get_bool(pos, m_nToggleCol);
         return get_bool(pos, col);
     }
 
     virtual void set_toggle(int pos, bool bOn, int col) override
     {
-        if (col == -1)
-            return set(pos, m_nToggleCol, bOn);
+        // checkbuttons are invisible until toggled on or off
+        set(pos, m_aToggleVisMap[col], true);
         return set(pos, col, bOn);
     }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to