Kaydet (Commit) 59d1d9e6 authored tarafından Caolán McNamara's avatar Caolán McNamara

weld ScFilterDlg

Change-Id: I8bb8860d398af2ee9d6dd434c50f914e78b8021b
Reviewed-on: https://gerrit.libreoffice.org/70801
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst e1eaed63
...@@ -177,6 +177,7 @@ public: ...@@ -177,6 +177,7 @@ public:
void SetGetFocusHdl(const Link<WeldRefEdit&,void>& rLink) { maGetFocusHdl = rLink; } void SetGetFocusHdl(const Link<WeldRefEdit&,void>& rLink) { maGetFocusHdl = rLink; }
void SetLoseFocusHdl(const Link<WeldRefEdit&,void>& rLink) { maLoseFocusHdl = rLink; } void SetLoseFocusHdl(const Link<WeldRefEdit&,void>& rLink) { maLoseFocusHdl = rLink; }
void SetModifyHdl(const Link<WeldRefEdit&,void>& rLink) { maModifyHdl = 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; } void SetActivateHdl(const Link<weld::Widget&,bool>& rLink) { maActivateHdl = rLink; }
}; };
......
...@@ -1647,11 +1647,8 @@ void ScTiledRenderingTest::testFilterDlg() ...@@ -1647,11 +1647,8 @@ void ScTiledRenderingTest::testFilterDlg()
CPPUNIT_ASSERT_EQUAL(true, pView2->GetViewFrame()->GetDispatcher()->IsLocked()); CPPUNIT_ASSERT_EQUAL(true, pView2->GetViewFrame()->GetDispatcher()->IsLocked());
CPPUNIT_ASSERT_EQUAL(false, pView1->GetViewFrame()->GetDispatcher()->IsLocked()); CPPUNIT_ASSERT_EQUAL(false, pView1->GetViewFrame()->GetDispatcher()->IsLocked());
KeyEvent aEvent(27, KEY_ESCAPE, 0); pRefWindow->GetController()->response(RET_CANCEL);
Application::PostKeyEvent(VclEventId::WindowKeyInput, pRefWindow->GetWindow(), &aEvent);
Application::PostKeyEvent(VclEventId::WindowKeyUp, pRefWindow->GetWindow(), &aEvent);
Scheduler::ProcessEventsToIdle();
CPPUNIT_ASSERT_EQUAL(false, pView2->GetViewFrame()->GetDispatcher()->IsLocked()); CPPUNIT_ASSERT_EQUAL(false, pView2->GetViewFrame()->GetDispatcher()->IsLocked());
CPPUNIT_ASSERT_EQUAL(false, pView1->GetViewFrame()->GetDispatcher()->IsLocked()); CPPUNIT_ASSERT_EQUAL(false, pView1->GetViewFrame()->GetDispatcher()->IsLocked());
......
This diff is collapsed.
...@@ -66,6 +66,41 @@ ScFilterOptionsMgr::ScFilterOptionsMgr( ...@@ -66,6 +66,41 @@ ScFilterOptionsMgr::ScFilterOptionsMgr(
Init(); 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() ScFilterOptionsMgr::~ScFilterOptionsMgr()
{ {
const sal_Int32 nEntries = pLbCopyArea->GetEntryCount(); const sal_Int32 nEntries = pLbCopyArea->GetEntryCount();
...@@ -74,6 +109,10 @@ ScFilterOptionsMgr::~ScFilterOptionsMgr() ...@@ -74,6 +109,10 @@ ScFilterOptionsMgr::~ScFilterOptionsMgr()
delete static_cast<OUString*>(pLbCopyArea->GetEntryData( i )); delete static_cast<OUString*>(pLbCopyArea->GetEntryData( i ));
} }
FilterOptionsMgr::~FilterOptionsMgr()
{
}
void ScFilterOptionsMgr::Init() void ScFilterOptionsMgr::Init()
{ {
//moggi:TODO //moggi:TODO
...@@ -193,6 +232,121 @@ void ScFilterOptionsMgr::Init() ...@@ -193,6 +232,121 @@ void ScFilterOptionsMgr::Init()
pEdCopyArea->SetText( EMPTY_OUSTRING ); 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 bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
{ {
OUString aPosStr( rPosStr ); OUString aPosStr( rPosStr );
...@@ -206,6 +360,19 @@ bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const ...@@ -206,6 +360,19 @@ bool ScFilterOptionsMgr::VerifyPosStr( const OUString& rPosStr ) const
return (nResult & ScRefFlags::VALID) == ScRefFlags::VALID; 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: // Handler:
IMPL_LINK( ScFilterOptionsMgr, LbAreaSelHdl, ListBox&, rLb, void ) IMPL_LINK( ScFilterOptionsMgr, LbAreaSelHdl, ListBox&, rLb, void )
...@@ -222,6 +389,21 @@ 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 ) IMPL_LINK( ScFilterOptionsMgr, EdAreaModifyHdl, Edit&, rEd, void )
{ {
if ( &rEd == pEdCopyArea ) if ( &rEd == pEdCopyArea )
...@@ -248,6 +430,32 @@ IMPL_LINK( ScFilterOptionsMgr, EdAreaModifyHdl, Edit&, rEd, void ) ...@@ -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 ) IMPL_LINK( ScFilterOptionsMgr, BtnCopyResultHdl, CheckBox&, rBox, void )
{ {
if ( &rBox == pBtnCopyResult ) if ( &rBox == pBtnCopyResult )
...@@ -270,4 +478,26 @@ IMPL_LINK( ScFilterOptionsMgr, BtnCopyResultHdl, CheckBox&, rBox, void ) ...@@ -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: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -34,11 +34,12 @@ ...@@ -34,11 +34,12 @@
#include <map> #include <map>
class ScFilterOptionsMgr; class ScFilterOptionsMgr;
class FilterOptionsMgr;
class ScViewData; class ScViewData;
class ScDocument; class ScDocument;
class ScQueryItem; class ScQueryItem;
class ScFilterDlg : public ScAnyRefDlg class ScFilterDlg : public ScAnyRefDlgController
{ {
struct EntryList struct EntryList
{ {
...@@ -52,59 +53,21 @@ class ScFilterDlg : public ScAnyRefDlg ...@@ -52,59 +53,21 @@ class ScFilterDlg : public ScAnyRefDlg
}; };
typedef std::map<SCCOL, std::unique_ptr<EntryList>> EntryListsMap; typedef std::map<SCCOL, std::unique_ptr<EntryList>> EntryListsMap;
public: public:
ScFilterDlg( SfxBindings* pB, SfxChildWindow* pCW, vcl::Window* pParent, ScFilterDlg(SfxBindings* pB, SfxChildWindow* pCW, weld::Window* pParent,
const SfxItemSet& rArgSet ); const SfxItemSet& rArgSet);
virtual ~ScFilterDlg() override; virtual ~ScFilterDlg() override;
virtual void dispose() override;
virtual void SetReference( const ScRange& rRef, ScDocument* pDoc ) override; virtual void SetReference( const ScRange& rRef, ScDocument* pDoc ) override;
virtual bool IsRefInputMode() const override; virtual bool IsRefInputMode() const override;
virtual void SetActive() override; virtual void SetActive() override;
virtual bool Close() override; virtual void Close() override;
void SliderMoved(); void SliderMoved();
size_t GetSliderPos(); size_t GetSliderPos();
void RefreshEditRow( size_t nOffset ); void RefreshEditRow( size_t nOffset );
private: 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 aStrUndefined;
const OUString aStrNone; const OUString aStrNone;
...@@ -112,7 +75,7 @@ private: ...@@ -112,7 +75,7 @@ private:
const OUString aStrNotEmpty; const OUString aStrNotEmpty;
const OUString aStrColumn; const OUString aStrColumn;
std::unique_ptr<ScFilterOptionsMgr> pOptionsMgr; std::unique_ptr<FilterOptionsMgr> pOptionsMgr;
const sal_uInt16 nWhichQuery; const sal_uInt16 nWhichQuery;
ScQueryParam theQueryData; ScQueryParam theQueryData;
...@@ -121,10 +84,10 @@ private: ...@@ -121,10 +84,10 @@ private:
ScDocument* pDoc; ScDocument* pDoc;
SCTAB nSrcTab; SCTAB nSrcTab;
std::vector<VclPtr<ComboBox>> maValueEdArr; std::vector<weld::ComboBox*> maValueEdArr;
std::vector<VclPtr<ListBox>> maFieldLbArr; std::vector<weld::ComboBox*> maFieldLbArr;
std::vector<VclPtr<ListBox>> maCondLbArr; std::vector<weld::ComboBox*> maCondLbArr;
std::vector<VclPtr<ListBox>> maConnLbArr; std::vector<weld::ComboBox*> maConnLbArr;
std::deque<bool> maHasDates; std::deque<bool> maHasDates;
std::deque<bool> maRefreshExceptQuery; std::deque<bool> maRefreshExceptQuery;
...@@ -135,6 +98,45 @@ private: ...@@ -135,6 +98,45 @@ private:
// Hack: RefInput control // Hack: RefInput control
std::unique_ptr<Timer> pTimer; 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: private:
void Init ( const SfxItemSet& rArgSet ); void Init ( const SfxItemSet& rArgSet );
void FillFieldLists (); void FillFieldLists ();
...@@ -145,12 +147,12 @@ private: ...@@ -145,12 +147,12 @@ private:
ScQueryItem* GetOutputItem (); ScQueryItem* GetOutputItem ();
// Handler: // Handler:
DECL_LINK( LbSelectHdl, ListBox&, void ); DECL_LINK( LbSelectHdl, weld::ComboBox&, void );
DECL_LINK( ValModifyHdl, Edit&, void ); DECL_LINK( ValModifyHdl, weld::ComboBox&, void );
DECL_LINK( CheckBoxHdl, Button*, void ); DECL_LINK( CheckBoxHdl, weld::Button&, void );
DECL_LINK( EndDlgHdl, Button*, void ); DECL_LINK( EndDlgHdl, weld::Button&, void );
DECL_LINK( ScrollHdl, ScrollBar*, void ); DECL_LINK( ScrollHdl, weld::ScrolledWindow&, void );
DECL_LINK( MoreExpandedHdl, VclExpander&, void ); DECL_LINK( MoreExpandedHdl, weld::Expander&, void );
// Hack: RefInput control // Hack: RefInput control
DECL_LINK( TimeOutHdl, Timer*, void ); DECL_LINK( TimeOutHdl, Timer*, void );
......
...@@ -27,6 +27,8 @@ ...@@ -27,6 +27,8 @@
namespace formula namespace formula
{ {
class RefButton; class RefButton;
class WeldRefButton;
class WeldRefEdit;
} }
struct ScQueryParam; struct ScQueryParam;
class ScDocument; class ScDocument;
...@@ -81,6 +83,56 @@ private: ...@@ -81,6 +83,56 @@ private:
DECL_LINK( BtnCopyResultHdl, CheckBox&, void ); 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 #endif // INCLUDED_SC_SOURCE_UI_INC_FOPTMGR_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -51,7 +51,7 @@ DECL_WRAPPER_WITHID(ScOptSolverDlgWrapper) ...@@ -51,7 +51,7 @@ DECL_WRAPPER_WITHID(ScOptSolverDlgWrapper)
DECL_WRAPPER_WITHID(ScXMLSourceDlgWrapper) DECL_WRAPPER_WITHID(ScXMLSourceDlgWrapper)
DECL_WRAPPER_WITHID(ScPivotLayoutWrapper) DECL_WRAPPER_WITHID(ScPivotLayoutWrapper)
DECL_WRAPPER_WITHID_CONTROLLER(ScTabOpDlgWrapper) DECL_WRAPPER_WITHID_CONTROLLER(ScTabOpDlgWrapper)
DECL_WRAPPER_WITHID(ScFilterDlgWrapper) DECL_WRAPPER_WITHID_CONTROLLER(ScFilterDlgWrapper)
DECL_WRAPPER_WITHID(ScSpecialFilterDlgWrapper) DECL_WRAPPER_WITHID(ScSpecialFilterDlgWrapper)
DECL_WRAPPER_WITHID_CONTROLLER(ScDbNameDlgWrapper) DECL_WRAPPER_WITHID_CONTROLLER(ScDbNameDlgWrapper)
DECL_WRAPPER_WITHID_CONTROLLER(ScConsolidateDlgWrapper) DECL_WRAPPER_WITHID_CONTROLLER(ScConsolidateDlgWrapper)
......
...@@ -39,7 +39,7 @@ SFX_IMPL_MODELESSDIALOG_WITHID(ScOptSolverDlgWrapper, SID_OPENDLG_OPTSOLVER ) ...@@ -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(ScXMLSourceDlgWrapper, SID_MANAGE_XML_SOURCE)
SFX_IMPL_MODELESSDIALOG_WITHID(ScPivotLayoutWrapper, SID_OPENDLG_PIVOTTABLE ) SFX_IMPL_MODELESSDIALOG_WITHID(ScPivotLayoutWrapper, SID_OPENDLG_PIVOTTABLE )
SFX_IMPL_CHILDWINDOW_WITHID(ScTabOpDlgWrapper, SID_OPENDLG_TABOP ) 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_MODELESSDIALOG_WITHID(ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
SFX_IMPL_CHILDWINDOW_WITHID(ScDbNameDlgWrapper, SID_DEFINE_DBNAME ) SFX_IMPL_CHILDWINDOW_WITHID(ScDbNameDlgWrapper, SID_DEFINE_DBNAME )
SFX_IMPL_CHILDWINDOW_WITHID(ScConsolidateDlgWrapper, SID_OPENDLG_CONSOLIDATE) SFX_IMPL_CHILDWINDOW_WITHID(ScConsolidateDlgWrapper, SID_OPENDLG_CONSOLIDATE)
...@@ -135,7 +135,7 @@ IMPL_CHILD_CTOR( ScPivotLayoutWrapper, SID_OPENDLG_PIVOTTABLE ) ...@@ -135,7 +135,7 @@ IMPL_CHILD_CTOR( ScPivotLayoutWrapper, SID_OPENDLG_PIVOTTABLE )
IMPL_CONTROLLER_CHILD_CTOR( ScTabOpDlgWrapper, SID_OPENDLG_TABOP ) 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 ) IMPL_CHILD_CTOR( ScSpecialFilterDlgWrapper, SID_SPECIAL_FILTER )
......
...@@ -173,33 +173,6 @@ VclPtr<SfxModelessDialog> ScTabViewShell::CreateRefDialog( ...@@ -173,33 +173,6 @@ VclPtr<SfxModelessDialog> ScTabViewShell::CreateRefDialog(
} }
break; 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: case SID_OPENDLG_OPTSOLVER:
{ {
ScViewData& rViewData = GetViewData(); ScViewData& rViewData = GetViewData();
...@@ -486,6 +459,32 @@ std::unique_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont ...@@ -486,6 +459,32 @@ std::unique_ptr<SfxModelessDialogController> ScTabViewShell::CreateRefDialogCont
xResult.reset(new ScConsolidateDlg(pB, pCW, pParent, aArgSet)); xResult.reset(new ScConsolidateDlg(pB, pCW, pParent, aArgSet));
break; 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) if (xResult)
......
...@@ -217,6 +217,7 @@ sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkComboBoxText[@id='val2'] missi ...@@ -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://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='dbarealabel'] orphan-label
sc/uiconfig/scalc/ui/standardfilterdialog.ui://GtkLabel[@id='dbarea'] 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://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='alttitle'] orphan-label
sc/uiconfig/scalc/ui/scenariodialog.ui://GtkLabel[@id='createdft'] orphan-label sc/uiconfig/scalc/ui/scenariodialog.ui://GtkLabel[@id='createdft'] orphan-label
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment