summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/querydesign
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-09-26 11:58:15 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-09-26 16:46:22 +0200
commite0218ed419378d3c31978bb6765f41e09371dc4f (patch)
treee1f7f9d1d76863e578b23c086c47f74682edadd5 /dbaccess/source/ui/querydesign
parent70e5fbcf28fe5eec16f32536adf4b506857d88cf (diff)
weld ORelationDialog and DlgQryJoin
Change-Id: I15c0745d387e491dd05e14949d744d0a27a8dd49 Reviewed-on: https://gerrit.libreoffice.org/79600 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess/source/ui/querydesign')
-rw-r--r--dbaccess/source/ui/querydesign/QueryTableView.cxx6
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.cxx130
-rw-r--r--dbaccess/source/ui/querydesign/querydlg.hxx29
3 files changed, 73 insertions, 92 deletions
diff --git a/dbaccess/source/ui/querydesign/QueryTableView.cxx b/dbaccess/source/ui/querydesign/QueryTableView.cxx
index f6123e2b9676..61042d620c02 100644
--- a/dbaccess/source/ui/querydesign/QueryTableView.cxx
+++ b/dbaccess/source/ui/querydesign/QueryTableView.cxx
@@ -84,11 +84,11 @@ namespace
{
OQueryTableConnectionData* pData = static_cast< OQueryTableConnectionData*>(_pConnectionData.get());
- ScopedVclPtrInstance< DlgQryJoin > aDlg(_pView,_pConnectionData,&_pView->GetTabWinMap(),_pView->getDesignView()->getController().getConnection(),_bSelectableTables);
- bool bOk = aDlg->Execute() == RET_OK;
+ DlgQryJoin aDlg(_pView,_pConnectionData,&_pView->GetTabWinMap(),_pView->getDesignView()->getController().getConnection(),_bSelectableTables);
+ bool bOk = aDlg.run() == RET_OK;
if( bOk )
{
- pData->SetJoinType(aDlg->GetJoinType());
+ pData->SetJoinType(aDlg.GetJoinType());
_pView->getDesignView()->getController().setModified(true);
}
diff --git a/dbaccess/source/ui/querydesign/querydlg.cxx b/dbaccess/source/ui/querydesign/querydlg.cxx
index 0370e6b0f38c..55e3e49a49b6 100644
--- a/dbaccess/source/ui/querydesign/querydlg.cxx
+++ b/dbaccess/source/ui/querydesign/querydlg.cxx
@@ -41,47 +41,46 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdbc;
-DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
+DlgQryJoin::DlgQryJoin(OQueryTableView* pParent,
const TTableConnectionData::value_type& _pData,
const OJoinTableView::OTableWindowMap* _pTableMap,
const Reference< XConnection >& _xConnection,
bool _bAllowTableSelect)
- : ModalDialog( pParent, "JoinDialog", "dbaccess/ui/joindialog.ui" )
+ : GenericDialogController(pParent->GetFrameWeld(), "dbaccess/ui/joindialog.ui", "JoinDialog")
, eJoinType(static_cast<OQueryTableConnectionData*>(_pData.get())->GetJoinType())
, m_pOrigConnData(_pData)
, m_xConnection(_xConnection)
+ , m_xML_HelpText(m_xBuilder->weld_label("helptext"))
+ , m_xPB_OK(m_xBuilder->weld_button("ok"))
+ , m_xLB_JoinType(m_xBuilder->weld_combo_box("type"))
+ , m_xCBNatural(m_xBuilder->weld_check_button("natural"))
{
- get(m_pML_HelpText, "helptext");
- Size aSize(LogicToPixel(Size(179, 49), MapMode(MapUnit::MapAppFont)));
+ Size aSize(m_xML_HelpText->get_approximate_digit_width() * 44,
+ m_xML_HelpText->get_text_height() * 6);
//alternatively loop through the STR_QUERY_* strings with their STR_JOIN_TYPE_HINT
//suffix to find the longest entry at runtime
- m_pML_HelpText->set_height_request(aSize.Height());
- m_pML_HelpText->set_width_request(aSize.Width());
- get(m_pLB_JoinType, "type");
- get(m_pCBNatural, "natural");
- get(m_pPB_OK, "ok");
+ m_xML_HelpText->set_size_request(aSize.Width(), aSize.Height());
- m_pML_HelpText->SetControlBackground( GetSettings().GetStyleSettings().GetFaceColor() );
// Copy connection
m_pConnData.reset(_pData->NewInstance());
m_pConnData->CopyFrom(*_pData);
- m_pTableControl.reset(new OTableListBoxControl(this, _pTableMap, this));
+ m_xTableControl.reset(new OTableListBoxControl(m_xBuilder.get(), _pTableMap, this));
- m_pCBNatural->Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
+ m_xCBNatural->set_active(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
if( _bAllowTableSelect )
{
- m_pTableControl->Init( m_pConnData );
- m_pTableControl->fillListBoxes();
+ m_xTableControl->Init( m_pConnData );
+ m_xTableControl->fillListBoxes();
}
else
{
- m_pTableControl->fillAndDisable(m_pConnData);
- m_pTableControl->Init( m_pConnData );
+ m_xTableControl->fillAndDisable(m_pConnData);
+ m_xTableControl->Init( m_pConnData );
}
- m_pTableControl->lateUIInit();
+ m_xTableControl->lateUIInit();
bool bSupportFullJoin = false;
Reference<XDatabaseMetaData> xMeta;
@@ -106,66 +105,55 @@ DlgQryJoin::DlgQryJoin( OQueryTableView * pParent,
setJoinType(eJoinType);
- m_pPB_OK->SetClickHdl( LINK(this, DlgQryJoin, OKClickHdl) );
+ m_xPB_OK->connect_clicked(LINK(this, DlgQryJoin, OKClickHdl));
- m_pLB_JoinType->SetSelectHdl(LINK(this,DlgQryJoin,LBChangeHdl));
- m_pCBNatural->SetToggleHdl(LINK(this,DlgQryJoin,NaturalToggleHdl));
+ m_xLB_JoinType->connect_changed(LINK(this,DlgQryJoin,LBChangeHdl));
+ m_xCBNatural->connect_toggled(LINK(this,DlgQryJoin,NaturalToggleHdl));
if ( pParent->getDesignView()->getController().isReadOnly() )
{
- m_pLB_JoinType->Disable();
- m_pCBNatural->Disable();
- m_pTableControl->Disable();
+ m_xLB_JoinType->set_sensitive(false);
+ m_xCBNatural->set_sensitive(false);
+ m_xTableControl->Disable();
}
else
{
- for (sal_Int32 i = 0; i < m_pLB_JoinType->GetEntryCount();)
+ for (sal_Int32 i = 0; i < m_xLB_JoinType->get_count();)
{
- const sal_IntPtr nJoinTyp = reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(i));
+ const sal_IntPtr nJoinTyp = m_xLB_JoinType->get_id(i).toInt32();
if ( !bSupportFullJoin && nJoinTyp == ID_FULL_JOIN )
- m_pLB_JoinType->RemoveEntry(i);
+ m_xLB_JoinType->remove(i);
else if ( !bSupportOuterJoin && (nJoinTyp == ID_LEFT_JOIN || nJoinTyp == ID_RIGHT_JOIN) )
- m_pLB_JoinType->RemoveEntry(i);
+ m_xLB_JoinType->remove(i);
else
++i;
}
- m_pTableControl->NotifyCellChange();
- m_pTableControl->enableRelation(!static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural() && eJoinType != CROSS_JOIN );
+ m_xTableControl->NotifyCellChange();
+ m_xTableControl->enableRelation(!static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural() && eJoinType != CROSS_JOIN );
}
}
DlgQryJoin::~DlgQryJoin()
{
- disposeOnce();
}
-void DlgQryJoin::dispose()
+IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, weld::ComboBox&, void )
{
- m_pTableControl.reset();
- m_pML_HelpText.clear();
- m_pPB_OK.clear();
- m_pLB_JoinType.clear();
- m_pCBNatural.clear();
- ModalDialog::dispose();
-}
-
-IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, ListBox&, void )
-{
- if (m_pLB_JoinType->GetSelectedEntryPos() == m_pLB_JoinType->GetSavedValue() )
+ if (!m_xLB_JoinType->get_value_changed_from_saved())
return;
- m_pLB_JoinType->SaveValue();
- m_pML_HelpText->SetText(OUString());
+ m_xLB_JoinType->save_value();
+ m_xML_HelpText->set_label(OUString());
- m_pTableControl->enableRelation(true);
+ m_xTableControl->enableRelation(true);
OUString sFirstWinName = m_pConnData->getReferencingTable()->GetWinName();
OUString sSecondWinName = m_pConnData->getReferencedTable()->GetWinName();
const EJoinType eOldJoinType = eJoinType;
const char* pResId = nullptr;
- const sal_Int32 nPos = m_pLB_JoinType->GetSelectedEntryPos();
- const sal_IntPtr nJoinType = reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(nPos));
+ const sal_Int32 nPos = m_xLB_JoinType->get_active();
+ const sal_IntPtr nJoinType = m_xLB_JoinType->get_id(nPos).toInt32();
bool bAddHint = true;
switch ( nJoinType )
{
@@ -198,16 +186,16 @@ IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, ListBox&, void )
eJoinType = CROSS_JOIN;
m_pConnData->ResetConnLines();
- m_pTableControl->lateInit();
- m_pCBNatural->Check(false);
- m_pTableControl->enableRelation(false);
+ m_xTableControl->lateInit();
+ m_xCBNatural->set_active(false);
+ m_xTableControl->enableRelation(false);
m_pConnData->AppendConnLine("","");
- m_pPB_OK->Enable();
+ m_xPB_OK->set_sensitive(true);
}
break;
}
- m_pCBNatural->Enable(eJoinType != CROSS_JOIN);
+ m_xCBNatural->set_sensitive(eJoinType != CROSS_JOIN);
if ( eJoinType != eOldJoinType && eOldJoinType == CROSS_JOIN )
{
@@ -215,11 +203,11 @@ IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, ListBox&, void )
}
if ( eJoinType != CROSS_JOIN )
{
- m_pTableControl->NotifyCellChange();
- NaturalToggleHdl(*m_pCBNatural);
+ m_xTableControl->NotifyCellChange();
+ NaturalToggleHdl(*m_xCBNatural);
}
- m_pTableControl->Invalidate();
+ m_xTableControl->Invalidate();
OUString sHelpText = DBA_RES(pResId);
if( nPos )
@@ -233,22 +221,22 @@ IMPL_LINK_NOARG( DlgQryJoin, LBChangeHdl, ListBox&, void )
sHelpText += DBA_RES( STR_JOIN_TYPE_HINT );
}
- m_pML_HelpText->SetText( sHelpText );
+ m_xML_HelpText->set_label( sHelpText );
}
-IMPL_LINK_NOARG( DlgQryJoin, OKClickHdl, Button*, void )
+IMPL_LINK_NOARG(DlgQryJoin, OKClickHdl, weld::Button&, void)
{
m_pConnData->Update();
m_pOrigConnData->CopyFrom( *m_pConnData );
- EndDialog(RET_OK);
+ m_xDialog->response(RET_OK);
}
-IMPL_LINK_NOARG( DlgQryJoin, NaturalToggleHdl, CheckBox&, void )
+IMPL_LINK_NOARG(DlgQryJoin, NaturalToggleHdl, weld::ToggleButton&, void)
{
- bool bChecked = m_pCBNatural->IsChecked();
+ bool bChecked = m_xCBNatural->get_active();
static_cast<OQueryTableConnectionData*>(m_pConnData.get())->setNatural(bChecked);
- m_pTableControl->enableRelation(!bChecked);
+ m_xTableControl->enableRelation(!bChecked);
if ( bChecked )
{
m_pConnData->ResetConnLines();
@@ -268,27 +256,27 @@ IMPL_LINK_NOARG( DlgQryJoin, NaturalToggleHdl, CheckBox&, void )
{
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- m_pTableControl->NotifyCellChange();
- m_pTableControl->Invalidate();
+ m_xTableControl->NotifyCellChange();
+ m_xTableControl->Invalidate();
}
}
void DlgQryJoin::setValid(bool _bValid)
{
- m_pPB_OK->Enable(_bValid || eJoinType == CROSS_JOIN );
+ m_xPB_OK->set_sensitive(_bValid || eJoinType == CROSS_JOIN );
}
void DlgQryJoin::notifyConnectionChange( )
{
setJoinType( static_cast<OQueryTableConnectionData*>(m_pConnData.get())->GetJoinType() );
- m_pCBNatural->Check(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
- NaturalToggleHdl(*m_pCBNatural);
+ m_xCBNatural->set_active(static_cast<OQueryTableConnectionData*>(m_pConnData.get())->isNatural());
+ NaturalToggleHdl(*m_xCBNatural);
}
void DlgQryJoin::setJoinType(EJoinType _eNewJoinType)
{
eJoinType = _eNewJoinType;
- m_pCBNatural->Enable(eJoinType != CROSS_JOIN);
+ m_xCBNatural->set_sensitive(eJoinType != CROSS_JOIN);
sal_IntPtr nJoinType = 0;
switch ( eJoinType )
@@ -311,17 +299,17 @@ void DlgQryJoin::setJoinType(EJoinType _eNewJoinType)
break;
}
- const sal_Int32 nCount = m_pLB_JoinType->GetEntryCount();
+ const sal_Int32 nCount = m_xLB_JoinType->get_count();
for (sal_Int32 i = 0; i < nCount; ++i)
{
- if ( nJoinType == reinterpret_cast<sal_IntPtr>(m_pLB_JoinType->GetEntryData(i)) )
+ if (nJoinType == m_xLB_JoinType->get_id(i).toInt32())
{
- m_pLB_JoinType->SelectEntryPos(i);
+ m_xLB_JoinType->set_active(i);
break;
}
}
- LBChangeHdl(*m_pLB_JoinType);
+ LBChangeHdl(*m_xLB_JoinType);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/querydesign/querydlg.hxx b/dbaccess/source/ui/querydesign/querydlg.hxx
index 08b037a440cd..3304a50ed50b 100644
--- a/dbaccess/source/ui/querydesign/querydlg.hxx
+++ b/dbaccess/source/ui/querydesign/querydlg.hxx
@@ -18,12 +18,8 @@
*/
#ifndef INCLUDED_DBACCESS_SOURCE_UI_QUERYDESIGN_QUERYDLG_HXX
#define INCLUDED_DBACCESS_SOURCE_UI_QUERYDESIGN_QUERYDLG_HXX
-#include <vcl/dialog.hxx>
-#include <vcl/button.hxx>
-
-#include <vcl/fixed.hxx>
-#include <vcl/lstbox.hxx>
+#include <vcl/weld.hxx>
#include <QEnumTypes.hxx>
@@ -35,25 +31,23 @@ namespace dbaui
{
class OTableListBoxControl;
class OQueryTableView;
- class DlgQryJoin final : public ModalDialog
- ,public IRelationControlInterface
+ class DlgQryJoin final : public weld::GenericDialogController
+ , public IRelationControlInterface
{
- VclPtr<FixedText> m_pML_HelpText;
- VclPtr<OKButton> m_pPB_OK;
- VclPtr<ListBox> m_pLB_JoinType;
- VclPtr<CheckBox> m_pCBNatural;
-
- std::unique_ptr<OTableListBoxControl> m_pTableControl;
-
EJoinType eJoinType;
TTableConnectionData::value_type m_pConnData; // contains left and right table
TTableConnectionData::value_type m_pOrigConnData;
css::uno::Reference< css::sdbc::XConnection > m_xConnection;
+ std::unique_ptr<weld::Label> m_xML_HelpText;
+ std::unique_ptr<weld::Button> m_xPB_OK;
+ std::unique_ptr<weld::ComboBox> m_xLB_JoinType;
+ std::unique_ptr<weld::CheckButton> m_xCBNatural;
+ std::unique_ptr<OTableListBoxControl> m_xTableControl;
- DECL_LINK( OKClickHdl, Button*, void );
- DECL_LINK( LBChangeHdl, ListBox&, void );
- DECL_LINK( NaturalToggleHdl, CheckBox&, void );
+ DECL_LINK(OKClickHdl, weld::Button&, void);
+ DECL_LINK(LBChangeHdl, weld::ComboBox&, void);
+ DECL_LINK(NaturalToggleHdl, weld::ToggleButton&, void);
/** setJoinType enables and set the new join type
@param _eNewJoinType the new jointype
@@ -66,7 +60,6 @@ namespace dbaui
const css::uno::Reference< css::sdbc::XConnection >& _xConnection,
bool _bAllowTableSelect);
virtual ~DlgQryJoin() override;
- virtual void dispose() override;
EJoinType GetJoinType() const { return eJoinType; };
/** setValid set the valid inside, can be used for OK buttons