summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-07-30 17:07:41 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-07-31 12:15:32 +0200
commite569b9d40eb02f53a3f13024af4ab1dc9ca7634a (patch)
treed8777e5f09fc0383274bc92ce2ca457391d222ae
parente88bcb56eefbd2569a1012943754b98dbc0ba517 (diff)
weld OfaMSFilterTabPage2
Change-Id: I799eaffc808a7e41434fb76c877f4d1e8d4e1c3b Reviewed-on: https://gerrit.libreoffice.org/76707 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--cui/inc/strings.hrc4
-rw-r--r--cui/source/options/optfltr.cxx258
-rw-r--r--cui/source/options/optfltr.hxx38
-rw-r--r--cui/uiconfig/ui/optfltrembedpage.ui93
4 files changed, 145 insertions, 248 deletions
diff --git a/cui/inc/strings.hrc b/cui/inc/strings.hrc
index d79397b138a2..482a9e44a34d 100644
--- a/cui/inc/strings.hrc
+++ b/cui/inc/strings.hrc
@@ -254,10 +254,6 @@
#define RID_SVXSTR_ERROR_TYPE_LABEL NC_("RID_SVXSTR_ERROR_TYPE_LABEL", "Type:")
#define RID_SVXSTR_ERROR_MESSAGE_LABEL NC_("RID_SVXSTR_ERROR_MESSAGE_LABEL", "Message:")
-//abbreviation for "[Load]"
-#define RID_SVXSTR_HEADER1 NC_("RID_SVXSTR_HEADER1", "[L]")
-//abbreviation for "[Save]"
-#define RID_SVXSTR_HEADER2 NC_("RID_SVXSTR_HEADER2", "[S]")
#define RID_SVXSTR_CHG_MATH NC_("RID_SVXSTR_CHG_MATH", "MathType to %PRODUCTNAME Math or reverse")
#define RID_SVXSTR_CHG_WRITER NC_("RID_SVXSTR_CHG_WRITER", "WinWord to %PRODUCTNAME Writer or reverse")
#define RID_SVXSTR_CHG_CALC NC_("RID_SVXSTR_CHG_CALC", "Excel to %PRODUCTNAME Calc or reverse")
diff --git a/cui/source/options/optfltr.cxx b/cui/source/options/optfltr.cxx
index 54d7e5817fe2..731cab79d50e 100644
--- a/cui/source/options/optfltr.cxx
+++ b/cui/source/options/optfltr.cxx
@@ -125,60 +125,35 @@ void OfaMSFilterTabPage::Reset( const SfxItemSet* )
m_xPBasicStgCB->save_state();
}
-OfaMSFilterTabPage2::OfaMSFilterTabPage2( vcl::Window* pParent, const SfxItemSet& rSet ) :
- SfxTabPage( pParent, "OptFilterPage", "cui/ui/optfltrembedpage.ui", &rSet ),
- sHeader1(CuiResId(RID_SVXSTR_HEADER1)),
- sHeader2(CuiResId(RID_SVXSTR_HEADER2)),
- sChgToFromMath(CuiResId(RID_SVXSTR_CHG_MATH)),
- sChgToFromWriter(CuiResId(RID_SVXSTR_CHG_WRITER)),
- sChgToFromCalc(CuiResId(RID_SVXSTR_CHG_CALC)),
- sChgToFromImpress(CuiResId(RID_SVXSTR_CHG_IMPRESS)),
- sChgToFromSmartArt(CuiResId(RID_SVXSTR_CHG_SMARTART))
+OfaMSFilterTabPage2::OfaMSFilterTabPage2(TabPageParent pParent, const SfxItemSet& rSet)
+ : SfxTabPage(pParent, "cui/ui/optfltrembedpage.ui", "OptFilterPage", &rSet)
+ , sChgToFromMath(CuiResId(RID_SVXSTR_CHG_MATH))
+ , sChgToFromWriter(CuiResId(RID_SVXSTR_CHG_WRITER))
+ , sChgToFromCalc(CuiResId(RID_SVXSTR_CHG_CALC))
+ , sChgToFromImpress(CuiResId(RID_SVXSTR_CHG_IMPRESS))
+ , sChgToFromSmartArt(CuiResId(RID_SVXSTR_CHG_SMARTART))
+ , m_xCheckLB(m_xBuilder->weld_tree_view("checklbcontainer"))
+ , m_xHighlightingRB(m_xBuilder->weld_radio_button("highlighting"))
+ , m_xShadingRB(m_xBuilder->weld_radio_button("shading"))
+ , m_xMSOLockFileCB(m_xBuilder->weld_check_button("mso_lockfile"))
{
- get(m_pCheckLBContainer, "checklbcontainer");
-
- get( aHighlightingRB, "highlighting");
- get( aShadingRB, "shading" );
- get( aMSOLockFileCB, "mso_lockfile");
-
Size aControlSize(248, 55);
aControlSize = LogicToPixel(aControlSize, MapMode(MapUnit::MapAppFont));
- m_pCheckLBContainer->set_width_request(aControlSize.Width());
- m_pCheckLBContainer->set_height_request(aControlSize.Height());
-
- m_pCheckLB = VclPtr<MSFltrSimpleTable>::Create(*m_pCheckLBContainer);
-
- static long aStaticTabs[] = { 0, 20, 40 };
- m_pCheckLB->SvSimpleTable::SetTabs( SAL_N_ELEMENTS(aStaticTabs), aStaticTabs );
- OUString sHeader = sHeader1 + "\t" + sHeader2 + "\t";
- m_pCheckLB->InsertHeaderEntry( sHeader, HEADERBAR_APPEND,
- HeaderBarItemBits::CENTER | HeaderBarItemBits::FIXEDPOS | HeaderBarItemBits::FIXED );
-
- m_pCheckLB->SetStyle( m_pCheckLB->GetStyle()|WB_HSCROLL| WB_VSCROLL );
+ std::vector<int> aWidths;
+ aWidths.push_back(m_xCheckLB->get_checkbox_column_width());
+ aWidths.push_back(m_xCheckLB->get_checkbox_column_width());
+ m_xCheckLB->set_column_fixed_widths(aWidths);
}
OfaMSFilterTabPage2::~OfaMSFilterTabPage2()
{
- disposeOnce();
-}
-
-void OfaMSFilterTabPage2::dispose()
-{
- m_xCheckButtonData.reset();
- m_pCheckLB.disposeAndClear();
- m_pCheckLBContainer.clear();
- aHighlightingRB.clear();
- aShadingRB.clear();
- aMSOLockFileCB.clear();
-
- SfxTabPage::dispose();
}
VclPtr<SfxTabPage> OfaMSFilterTabPage2::Create( TabPageParent pParent,
const SfxItemSet* rAttrSet )
{
- return VclPtr<OfaMSFilterTabPage2>::Create( pParent.pParent, *rAttrSet );
+ return VclPtr<OfaMSFilterTabPage2>::Create( pParent, *rAttrSet );
}
bool OfaMSFilterTabPage2::FillItemSet( SfxItemSet* )
@@ -216,35 +191,28 @@ bool OfaMSFilterTabPage2::FillItemSet( SfxItemSet* )
// we loop through the list, alternating reading the first/second column,
// each row appears twice in the list (except for smartart, which is import
// only
- sal_uInt16 nCol = bFirstCol ? 1 : 2;
+ sal_uInt16 nCol = bFirstCol ? 0 : 1;
bFirstCol = !bFirstCol;
- SvTreeListEntry* pEntry = GetEntry4Type( rEntry.eType );
- if( pEntry )
+ int nEntry = GetEntry4Type(rEntry.eType);
+ if (nEntry != -1)
{
- SvLBoxButton& rItem = static_cast<SvLBoxButton&>(pEntry->GetItem( nCol ));
- if (rItem.GetType() == SvLBoxItemType::Button)
- {
- SvItemStateFlags nButtonFlags = rItem.GetButtonFlags();
- bool bCheck = SvButtonState::Checked ==
- SvLBoxButtonData::ConvertToButtonState( nButtonFlags );
-
- if( bCheck != (rOpt.*rEntry.FnIs)() )
- (rOpt.*rEntry.FnSet)( bCheck );
- }
+ bool bCheck = m_xCheckLB->get_toggle(nEntry, nCol);
+ if( bCheck != (rOpt.*rEntry.FnIs)() )
+ (rOpt.*rEntry.FnSet)( bCheck );
}
}
- if( aHighlightingRB->IsValueChangedFromSaved() )
+ if( m_xHighlightingRB->get_state_changed_from_saved() )
{
- if( aHighlightingRB->IsChecked() )
+ if (m_xHighlightingRB->get_active())
rOpt.SetCharBackground2Highlighting();
else
rOpt.SetCharBackground2Shading();
}
- if( aMSOLockFileCB->IsValueChangedFromSaved() )
+ if (m_xMSOLockFileCB->get_state_changed_from_saved())
{
- rOpt.EnableMSOLockFileCreation(aMSOLockFileCB->IsChecked());
+ rOpt.EnableMSOLockFileCreation(m_xMSOLockFileCB->get_active());
}
return true;
@@ -254,8 +222,8 @@ void OfaMSFilterTabPage2::Reset( const SfxItemSet* )
{
SvtFilterOptions& rOpt = SvtFilterOptions::Get();
- m_pCheckLB->SetUpdateMode(false);
- m_pCheckLB->Clear();
+ m_xCheckLB->freeze();
+ m_xCheckLB->clear();
SvtModuleOptions aModuleOpt;
@@ -291,34 +259,27 @@ void OfaMSFilterTabPage2::Reset( const SfxItemSet* )
// we loop through the list, alternating reading the first/second column,
// each row appears twice in the list (except for smartart, which is import
// only
- sal_uInt16 nCol = bFirstCol ? 1 : 2;
+ sal_uInt16 nCol = bFirstCol ? 0 : 1;
bFirstCol = !bFirstCol;
- SvTreeListEntry* pEntry = GetEntry4Type( rArr.eType );
- if( pEntry )
+ int nEntry = GetEntry4Type( rArr.eType );
+ if (nEntry != -1)
{
- SvLBoxButton& rItem = static_cast<SvLBoxButton&>(pEntry->GetItem( nCol ));
- if (rItem.GetType() == SvLBoxItemType::Button)
- {
- if( (rOpt.*rArr.FnIs)() )
- rItem.SetStateChecked();
- else
- rItem.SetStateUnchecked();
- m_pCheckLB->InvalidateEntry( pEntry );
- }
+ bool bCheck = (rOpt.*rArr.FnIs)();
+ m_xCheckLB->set_toggle(nEntry, bCheck ? TRISTATE_TRUE : TRISTATE_FALSE, nCol);
}
}
- m_pCheckLB->SetUpdateMode( true );
+ m_xCheckLB->thaw();
if (rOpt.IsCharBackground2Highlighting())
- aHighlightingRB->Check();
+ m_xHighlightingRB->set_active(true);
else
- aShadingRB->Check();
+ m_xShadingRB->set_active(true);
- aHighlightingRB->SaveValue();
+ m_xHighlightingRB->save_state();
- aMSOLockFileCB->Check(rOpt.IsMSOLockFileCreationIsEnabled());
- aMSOLockFileCB->SaveValue();
- aMSOLockFileCB->Enable(!officecfg::Office::Common::Filter::Microsoft::Import::CreateMSOLockFiles::isReadOnly());
+ m_xMSOLockFileCB->set_active(rOpt.IsMSOLockFileCreationIsEnabled());
+ m_xMSOLockFileCB->save_state();
+ m_xMSOLockFileCB->set_sensitive(!officecfg::Office::Common::Filter::Microsoft::Import::CreateMSOLockFiles::isReadOnly());
}
void OfaMSFilterTabPage2::InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBoxEntries _nType )
@@ -329,138 +290,23 @@ void OfaMSFilterTabPage2::InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBox
void OfaMSFilterTabPage2::InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBoxEntries _nType,
bool saveEnabled )
{
- SvTreeListEntry* pEntry = new SvTreeListEntry;
-
- if (!m_xCheckButtonData)
- m_xCheckButtonData.reset(new SvLBoxButtonData(m_pCheckLB));
-
- pEntry->AddItem(std::make_unique<SvLBoxContextBmp>(
- Image(), Image(), false));
- pEntry->AddItem(std::make_unique<SvLBoxButton>(
- SvLBoxButtonKind::EnabledCheckbox,
- m_xCheckButtonData.get()));
- pEntry->AddItem(std::make_unique<SvLBoxButton>(
- saveEnabled ? SvLBoxButtonKind::EnabledCheckbox
- : SvLBoxButtonKind::DisabledCheckbox,
- m_xCheckButtonData.get()));
- pEntry->AddItem(std::make_unique<SvLBoxString>(_rTxt));
-
- pEntry->SetUserData( reinterpret_cast<void*>(_nType) );
- m_pCheckLB->Insert( pEntry );
-}
-
-SvTreeListEntry* OfaMSFilterTabPage2::GetEntry4Type( MSFltrPg2_CheckBoxEntries _nType ) const
-{
- SvTreeListEntry* pEntry = m_pCheckLB->First();
- while ( pEntry )
- {
- if ( _nType == static_cast<MSFltrPg2_CheckBoxEntries>( reinterpret_cast<sal_IntPtr>( pEntry->GetUserData() ) ) )
- return pEntry;
- pEntry = m_pCheckLB->Next( pEntry );
- }
- return nullptr;
-}
-
-void OfaMSFilterTabPage2::MSFltrSimpleTable::SetTabs()
-{
- SvSimpleTable::SetTabs();
- SvLBoxTabFlags nAdjust = SvLBoxTabFlags::ADJUST_RIGHT|SvLBoxTabFlags::ADJUST_LEFT|SvLBoxTabFlags::ADJUST_CENTER|SvLBoxTabFlags::FORCE;
-
- if( aTabs.size() > 1 )
- {
- SvLBoxTab* pTab = aTabs[1].get();
- pTab->nFlags &= ~nAdjust;
- pTab->nFlags |= SvLBoxTabFlags::ADJUST_CENTER|SvLBoxTabFlags::FORCE;
- }
- if( aTabs.size() > 2 )
- {
- SvLBoxTab* pTab = aTabs[2].get();
- pTab->nFlags &= ~nAdjust;
- pTab->nFlags |= SvLBoxTabFlags::ADJUST_CENTER|SvLBoxTabFlags::FORCE;
- }
-}
-
-void OfaMSFilterTabPage2::MSFltrSimpleTable::HBarClick()
-{
- // sorting is stopped by this override
-}
-
-void OfaMSFilterTabPage2::MSFltrSimpleTable::SetCheckButtonState(
- SvTreeListEntry* pEntry, sal_uInt16 nCol, SvButtonState eState)
-{
- SvLBoxButton& rItem = static_cast<SvLBoxButton&>(pEntry->GetItem(nCol + 1));
-
- if (rItem.GetType() == SvLBoxItemType::Button)
- {
- switch( eState )
- {
- case SvButtonState::Checked:
- rItem.SetStateChecked();
- break;
-
- case SvButtonState::Unchecked:
- rItem.SetStateUnchecked();
- break;
-
- case SvButtonState::Tristate:
- rItem.SetStateTristate();
- break;
- }
- InvalidateEntry( pEntry );
- }
+ int nPos = m_xCheckLB->n_children();
+ m_xCheckLB->append();
+ m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 0);
+ if (saveEnabled)
+ m_xCheckLB->set_toggle(nPos, TRISTATE_FALSE, 1);
+ m_xCheckLB->set_text(nPos, _rTxt, 2);
+ m_xCheckLB->set_id(nPos, OUString::number(static_cast<sal_Int32>(_nType)));
}
-SvButtonState OfaMSFilterTabPage2::MSFltrSimpleTable::GetCheckButtonState(
- SvTreeListEntry* pEntry, sal_uInt16 nCol )
+int OfaMSFilterTabPage2::GetEntry4Type( MSFltrPg2_CheckBoxEntries _nType ) const
{
- SvButtonState eState = SvButtonState::Unchecked;
- SvLBoxButton& rItem = static_cast<SvLBoxButton&>(pEntry->GetItem(nCol + 1));
-
- if (rItem.GetType() == SvLBoxItemType::Button)
+ for (int i = 0, nEntryCount = m_xCheckLB->n_children(); i < nEntryCount; ++i)
{
- SvItemStateFlags nButtonFlags = rItem.GetButtonFlags();
- eState = SvLBoxButtonData::ConvertToButtonState( nButtonFlags );
+ if (_nType == static_cast<MSFltrPg2_CheckBoxEntries>(m_xCheckLB->get_id(i).toInt32()))
+ return i;
}
-
- return eState;
-}
-
-void OfaMSFilterTabPage2::MSFltrSimpleTable::CheckEntryPos(sal_uLong nPos, sal_uInt16 nCol, bool bChecked)
-{
- if ( nPos < GetEntryCount() )
- SetCheckButtonState(
- GetEntry(nPos),
- nCol,
- bChecked ? SvButtonState::Checked : SvButtonState::Unchecked );
-}
-
-void OfaMSFilterTabPage2::MSFltrSimpleTable::KeyInput( const KeyEvent& rKEvt )
-{
- if(!rKEvt.GetKeyCode().GetModifier() &&
- KEY_SPACE == rKEvt.GetKeyCode().GetCode())
- {
- sal_uLong nSelPos = GetModel()->GetAbsPos(GetCurEntry());
- sal_uInt16 nCol = GetCurrentTabPos() - 1;
- if ( nCol < 2 )
- {
- SvTreeListEntry* pEntry = GetEntry( nSelPos );
- bool bIsChecked = ( GetCheckButtonState( pEntry, nCol ) == SvButtonState::Checked );
- CheckEntryPos( nSelPos, nCol, !bIsChecked );
- CallImplEventListeners( VclEventId::CheckboxToggle, static_cast<void*>(pEntry) );
- }
- else
- {
- sal_uInt16 nCheck = GetCheckButtonState( GetEntry(nSelPos), 1 ) == SvButtonState::Checked ? 1 : 0;
- if(GetCheckButtonState( GetEntry(nSelPos), 0 ) != SvButtonState::Unchecked)
- nCheck += 2;
- nCheck--;
- nCheck &= 3;
- CheckEntryPos(nSelPos, 1, 0 != (nCheck & 1));
- CheckEntryPos(nSelPos, 0, 0 != (nCheck & 2));
- }
- }
- else
- SvSimpleTable::KeyInput(rKEvt);
+ return -1;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/options/optfltr.hxx b/cui/source/options/optfltr.hxx
index 79854e7b8650..2076a7fd13b9 100644
--- a/cui/source/options/optfltr.hxx
+++ b/cui/source/options/optfltr.hxx
@@ -51,52 +51,26 @@ enum class MSFltrPg2_CheckBoxEntries;
class OfaMSFilterTabPage2 : public SfxTabPage
{
-
- class MSFltrSimpleTable : public SvSimpleTable
- {
- using SvTreeListBox::GetCheckButtonState;
- using SvTreeListBox::SetCheckButtonState;
- using SvSimpleTable::SetTabs;
-
- void CheckEntryPos(sal_uLong nPos, sal_uInt16 nCol, bool bChecked);
- static SvButtonState GetCheckButtonState( SvTreeListEntry*, sal_uInt16 nCol );
- void SetCheckButtonState( SvTreeListEntry*, sal_uInt16 nCol, SvButtonState );
- protected:
- virtual void SetTabs() override;
- virtual void HBarClick() override;
- virtual void KeyInput( const KeyEvent& rKEvt ) override;
-
- public:
- explicit MSFltrSimpleTable(SvSimpleTableContainer& rParent)
- : SvSimpleTable(rParent, 0)
- {
- }
- };
-
- VclPtr<SvSimpleTableContainer> m_pCheckLBContainer;
- VclPtr<MSFltrSimpleTable> m_pCheckLB;
- OUString sHeader1, sHeader2;
OUString sChgToFromMath,
sChgToFromWriter,
sChgToFromCalc,
sChgToFromImpress,
sChgToFromSmartArt;
- std::unique_ptr<SvLBoxButtonData> m_xCheckButtonData;
- VclPtr<RadioButton> aHighlightingRB;
- VclPtr<RadioButton> aShadingRB;
- VclPtr<CheckBox> aMSOLockFileCB;
+ std::unique_ptr<weld::TreeView> m_xCheckLB;
+ std::unique_ptr<weld::RadioButton> m_xHighlightingRB;
+ std::unique_ptr<weld::RadioButton> m_xShadingRB;
+ std::unique_ptr<weld::CheckButton> m_xMSOLockFileCB;
virtual ~OfaMSFilterTabPage2() override;
- virtual void dispose() override;
void InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBoxEntries _nType );
void InsertEntry( const OUString& _rTxt, MSFltrPg2_CheckBoxEntries _nType,
bool saveEnabled );
- SvTreeListEntry* GetEntry4Type( MSFltrPg2_CheckBoxEntries _nType ) const;
+ int GetEntry4Type( MSFltrPg2_CheckBoxEntries _nType ) const;
public:
- OfaMSFilterTabPage2( vcl::Window* pParent, const SfxItemSet& rSet );
+ OfaMSFilterTabPage2(TabPageParent pParent, const SfxItemSet& rSet);
static VclPtr<SfxTabPage> Create( TabPageParent pParent, const SfxItemSet* rAttrSet );
virtual bool FillItemSet( SfxItemSet* rSet ) override;
diff --git a/cui/uiconfig/ui/optfltrembedpage.ui b/cui/uiconfig/ui/optfltrembedpage.ui
index df931247be30..b3570839030b 100644
--- a/cui/uiconfig/ui/optfltrembedpage.ui
+++ b/cui/uiconfig/ui/optfltrembedpage.ui
@@ -1,11 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.4 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="cui">
<requires lib="gtk+" version="3.18"/>
- <requires lib="LibreOffice" version="1.0"/>
+ <object class="GtkTreeStore" id="liststore1">
+ <columns>
+ <!-- column-name check1 -->
+ <column type="gboolean"/>
+ <!-- column-name check2 -->
+ <column type="gboolean"/>
+ <!-- column-name text -->
+ <column type="gchararray"/>
+ <!-- column-name id -->
+ <column type="gchararray"/>
+ <!-- column-name checkvis1 -->
+ <column type="gboolean"/>
+ <!-- column-name checktri1 -->
+ <column type="gboolean"/>
+ <!-- column-name checkvis2 -->
+ <column type="gboolean"/>
+ <!-- column-name checktri2 -->
+ <column type="gboolean"/>
+ </columns>
+ </object>
<object class="GtkGrid" id="OptFilterPage">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="border_width">6</property>
<property name="row_spacing">12</property>
<child>
@@ -22,21 +43,80 @@
<property name="can_focus">False</property>
<property name="margin_top">6</property>
<property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="top_padding">6</property>
<property name="left_padding">12</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="vexpand">True</property>
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
- <object class="svtlo-SvSimpleTableContainer" id="checklbcontainer">
+ <object class="GtkScrolledWindow" id="checklbcontainerscroll">
<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>
- <child internal-child="selection">
- <object class="GtkTreeSelection" id="Simple Table Container-selection1"/>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTreeView" id="checklbcontainer">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="model">liststore1</property>
+ <property name="search_column">0</property>
+ <property name="show_expanders">False</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection" id="Macro Library List-selection2"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn4">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="optfltrembedpage|column1">[L]</property>
+ <property name="alignment">0.5</property>
+ <child>
+ <object class="GtkCellRendererToggle" id="cellrenderer5"/>
+ <attributes>
+ <attribute name="visible">4</attribute>
+ <attribute name="active">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn7">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <property name="title" translatable="yes" context="optfltrembedpage|column1">[S]</property>
+ <property name="alignment">0.5</property>
+ <child>
+ <object class="GtkCellRendererToggle" id="cellrenderer7"/>
+ <attributes>
+ <attribute name="visible">4</attribute>
+ <attribute name="active">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn" id="treeviewcolumn5">
+ <property name="resizable">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderer4"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
</child>
</object>
<packing>
@@ -151,6 +231,7 @@
<property name="use_underline">True</property>
<property name="xalign">0</property>
<property name="draw_indicator">True</property>
+ <property name="group">highlighting</property>
</object>
<packing>
<property name="expand">False</property>