summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-04-15 20:49:03 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-04-16 22:20:17 +0200
commit59d1d9e661ee4a805ee280d7afab51a52bb11ed3 (patch)
treeff4f8cf1a798a1d7c88373529c5d632ceea913c5
parente1eaed63d03c3a5fa31722072d6f7c4478f1342b (diff)
weld ScFilterDlg
Change-Id: I8bb8860d398af2ee9d6dd434c50f914e78b8021b Reviewed-on: https://gerrit.libreoffice.org/70801 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--include/formula/funcutl.hxx1
-rw-r--r--sc/qa/unit/tiledrendering/tiledrendering.cxx5
-rw-r--r--sc/source/ui/dbgui/filtdlg.cxx771
-rw-r--r--sc/source/ui/dbgui/foptmgr.cxx230
-rw-r--r--sc/source/ui/inc/filtdlg.hxx110
-rw-r--r--sc/source/ui/inc/foptmgr.hxx52
-rw-r--r--sc/source/ui/inc/reffact.hxx2
-rw-r--r--sc/source/ui/view/reffact.cxx4
-rw-r--r--sc/source/ui/view/tabvwshc.cxx53
-rw-r--r--sc/uiconfig/scalc/ui/standardfilterdialog.ui916
-rw-r--r--solenv/sanitizers/ui/modules/scalc.suppr1
11 files changed, 1206 insertions, 939 deletions
diff --git a/include/formula/funcutl.hxx b/include/formula/funcutl.hxx
index 22e46ecc81c1..3654d9ebd966 100644
--- a/include/formula/funcutl.hxx
+++ b/include/formula/funcutl.hxx
@@ -177,6 +177,7 @@ public:
void SetGetFocusHdl(const Link<WeldRefEdit&,void>& rLink) { maGetFocusHdl = rLink; }
void SetLoseFocusHdl(const Link<WeldRefEdit&,void>& rLink) { maLoseFocusHdl = rLink; }
void SetModifyHdl(const Link<WeldRefEdit&,void>& rLink) { maModifyHdl = rLink; }
+ const Link<WeldRefEdit&,void>& GetModifyHdl() const { return maModifyHdl; }
void SetActivateHdl(const Link<weld::Widget&,bool>& rLink) { maActivateHdl = rLink; }
};
diff --git a/sc/qa/unit/tiledrendering/tiledrendering.cxx b/sc/qa/unit/tiledrendering/tiledrendering.cxx
index 5222a64c8dbb..326966e940af 100644
--- a/sc/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sc/qa/unit/tiledrendering/tiledrendering.cxx
@@ -1647,11 +1647,8 @@ void ScTiledRenderingTest::testFilterDlg()
CPPUNIT_ASSERT_EQUAL(true, pView2->GetViewFrame()->GetDispatcher()->IsLocked());
CPPUNIT_ASSERT_EQUAL(false, pView1->GetViewFrame()->GetDispatcher()->IsLocked());
- KeyEvent aEvent(27, KEY_ESCAPE, 0);
- Application::PostKeyEvent(VclEventId::WindowKeyInput, pRefWindow->GetWindow(), &aEvent);
- Application::PostKeyEvent(VclEventId::WindowKeyUp, pRefWindow->GetWindow(), &aEvent);
+ pRefWindow->GetController()->response(RET_CANCEL);
- Scheduler::ProcessEventsToIdle();
CPPUNIT_ASSERT_EQUAL(false, pView2->GetViewFrame()->GetDispatcher()->IsLocked());
CPPUNIT_ASSERT_EQUAL(false, pView1->GetViewFrame()->GetDispatcher()->IsLocked());
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index 9b6fe0ea03da..477dc0f63cbd 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -46,10 +46,10 @@
ScFilterDlg::EntryList::EntryList() :
mnHeaderPos(INVALID_HEADER_POS) {}
-ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
+ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
const SfxItemSet& rArgSet)
- : ScAnyRefDlg ( pB, pCW, pParent, "StandardFilterDialog",
- "modules/scalc/ui/standardfilterdialog.ui" )
+ : ScAnyRefDlgController(pB, pCW, pParent,
+ "modules/scalc/ui/standardfilterdialog.ui", "StandardFilterDialog")
, aStrUndefined(ScResId(SCSTR_UNDEFINED))
, aStrNone(ScResId(SCSTR_NONE))
, aStrEmpty(ScResId(SCSTR_FILTER_EMPTY))
@@ -61,41 +61,42 @@ ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pPar
, pDoc(nullptr)
, nSrcTab(0)
, bRefInputMode(false)
+ , m_xLbConnect1(m_xBuilder->weld_combo_box("connect1"))
+ , m_xLbField1(m_xBuilder->weld_combo_box("field1"))
+ , m_xLbCond1(m_xBuilder->weld_combo_box("cond1"))
+ , m_xEdVal1(m_xBuilder->weld_combo_box("val1"))
+ , m_xLbConnect2(m_xBuilder->weld_combo_box("connect2"))
+ , m_xLbField2(m_xBuilder->weld_combo_box("field2"))
+ , m_xLbCond2(m_xBuilder->weld_combo_box("cond2"))
+ , m_xEdVal2(m_xBuilder->weld_combo_box("val2"))
+ , m_xLbConnect3(m_xBuilder->weld_combo_box("connect3"))
+ , m_xLbField3(m_xBuilder->weld_combo_box("field3"))
+ , m_xLbCond3(m_xBuilder->weld_combo_box("cond3"))
+ , m_xEdVal3(m_xBuilder->weld_combo_box("val3"))
+ , m_xLbConnect4(m_xBuilder->weld_combo_box("connect4"))
+ , m_xLbField4(m_xBuilder->weld_combo_box("field4"))
+ , m_xLbCond4(m_xBuilder->weld_combo_box("cond4"))
+ , m_xEdVal4(m_xBuilder->weld_combo_box("val4"))
+ , m_xContents(m_xBuilder->weld_widget("grid"))
+ , m_xScrollBar(m_xBuilder->weld_scrolled_window("scrollbar"))
+ , m_xExpander(m_xBuilder->weld_expander("more"))
+ , m_xBtnOk(m_xBuilder->weld_button("ok"))
+ , m_xBtnCancel(m_xBuilder->weld_button("cancel"))
+ , m_xBtnCase(m_xBuilder->weld_check_button("case"))
+ , m_xBtnRegExp(m_xBuilder->weld_check_button("regexp"))
+ , m_xBtnHeader(m_xBuilder->weld_check_button("header"))
+ , m_xBtnUnique(m_xBuilder->weld_check_button("unique"))
+ , m_xBtnCopyResult(m_xBuilder->weld_check_button("copyresult"))
+ , m_xLbCopyArea(m_xBuilder->weld_combo_box("lbcopyarea"))
+ , m_xEdCopyArea(new formula::WeldRefEdit(m_xBuilder->weld_entry("edcopyarea")))
+ , m_xRbCopyArea(new formula::WeldRefButton(m_xBuilder->weld_button("rbcopyarea")))
+ , m_xBtnDestPers(m_xBuilder->weld_check_button("destpers"))
+ , m_xFtDbAreaLabel(m_xBuilder->weld_label("dbarealabel"))
+ , m_xFtDbArea(m_xBuilder->weld_label("dbarea"))
{
- get(pLbConnect1,"connect1");
- get(pLbField1,"field1");
- get(pLbCond1,"cond1");
- get(pEdVal1,"val1");
- get(pLbConnect2,"connect2");
- get(pLbField2,"field2");
- get(pLbCond2,"cond2");
- get(pEdVal2,"val2");
- get(pLbConnect3,"connect3");
- get(pLbField3,"field3");
- get(pLbCond3,"cond3");
- get(pEdVal3,"val3");
- get(pLbConnect4,"connect4");
- get(pLbField4,"field4");
- get(pLbCond4,"cond4");
- get(pEdVal4,"val4");
- get(pScrollBar,"scrollbar");
- get(pExpander,"more");
- pExpander->SetExpandedHdl(LINK(this, ScFilterDlg, MoreExpandedHdl));
- get(pBtnOk,"ok");
- get(pBtnCancel,"cancel");
- get(pBtnCase,"case");
- get(pBtnRegExp,"regexp");
- get(pBtnHeader,"header");
- get(pBtnUnique,"unique");
- get(pBtnCopyResult,"copyresult");
- get(pLbCopyArea,"lbcopyarea");
- get(pEdCopyArea,"edcopyarea");
- pEdCopyArea->SetReferences(this, pBtnCopyResult);
- get(pRbCopyArea,"rbcopyarea");
- pRbCopyArea->SetReferences(this, pEdCopyArea);
- get(pBtnDestPers,"destpers");
- get(pFtDbAreaLabel,"dbarealabel");
- get(pFtDbArea,"dbarea");
+ m_xExpander->connect_expanded(LINK(this, ScFilterDlg, MoreExpandedHdl));
+ m_xEdCopyArea->SetReferences(this, m_xFtDbAreaLabel.get());
+ m_xRbCopyArea->SetReferences(this, m_xEdCopyArea.get());
Init( rArgSet );
@@ -107,54 +108,12 @@ ScFilterDlg::ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pPar
ScFilterDlg::~ScFilterDlg()
{
- disposeOnce();
-}
-
-void ScFilterDlg::dispose()
-{
pOptionsMgr.reset();
pOutItem.reset();
// Hack: RefInput control
pTimer->Stop();
pTimer.reset();
-
- pLbConnect1.clear();
- pLbField1.clear();
- pLbCond1.clear();
- pEdVal1.clear();
- pLbConnect2.clear();
- pLbField2.clear();
- pLbCond2.clear();
- pEdVal2.clear();
- pLbConnect3.clear();
- pLbField3.clear();
- pLbCond3.clear();
- pEdVal3.clear();
- pLbConnect4.clear();
- pLbField4.clear();
- pLbCond4.clear();
- pEdVal4.clear();
- pScrollBar.clear();
- pExpander.clear();
- pBtnOk.clear();
- pBtnCancel.clear();
- pBtnCase.clear();
- pBtnRegExp.clear();
- pBtnHeader.clear();
- pBtnUnique.clear();
- pBtnCopyResult.clear();
- pLbCopyArea.clear();
- pEdCopyArea.clear();
- pRbCopyArea.clear();
- pBtnDestPers.clear();
- pFtDbAreaLabel.clear();
- pFtDbArea.clear();
- maValueEdArr.clear();
- maFieldLbArr.clear();
- maCondLbArr.clear();
- maConnLbArr.clear();
- ScAnyRefDlg::dispose();
}
void ScFilterDlg::Init( const SfxItemSet& rArgSet )
@@ -162,29 +121,34 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
const ScQueryItem& rQueryItem = static_cast<const ScQueryItem&>(
rArgSet.Get( nWhichQuery ));
- pBtnOk->SetClickHdl ( LINK( this, ScFilterDlg, EndDlgHdl ) );
- pBtnCancel->SetClickHdl ( LINK( this, ScFilterDlg, EndDlgHdl ) );
- pBtnHeader->SetClickHdl ( LINK( this, ScFilterDlg, CheckBoxHdl ) );
- pBtnCase->SetClickHdl ( LINK( this, ScFilterDlg, CheckBoxHdl ) );
-
- pLbField1->SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbField2->SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbField3->SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbField4->SetSelectHdl ( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbConnect1->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbConnect2->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbConnect3->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbConnect4->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
-
- pLbField1->setMaxWidthChars(10);
- pLbField2->setMaxWidthChars(10);
- pLbField3->setMaxWidthChars(10);
- pLbField4->setMaxWidthChars(10);
-
- pLbCond1->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbCond2->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbCond3->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
- pLbCond4->SetSelectHdl( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xBtnOk->connect_clicked ( LINK( this, ScFilterDlg, EndDlgHdl ) );
+ m_xBtnCancel->connect_clicked ( LINK( this, ScFilterDlg, EndDlgHdl ) );
+ m_xBtnHeader->connect_clicked ( LINK( this, ScFilterDlg, CheckBoxHdl ) );
+ m_xBtnCase->connect_clicked ( LINK( this, ScFilterDlg, CheckBoxHdl ) );
+
+ m_xLbField1->connect_changed ( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbField2->connect_changed ( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbField3->connect_changed ( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbField4->connect_changed ( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbConnect1->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbConnect2->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbConnect3->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbConnect4->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
+
+ m_xLbField1->append_text("0000000000");
+ m_xLbField1->set_active(0);
+ auto nPrefWidth = m_xLbField1->get_preferred_size().Width();
+ m_xLbField1->clear();
+
+ m_xLbField1->set_size_request(nPrefWidth, -1);
+ m_xLbField2->set_size_request(nPrefWidth, -1);
+ m_xLbField3->set_size_request(nPrefWidth, -1);
+ m_xLbField4->set_size_request(nPrefWidth, -1);
+
+ m_xLbCond1->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbCond2->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbCond3->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
+ m_xLbCond4->connect_changed( LINK( this, ScFilterDlg, LbSelectHdl ) );
pViewData = rQueryItem.GetViewData();
pDoc = pViewData ? pViewData->GetDocument() : nullptr;
@@ -192,41 +156,41 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
// for easier access:
maFieldLbArr.reserve(QUERY_ENTRY_COUNT);
- maFieldLbArr.push_back(pLbField1);
- maFieldLbArr.push_back(pLbField2);
- maFieldLbArr.push_back(pLbField3);
- maFieldLbArr.push_back(pLbField4);
+ maFieldLbArr.push_back(m_xLbField1.get());
+ maFieldLbArr.push_back(m_xLbField2.get());
+ maFieldLbArr.push_back(m_xLbField3.get());
+ maFieldLbArr.push_back(m_xLbField4.get());
maValueEdArr.reserve(QUERY_ENTRY_COUNT);
- maValueEdArr.push_back(pEdVal1);
- maValueEdArr.push_back(pEdVal2);
- maValueEdArr.push_back(pEdVal3);
- maValueEdArr.push_back(pEdVal4);
+ maValueEdArr.push_back(m_xEdVal1.get());
+ maValueEdArr.push_back(m_xEdVal2.get());
+ maValueEdArr.push_back(m_xEdVal3.get());
+ maValueEdArr.push_back(m_xEdVal4.get());
maCondLbArr.reserve(QUERY_ENTRY_COUNT);
- maCondLbArr.push_back(pLbCond1);
- maCondLbArr.push_back(pLbCond2);
- maCondLbArr.push_back(pLbCond3);
- maCondLbArr.push_back(pLbCond4);
+ maCondLbArr.push_back(m_xLbCond1.get());
+ maCondLbArr.push_back(m_xLbCond2.get());
+ maCondLbArr.push_back(m_xLbCond3.get());
+ maCondLbArr.push_back(m_xLbCond4.get());
maConnLbArr.reserve(QUERY_ENTRY_COUNT);
- maConnLbArr.push_back(pLbConnect1);
- maConnLbArr.push_back(pLbConnect2);
- maConnLbArr.push_back(pLbConnect3);
- maConnLbArr.push_back(pLbConnect4);
+ maConnLbArr.push_back(m_xLbConnect1.get());
+ maConnLbArr.push_back(m_xLbConnect2.get());
+ maConnLbArr.push_back(m_xLbConnect3.get());
+ maConnLbArr.push_back(m_xLbConnect4.get());
// Option initialization:
- pOptionsMgr.reset( new ScFilterOptionsMgr(
+ pOptionsMgr.reset( new FilterOptionsMgr(
pViewData,
theQueryData,
- pBtnCase,
- pBtnRegExp,
- pBtnHeader,
- pBtnUnique,
- pBtnCopyResult,
- pBtnDestPers,
- pLbCopyArea,
- pEdCopyArea,
- pRbCopyArea,
- pFtDbAreaLabel,
- pFtDbArea,
+ m_xBtnCase.get(),
+ m_xBtnRegExp.get(),
+ m_xBtnHeader.get(),
+ m_xBtnUnique.get(),
+ m_xBtnCopyResult.get(),
+ m_xBtnDestPers.get(),
+ m_xLbCopyArea.get(),
+ m_xEdCopyArea.get(),
+ m_xRbCopyArea.get(),
+ m_xFtDbAreaLabel.get(),
+ m_xFtDbArea.get(),
aStrUndefined ) );
// Read in field lists and select entries
@@ -247,12 +211,12 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
if (rEntry.IsQueryByEmpty())
{
aValStr = aStrEmpty;
- maCondLbArr[i]->Disable();
+ maCondLbArr[i]->set_sensitive(false);
}
else if (rEntry.IsQueryByNonEmpty())
{
aValStr = aStrNotEmpty;
- maCondLbArr[i]->Disable();
+ maCondLbArr[i]->set_sensitive(false);
}
else
{
@@ -301,92 +265,93 @@ void ScFilterDlg::Init( const SfxItemSet& rArgSet )
maRefreshExceptQuery[i] = true;
}
- maFieldLbArr[i]->SelectEntryPos( nFieldSelPos );
- maCondLbArr [i]->SelectEntryPos( nCondPos );
- maValueEdArr[i]->SetText( aValStr );
- maValueEdArr[i]->EnableAutocomplete( false );
- maValueEdArr[i]->SetModifyHdl( LINK( this, ScFilterDlg, ValModifyHdl ) );
+ maFieldLbArr[i]->set_active( nFieldSelPos );
+ maCondLbArr [i]->set_active( nCondPos );
+ maValueEdArr[i]->set_entry_text( aValStr );
+ maValueEdArr[i]->set_entry_completion(false);
+ maValueEdArr[i]->connect_changed( LINK( this, ScFilterDlg, ValModifyHdl ) );
UpdateValueList(i+1);
}
- pScrollBar->SetEndScrollHdl( LINK( this, ScFilterDlg, ScrollHdl ) );
- pScrollBar->SetScrollHdl( LINK( this, ScFilterDlg, ScrollHdl ) );
+ m_xScrollBar->set_user_managed_scrolling();
+ m_xScrollBar->connect_vadjustment_changed( LINK( this, ScFilterDlg, ScrollHdl ) );
+ m_xScrollBar->vadjustment_configure(0, 0, 8, 1, 3, 4);
+ Size aSize(m_xContents->get_preferred_size());
+ m_xContents->set_size_request(aSize.Width(), aSize.Height());
- pScrollBar->SetRange( Range( 0, 4 ) );
- pScrollBar->SetLineSize( 1 );
- pLbConnect1->Hide();
+ m_xLbConnect1->hide();
// Disable/Enable Logic:
- (pLbField1->GetSelectedEntryPos() != 0)
- && (pLbField2->GetSelectedEntryPos() != 0)
- ? pLbConnect2->SelectEntryPos( static_cast<sal_uInt16>(theQueryData.GetEntry(1).eConnect) )
- : pLbConnect2->SetNoSelection();
-
- (pLbField2->GetSelectedEntryPos() != 0)
- && (pLbField3->GetSelectedEntryPos() != 0)
- ? pLbConnect3->SelectEntryPos( static_cast<sal_uInt16>(theQueryData.GetEntry(2).eConnect) )
- : pLbConnect3->SetNoSelection();
-
- (pLbField3->GetSelectedEntryPos() != 0)
- && (pLbField4->GetSelectedEntryPos() != 0)
- ? pLbConnect4->SelectEntryPos( static_cast<sal_uInt16>(theQueryData.GetEntry(3).eConnect) )
- : pLbConnect4->SetNoSelection();
- if ( pLbField1->GetSelectedEntryPos() == 0 )
+ (m_xLbField1->get_active() != 0)
+ && (m_xLbField2->get_active() != 0)
+ ? m_xLbConnect2->set_active( static_cast<sal_uInt16>(theQueryData.GetEntry(1).eConnect) )
+ : m_xLbConnect2->set_active(-1);
+
+ (m_xLbField2->get_active() != 0)
+ && (m_xLbField3->get_active() != 0)
+ ? m_xLbConnect3->set_active( static_cast<sal_uInt16>(theQueryData.GetEntry(2).eConnect) )
+ : m_xLbConnect3->set_active(-1);
+
+ (m_xLbField3->get_active() != 0)
+ && (m_xLbField4->get_active() != 0)
+ ? m_xLbConnect4->set_active( static_cast<sal_uInt16>(theQueryData.GetEntry(3).eConnect) )
+ : m_xLbConnect4->set_active(-1);
+ if ( m_xLbField1->get_active() == 0 )
{
- pLbConnect2->Disable();
- pLbField2->Disable();
- pLbCond2->Disable();
- pEdVal2->Disable();
+ m_xLbConnect2->set_sensitive(false);
+ m_xLbField2->set_sensitive(false);
+ m_xLbCond2->set_sensitive(false);
+ m_xEdVal2->set_sensitive(false);
}
- else if ( pLbConnect2->GetSelectedEntryCount() == 0 )
+ else if ( m_xLbConnect2->get_active() == -1 )
{
- pLbField2->Disable();
- pLbCond2->Disable();
- pEdVal2->Disable();
+ m_xLbField2->set_sensitive(false);
+ m_xLbCond2->set_sensitive(false);
+ m_xEdVal2->set_sensitive(false);
}
- if ( pLbField2->GetSelectedEntryPos() == 0 )
+ if ( m_xLbField2->get_active() == 0 )
{
- pLbConnect3->Disable();
- pLbField3->Disable();
- pLbCond3->Disable();
- pEdVal3->Disable();
+ m_xLbConnect3->set_sensitive(false);
+ m_xLbField3->set_sensitive(false);
+ m_xLbCond3->set_sensitive(false);
+ m_xEdVal3->set_sensitive(false);
}
- else if ( pLbConnect3->GetSelectedEntryCount() == 0 )
+ else if ( m_xLbConnect3->get_active() == -1 )
{
- pLbField3->Disable();
- pLbCond3->Disable();
- pEdVal3->Disable();
+ m_xLbField3->set_sensitive(false);
+ m_xLbCond3->set_sensitive(false);
+ m_xEdVal3->set_sensitive(false);
}
- if ( pLbField3->GetSelectedEntryPos() == 0 )
+ if ( m_xLbField3->get_active() == 0 )
{
- pLbConnect4->Disable();
- pLbField4->Disable();
- pLbCond4->Disable();
- pEdVal4->Disable();
+ m_xLbConnect4->set_sensitive(false);
+ m_xLbField4->set_sensitive(false);
+ m_xLbCond4->set_sensitive(false);
+ m_xEdVal4->set_sensitive(false);
}
- else if ( pLbConnect4->GetSelectedEntryCount() == 0 )
+ else if ( m_xLbConnect4->get_active() == -1 )
{
- pLbField4->Disable();
- pLbCond4->Disable();
- pEdVal4->Disable();
+ m_xLbField4->set_sensitive(false);
+ m_xLbCond4->set_sensitive(false);
+ m_xEdVal4->set_sensitive(false);
}
- pEdVal1->setMaxWidthChars(10);
- pEdVal2->setMaxWidthChars(10);
- pEdVal3->setMaxWidthChars(10);
- pEdVal4->setMaxWidthChars(10);
+ m_xEdVal1->set_entry_width_chars(10);
+ m_xEdVal2->set_entry_width_chars(10);
+ m_xEdVal3->set_entry_width_chars(10);
+ m_xEdVal4->set_entry_width_chars(10);
if (pDoc != nullptr && pDoc->GetChangeTrack() != nullptr)
- pBtnCopyResult->Disable();
+ m_xBtnCopyResult->set_sensitive(false);
}
-bool ScFilterDlg::Close()
+void ScFilterDlg::Close()
{
if (pViewData)
pViewData->GetDocShell()->CancelAutoDBRange();
- return DoClose( ScFilterDlgWrapper::GetChildWindowId() );
+ DoClose( ScFilterDlgWrapper::GetChildWindowId() );
}
// Mouse-selected cell area becomes the new selection and is shown in the
@@ -397,9 +362,9 @@ void ScFilterDlg::SetReference( const ScRange& rRef, ScDocument* pDocP )
if ( bRefInputMode ) // Only possible if in reference edit mode
{
if ( rRef.aStart != rRef.aEnd )
- RefInputStart( pEdCopyArea );
+ RefInputStart( m_xEdCopyArea.get() );
OUString aRefStr(rRef.aStart.Format(ScRefFlags::ADDR_ABS_3D, pDocP, pDocP->GetAddressConvention()));
- pEdCopyArea->SetRefString( aRefStr );
+ m_xEdCopyArea->SetRefString( aRefStr );
}
}
@@ -407,25 +372,25 @@ void ScFilterDlg::SetActive()
{
if ( bRefInputMode )
{
- pEdCopyArea->GrabFocus();
- pEdCopyArea->GetModifyHdl().Call( *pEdCopyArea );
+ m_xEdCopyArea->GrabFocus();
+ m_xEdCopyArea->GetModifyHdl().Call( *m_xEdCopyArea );
}
else
- GrabFocus();
+ m_xDialog->grab_focus();
RefInputDone();
}
void ScFilterDlg::FillFieldLists()
{
- pLbField1->Clear();
- pLbField2->Clear();
- pLbField3->Clear();
- pLbField4->Clear();
- pLbField1->InsertEntry( aStrNone, 0 );
- pLbField2->InsertEntry( aStrNone, 0 );
- pLbField3->InsertEntry( aStrNone, 0 );
- pLbField4->InsertEntry( aStrNone, 0 );
+ m_xLbField1->clear();
+ m_xLbField2->clear();
+ m_xLbField3->clear();
+ m_xLbField4->clear();
+ m_xLbField1->append_text( aStrNone );
+ m_xLbField2->append_text( aStrNone );
+ m_xLbField3->append_text( aStrNone );
+ m_xLbField4->append_text( aStrNone );
if ( pDoc )
{
@@ -435,42 +400,39 @@ void ScFilterDlg::FillFieldLists()
SCROW nFirstRow = theQueryData.nRow1;
SCCOL nMaxCol = theQueryData.nCol2;
SCCOL col = 0;
- sal_uInt16 i=1;
for ( col=nFirstCol; col<=nMaxCol; col++ )
{
aFieldName = pDoc->GetString(col, nFirstRow, nTab);
- if (!pBtnHeader->IsChecked() || aFieldName.isEmpty())
+ if (!m_xBtnHeader->get_active() || aFieldName.isEmpty())
{
aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
}
- pLbField1->InsertEntry( aFieldName, i );
- pLbField2->InsertEntry( aFieldName, i );
- pLbField3->InsertEntry( aFieldName, i );
- pLbField4->InsertEntry( aFieldName, i );
- i++;
+ m_xLbField1->append_text( aFieldName );
+ m_xLbField2->append_text( aFieldName );
+ m_xLbField3->append_text( aFieldName );
+ m_xLbField4->append_text( aFieldName );
}
}
}
void ScFilterDlg::UpdateValueList( size_t nList )
{
- bool bCaseSens = pBtnCase->IsChecked();
+ bool bCaseSens = m_xBtnCase->get_active();
if (pDoc && nList > 0 && nList <= QUERY_ENTRY_COUNT)
{
- ComboBox* pValList = maValueEdArr[nList-1].get();
- const sal_Int32 nFieldSelPos = maFieldLbArr[nList-1]->GetSelectedEntryPos();
- sal_Int32 nListPos = 0;
- OUString aCurValue = pValList->GetText();
+ weld::ComboBox* pValList = maValueEdArr[nList-1];
+ const sal_Int32 nFieldSelPos = maFieldLbArr[nList-1]->get_active();
+ OUString aCurValue = pValList->get_active_text();
- pValList->Clear();
- pValList->InsertEntry( aStrNotEmpty, nListPos++ );
- pValList->InsertEntry( aStrEmpty, nListPos++ );
+ pValList->clear();
+ pValList->append_text(aStrNotEmpty);
+ pValList->append_text(aStrEmpty);
if ( nFieldSelPos )
{
- WaitObject aWaiter( this ); // even if only the list box has content
+ weld::WaitObject aWaiter(m_xDialog.get()); // even if only the list box has content
SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
EntryList* pList = nullptr;
@@ -532,11 +494,10 @@ void ScFilterDlg::UpdateValueList( size_t nList )
for (const auto& rEntry : pList->maFilterEntries)
{
- pValList->InsertEntry(rEntry.GetString(), nListPos++);
+ pValList->append_text(rEntry.GetString());
}
}
- pValList->SetText( aCurValue );
- pValList->EnableDDAutoWidth(false);
+ pValList->set_entry_text(aCurValue);
}
UpdateHdrInValueList( nList );
@@ -552,7 +513,7 @@ void ScFilterDlg::UpdateHdrInValueList( size_t nList )
if (nList == 0 || nList > QUERY_ENTRY_COUNT)
return;
- size_t nFieldSelPos = maFieldLbArr[nList-1]->GetSelectedEntryPos();
+ size_t nFieldSelPos = maFieldLbArr[nList-1]->get_active();
if (!nFieldSelPos)
return;
@@ -567,24 +528,24 @@ void ScFilterDlg::UpdateHdrInValueList( size_t nList )
if (nPos == INVALID_HEADER_POS)
return;
- ComboBox* pValList = maValueEdArr[nList-1].get();
- size_t nListPos = nPos + 2; // for "empty" and "non-empty"
+ weld::ComboBox* pValList = maValueEdArr[nList-1];
+ int nListPos = nPos + 2; // for "empty" and "non-empty"
const ScTypedStrData& rHdrEntry = m_EntryLists[nColumn]->maFilterEntries.maStrData[nPos];
const OUString& aHdrStr = rHdrEntry.GetString();
- bool bWasThere = aHdrStr == pValList->GetEntry(nListPos);
- bool bInclude = !pBtnHeader->IsChecked();
+ bool bWasThere = nListPos < pValList->get_count() && aHdrStr == pValList->get_text(nListPos);
+ bool bInclude = !m_xBtnHeader->get_active();
if (bInclude) // Include entry
{
if (!bWasThere)
- pValList->InsertEntry(aHdrStr, nListPos);
+ pValList->insert_text(nListPos, aHdrStr);
}
else // Omit entry
{
if (bWasThere)
- pValList->RemoveEntryAt(nListPos);
+ pValList->remove(nListPos);
}
}
@@ -592,11 +553,11 @@ void ScFilterDlg::ClearValueList( size_t nList )
{
if (nList > 0 && nList <= QUERY_ENTRY_COUNT)
{
- ComboBox* pValList = maValueEdArr[nList-1].get();
- pValList->Clear();
- pValList->InsertEntry( aStrNotEmpty, 0 );
- pValList->InsertEntry( aStrEmpty, 1 );
- pValList->SetText( EMPTY_OUSTRING );
+ weld::ComboBox* pValList = maValueEdArr[nList-1];
+ pValList->clear();
+ pValList->append_text( aStrNotEmpty );
+ pValList->append_text( aStrEmpty );
+ pValList->set_entry_text( EMPTY_OUSTRING );
}
}
@@ -614,14 +575,14 @@ ScQueryItem* ScFilterDlg::GetOutputItem()
ScQueryParam theParam( theQueryData );
bool bCopyPosOk = false;
- if ( pBtnCopyResult->IsChecked() )
+ if ( m_xBtnCopyResult->get_active() )
{
ScRefFlags nResult = theCopyPos.Parse(
- pEdCopyArea->GetText(), pDoc, pDoc->GetAddressConvention());
+ m_xEdCopyArea->GetText(), pDoc, pDoc->GetAddressConvention());
bCopyPosOk = (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
}
- if ( pBtnCopyResult->IsChecked() && bCopyPosOk )
+ if ( m_xBtnCopyResult->get_active() && bCopyPosOk )
{
theParam.bInplace = false;
theParam.nDestTab = theCopyPos.Tab();
@@ -636,12 +597,12 @@ ScQueryItem* ScFilterDlg::GetOutputItem()
theParam.nDestRow = 0;
}
- theParam.bHasHeader = pBtnHeader->IsChecked();
+ theParam.bHasHeader = m_xBtnHeader->get_active();
theParam.bByRow = true;
- theParam.bDuplicate = !pBtnUnique->IsChecked();
- theParam.bCaseSens = pBtnCase->IsChecked();
- theParam.eSearchType = pBtnRegExp->IsChecked() ? utl::SearchParam::SearchType::Regexp : utl::SearchParam::SearchType::Normal;
- theParam.bDestPers = pBtnDestPers->IsChecked();
+ theParam.bDuplicate = !m_xBtnUnique->get_active();
+ theParam.bCaseSens = m_xBtnCase->get_active();
+ theParam.eSearchType = m_xBtnRegExp->get_active() ? utl::SearchParam::SearchType::Regexp : utl::SearchParam::SearchType::Normal;
+ theParam.bDestPers = m_xBtnDestPers->get_active();
// only set the three - reset everything else
@@ -657,24 +618,24 @@ bool ScFilterDlg::IsRefInputMode() const
// Handler:
-IMPL_LINK( ScFilterDlg, EndDlgHdl, Button*, pBtn, void )
+IMPL_LINK( ScFilterDlg, EndDlgHdl, weld::Button&, rBtn, void )
{
- if ( pBtn == pBtnOk )
+ if ( &rBtn == m_xBtnOk.get() )
{
bool bAreaInputOk = true;
- if ( pBtnCopyResult->IsChecked() )
+ if ( m_xBtnCopyResult->get_active() )
{
- if ( !pOptionsMgr->VerifyPosStr( pEdCopyArea->GetText() ) )
+ if ( !pOptionsMgr->VerifyPosStr( m_xEdCopyArea->GetText() ) )
{
- if (!pExpander->get_expanded())
- pExpander->set_expanded(true);
+ if (!m_xExpander->get_expanded())
+ m_xExpander->set_expanded(true);
- std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(GetFrameWeld(),
+ std::unique_ptr<weld::MessageDialog> xBox(Application::CreateMessageDialog(m_xDialog.get(),
VclMessageType::Warning, VclButtonsType::Ok,
ScResId(STR_INVALID_TABREF)));
xBox->run();
- pEdCopyArea->GrabFocus();
+ m_xEdCopyArea->GrabFocus();
bAreaInputOk = false;
}
}
@@ -686,18 +647,18 @@ IMPL_LINK( ScFilterDlg, EndDlgHdl, Button*, pBtn, void )
GetBindings().GetDispatcher()->ExecuteList(FID_FILTER_OK,
SfxCallMode::SLOT | SfxCallMode::RECORD,
{ GetOutputItem() });
- Close();
+ response(RET_OK);
}
}
- else if ( pBtn == pBtnCancel )
+ else if ( &rBtn == m_xBtnCancel.get() )
{
- Close();
+ response(RET_CANCEL);
}
}
-IMPL_LINK_NOARG(ScFilterDlg, MoreExpandedHdl, VclExpander&, void)
+IMPL_LINK_NOARG(ScFilterDlg, MoreExpandedHdl, weld::Expander&, void)
{
- if ( pExpander->get_expanded() )
+ if ( m_xExpander->get_expanded() )
pTimer->Start();
else
{
@@ -711,55 +672,53 @@ IMPL_LINK_NOARG(ScFilterDlg, MoreExpandedHdl, VclExpander&, void)
IMPL_LINK( ScFilterDlg, TimeOutHdl, Timer*, _pTimer, void )
{
// Check if RefInputMode is still true every 50ms
+ if (_pTimer == pTimer.get() && m_xDialog->has_toplevel_focus())
+ bRefInputMode = (m_xEdCopyArea->GetWidget()->has_focus() || m_xRbCopyArea->GetWidget()->has_focus());
- if( _pTimer == pTimer.get() && IsActive() )
- bRefInputMode = (pEdCopyArea->HasFocus() || pRbCopyArea->HasFocus());
-
- if ( pExpander->get_expanded() )
+ if ( m_xExpander->get_expanded() )
pTimer->Start();
}
-IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox&, rLb, void )
+IMPL_LINK(ScFilterDlg, LbSelectHdl, weld::ComboBox&, rLb, void)
{
/*
* Handle enable/disable logic depending on which ListBox was selected
*/
sal_uInt16 nOffset = GetSliderPos();
- if ( &rLb == pLbConnect1 )
+ if ( &rLb == m_xLbConnect1.get() )
{
- pLbField1->Enable();
- pLbCond1->Enable();
- pEdVal1->Enable();
+ m_xLbField1->set_sensitive(true);
+ m_xLbCond1->set_sensitive(true);
+ m_xEdVal1->set_sensitive(true);
- const sal_Int32 nConnect1 = pLbConnect1->GetSelectedEntryPos();
+ const sal_Int32 nConnect1 = m_xLbConnect1->get_active();
size_t nQE = nOffset;
theQueryData.GetEntry(nQE).eConnect =static_cast<ScQueryConnect>(nConnect1);
if (maRefreshExceptQuery.size() < nQE + 1)
maRefreshExceptQuery.resize(nQE + 1, false);
maRefreshExceptQuery[nQE] = true;
}
-
- else if ( &rLb == pLbConnect2 )
+ else if ( &rLb == m_xLbConnect2.get() )
{
- pLbField2->Enable();
- pLbCond2->Enable();
- pEdVal2->Enable();
+ m_xLbField2->set_sensitive(true);
+ m_xLbCond2->set_sensitive(true);
+ m_xEdVal2->set_sensitive(true);
- const sal_Int32 nConnect2 = pLbConnect2->GetSelectedEntryPos();
+ const sal_Int32 nConnect2 = m_xLbConnect2->get_active();
size_t nQE = 1+nOffset;
theQueryData.GetEntry(nQE).eConnect =static_cast<ScQueryConnect>(nConnect2);
if (maRefreshExceptQuery.size() < nQE + 1)
maRefreshExceptQuery.resize(nQE + 1, false);
maRefreshExceptQuery[nQE]=true;
}
- else if ( &rLb == pLbConnect3 )
+ else if ( &rLb == m_xLbConnect3.get() )
{
- pLbField3->Enable();
- pLbCond3->Enable();
- pEdVal3->Enable();
+ m_xLbField3->set_sensitive(true);
+ m_xLbCond3->set_sensitive(true);
+ m_xEdVal3->set_sensitive(true);
- const sal_Int32 nConnect3 = pLbConnect3->GetSelectedEntryPos();
+ const sal_Int32 nConnect3 = m_xLbConnect3->get_active();
size_t nQE = 2 + nOffset;
theQueryData.GetEntry(nQE).eConnect = static_cast<ScQueryConnect>(nConnect3);
if (maRefreshExceptQuery.size() < nQE + 1)
@@ -767,49 +726,49 @@ IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox&, rLb, void )
maRefreshExceptQuery[nQE] = true;
}
- else if ( &rLb == pLbConnect4 )
+ else if ( &rLb == m_xLbConnect4.get() )
{
- pLbField4->Enable();
- pLbCond4->Enable();
- pEdVal4->Enable();
+ m_xLbField4->set_sensitive(true);
+ m_xLbCond4->set_sensitive(true);
+ m_xEdVal4->set_sensitive(true);
- const sal_Int32 nConnect4 = pLbConnect4->GetSelectedEntryPos();
+ const sal_Int32 nConnect4 = m_xLbConnect4->get_active();
size_t nQE = 3 + nOffset;
theQueryData.GetEntry(nQE).eConnect = static_cast<ScQueryConnect>(nConnect4);
if (maRefreshExceptQuery.size() < nQE + 1)
maRefreshExceptQuery.resize(nQE + 1, false);
maRefreshExceptQuery[nQE] = true;
}
- else if ( &rLb == pLbField1 )
+ else if ( &rLb == m_xLbField1.get() )
{
- if ( pLbField1->GetSelectedEntryPos() == 0 )
+ if ( m_xLbField1->get_active() == 0 )
{
- pLbConnect2->SetNoSelection();
- pLbConnect3->SetNoSelection();
- pLbConnect4->SetNoSelection();
- pLbField2->SelectEntryPos( 0 );
- pLbField3->SelectEntryPos( 0 );
- pLbField4->SelectEntryPos( 0 );
- pLbCond2->SelectEntryPos( 0 );
- pLbCond3->SelectEntryPos( 0 );
- pLbCond4->SelectEntryPos( 0 );
+ m_xLbConnect2->set_active(-1);
+ m_xLbConnect3->set_active(-1);
+ m_xLbConnect4->set_active(-1);
+ m_xLbField2->set_active( 0 );
+ m_xLbField3->set_active( 0 );
+ m_xLbField4->set_active( 0 );
+ m_xLbCond2->set_active( 0 );
+ m_xLbCond3->set_active( 0 );
+ m_xLbCond4->set_active( 0 );
ClearValueList( 1 );
ClearValueList( 2 );
ClearValueList( 3 );
ClearValueList( 4 );
- pLbConnect2->Disable();
- pLbConnect3->Disable();
- pLbConnect4->Disable();
- pLbField2->Disable();
- pLbField3->Disable();
- pLbField4->Disable();
- pLbCond2->Disable();
- pLbCond3->Disable();
- pLbCond4->Disable();
- pEdVal2->Disable();
- pEdVal3->Disable();
- pEdVal4->Disable();
+ m_xLbConnect2->set_sensitive(false);
+ m_xLbConnect3->set_sensitive(false);
+ m_xLbConnect4->set_sensitive(false);
+ m_xLbField2->set_sensitive(false);
+ m_xLbField3->set_sensitive(false);
+ m_xLbField4->set_sensitive(false);
+ m_xLbCond2->set_sensitive(false);
+ m_xLbCond3->set_sensitive(false);
+ m_xLbCond4->set_sensitive(false);
+ m_xEdVal2->set_sensitive(false);
+ m_xEdVal3->set_sensitive(false);
+ m_xEdVal4->set_sensitive(false);
SCSIZE nCount = theQueryData.GetEntryCount();
if (maRefreshExceptQuery.size() < nCount + 1)
maRefreshExceptQuery.resize(nCount + 1, false);
@@ -824,37 +783,37 @@ IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox&, rLb, void )
else
{
UpdateValueList( 1 );
- if ( !pLbConnect2->IsEnabled() )
+ if ( !m_xLbConnect2->get_sensitive() )
{
- pLbConnect2->Enable();
+ m_xLbConnect2->set_sensitive(true);
}
theQueryData.GetEntry(nOffset).bDoQuery = true;
- const sal_Int32 nField = rLb.GetSelectedEntryPos();
+ const sal_Int32 nField = rLb.get_active();
theQueryData.GetEntry(nOffset).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
}
}
- else if ( &rLb == pLbField2 )
+ else if ( &rLb == m_xLbField2.get() )
{
- if ( pLbField2->GetSelectedEntryPos() == 0 )
+ if ( m_xLbField2->get_active() == 0 )
{
- pLbConnect3->SetNoSelection();
- pLbConnect4->SetNoSelection();
- pLbField3->SelectEntryPos( 0 );
- pLbField4->SelectEntryPos( 0 );
- pLbCond3->SelectEntryPos( 0 );
- pLbCond4->SelectEntryPos( 0 );
+ m_xLbConnect3->set_active(-1);
+ m_xLbConnect4->set_active(-1);
+ m_xLbField3->set_active( 0 );
+ m_xLbField4->set_active( 0 );
+ m_xLbCond3->set_active( 0 );
+ m_xLbCond4->set_active( 0 );
ClearValueList( 2 );
ClearValueList( 3 );
ClearValueList( 4 );
- pLbConnect3->Disable();
- pLbConnect4->Disable();
- pLbField3->Disable();
- pLbField4->Disable();
- pLbCond3->Disable();
- pLbCond4->Disable();
- pEdVal3->Disable();
- pEdVal4->Disable();
+ m_xLbConnect3->set_sensitive(false);
+ m_xLbConnect4->set_sensitive(false);
+ m_xLbField3->set_sensitive(false);
+ m_xLbField4->set_sensitive(false);
+ m_xLbCond3->set_sensitive(false);
+ m_xLbCond4->set_sensitive(false);
+ m_xEdVal3->set_sensitive(false);
+ m_xEdVal4->set_sensitive(false);
sal_uInt16 nTemp=nOffset+1;
SCSIZE nCount = theQueryData.GetEntryCount();
@@ -871,30 +830,30 @@ IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox&, rLb, void )
else
{
UpdateValueList( 2 );
- if ( !pLbConnect3->IsEnabled() )
+ if ( !m_xLbConnect3->get_sensitive() )
{
- pLbConnect3->Enable();
+ m_xLbConnect3->set_sensitive(true);
}
- const sal_Int32 nField = rLb.GetSelectedEntryPos();
+ const sal_Int32 nField = rLb.get_active();
sal_uInt16 nQ=1+nOffset;
theQueryData.GetEntry(nQ).bDoQuery = true;
theQueryData.GetEntry(nQ).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
}
}
- else if ( &rLb == pLbField3 )
+ else if ( &rLb == m_xLbField3.get() )
{
- if ( pLbField3->GetSelectedEntryPos() == 0 )
+ if ( m_xLbField3->get_active() == 0 )
{
- pLbConnect4->SetNoSelection();
- pLbField4->SelectEntryPos( 0 );
- pLbCond4->SelectEntryPos( 0 );
+ m_xLbConnect4->set_active(-1);
+ m_xLbField4->set_active( 0 );
+ m_xLbCond4->set_active( 0 );
ClearValueList( 3 );
ClearValueList( 4 );
- pLbConnect4->Disable();
- pLbField4->Disable();
- pLbCond4->Disable();
- pEdVal4->Disable();
+ m_xLbConnect4->set_sensitive(false);
+ m_xLbField4->set_sensitive(false);
+ m_xLbCond4->set_sensitive(false);
+ m_xEdVal4->set_sensitive(false);
sal_uInt16 nTemp=nOffset+2;
SCSIZE nCount = theQueryData.GetEntryCount();
@@ -911,21 +870,21 @@ IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox&, rLb, void )
else
{
UpdateValueList( 3 );
- if ( !pLbConnect4->IsEnabled() )
+ if ( !m_xLbConnect4->get_sensitive() )
{
- pLbConnect4->Enable();
+ m_xLbConnect4->set_sensitive(true);
}
- const sal_Int32 nField = rLb.GetSelectedEntryPos();
+ const sal_Int32 nField = rLb.get_active();
sal_uInt16 nQ=2+nOffset;
theQueryData.GetEntry(nQ).bDoQuery = true;
theQueryData.GetEntry(nQ).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
}
}
- else if ( &rLb == pLbField4 )
+ else if ( &rLb == m_xLbField4.get() )
{
- if ( pLbField4->GetSelectedEntryPos() == 0 )
+ if ( m_xLbField4->get_active() == 0 )
{
ClearValueList( 4 );
sal_uInt16 nTemp=nOffset+3;
@@ -943,35 +902,35 @@ IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox&, rLb, void )
else
{
UpdateValueList( 4 );
- const sal_Int32 nField = rLb.GetSelectedEntryPos();
+ const sal_Int32 nField = rLb.get_active();
sal_uInt16 nQ=3+nOffset;
theQueryData.GetEntry(nQ).bDoQuery = true;
theQueryData.GetEntry(nQ).nField = theQueryData.nCol1 + static_cast<SCCOL>(nField) - 1 ;
}
}
- else if ( &rLb == pLbCond1)
+ else if ( &rLb == m_xLbCond1.get())
{
- theQueryData.GetEntry(nOffset).eOp=static_cast<ScQueryOp>(rLb.GetSelectedEntryPos());
+ theQueryData.GetEntry(nOffset).eOp=static_cast<ScQueryOp>(rLb.get_active());
}
- else if ( &rLb == pLbCond2)
+ else if ( &rLb == m_xLbCond2.get())
{
sal_uInt16 nQ=1+nOffset;
- theQueryData.GetEntry(nQ).eOp=static_cast<ScQueryOp>(rLb.GetSelectedEntryPos());
+ theQueryData.GetEntry(nQ).eOp=static_cast<ScQueryOp>(rLb.get_active());
}
- else if ( &rLb == pLbCond3)
+ else if ( &rLb == m_xLbCond3.get())
{
sal_uInt16 nQ=2+nOffset;
- theQueryData.GetEntry(nQ).eOp=static_cast<ScQueryOp>(rLb.GetSelectedEntryPos());
+ theQueryData.GetEntry(nQ).eOp=static_cast<ScQueryOp>(rLb.get_active());
}
else
{
sal_uInt16 nQ=3+nOffset;
- theQueryData.GetEntry(nQ).eOp=static_cast<ScQueryOp>(rLb.GetSelectedEntryPos());
+ theQueryData.GetEntry(nQ).eOp=static_cast<ScQueryOp>(rLb.get_active());
}
}
-IMPL_LINK( ScFilterDlg, CheckBoxHdl, Button*, pBox, void )
+IMPL_LINK( ScFilterDlg, CheckBoxHdl, weld::Button&, rBox, void )
{
// Column headers:
// Field list: Columnxx <-> column header string
@@ -979,17 +938,17 @@ IMPL_LINK( ScFilterDlg, CheckBoxHdl, Button*, pBox, void )
// Upper/lower case:
// Value list: completely new
- if ( pBox == pBtnHeader ) // Field list and value list
+ if ( &rBox == m_xBtnHeader.get() ) // Field list and value list
{
- const sal_Int32 nCurSel1 = pLbField1->GetSelectedEntryPos();
- const sal_Int32 nCurSel2 = pLbField2->GetSelectedEntryPos();
- const sal_Int32 nCurSel3 = pLbField3->GetSelectedEntryPos();
- const sal_Int32 nCurSel4 = pLbField4->GetSelectedEntryPos();
+ const sal_Int32 nCurSel1 = m_xLbField1->get_active();
+ const sal_Int32 nCurSel2 = m_xLbField2->get_active();
+ const sal_Int32 nCurSel3 = m_xLbField3->get_active();
+ const sal_Int32 nCurSel4 = m_xLbField4->get_active();
FillFieldLists();
- pLbField1->SelectEntryPos( nCurSel1 );
- pLbField2->SelectEntryPos( nCurSel2 );
- pLbField3->SelectEntryPos( nCurSel3 );
- pLbField4->SelectEntryPos( nCurSel4 );
+ m_xLbField1->set_active( nCurSel1 );
+ m_xLbField2->set_active( nCurSel2 );
+ m_xLbField3->set_active( nCurSel3 );
+ m_xLbField4->set_active( nCurSel4 );
UpdateHdrInValueList( 1 );
UpdateHdrInValueList( 2 );
@@ -997,7 +956,7 @@ IMPL_LINK( ScFilterDlg, CheckBoxHdl, Button*, pBox, void )
UpdateHdrInValueList( 4 );
}
- if ( pBox == pBtnCase ) // Complete value list
+ if ( &rBox == m_xBtnCase.get() ) // Complete value list
{
m_EntryLists.clear();
UpdateValueList( 1 ); // current text is recorded
@@ -1007,43 +966,43 @@ IMPL_LINK( ScFilterDlg, CheckBoxHdl, Button*, pBox, void )
}
}
-IMPL_LINK( ScFilterDlg, ValModifyHdl, Edit&, rEd, void )
+IMPL_LINK( ScFilterDlg, ValModifyHdl, weld::ComboBox&, rEd, void )
{
size_t nOffset = GetSliderPos();
size_t i = 0;
size_t nQE = i + nOffset;
- OUString aStrVal = rEd.GetText();
- ListBox* pLbCond = pLbCond1;
- ListBox* pLbField = pLbField1;
- if ( &rEd == pEdVal2 )
+ OUString aStrVal = rEd.get_active_text();
+ weld::ComboBox* pLbCond = m_xLbCond1.get();
+ weld::ComboBox* pLbField = m_xLbField1.get();
+ if ( &rEd == m_xEdVal2.get() )
{
- pLbCond = pLbCond2;
- pLbField = pLbField2;
+ pLbCond = m_xLbCond2.get();
+ pLbField = m_xLbField2.get();
i=1;
nQE=i+nOffset;
}
- if ( &rEd == pEdVal3 )
+ if ( &rEd == m_xEdVal3.get() )
{
- pLbCond = pLbCond3;
- pLbField = pLbField3;
+ pLbCond = m_xLbCond3.get();
+ pLbField = m_xLbField3.get();
i=2;
nQE=i+nOffset;
}
- if ( &rEd == pEdVal4 )
+ if ( &rEd == m_xEdVal4.get() )
{
- pLbCond = pLbCond4;
- pLbField = pLbField4;
+ pLbCond = m_xLbCond4.get();
+ pLbField = m_xLbField4.get();
i=3;
nQE=i+nOffset;
}
if ( aStrEmpty == aStrVal || aStrNotEmpty == aStrVal )
{
- pLbCond->SelectEntry(OUString('='));
- pLbCond->Disable();
+ pLbCond->set_active_text(OUString('='));
+ pLbCond->set_sensitive(false);
}
else
- pLbCond->Enable();
+ pLbCond->set_sensitive(true);
if (maHasDates.size() < nQE + 1)
maHasDates.resize(nQE + 1, false);
@@ -1052,7 +1011,7 @@ IMPL_LINK( ScFilterDlg, ValModifyHdl, Edit&, rEd, void )
ScQueryEntry& rEntry = theQueryData.GetEntry( nQE );
ScQueryEntry::Item& rItem = rEntry.GetQueryItem();
- bool bDoThis = (pLbField->GetSelectedEntryPos() != 0);
+ bool bDoThis = (pLbField->get_active() != 0);
rEntry.bDoQuery = bDoThis;
if ( rEntry.bDoQuery || maRefreshExceptQuery[nQE] )
@@ -1079,18 +1038,18 @@ IMPL_LINK( ScFilterDlg, ValModifyHdl, Edit&, rEd, void )
rItem.meType = bNumber ? ScQueryEntry::ByValue : ScQueryEntry::ByString;
}
- const sal_Int32 nField = pLbField->GetSelectedEntryPos();
+ const sal_Int32 nField = pLbField->get_active();
rEntry.nField = nField ? (theQueryData.nCol1 +
static_cast<SCCOL>(nField) - 1) : static_cast<SCCOL>(0);
- ScQueryOp eOp = static_cast<ScQueryOp>(pLbCond->GetSelectedEntryPos());
+ ScQueryOp eOp = static_cast<ScQueryOp>(pLbCond->get_active());
rEntry.eOp = eOp;
if (maHasDates[nQE] && !bByEmptyOrNotByEmpty)
rItem.meType = ScQueryEntry::ByDate;
}
}
-IMPL_LINK_NOARG(ScFilterDlg, ScrollHdl, ScrollBar*, void)
+IMPL_LINK_NOARG(ScFilterDlg, ScrollHdl, weld::ScrolledWindow&, void)
{
SliderMoved();
}
@@ -1103,15 +1062,15 @@ void ScFilterDlg::SliderMoved()
size_t ScFilterDlg::GetSliderPos()
{
- return static_cast<size_t>(pScrollBar->GetThumbPos());
+ return static_cast<size_t>(m_xScrollBar->vadjustment_get_value());
}
void ScFilterDlg::RefreshEditRow( size_t nOffset )
{
if (nOffset==0)
- maConnLbArr[0]->Hide();
+ maConnLbArr[0]->hide();
else
- maConnLbArr[0]->Show();
+ maConnLbArr[0]->show();
for (size_t i = 0; i < QUERY_ENTRY_COUNT; ++i)
{
@@ -1135,51 +1094,51 @@ void ScFilterDlg::RefreshEditRow( size_t nOffset )
if (rEntry.IsQueryByEmpty())
{
aValStr = aStrEmpty;
- maCondLbArr[i]->Disable();
+ maCondLbArr[i]->set_sensitive(false);
}
else if (rEntry.IsQueryByNonEmpty())
{
aValStr = aStrNotEmpty;
- maCondLbArr[i]->Disable();
+ maCondLbArr[i]->set_sensitive(false);
}
else
{
aValStr = aQueryStr;
- maCondLbArr[i]->Enable();
+ maCondLbArr[i]->set_sensitive(true);
}
- maFieldLbArr[i]->Enable();
- maValueEdArr[i]->Enable();
+ maFieldLbArr[i]->set_sensitive(true);
+ maValueEdArr[i]->set_sensitive(true);
if (nOffset==0)
{
if (i<3)
{
if(rEntry.bDoQuery)
- maConnLbArr[i+1]->Enable();
+ maConnLbArr[i+1]->set_sensitive(true);
else
- maConnLbArr[i+1]->Disable();
+ maConnLbArr[i+1]->set_sensitive(false);
size_t nQENext = nQE + 1;
if (maRefreshExceptQuery.size() < nQENext + 1)
maRefreshExceptQuery.resize(nQENext + 1, false);
if (theQueryData.GetEntry(nQENext).bDoQuery || maRefreshExceptQuery[nQENext])
- maConnLbArr[i+1]->SelectEntryPos( static_cast<sal_uInt16>(theQueryData.GetEntry(nQENext).eConnect) );
+ maConnLbArr[i+1]->set_active( static_cast<sal_uInt16>(theQueryData.GetEntry(nQENext).eConnect) );
else
- maConnLbArr[i+1]->SetNoSelection();
+ maConnLbArr[i+1]->set_active(-1);
}
}
else
{
if(theQueryData.GetEntry( nQE-1).bDoQuery)
- maConnLbArr[i]->Enable();
+ maConnLbArr[i]->set_sensitive(true);
else
- maConnLbArr[i]->Disable();
+ maConnLbArr[i]->set_sensitive(false);
if (maRefreshExceptQuery.size() < nQE + 1)
maRefreshExceptQuery.resize(nQE + 1, false);
if(rEntry.bDoQuery || maRefreshExceptQuery[nQE])
- maConnLbArr[i]->SelectEntryPos( static_cast<sal_uInt16>(rEntry.eConnect) );
+ maConnLbArr[i]->set_active( static_cast<sal_uInt16>(rEntry.eConnect) );
else
- maConnLbArr[i]->SetNoSelection();
+ maConnLbArr[i]->set_active(-1);
}
}
@@ -1189,25 +1148,25 @@ void ScFilterDlg::RefreshEditRow( size_t nOffset )
{
if(i<3)
{
- maConnLbArr[i+1]->SetNoSelection();
- maConnLbArr[i+1]->Disable();
+ maConnLbArr[i+1]->set_active(-1);
+ maConnLbArr[i+1]->set_sensitive(false);
}
}
else
{
if(theQueryData.GetEntry( nQE-1).bDoQuery)
- maConnLbArr[i]->Enable();
+ maConnLbArr[i]->set_sensitive(true);
else
- maConnLbArr[i]->Disable();
- maConnLbArr[i]->SetNoSelection();
+ maConnLbArr[i]->set_sensitive(false);
+ maConnLbArr[i]->set_active(-1);
}
- maFieldLbArr[i]->Disable();
- maCondLbArr[i]->Disable();
- maValueEdArr[i]->Disable();
+ maFieldLbArr[i]->set_sensitive(false);
+ maCondLbArr[i]->set_sensitive(false);
+ maValueEdArr[i]->set_sensitive(false);
}
- maFieldLbArr[i]->SelectEntryPos( nFieldSelPos );
- maCondLbArr [i]->SelectEntryPos( nCondPos );
- maValueEdArr[i]->SetText( aValStr );
+ maFieldLbArr[i]->set_active( nFieldSelPos );
+ maCondLbArr [i]->set_active( nCondPos );
+ maValueEdArr[i]->set_entry_text( aValStr );
UpdateValueList(i+1);
}
}
diff --git a/sc/source/ui/dbgui/foptmgr.cxx b/sc/source/ui/dbgui/foptmgr.cxx
index 1449504d444e..47e0274a6aec 100644
--- a/sc/source/ui/dbgui/foptmgr.cxx
+++ b/sc/source/ui/dbgui/foptmgr.cxx
@@ -66,6 +66,41 @@ ScFilterOptionsMgr::ScFilterOptionsMgr(
Init();
}
+FilterOptionsMgr::FilterOptionsMgr(
+ ScViewData* ptrViewData,
+ const ScQueryParam& refQueryData,
+ weld::CheckButton* refBtnCase,
+ weld::CheckButton* refBtnRegExp,
+ weld::CheckButton* refBtnHeader,
+ weld::CheckButton* refBtnUnique,
+ weld::CheckButton* refBtnCopyResult,
+ weld::CheckButton* refBtnDestPers,
+ weld::ComboBox* refLbCopyArea,
+ formula::WeldRefEdit* refEdCopyArea,
+ formula::WeldRefButton* refRbCopyArea,
+ weld::Label* refFtDbAreaLabel,
+ weld::Label* refFtDbArea,
+ const OUString& refStrUndefined )
+
+ : pViewData ( ptrViewData ),
+ pDoc ( ptrViewData ? ptrViewData->GetDocument() : nullptr ),
+ pBtnCase ( refBtnCase ),
+ pBtnRegExp ( refBtnRegExp ),
+ pBtnHeader ( refBtnHeader ),
+ pBtnUnique ( refBtnUnique ),
+ pBtnCopyResult ( refBtnCopyResult ),
+ pBtnDestPers ( refBtnDestPers ),
+ pLbCopyArea ( refLbCopyArea ),
+ pEdCopyArea ( refEdCopyArea ),
+ pRbCopyArea ( refRbCopyArea ),
+ pFtDbAreaLabel ( refFtDbAreaLabel ),
+ pFtDbArea ( refFtDbArea ),
+ rStrUndefined ( refStrUndefined ),
+ rQueryData ( refQueryData )
+{
+ Init();
+}
+
ScFilterOptionsMgr::~ScFilterOptionsMgr()
{
const sal_Int32 nEntries = pLbCopyArea->GetEntryCount();
@@ -74,6 +109,10 @@ ScFilterOptionsMgr::~ScFilterOptionsMgr()
delete static_cast<OUString*>(pLbCopyArea->GetEntryData( i ));
}
+FilterOptionsMgr::~FilterOptionsMgr()
+{
+}
+
void ScFilterOptionsMgr::Init()
{
//moggi:TODO
@@ -193,6 +232,121 @@ void ScFilterOptionsMgr::Init()
pEdCopyArea->SetText( EMPTY_OUSTRING );
}
+void FilterOptionsMgr::Init()
+{
+//moggi:TODO
+ OSL_ENSURE( pViewData && pDoc, "Init failed :-/" );
+
+ pLbCopyArea->connect_changed( LINK( this, FilterOptionsMgr, LbAreaSelHdl ) );
+ pEdCopyArea->SetModifyHdl ( LINK( this, FilterOptionsMgr, EdAreaModifyHdl ) );
+ pBtnCopyResult->connect_toggled( LINK( this, FilterOptionsMgr, BtnCopyResultHdl ) );
+
+ pBtnCase->set_active( rQueryData.bCaseSens );
+ pBtnHeader->set_active( rQueryData.bHasHeader );
+ pBtnRegExp->set_active( rQueryData.eSearchType == utl::SearchParam::SearchType::Regexp );
+ pBtnUnique->set_active( !rQueryData.bDuplicate );
+
+ if ( pViewData && pDoc )
+ {
+ OUString theAreaStr;
+ ScRange theCurArea ( ScAddress( rQueryData.nCol1,
+ rQueryData.nRow1,
+ pViewData->GetTabNo() ),
+ ScAddress( rQueryData.nCol2,
+ rQueryData.nRow2,
+ pViewData->GetTabNo() ) );
+ ScDBCollection* pDBColl = pDoc->GetDBCollection();
+ OUString theDbArea;
+ OUString theDbName(STR_DB_LOCAL_NONAME);
+ const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+
+ theAreaStr = theCurArea.Format(ScRefFlags::RANGE_ABS_3D, pDoc, eConv);
+
+ // fill the target area list
+
+ pLbCopyArea->clear();
+ pLbCopyArea->append_text(rStrUndefined);
+
+ ScAreaNameIterator aIter( pDoc );
+ OUString aName;
+ ScRange aRange;
+ while ( aIter.Next( aName, aRange ) )
+ {
+ OUString aRefStr(aRange.aStart.Format(ScRefFlags::ADDR_ABS_3D, pDoc, eConv));
+ pLbCopyArea->append(aRefStr, aName);
+ }
+
+ pBtnDestPers->set_active(true); // always on when called
+ pLbCopyArea->set_active( 0 );
+ pEdCopyArea->SetText( EMPTY_OUSTRING );
+
+ /*
+ * Check whether the transferred area is a database area:
+ */
+
+ theDbArea = theAreaStr;
+
+ if ( pDBColl )
+ {
+ ScAddress& rStart = theCurArea.aStart;
+ ScAddress& rEnd = theCurArea.aEnd;
+ const ScDBData* pDBData = pDBColl->GetDBAtArea(
+ rStart.Tab(), rStart.Col(), rStart.Row(), rEnd.Col(), rEnd.Row());
+
+ if ( pDBData )
+ {
+ pBtnHeader->set_active( pDBData->HasHeader() );
+ theDbName = pDBData->GetName();
+
+ pBtnHeader->set_sensitive(theDbName == STR_DB_LOCAL_NONAME);
+ }
+ }
+
+ if ( theDbName != STR_DB_LOCAL_NONAME )
+ {
+ theDbArea += " (" + theDbName + ")";
+
+ pFtDbArea->set_label( theDbArea );
+ }
+ else
+ {
+ pFtDbAreaLabel->set_label( OUString() );
+ pFtDbArea->set_label( OUString() );
+ }
+
+ // position to copy to:
+
+ if ( !rQueryData.bInplace )
+ {
+ OUString aString =
+ ScAddress( rQueryData.nDestCol,
+ rQueryData.nDestRow,
+ rQueryData.nDestTab
+ ).Format(ScRefFlags::ADDR_ABS_3D, pDoc, eConv);
+
+ pBtnCopyResult->set_active(true);
+ pEdCopyArea->SetText( aString );
+ EdAreaModifyHdl( *pEdCopyArea );
+ pLbCopyArea->set_sensitive(true);
+ pEdCopyArea->GetWidget()->set_sensitive(true);
+ pRbCopyArea->GetWidget()->set_sensitive(true);
+ pBtnDestPers->set_sensitive(true);
+ }
+ else
+ {
+ pBtnCopyResult->set_active( false );
+ pEdCopyArea->SetText( EMPTY_OUSTRING );
+ pLbCopyArea->set_sensitive(false);
+ pEdCopyArea->GetWidget()->set_sensitive(false);
+ pRbCopyArea->GetWidget()->set_sensitive(false);
+ pBtnDestPers->set_sensitive(false);
+ }
+ }
+ else
+ pEdCopyArea->SetText( EMPTY_OUSTRING );
+}
+
+
bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
{
OUString aPosStr( rPosStr );
@@ -206,6 +360,19 @@ bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
return (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
}
+bool FilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
+{
+ OUString aPosStr( rPosStr );
+ sal_Int32 nColonPos = aPosStr.indexOf( ':' );
+
+ if ( -1 != nColonPos )
+ aPosStr = aPosStr.copy( 0, nColonPos );
+
+ ScRefFlags nResult = ScAddress().Parse( aPosStr, pDoc, pDoc->GetAddressConvention() );
+
+ return (nResult & ScRefFlags::VALID) == ScRefFlags::VALID;
+}
+
// Handler:
IMPL_LINK( ScFilterOptionsMgr, LbAreaSelHdl, ListBox&, rLb, void )
@@ -222,6 +389,21 @@ IMPL_LINK( ScFilterOptionsMgr, LbAreaSelHdl, ListBox&, rLb, void )
}
}
+IMPL_LINK( FilterOptionsMgr, LbAreaSelHdl, weld::ComboBox&, rLb, void )
+{
+ if ( &rLb == pLbCopyArea )
+ {
+ OUString aString;
+ const sal_Int32 nSelPos = pLbCopyArea->get_active();
+
+ if ( nSelPos > 0 )
+ aString = pLbCopyArea->get_id(nSelPos);
+
+ pEdCopyArea->SetText( aString );
+ }
+}
+
+
IMPL_LINK( ScFilterOptionsMgr, EdAreaModifyHdl, Edit&, rEd, void )
{
if ( &rEd == pEdCopyArea )
@@ -248,6 +430,32 @@ IMPL_LINK( ScFilterOptionsMgr, EdAreaModifyHdl, Edit&, rEd, void )
}
}
+IMPL_LINK( FilterOptionsMgr, EdAreaModifyHdl, formula::WeldRefEdit&, rEd, void )
+{
+ if ( &rEd == pEdCopyArea )
+ {
+ OUString theCurPosStr = rEd.GetText();
+ ScRefFlags nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
+
+ if ( (nResult & ScRefFlags::VALID) == ScRefFlags::VALID)
+ {
+ const sal_Int32 nCount = pLbCopyArea->get_count();
+
+ for ( sal_Int32 i=2; i<nCount; ++i )
+ {
+ OUString aStr = pLbCopyArea->get_id(i);
+ if (theCurPosStr == aStr)
+ {
+ pLbCopyArea->set_active( i );
+ return;
+ }
+ }
+
+ }
+ pLbCopyArea->set_active( 0 );
+ }
+}
+
IMPL_LINK( ScFilterOptionsMgr, BtnCopyResultHdl, CheckBox&, rBox, void )
{
if ( &rBox == pBtnCopyResult )
@@ -270,4 +478,26 @@ IMPL_LINK( ScFilterOptionsMgr, BtnCopyResultHdl, CheckBox&, rBox, void )
}
}
+IMPL_LINK( FilterOptionsMgr, BtnCopyResultHdl, weld::ToggleButton&, rBox, void )
+{
+ if ( &rBox == pBtnCopyResult )
+ {
+ if ( rBox.get_active() )
+ {
+ pBtnDestPers->set_sensitive(true);
+ pLbCopyArea->set_sensitive(true);
+ pEdCopyArea->GetWidget()->set_sensitive(true);
+ pRbCopyArea->GetWidget()->set_sensitive(true);
+ pEdCopyArea->GrabFocus();
+ }
+ else
+ {
+ pBtnDestPers->set_sensitive(false);
+ pLbCopyArea->set_sensitive(false);
+ pEdCopyArea->GetWidget()->set_sensitive(false);
+ pRbCopyArea->GetWidget()->set_sensitive(false);
+ }
+ }
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/filtdlg.hxx b/sc/source/ui/inc/filtdlg.hxx
index 5a2ab1542c34..74e87b1cf12b 100644
--- a/sc/source/ui/inc/filtdlg.hxx
+++ b/sc/source/ui/inc/filtdlg.hxx
@@ -34,11 +34,12 @@
#include <map>
class ScFilterOptionsMgr;
+class FilterOptionsMgr;
class ScViewData;
class ScDocument;
class ScQueryItem;
-class ScFilterDlg : public ScAnyRefDlg
+class ScFilterDlg : public ScAnyRefDlgController
{
struct EntryList
{
@@ -52,59 +53,21 @@ class ScFilterDlg : public ScAnyRefDlg
};
typedef std::map<SCCOL, std::unique_ptr<EntryList>> EntryListsMap;
public:
- ScFilterDlg( SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent,
- const SfxItemSet& rArgSet );
- virtual ~ScFilterDlg() override;
- virtual void dispose() override;
+ ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
+ const SfxItemSet& rArgSet);
+ virtual ~ScFilterDlg() override;
virtual void SetReference( const ScRange& rRef, ScDocument* pDoc ) override;
virtual bool IsRefInputMode() const override;
virtual void SetActive() override;
- virtual bool Close() override;
+ virtual void Close() override;
void SliderMoved();
size_t GetSliderPos();
void RefreshEditRow( size_t nOffset );
private:
- VclPtr<ListBox> pLbConnect1;
- VclPtr<ListBox> pLbField1;
- VclPtr<ListBox> pLbCond1;
- VclPtr<ComboBox> pEdVal1;
-
- VclPtr<ListBox> pLbConnect2;
- VclPtr<ListBox> pLbField2;
- VclPtr<ListBox> pLbCond2;
- VclPtr<ComboBox> pEdVal2;
-
- VclPtr<ListBox> pLbConnect3;
- VclPtr<ListBox> pLbField3;
- VclPtr<ListBox> pLbCond3;
- VclPtr<ComboBox> pEdVal3;
-
- VclPtr<ListBox> pLbConnect4;
- VclPtr<ListBox> pLbField4;
- VclPtr<ListBox> pLbCond4;
- VclPtr<ComboBox> pEdVal4;
-
- VclPtr<ScrollBar> pScrollBar;
- VclPtr<VclExpander> pExpander;
-
- VclPtr<OKButton> pBtnOk;
- VclPtr<CancelButton> pBtnCancel;
-
- VclPtr<CheckBox> pBtnCase;
- VclPtr<CheckBox> pBtnRegExp;
- VclPtr<CheckBox> pBtnHeader;
- VclPtr<CheckBox> pBtnUnique;
- VclPtr<CheckBox> pBtnCopyResult;
- VclPtr<ListBox> pLbCopyArea;
- VclPtr<formula::RefEdit> pEdCopyArea;
- VclPtr<formula::RefButton> pRbCopyArea;
- VclPtr<CheckBox> pBtnDestPers;
- VclPtr<FixedText> pFtDbAreaLabel;
- VclPtr<FixedText> pFtDbArea;
const OUString aStrUndefined;
const OUString aStrNone;
@@ -112,7 +75,7 @@ private:
const OUString aStrNotEmpty;
const OUString aStrColumn;
- std::unique_ptr<ScFilterOptionsMgr> pOptionsMgr;
+ std::unique_ptr<FilterOptionsMgr> pOptionsMgr;
const sal_uInt16 nWhichQuery;
ScQueryParam theQueryData;
@@ -121,10 +84,10 @@ private:
ScDocument* pDoc;
SCTAB nSrcTab;
- std::vector<VclPtr<ComboBox>> maValueEdArr;
- std::vector<VclPtr<ListBox>> maFieldLbArr;
- std::vector<VclPtr<ListBox>> maCondLbArr;
- std::vector<VclPtr<ListBox>> maConnLbArr;
+ std::vector<weld::ComboBox*> maValueEdArr;
+ std::vector<weld::ComboBox*> maFieldLbArr;
+ std::vector<weld::ComboBox*> maCondLbArr;
+ std::vector<weld::ComboBox*> maConnLbArr;
std::deque<bool> maHasDates;
std::deque<bool> maRefreshExceptQuery;
@@ -135,6 +98,45 @@ private:
// Hack: RefInput control
std::unique_ptr<Timer> pTimer;
+ std::unique_ptr<weld::ComboBox> m_xLbConnect1;
+ std::unique_ptr<weld::ComboBox> m_xLbField1;
+ std::unique_ptr<weld::ComboBox> m_xLbCond1;
+ std::unique_ptr<weld::ComboBox> m_xEdVal1;
+
+ std::unique_ptr<weld::ComboBox> m_xLbConnect2;
+ std::unique_ptr<weld::ComboBox> m_xLbField2;
+ std::unique_ptr<weld::ComboBox> m_xLbCond2;
+ std::unique_ptr<weld::ComboBox> m_xEdVal2;
+
+ std::unique_ptr<weld::ComboBox> m_xLbConnect3;
+ std::unique_ptr<weld::ComboBox> m_xLbField3;
+ std::unique_ptr<weld::ComboBox> m_xLbCond3;
+ std::unique_ptr<weld::ComboBox> m_xEdVal3;
+
+ std::unique_ptr<weld::ComboBox> m_xLbConnect4;
+ std::unique_ptr<weld::ComboBox> m_xLbField4;
+ std::unique_ptr<weld::ComboBox> m_xLbCond4;
+ std::unique_ptr<weld::ComboBox> m_xEdVal4;
+
+ std::unique_ptr<weld::Widget> m_xContents;
+ std::unique_ptr<weld::ScrolledWindow> m_xScrollBar;
+ std::unique_ptr<weld::Expander> m_xExpander;
+
+ std::unique_ptr<weld::Button> m_xBtnOk;
+ std::unique_ptr<weld::Button> m_xBtnCancel;
+
+ std::unique_ptr<weld::CheckButton> m_xBtnCase;
+ std::unique_ptr<weld::CheckButton> m_xBtnRegExp;
+ std::unique_ptr<weld::CheckButton> m_xBtnHeader;
+ std::unique_ptr<weld::CheckButton> m_xBtnUnique;
+ std::unique_ptr<weld::CheckButton> m_xBtnCopyResult;
+ std::unique_ptr<weld::ComboBox> m_xLbCopyArea;
+ std::unique_ptr<formula::WeldRefEdit> m_xEdCopyArea;
+ std::unique_ptr<formula::WeldRefButton> m_xRbCopyArea;
+ std::unique_ptr<weld::CheckButton> m_xBtnDestPers;
+ std::unique_ptr<weld::Label> m_xFtDbAreaLabel;
+ std::unique_ptr<weld::Label> m_xFtDbArea;
+
private:
void Init ( const SfxItemSet& rArgSet );
void FillFieldLists ();
@@ -145,12 +147,12 @@ private:
ScQueryItem* GetOutputItem ();
// Handler:
- DECL_LINK( LbSelectHdl, ListBox&, void );
- DECL_LINK( ValModifyHdl, Edit&, void );
- DECL_LINK( CheckBoxHdl, Button*, void );
- DECL_LINK( EndDlgHdl, Button*, void );
- DECL_LINK( ScrollHdl, ScrollBar*, void );
- DECL_LINK( MoreExpandedHdl, VclExpander&, void );
+ DECL_LINK( LbSelectHdl, weld::ComboBox&, void );
+ DECL_LINK( ValModifyHdl, weld::ComboBox&, void );
+ DECL_LINK( CheckBoxHdl, weld::Button&, void );
+ DECL_LINK( EndDlgHdl, weld::Button&, void );
+ DECL_LINK( ScrollHdl, weld::ScrolledWindow&, void );
+ DECL_LINK( MoreExpandedHdl, weld::Expander&, void );
// Hack: RefInput control
DECL_LINK( TimeOutHdl, Timer*, void );
diff --git a/sc/source/ui/inc/foptmgr.hxx b/sc/source/ui/inc/foptmgr.hxx
index eddfc10d2491..b8ac4d170a44 100644
--- a/sc/source/ui/inc/foptmgr.hxx
+++ b/sc/source/ui/inc/foptmgr.hxx
@@ -27,6 +27,8 @@
namespace formula
{
class RefButton;
+ class WeldRefButton;
+ class WeldRefEdit;
}
struct ScQueryParam;
class ScDocument;
@@ -81,6 +83,56 @@ private:
DECL_LINK( BtnCopyResultHdl, CheckBox&, void );
};
+class FilterOptionsMgr
+{
+public:
+ FilterOptionsMgr(ScViewData* ptrViewData,
+ const ScQueryParam& refQueryData,
+ weld::CheckButton* refBtnCase,
+ weld::CheckButton* refBtnRegExp,
+ weld::CheckButton* refBtnHeader,
+ weld::CheckButton* refBtnUnique,
+ weld::CheckButton* refBtnCopyResult,
+ weld::CheckButton* refBtnDestPers,
+ weld::ComboBox* refLbCopyArea,
+ formula::WeldRefEdit* refEdCopyArea,
+ formula::WeldRefButton* refRbCopyArea,
+ weld::Label* refFtDbAreaLabel,
+ weld::Label* refFtDbArea,
+ const OUString& refStrUndefined );
+ ~FilterOptionsMgr();
+ bool VerifyPosStr ( const OUString& rPosStr ) const;
+
+private:
+ ScViewData* const pViewData;
+ ScDocument* const pDoc;
+
+ weld::CheckButton* pBtnCase;
+ weld::CheckButton* pBtnRegExp;
+ weld::CheckButton* pBtnHeader;
+ weld::CheckButton* pBtnUnique;
+ weld::CheckButton* pBtnCopyResult;
+ weld::CheckButton* pBtnDestPers;
+ weld::ComboBox* pLbCopyArea;
+ formula::WeldRefEdit* pEdCopyArea;
+ formula::WeldRefButton* pRbCopyArea;
+ weld::Label* pFtDbAreaLabel;
+ weld::Label* pFtDbArea;
+
+ const OUString& rStrUndefined;
+
+ const ScQueryParam& rQueryData;
+
+private:
+ void Init();
+
+ // Handler:
+ DECL_LINK( EdAreaModifyHdl, formula::WeldRefEdit&, void );
+ DECL_LINK( LbAreaSelHdl, weld::ComboBox&, void );
+ DECL_LINK( BtnCopyResultHdl, weld::ToggleButton&, void );
+};
+
+
#endif // INCLUDED_SC_SOURCE_UI_INC_FOPTMGR_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/inc/reffact.hxx b/sc/source/ui/inc/reffact.hxx
index 81ec1f17e90e..3d44627c9e6d 100644
--- a/sc/source/ui/inc/reffact.hxx
+++ b/sc/source/ui/inc/reffact.hxx
@@ -51,7 +51,7 @@ DECL_WRAPPER_WITHID(ScOptSolverDlgWrapper)
DECL_WRAPPER_WITHID(ScXMLSourceDlgWrapper)
DECL_WRAPPER_WITHID(ScPivotLayoutWrapper)
DECL_WRAPPER_WITHID_CONTROLLER(ScTabOpDlgWrapper)
-DECL_WRAPPER_WITHID(ScFilterDlgWrapper)
+DECL_WRAPPER_WITHID_CONTROLLER(ScFilterDlgWrapper)
DECL_WRAPPER_WITHID(ScSpecialFilterDlgWrapper)
DECL_WRAPPER_WITHID_CONTROLLER(ScDbNameDlgWrapper)
DECL_WRAPPER_WITHID_CONTROLLER(ScConsolidateDlgWrapper)
diff --git a/sc/source/ui/view/reffact.cxx b/sc/source/ui/view/reffact.cxx
index 21e2b8a05e74..445de338882d 100644
--- a/sc/source/ui/view/reffact.cxx
+++ b/sc/source/ui/view/reffact.cxx
@@ -39,7 +39,7 @@ SFX_IMPL_MODELESSDIALOG_WITHID(ScOptSolverDlgWrapper, SID_OPENDLG_OPTSOLVER )
SFX_IMPL_MODELESSDIALOG_WITHID(ScXMLSourceDlgWrapper, SID_MANAGE_XML_SOURCE)
SFX_IMPL_MODELESSDIALOG_WITHID(ScPivotLayoutWrapper, SID_OPENDLG_PIVOTTABLE )
SFX_IMPL_CHILDWINDOW_WITHID(ScTabOpDlgWrapper, SID_OPENDLG_TABOP )
-SFX_IMPL_MODELESSDIALOG_WITHID(ScFilterDlgWrapper, SID_FILTER )
+SFX_IMPL_CHILDWINDOW_WITHID(ScFilterDlgWrapper, SID_FILTER )
SFX_IMPL_MODELESSDIALOG_WITHID(ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
SFX_IMPL_CHILDWINDOW_WITHID(ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
SFX_IMPL_CHILDWINDOW_WITHID(ScConsolidateDlgWrapper, SID_OPENDLG_CONSOLIDATE)
@@ -135,7 +135,7 @@ IMPL_CHILD_CTOR( ScPivotLayoutWrapper, SID_OPENDLG_PIVOTTABLE )
IMPL_CONTROLLER_CHILD_CTOR( ScTabOpDlgWrapper, SID_OPENDLG_TABOP )
-IMPL_CHILD_CTOR( ScFilterDlgWrapper, SID_FILTER )
+IMPL_CONTROLLER_CHILD_CTOR( ScFilterDlgWrapper, SID_FILTER )
IMPL_CHILD_CTOR( ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx
index 202db6f17e6d..40d6a9744ea6 100644
--- a/sc/source/ui/view/tabvwshc.cxx
+++ b/sc/source/ui/view/tabvwshc.cxx
@@ -173,33 +173,6 @@ VclPtr<SfxModelessDialog> ScTabViewShell::CreateRefDialog(
}
break;
- case SID_FILTER:
- {
-
- ScQueryParam aQueryParam;
- SfxItemSet aArgSet( GetPool(),
- svl::Items<SCITEM_QUERYDATA,
- SCITEM_QUERYDATA>{} );
-
- ScDBData* pDBData = GetDBData(false, SC_DB_MAKE, ScGetDBSelection::RowDown);
- pDBData->ExtendDataArea(pDoc);
- pDBData->GetQueryParam( aQueryParam );
-
- ScRange aArea;
- pDBData->GetArea(aArea);
- MarkRange(aArea, false);
-
- aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA,
- &GetViewData(),
- &aQueryParam ) );
-
- // mark current sheet (due to RefInput in dialog)
- GetViewData().SetRefTabNo( GetViewData().GetTabNo() );
-
- pResult = VclPtr<ScFilterDlg>::Create( pB, pCW, pParent, aArgSet );
- }
- break;
-
case SID_OPENDLG_OPTSOLVER:
{
ScViewData& rViewData = GetViewData();
@@ -486,6 +459,32 @@ std::unique_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont
xResult.reset(new ScConsolidateDlg(pB, pCW, pParent, aArgSet));
break;
}
+ case SID_FILTER:
+ {
+
+ ScQueryParam aQueryParam;
+ SfxItemSet aArgSet( GetPool(),
+ svl::Items<SCITEM_QUERYDATA,
+ SCITEM_QUERYDATA>{} );
+
+ ScDBData* pDBData = GetDBData(false, SC_DB_MAKE, ScGetDBSelection::RowDown);
+ pDBData->ExtendDataArea(pDoc);
+ pDBData->GetQueryParam( aQueryParam );
+
+ ScRange aArea;
+ pDBData->GetArea(aArea);
+ MarkRange(aArea, false);
+
+ aArgSet.Put( ScQueryItem( SCITEM_QUERYDATA,
+ &GetViewData(),
+ &aQueryParam ) );
+
+ // mark current sheet (due to RefInput in dialog)
+ GetViewData().SetRefTabNo( GetViewData().GetTabNo() );
+
+ xResult.reset(new ScFilterDlg(pB, pCW, pParent, aArgSet));
+ break;
+ }
}
if (xResult)
diff --git a/sc/uiconfig/scalc/ui/standardfilterdialog.ui b/sc/uiconfig/scalc/ui/standardfilterdialog.ui
index b1b757035b6d..a71da96fbb22 100644
--- a/sc/uiconfig/scalc/ui/standardfilterdialog.ui
+++ b/sc/uiconfig/scalc/ui/standardfilterdialog.ui
@@ -1,14 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.20.0 -->
+<!-- Generated with glade 3.22.1 -->
<interface domain="sc">
<requires lib="gtk+" version="3.18"/>
- <requires lib="LibreOffice" version="1.0"/>
<object class="GtkDialog" id="StandardFilterDialog">
<property name="can_focus">False</property>
<property name="border_width">6</property>
<property name="title" translatable="yes" context="standardfilterdialog|StandardFilterDialog">Standard Filter</property>
<property name="resizable">False</property>
+ <property name="default_width">0</property>
+ <property name="default_height">0</property>
<property name="type_hint">dialog</property>
+ <child>
+ <placeholder/>
+ </child>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1">
<property name="can_focus">False</property>
@@ -80,6 +84,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
+ <property name="vexpand">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">none</property>
<child>
@@ -91,458 +96,479 @@
<property name="top_padding">6</property>
<property name="left_padding">12</property>
<child>
- <object class="GtkGrid" id="grid1">
+ <object class="GtkScrolledWindow" id="scrollbar">
<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="row_spacing">6</property>
- <property name="column_spacing">12</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">always</property>
+ <property name="shadow_type">in</property>
<child>
- <object class="GtkScrollbar" id="scrollbar">
- <property name="height_request">1</property>
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- </object>
- <packing>
- <property name="left_attach">4</property>
- <property name="top_attach">0</property>
- <property name="height">5</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="connect1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="yes" context="standardfilterdialog|connect1">AND</item>
- <item translatable="yes" context="standardfilterdialog|connect1">OR</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="connect1-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect1-atkobject">Operator 1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="connect2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="yes" context="standardfilterdialog|connect2">AND</item>
- <item translatable="yes" context="standardfilterdialog|connect2">OR</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label2"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="connect2-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect2-atkobject">Operator 2</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="connect3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="yes" context="standardfilterdialog|connect3">AND</item>
- <item translatable="yes" context="standardfilterdialog|connect3">OR</item>
- </items>
- <child internal-child="accessible">
- <object class="AtkObject" id="connect3-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect3-atkobject">Operator 3</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="connect4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="yes" context="standardfilterdialog|connect4">AND</item>
- <item translatable="yes" context="standardfilterdialog|connect4">OR</item>
- </items>
- <child internal-child="accessible">
- <object class="AtkObject" id="connect4-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect4-atkobject">Operator 4</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="standardfilterdialog|label2">Operator</property>
- </object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="standardfilterdialog|label3">Field name</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="standardfilterdialog|label4">Condition</property>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label5">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="label" translatable="yes" context="standardfilterdialog|label5">Value</property>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="field1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <accessibility>
- <relation type="labelled-by" target="label3"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="field1-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field1-atkobject">Field Name 1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="field2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <accessibility>
- <relation type="labelled-by" target="label3"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="field2-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field2-atkobject">Field Name 2</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="field3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <accessibility>
- <relation type="labelled-by" target="label3"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="field3-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field3-atkobject">Field Name 3</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="field4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="field4-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field4-atkobject">Field Name 4</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="cond1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="no">=</item>
- <item translatable="no">&lt;</item>
- <item translatable="no">&gt;</item>
- <item translatable="no">&lt;=</item>
- <item translatable="no">&gt;=</item>
- <item translatable="no">&lt;&gt;</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Largest</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Smallest</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Largest %</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Smallest %</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Contains</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Does not contain</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Begins with</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Does not begin with</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Ends with</item>
- <item translatable="yes" context="standardfilterdialog|cond1">Does not end with</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label4"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="cond1-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond1-atkobject">Condition 1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="cond2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="no">=</item>
- <item translatable="no">&lt;</item>
- <item translatable="no">&gt;</item>
- <item translatable="no">&lt;=</item>
- <item translatable="no">&gt;=</item>
- <item translatable="no">&lt;&gt;</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Largest</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Smallest</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Largest %</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Smallest %</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Contains</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Does not contain</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Begins with</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Does not begin with</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Ends with</item>
- <item translatable="yes" context="standardfilterdialog|cond2">Does not end with</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label4"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="cond2-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond2-atkobject">Condition 2</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="cond3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="no">=</item>
- <item translatable="no">&lt;</item>
- <item translatable="no">&gt;</item>
- <item translatable="no">&lt;=</item>
- <item translatable="no">&gt;=</item>
- <item translatable="no">&lt;&gt;</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Largest</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Smallest</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Largest %</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Smallest %</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Contains</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Does not contain</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Begins with</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Does not begin with</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Ends with</item>
- <item translatable="yes" context="standardfilterdialog|cond3">Does not end with</item>
- </items>
- <accessibility>
- <relation type="labelled-by" target="label4"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="cond3-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond3-atkobject">Condition 3</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="cond4">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <items>
- <item translatable="no">=</item>
- <item translatable="no">&lt;</item>
- <item translatable="no">&gt;</item>
- <item translatable="no">&lt;=</item>
- <item translatable="no">&gt;=</item>
- <item translatable="no">&lt;&gt;</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Largest</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Smallest</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Largest %</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Smallest %</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Contains</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Does not contain</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Begins with</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Does not begin with</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Ends with</item>
- <item translatable="yes" context="standardfilterdialog|cond4">Does not end with</item>
- </items>
- <child internal-child="accessible">
- <object class="AtkObject" id="cond4-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond4-atkobject">Condition 4</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="val1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="comboboxtext-entry2">
- <property name="can_focus">False</property>
- </object>
- </child>
- <accessibility>
- <relation type="labelled-by" target="label5"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="val1-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val1-atkobject">Value 1</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="val2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="comboboxtext-entry4">
- <property name="can_focus">False</property>
- </object>
- </child>
- <accessibility>
- <relation type="labelled-by" target="label5"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="val2-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val2-atkobject">Value 2</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="val3">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="comboboxtext-entry6">
- <property name="can_focus">False</property>
- </object>
- </child>
- <accessibility>
- <relation type="labelled-by" target="label5"/>
- </accessibility>
- <child internal-child="accessible">
- <object class="AtkObject" id="val3-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val3-atkobject">Value 3</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">3</property>
- </packing>
- </child>
- <child>
- <object class="GtkComboBoxText" id="val4">
+ <object class="GtkViewport">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="hexpand">True</property>
- <property name="has_entry">True</property>
- <child internal-child="entry">
- <object class="GtkEntry" id="comboboxtext-entry8">
+ <property name="vexpand">True</property>
+ <child>
+ <object class="GtkGrid" id="grid">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
- </object>
- </child>
- <child internal-child="accessible">
- <object class="AtkObject" id="val4-atkobject">
- <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val4-atkobject">Value 4</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="border_width">3</property>
+ <property name="row_spacing">6</property>
+ <property name="column_spacing">12</property>
+ <child>
+ <object class="GtkComboBoxText" id="connect1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item translatable="yes" context="standardfilterdialog|connect1">AND</item>
+ <item translatable="yes" context="standardfilterdialog|connect1">OR</item>
+ </items>
+ <accessibility>
+ <relation type="labelled-by" target="label2"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="connect1-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect1-atkobject">Operator 1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="connect2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item translatable="yes" context="standardfilterdialog|connect2">AND</item>
+ <item translatable="yes" context="standardfilterdialog|connect2">OR</item>
+ </items>
+ <accessibility>
+ <relation type="labelled-by" target="label2"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="connect2-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect2-atkobject">Operator 2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="connect3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item translatable="yes" context="standardfilterdialog|connect3">AND</item>
+ <item translatable="yes" context="standardfilterdialog|connect3">OR</item>
+ </items>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="connect3-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect3-atkobject">Operator 3</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="connect4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item translatable="yes" context="standardfilterdialog|connect4">AND</item>
+ <item translatable="yes" context="standardfilterdialog|connect4">OR</item>
+ </items>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="connect4-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|connect4-atkobject">Operator 4</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="standardfilterdialog|label2">Operator</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="standardfilterdialog|label3">Field name</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="standardfilterdialog|label4">Condition</property>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes" context="standardfilterdialog|label5">Value</property>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="field1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <accessibility>
+ <relation type="labelled-by" target="label3"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="field1-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field1-atkobject">Field Name 1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="field2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <accessibility>
+ <relation type="labelled-by" target="label3"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="field2-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field2-atkobject">Field Name 2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="field3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <accessibility>
+ <relation type="labelled-by" target="label3"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="field3-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field3-atkobject">Field Name 3</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="field4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="field4-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|field4-atkobject">Field Name 4</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="cond1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item>=</item>
+ <item>&lt;</item>
+ <item>&gt;</item>
+ <item>&lt;=</item>
+ <item>&gt;=</item>
+ <item>&lt;&gt;</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Largest</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Smallest</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Largest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Smallest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Contains</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Does not contain</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Begins with</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Does not begin with</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Ends with</item>
+ <item translatable="yes" context="standardfilterdialog|cond1">Does not end with</item>
+ </items>
+ <accessibility>
+ <relation type="labelled-by" target="label4"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cond1-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond1-atkobject">Condition 1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="cond2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item>=</item>
+ <item>&lt;</item>
+ <item>&gt;</item>
+ <item>&lt;=</item>
+ <item>&gt;=</item>
+ <item>&lt;&gt;</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Largest</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Smallest</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Largest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Smallest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Contains</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Does not contain</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Begins with</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Does not begin with</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Ends with</item>
+ <item translatable="yes" context="standardfilterdialog|cond2">Does not end with</item>
+ </items>
+ <accessibility>
+ <relation type="labelled-by" target="label4"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cond2-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond2-atkobject">Condition 2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="cond3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item>=</item>
+ <item>&lt;</item>
+ <item>&gt;</item>
+ <item>&lt;=</item>
+ <item>&gt;=</item>
+ <item>&lt;&gt;</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Largest</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Smallest</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Largest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Smallest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Contains</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Does not contain</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Begins with</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Does not begin with</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Ends with</item>
+ <item translatable="yes" context="standardfilterdialog|cond3">Does not end with</item>
+ </items>
+ <accessibility>
+ <relation type="labelled-by" target="label4"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cond3-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond3-atkobject">Condition 3</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="cond4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item>=</item>
+ <item>&lt;</item>
+ <item>&gt;</item>
+ <item>&lt;=</item>
+ <item>&gt;=</item>
+ <item>&lt;&gt;</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Largest</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Smallest</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Largest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Smallest %</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Contains</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Does not contain</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Begins with</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Does not begin with</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Ends with</item>
+ <item translatable="yes" context="standardfilterdialog|cond4">Does not end with</item>
+ </items>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="cond4-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|cond4-atkobject">Condition 4</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">2</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="val1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="has_entry">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="comboboxtext-entry2">
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ </child>
+ <accessibility>
+ <relation type="labelled-by" target="label5"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="val1-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val1-atkobject">Value 1</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="val2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="has_entry">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="comboboxtext-entry4">
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ </child>
+ <accessibility>
+ <relation type="labelled-by" target="label5"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="val2-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val2-atkobject">Value 2</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="val3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="has_entry">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="comboboxtext-entry6">
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ </child>
+ <accessibility>
+ <relation type="labelled-by" target="label5"/>
+ </accessibility>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="val3-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val3-atkobject">Value 3</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBoxText" id="val4">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="has_entry">True</property>
+ <child internal-child="entry">
+ <object class="GtkEntry" id="comboboxtext-entry8">
+ <property name="can_focus">True</property>
+ <property name="activates_default">True</property>
+ </object>
+ </child>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="val4-atkobject">
+ <property name="AtkObject::accessible-name" translatable="yes" context="standardfilterdialog|val4-atkobject">Value 4</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">3</property>
+ <property name="top_attach">4</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
</object>
</child>
</object>
- <packing>
- <property name="left_attach">3</property>
- <property name="top_attach">4</property>
- </packing>
</child>
</object>
</child>
@@ -720,7 +746,7 @@
</packing>
</child>
<child>
- <object class="foruilo-RefEdit" id="edcopyarea">
+ <object class="GtkEntry" id="edcopyarea">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="margin_bottom">1</property>
@@ -741,7 +767,7 @@
</packing>
</child>
<child>
- <object class="foruilo-RefButton" id="rbcopyarea">
+ <object class="GtkButton" id="rbcopyarea">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
diff --git a/solenv/sanitizers/ui/modules/scalc.suppr b/solenv/sanitizers/ui/modules/scalc.suppr
index 4c5a0ad303cb..f1998440ad95 100644
--- a/solenv/sanitizers/ui/modules/scalc.suppr
+++ b/solenv/sanitizers/ui/modules/scalc.suppr
@@ -217,6 +217,7 @@ sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkComboBoxText[@id='val2'] missi
sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkComboBoxText[@id='val3'] missing-label-for
sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkLabel[@id='dbarealabel'] orphan-label
sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkLabel[@id='dbarea'] orphan-label
+sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkButton[@id='rbcopyarea'] button-no-label
sc/uiconfig/scalc/ui/scenariodialog.ui://GtkEntry[@id='name'] no-labelled-by
sc/uiconfig/scalc/ui/scenariodialog.ui://GtkLabel[@id='alttitle'] orphan-label
sc/uiconfig/scalc/ui/scenariodialog.ui://GtkLabel[@id='createdft'] orphan-label