summaryrefslogtreecommitdiff
path: root/dbaccess/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-09-05 12:22:38 +0100
committerCaolán McNamara <caolanm@redhat.com>2019-09-12 20:28:14 +0200
commit8c66efa030e98cfdf5da20be368566d64e43c5d1 (patch)
tree88c9fb335349fd1b7b285d46108e5d41a3c9aac4 /dbaccess/source
parent8150219824a1d08c4a22fd8bb7cc63fe2aa88074 (diff)
weld OCopyTableWizard cluster
Change-Id: I52547defb0e7ba328ec20d41a955e545556ffd16 note: get the toplevel parent by getting it from the XInteractionHandler Reviewed-on: https://gerrit.libreoffice.org/78751 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess/source')
-rw-r--r--dbaccess/source/ui/control/FieldControls.cxx50
-rw-r--r--dbaccess/source/ui/control/FieldDescControl.cxx1177
-rw-r--r--dbaccess/source/ui/control/SqlNameEdit.cxx15
-rw-r--r--dbaccess/source/ui/inc/FieldControls.hxx62
-rw-r--r--dbaccess/source/ui/inc/FieldDescControl.hxx105
-rw-r--r--dbaccess/source/ui/inc/SqlNameEdit.hxx59
-rw-r--r--dbaccess/source/ui/inc/WCPage.hxx43
-rw-r--r--dbaccess/source/ui/inc/WColumnSelect.hxx30
-rw-r--r--dbaccess/source/ui/inc/WCopyTable.hxx36
-rw-r--r--dbaccess/source/ui/inc/WExtendPages.hxx20
-rw-r--r--dbaccess/source/ui/inc/WNameMatch.hxx53
-rw-r--r--dbaccess/source/ui/inc/WTabPage.hxx8
-rw-r--r--dbaccess/source/ui/inc/WTypeSelect.hxx79
-rw-r--r--dbaccess/source/ui/misc/DExport.cxx18
-rw-r--r--dbaccess/source/ui/misc/TableCopyHelper.cxx5
-rw-r--r--dbaccess/source/ui/misc/WCPage.cxx160
-rw-r--r--dbaccess/source/ui/misc/WColumnSelect.cxx241
-rw-r--r--dbaccess/source/ui/misc/WCopyTable.cxx202
-rw-r--r--dbaccess/source/ui/misc/WExtendPages.cxx9
-rw-r--r--dbaccess/source/ui/misc/WNameMatch.cxx380
-rw-r--r--dbaccess/source/ui/misc/WTypeSelect.cxx286
-rw-r--r--dbaccess/source/ui/uno/copytablewizard.cxx23
22 files changed, 1328 insertions, 1733 deletions
diff --git a/dbaccess/source/ui/control/FieldControls.cxx b/dbaccess/source/ui/control/FieldControls.cxx
index 5fe23021a942..fbe68caf39f5 100644
--- a/dbaccess/source/ui/control/FieldControls.cxx
+++ b/dbaccess/source/ui/control/FieldControls.cxx
@@ -25,54 +25,36 @@
namespace dbaui {
-namespace {
-
-void lcl_setSpecialReadOnly( bool _bReadOnly, vcl::Window* _pWin )
-{
- StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings();
- const Color& rNewColor = _bReadOnly ? aSystemStyle.GetDialogColor() : aSystemStyle.GetFieldColor();
- _pWin->SetBackground(Wallpaper(rNewColor));
- _pWin->SetControlBackground(rNewColor);
-}
-
-}
-
-OPropColumnEditCtrl::OPropColumnEditCtrl(vcl::Window* pParent,
+OPropColumnEditCtrl::OPropColumnEditCtrl(std::unique_ptr<weld::Entry> xEntry,
OUString const & _rAllowedChars,
const char* pHelpId,
- short nPosition,
- WinBits nWinStyle)
- :OSQLNameEdit(pParent, nWinStyle, _rAllowedChars)
- ,m_nPos(nPosition)
+ short nPosition)
+ : OSQLNameEntry(std::move(xEntry), _rAllowedChars)
+ , m_nPos(nPosition)
{
m_strHelpText = DBA_RES(pHelpId);
}
-OPropEditCtrl::OPropEditCtrl(vcl::Window* pParent, const char* pHelpId, short nPosition, WinBits nWinStyle)
- :Edit(pParent, nWinStyle)
- ,m_nPos(nPosition)
+OPropEditCtrl::OPropEditCtrl(std::unique_ptr<weld::Entry> xEntry, const char* pHelpId, short nPosition)
+ : OWidgetBase(xEntry.get())
+ , m_xEntry(std::move(xEntry))
+ , m_nPos(nPosition)
{
m_strHelpText = DBA_RES(pHelpId);
}
-void
-OPropNumericEditCtrl::SetSpecialReadOnly(bool _bReadOnly)
-{
- SetReadOnly(_bReadOnly);
- lcl_setSpecialReadOnly(_bReadOnly,this);
-}
-
-
-OPropNumericEditCtrl::OPropNumericEditCtrl(vcl::Window* pParent, const char* pHelpId, short nPosition, WinBits nWinStyle)
- :NumericField(pParent, nWinStyle)
- ,m_nPos(nPosition)
+OPropNumericEditCtrl::OPropNumericEditCtrl(std::unique_ptr<weld::SpinButton> xSpinButton, const char* pHelpId, short nPosition)
+ : OWidgetBase(xSpinButton.get())
+ , m_xSpinButton(std::move(xSpinButton))
+ , m_nPos(nPosition)
{
m_strHelpText = DBA_RES(pHelpId);
}
-OPropListBoxCtrl::OPropListBoxCtrl(vcl::Window* pParent, const char* pHelpId, short nPosition, WinBits nWinStyle)
- :ListBox(pParent, nWinStyle)
- ,m_nPos(nPosition)
+OPropListBoxCtrl::OPropListBoxCtrl(std::unique_ptr<weld::ComboBox> xComboBox, const char* pHelpId, short nPosition)
+ : OWidgetBase(xComboBox.get())
+ , m_xComboBox(std::move(xComboBox))
+ , m_nPos(nPosition)
{
m_strHelpText = DBA_RES(pHelpId);
}
diff --git a/dbaccess/source/ui/control/FieldDescControl.cxx b/dbaccess/source/ui/control/FieldDescControl.cxx
index 8fc08488620d..e04ac5500a08 100644
--- a/dbaccess/source/ui/control/FieldDescControl.cxx
+++ b/dbaccess/source/ui/control/FieldDescControl.cxx
@@ -61,98 +61,39 @@ using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::util;
-// For the Controls on the OFieldDescGenPage
-#define CONTROL_SPACING_X 18 // 6
-#define CONTROL_SPACING_Y 4
-#define CONTROL_WIDTH_1 160 // 100
-#define CONTROL_WIDTH_2 100 // 60
-#define CONTROL_WIDTH_3 250
-#define CONTROL_WIDTH_4 (CONTROL_WIDTH_3 - 20 - 5)
-
-#define HSCROLL_STEP 20
-
namespace
{
-
- template< typename T1, typename T2> void lcl_HideAndDeleteControl(short& _nPos,VclPtr<T1>& _pControl, VclPtr<T2>& _pControlText)
+ template< typename T1, typename T2> void lcl_HideAndDeleteControl(short& _nPos,std::unique_ptr<T1>& _pControl, std::unique_ptr<T2>& _pControlText)
{
if ( _pControl )
{
--_nPos;
- _pControl->Hide();
- _pControlText->Hide();
- _pControl.disposeAndClear();
- _pControlText.disposeAndClear();
+ _pControl->hide();
+ _pControlText->hide();
+ _pControl.reset();
+ _pControlText.reset();
}
}
-
}
// class OFieldDescControl
-OFieldDescControl::OFieldDescControl( vcl::Window* pParent, OTableDesignHelpBar* pHelpBar )
- :TabPage( pParent, WB_3DLOOK | WB_DIALOGCONTROL )
+OFieldDescControl::OFieldDescControl(TabPageParent pParent, OTableDesignHelpBar* pHelpBar)
+ :TabPage(pParent.pPage ? Application::GetDefDialogParent() : pParent.pParent.get(), WB_3DLOOK | WB_DIALOGCONTROL)
+ ,m_xBuilder(pParent.pPage ? Application::CreateBuilder(pParent.pPage, "dbaccess/ui/fielddescpage.ui")
+ : Application::CreateInterimBuilder(this, "dbaccess/ui/fielddescpage.ui"))
+ ,m_xContainer(m_xBuilder->weld_container("FieldDescPage"))
,pHelp( pHelpBar )
- ,pLastFocusWindow(nullptr)
+ ,m_pLastFocusWindow(nullptr)
,m_pActFocusWindow(nullptr)
- ,pDefaultText(nullptr)
- ,pRequiredText(nullptr)
- ,pAutoIncrementText(nullptr)
- ,pTextLenText(nullptr)
- ,pNumTypeText(nullptr)
- ,pLengthText(nullptr)
- ,pScaleText(nullptr)
- ,pFormatText(nullptr)
- ,pBoolDefaultText(nullptr)
- ,m_pColumnNameText(nullptr)
- ,m_pTypeText(nullptr)
- ,m_pAutoIncrementValueText(nullptr)
- ,pRequired(nullptr)
- ,pNumType(nullptr)
- ,pAutoIncrement(nullptr)
- ,pDefault(nullptr)
- ,pTextLen(nullptr)
- ,pLength(nullptr)
- ,pScale(nullptr)
- ,pFormatSample(nullptr)
- ,pBoolDefault(nullptr)
- ,m_pColumnName(nullptr)
- ,m_pType(nullptr)
- ,m_pAutoIncrementValue(nullptr)
- ,pFormat(nullptr)
- ,m_pVertScroll( nullptr )
- ,m_pHorzScroll( nullptr )
,m_pPreviousType()
,m_nPos(-1)
,aYes(DBA_RES(STR_VALUE_YES))
,aNo(DBA_RES(STR_VALUE_NO))
- ,m_nOldVThumb( 0 )
- ,m_nOldHThumb( 0 )
- ,m_nWidth(50)
+ ,m_nEditWidth(50)
,m_bAdded(false)
,m_bRightAligned(false)
,pActFieldDescr(nullptr)
{
- Construct();
-}
-
-void OFieldDescControl::Construct()
-{
- m_pVertScroll = VclPtr<ScrollBar>::Create(this, WB_VSCROLL | WB_REPEAT | WB_DRAG);
- m_pHorzScroll = VclPtr<ScrollBar>::Create(this, WB_HSCROLL | WB_REPEAT | WB_DRAG);
- m_pVertScroll->SetScrollHdl(LINK(this, OFieldDescControl, OnScroll));
- m_pHorzScroll->SetScrollHdl(LINK(this, OFieldDescControl, OnScroll));
- m_pVertScroll->Show();
- m_pHorzScroll->Show();
-
- m_pVertScroll->EnableClipSiblings();
- m_pHorzScroll->EnableClipSiblings();
-
- m_pVertScroll->SetLineSize(1);
- m_pVertScroll->SetPageSize(1);
- m_pHorzScroll->SetLineSize(1);
- m_pHorzScroll->SetPageSize(1);
-
- m_nOldVThumb = m_nOldHThumb = 0;
}
OFieldDescControl::~OFieldDescControl()
@@ -179,35 +120,33 @@ void OFieldDescControl::dispose()
DeactivateAggregate( tpType );
DeactivateAggregate( tpAutoIncrementValue );
pHelp.clear();
- pLastFocusWindow.clear();
- m_pActFocusWindow.clear();
- pDefaultText.clear();
- pRequiredText.clear();
- pAutoIncrementText.clear();
- pTextLenText.clear();
- pNumTypeText.clear();
- pLengthText.clear();
- pScaleText.clear();
- pFormatText.clear();
- pBoolDefaultText.clear();
- m_pColumnNameText.clear();
- m_pTypeText.clear();
- m_pAutoIncrementValueText.clear();
- pRequired.clear();
- pNumType.clear();
- pAutoIncrement.clear();
- pDefault.clear();
- pTextLen.clear();
- pLength.clear();
- pScale.clear();
- pFormatSample.clear();
- pBoolDefault.clear();
- m_pColumnName.clear();
- m_pType.clear();
- m_pAutoIncrementValue.clear();
- pFormat.clear();
- m_pVertScroll.disposeAndClear();
- m_pHorzScroll.disposeAndClear();
+ m_pLastFocusWindow = nullptr;
+ m_pActFocusWindow = nullptr;
+ m_xDefaultText.reset();
+ m_xRequiredText.reset();
+ m_xAutoIncrementText.reset();
+ m_xTextLenText.reset();
+ m_xNumTypeText.reset();
+ m_xLengthText.reset();
+ m_xScaleText.reset();
+ m_xFormatText.reset();
+ m_xBoolDefaultText.reset();
+ m_xColumnNameText.reset();
+ m_xTypeText.reset();
+ m_xAutoIncrementValueText.reset();
+ m_xRequired.reset();
+ m_xNumType.reset();
+ m_xAutoIncrement.reset();
+ m_xDefault.reset();
+ m_xTextLen.reset();
+ m_xLength.reset();
+ m_xScale.reset();
+ m_xFormatSample.reset();
+ m_xBoolDefault.reset();
+ m_xColumnName.reset();
+ m_xType.reset();
+ m_xAutoIncrementValue.reset();
+ m_xFormat.reset();
TabPage::dispose();
}
@@ -240,211 +179,49 @@ void OFieldDescControl::Init()
::dbaui::setEvalDateFormatForFormatter(xFormatter);
}
-IMPL_LINK(OFieldDescControl, OnScroll, ScrollBar*, /*pBar*/, void)
-{
- ScrollAllAggregates();
-}
-
-namespace
-{
- void getMaxXPosition(vcl::Window const * _pWindow, long& _rnMaxXPosition)
- {
- if (_pWindow)
- {
- long nTemp = _pWindow->GetSizePixel().Width() + _pWindow->GetPosPixel().X();
- _rnMaxXPosition = std::max(_rnMaxXPosition, nTemp);
- }
- }
-}
-
-void OFieldDescControl::CheckScrollBars()
-{
- // Calculate the ScrollBars' new position
- Size szOverallSize = GetSizePixel();
- long nHScrollHeight = m_pHorzScroll->GetSizePixel().Height();
- long nVScrollWidth = m_pVertScroll->GetSizePixel().Width();
-
- long nNewHWidth = szOverallSize.Width() - nVScrollWidth;
- long nNewVHeight = szOverallSize.Height() - nHScrollHeight;
-
- bool bNeedHScrollBar(false), bNeedVScrollBar(false);
-
- // Adjust the areas
- // Do I actually need ScrollBars?
- // horizontal :
- long lMaxXPosition = 0;
- Control* ppAggregates[] = { pRequired, pNumType, pAutoIncrement, pDefault, pTextLen, pLength, pScale, pFormat, m_pColumnName, m_pType,m_pAutoIncrementValue};
- for (Control* ppAggregate : ppAggregates)
- getMaxXPosition(ppAggregate,lMaxXPosition);
-
- lMaxXPosition += m_pHorzScroll->GetThumbPos() * HSCROLL_STEP;
-
- long lMaxXAvailable = szOverallSize.Width();
- bNeedHScrollBar = lMaxXPosition > lMaxXAvailable;
- // Might change
-
- // Vertical
- // How many Controls do I have?
- sal_uInt16 nActive = CountActiveAggregates();
- // Which one is the last one that fits?
- sal_uInt16 nLastVisible;
- const sal_Int32 nControlHeight = GetMaxControlHeight();
- const sal_Int32 nControl_Spacing_y = LogicToPixel(Size(0, CONTROL_SPACING_Y), MapMode(MapUnit::MapAppFont)).Height();
- if (bNeedHScrollBar)
- nLastVisible = static_cast<sal_uInt16>((szOverallSize.Height() - nControl_Spacing_y - nHScrollHeight) / (nControl_Spacing_y + nControlHeight));
- else
- nLastVisible = static_cast<sal_uInt16>((szOverallSize.Height() - nControl_Spacing_y) / (nControl_Spacing_y + nControlHeight));
- bNeedVScrollBar = nActive>nLastVisible;
-
- if (bNeedVScrollBar)
- {
- // When originally calculating lMaxXAvailable we did not take into account that we have a VScrollBar, so we need to do that now
- lMaxXAvailable -= nVScrollWidth;
- if (!bNeedHScrollBar && (lMaxXPosition > lMaxXAvailable))
- {
- // The vertical one now necessitates a horizontal one
- bNeedHScrollBar = true;
- // Adjust nLastVisible
- nLastVisible = static_cast<sal_uInt16>((szOverallSize.Height() - nControl_Spacing_y - nHScrollHeight) / (nControl_Spacing_y + nControlHeight));
- // bNeedVScrollBar does NOT change: it's already set to sal_True and nLastVisible will only decrease
- }
- }
-
- // Now we can really position them and set their parameters
- if (bNeedVScrollBar)
- {
- m_pVertScroll->Show();
- m_pVertScroll->SetRangeMax(nActive - nLastVisible);
-
- m_pVertScroll->SetPosSizePixel( Point(nNewHWidth, 0), Size(nVScrollWidth, szOverallSize.Height()) );
- }
- else
- {
- m_pVertScroll->Hide();
- m_pVertScroll->SetRangeMax(0);
- m_pVertScroll->SetThumbPos(0);
- }
-
- if (bNeedHScrollBar)
- {
- m_pHorzScroll->Show();
- m_pHorzScroll->SetRangeMax((lMaxXPosition - lMaxXAvailable + HSCROLL_STEP - 1 )/HSCROLL_STEP);
-
- m_pHorzScroll->SetPosSizePixel( Point(0, nNewVHeight), Size(bNeedVScrollBar ? nNewHWidth : szOverallSize.Width(), nHScrollHeight) );
- }
- else
- {
- m_pHorzScroll->Hide();
- m_pHorzScroll->SetRangeMax(0);
- m_pHorzScroll->SetThumbPos(0);
- }
-}
-
-void OFieldDescControl::Resize()
-{
- CheckScrollBars();
- ScrollAllAggregates();
-}
-
-inline void OFieldDescControl::ScrollAggregate(Control* pText, Control* pInput, Control* pButton, long nDeltaX, long nDeltaY)
-{
- if (!pText)
- return;
- pText->SetPosPixel(pText->GetPosPixel() + Point(nDeltaX, nDeltaY));
- pInput->SetPosPixel(pInput->GetPosPixel() + Point(nDeltaX, nDeltaY));
- if (pButton)
- pButton->SetPosPixel(pButton->GetPosPixel() + Point(nDeltaX, nDeltaY));
-}
-
-void OFieldDescControl::ScrollAllAggregates()
-{
- long nDeltaX = 0, nDeltaY = 0;
- if (m_nOldHThumb != m_pHorzScroll->GetThumbPos())
- {
- nDeltaX = (m_nOldHThumb - m_pHorzScroll->GetThumbPos()) * HSCROLL_STEP;
- m_nOldHThumb = m_pHorzScroll->GetThumbPos();
- }
-
- if (m_nOldVThumb != m_pVertScroll->GetThumbPos())
- {
- const sal_Int32 nControlHeight = GetMaxControlHeight();
- const sal_Int32 nControl_Spacing_y = LogicToPixel(Size(0, CONTROL_SPACING_Y), MapMode(MapUnit::MapAppFont)).Height();
- nDeltaY = (m_nOldVThumb - m_pVertScroll->GetThumbPos()) * (nControl_Spacing_y + nControlHeight);
- m_nOldVThumb = m_pVertScroll->GetThumbPos();
- }
-
- if (nDeltaX || nDeltaY)
- {
- Control* ppAggregates[] = { pRequired, pNumType
- , pAutoIncrement, pDefault
- , pTextLen, pLength
- , pScale, m_pColumnName
- , m_pType, m_pAutoIncrementValue};
- Control* ppAggregatesText[] = { pRequiredText, pNumTypeText
- , pAutoIncrementText, pDefaultText
- , pTextLenText, pLengthText
- , pScaleText, m_pColumnNameText
- , m_pTypeText, m_pAutoIncrementValueText};
- OSL_ENSURE(SAL_N_ELEMENTS(ppAggregates) == SAL_N_ELEMENTS(ppAggregatesText),"Lists are not identical!");
-
- for (size_t i=0; i<SAL_N_ELEMENTS(ppAggregates); ++i)
- ScrollAggregate(ppAggregatesText[i],ppAggregates[i],nullptr,nDeltaX, nDeltaY);
-
- ScrollAggregate(pFormatText,pFormatSample,pFormat,nDeltaX, nDeltaY);
- }
-}
-
sal_uInt16 OFieldDescControl::CountActiveAggregates() const
{
- Control* ppAggregates[] = { pRequired, pNumType, pAutoIncrement, pDefault, pTextLen, pLength, pScale, pFormat, m_pColumnName, m_pType,m_pAutoIncrementValue};
+ OWidgetBase* ppAggregates[] = { m_xRequired.get(), m_xNumType.get(), m_xAutoIncrement.get(), m_xDefault.get(), m_xTextLen.get(), m_xLength.get(), m_xScale.get(), m_xColumnName.get(), m_xType.get(),m_xAutoIncrementValue.get()};
sal_uInt16 nVisibleAggregates = 0;
- for (Control* pAggregate : ppAggregates)
+ for (OWidgetBase* pAggregate : ppAggregates)
if (pAggregate)
++nVisibleAggregates;
+ if (m_xFormat)
+ ++nVisibleAggregates;
return nVisibleAggregates;
}
-sal_Int32 OFieldDescControl::GetMaxControlHeight() const
-{
- Size aHeight;
- Control* ppAggregates[] = { pRequired, pNumType, pAutoIncrement, pDefault, pTextLen, pLength, pScale, pFormat, m_pColumnName, m_pType,m_pAutoIncrementValue};
- for (Control* pAggregate : ppAggregates)
- {
- if ( pAggregate )
- {
- const Size aTemp(pAggregate->GetOptimalSize());
- if ( aTemp.Height() > aHeight.Height() )
- aHeight.setHeight( aTemp.Height() );
- }
- }
-
- return aHeight.Height();
-}
-
void OFieldDescControl::SetReadOnly( bool bReadOnly )
{
// Enable/disable Controls
- Control* ppAggregates[] = { pRequired, pNumType
- , pAutoIncrement, pDefault
- , pTextLen, pLength
- , pScale, m_pColumnName
- , m_pType, m_pAutoIncrementValue
- , pFormat};
- Control* ppAggregatesText[] = { pRequiredText, pNumTypeText
- , pAutoIncrementText, pDefaultText
- , pTextLenText, pLengthText
- , pScaleText, m_pColumnNameText
- , m_pTypeText, m_pAutoIncrementValueText
- , pFormatText};
+ OWidgetBase* ppAggregates[] = { m_xRequired.get(), m_xNumType.get()
+ , m_xAutoIncrement.get(), m_xDefault.get()
+ , m_xTextLen.get(), m_xLength.get()
+ , m_xScale.get(), m_xColumnName.get()
+ , m_xType.get(), m_xAutoIncrementValue.get()
+ };
+ weld::Widget* ppAggregatesText[] = { m_xRequiredText.get(), m_xNumTypeText.get()
+ , m_xAutoIncrementText.get(), m_xDefaultText.get()
+ , m_xTextLenText.get(), m_xLengthText.get()
+ , m_xScaleText.get(), m_xColumnNameText.get()
+ , m_xTypeText.get(), m_xAutoIncrementValueText.get()
+ };
OSL_ENSURE(SAL_N_ELEMENTS(ppAggregates) == SAL_N_ELEMENTS(ppAggregatesText),"Lists are not identical!");
for (size_t i=0; i<SAL_N_ELEMENTS(ppAggregates); ++i)
{
if ( ppAggregatesText[i] )
- ppAggregatesText[i]->Enable( !bReadOnly );
+ ppAggregatesText[i]->set_sensitive( !bReadOnly );
if ( ppAggregates[i] )
- ppAggregates[i]->Enable( !bReadOnly );
+ ppAggregates[i]->set_sensitive( !bReadOnly );
+ }
+
+ if (m_xFormat)
+ {
+ assert(m_xFormatText);
+ m_xFormat->set_sensitive(!bReadOnly);
+ m_xFormatText->set_sensitive(!bReadOnly);
}
}
@@ -454,55 +231,55 @@ void OFieldDescControl::SetControlText( sal_uInt16 nControlId, const OUString& r
switch( nControlId )
{
case FIELD_PROPERTY_BOOL_DEFAULT:
- if (pBoolDefault)
+ if (m_xBoolDefault)
{
- OUString sOld = pBoolDefault->GetSelectedEntry();
- pBoolDefault->SelectEntry(rText);
+ OUString sOld = m_xBoolDefault->get_active_text();
+ m_xBoolDefault->set_active_text(rText);
if (sOld != rText)
- LINK(this, OFieldDescControl, ChangeHdl).Call(*pBoolDefault);
+ ChangeHdl(m_xBoolDefault->GetComboBox());
}
break;
case FIELD_PROPERTY_DEFAULT:
- if (pDefault)
+ if (m_xDefault)
{
- pDefault->SetText(rText);
+ m_xDefault->set_text(rText);
UpdateFormatSample(pActFieldDescr);
}
break;
case FIELD_PROPERTY_REQUIRED:
- if (pRequired)
- pRequired->SelectEntry(rText);
+ if (m_xRequired)
+ m_xRequired->set_active_text(rText);
break;
case FIELD_PROPERTY_TEXTLEN:
- if (pTextLen)
- pTextLen->SetText(rText);
+ if (m_xTextLen)
+ m_xTextLen->set_text(rText);
break;
case FIELD_PROPERTY_NUMTYPE:
- if (pNumType)
- pNumType->SelectEntry(rText);
+ if (m_xNumType)
+ m_xNumType->set_active_text(rText);
break;
case FIELD_PROPERTY_AUTOINC:
- if (pAutoIncrement)
+ if (m_xAutoIncrement)
{
- OUString sOld = pAutoIncrement->GetSelectedEntry();
- pAutoIncrement->SelectEntry(rText);
+ OUString sOld = m_xAutoIncrement->get_active_text();
+ m_xAutoIncrement->set_active_text(rText);
if (sOld != rText)
- LINK(this, OFieldDescControl, ChangeHdl).Call(*pAutoIncrement);
+ ChangeHdl(m_xAutoIncrement->GetComboBox());
}
break;
case FIELD_PROPERTY_LENGTH:
- if (pLength)
- pLength->SetText(rText);
+ if (m_xLength)
+ m_xLength->set_text(rText);
break;
case FIELD_PROPERTY_SCALE:
- if (pScale)
- pScale->SetText(rText);
+ if (m_xScale)
+ m_xScale->set_text(rText);
break;
case FIELD_PROPERTY_FORMAT:
@@ -510,21 +287,21 @@ void OFieldDescControl::SetControlText( sal_uInt16 nControlId, const OUString& r
UpdateFormatSample(pActFieldDescr);
break;
case FIELD_PROPERTY_COLUMNNAME:
- if(m_pColumnName)
- m_pColumnName->SetText(rText);
+ if (m_xColumnName)
+ m_xColumnName->set_text(rText);
break;
case FIELD_PROPERTY_TYPE:
- if(m_pType)
- m_pType->SelectEntry(rText);
+ if (m_xType)
+ m_xType->set_active_text(rText);
break;
case FIELD_PROPERTY_AUTOINCREMENT:
- if(m_pAutoIncrementValue)
- m_pAutoIncrementValue->SetText(rText);
+ if (m_xAutoIncrementValue)
+ m_xAutoIncrementValue->set_text(rText);
break;
}
}
-IMPL_LINK_NOARG( OFieldDescControl, FormatClickHdl, Button *, void )
+IMPL_LINK_NOARG(OFieldDescControl, FormatClickHdl, weld::Button&, void)
{
// Create temporary Column, which is used for data exchange with Dialog
if( !pActFieldDescr )
@@ -564,39 +341,39 @@ void OFieldDescControl::SetModified(bool /*bModified*/)
{
}
-IMPL_LINK( OFieldDescControl, ChangeHdl, ListBox&, rListBox, void )
+IMPL_LINK(OFieldDescControl, ChangeHdl, weld::ComboBox&, rListBox, void)
{
- if ( !pActFieldDescr )
+ if (!pActFieldDescr)
return;
- if ( rListBox.IsValueChangedFromSaved() )
+ if (rListBox.get_value_changed_from_saved())
SetModified(true);
// Special treatment for Bool fields
- if(&rListBox == pRequired && pBoolDefault )
+ if (m_xRequired && &rListBox == m_xRequired->GetWidget() && m_xBoolDefault)
{
- // If pRequired = sal_True then the sal_Bool field must NOT contain <<none>>
+ // If m_xRequired = sal_True then the sal_Bool field must NOT contain <<none>>
OUString sDef = BoolStringUI(::comphelper::getString(pActFieldDescr->GetControlDefault()));
- if(pRequired->GetSelectedEntryPos() == 0) // Yes
+ if (m_xRequired->get_active() == 0) // Yes
{
- pBoolDefault->RemoveEntry(DBA_RES(STR_VALUE_NONE));
+ m_xBoolDefault->remove_text(DBA_RES(STR_VALUE_NONE));
if (sDef != aYes && sDef != aNo)
- pBoolDefault->SelectEntryPos(1); // No as a default
+ m_xBoolDefault->set_active(1); // No as a default
else
- pBoolDefault->SelectEntry(sDef);
+ m_xBoolDefault->set_active_text(sDef);
}
- else if(pBoolDefault->GetEntryCount() < 3)
+ else if (m_xBoolDefault->get_count() < 3)
{
- pBoolDefault->InsertEntry(DBA_RES(STR_VALUE_NONE));
- pBoolDefault->SelectEntry(sDef);
+ m_xBoolDefault->append_text(DBA_RES(STR_VALUE_NONE));
+ m_xBoolDefault->set_active_text(sDef);
}
}
// A special treatment only for AutoIncrement
- if (&rListBox == pAutoIncrement)
+ if (m_xAutoIncrement && &rListBox == m_xAutoIncrement->GetWidget())
{
- if(rListBox.GetSelectedEntryPos() == 1)
+ if (rListBox.get_active() == 1)
{ // no
DeactivateAggregate( tpAutoIncrementValue );
if(pActFieldDescr->IsPrimaryKey())
@@ -604,12 +381,12 @@ IMPL_LINK( OFieldDescControl, ChangeHdl, ListBox&, rListBox, void )
else if( pActFieldDescr->getTypeInfo()->bNullable )
{
ActivateAggregate( tpRequired );
- if(pRequired)
+ if (m_xRequired)
{
if( pActFieldDescr->IsNullable() )
- pRequired->SelectEntryPos( 1 ); // no
+ m_xRequired->set_active(1); // no
else
- pRequired->SelectEntryPos( 0 ); // yes
+ m_xRequired->set_active(0); // yes
}
}
ActivateAggregate( tpDefault );
@@ -620,176 +397,116 @@ IMPL_LINK( OFieldDescControl, ChangeHdl, ListBox&, rListBox, void )
DeactivateAggregate( tpDefault );
ActivateAggregate( tpAutoIncrementValue );
}
- // Move all up
- ArrangeAggregates();
}
- if(&rListBox == m_pType)
+ if (m_xType && &rListBox == m_xType->GetWidget())
{
- TOTypeInfoSP pTypeInfo = getTypeInfo(m_pType->GetSelectedEntryPos());
+ TOTypeInfoSP pTypeInfo = getTypeInfo(m_xType->get_active());
pActFieldDescr->FillFromTypeInfo(pTypeInfo,true,false); // SetType(pTypeInfo);
DisplayData(pActFieldDescr);
- CellModified(-1, m_pType->GetPos());
+ CellModified(-1, m_xType->GetPos());
}
}
-// Rearrange all Controls, such that they are in fixed order and really on top
-// of the DescriptionPage
-void OFieldDescControl::ArrangeAggregates()
-{
- // A Control's description
- struct AGGREGATE_DESCRIPTION
- {
- VclPtr<Control> pctrlInputControl; // The actual Control for input
- VclPtr<Control> pctrlTextControl; // The corresponding Label
- sal_uInt16 nPosSizeArgument; // The second argument for SetPosSize
- };
- AGGREGATE_DESCRIPTION adAggregates[] = {
- { m_pColumnName, m_pColumnNameText, 1},
- { m_pType, m_pTypeText, 1},
- { pAutoIncrement, pAutoIncrementText, 1 },
- { m_pAutoIncrementValue, m_pAutoIncrementValueText, 3 },
- { pNumType, pNumTypeText, 1 },
- { pRequired, pRequiredText, 1 },
- { pTextLen, pTextLenText, 1 },
- { pLength, pLengthText, 1 },
- { pScale, pScaleText, 1 },
- { pDefault, pDefaultText, 3 },
- { pFormatSample, pFormatText, 4 },
- { pBoolDefault, pBoolDefaultText, 1 },
- };
-
- long nMaxWidth = 0;
- for (const AGGREGATE_DESCRIPTION & adAggregate : adAggregates)
- {
- if (adAggregate.pctrlTextControl)
- {
- nMaxWidth = std::max<long>(OutputDevice::GetTextWidth(adAggregate.pctrlTextControl->GetText()),nMaxWidth);
- }
- }
-
- OSL_ENSURE(nMaxWidth != 0,"Invalid width!");
-
- // And go ...
- int nCurrentControlPos = 0;
- Control* pZOrderPredecessor = nullptr;
- for (AGGREGATE_DESCRIPTION & adAggregate : adAggregates)
- {
- if (adAggregate.pctrlInputControl)
- {
- SetPosSize(adAggregate.pctrlTextControl, nCurrentControlPos, 0);
- SetPosSize(adAggregate.pctrlInputControl, nCurrentControlPos, adAggregate.nPosSizeArgument);
-
- // Set the z-order in a way such that the Controls can be traversed in the same sequence in which they have been arranged here
- adAggregate.pctrlTextControl->SetZOrder(pZOrderPredecessor, pZOrderPredecessor ? ZOrderFlags::Behind : ZOrderFlags::First);
- adAggregate.pctrlInputControl->SetZOrder(adAggregate.pctrlTextControl, ZOrderFlags::Behind );
- pZOrderPredecessor = adAggregate.pctrlInputControl;
-
- if (adAggregate.pctrlInputControl == pFormatSample)
- {
- pFormat->SetZOrder(pZOrderPredecessor, ZOrderFlags::Behind);
- pZOrderPredecessor = pFormat;
- }
-
- ++nCurrentControlPos;
- }
- }
-
- // Special treatment for the Format Controls
- if (pFormat)
- {
- Point ptSamplePos(pFormatSample->GetPosPixel());
- Size szSampleSize(pFormatSample->GetSizePixel());
- pFormat->SetPosPixel(Point(ptSamplePos.X() + szSampleSize.Width() + 5, ptSamplePos.Y()));
- }
-
- // Finally, put the ScrollBars at the top of the z-order
- m_pVertScroll->SetZOrder(nullptr, ZOrderFlags::First);
- m_pHorzScroll->SetZOrder(nullptr, ZOrderFlags::First);
-}
-
void OFieldDescControl::ActivateAggregate( EControlType eType )
{
// Create Controls
switch( eType )
{
case tpDefault:
- if( pDefault )
+ if (m_xDefault)
return;
m_nPos++;
- pDefaultText = CreateText(STR_DEFAULT_VALUE);
- pDefault = VclPtr<OPropEditCtrl>::Create( this, STR_HELP_DEFAULT_VALUE, FIELD_PROPERTY_DEFAULT, WB_BORDER );
- InitializeControl(pDefault,HID_TAB_ENT_DEFAULT,false);
+ m_xDefaultText = m_xBuilder->weld_label("DefaultValueText");
+ m_xDefaultText->show();
+ m_xDefault = std::make_unique<OPropEditCtrl>(
+ m_xBuilder->weld_spin_button("DefaultValue"), STR_HELP_DEFAULT_VALUE, FIELD_PROPERTY_DEFAULT);
+ InitializeControl(m_xDefault->GetWidget(),HID_TAB_ENT_DEFAULT);
+ m_xDefault->show();
break;
case tpAutoIncrementValue:
- if( m_pAutoIncrementValue || !isAutoIncrementValueEnabled() )
+ if (m_xAutoIncrementValue || !isAutoIncrementValueEnabled())
return;
m_nPos++;
- m_pAutoIncrementValueText = CreateText(STR_AUTOINCREMENT_VALUE);
- m_pAutoIncrementValue = VclPtr<OPropEditCtrl>::Create( this, STR_HELP_AUTOINCREMENT_VALUE, FIELD_PROPERTY_AUTOINCREMENT, WB_BORDER );
- m_pAutoIncrementValue->SetText( getAutoIncrementValue() );
- InitializeControl(m_pAutoIncrementValue,HID_TAB_AUTOINCREMENTVALUE,false);
+ m_xAutoIncrementValueText = m_xBuilder->weld_label("AutoIncrementValueText");
+ m_xAutoIncrementValueText->show();
+ m_xAutoIncrementValue = std::make_unique<OPropEditCtrl>(
+ m_xBuilder->weld_spin_button("AutoIncrementValue"), STR_HELP_AUTOINCREMENT_VALUE,
+ FIELD_PROPERTY_AUTOINCREMENT);
+ m_xAutoIncrementValue->set_text( getAutoIncrementValue() );
+ InitializeControl(m_xAutoIncrementValue->GetWidget(),HID_TAB_AUTOINCREMENTVALUE);
+ m_xAutoIncrementValue->show();
break;
case tpRequired:
{
- if( pRequired )
+ if (m_xRequired)
return;
Reference< XDatabaseMetaData> xMetaData = getMetaData();
if(xMetaData.is() && xMetaData->supportsNonNullableColumns())
{
m_nPos++;
- pRequiredText = CreateText(STR_FIELD_REQUIRED);
- pRequired = VclPtr<OPropListBoxCtrl>::Create( this, STR_HELP_FIELD_REQUIRED, FIELD_PROPERTY_REQUIRED, WB_DROPDOWN);
-
- pRequired->InsertEntry( aYes );
- pRequired->InsertEntry( aNo );
- pRequired->SelectEntryPos(1);
-
- InitializeControl(pRequired,HID_TAB_ENT_REQUIRED,true);
+ m_xRequiredText = m_xBuilder->weld_label("RequiredText");
+ m_xRequiredText->show();
+ m_xRequired = std::make_unique<OPropListBoxCtrl>(
+ m_xBuilder->weld_combo_box("Required"), STR_HELP_AUTOINCREMENT_VALUE,
+ FIELD_PROPERTY_AUTOINCREMENT);
+ m_xRequired->append_text(aYes);
+ m_xRequired->append_text(aNo);
+ m_xRequired->set_active(1);
+
+ InitializeControl(m_xRequired.get(),HID_TAB_ENT_REQUIRED, true);
+ m_xRequired->show();
}
}
break;
case tpAutoIncrement:
{
- if( pAutoIncrement )
+ if (m_xAutoIncrement)
return;
m_nPos++;
- pAutoIncrementText = CreateText(STR_FIELD_AUTOINCREMENT);
- pAutoIncrement = VclPtr<OPropListBoxCtrl>::Create( this, STR_HELP_AUTOINCREMENT, FIELD_PROPERTY_AUTOINC, WB_DROPDOWN );
- pAutoIncrement->InsertEntry( aYes );
- pAutoIncrement->InsertEntry( aNo );
- pAutoIncrement->SelectEntryPos(0);
- InitializeControl(pAutoIncrement,HID_TAB_ENT_AUTOINCREMENT,true);
+ m_xAutoIncrementText = m_xBuilder->weld_label("AutoIncrementText");
+ m_xAutoIncrementText->show();
+ m_xAutoIncrement = std::make_unique<OPropListBoxCtrl>(
+ m_xBuilder->weld_combo_box("AutoIncrement"), STR_HELP_AUTOINCREMENT,
+ FIELD_PROPERTY_AUTOINC);
+ m_xAutoIncrement->append_text(aYes);
+ m_xAutoIncrement->append_text(aNo);
+ m_xAutoIncrement->set_active(0);
+ InitializeControl(m_xAutoIncrement.get(),HID_TAB_ENT_AUTOINCREMENT, true);
+ m_xAutoIncrement->show();
}
break;
case tpTextLen:
- if( pTextLen )
+ if (m_xTextLen)
return;
m_nPos++;
- pTextLenText = CreateText(STR_TEXT_LENGTH);
- pTextLen = CreateNumericControl(STR_HELP_TEXT_LENGTH, FIELD_PROPERTY_TEXTLEN,HID_TAB_ENT_TEXT_LEN);
+ m_xTextLenText = m_xBuilder->weld_label("TextLengthText");
+ m_xTextLenText->show();
+ m_xTextLen = CreateNumericControl("TextLength", STR_HELP_TEXT_LENGTH, FIELD_PROPERTY_TEXTLEN,HID_TAB_ENT_TEXT_LEN);
break;
case tpType:
- if( m_pType)
+ if (m_xType)
return;
m_nPos++;
- m_pTypeText = CreateText(STR_TAB_FIELD_DATATYPE);
- m_pType = VclPtr<OPropListBoxCtrl>::Create( this, STR_HELP_AUTOINCREMENT, FIELD_PROPERTY_TYPE, WB_DROPDOWN );
- m_pType->SetDropDownLineCount(20);
+ m_xTypeText = m_xBuilder->weld_label("TypeText");
+ m_xTypeText->show();
+ m_xType = std::make_unique<OPropListBoxCtrl>(
+ m_xBuilder->weld_combo_box("Type"), STR_HELP_AUTOINCREMENT, FIELD_PROPERTY_TYPE);
{
const OTypeInfoMap* pTypeInfo = getTypeInfo();
for (auto const& elem : *pTypeInfo)
- m_pType->InsertEntry( elem.second->aUIName );
+ m_xType->append_text(elem.second->aUIName);
}
- m_pType->SelectEntryPos(0);
- InitializeControl(m_pType,HID_TAB_ENT_TYPE,true);
+ m_xType->set_active(0);
+ InitializeControl(m_xType.get(),HID_TAB_ENT_TYPE, true);
+ m_xType->show();
break;
case tpColumnName:
- if( m_pColumnName )
+ if (m_xColumnName)
return;
m_nPos++;
{
@@ -808,247 +525,188 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
{
DBG_UNHANDLED_EXCEPTION("dbaccess");
}
- m_pColumnNameText = CreateText(STR_TAB_FIELD_NAME);
- m_pColumnName = VclPtr<OPropColumnEditCtrl>::Create( this,
- aTmpString,
- STR_HELP_DEFAULT_VALUE,
- FIELD_PROPERTY_COLUMNNAME,
- WB_BORDER );
- m_pColumnName->SetMaxTextLen(nMax ? nMax : EDIT_NOLIMIT);
- m_pColumnName->setCheck( isSQL92CheckEnabled(getConnection()) );
+ m_xColumnNameText = m_xBuilder->weld_label("ColumnNameText");
+ m_xColumnNameText->show();
+ m_xColumnName = std::make_unique<OPropColumnEditCtrl>(
+ m_xBuilder->weld_entry("ColumnName"), aTmpString,
+ STR_HELP_DEFAULT_VALUE, FIELD_PROPERTY_COLUMNNAME);
+ m_xColumnName->set_max_length(nMax ? nMax : EDIT_NOLIMIT);
+ m_xColumnName->setCheck( isSQL92CheckEnabled(getConnection()) );
}
- InitializeControl(m_pColumnName,HID_TAB_ENT_COLUMNNAME,false);
+ InitializeControl(m_xColumnName->GetWidget(),HID_TAB_ENT_COLUMNNAME);
+ m_xColumnName->show();
break;
case tpNumType:
- if( pNumType )
+ if (m_xNumType)
return;
m_nPos++;
- pNumTypeText = CreateText(STR_NUMERIC_TYPE);
-
- pNumType = VclPtr<OPropListBoxCtrl>::Create( this, STR_HELP_NUMERIC_TYPE, FIELD_PROPERTY_NUMTYPE, WB_DROPDOWN );
- pNumType->SetDropDownLineCount(5);
-
- pNumType->InsertEntry( OUString("Byte") );
- pNumType->InsertEntry( OUString("SmallInt") );
- pNumType->InsertEntry( OUString("Integer") );
- pNumType->InsertEntry( OUString("Single") );
- pNumType->InsertEntry( OUString("Double") );
- pNumType->SelectEntryPos(2);
- InitializeControl(pNumType,HID_TAB_ENT_NUMTYP,true);
+ m_xNumTypeText = m_xBuilder->weld_label("NumTypeText");
+ m_xNumTypeText->show();
+ m_xNumType = std::make_unique<OPropListBoxCtrl>(
+ m_xBuilder->weld_combo_box("NumType"), STR_HELP_NUMERIC_TYPE, FIELD_PROPERTY_NUMTYPE);
+ m_xNumType->append_text("Byte");
+ m_xNumType->append_text("SmallInt");
+ m_xNumType->append_text("Integer");
+ m_xNumType->append_text("Single");
+ m_xNumType->append_text("Double");
+ m_xNumType->set_active(2);
+ InitializeControl(m_xNumType.get(),HID_TAB_ENT_NUMTYP, true);
+ m_xNumType->show();
break;
case tpLength:
- if( pLength )
+ if (m_xLength)
return;
m_nPos++;
- pLengthText = CreateText(STR_LENGTH);
- pLength = CreateNumericControl(STR_HELP_LENGTH, FIELD_PROPERTY_LENGTH,HID_TAB_ENT_LEN);
+ m_xLengthText = m_xBuilder->weld_label("LengthText");
+ m_xLengthText->show();
+ m_xLength = CreateNumericControl("Length", STR_HELP_LENGTH, FIELD_PROPERTY_LENGTH,HID_TAB_ENT_LEN);
break;
case tpScale:
- if( pScale )
+ if (m_xScale)
return;
m_nPos++;
- pScaleText = CreateText(STR_SCALE);
- pScale = CreateNumericControl(STR_HELP_SCALE, FIELD_PROPERTY_SCALE,HID_TAB_ENT_SCALE);
+ m_xScaleText = m_xBuilder->weld_label("ScaleText");
+ m_xScaleText->show();
+ m_xScale = CreateNumericControl("Scale", STR_HELP_SCALE, FIELD_PROPERTY_SCALE,HID_TAB_ENT_SCALE);
break;
case tpFormat:
- if (!pFormat)
+ if (!m_xFormat)
{
m_nPos++;
- pFormatText = CreateText(STR_FORMAT);
-
- pFormatSample = VclPtr<OPropEditCtrl>::Create( this, STR_HELP_FORMAT_CODE, -1, WB_BORDER );
- pFormatSample->SetReadOnly();
- pFormatSample->Enable(false);
- InitializeControl(pFormatSample,HID_TAB_ENT_FORMAT_SAMPLE,false);
-
- pFormat = VclPtr<PushButton>::Create(this, WB_TABSTOP);
- pFormat->SetText(DBA_RES(STR_BUTTON_FORMAT));
- const sal_Int32 nControlHeight = GetMaxControlHeight();
- pFormat->SetSizePixel(Size(nControlHeight, nControlHeight));
- pFormat->SetClickHdl( LINK( this, OFieldDescControl, FormatClickHdl ) );
- pFormat->Show();
- InitializeControl(pFormat,HID_TAB_ENT_FORMAT,false);
+ m_xFormatText = m_xBuilder->weld_label("FormatTextText");
+ m_xFormatText->show();
+
+ m_xFormatSample = std::make_unique<OPropEditCtrl>(
+ m_xBuilder->weld_spin_button("FormatText"), STR_HELP_FORMAT_CODE, -1);
+ m_xFormatSample->set_editable(false);
+ m_xFormatSample->set_sensitive(false);
+ InitializeControl(m_xFormatSample->GetWidget(),HID_TAB_ENT_FORMAT_SAMPLE);
+ m_xFormatSample->show();
+
+ m_xFormat = m_xBuilder->weld_button("FormatButton");
+ m_xFormat->connect_clicked( LINK( this, OFieldDescControl, FormatClickHdl ) );
+ InitializeControl(m_xFormat.get(),HID_TAB_ENT_FORMAT);
+ m_xFormat->show();
}
UpdateFormatSample(pActFieldDescr);
break;
case tpBoolDefault:
- if (pBoolDefault)
+ if (m_xBoolDefault)
return;
m_nPos++;
- pBoolDefaultText = CreateText(STR_DEFAULT_VALUE);
- pBoolDefault = VclPtr<OPropListBoxCtrl>::Create( this, STR_HELP_BOOL_DEFAULT, FIELD_PROPERTY_BOOL_DEFAULT, WB_DROPDOWN );
- pBoolDefault->SetDropDownLineCount(3);
- pBoolDefault->InsertEntry(DBA_RES(STR_VALUE_NONE));
- pBoolDefault->InsertEntry(aYes);
- pBoolDefault->InsertEntry(aNo);
-
- InitializeControl(pBoolDefault,HID_TAB_ENT_BOOL_DEFAULT,false);
+ m_xBoolDefaultText = m_xBuilder->weld_label("BoolDefaultText");
+ m_xBoolDefaultText->show();
+ m_xBoolDefault = std::make_unique<OPropListBoxCtrl>(
+ m_xBuilder->weld_combo_box("BoolDefault"), STR_HELP_BOOL_DEFAULT,
+ FIELD_PROPERTY_BOOL_DEFAULT);
+ m_xBoolDefault->append_text(DBA_RES(STR_VALUE_NONE));
+ m_xBoolDefault->append_text(aYes);
+ m_xBoolDefault->append_text(aNo);
+ InitializeControl(m_xBoolDefault->GetWidget(),HID_TAB_ENT_BOOL_DEFAULT);
+ m_xBoolDefault->show();
break;
}
}
-void OFieldDescControl::InitializeControl(Control* _pControl,const OString& _sHelpId,bool _bAddChangeHandler)
+void OFieldDescControl::InitializeControl(OPropListBoxCtrl* _pControl,const OString& _sHelpId,bool _bAddChangeHandler)
{
- _pControl->SetHelpId(_sHelpId);
if ( _bAddChangeHandler )
- static_cast<OPropListBoxCtrl*>(_pControl)->SetSelectHdl(LINK(this,OFieldDescControl,ChangeHdl));
+ _pControl->GetComboBox().connect_changed(LINK(this,OFieldDescControl,ChangeHdl));
- _pControl->SetGetFocusHdl(LINK(this, OFieldDescControl, OnControlFocusGot));
- _pControl->SetLoseFocusHdl(LINK(this, OFieldDescControl, OnControlFocusLost));
- _pControl->EnableClipSiblings();
+ InitializeControl(_pControl->GetWidget(), _sHelpId);
}
-VclPtr<FixedText> OFieldDescControl::CreateText(const char* pTextRes)
+void OFieldDescControl::InitializeControl(weld::Widget* pControl,const OString& _sHelpId)
{
- auto pFixedText = VclPtr<FixedText>::Create( this );
- pFixedText->SetText(DBA_RES(pTextRes));
- pFixedText->EnableClipSiblings();
- return pFixedText;
+ pControl->set_help_id(_sHelpId);
+ pControl->connect_focus_in(LINK(this, OFieldDescControl, OnControlFocusGot));
+ pControl->connect_focus_out(LINK(this, OFieldDescControl, OnControlFocusLost));
+
+ if (dynamic_cast<weld::Entry*>(pControl))
+ {
+ int nWidthRequest = LogicToPixel(Size(m_nEditWidth, 0), MapMode(MapUnit::MapAppFont)).Width();
+ pControl->set_size_request(nWidthRequest, -1);
+ }
}
-VclPtr<OPropNumericEditCtrl> OFieldDescControl::CreateNumericControl(const char* pHelpId, short _nProperty, const OString& _sHelpId)
+std::unique_ptr<OPropNumericEditCtrl> OFieldDescControl::CreateNumericControl(const OString& rId, const char* pHelpId, short _nProperty, const OString& _sHelpId)
{
- auto pControl = VclPtr<OPropNumericEditCtrl>::Create(this, pHelpId, _nProperty, WB_BORDER);
- pControl->SetDecimalDigits(0);
- pControl->SetMin(0);
- pControl->SetMax(0x7FFFFFFF); // Should be changed outside, if needed
- pControl->SetStrictFormat(true);
+ auto xControl = std::make_unique<OPropNumericEditCtrl>(
+ m_xBuilder->weld_spin_button(rId), pHelpId, _nProperty);
+ xControl->set_digits(0);
+ xControl->set_range(0, 0x7FFFFFFF); // Should be changed outside, if needed
+ xControl->show();
- InitializeControl(pControl,_sHelpId,false);
+ InitializeControl(xControl->GetWidget(),_sHelpId);
- return pControl;
+ return xControl;
}
void OFieldDescControl::DeactivateAggregate( EControlType eType )
{
- pLastFocusWindow = nullptr;
+ m_pLastFocusWindow = nullptr;
// Destroy Controls
switch( eType )
{
case tpDefault:
- lcl_HideAndDeleteControl(m_nPos,pDefault,pDefaultText);
+ lcl_HideAndDeleteControl(m_nPos,m_xDefault,m_xDefaultText);
break;
case tpAutoIncrementValue:
- lcl_HideAndDeleteControl(m_nPos,m_pAutoIncrementValue,m_pAutoIncrementValueText);
+ lcl_HideAndDeleteControl(m_nPos,m_xAutoIncrementValue,m_xAutoIncrementValueText);
break;
case tpColumnName:
- lcl_HideAndDeleteControl(m_nPos,m_pColumnName,m_pColumnNameText);
+ lcl_HideAndDeleteControl(m_nPos,m_xColumnName,m_xColumnNameText);
break;
case tpType:
- lcl_HideAndDeleteControl(m_nPos,m_pType,m_pTypeText);
+ lcl_HideAndDeleteControl(m_nPos,m_xType,m_xTypeText);
break;
case tpAutoIncrement:
- lcl_HideAndDeleteControl(m_nPos,pAutoIncrement,pAutoIncrementText);
+ lcl_HideAndDeleteControl(m_nPos,m_xAutoIncrement,m_xAutoIncrementText);
break;
case tpRequired:
- lcl_HideAndDeleteControl(m_nPos,pRequired,pRequiredText);
+ lcl_HideAndDeleteControl(m_nPos,m_xRequired,m_xRequiredText);
break;
case tpTextLen:
- lcl_HideAndDeleteControl(m_nPos,pTextLen,pTextLenText);
+ lcl_HideAndDeleteControl(m_nPos,m_xTextLen,m_xTextLenText);
break;
case tpNumType:
- lcl_HideAndDeleteControl(m_nPos,pNumType,pNumTypeText);
+ lcl_HideAndDeleteControl(m_nPos,m_xNumType,m_xNumTypeText);
break;
case tpLength:
- lcl_HideAndDeleteControl(m_nPos,pLength,pLengthText);
+ lcl_HideAndDeleteControl(m_nPos,m_xLength,m_xLengthText);
break;
case tpScale:
- lcl_HideAndDeleteControl(m_nPos,pScale,pScaleText);
+ lcl_HideAndDeleteControl(m_nPos,m_xScale,m_xScaleText);
break;
case tpFormat:
// TODO: we have to check if we have to increment m_nPos again
- lcl_HideAndDeleteControl(m_nPos,pFormat,pFormatText);
- if ( pFormatSample )
+ lcl_HideAndDeleteControl(m_nPos,m_xFormat,m_xFormatText);
+ if (m_xFormatSample)
{
- pFormatSample->Hide();
- pFormatSample.disposeAndClear();
+ m_xFormatSample->hide();
+ m_xFormatSample.reset();
}
break;
case tpBoolDefault:
- lcl_HideAndDeleteControl(m_nPos,pBoolDefault,pBoolDefaultText);
- break;
- }
-}
-
-void OFieldDescControl::SetPosSize( VclPtr<Control> const & rControl, long nRow, sal_uInt16 nCol )
-{
-
- // Calculate size
- const sal_Int32 nControlHeight = GetMaxControlHeight();
- Size aSize(0,nControlHeight);
- if ( isRightAligned() && nCol )
- aSize.setWidth( LogicToPixel(Size(m_nWidth, 0), MapMode(MapUnit::MapAppFont)).Width() );
- else
- {
- switch( nCol )
- {
- case 0:
- default:
- aSize.setWidth( CONTROL_WIDTH_1 );
- break;
- case 1:
- aSize.setWidth( CONTROL_WIDTH_2 );
- break;
- case 3:
- aSize.setWidth( CONTROL_WIDTH_3 );
- break;
- case 4:
- aSize.setWidth( CONTROL_WIDTH_4 );
- break;
- }
- }
-
- // Calculate Position
- Point aPosition;
- switch( nCol )
- {
- case 0:
- aPosition.setX( 0 );
- aPosition.setY( 1 );
- break;
- case 1:
- case 3:
- case 4:
- if ( isRightAligned() )
- {
- Size aOwnSize = GetSizePixel();
- aPosition.setX( aOwnSize.Width() - aSize.Width() );
- }
- else
- aPosition.setX( CONTROL_WIDTH_1 + CONTROL_SPACING_X );
+ lcl_HideAndDeleteControl(m_nPos,m_xBoolDefault,m_xBoolDefaultText);
break;
- default:
- aPosition.setX( 0 );
}
-
- rControl->SetSizePixel( aSize );
- aSize = rControl->GetSizePixel( );
-
- const sal_Int32 nControl_Spacing_y = LogicToPixel(Size(0, CONTROL_SPACING_Y), MapMode(MapUnit::MapAppFont)).Height();
- aPosition.AdjustY(((nRow+1)*nControl_Spacing_y) +
- (nRow*nControlHeight) );
-
- // Display Control
- rControl->SetPosSizePixel( aPosition, aSize );
- aSize = rControl->GetSizePixel();
-
- rControl->Show();
}
void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
@@ -1070,7 +728,7 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
DeactivateAggregate( tpAutoIncrementValue );
m_pPreviousType = TOTypeInfoSP();
// Reset the saved focus' pointer
- pLastFocusWindow = nullptr;
+ m_pLastFocusWindow = nullptr;
if ( m_bAdded )
{
::dbaui::notifySystemWindow(this,this,::comphelper::mem_fun(&TaskPaneList::RemoveWindow));
@@ -1095,7 +753,7 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
if( m_pPreviousType != pFieldType )
{
// Reset the saved focus' pointer
- pLastFocusWindow = nullptr;
+ m_pLastFocusWindow = nullptr;
// Controls, which must NOT be displayed again
DeactivateAggregate( tpNumType );
@@ -1130,8 +788,8 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
if (pFieldType->nPrecision)
{
ActivateAggregate( tpLength );
- pLength->SetMax(std::max<sal_Int32>(pFieldType->nPrecision,pFieldDescr->GetPrecision()));
- pLength->SetSpecialReadOnly(pFieldType->aCreateParams.isEmpty());
+ m_xLength->set_max(std::max<sal_Int32>(pFieldType->nPrecision,pFieldDescr->GetPrecision()));
+ m_xLength->set_editable(!pFieldType->aCreateParams.isEmpty());
}
else
DeactivateAggregate( tpLength );
@@ -1139,9 +797,9 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
if (pFieldType->nMaximumScale)
{
ActivateAggregate( tpScale );
- pScale->SetMax(std::max<sal_Int32>(pFieldType->nMaximumScale,pFieldDescr->GetScale()));
- pScale->SetMin(pFieldType->nMinimumScale);
- pScale->SetSpecialReadOnly(pFieldType->aCreateParams.isEmpty() || pFieldType->aCreateParams == "PRECISION");
+ m_xScale->set_range(std::max<sal_Int32>(pFieldType->nMaximumScale,pFieldDescr->GetScale()),
+ pFieldType->nMinimumScale);
+ m_xScale->set_editable(!pFieldType->aCreateParams.isEmpty() && pFieldType->aCreateParams != "PRECISION");
}
else
DeactivateAggregate( tpScale );
@@ -1160,8 +818,8 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
if (pFieldType->nPrecision)
{
ActivateAggregate( tpTextLen );
- pTextLen->SetMax(std::max<sal_Int32>(pFieldType->nPrecision,pFieldDescr->GetPrecision()));
- pTextLen->SetSpecialReadOnly(pFieldType->aCreateParams.isEmpty());
+ m_xTextLen->set_max(std::max<sal_Int32>(pFieldType->nPrecision,pFieldDescr->GetPrecision()));
+ m_xTextLen->set_editable(!pFieldType->aCreateParams.isEmpty());
}
else
DeactivateAggregate( tpTextLen );
@@ -1240,7 +898,7 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
{
DeactivateAggregate(tpRequired);
}
- else if (!pAutoIncrement && pFieldType.get())
+ else if (!m_xAutoIncrement && pFieldType.get())
{
if (pFieldType->bNullable)
ActivateAggregate(tpRequired);
@@ -1248,14 +906,14 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
DeactivateAggregate(tpRequired);
}
// Initialize Controls
- if( pAutoIncrement )
+ if (m_xAutoIncrement)
{
if ( pFieldDescr->IsAutoIncrement() )
{
- pAutoIncrement->SelectEntryPos( 0 ); // yes
+ m_xAutoIncrement->set_active(0); // yes
ActivateAggregate( tpAutoIncrementValue );
- if ( m_pAutoIncrementValue )
- m_pAutoIncrementValue->SetText(pFieldDescr->GetAutoIncrementValue());
+ if (m_xAutoIncrementValue)
+ m_xAutoIncrementValue->set_text(pFieldDescr->GetAutoIncrementValue());
DeactivateAggregate( tpRequired );
DeactivateAggregate( tpDefault );
}
@@ -1263,7 +921,7 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
{
// disable autoincrement value because it should only be visible when autoincrement is to true
DeactivateAggregate( tpAutoIncrementValue );
- pAutoIncrement->SelectEntryPos( 1 ); // no
+ m_xAutoIncrement->set_active(1); // no
ActivateAggregate( tpDefault );
// Affects pRequired
if(!pFieldDescr->IsPrimaryKey())
@@ -1271,15 +929,15 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
}
}
- if( pDefault )
+ if (m_xDefault)
{
- pDefault->SetText( getControlDefault(pFieldDescr) );
- pDefault->ClearModifyFlag();
+ m_xDefault->set_text(getControlDefault(pFieldDescr));
+ m_xDefault->save_value();
}
- if( pBoolDefault )
+ if (m_xBoolDefault)
{
- // If pRequired = sal_True then the sal_Bool field must NOT contain <<none>>
+ // If m_xRequired = sal_True then the sal_Bool field must NOT contain <<none>>
OUString sValue;
pFieldDescr->GetControlDefault() >>= sValue;
OUString sDef = BoolStringUI(sValue);
@@ -1289,58 +947,58 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
{
pFieldDescr->SetIsNullable(ColumnValue::NO_NULLS); // The type says so
- pBoolDefault->RemoveEntry(DBA_RES(STR_VALUE_NONE));
+ m_xBoolDefault->remove_text(DBA_RES(STR_VALUE_NONE));
if ( sDef != aYes && sDef != aNo )
- pBoolDefault->SelectEntryPos(1); // No as a default
+ m_xBoolDefault->set_active(1); // No as a default
else
- pBoolDefault->SelectEntry(sDef);
+ m_xBoolDefault->set_active_text(sDef);
- pFieldDescr->SetControlDefault(makeAny(BoolStringPersistent(pBoolDefault->GetSelectedEntry())));
+ pFieldDescr->SetControlDefault(makeAny(BoolStringPersistent(m_xBoolDefault->get_active_text())));
}
- else if(pBoolDefault->GetEntryCount() < 3)
+ else if (m_xBoolDefault->get_count() < 3)
{
- pBoolDefault->InsertEntry(DBA_RES(STR_VALUE_NONE));
- pBoolDefault->SelectEntry(sDef);
+ m_xBoolDefault->append_text(DBA_RES(STR_VALUE_NONE));
+ m_xBoolDefault->set_active_text(sDef);
}
else
- pBoolDefault->SelectEntry(sDef);
+ m_xBoolDefault->set_active_text(sDef);
}
- if( pRequired )
+ if (m_xRequired)
{
if( pFieldDescr->IsNullable() )
- pRequired->SelectEntryPos( 1 ); // no
+ m_xRequired->set_active(1); // no
else
- pRequired->SelectEntryPos( 0 ); // yes
+ m_xRequired->set_active(0); // yes
}
- if( pTextLen )
+ if (m_xTextLen)
{
- pTextLen->SetText( OUString::number(pFieldDescr->GetPrecision()) );
- pTextLen->ClearModifyFlag();
+ m_xTextLen->set_text(OUString::number(pFieldDescr->GetPrecision()));
+ m_xTextLen->save_value();
}
- if( pNumType )
+ if( m_xNumType )
{
OSL_FAIL("OFieldDescControl::DisplayData: invalid num type!");
}
- if( pLength )
- pLength->SetText( OUString::number(pFieldDescr->GetPrecision()) );
+ if (m_xLength)
+ m_xLength->set_text(OUString::number(pFieldDescr->GetPrecision()));
- if( pScale )
- pScale->SetText( OUString::number(pFieldDescr->GetScale()) );
+ if (m_xScale)
+ m_xScale->set_text(OUString::number(pFieldDescr->GetScale()));
- if( pFormat )
+ if (m_xFormat)
UpdateFormatSample(pFieldDescr);
- if(m_pColumnName)
- m_pColumnName->SetText(pFieldDescr->GetName());
+ if (m_xColumnName)
+ m_xColumnName->set_text(pFieldDescr->GetName());
- if(m_pType)
+ if (m_xType)
{
- sal_Int32 nPos = pFieldType.get() ? m_pType->GetEntryPos(pFieldDescr->getTypeInfo()->aUIName) : LISTBOX_ENTRY_NOTFOUND;
- if(nPos == LISTBOX_ENTRY_NOTFOUND)
+ sal_Int32 nPos = pFieldType.get() ? m_xType->find_text(pFieldDescr->getTypeInfo()->aUIName) : -1;
+ if (nPos == -1)
{
const OTypeInfoMap* pMap = getTypeInfo();
OTypeInfoMap::const_iterator aIter = pMap->find(pFieldType.get() ? pFieldDescr->getTypeInfo()->nType : pFieldDescr->GetType());
@@ -1361,87 +1019,115 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
pFieldDescr->SetType(aIter->second);
}
}
- m_pType->SelectEntry(pFieldDescr->getTypeInfo()->aUIName);
+ m_xType->set_active_text(pFieldDescr->getTypeInfo()->aUIName);
}
// Enable/disable Controls
bool bRead(IsReadOnly());
- ArrangeAggregates();
- CheckScrollBars();
- ScrollAllAggregates();
-
SetReadOnly( bRead );
}
-IMPL_LINK(OFieldDescControl, OnControlFocusGot, Control&, rControl, void )
+IMPL_LINK(OFieldDescControl, OnControlFocusGot, weld::Widget&, rControl, void )
{
OUString strHelpText;
- OPropNumericEditCtrl* pNumeric = dynamic_cast< OPropNumericEditCtrl* >( &rControl );
- if ( pNumeric )
+
+ if (m_xTextLen && &rControl == m_xTextLen->GetWidget())
{
- pNumeric->SaveValue();
- strHelpText = pNumeric->GetHelp();
+ m_xTextLen->save_value();
+ strHelpText = m_xTextLen->GetHelp();
}
-
- OPropColumnEditCtrl* pColumn = dynamic_cast< OPropColumnEditCtrl* >( &rControl );
- if ( pColumn )
+ else if (m_xLength && &rControl == m_xLength->GetWidget())
{
- pColumn->SaveValue();
- strHelpText = pColumn->GetHelp();
+ m_xLength->save_value();
+ strHelpText = m_xLength->GetHelp();
}
-
- OPropEditCtrl* pEdit = dynamic_cast< OPropEditCtrl* >( &rControl );
- if ( pEdit )
+ else if (m_xScale && &rControl == m_xScale->GetWidget())
{
- pEdit->SaveValue();
- strHelpText = pEdit->GetHelp();
+ m_xScale->save_value();
+ strHelpText = m_xScale->GetHelp();
}
-
- OPropListBoxCtrl* pListBox = dynamic_cast< OPropListBoxCtrl* >( &rControl );
- if ( pListBox )
+ else if (m_xColumnName && &rControl == m_xColumnName->GetWidget())
{
- pListBox->SaveValue();
- strHelpText = pListBox->GetHelp();
+ m_xColumnName->save_value();
+ strHelpText = m_xColumnName->GetHelp();
}
-
- if (&rControl == pFormat)
- strHelpText = DBA_RES(STR_HELP_FORMAT_BUTTON);
-
- if (!strHelpText.isEmpty() && (pHelp != nullptr))
- pHelp->SetHelpText(strHelpText);
-
- m_pActFocusWindow = &rControl;
-}
-
-IMPL_LINK(OFieldDescControl, OnControlFocusLost, Control&, rControl, void )
-{
- if ((&rControl == pLength) || (&rControl == pTextLen) || (&rControl == pScale))
+ else if (m_xDefault && &rControl == m_xDefault->GetWidget())
+ {
+ m_xDefault->save_value();
+ strHelpText = m_xDefault->GetHelp();
+ }
+ else if (m_xFormatSample && &rControl == m_xFormatSample->GetWidget())
+ {
+ m_xFormatSample->save_value();
+ strHelpText = m_xFormatSample->GetHelp();
+ }
+ else if (m_xAutoIncrementValue && &rControl == m_xAutoIncrementValue->GetWidget())
+ {
+ m_xAutoIncrementValue->save_value();
+ strHelpText = m_xAutoIncrementValue->GetHelp();
+ }
+ else if (m_xRequired && &rControl == m_xRequired->GetWidget())
+ {
+ m_xRequired->save_value();
+ strHelpText = m_xRequired->GetHelp();
+ }
+ else if (m_xNumType && &rControl == m_xNumType->GetWidget())
{
- OPropNumericEditCtrl* pConverted = static_cast<OPropNumericEditCtrl*>(&rControl);
- if (pConverted->IsModified())
- CellModified(-1, pConverted->GetPos());
+ m_xNumType->save_value();
+ strHelpText = m_xNumType->GetHelp();
}
- if(&rControl == m_pColumnName)
+ else if (m_xAutoIncrement && &rControl == m_xAutoIncrement->GetWidget())
{
- OPropColumnEditCtrl* pConverted = static_cast<OPropColumnEditCtrl*>(&rControl);
- if (pConverted->IsModified())
- CellModified(-1, pConverted->GetPos());
+ m_xAutoIncrement->save_value();
+ strHelpText = m_xAutoIncrement->GetHelp();
}
- else if ((&rControl == pDefault) || (&rControl == pFormatSample) || (&rControl == m_pAutoIncrementValue) )
+ else if (m_xBoolDefault && &rControl == m_xBoolDefault->GetWidget())
{
- OPropEditCtrl* pConverted = static_cast<OPropEditCtrl*>(&rControl);
- if (pConverted->IsModified())
- CellModified(-1, pConverted->GetPos());
+ m_xBoolDefault->save_value();
+ strHelpText = m_xBoolDefault->GetHelp();
}
- else if ((&rControl == pRequired) || (&rControl == pNumType) || (&rControl == pAutoIncrement) || (&rControl == pBoolDefault) || (&rControl == m_pType))
+ else if (m_xType && &rControl == m_xType->GetWidget())
{
- OPropListBoxCtrl* pConverted = static_cast<OPropListBoxCtrl*>(&rControl);
- if (pConverted->IsModified())
- CellModified(-1, pConverted->GetPos());
+ m_xType->save_value();
+ strHelpText = m_xType->GetHelp();
}
+ else if (m_xFormat && &rControl == m_xFormat.get())
+ strHelpText = DBA_RES(STR_HELP_FORMAT_BUTTON);
+
+ if (!strHelpText.isEmpty() && (pHelp != nullptr))
+ pHelp->SetHelpText(strHelpText);
+
+ m_pActFocusWindow = &rControl;
+}
- if (&rControl == pDefault)
+IMPL_LINK(OFieldDescControl, OnControlFocusLost, weld::Widget&, rControl, void )
+{
+ if (m_xLength && &rControl == m_xLength->GetWidget() && m_xLength->get_value_changed_from_saved())
+ CellModified(-1, m_xLength->GetPos());
+ else if (m_xTextLen && &rControl == m_xTextLen->GetWidget() && m_xTextLen->get_value_changed_from_saved())
+ CellModified(-1, m_xTextLen->GetPos());
+ else if (m_xScale && &rControl == m_xScale->GetWidget() && m_xScale->get_value_changed_from_saved())
+ CellModified(-1, m_xScale->GetPos());
+ else if (m_xColumnName && &rControl == m_xColumnName->GetWidget() && m_xColumnName->get_value_changed_from_saved())
+ CellModified(-1, m_xColumnName->GetPos());
+ else if (m_xDefault && &rControl == m_xDefault->GetWidget() && m_xDefault->get_value_changed_from_saved())
+ CellModified(-1, m_xDefault->GetPos());
+ else if (m_xFormatSample && &rControl == m_xFormatSample->GetWidget() && m_xFormatSample->get_value_changed_from_saved())
+ CellModified(-1, m_xFormatSample->GetPos());
+ else if (m_xAutoIncrementValue && &rControl == m_xAutoIncrementValue->GetWidget() && m_xAutoIncrementValue->get_value_changed_from_saved())
+ CellModified(-1, m_xAutoIncrementValue->GetPos());
+ else if (m_xRequired && &rControl == m_xRequired->GetWidget() && m_xRequired->get_value_changed_from_saved())
+ CellModified(-1, m_xRequired->GetPos());
+ else if (m_xNumType && &rControl == m_xNumType->GetWidget() && m_xNumType->get_value_changed_from_saved())
+ CellModified(-1, m_xNumType->GetPos());
+ else if (m_xAutoIncrement && &rControl == m_xAutoIncrement->GetWidget() && m_xAutoIncrement->get_value_changed_from_saved())
+ CellModified(-1, m_xAutoIncrement->GetPos());
+ else if (m_xBoolDefault && &rControl == m_xBoolDefault->GetWidget() && m_xBoolDefault->get_value_changed_from_saved())
+ CellModified(-1, m_xBoolDefault->GetPos());
+ else if (m_xType && &rControl == m_xType->GetWidget() && m_xType->get_value_changed_from_saved())
+ CellModified(-1, m_xType->GetPos());
+ else if (m_xDefault && &rControl == m_xDefault->GetWidget())
UpdateFormatSample(pActFieldDescr);
implFocusLost(&rControl);
@@ -1454,13 +1140,13 @@ void OFieldDescControl::SaveData( OFieldDescription* pFieldDescr )
// Read out Controls
OUString sDefault;
- if (pDefault)
+ if (m_xDefault)
{
- sDefault = pDefault->GetText();
+ sDefault = m_xDefault->get_text();
}
- else if (pBoolDefault)
+ else if (m_xBoolDefault)
{
- sDefault = BoolStringPersistent(pBoolDefault->GetSelectedEntry());
+ sDefault = BoolStringPersistent(m_xBoolDefault->get_active_text());
}
if ( !sDefault.isEmpty() )
@@ -1468,52 +1154,50 @@ void OFieldDescControl::SaveData( OFieldDescription* pFieldDescr )
else
pFieldDescr->SetControlDefault(Any());
- if((pRequired && pRequired->GetSelectedEntryPos() == 0) || pFieldDescr->IsPrimaryKey() || (pBoolDefault && pBoolDefault->GetEntryCount() == 2)) // yes
+ if((m_xRequired && m_xRequired->get_active() == 0) || pFieldDescr->IsPrimaryKey() || (m_xBoolDefault && m_xBoolDefault->get_count() == 2)) // yes
pFieldDescr->SetIsNullable( ColumnValue::NO_NULLS );
else
pFieldDescr->SetIsNullable( ColumnValue::NULLABLE );
- if ( pAutoIncrement )
- pFieldDescr->SetAutoIncrement( pAutoIncrement->GetSelectedEntryPos() == 0 );
+ if (m_xAutoIncrement)
+ pFieldDescr->SetAutoIncrement(m_xAutoIncrement->get_active() == 0);
- if( pTextLen )
- pFieldDescr->SetPrecision( static_cast<sal_Int32>(pTextLen->GetValue()) );
- else if( pLength )
- pFieldDescr->SetPrecision( static_cast<sal_Int32>(pLength->GetValue()) );
- if( pScale )
- pFieldDescr->SetScale( static_cast<sal_Int32>(pScale->GetValue()) );
+ if( m_xTextLen )
+ pFieldDescr->SetPrecision( static_cast<sal_Int32>(m_xTextLen->get_value()) );
+ else if (m_xLength)
+ pFieldDescr->SetPrecision( static_cast<sal_Int32>(m_xLength->get_value()) );
+ if (m_xScale)
+ pFieldDescr->SetScale( static_cast<sal_Int32>(m_xScale->get_value()) );
- if(m_pColumnName)
- pFieldDescr->SetName(m_pColumnName->GetText());
+ if (m_xColumnName)
+ pFieldDescr->SetName(m_xColumnName->get_text());
- if ( m_pAutoIncrementValue && isAutoIncrementValueEnabled() )
- pFieldDescr->SetAutoIncrementValue(m_pAutoIncrementValue->GetText());
+ if (m_xAutoIncrementValue && isAutoIncrementValueEnabled())
+ pFieldDescr->SetAutoIncrementValue(m_xAutoIncrementValue->get_text());
}
void OFieldDescControl::UpdateFormatSample(OFieldDescription const * pFieldDescr)
{
- if ( pFieldDescr && pFormatSample )
- pFormatSample->SetText(getControlDefault(pFieldDescr,false));
+ if (pFieldDescr && m_xFormatSample)
+ m_xFormatSample->set_text(getControlDefault(pFieldDescr,false));
}
void OFieldDescControl::GetFocus()
{
// Set the Focus to the Control that has been active last
TabPage::GetFocus();
- if( pLastFocusWindow )
+ if (m_pLastFocusWindow)
{
- pLastFocusWindow->GrabFocus();
- pLastFocusWindow = nullptr;
+ m_pLastFocusWindow->grab_focus();
+ m_pLastFocusWindow = nullptr;
}
}
-void OFieldDescControl::implFocusLost(vcl::Window* _pWhich)
+void OFieldDescControl::implFocusLost(weld::Widget* _pWhich)
{
- OSL_ENSURE(!_pWhich || IsChild(_pWhich), "OFieldDescControl::implFocusLost : invalid window !");
-
// Remember the active Control
- if (!pLastFocusWindow)
- pLastFocusWindow = _pWhich;
+ if (!m_pLastFocusWindow)
+ m_pLastFocusWindow = _pWhich;
// Reset HelpText
if (pHelp && !pHelp->HasChildPathFocus())
@@ -1529,34 +1213,35 @@ void OFieldDescControl::LoseFocus()
bool OFieldDescControl::isCopyAllowed() const
{
+ int nStartPos, nEndPos;
bool bAllowed = (m_pActFocusWindow != nullptr) &&
- (m_pActFocusWindow == pDefault || m_pActFocusWindow == pFormatSample ||
- m_pActFocusWindow == pTextLen || m_pActFocusWindow == pLength ||
- m_pActFocusWindow == pScale || m_pActFocusWindow == m_pColumnName ||
- m_pActFocusWindow == m_pAutoIncrementValue) &&
- !static_cast<Edit*>(m_pActFocusWindow.get())->GetSelected().isEmpty();
-
+ (m_pActFocusWindow == m_xDefault->GetWidget() || m_pActFocusWindow == m_xFormatSample->GetWidget() ||
+ m_pActFocusWindow == m_xTextLen->GetWidget() || m_pActFocusWindow == m_xLength->GetWidget() ||
+ m_pActFocusWindow == m_xScale->GetWidget() || m_pActFocusWindow == m_xColumnName->GetWidget() ||
+ m_pActFocusWindow == m_xAutoIncrementValue->GetWidget()) &&
+ dynamic_cast<weld::Entry&>(*m_pActFocusWindow).get_selection_bounds(nStartPos, nEndPos);
return bAllowed;
}
bool OFieldDescControl::isCutAllowed() const
{
+ int nStartPos, nEndPos;
bool bAllowed = (m_pActFocusWindow != nullptr) &&
- (m_pActFocusWindow == pDefault || m_pActFocusWindow == pFormatSample ||
- m_pActFocusWindow == pTextLen || m_pActFocusWindow == pLength ||
- m_pActFocusWindow == pScale || m_pActFocusWindow == m_pColumnName ||
- m_pActFocusWindow == m_pAutoIncrementValue) &&
- !static_cast<Edit*>(m_pActFocusWindow.get())->GetSelected().isEmpty();
+ (m_pActFocusWindow == m_xDefault->GetWidget() || m_pActFocusWindow == m_xFormatSample->GetWidget() ||
+ m_pActFocusWindow == m_xTextLen->GetWidget() || m_pActFocusWindow == m_xLength->GetWidget() ||
+ m_pActFocusWindow == m_xScale->GetWidget() || m_pActFocusWindow == m_xColumnName->GetWidget() ||
+ m_pActFocusWindow == m_xAutoIncrementValue->GetWidget()) &&
+ dynamic_cast<weld::Entry&>(*m_pActFocusWindow).get_selection_bounds(nStartPos, nEndPos);
return bAllowed;
}
bool OFieldDescControl::isPasteAllowed() const
{
bool bAllowed = (m_pActFocusWindow != nullptr) &&
- (m_pActFocusWindow == pDefault || m_pActFocusWindow == pFormatSample ||
- m_pActFocusWindow == pTextLen || m_pActFocusWindow == pLength ||
- m_pActFocusWindow == pScale || m_pActFocusWindow == m_pColumnName ||
- m_pActFocusWindow == m_pAutoIncrementValue);
+ (m_pActFocusWindow == m_xDefault->GetWidget() || m_pActFocusWindow == m_xFormatSample->GetWidget() ||
+ m_pActFocusWindow == m_xTextLen->GetWidget() || m_pActFocusWindow == m_xLength->GetWidget() ||
+ m_pActFocusWindow == m_xScale->GetWidget() || m_pActFocusWindow == m_xColumnName->GetWidget() ||
+ m_pActFocusWindow == m_xAutoIncrementValue->GetWidget());
if ( bAllowed )
{
TransferableDataHelper aTransferData(TransferableDataHelper::CreateFromSystemClipboard(GetParent()));
@@ -1567,20 +1252,20 @@ bool OFieldDescControl::isPasteAllowed() const
void OFieldDescControl::cut()
{
- if(isCutAllowed())
- static_cast<Edit*>(m_pActFocusWindow.get())->Cut();
+ if (isCutAllowed())
+ dynamic_cast<weld::Entry&>(*m_pActFocusWindow).cut_clipboard();
}
void OFieldDescControl::copy()
{
- if(isCopyAllowed()) // this only checks if the focus window is valid
- static_cast<Edit*>(m_pActFocusWindow.get())->Copy();
+ if (isCopyAllowed()) // this only checks if the focus window is valid
+ dynamic_cast<weld::Entry&>(*m_pActFocusWindow).copy_clipboard();
}
void OFieldDescControl::paste()
{
- if(m_pActFocusWindow) // this only checks if the focus window is valid
- static_cast<Edit*>(m_pActFocusWindow.get())->Paste();
+ if (m_pActFocusWindow) // this only checks if the focus window is valid
+ dynamic_cast<weld::Entry&>(*m_pActFocusWindow).paste_clipboard();
}
bool OFieldDescControl::isTextFormat(const OFieldDescription* _pFieldDescr, sal_uInt32& _nFormatKey) const
diff --git a/dbaccess/source/ui/control/SqlNameEdit.cxx b/dbaccess/source/ui/control/SqlNameEdit.cxx
index dc5d57b3db95..2b280a82c325 100644
--- a/dbaccess/source/ui/control/SqlNameEdit.cxx
+++ b/dbaccess/source/ui/control/SqlNameEdit.cxx
@@ -64,6 +64,21 @@ namespace dbaui
}
Edit::Modify();
}
+
+ IMPL_LINK_NOARG(OSQLNameEntry, ModifyHdl, weld::Entry&, void)
+ {
+ OUString sCorrected;
+ if (checkString(m_xEntry->get_text(), sCorrected))
+ {
+ int nStartPos, nEndPos;
+ m_xEntry->get_selection_bounds(nStartPos, nEndPos);
+ int nMin = std::min(nStartPos, nEndPos);
+ m_xEntry->select_region(nMin, nMin);
+ m_xEntry->replace_selection(sCorrected);
+
+ m_xEntry->save_value();
+ }
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/inc/FieldControls.hxx b/dbaccess/source/ui/inc/FieldControls.hxx
index 1ed9413e5365..6bd8f3b68dad 100644
--- a/dbaccess/source/ui/inc/FieldControls.hxx
+++ b/dbaccess/source/ui/inc/FieldControls.hxx
@@ -27,58 +27,92 @@
namespace dbaui
{
- class OPropColumnEditCtrl : public OSQLNameEdit
+ class OPropColumnEditCtrl : public OSQLNameEntry
{
short m_nPos;
OUString m_strHelpText;
public:
- OPropColumnEditCtrl(vcl::Window* pParent, OUString const & _rAllowedChars, const char* pHelpId, short nPosition, WinBits nWinStyle);
-
- virtual bool IsModified() const override { return IsValueChangedFromSaved(); }
+ OPropColumnEditCtrl(std::unique_ptr<weld::Entry> xEntry, OUString const & _rAllowedChars, const char* pHelpId, short nPosition);
short GetPos() const { return m_nPos; }
const OUString& GetHelp() const { return m_strHelpText; }
};
- class OPropEditCtrl : public Edit
+ class OPropEditCtrl : public OWidgetBase
{
+ std::unique_ptr<weld::Entry> m_xEntry;
short m_nPos;
OUString m_strHelpText;
public:
- OPropEditCtrl(vcl::Window* pParent, const char* pHelpId, short nPosition, WinBits nWinStyle);
+ OPropEditCtrl(std::unique_ptr<weld::Entry> xEntry, const char* pHelpId, short nPosition);
+
+ void set_text(const OUString& rText) { m_xEntry->set_text(rText); }
+ OUString get_text() const { return m_xEntry->get_text(); }
+ void set_editable(bool bEditable) { m_xEntry->set_editable(bEditable); }
- virtual bool IsModified() const override { return IsValueChangedFromSaved(); }
+ virtual void save_value() override { m_xEntry->save_value(); }
+ virtual bool get_value_changed_from_saved() const override { return m_xEntry->get_value_changed_from_saved(); }
short GetPos() const { return m_nPos; }
const OUString& GetHelp() const { return m_strHelpText; }
};
- class OPropNumericEditCtrl : public NumericField
+ class OPropNumericEditCtrl : public OWidgetBase
{
+ std::unique_ptr<weld::SpinButton> m_xSpinButton;
short m_nPos;
OUString m_strHelpText;
public:
- OPropNumericEditCtrl(vcl::Window* pParent, const char* pHelpId, short nPosition, WinBits nWinStyle);
+ OPropNumericEditCtrl(std::unique_ptr<weld::SpinButton> xSpinButton, const char* pHelpId, short nPosition);
- virtual bool IsModified() const override { return IsValueChangedFromSaved(); }
+ void set_text(const OUString& rText) { m_xSpinButton->set_text(rText); }
+ OUString get_text() const { return m_xSpinButton->get_text(); }
+
+ virtual void save_value() override { m_xSpinButton->save_value(); }
+ virtual bool get_value_changed_from_saved() const override { return m_xSpinButton->get_value_changed_from_saved(); }
+ void set_digits(int nLen) { m_xSpinButton->set_digits(nLen); }
+ void set_min(int nMin) { m_xSpinButton->set_min(nMin); }
+ void set_max(int nMax) { m_xSpinButton->set_max(nMax); }
+ void set_range(int nMin, int nMax) { m_xSpinButton->set_range(nMin, nMax); }
+ int get_value() const { return m_xSpinButton->get_value(); }
short GetPos() const { return m_nPos; }
const OUString& GetHelp() const { return m_strHelpText; }
- void SetSpecialReadOnly(bool _bReadOnly);
+ void set_editable(bool bEditable) { m_xSpinButton->set_editable(bEditable); }
};
- class OPropListBoxCtrl : public ListBox
+ class OPropListBoxCtrl : public OWidgetBase
{
+ std::unique_ptr<weld::ComboBox> m_xComboBox;
short m_nPos;
OUString m_strHelpText;
public:
- OPropListBoxCtrl(vcl::Window* pParent, const char* pHelpId, short nPosition, WinBits nWinStyle);
+ OPropListBoxCtrl(std::unique_ptr<weld::ComboBox> xComboBox, const char* pHelpId, short nPosition);
+ virtual ~OPropListBoxCtrl() override
+ {
+ m_xComboBox->clear();
+ }
+
+ virtual void save_value() override { m_xComboBox->save_value(); }
+ virtual bool get_value_changed_from_saved() const override { return m_xComboBox->get_value_changed_from_saved(); }
+
+ weld::ComboBox& GetComboBox() { return *m_xComboBox; }
+
+ OUString get_active_text() const { return m_xComboBox->get_active_text(); }
+ void set_active_text(const OUString &rText) { m_xComboBox->set_active_text(rText); }
+
+ int get_active() const { return m_xComboBox->get_active(); }
+ void set_active(int nPos) { m_xComboBox->set_active(nPos); }
+
+ int get_count() const { return m_xComboBox->get_count(); }
- bool IsModified() const { return IsValueChangedFromSaved(); }
+ void append_text(const OUString &rText) { m_xComboBox->append_text(rText); }
+ void remove_text(const OUString &rText) { m_xComboBox->remove_text(rText); }
+ int find_text(const OUString &rText) const { return m_xComboBox->find_text(rText); }
short GetPos() const { return m_nPos; }
const OUString& GetHelp() const { return m_strHelpText; }
diff --git a/dbaccess/source/ui/inc/FieldDescControl.hxx b/dbaccess/source/ui/inc/FieldDescControl.hxx
index e24670609ef9..5a4c6111eb05 100644
--- a/dbaccess/source/ui/inc/FieldDescControl.hxx
+++ b/dbaccess/source/ui/inc/FieldDescControl.hxx
@@ -20,6 +20,7 @@
#define INCLUDED_DBACCESS_SOURCE_UI_INC_FIELDDESCCONTROL_HXX
#include <vcl/tabpage.hxx>
+#include <vcl/weld.hxx>
#include "QEnumTypes.hxx"
#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <com/sun/star/util/XNumberFormatter.hpp>
@@ -65,77 +66,68 @@ namespace dbaui
class OFieldDescControl : public TabPage
{
private:
+ std::unique_ptr<weld::Builder> m_xBuilder;
+ std::unique_ptr<weld::Container> m_xContainer;
+
VclPtr<OTableDesignHelpBar> pHelp;
- VclPtr<vcl::Window> pLastFocusWindow;
- VclPtr<vcl::Window> m_pActFocusWindow;
-
- VclPtr<FixedText> pDefaultText;
- VclPtr<FixedText> pRequiredText;
- VclPtr<FixedText> pAutoIncrementText;
- VclPtr<FixedText> pTextLenText;
- VclPtr<FixedText> pNumTypeText;
- VclPtr<FixedText> pLengthText;
- VclPtr<FixedText> pScaleText;
- VclPtr<FixedText> pFormatText;
- VclPtr<FixedText> pBoolDefaultText;
- VclPtr<FixedText> m_pColumnNameText;
- VclPtr<FixedText> m_pTypeText;
- VclPtr<FixedText> m_pAutoIncrementValueText;
-
- VclPtr<OPropListBoxCtrl> pRequired;
- VclPtr<OPropListBoxCtrl> pNumType;
- VclPtr<OPropListBoxCtrl> pAutoIncrement;
- VclPtr<OPropEditCtrl> pDefault;
- VclPtr<OPropNumericEditCtrl> pTextLen;
- VclPtr<OPropNumericEditCtrl> pLength;
- VclPtr<OPropNumericEditCtrl> pScale;
- VclPtr<OPropEditCtrl> pFormatSample;
- VclPtr<OPropListBoxCtrl> pBoolDefault;
- VclPtr<OPropColumnEditCtrl> m_pColumnName;
- VclPtr<OPropListBoxCtrl> m_pType;
- VclPtr<OPropEditCtrl> m_pAutoIncrementValue;
-
- VclPtr<PushButton> pFormat;
-
- VclPtr<ScrollBar> m_pVertScroll;
- VclPtr<ScrollBar> m_pHorzScroll;
+ weld::Widget* m_pLastFocusWindow;
+ weld::Widget* m_pActFocusWindow;
+
+ std::unique_ptr<weld::Label> m_xDefaultText;
+ std::unique_ptr<weld::Label> m_xRequiredText;
+ std::unique_ptr<weld::Label> m_xAutoIncrementText;
+ std::unique_ptr<weld::Label> m_xTextLenText;
+ std::unique_ptr<weld::Label> m_xNumTypeText;
+ std::unique_ptr<weld::Label> m_xLengthText;
+ std::unique_ptr<weld::Label> m_xScaleText;
+ std::unique_ptr<weld::Label> m_xFormatText;
+ std::unique_ptr<weld::Label> m_xBoolDefaultText;
+ std::unique_ptr<weld::Label> m_xColumnNameText;
+ std::unique_ptr<weld::Label> m_xTypeText;
+ std::unique_ptr<weld::Label> m_xAutoIncrementValueText;
+
+ std::unique_ptr<OPropListBoxCtrl> m_xRequired;
+ std::unique_ptr<OPropListBoxCtrl> m_xNumType;
+ std::unique_ptr<OPropListBoxCtrl> m_xAutoIncrement;
+ std::unique_ptr<OPropEditCtrl> m_xDefault;
+ std::unique_ptr<OPropNumericEditCtrl> m_xTextLen;
+ std::unique_ptr<OPropNumericEditCtrl> m_xLength;
+ std::unique_ptr<OPropNumericEditCtrl> m_xScale;
+ std::unique_ptr<OPropEditCtrl> m_xFormatSample;
+ std::unique_ptr<OPropListBoxCtrl> m_xBoolDefault;
+ std::unique_ptr<OPropColumnEditCtrl> m_xColumnName;
+ std::unique_ptr<OPropListBoxCtrl> m_xType;
+ std::unique_ptr<OPropEditCtrl> m_xAutoIncrementValue;
+
+ std::unique_ptr<weld::Button> m_xFormat;
TOTypeInfoSP m_pPreviousType;
short m_nPos;
OUString aYes;
OUString aNo;
- long m_nOldVThumb;
- long m_nOldHThumb;
- sal_Int32 m_nWidth;
+ sal_Int32 m_nEditWidth;
bool m_bAdded;
bool m_bRightAligned;
OFieldDescription* pActFieldDescr;
- DECL_LINK( OnScroll, ScrollBar*, void);
+ DECL_LINK(OnScroll, weld::ScrolledWindow&, void);
- DECL_LINK( FormatClickHdl, Button *, void );
- DECL_LINK( ChangeHdl, ListBox&, void );
+ DECL_LINK(FormatClickHdl, weld::Button&, void);
+ DECL_LINK(ChangeHdl, weld::ComboBox&, void);
// used by ActivatePropertyField
- DECL_LINK( OnControlFocusLost, Control&, void );
- DECL_LINK( OnControlFocusGot, Control&, void );
+ DECL_LINK( OnControlFocusLost, weld::Widget&, void );
+ DECL_LINK( OnControlFocusGot, weld::Widget&, void );
void UpdateFormatSample(OFieldDescription const * pFieldDescr);
- void ArrangeAggregates();
-
- void SetPosSize( VclPtr<Control> const & rControl, long nRow, sal_uInt16 nCol );
-
- static void ScrollAggregate(Control* pText, Control* pInput, Control* pButton, long nDeltaX, long nDeltaY);
- void ScrollAllAggregates();
bool isTextFormat(const OFieldDescription* _pFieldDescr,sal_uInt32& _nFormatKey) const;
- void Construct();
- VclPtr<OPropNumericEditCtrl> CreateNumericControl(const char* pHelpId, short _nProperty, const OString& _sHelpId);
- VclPtr<FixedText> CreateText(const char* pTextRes);
- void InitializeControl(Control* _pControl,const OString& _sHelpId,bool _bAddChangeHandler);
+ std::unique_ptr<OPropNumericEditCtrl> CreateNumericControl(const OString& rId, const char* pHelpId, short _nProperty, const OString& _sHelpId);
+ void InitializeControl(weld::Widget* _pControl,const OString& _sHelpId);
+ void InitializeControl(OPropListBoxCtrl* _pControl,const OString& _sHelpId,bool _bAddChangeHandler);
protected:
void setRightAligned() { m_bRightAligned = true; }
@@ -146,7 +138,6 @@ namespace dbaui
void setCurrentFieldDescData( OFieldDescription* _pDesc ) { pActFieldDescr = _pDesc; }
sal_uInt16 CountActiveAggregates() const;
- sal_Int32 GetMaxControlHeight() const;
virtual void ActivateAggregate( EControlType eType );
virtual void DeactivateAggregate( EControlType eType );
@@ -168,12 +159,12 @@ namespace dbaui
OUString BoolStringPersistent(const OUString& rUIString) const;
OUString BoolStringUI(const OUString& rPersistentString) const;
- const OPropColumnEditCtrl* getColumnCtrl() const { return m_pColumnName; }
+ const OPropColumnEditCtrl* getColumnCtrl() const { return m_xColumnName.get(); }
- void implFocusLost(vcl::Window* _pWhich);
+ void implFocusLost(weld::Widget* _pWhich);
public:
- OFieldDescControl( vcl::Window* pParent, OTableDesignHelpBar* pHelpBar);
+ OFieldDescControl(TabPageParent pParent, OTableDesignHelpBar* pHelpBar);
virtual ~OFieldDescControl() override;
virtual void dispose() override;
@@ -185,7 +176,6 @@ namespace dbaui
void SetReadOnly( bool bReadOnly );
// when resize is called
- void CheckScrollBars();
bool isCutAllowed() const;
bool isCopyAllowed() const;
bool isPasteAllowed() const;
@@ -197,14 +187,13 @@ namespace dbaui
void Init();
virtual void GetFocus() override;
virtual void LoseFocus() override;
- virtual void Resize() override;
virtual css::uno::Reference< css::sdbc::XDatabaseMetaData> getMetaData() = 0;
virtual css::uno::Reference< css::sdbc::XConnection> getConnection() = 0;
OUString getControlDefault( const OFieldDescription* _pFieldDescr, bool _bCheck = true) const;
- void setEditWidth(sal_Int32 _nWidth) { m_nWidth = _nWidth; }
+ void setEditWidth(sal_Int32 _nWidth) { m_nEditWidth = _nWidth; }
};
}
#endif
diff --git a/dbaccess/source/ui/inc/SqlNameEdit.hxx b/dbaccess/source/ui/inc/SqlNameEdit.hxx
index fa5cd5b505c6..f9f0dc23530c 100644
--- a/dbaccess/source/ui/inc/SqlNameEdit.hxx
+++ b/dbaccess/source/ui/inc/SqlNameEdit.hxx
@@ -21,6 +21,7 @@
#include <vcl/edit.hxx>
#include <vcl/combobox.hxx>
+#include <vcl/weld.hxx>
namespace dbaui
{
@@ -45,21 +46,71 @@ namespace dbaui
}
bool checkString(const OUString& _sToCheck,OUString& _rsCorrected);
};
+
class OSQLNameEdit : public Edit
,public OSQLNameChecker
{
public:
OSQLNameEdit(vcl::Window* _pParent,WinBits nStyle = WB_BORDER, const OUString& _rAllowedChars = OUString())
: Edit(_pParent,nStyle)
- ,OSQLNameChecker(_rAllowedChars)
+ , OSQLNameChecker(_rAllowedChars)
{
}
- // Window overrides
- // virtual bool PreNotify( NotifyEvent& rNEvt );
- // Edit
+ // Edit overrides
virtual void Modify() override;
};
+
+ class OWidgetBase
+ {
+ private:
+ weld::Widget* m_pWidget;
+ public:
+ OWidgetBase(weld::Widget *pWidget)
+ : m_pWidget(pWidget)
+ {
+ }
+
+ void hide() { m_pWidget->hide(); }
+ void show() { m_pWidget->show(); }
+ void set_sensitive(bool bSensitive) { m_pWidget->set_sensitive(bSensitive); }
+
+ weld::Widget* GetWidget() { return m_pWidget; }
+
+ virtual bool get_value_changed_from_saved() const = 0;
+ virtual void save_value() = 0;
+
+ virtual ~OWidgetBase() {}
+ };
+
+ class OSQLNameEntry : public OWidgetBase
+ , public OSQLNameChecker
+ {
+ private:
+ std::unique_ptr<weld::Entry> m_xEntry;
+
+ DECL_LINK(ModifyHdl, weld::Entry&, void);
+
+ public:
+ OSQLNameEntry(std::unique_ptr<weld::Entry> xEntry, const OUString& _rAllowedChars = OUString())
+ : OWidgetBase(xEntry.get())
+ , OSQLNameChecker(_rAllowedChars)
+ , m_xEntry(std::move(xEntry))
+ {
+ m_xEntry->connect_changed(LINK(this, OSQLNameEntry, ModifyHdl));
+ }
+
+ OUString get_text() const { return m_xEntry->get_text(); }
+ void set_text(const OUString& rText) { m_xEntry->set_text(rText); }
+ void set_max_length(int nLen) { m_xEntry->set_max_length(nLen); }
+ void set_sensitive(bool bSensitive) { m_xEntry->set_sensitive(bSensitive); }
+ virtual void save_value() override { m_xEntry->save_value(); }
+ virtual bool get_value_changed_from_saved() const override
+ {
+ return m_xEntry->get_value_changed_from_saved();
+ }
+ };
+
}
#endif // INCLUDED_DBACCESS_SOURCE_UI_INC_SQLNAMEEDIT_HXX
diff --git a/dbaccess/source/ui/inc/WCPage.hxx b/dbaccess/source/ui/inc/WCPage.hxx
index c826f0c0daaf..61b1f78a779e 100644
--- a/dbaccess/source/ui/inc/WCPage.hxx
+++ b/dbaccess/source/ui/inc/WCPage.hxx
@@ -32,23 +32,23 @@ namespace dbaui
class OWizNormalExtend;
class OCopyTable final : public OWizardPage
{
- VclPtr<Edit> m_pEdTableName;
- VclPtr<RadioButton> m_pRB_DefData;
- VclPtr<RadioButton> m_pRB_Def;
- VclPtr<RadioButton> m_pRB_View;
- VclPtr<RadioButton> m_pRB_AppendData;
- VclPtr<CheckBox> m_pCB_UseHeaderLine;
- VclPtr<CheckBox> m_pCB_PrimaryColumn;
- VclPtr<FixedText> m_pFT_KeyName;
- VclPtr<Edit> m_pEdKeyName;
- sal_Int16 m_nOldOperation;
-
bool m_bPKeyAllowed;
bool m_bUseHeaderAllowed;
+ sal_Int16 m_nOldOperation;
+
+ std::unique_ptr<weld::Entry> m_xEdTableName;
+ std::unique_ptr<weld::RadioButton> m_xRB_DefData;
+ std::unique_ptr<weld::RadioButton> m_xRB_Def;
+ std::unique_ptr<weld::RadioButton> m_xRB_View;
+ std::unique_ptr<weld::RadioButton> m_xRB_AppendData;
+ std::unique_ptr<weld::CheckButton> m_xCB_UseHeaderLine;
+ std::unique_ptr<weld::CheckButton> m_xCB_PrimaryColumn;
+ std::unique_ptr<weld::Label> m_xFT_KeyName;
+ std::unique_ptr<weld::Entry> m_xEdKeyName;
- DECL_LINK( AppendDataClickHdl, Button*, void );
- DECL_LINK( RadioChangeHdl, Button*, void );
- DECL_LINK( KeyClickHdl, Button*, void );
+ DECL_LINK( AppendDataClickHdl, weld::Button&, void );
+ DECL_LINK( RadioChangeHdl, weld::Button&, void );
+ DECL_LINK( KeyClickHdl, weld::Button&, void );
bool checkAppendData();
void SetAppendDataRadio();
@@ -59,24 +59,23 @@ namespace dbaui
virtual bool LeavePage() override;
virtual OUString GetTitle() const override ;
- OCopyTable( vcl::Window * pParent );
+ OCopyTable(OCopyTableWizard* pWizard, TabPageParent pParent);
virtual ~OCopyTable() override;
- virtual void dispose() override;
- bool IsOptionDefData() const { return m_pRB_DefData->IsChecked(); }
- bool IsOptionDef() const { return m_pRB_Def->IsChecked(); }
- bool IsOptionView() const { return m_pRB_View->IsChecked(); }
- OUString GetKeyName() const { return m_pEdKeyName->GetText(); }
+ bool IsOptionDefData() const { return m_xRB_DefData->get_active(); }
+ bool IsOptionDef() const { return m_xRB_Def->get_active(); }
+ bool IsOptionView() const { return m_xRB_View->get_active(); }
+ OUString GetKeyName() const { return m_xEdKeyName->get_text(); }
void setCreateStyleAction();
void disallowViews()
{
- m_pRB_View->Disable();
+ m_xRB_View->set_sensitive(false);
}
void disallowUseHeaderLine()
{
m_bUseHeaderAllowed = false;
- m_pCB_UseHeaderLine->Disable();
+ m_xCB_UseHeaderLine->set_sensitive(false);
}
void setCreatePrimaryKey( bool _bDoCreate, const OUString& _rSuggestedName );
diff --git a/dbaccess/source/ui/inc/WColumnSelect.hxx b/dbaccess/source/ui/inc/WColumnSelect.hxx
index e8ba08f17206..816b13bc1d1e 100644
--- a/dbaccess/source/ui/inc/WColumnSelect.hxx
+++ b/dbaccess/source/ui/inc/WColumnSelect.hxx
@@ -35,21 +35,21 @@ namespace dbaui
class OWizColumnSelect : public OWizardPage
{
- VclPtr<ListBox> m_pOrgColumnNames; // left side
- VclPtr<PushButton> m_pColumn_RH;
- VclPtr<PushButton> m_pColumns_RH;
- VclPtr<PushButton> m_pColumn_LH;
- VclPtr<PushButton> m_pColumns_LH;
- VclPtr<ListBox> m_pNewColumnNames; // right side
+ std::unique_ptr<weld::TreeView> m_xOrgColumnNames; // left side
+ std::unique_ptr<weld::Button> m_xColumn_RH;
+ std::unique_ptr<weld::Button> m_xColumns_RH;
+ std::unique_ptr<weld::Button> m_xColumn_LH;
+ std::unique_ptr<weld::Button> m_xColumns_LH;
+ std::unique_ptr<weld::TreeView> m_xNewColumnNames; // right side
- DECL_LINK( ButtonClickHdl, Button *, void );
- DECL_LINK( ListDoubleClickHdl, ListBox&, void );
+ DECL_LINK( ButtonClickHdl, weld::Button&, void );
+ DECL_LINK( ListDoubleClickHdl, weld::TreeView&, void );
- static void clearListBox(ListBox& _rListBox);
- static void fillColumns( ListBox const * pRight,
+ static void clearListBox(weld::TreeView& _rListBox);
+ static void fillColumns(weld::TreeView const * pRight,
std::vector< OUString> &_rRightColumns);
- void createNewColumn( ListBox* _pListbox,
+ void createNewColumn( weld::TreeView* _pListbox,
OFieldDescription const * _pSrcField,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
@@ -57,8 +57,8 @@ namespace dbaui
sal_Int32 _nMaxNameLen,
const ::comphelper::UStringMixEqual& _aCase);
- void moveColumn( ListBox* _pRight,
- ListBox const * _pLeft,
+ void moveColumn( weld::TreeView* _pRight,
+ weld::TreeView const * _pLeft,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
const OUString& _sExtraChars,
@@ -67,7 +67,7 @@ namespace dbaui
void enableButtons();
- sal_Int32 adjustColumnPosition(ListBox const * _pLeft,
+ sal_Int32 adjustColumnPosition(weld::TreeView const * _pLeft,
const OUString& _sColumnName,
ODatabaseExport::TColumnVector::size_type nCurrentPos,
const ::comphelper::UStringMixEqual& _aCase);
@@ -78,7 +78,7 @@ namespace dbaui
virtual bool LeavePage() override;
virtual OUString GetTitle() const override ;
- OWizColumnSelect(vcl::Window* pParent);
+ OWizColumnSelect(OCopyTableWizard* pWizard, TabPageParent pParent);
virtual ~OWizColumnSelect() override;
virtual void dispose() override;
};
diff --git a/dbaccess/source/ui/inc/WCopyTable.hxx b/dbaccess/source/ui/inc/WCopyTable.hxx
index cbf6cf8dc161..8d1cd4355596 100644
--- a/dbaccess/source/ui/inc/WCopyTable.hxx
+++ b/dbaccess/source/ui/inc/WCopyTable.hxx
@@ -30,7 +30,7 @@
#include <comphelper/stl_types.hxx>
#include "TypeInfo.hxx"
#include <vcl/button.hxx>
-#include <vcl/wizdlg.hxx>
+#include <vcl/roadmapwizard.hxx>
#include "DExport.hxx"
#include "WTabPage.hxx"
#include "FieldDescriptions.hxx"
@@ -212,7 +212,7 @@ namespace dbaui
};
// Wizard Dialog
- class OCopyTableWizard : public WizardDialog
+ class OCopyTableWizard : public vcl::RoadmapWizardMachine
{
friend class OWizColumnSelect;
friend class OWizTypeSelect;
@@ -238,12 +238,6 @@ namespace dbaui
ODatabaseExport::TColumns m_vSourceColumns;
ODatabaseExport::TColumnVector m_vSourceVec;
- VclPtr<HelpButton> m_pbHelp;
- VclPtr<CancelButton> m_pbCancel;
- VclPtr<PushButton> m_pbPrev;
- VclPtr<PushButton> m_pbNext;
- VclPtr<PushButton> m_pbFinish;
-
OTypeInfoMap m_aTypeInfo;
std::vector<OTypeInfoMap::iterator> m_aTypeInfoIndex;
OTypeInfoMap m_aDestTypeInfo;
@@ -278,10 +272,9 @@ namespace dbaui
bool m_bUseHeaderLine;
private:
- DECL_LINK( ImplPrevHdl, Button*, void );
- DECL_LINK( ImplNextHdl, Button*, void);
- DECL_LINK( ImplOKHdl, Button*, void );
- DECL_LINK( ImplActivateHdl, WizardDialog*, void );
+ DECL_LINK( ImplPrevHdl, weld::Button&, void );
+ DECL_LINK( ImplNextHdl, weld::Button&, void);
+ DECL_LINK( ImplOKHdl, weld::Button&, void );
bool CheckColumns(sal_Int32& _rnBreakPos);
void loadData( const ICopyTableSourceObject& _rSourceObject,
ODatabaseExport::TColumns& _rColumns,
@@ -293,10 +286,22 @@ namespace dbaui
// checks if the type is supported in the destination database
bool supportsType(sal_Int32 _nDataType,sal_Int32& _rNewDataType);
+ virtual VclPtr<TabPage> createPage(WizardState /*nState*/) override
+ {
+ assert(false);
+ return nullptr;
+ }
+
+ virtual void ActivatePage() override;
+
+ sal_uInt16 GetCurLevel() const { return getCurrentState(); }
+
+ TabPageParent CreatePageContainer();
+
public:
// used for copy tables or queries
OCopyTableWizard(
- vcl::Window * pParent,
+ weld::Window * pParent,
const OUString& _rDefaultName,
sal_Int16 _nOperation,
const ICopyTableSourceObject& _rSourceObject,
@@ -308,7 +313,7 @@ namespace dbaui
// used for importing rtf/html sources
OCopyTableWizard(
- vcl::Window* pParent,
+ weld::Window* pParent,
const OUString& _rDefaultName,
sal_Int16 _nOperation,
const ODatabaseExport::TColumns& _rDestColumns,
@@ -321,10 +326,9 @@ namespace dbaui
);
virtual ~OCopyTableWizard() override;
- virtual void dispose() override;
virtual bool DeactivatePage() override;
- OKButton& GetOKButton() { return static_cast<OKButton&>(*m_pbFinish); }
+ weld::Button& GetOKButton() { return *m_xFinish; }
Wizard_Button_Style GetPressedButton() const { return m_ePressed; }
void EnableNextButton(bool bEnable);
void AddWizardPage(OWizardPage* pPage); // delete page from OCopyTableWizard
diff --git a/dbaccess/source/ui/inc/WExtendPages.hxx b/dbaccess/source/ui/inc/WExtendPages.hxx
index 3efb77d9ddf5..90ba9ede00a8 100644
--- a/dbaccess/source/ui/inc/WExtendPages.hxx
+++ b/dbaccess/source/ui/inc/WExtendPages.hxx
@@ -24,18 +24,20 @@
class SvStream;
namespace dbaui
{
+ class OCopyTableWizard;
+
// Wizard Page: OWizHTMLExtend
class OWizHTMLExtend : public OWizTypeSelect
{
protected:
virtual void createReaderAndCallParser(sal_Int32 _nRows) override;
public:
- OWizHTMLExtend(vcl::Window* pParent, SvStream& _rStream)
- : OWizTypeSelect( pParent, &_rStream )
+ OWizHTMLExtend(OCopyTableWizard* pWizard, TabPageParent pParent, SvStream& rStream)
+ : OWizTypeSelect(pWizard, pParent, &rStream)
{
}
- static VclPtr<OWizTypeSelect> Create( vcl::Window* _pParent, SvStream& _rInput ) { return VclPtr<OWizHTMLExtend>::Create( _pParent, _rInput ); }
+ static VclPtr<OWizTypeSelect> Create(OCopyTableWizard* pWizard, TabPageParent pParent, SvStream& rInput ) { return VclPtr<OWizHTMLExtend>::Create(pWizard, pParent, rInput); }
};
// Wizard Page: OWizRTFExtend
class OWizRTFExtend : public OWizTypeSelect
@@ -43,12 +45,12 @@ namespace dbaui
protected:
virtual void createReaderAndCallParser(sal_Int32 _nRows) override;
public:
- OWizRTFExtend(vcl::Window* pParent,SvStream& _rStream)
- : OWizTypeSelect( pParent, &_rStream )
+ OWizRTFExtend(OCopyTableWizard* pWizard, TabPageParent pParent, SvStream& rStream)
+ : OWizTypeSelect(pWizard, pParent, &rStream)
{
}
- static VclPtr<OWizTypeSelect> Create( vcl::Window* _pParent, SvStream& _rInput ) { return VclPtr<OWizRTFExtend>::Create( _pParent, _rInput ); }
+ static VclPtr<OWizTypeSelect> Create(OCopyTableWizard* pWizard, TabPageParent pParent, SvStream& rInput) { return VclPtr<OWizRTFExtend>::Create(pWizard, pParent, rInput); }
};
// Wizard Page: OWizNormalExtend
@@ -57,7 +59,11 @@ namespace dbaui
protected:
virtual void createReaderAndCallParser(sal_Int32 _nRows) override;
public:
- OWizNormalExtend(vcl::Window* pParent);
+ OWizNormalExtend(OCopyTableWizard* pWizard, TabPageParent pParent)
+ : OWizTypeSelect(pWizard, pParent)
+ {
+ EnableAuto(false);
+ }
};
}
#endif // INCLUDED_DBACCESS_SOURCE_UI_INC_WEXTENDPAGES_HXX
diff --git a/dbaccess/source/ui/inc/WNameMatch.hxx b/dbaccess/source/ui/inc/WNameMatch.hxx
index 642ff1f85198..05cc948f7713 100644
--- a/dbaccess/source/ui/inc/WNameMatch.hxx
+++ b/dbaccess/source/ui/inc/WNameMatch.hxx
@@ -28,46 +28,30 @@
namespace dbaui
{
- // columns are at root only no children
- class OColumnTreeBox : public OMarkableTreeListBox
- {
- bool m_bReadOnly;
- protected:
- virtual void InitEntry(SvTreeListEntry* pEntry, const OUString& rStr, const Image& rImg1, const Image& rImg2) override;
-
- public:
- OColumnTreeBox( vcl::Window* pParent );
-
- void FillListBox( const ODatabaseExport::TColumnVector& _rList);
- void SetReadOnly() { m_bReadOnly = true; }
- virtual bool Select( SvTreeListEntry* pEntry, bool bSelect=true ) override;
-
- private:
- using OMarkableTreeListBox::Select;
- };
-
// Wizard Page: OWizNameMatching
// Name matching for data appending
class OWizNameMatching : public OWizardPage
{
- VclPtr<FixedText> m_pTABLE_LEFT;
- VclPtr<FixedText> m_pTABLE_RIGHT;
- VclPtr<OColumnTreeBox> m_pCTRL_LEFT; // left side
- VclPtr<OColumnTreeBox> m_pCTRL_RIGHT; // right side
- VclPtr<PushButton> m_pColumn_up;
- VclPtr<PushButton> m_pColumn_down;
- VclPtr<PushButton> m_pColumn_up_right;
- VclPtr<PushButton> m_pColumn_down_right;
- VclPtr<PushButton> m_pAll;
- VclPtr<PushButton> m_pNone;
+ std::unique_ptr<weld::Label> m_xTABLE_LEFT;
+ std::unique_ptr<weld::Label> m_xTABLE_RIGHT;
+ std::unique_ptr<weld::TreeView> m_xCTRL_LEFT; // left side
+ std::unique_ptr<weld::TreeView> m_xCTRL_RIGHT; // right side
+ std::unique_ptr<weld::Button> m_xColumn_up;
+ std::unique_ptr<weld::Button> m_xColumn_down;
+ std::unique_ptr<weld::Button> m_xColumn_up_right;
+ std::unique_ptr<weld::Button> m_xColumn_down_right;
+ std::unique_ptr<weld::Button> m_xAll;
+ std::unique_ptr<weld::Button> m_xNone;
OUString m_sSourceText;
OUString m_sDestText;
- DECL_LINK( ButtonClickHdl, Button *, void );
- DECL_LINK( RightButtonClickHdl, Button *, void );
- DECL_LINK( AllNoneClickHdl, Button *, void );
- DECL_LINK( TableListClickHdl, SvTreeListBox*, void );
- DECL_LINK( TableListRightSelectHdl, SvTreeListBox*, void );
+ DECL_LINK( ButtonClickHdl, weld::Button&, void );
+ DECL_LINK( RightButtonClickHdl, weld::Button&, void );
+ DECL_LINK( AllNoneClickHdl, weld::Button&, void );
+ DECL_LINK( TableListClickHdl, weld::TreeView&, void );
+ DECL_LINK( TableListRightSelectHdl, weld::TreeView&, void );
+
+ static void FillListBox(weld::TreeView& rTreeView, const ODatabaseExport::TColumnVector& rList, bool bCheckButtons);
public:
virtual void Reset ( ) override;
@@ -75,9 +59,8 @@ namespace dbaui
virtual bool LeavePage() override;
virtual OUString GetTitle() const override ;
- OWizNameMatching(vcl::Window* pParent);
+ OWizNameMatching(OCopyTableWizard* pWizard, TabPageParent pParent);
virtual ~OWizNameMatching() override;
- virtual void dispose() override;
};
}
#endif // INCLUDED_DBACCESS_SOURCE_UI_INC_WNAMEMATCH_HXX
diff --git a/dbaccess/source/ui/inc/WTabPage.hxx b/dbaccess/source/ui/inc/WTabPage.hxx
index cb2907019e83..fe2df1d3069d 100644
--- a/dbaccess/source/ui/inc/WTabPage.hxx
+++ b/dbaccess/source/ui/inc/WTabPage.hxx
@@ -29,14 +29,16 @@ namespace dbaui
class OWizardPage : public TabPage
{
protected:
- VclPtr<OCopyTableWizard> m_pParent;
+ std::unique_ptr<weld::Builder> m_xBuilder;
+ std::unique_ptr<weld::Container> m_xContainer;
+
+ OCopyTableWizard* m_pParent;
bool m_bFirstTime; // Page is called the first time; should be set in the reset method
- OWizardPage( vcl::Window *pParent, const OString& rID, const OUString& rUIXMLDescription );
+ OWizardPage(OCopyTableWizard* pWizard, TabPageParent pParent, const OUString& rUIXMLDescription, const OString& rID);
public:
virtual ~OWizardPage() override;
- virtual void dispose() override;
virtual void Reset ( ) = 0;
virtual bool LeavePage() = 0;
virtual OUString GetTitle() const = 0;
diff --git a/dbaccess/source/ui/inc/WTypeSelect.hxx b/dbaccess/source/ui/inc/WTypeSelect.hxx
index 794d0203d221..e0cfabb3fb53 100644
--- a/dbaccess/source/ui/inc/WTypeSelect.hxx
+++ b/dbaccess/source/ui/inc/WTypeSelect.hxx
@@ -32,11 +32,12 @@ class SvStream;
namespace dbaui
{
+ class OWizTypeSelect;
class OTableDesignHelpBar;
// OWizTypeSelectControl
class OWizTypeSelectControl final : public OFieldDescControl
{
- VclPtr<vcl::Window> m_pParentTabPage;
+ VclPtr<OWizTypeSelect> m_xParentTabPage;
virtual void ActivateAggregate( EControlType eType ) override;
virtual void DeactivateAggregate( EControlType eType ) override;
@@ -50,9 +51,9 @@ namespace dbaui
virtual OUString getAutoIncrementValue() const override;
public:
- OWizTypeSelectControl(vcl::Window* pParent, vcl::Window* pParentTabPage);
- virtual ~OWizTypeSelectControl() override;
+ OWizTypeSelectControl(TabPageParent pParent, OWizTypeSelect* pParentTabPage);
virtual void dispose() override;
+ virtual ~OWizTypeSelectControl() override;
virtual css::uno::Reference< css::sdbc::XDatabaseMetaData> getMetaData() override;
virtual css::uno::Reference< css::sdbc::XConnection> getConnection() override;
@@ -60,25 +61,45 @@ namespace dbaui
// Wizard Page: OWizTypeSelectList
// just defines the css::ucb::Command for the Contextmenu
- class OWizTypeSelectList final : public MultiListBox
+ class OWizTypeSelectList
{
+ std::unique_ptr<weld::TreeView> m_xControl;
bool m_bPKey;
bool IsPrimaryKeyAllowed() const;
void setPrimaryKey( OFieldDescription* _pFieldDescr,
sal_uInt16 _nPos,
bool _bSet = false);
- virtual bool PreNotify( NotifyEvent& rNEvt ) override;
- VclPtr<vcl::Window> m_pParentTabPage;
+
+ DECL_LINK(CommandHdl, const CommandEvent&, bool);
+
+ VclPtr<OWizTypeSelect> m_xParentTabPage;
+
+ Link<weld::TreeView&, void> m_aChangeHdl;
+
public:
- OWizTypeSelectList( vcl::Window* pParent )
- : MultiListBox(pParent, WB_BORDER | WB_SIMPLEMODE)
- , m_bPKey(false)
- , m_pParentTabPage(nullptr)
- {}
- virtual ~OWizTypeSelectList() override;
- virtual void dispose() override;
- void SetPKey(bool bPKey) { m_bPKey = bPKey; }
- void SetParentTabPage(vcl::Window* pParentTabPage) { m_pParentTabPage = pParentTabPage; }
+ OWizTypeSelectList(std::unique_ptr<weld::TreeView> xControl);
+ void SetPKey(bool bPKey) { m_bPKey = bPKey; }
+ void SetParentTabPage(OWizTypeSelect* pParentTabPage) { m_xParentTabPage = pParentTabPage; }
+ weld::TreeView* GetWidget() { return m_xControl.get(); }
+ OUString get_selected_id() const { return m_xControl->get_selected_id(); }
+ void show() { m_xControl->show(); }
+ void clear() { m_xControl->clear(); }
+ void append(const OUString& rId, const OUString& rStr)
+ {
+ m_xControl->append(rId, rStr);
+ }
+ void set_image(int nRow, const OUString& rImage)
+ {
+ m_xControl->set_image(nRow, rImage);
+ }
+ void set_selection_mode(SelectionMode eMode) { m_xControl->set_selection_mode(eMode); }
+ int count_selected_rows() const { return m_xControl->count_selected_rows(); }
+ void select(int pos) { m_xControl->select(pos); }
+ void connect_changed(const Link<weld::TreeView&, void>& rLink)
+ {
+ m_aChangeHdl = rLink;
+ m_xControl->connect_changed(rLink);
+ }
};
// Wizard Page: OWizTypeSelect
@@ -89,18 +110,18 @@ namespace dbaui
friend class OWizTypeSelectControl;
friend class OWizTypeSelectList;
- DECL_LINK( ColumnSelectHdl, ListBox&, void );
- DECL_LINK( ButtonClickHdl, Button *, void );
+ DECL_LINK( ColumnSelectHdl, weld::TreeView&, void );
+ DECL_LINK( ButtonClickHdl, weld::Button&, void );
protected:
- VclPtr<OWizTypeSelectList> m_pColumnNames;
- VclPtr<FixedText> m_pColumns;
- VclPtr<OWizTypeSelectControl> m_pTypeControl;
- VclPtr<FixedText> m_pAutoType;
- VclPtr<FixedText> m_pAutoFt;
- VclPtr<NumericField> m_pAutoEt;
- VclPtr<PushButton> m_pAutoPb;
-
- Image m_imgPKey;
+ std::unique_ptr<OWizTypeSelectList> m_xColumnNames;
+ std::unique_ptr<weld::Label> m_xColumns;
+ std::unique_ptr<weld::Container> m_xControlContainer;
+ VclPtr<OWizTypeSelectControl> m_xTypeControl;
+ std::unique_ptr<weld::Label> m_xAutoType;
+ std::unique_ptr<weld::Label> m_xAutoFt;
+ std::unique_ptr<weld::SpinButton> m_xAutoEt;
+ std::unique_ptr<weld::Button> m_xAutoPb;
+
SvStream* m_pParserStream; // stream to read the tokens from or NULL
OUString m_sAutoIncrementValue;
sal_Int32 m_nDisplayRow;
@@ -116,15 +137,15 @@ namespace dbaui
virtual bool LeavePage() override;
virtual OUString GetTitle() const override;
- OWizTypeSelect(vcl::Window* pParent, SvStream* _pStream = nullptr );
- virtual ~OWizTypeSelect() override;
+ OWizTypeSelect(OCopyTableWizard* pWizard, TabPageParent pParent, SvStream* pStream = nullptr);
virtual void dispose() override;
+ virtual ~OWizTypeSelect() override;
void setDisplayRow(sal_Int32 _nRow) { m_nDisplayRow = _nRow - 1; }
void setDuplicateName(bool _bDuplicateName) { m_bDuplicateName = _bDuplicateName; }
};
- typedef VclPtr<OWizTypeSelect> (*TypeSelectionPageFactory)( vcl::Window*, SvStream& );
+ typedef VclPtr<OWizTypeSelect> (*TypeSelectionPageFactory)(OCopyTableWizard*, TabPageParent, SvStream&);
}
#endif // INCLUDED_DBACCESS_SOURCE_UI_INC_WTYPESELECT_HXX
diff --git a/dbaccess/source/ui/misc/DExport.cxx b/dbaccess/source/ui/misc/DExport.cxx
index 3bc250adb718..78117ef9f348 100644
--- a/dbaccess/source/ui/misc/DExport.cxx
+++ b/dbaccess/source/ui/misc/DExport.cxx
@@ -677,7 +677,7 @@ bool ODatabaseExport::executeWizard(const OUString& _rTableName, const Any& _aTe
{
bool bHaveDefaultTable = !m_sDefaultTableName.isEmpty();
OUString sTableName( bHaveDefaultTable ? m_sDefaultTableName : _rTableName );
- ScopedVclPtrInstance<OCopyTableWizard> aWizard(
+ OCopyTableWizard aWizard(
nullptr,
sTableName,
bHaveDefaultTable ? CopyTableOperation::AppendData : CopyTableOperation::CopyDefinitionAndData,
@@ -693,14 +693,14 @@ bool ODatabaseExport::executeWizard(const OUString& _rTableName, const Any& _aTe
bool bError = false;
try
{
- if (aWizard->Execute())
+ if (aWizard.run())
{
- switch(aWizard->getOperation())
+ switch(aWizard.getOperation())
{
case CopyTableOperation::CopyDefinitionAndData:
case CopyTableOperation::AppendData:
{
- m_xTable = aWizard->createTable();
+ m_xTable = aWizard.createTable();
bError = !m_xTable.is();
if(m_xTable.is())
{
@@ -708,10 +708,10 @@ bool ODatabaseExport::executeWizard(const OUString& _rTableName, const Any& _aTe
if(_aTextColor.hasValue())
m_xTable->setPropertyValue(PROPERTY_TEXTCOLOR,_aTextColor);
}
- m_bIsAutoIncrement = aWizard->shouldCreatePrimaryKey();
- m_vColumnPositions = aWizard->GetColumnPositions();
- m_vColumnTypes = aWizard->GetColumnTypes();
- m_bAppendFirstLine = !aWizard->UseHeaderLine();
+ m_bIsAutoIncrement = aWizard.shouldCreatePrimaryKey();
+ m_vColumnPositions = aWizard.GetColumnPositions();
+ m_vColumnTypes = aWizard.GetColumnTypes();
+ m_bAppendFirstLine = !aWizard.UseHeaderLine();
}
break;
default:
@@ -726,7 +726,7 @@ bool ODatabaseExport::executeWizard(const OUString& _rTableName, const Any& _aTe
}
catch( const SQLException&)
{
- ::dbtools::showError( ::dbtools::SQLExceptionInfo( ::cppu::getCaughtException() ), VCLUnoHelper::GetInterface(aWizard.get()), m_xContext );
+ ::dbtools::showError( ::dbtools::SQLExceptionInfo( ::cppu::getCaughtException() ), aWizard.getDialog()->GetXWindow(), m_xContext );
bError = true;
}
catch( const Exception& )
diff --git a/dbaccess/source/ui/misc/TableCopyHelper.cxx b/dbaccess/source/ui/misc/TableCopyHelper.cxx
index 6b7015d16344..135632e0c698 100644
--- a/dbaccess/source/ui/misc/TableCopyHelper.cxx
+++ b/dbaccess/source/ui/misc/TableCopyHelper.cxx
@@ -26,6 +26,7 @@
#include <WCopyTable.hxx>
#include <dbaccess/genericcontroller.hxx>
#include <WCPage.hxx>
+#include <com/sun/star/task/InteractionHandler.hpp>
#include <com/sun/star/task/XInteractionHandler.hpp>
#include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
#include <com/sun/star/sdb/application/CopyTableOperation.hpp>
@@ -114,7 +115,9 @@ void OTableCopyHelper::insertTable( const OUString& i_rSourceDataSource, const R
Reference< XPropertySet > xDest( xFactory->createDataAccessDescriptor(), UNO_SET_THROW );
xDest->setPropertyValue( PROPERTY_ACTIVE_CONNECTION, makeAny( i_rDestConnection ) );
- Reference< XCopyTableWizard > xWizard( CopyTableWizard::create( aContext, xSource, xDest ), UNO_SET_THROW );
+ auto xInteractionHandler = InteractionHandler::createWithParent(aContext, VCLUnoHelper::GetInterface(m_pController->getView()));
+
+ Reference<XCopyTableWizard> xWizard(CopyTableWizard::createWithInteractionHandler(aContext, xSource, xDest, xInteractionHandler), UNO_SET_THROW);
OUString sTableNameForAppend( GetTableNameForAppend() );
xWizard->setDestinationTableName( GetTableNameForAppend() );
diff --git a/dbaccess/source/ui/misc/WCPage.cxx b/dbaccess/source/ui/misc/WCPage.cxx
index 11717f2d04a5..ae07cb947fb8 100644
--- a/dbaccess/source/ui/misc/WCPage.cxx
+++ b/dbaccess/source/ui/misc/WCPage.cxx
@@ -48,48 +48,47 @@ using namespace ::com::sun::star::sdbcx;
namespace CopyTableOperation = css::sdb::application::CopyTableOperation;
-OCopyTable::OCopyTable(vcl::Window * pParent)
- : OWizardPage(pParent, "CopyTablePage", "dbaccess/ui/copytablepage.ui")
- , m_nOldOperation(0)
+OCopyTable::OCopyTable(OCopyTableWizard* pWizard, TabPageParent pParent)
+ : OWizardPage(pWizard, pParent, "dbaccess/ui/copytablepage.ui", "CopyTablePage")
, m_bPKeyAllowed(false)
, m_bUseHeaderAllowed(true)
+ , m_nOldOperation(0)
+ , m_xEdTableName(m_xBuilder->weld_entry("name"))
+ , m_xRB_DefData(m_xBuilder->weld_radio_button("defdata"))
+ , m_xRB_Def(m_xBuilder->weld_radio_button("def"))
+ , m_xRB_View(m_xBuilder->weld_radio_button("view"))
+ , m_xRB_AppendData(m_xBuilder->weld_radio_button("data"))
+ , m_xCB_UseHeaderLine(m_xBuilder->weld_check_button("firstline"))
+ , m_xCB_PrimaryColumn(m_xBuilder->weld_check_button("primarykey"))
+ , m_xFT_KeyName(m_xBuilder->weld_label("keynamelabel"))
+ , m_xEdKeyName(m_xBuilder->weld_entry("keyname"))
{
- get(m_pEdTableName, "name");
- get(m_pRB_DefData, "defdata");
- get(m_pRB_Def, "def");
- get(m_pRB_View, "view");
- get(m_pRB_AppendData, "data");
- get(m_pCB_UseHeaderLine, "firstline");
- get(m_pCB_PrimaryColumn, "primarykey");
- get(m_pFT_KeyName, "keynamelabel");
- get(m_pEdKeyName, "keyname");
-
- m_pEdTableName->SetMaxTextLen(EDIT_NOLIMIT);
+ m_xEdTableName->set_max_length(EDIT_NOLIMIT);
if ( m_pParent->m_xDestConnection.is() )
{
- if ( !m_pParent->supportsViews() )
- m_pRB_View->Disable();
+ if (!m_pParent->supportsViews())
+ m_xRB_View->set_sensitive(false);
- m_pCB_UseHeaderLine->Check();
+ m_xCB_UseHeaderLine->set_active(true);
m_bPKeyAllowed = m_pParent->supportsPrimaryKey();
- m_pCB_PrimaryColumn->Enable(m_bPKeyAllowed);
+ m_xCB_PrimaryColumn->set_sensitive(m_bPKeyAllowed);
- m_pRB_AppendData->SetClickHdl( LINK( this, OCopyTable, AppendDataClickHdl ) );
+ m_xRB_AppendData->connect_clicked( LINK( this, OCopyTable, AppendDataClickHdl ) );
- m_pRB_DefData->SetClickHdl( LINK( this, OCopyTable, RadioChangeHdl ) );
- m_pRB_Def->SetClickHdl( LINK( this, OCopyTable, RadioChangeHdl ) );
- m_pRB_View->SetClickHdl( LINK( this, OCopyTable, RadioChangeHdl ) );
+ m_xRB_DefData->connect_clicked( LINK( this, OCopyTable, RadioChangeHdl ) );
+ m_xRB_Def->connect_clicked( LINK( this, OCopyTable, RadioChangeHdl ) );
+ m_xRB_View->connect_clicked( LINK( this, OCopyTable, RadioChangeHdl ) );
- m_pCB_PrimaryColumn->SetClickHdl(LINK( this, OCopyTable, KeyClickHdl ) );
+ m_xCB_PrimaryColumn->connect_clicked(LINK( this, OCopyTable, KeyClickHdl ) );
- m_pFT_KeyName->Enable(false);
- m_pEdKeyName->Enable(false);
- m_pEdKeyName->SetText(m_pParent->createUniqueName("ID"));
+ m_xFT_KeyName->set_sensitive(false);
+ m_xEdKeyName->set_sensitive(false);
+ m_xEdKeyName->set_text(m_pParent->createUniqueName("ID"));
const sal_Int32 nMaxLen = m_pParent->getMaxColumnNameLength();
- m_pEdKeyName->SetMaxTextLen(nMaxLen ? nMaxLen : EDIT_NOLIMIT);
+ m_xEdKeyName->set_max_length(nMaxLen ? nMaxLen : EDIT_NOLIMIT);
}
SetText(DBA_RES(STR_COPYTABLE_TITLE_COPY));
@@ -97,24 +96,9 @@ OCopyTable::OCopyTable(vcl::Window * pParent)
OCopyTable::~OCopyTable()
{
- disposeOnce();
-}
-
-void OCopyTable::dispose()
-{
- m_pEdTableName.clear();
- m_pRB_DefData.clear();
- m_pRB_Def.clear();
- m_pRB_View.clear();
- m_pRB_AppendData.clear();
- m_pCB_UseHeaderLine.clear();
- m_pCB_PrimaryColumn.clear();
- m_pFT_KeyName.clear();
- m_pEdKeyName.clear();
- OWizardPage::dispose();
}
-IMPL_LINK_NOARG( OCopyTable, AppendDataClickHdl, Button*, void )
+IMPL_LINK_NOARG( OCopyTable, AppendDataClickHdl, weld::Button&, void )
{
SetAppendDataRadio();
}
@@ -122,20 +106,20 @@ IMPL_LINK_NOARG( OCopyTable, AppendDataClickHdl, Button*, void )
void OCopyTable::SetAppendDataRadio()
{
m_pParent->EnableNextButton(true);
- m_pFT_KeyName->Enable(false);
- m_pCB_PrimaryColumn->Enable(false);
- m_pEdKeyName->Enable(false);
+ m_xFT_KeyName->set_sensitive(false);
+ m_xCB_PrimaryColumn->set_sensitive(false);
+ m_xEdKeyName->set_sensitive(false);
m_pParent->setOperation(CopyTableOperation::AppendData);
}
-IMPL_LINK( OCopyTable, RadioChangeHdl, Button*, pButton, void )
+IMPL_LINK(OCopyTable, RadioChangeHdl, weld::Button&, rButton, void)
{
- m_pParent->EnableNextButton(pButton != m_pRB_View);
- bool bKey = m_bPKeyAllowed && pButton != m_pRB_View;
- m_pFT_KeyName->Enable(bKey && m_pCB_PrimaryColumn->IsChecked());
- m_pEdKeyName->Enable(bKey && m_pCB_PrimaryColumn->IsChecked());
- m_pCB_PrimaryColumn->Enable(bKey);
- m_pCB_UseHeaderLine->Enable(m_bUseHeaderAllowed && IsOptionDefData());
+ m_pParent->EnableNextButton(&rButton != m_xRB_View.get());
+ bool bKey = m_bPKeyAllowed && &rButton != m_xRB_View.get();
+ m_xFT_KeyName->set_sensitive(bKey && m_xCB_PrimaryColumn->get_active());
+ m_xEdKeyName->set_sensitive(bKey && m_xCB_PrimaryColumn->get_active());
+ m_xCB_PrimaryColumn->set_sensitive(bKey);
+ m_xCB_UseHeaderLine->set_sensitive(m_bUseHeaderAllowed && IsOptionDefData());
// set type what to do
if( IsOptionDefData() )
@@ -146,17 +130,17 @@ IMPL_LINK( OCopyTable, RadioChangeHdl, Button*, pButton, void )
m_pParent->setOperation( CopyTableOperation::CreateAsView );
}
-IMPL_LINK_NOARG( OCopyTable, KeyClickHdl, Button*, void )
+IMPL_LINK_NOARG( OCopyTable, KeyClickHdl, weld::Button&, void )
{
- m_pEdKeyName->Enable(m_pCB_PrimaryColumn->IsChecked());
- m_pFT_KeyName->Enable(m_pCB_PrimaryColumn->IsChecked());
+ m_xEdKeyName->set_sensitive(m_xCB_PrimaryColumn->get_active());
+ m_xFT_KeyName->set_sensitive(m_xCB_PrimaryColumn->get_active());
}
bool OCopyTable::LeavePage()
{
- m_pParent->m_bCreatePrimaryKeyColumn = m_bPKeyAllowed && m_pCB_PrimaryColumn->IsEnabled() && m_pCB_PrimaryColumn->IsChecked();
- m_pParent->m_aKeyName = m_pParent->m_bCreatePrimaryKeyColumn ? m_pEdKeyName->GetText() : OUString();
- m_pParent->setUseHeaderLine( m_pCB_UseHeaderLine->IsChecked() );
+ m_pParent->m_bCreatePrimaryKeyColumn = m_bPKeyAllowed && m_xCB_PrimaryColumn->get_sensitive() && m_xCB_PrimaryColumn->get_active();
+ m_pParent->m_aKeyName = m_pParent->m_bCreatePrimaryKeyColumn ? m_xEdKeyName->get_text() : OUString();
+ m_pParent->setUseHeaderLine( m_xCB_UseHeaderLine->get_active() );
// first check if the table already exists in the database
if( m_pParent->getOperation() != CopyTableOperation::AppendData )
@@ -164,7 +148,7 @@ bool OCopyTable::LeavePage()
m_pParent->clearDestColumns();
DynamicTableOrQueryNameCheck aNameCheck( m_pParent->m_xDestConnection, CommandType::TABLE );
SQLExceptionInfo aErrorInfo;
- if ( !aNameCheck.isNameValid( m_pEdTableName->GetText(), aErrorInfo ) )
+ if ( !aNameCheck.isNameValid( m_xEdTableName->get_text(), aErrorInfo ) )
{
aErrorInfo.append( SQLExceptionInfo::TYPE::SQLContext, DBA_RES( STR_SUGGEST_APPEND_TABLE_DATA ) );
m_pParent->showError(aErrorInfo.get());
@@ -178,7 +162,7 @@ bool OCopyTable::LeavePage()
OUString sSchema;
OUString sTable;
::dbtools::qualifiedNameComponents( xMeta,
- m_pEdTableName->GetText(),
+ m_xEdTableName->get_text(),
sCatalog,
sSchema,
sTable,
@@ -199,7 +183,7 @@ bool OCopyTable::LeavePage()
}
}
- if ( m_pEdTableName->IsValueChangedFromSaved() )
+ if (m_xEdTableName->get_value_changed_from_saved())
{ // table exists and name has changed
if ( m_pParent->getOperation() == CopyTableOperation::AppendData )
{
@@ -208,7 +192,7 @@ bool OCopyTable::LeavePage()
}
else if ( m_nOldOperation == CopyTableOperation::AppendData )
{
- m_pEdTableName->SaveValue();
+ m_xEdTableName->save_value();
return LeavePage();
}
}
@@ -220,8 +204,8 @@ bool OCopyTable::LeavePage()
return false;
}
}
- m_pParent->m_sName = m_pEdTableName->GetText();
- m_pEdTableName->SaveValue();
+ m_pParent->m_sName = m_xEdTableName->get_text();
+ m_xEdTableName->save_value();
if(m_pParent->m_sName.isEmpty())
{
@@ -234,10 +218,10 @@ bool OCopyTable::LeavePage()
void OCopyTable::ActivatePage()
{
- m_pParent->GetOKButton().Enable();
+ m_pParent->GetOKButton().set_sensitive(true);
m_nOldOperation = m_pParent->getOperation();
- m_pEdTableName->GrabFocus();
- m_pCB_UseHeaderLine->Check(m_pParent->UseHeaderLine());
+ m_xEdTableName->grab_focus();
+ m_xCB_UseHeaderLine->set_active(m_pParent->UseHeaderLine());
}
OUString OCopyTable::GetTitle() const
@@ -249,8 +233,8 @@ void OCopyTable::Reset()
{
m_bFirstTime = false;
- m_pEdTableName->SetText( m_pParent->m_sName );
- m_pEdTableName->SaveValue();
+ m_xEdTableName->set_text( m_pParent->m_sName );
+ m_xEdTableName->save_value();
}
bool OCopyTable::checkAppendData()
@@ -259,9 +243,9 @@ bool OCopyTable::checkAppendData()
Reference< XPropertySet > xTable;
Reference< XTablesSupplier > xSup( m_pParent->m_xDestConnection, UNO_QUERY );
Reference<XNameAccess> xTables;
- if(xSup.is())
+ if (xSup.is())
xTables = xSup->getTables();
- if(xTables.is() && xTables->hasByName(m_pEdTableName->GetText()))
+ if (xTables.is() && xTables->hasByName(m_xEdTableName->get_text()))
{
const ODatabaseExport::TColumnVector& rSrcColumns = m_pParent->getSrcVector();
const sal_uInt32 nSrcSize = rSrcColumns.size();
@@ -269,7 +253,7 @@ bool OCopyTable::checkAppendData()
m_pParent->m_vColumnTypes.resize( nSrcSize , COLUMN_POSITION_NOT_FOUND );
// set new destination
- xTables->getByName( m_pEdTableName->GetText() ) >>= xTable;
+ xTables->getByName( m_xEdTableName->get_text() ) >>= xTable;
ObjectCopySource aTableCopySource( m_pParent->m_xDestConnection, xTable );
m_pParent->loadData( aTableCopySource, m_pParent->m_vDestColumns, m_pParent->m_aDestVec );
const ODatabaseExport::TColumnVector& rDestColumns = m_pParent->getDestVector();
@@ -308,40 +292,40 @@ bool OCopyTable::checkAppendData()
void OCopyTable::setCreatePrimaryKey( bool _bDoCreate, const OUString& _rSuggestedName )
{
bool bCreatePK = m_bPKeyAllowed && _bDoCreate;
- m_pCB_PrimaryColumn->Check( bCreatePK );
- m_pEdKeyName->SetText( _rSuggestedName );
+ m_xCB_PrimaryColumn->set_active( bCreatePK );
+ m_xEdKeyName->set_text( _rSuggestedName );
- m_pFT_KeyName->Enable( bCreatePK );
- m_pEdKeyName->Enable( bCreatePK );
+ m_xFT_KeyName->set_sensitive( bCreatePK );
+ m_xEdKeyName->set_sensitive( bCreatePK );
}
void OCopyTable::setCreateStyleAction()
{
// reselect the last action before
- switch(m_pParent->getOperation())
+ switch (m_pParent->getOperation())
{
case CopyTableOperation::CopyDefinitionAndData:
- m_pRB_DefData->Check();
- RadioChangeHdl(m_pRB_DefData);
+ m_xRB_DefData->set_active(true);
+ RadioChangeHdl(*m_xRB_DefData);
break;
case CopyTableOperation::CopyDefinitionOnly:
- m_pRB_Def->Check();
- RadioChangeHdl(m_pRB_Def);
+ m_xRB_Def->set_active(true);
+ RadioChangeHdl(*m_xRB_Def);
break;
case CopyTableOperation::AppendData:
- m_pRB_AppendData->Check();
+ m_xRB_AppendData->set_active(true);
SetAppendDataRadio();
break;
case CopyTableOperation::CreateAsView:
- if ( m_pRB_View->IsEnabled() )
+ if (m_xRB_View->get_sensitive())
{
- m_pRB_View->Check();
- RadioChangeHdl(m_pRB_View);
+ m_xRB_View->set_active(true);
+ RadioChangeHdl(*m_xRB_View);
}
else
{
- m_pRB_DefData->Check();
- RadioChangeHdl(m_pRB_DefData);
+ m_xRB_DefData->set_active(true);
+ RadioChangeHdl(*m_xRB_DefData);
}
}
}
diff --git a/dbaccess/source/ui/misc/WColumnSelect.cxx b/dbaccess/source/ui/misc/WColumnSelect.cxx
index 15eb6c66451d..89fd3a86bc41 100644
--- a/dbaccess/source/ui/misc/WColumnSelect.cxx
+++ b/dbaccess/source/ui/misc/WColumnSelect.cxx
@@ -28,6 +28,7 @@
#include <com/sun/star/sdbc/DataType.hpp>
#include <com/sun/star/sdbc/ColumnValue.hpp>
#include <com/sun/star/sdb/application/CopyTableOperation.hpp>
+#include <vcl/svapp.hxx>
#include <stringconstants.hxx>
#include <functional>
@@ -42,51 +43,40 @@ namespace CopyTableOperation = ::com::sun::star::sdb::application::CopyTableOper
OUString OWizColumnSelect::GetTitle() const { return DBA_RES(STR_WIZ_COLUMN_SELECT_TITEL); }
-OWizardPage::OWizardPage(vcl::Window* pParent, const OString& rID, const OUString& rUIXMLDescription)
- : TabPage(pParent, rID, rUIXMLDescription)
- ,m_pParent(static_cast<OCopyTableWizard*>(pParent))
- ,m_bFirstTime(true)
+OWizardPage::OWizardPage(OCopyTableWizard* pWizard, TabPageParent pParent, const OUString& rUIXMLDescription, const OString& rID)
+ : TabPage(pParent.pPage ? Application::GetDefDialogParent() : pParent.pParent.get()) //just drag this along hidden in this scenario
+ , m_xBuilder(pParent.pPage ? Application::CreateBuilder(pParent.pPage, rUIXMLDescription)
+ : Application::CreateInterimBuilder(this, rUIXMLDescription))
+ , m_xContainer(m_xBuilder->weld_container(rID))
+ , m_pParent(pWizard)
+ , m_bFirstTime(true)
{
}
OWizardPage::~OWizardPage()
{
- disposeOnce();
-}
-
-void OWizardPage::dispose()
-{
- m_pParent.clear();
- TabPage::dispose();
}
// OWizColumnSelect
-OWizColumnSelect::OWizColumnSelect( vcl::Window* pParent)
- :OWizardPage( pParent, "ApplyColPage", "dbaccess/ui/applycolpage.ui")
+OWizColumnSelect::OWizColumnSelect(OCopyTableWizard* pWizard, TabPageParent pParent)
+ : OWizardPage(pWizard, pParent, "dbaccess/ui/applycolpage.ui", "ApplyColPage")
+ , m_xOrgColumnNames(m_xBuilder->weld_tree_view("from"))
+ , m_xColumn_RH(m_xBuilder->weld_button("colrh"))
+ , m_xColumns_RH(m_xBuilder->weld_button("colsrh"))
+ , m_xColumn_LH(m_xBuilder->weld_button("collh"))
+ , m_xColumns_LH(m_xBuilder->weld_button("colslh"))
+ , m_xNewColumnNames(m_xBuilder->weld_tree_view("to"))
{
- get(m_pOrgColumnNames, "from");
- get(m_pColumn_RH, "colrh");
- get(m_pColumns_RH, "colsrh");
- get(m_pColumn_LH, "collh");
- get(m_pColumns_LH, "colslh");
- get(m_pNewColumnNames, "to");
-
- Size aSize(approximate_char_width() * 30, GetTextHeight() * 40);
- m_pOrgColumnNames->set_width_request(aSize.Width());
- m_pOrgColumnNames->set_height_request(aSize.Height());
- m_pNewColumnNames->set_width_request(aSize.Width());
- m_pNewColumnNames->set_height_request(aSize.Height());
-
- m_pColumn_RH->SetClickHdl(LINK(this,OWizColumnSelect,ButtonClickHdl));
- m_pColumn_LH->SetClickHdl(LINK(this,OWizColumnSelect,ButtonClickHdl));
- m_pColumns_RH->SetClickHdl(LINK(this,OWizColumnSelect,ButtonClickHdl));
- m_pColumns_LH->SetClickHdl(LINK(this,OWizColumnSelect,ButtonClickHdl));
-
- m_pOrgColumnNames->EnableMultiSelection(true);
- m_pNewColumnNames->EnableMultiSelection(true);
-
- m_pOrgColumnNames->SetDoubleClickHdl(LINK(this,OWizColumnSelect,ListDoubleClickHdl));
- m_pNewColumnNames->SetDoubleClickHdl(LINK(this,OWizColumnSelect,ListDoubleClickHdl));
+ m_xColumn_RH->connect_clicked(LINK(this,OWizColumnSelect,ButtonClickHdl));
+ m_xColumn_LH->connect_clicked(LINK(this,OWizColumnSelect,ButtonClickHdl));
+ m_xColumns_RH->connect_clicked(LINK(this,OWizColumnSelect,ButtonClickHdl));
+ m_xColumns_LH->connect_clicked(LINK(this,OWizColumnSelect,ButtonClickHdl));
+
+ m_xOrgColumnNames->set_selection_mode(SelectionMode::Multiple);
+ m_xNewColumnNames->set_selection_mode(SelectionMode::Multiple);
+
+ m_xOrgColumnNames->connect_row_activated(LINK(this,OWizColumnSelect,ListDoubleClickHdl));
+ m_xNewColumnNames->connect_row_activated(LINK(this,OWizColumnSelect,ListDoubleClickHdl));
}
OWizColumnSelect::~OWizColumnSelect()
@@ -96,29 +86,19 @@ OWizColumnSelect::~OWizColumnSelect()
void OWizColumnSelect::dispose()
{
- while ( m_pNewColumnNames->GetEntryCount() )
+ while (m_xNewColumnNames->n_children())
{
- void* pData = m_pNewColumnNames->GetEntryData(0);
- if ( pData )
- delete static_cast<OFieldDescription*>(pData);
-
- m_pNewColumnNames->RemoveEntry(0);
+ delete reinterpret_cast<OFieldDescription*>(m_xNewColumnNames->get_id(0).toInt64());
+ m_xNewColumnNames->remove(0);
}
- m_pNewColumnNames->Clear();
- m_pOrgColumnNames.clear();
- m_pColumn_RH.clear();
- m_pColumns_RH.clear();
- m_pColumn_LH.clear();
- m_pColumns_LH.clear();
- m_pNewColumnNames.clear();
OWizardPage::dispose();
}
void OWizColumnSelect::Reset()
{
// restore original state
- clearListBox(*m_pOrgColumnNames);
- clearListBox(*m_pNewColumnNames);
+ clearListBox(*m_xOrgColumnNames);
+ clearListBox(*m_xNewColumnNames);
m_pParent->m_mNameMapping.clear();
// insert the source columns in the left listbox
@@ -126,12 +106,12 @@ void OWizColumnSelect::Reset()
for (auto const& column : rSrcColumns)
{
- const sal_Int32 nPos = m_pOrgColumnNames->InsertEntry(column->first);
- m_pOrgColumnNames->SetEntryData(nPos,column->second);
+ OUString sId(OUString::number(reinterpret_cast<sal_Int64>(column->second)));
+ m_xOrgColumnNames->append(sId, column->first);
}
- if(m_pOrgColumnNames->GetEntryCount())
- m_pOrgColumnNames->SelectEntryPos(0);
+ if (m_xOrgColumnNames->n_children())
+ m_xOrgColumnNames->select(0);
m_bFirstTime = false;
}
@@ -142,7 +122,7 @@ void OWizColumnSelect::ActivatePage( )
if(m_pParent->getDestColumns().empty())
Reset();
- clearListBox(*m_pNewColumnNames);
+ clearListBox(*m_xNewColumnNames);
const ODatabaseExport::TColumnVector& rDestColumns = m_pParent->getDestVector();
@@ -157,14 +137,14 @@ void OWizColumnSelect::ActivatePage( )
{
if (rSrcColumns.find(column->first) != rSrcColumns.end())
{
- const sal_Int32 nPos = m_pNewColumnNames->InsertEntry(column->first);
- m_pNewColumnNames->SetEntryData(nPos,new OFieldDescription(*(column->second)));
- m_pOrgColumnNames->RemoveEntry(column->first);
+ OUString sId(OUString::number(reinterpret_cast<sal_Int64>(new OFieldDescription(*(column->second)))));
+ m_xNewColumnNames->append(sId, column->first);
+ m_xOrgColumnNames->remove_text(column->first);
}
}
- m_pParent->GetOKButton().Enable(m_pNewColumnNames->GetEntryCount() != 0);
- m_pParent->EnableNextButton(m_pNewColumnNames->GetEntryCount() && m_pParent->getOperation() != CopyTableOperation::AppendData);
- m_pColumns_RH->GrabFocus();
+ m_pParent->GetOKButton().set_sensitive(m_xNewColumnNames->n_children() != 0);
+ m_pParent->EnableNextButton(m_xNewColumnNames->n_children() && m_pParent->getOperation() != CopyTableOperation::AppendData);
+ m_xColumns_RH->grab_focus();
}
bool OWizColumnSelect::LeavePage()
@@ -172,14 +152,14 @@ bool OWizColumnSelect::LeavePage()
m_pParent->clearDestColumns();
- for(sal_Int32 i=0 ; i< m_pNewColumnNames->GetEntryCount();++i)
+ for(sal_Int32 i=0 ; i< m_xNewColumnNames->n_children();++i)
{
- OFieldDescription* pField = static_cast<OFieldDescription*>(m_pNewColumnNames->GetEntryData(i));
+ OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xNewColumnNames->get_id(i).toInt64());
OSL_ENSURE(pField,"The field information can not be null!");
m_pParent->insertColumn(i,pField);
}
- clearListBox(*m_pNewColumnNames);
+ clearListBox(*m_xNewColumnNames);
if ( m_pParent->GetPressedButton() == OCopyTableWizard::WIZARD_NEXT
|| m_pParent->GetPressedButton() == OCopyTableWizard::WIZARD_FINISH
@@ -189,32 +169,32 @@ bool OWizColumnSelect::LeavePage()
return true;
}
-IMPL_LINK( OWizColumnSelect, ButtonClickHdl, Button *, pButton, void )
+IMPL_LINK(OWizColumnSelect, ButtonClickHdl, weld::Button&, rButton, void)
{
- ListBox *pLeft = nullptr;
- ListBox *pRight = nullptr;
+ weld::TreeView *pLeft = nullptr;
+ weld::TreeView *pRight = nullptr;
bool bAll = false;
- if (pButton == m_pColumn_RH)
+ if (&rButton == m_xColumn_RH.get())
{
- pLeft = m_pOrgColumnNames;
- pRight = m_pNewColumnNames;
+ pLeft = m_xOrgColumnNames.get();
+ pRight = m_xNewColumnNames.get();
}
- else if(pButton == m_pColumn_LH)
+ else if (&rButton == m_xColumn_LH.get())
{
- pLeft = m_pNewColumnNames;
- pRight = m_pOrgColumnNames;
+ pLeft = m_xNewColumnNames.get();
+ pRight = m_xOrgColumnNames.get();
}
- else if(pButton == m_pColumns_RH)
+ else if (&rButton == m_xColumns_RH.get())
{
- pLeft = m_pOrgColumnNames;
- pRight = m_pNewColumnNames;
+ pLeft = m_xOrgColumnNames.get();
+ pRight = m_xNewColumnNames.get();
bAll = true;
}
- else if(pButton == m_pColumns_LH)
+ else if (&rButton == m_xColumns_LH.get())
{
- pLeft = m_pNewColumnNames;
- pRight = m_pOrgColumnNames;
+ pLeft = m_xNewColumnNames.get();
+ pRight = m_xOrgColumnNames.get();
bAll = true;
}
@@ -231,39 +211,42 @@ IMPL_LINK( OWizColumnSelect, ButtonClickHdl, Button *, pButton, void )
if(!bAll)
{
- for(sal_Int32 i=0; i < pLeft->GetSelectedEntryCount(); ++i)
- moveColumn(pRight,pLeft,aRightColumns,pLeft->GetSelectedEntry(i),sExtraChars,nMaxNameLen,aCase);
+ auto aRows = pLeft->get_selected_rows();
+ std::sort(aRows.begin(), aRows.end());
+
+ for (auto it = aRows.begin(); it != aRows.end(); ++it)
+ moveColumn(pRight,pLeft,aRightColumns,pLeft->get_text(*it),sExtraChars,nMaxNameLen,aCase);
- for(sal_Int32 j=pLeft->GetSelectedEntryCount(); j ; --j)
- pLeft->RemoveEntry(pLeft->GetSelectedEntry(j-1));
+ for (auto it = aRows.rbegin(); it != aRows.rend(); ++it)
+ pLeft->remove(*it);
}
else
{
- const sal_Int32 nEntries = pLeft->GetEntryCount();
+ const sal_Int32 nEntries = pLeft->n_children();
for(sal_Int32 i=0; i < nEntries; ++i)
- moveColumn(pRight,pLeft,aRightColumns,pLeft->GetEntry(i),sExtraChars,nMaxNameLen,aCase);
- for(sal_Int32 j=pLeft->GetEntryCount(); j ; )
- pLeft->RemoveEntry(--j);
+ moveColumn(pRight,pLeft,aRightColumns,pLeft->get_text(i),sExtraChars,nMaxNameLen,aCase);
+ for(sal_Int32 j=pLeft->n_children(); j ; )
+ pLeft->remove(--j);
}
enableButtons();
- if(m_pOrgColumnNames->GetEntryCount())
- m_pOrgColumnNames->SelectEntryPos(0);
+ if (m_xOrgColumnNames->n_children())
+ m_xOrgColumnNames->select(0);
}
-IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, ListBox&, rListBox, void )
+IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, weld::TreeView&, rListBox, void )
{
- ListBox *pLeft,*pRight;
- if(&rListBox == m_pOrgColumnNames)
+ weld::TreeView *pLeft,*pRight;
+ if (&rListBox == m_xOrgColumnNames.get())
{
- pLeft = m_pOrgColumnNames;
- pRight = m_pNewColumnNames;
+ pLeft = m_xOrgColumnNames.get();
+ pRight = m_xNewColumnNames.get();
}
else
{
- pRight = m_pOrgColumnNames;
- pLeft = m_pNewColumnNames;
+ pRight = m_xOrgColumnNames.get();
+ pLeft = m_xNewColumnNames.get();
}
// If database is able to process PrimaryKeys, set PrimaryKey
@@ -275,30 +258,32 @@ IMPL_LINK( OWizColumnSelect, ListDoubleClickHdl, ListBox&, rListBox, void )
std::vector< OUString> aRightColumns;
fillColumns(pRight,aRightColumns);
- for(sal_Int32 i=0; i < pLeft->GetSelectedEntryCount(); ++i)
- moveColumn(pRight,pLeft,aRightColumns,pLeft->GetSelectedEntry(i),sExtraChars,nMaxNameLen,aCase);
- for(sal_Int32 j=pLeft->GetSelectedEntryCount(); j ; )
- pLeft->RemoveEntry(pLeft->GetSelectedEntry(--j));
+ auto aRows = pLeft->get_selected_rows();
+ std::sort(aRows.begin(), aRows.end());
+
+ for (auto it = aRows.begin(); it != aRows.end(); ++it)
+ moveColumn(pRight,pLeft,aRightColumns,pLeft->get_text(*it),sExtraChars,nMaxNameLen,aCase);
+
+ for (auto it = aRows.rbegin(); it != aRows.rend(); ++it)
+ pLeft->remove(*it);
enableButtons();
}
-void OWizColumnSelect::clearListBox(ListBox& _rListBox)
+void OWizColumnSelect::clearListBox(weld::TreeView& rListBox)
{
- while(_rListBox.GetEntryCount())
- _rListBox.RemoveEntry(0);
- _rListBox.Clear();
+ rListBox.clear();
}
-void OWizColumnSelect::fillColumns(ListBox const * pRight,std::vector< OUString> &_rRightColumns)
+void OWizColumnSelect::fillColumns(weld::TreeView const * pRight,std::vector< OUString> &_rRightColumns)
{
- const sal_Int32 nCount = pRight->GetEntryCount();
+ const sal_Int32 nCount = pRight->n_children();
_rRightColumns.reserve(nCount);
- for(sal_Int32 i=0; i < nCount; ++i)
- _rRightColumns.push_back(pRight->GetEntry(i));
+ for (sal_Int32 i=0; i < nCount; ++i)
+ _rRightColumns.push_back(pRight->get_text(i));
}
-void OWizColumnSelect::createNewColumn( ListBox* _pListbox,
+void OWizColumnSelect::createNewColumn( weld::TreeView* _pListbox,
OFieldDescription const * _pSrcField,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
@@ -317,25 +302,25 @@ void OWizColumnSelect::createNewColumn( ListBox* _pListbox,
if ( !m_pParent->supportsPrimaryKey() )
pNewField->SetPrimaryKey(false);
- _pListbox->SetEntryData(_pListbox->InsertEntry(sConvertedName),pNewField);
+ _pListbox->append(OUString::number(reinterpret_cast<sal_Int64>(pNewField)), sConvertedName);
_rRightColumns.push_back(sConvertedName);
if ( !bNotConvert )
m_pParent->showColumnTypeNotSupported(sConvertedName);
}
-void OWizColumnSelect::moveColumn( ListBox* _pRight,
- ListBox const * _pLeft,
+void OWizColumnSelect::moveColumn( weld::TreeView* _pRight,
+ weld::TreeView const * _pLeft,
std::vector< OUString>& _rRightColumns,
const OUString& _sColumnName,
const OUString& _sExtraChars,
sal_Int32 _nMaxNameLen,
const ::comphelper::UStringMixEqual& _aCase)
{
- if(_pRight == m_pNewColumnNames)
+ if(_pRight == m_xNewColumnNames.get())
{
// we copy the column into the new format for the dest
- OFieldDescription* pSrcField = static_cast<OFieldDescription*>(_pLeft->GetEntryData(_pLeft->GetEntryPos(_sColumnName)));
+ OFieldDescription* pSrcField = reinterpret_cast<OFieldDescription*>(_pLeft->get_id(_pLeft->find_text(_sColumnName)).toInt64());
createNewColumn(_pRight,pSrcField,_rRightColumns,_sColumnName,_sExtraChars,_nMaxNameLen,_aCase);
}
else
@@ -359,8 +344,10 @@ void OWizColumnSelect::moveColumn( ListBox* _pRight,
OSL_ENSURE( aPos != rSrcVector.end(),"Invalid position for the iterator here!");
ODatabaseExport::TColumnVector::size_type nPos = (aPos - rSrcVector.begin()) - adjustColumnPosition(_pLeft, _sColumnName, (aPos - rSrcVector.begin()), _aCase);
- _pRight->SetEntryData( _pRight->InsertEntry( (*aIter).first, sal::static_int_cast< sal_uInt16 >(nPos)),aSrcIter->second );
- _rRightColumns.push_back((*aIter).first);
+ OUString sId(OUString::number(reinterpret_cast<sal_Int64>(aSrcIter->second)));
+ const OUString& rStr = (*aIter).first;
+ _pRight->insert(nullptr, nPos, &rStr, &sId, nullptr, nullptr, nullptr, false, nullptr);
+ _rRightColumns.push_back(rStr);
m_pParent->removeColumnNameFromNameMap(_sColumnName);
}
}
@@ -370,23 +357,23 @@ void OWizColumnSelect::moveColumn( ListBox* _pRight,
// not enough. We need to take into account what fields have
// been removed earlier and adjust accordingly. Based on the
// algorithm employed in moveColumn().
-sal_Int32 OWizColumnSelect::adjustColumnPosition( ListBox const * _pLeft,
- const OUString& _sColumnName,
- ODatabaseExport::TColumnVector::size_type nCurrentPos,
- const ::comphelper::UStringMixEqual& _aCase)
+sal_Int32 OWizColumnSelect::adjustColumnPosition(weld::TreeView const * _pLeft,
+ const OUString& _sColumnName,
+ ODatabaseExport::TColumnVector::size_type nCurrentPos,
+ const ::comphelper::UStringMixEqual& _aCase)
{
sal_Int32 nAdjustedPos = 0;
// if returning all entries to their original position,
// then there is no need to adjust the positions.
- if (m_pColumns_LH->HasFocus())
+ if (m_xColumns_LH->has_focus())
return nAdjustedPos;
- const sal_Int32 nCount = _pLeft->GetEntryCount();
+ const sal_Int32 nCount = _pLeft->n_children();
OUString sColumnString;
for(sal_Int32 i=0; i < nCount; ++i)
{
- sColumnString = _pLeft->GetEntry(i);
+ sColumnString = _pLeft->get_text(i);
if(_sColumnName != sColumnString)
{
// find the new column in the dest name mapping to obtain the old column
@@ -417,11 +404,11 @@ sal_Int32 OWizColumnSelect::adjustColumnPosition( ListBox const * _pLeft,
void OWizColumnSelect::enableButtons()
{
- bool bEntries = m_pNewColumnNames->GetEntryCount() != 0;
- if(!bEntries)
+ bool bEntries = m_xNewColumnNames->n_children() != 0;
+ if (!bEntries)
m_pParent->m_mNameMapping.clear();
- m_pParent->GetOKButton().Enable(bEntries);
+ m_pParent->GetOKButton().set_sensitive(bEntries);
m_pParent->EnableNextButton(bEntries && m_pParent->getOperation() != CopyTableOperation::AppendData);
}
diff --git a/dbaccess/source/ui/misc/WCopyTable.cxx b/dbaccess/source/ui/misc/WCopyTable.cxx
index 46f563d62959..d5bb45130773 100644
--- a/dbaccess/source/ui/misc/WCopyTable.cxx
+++ b/dbaccess/source/ui/misc/WCopyTable.cxx
@@ -57,7 +57,6 @@
#include <sal/log.hxx>
#include <tools/debug.hxx>
#include <tools/diagnose_ex.h>
-#include <vcl/waitobj.hxx>
#include <functional>
@@ -487,25 +486,25 @@ namespace
}
// OCopyTableWizard
-OCopyTableWizard::OCopyTableWizard( vcl::Window * pParent, const OUString& _rDefaultName, sal_Int16 _nOperation,
+OCopyTableWizard::OCopyTableWizard(weld::Window* pParent, const OUString& _rDefaultName, sal_Int16 _nOperation,
const ICopyTableSourceObject& _rSourceObject, const Reference< XConnection >& _xSourceConnection,
const Reference< XConnection >& _xConnection, const Reference< XComponentContext >& _rxContext,
- const Reference< XInteractionHandler>& _xInteractionHandler)
- : WizardDialog( pParent, "RTFCopyTable", "dbaccess/ui/rtfcopytabledialog.ui")
- ,m_mNameMapping(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
- ,m_xDestConnection( _xConnection )
- ,m_rSourceObject( _rSourceObject )
- ,m_xFormatter( getNumberFormatter( _xConnection, _rxContext ) )
- ,m_xContext(_rxContext)
- ,m_xInteractionHandler(_xInteractionHandler)
- ,m_sTypeNames(DBA_RES(STR_TABLEDESIGN_DBFIELDTYPES))
- ,m_nPageCount(0)
- ,m_bDeleteSourceColumns(true)
- ,m_bInterConnectionCopy( _xSourceConnection != _xConnection )
- ,m_sName( _rDefaultName )
- ,m_nOperation( _nOperation )
- ,m_ePressed( WIZARD_NONE )
- ,m_bCreatePrimaryKeyColumn(false)
+ const Reference< XInteractionHandler>& _xInteractionHandler)
+ : vcl::RoadmapWizardMachine(pParent)
+ , m_mNameMapping(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
+ , m_xDestConnection( _xConnection )
+ , m_rSourceObject( _rSourceObject )
+ , m_xFormatter( getNumberFormatter( _xConnection, _rxContext ) )
+ , m_xContext(_rxContext)
+ , m_xInteractionHandler(_xInteractionHandler)
+ , m_sTypeNames(DBA_RES(STR_TABLEDESIGN_DBFIELDTYPES))
+ , m_nPageCount(0)
+ , m_bDeleteSourceColumns(true)
+ , m_bInterConnectionCopy( _xSourceConnection != _xConnection )
+ , m_sName( _rDefaultName )
+ , m_nOperation( _nOperation )
+ , m_ePressed( WIZARD_NONE )
+ , m_bCreatePrimaryKeyColumn(false)
{
construct();
@@ -566,38 +565,47 @@ OCopyTableWizard::OCopyTableWizard( vcl::Window * pParent, const OUString& _rDef
m_sName = ::dbtools::composeTableName(m_xDestConnection->getMetaData(),sCatalog,sSchema,sTable,false,::dbtools::EComposeRule::InTableDefinitions);
}
- VclPtrInstance<OCopyTable> pPage1( this );
+ VclPtrInstance<OCopyTable> pPage1(this, CreatePageContainer());
pPage1->disallowUseHeaderLine();
if ( !bAllowViews )
pPage1->disallowViews();
pPage1->setCreateStyleAction();
AddWizardPage(pPage1);
- AddWizardPage( VclPtr<OWizNameMatching>::Create( this ) );
- AddWizardPage( VclPtr<OWizColumnSelect>::Create( this ) );
- AddWizardPage( VclPtr<OWizNormalExtend>::Create( this ) );
+ AddWizardPage( VclPtr<OWizNameMatching>::Create(this, CreatePageContainer() ) );
+ AddWizardPage( VclPtr<OWizColumnSelect>::Create(this, CreatePageContainer() ) );
+ AddWizardPage( VclPtr<OWizNormalExtend>::Create(this, CreatePageContainer() ) );
ActivatePage();
+
+ m_xAssistant->set_current_page(0);
}
-OCopyTableWizard::OCopyTableWizard( vcl::Window* pParent, const OUString& _rDefaultName, sal_Int16 _nOperation,
+TabPageParent OCopyTableWizard::CreatePageContainer()
+{
+ OString sIdent(OString::number(m_nPageCount));
+ weld::Container* pPageContainer = m_xAssistant->append_page(sIdent);
+ return TabPageParent(pPageContainer, this);
+}
+
+OCopyTableWizard::OCopyTableWizard( weld::Window* pParent, const OUString& _rDefaultName, sal_Int16 _nOperation,
const ODatabaseExport::TColumns& _rSourceColumns, const ODatabaseExport::TColumnVector& _rSourceColVec,
const Reference< XConnection >& _xConnection, const Reference< XNumberFormatter >& _xFormatter,
TypeSelectionPageFactory _pTypeSelectionPageFactory, SvStream& _rTypeSelectionPageArg, const Reference< XComponentContext >& _rxContext )
- :WizardDialog( pParent, "RTFCopyTable", "dbaccess/ui/rtfcopytabledialog.ui")
- ,m_vSourceColumns(_rSourceColumns)
- ,m_mNameMapping(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
- ,m_xDestConnection( _xConnection )
- ,m_rSourceObject( DummyCopySource::Instance() )
- ,m_xFormatter(_xFormatter)
- ,m_xContext(_rxContext)
- ,m_sTypeNames(DBA_RES(STR_TABLEDESIGN_DBFIELDTYPES))
- ,m_nPageCount(0)
- ,m_bDeleteSourceColumns(false)
- ,m_bInterConnectionCopy( false )
- ,m_sName(_rDefaultName)
- ,m_nOperation( _nOperation )
- ,m_ePressed( WIZARD_NONE )
- ,m_bCreatePrimaryKeyColumn(false)
+ : vcl::RoadmapWizardMachine(pParent)
+ , m_vSourceColumns(_rSourceColumns)
+ , m_mNameMapping(_xConnection->getMetaData().is() && _xConnection->getMetaData()->supportsMixedCaseQuotedIdentifiers())
+ , m_xDestConnection( _xConnection )
+ , m_rSourceObject( DummyCopySource::Instance() )
+ , m_xFormatter(_xFormatter)
+ , m_xContext(_rxContext)
+ , m_sTypeNames(DBA_RES(STR_TABLEDESIGN_DBFIELDTYPES))
+ , m_nPageCount(0)
+ , m_bDeleteSourceColumns(false)
+ , m_bInterConnectionCopy( false )
+ , m_sName(_rDefaultName)
+ , m_nOperation( _nOperation )
+ , m_ePressed( WIZARD_NONE )
+ , m_bCreatePrimaryKeyColumn(false)
{
construct();
for (auto const& sourceCol : _rSourceColVec)
@@ -610,65 +618,45 @@ OCopyTableWizard::OCopyTableWizard( vcl::Window* pParent, const OUString& _rDefa
m_xInteractionHandler = InteractionHandler::createWithParent(m_xContext, nullptr);
- VclPtrInstance<OCopyTable> pPage1( this );
+ VclPtrInstance<OCopyTable> pPage1( this, CreatePageContainer() );
pPage1->disallowViews();
pPage1->setCreateStyleAction();
AddWizardPage( pPage1 );
- AddWizardPage( VclPtr<OWizNameMatching>::Create( this ) );
- AddWizardPage( VclPtr<OWizColumnSelect>::Create( this ) );
- AddWizardPage( (*_pTypeSelectionPageFactory)( this, _rTypeSelectionPageArg ) );
+ AddWizardPage( VclPtr<OWizNameMatching>::Create( this, CreatePageContainer() ) );
+ AddWizardPage( VclPtr<OWizColumnSelect>::Create( this, CreatePageContainer() ) );
+ AddWizardPage( (*_pTypeSelectionPageFactory)( this, CreatePageContainer(), _rTypeSelectionPageArg ) );
ActivatePage();
+
+ m_xAssistant->set_current_page(0);
}
void OCopyTableWizard::construct()
{
- SetSizePixel(Size(700, 350));
-
- m_pbHelp = VclPtr<HelpButton>::Create(this, WB_TABSTOP);
- AddButton(m_pbHelp);
- m_pbCancel = VclPtr<CancelButton>::Create(this, WB_TABSTOP);
- AddButton(m_pbCancel);
- m_pbPrev = VclPtr<PushButton>::Create(this, WB_TABSTOP);
- AddButton(m_pbPrev);
- m_pbNext = VclPtr<PushButton>::Create(this, WB_TABSTOP);
- AddButton(m_pbNext);
- m_pbFinish = VclPtr<PushButton>::Create(this, WB_TABSTOP);
- AddButton(m_pbFinish);
-
- m_pbHelp->SetSizePixel( LogicToPixel(Size(50, 14), MapMode(MapUnit::MapAppFont)) );
- m_pbCancel->SetSizePixel( LogicToPixel(Size(50, 14), MapMode(MapUnit::MapAppFont)) );
- m_pbPrev->SetSizePixel( LogicToPixel(Size(50, 14), MapMode(MapUnit::MapAppFont)) );
- m_pbNext->SetSizePixel( LogicToPixel(Size(50, 14), MapMode(MapUnit::MapAppFont)) );
- m_pbFinish->SetSizePixel( LogicToPixel(Size(50, 14), MapMode(MapUnit::MapAppFont)) );
-
- m_pbPrev->SetText(DBA_RES(STR_WIZ_PB_PREV));
- m_pbNext->SetText(DBA_RES(STR_WIZ_PB_NEXT));
- m_pbFinish->SetText(DBA_RES(STR_WIZ_PB_OK));
-
- m_pbHelp->Show();
- m_pbCancel->Show();
- m_pbPrev->Show();
- m_pbNext->Show();
- m_pbFinish->Show();
+ m_xAssistant->set_size_request(700, 350);
- m_pbPrev->SetClickHdl( LINK( this, OCopyTableWizard, ImplPrevHdl ) );
- m_pbNext->SetClickHdl( LINK( this, OCopyTableWizard, ImplNextHdl ) );
- m_pbFinish->SetClickHdl( LINK( this, OCopyTableWizard, ImplOKHdl ) );
+ m_xPrevPage->set_label(DBA_RES(STR_WIZ_PB_PREV));
+ m_xNextPage->set_label(DBA_RES(STR_WIZ_PB_NEXT));
+ m_xFinish->set_label(DBA_RES(STR_WIZ_PB_OK));
- SetActivatePageHdl( LINK( this, OCopyTableWizard, ImplActivateHdl ) );
+ m_xHelp->show();
+ m_xCancel->show();
+ m_xPrevPage->show();
+ m_xNextPage->show();
+ m_xFinish->show();
- SetPrevButton( m_pbPrev );
- SetNextButton( m_pbNext );
+ m_xPrevPage->connect_clicked( LINK( this, OCopyTableWizard, ImplPrevHdl ) );
+ m_xNextPage->connect_clicked( LINK( this, OCopyTableWizard, ImplNextHdl ) );
+ m_xFinish->connect_clicked( LINK( this, OCopyTableWizard, ImplOKHdl ) );
- m_pbNext->GrabFocus();
+ m_xNextPage->grab_focus();
if (!m_vDestColumns.empty())
// source is a html or rtf table
- m_pbNext->SetStyle(m_pbFinish->GetStyle() | WB_DEFBUTTON);
+ m_xNextPage->set_has_default(true);
else
- m_pbFinish->SetStyle(m_pbFinish->GetStyle() | WB_DEFBUTTON);
+ m_xFinish->set_has_default(true);
m_pTypeInfo = std::make_shared<OTypeInfo>();
m_pTypeInfo->aUIName = m_sTypeNames.getToken(TYPE_OTHER, ';');
@@ -677,20 +665,6 @@ void OCopyTableWizard::construct()
OCopyTableWizard::~OCopyTableWizard()
{
- disposeOnce();
-}
-
-void OCopyTableWizard::dispose()
-{
- for ( ;; )
- {
- VclPtr<TabPage> pPage = GetPage(0);
- if ( pPage == nullptr )
- break;
- RemovePage( pPage );
- pPage.disposeAndClear();
- }
-
if ( m_bDeleteSourceColumns )
clearColumns(m_vSourceColumns,m_vSourceVec);
@@ -700,16 +674,9 @@ void OCopyTableWizard::dispose()
m_aTypeInfoIndex.clear();
m_aTypeInfo.clear();
m_aDestTypeInfoIndex.clear();
-
- m_pbHelp.disposeAndClear();
- m_pbCancel.disposeAndClear();
- m_pbPrev.disposeAndClear();
- m_pbNext.disposeAndClear();
- m_pbFinish.disposeAndClear();
- WizardDialog::dispose();
}
-IMPL_LINK_NOARG(OCopyTableWizard, ImplPrevHdl, Button*, void)
+IMPL_LINK_NOARG(OCopyTableWizard, ImplPrevHdl, weld::Button&, void)
{
m_ePressed = WIZARD_PREV;
if ( GetCurLevel() )
@@ -726,7 +693,7 @@ IMPL_LINK_NOARG(OCopyTableWizard, ImplPrevHdl, Button*, void)
}
}
-IMPL_LINK_NOARG(OCopyTableWizard, ImplNextHdl, Button*, void)
+IMPL_LINK_NOARG(OCopyTableWizard, ImplNextHdl, weld::Button&, void)
{
m_ePressed = WIZARD_NEXT;
if ( GetCurLevel() < MAX_PAGES )
@@ -831,14 +798,14 @@ bool OCopyTableWizard::CheckColumns(sal_Int32& _rnBreakPos)
return bRet;
}
-IMPL_LINK_NOARG(OCopyTableWizard, ImplOKHdl, Button*, void)
+IMPL_LINK_NOARG(OCopyTableWizard, ImplOKHdl, weld::Button&, void)
{
m_ePressed = WIZARD_FINISH;
bool bFinish = DeactivatePage();
if(bFinish)
{
- WaitObject aWait(this);
+ weld::WaitObject aWait(m_xAssistant.get());
switch(getOperation())
{
case CopyTableOperation::CopyDefinitionAndData:
@@ -917,11 +884,10 @@ IMPL_LINK_NOARG(OCopyTableWizard, ImplOKHdl, Button*, void)
}
}
- EndDialog(RET_OK);
+ m_xAssistant->response(RET_OK);
}
}
-
void OCopyTableWizard::setCreatePrimaryKey( bool _bDoCreate, const OUString& _rSuggestedName )
{
m_bCreatePrimaryKeyColumn = _bDoCreate;
@@ -934,10 +900,10 @@ void OCopyTableWizard::setCreatePrimaryKey( bool _bDoCreate, const OUString& _rS
pSettingsPage->setCreatePrimaryKey( _bDoCreate, _rSuggestedName );
}
-IMPL_LINK_NOARG(OCopyTableWizard, ImplActivateHdl, WizardDialog*, void)
+void OCopyTableWizard::ActivatePage()
{
OWizardPage* pCurrent = static_cast<OWizardPage*>(GetPage(GetCurLevel()));
- if(pCurrent)
+ if (pCurrent)
{
bool bFirstTime = pCurrent->IsFirstTime();
if(bFirstTime)
@@ -945,9 +911,7 @@ IMPL_LINK_NOARG(OCopyTableWizard, ImplActivateHdl, WizardDialog*, void)
CheckButtons();
- SetText(pCurrent->GetTitle());
-
- Invalidate();
+ m_xAssistant->set_title(pCurrent->GetTitle());
}
}
@@ -956,27 +920,27 @@ void OCopyTableWizard::CheckButtons()
if(GetCurLevel() == 0) // the first page has no back button
{
if(m_nPageCount > 1)
- m_pbNext->Enable();
+ m_xNextPage->set_sensitive(true);
else
- m_pbNext->Enable(false);
+ m_xNextPage->set_sensitive(false);
- m_pbPrev->Enable(false);
+ m_xPrevPage->set_sensitive(false);
}
else if(GetCurLevel() == m_nPageCount-1) // the last page has no next button
{
- m_pbNext->Enable(false);
- m_pbPrev->Enable();
+ m_xNextPage->set_sensitive(false);
+ m_xPrevPage->set_sensitive(true);
}
else
{
- m_pbPrev->Enable();
+ m_xPrevPage->set_sensitive(true);
// next already has its state
}
}
void OCopyTableWizard::EnableNextButton(bool bEnable)
{
- m_pbNext->Enable(bEnable);
+ m_xNextPage->set_sensitive(bEnable);
}
bool OCopyTableWizard::DeactivatePage()
@@ -1256,7 +1220,7 @@ Reference< XPropertySet > OCopyTableWizard::createTable()
{
xSuppDestinationColumns.set( xTable, UNO_QUERY_THROW );
// insert new table name into table filter
- ::dbaui::appendToFilter(m_xDestConnection, m_sName, GetComponentContext(), GetFrameWeld());
+ ::dbaui::appendToFilter(m_xDestConnection, m_sName, GetComponentContext(), m_xAssistant.get());
// copy ui settings
m_rSourceObject.copyUISettingsTo( xTable );
diff --git a/dbaccess/source/ui/misc/WExtendPages.cxx b/dbaccess/source/ui/misc/WExtendPages.cxx
index 6d43919be87f..f34661cabd7d 100644
--- a/dbaccess/source/ui/misc/WExtendPages.cxx
+++ b/dbaccess/source/ui/misc/WExtendPages.cxx
@@ -22,9 +22,11 @@
#include <HtmlReader.hxx>
#include <WCopyTable.hxx>
-using namespace dbaui;
using namespace com::sun::star;
+namespace dbaui
+{
+
void OWizHTMLExtend::createReaderAndCallParser(sal_Int32 _nRows)
{
tools::SvRef<OHTMLReader> xParser = new OHTMLReader(*m_pParserStream,
@@ -51,13 +53,10 @@ void OWizRTFExtend::createReaderAndCallParser(sal_Int32 _nRows)
xParser->CallParser();
}
-OWizNormalExtend::OWizNormalExtend(vcl::Window* pParent) : OWizTypeSelect( pParent )
+void OWizNormalExtend::createReaderAndCallParser(sal_Int32 /*_nRows*/)
{
- EnableAuto(false);
}
-void OWizNormalExtend::createReaderAndCallParser(sal_Int32 /*_nRows*/)
-{
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/misc/WNameMatch.cxx b/dbaccess/source/ui/misc/WNameMatch.cxx
index 8fd6226b43ed..258394be15c0 100644
--- a/dbaccess/source/ui/misc/WNameMatch.cxx
+++ b/dbaccess/source/ui/misc/WNameMatch.cxx
@@ -33,105 +33,74 @@
using namespace ::dbaui;
// OWizColumnSelect
-OWizNameMatching::OWizNameMatching(vcl::Window* pParent)
- : OWizardPage(pParent, "NameMatching", "dbaccess/ui/namematchingpage.ui")
+OWizNameMatching::OWizNameMatching(OCopyTableWizard* pWizard, TabPageParent pParent)
+ : OWizardPage(pWizard, pParent, "dbaccess/ui/namematchingpage.ui", "NameMatching")
+ , m_xTABLE_LEFT(m_xBuilder->weld_label("leftlabel"))
+ , m_xTABLE_RIGHT(m_xBuilder->weld_label("rightlabel"))
+ , m_xCTRL_LEFT(m_xBuilder->weld_tree_view("left"))
+ , m_xCTRL_RIGHT(m_xBuilder->weld_tree_view("right"))
+ , m_xColumn_up(m_xBuilder->weld_button("up"))
+ , m_xColumn_down(m_xBuilder->weld_button("down"))
+ , m_xColumn_up_right(m_xBuilder->weld_button("up_right"))
+ , m_xColumn_down_right(m_xBuilder->weld_button("down_right"))
+ , m_xAll(m_xBuilder->weld_button("all"))
+ , m_xNone(m_xBuilder->weld_button("none"))
{
- Image aImgUp(StockImage::Yes, BMP_UP);
- Image aImgDown(StockImage::Yes, BMP_DOWN);
- get(m_pTABLE_LEFT, "leftlabel");
- get(m_pTABLE_RIGHT, "rightlabel");
- get(m_pCTRL_LEFT, "left");
- get(m_pCTRL_RIGHT, "right");
- get(m_pColumn_up, "up");
- m_pColumn_up->SetModeImage(aImgUp);
- get(m_pColumn_down, "down");
- m_pColumn_down->SetModeImage(aImgDown);
- get(m_pColumn_up_right, "up_right");
- m_pColumn_up_right->SetModeImage(aImgUp);
- get(m_pColumn_down_right, "down_right");
- m_pColumn_down_right->SetModeImage(aImgDown);
- get(m_pAll, "all");
- get(m_pNone, "none");
-
- m_pColumn_up->SetClickHdl(LINK(this,OWizNameMatching,ButtonClickHdl));
- m_pColumn_down->SetClickHdl(LINK(this,OWizNameMatching,ButtonClickHdl));
-
- m_pColumn_up_right->SetClickHdl(LINK(this,OWizNameMatching,RightButtonClickHdl));
- m_pColumn_down_right->SetClickHdl(LINK(this,OWizNameMatching,RightButtonClickHdl));
-
- m_pAll->SetClickHdl(LINK(this,OWizNameMatching,AllNoneClickHdl));
- m_pNone->SetClickHdl(LINK(this,OWizNameMatching,AllNoneClickHdl));
-
- m_pCTRL_LEFT->SetSelectHdl(LINK(this,OWizNameMatching,TableListClickHdl));
- m_pCTRL_RIGHT->SetSelectHdl(LINK(this,OWizNameMatching,TableListRightSelectHdl));
- m_pCTRL_RIGHT->EnableCheckButton( nullptr );
-
- m_pCTRL_LEFT->SetForceMakeVisible( true );
- m_pCTRL_RIGHT->SetForceMakeVisible( true );
-
- m_sSourceText = m_pTABLE_LEFT->GetText() + "\n";
- m_sDestText = m_pTABLE_RIGHT->GetText() + "\n";
-}
+ OUString aImgUp(BMP_UP);
+ OUString aImgDown(BMP_DOWN);
+ m_xColumn_up->set_from_icon_name(aImgUp);
+ m_xColumn_down->set_from_icon_name(aImgDown);
+ m_xColumn_up_right->set_from_icon_name(aImgUp);
+ m_xColumn_down_right->set_from_icon_name(aImgDown);
-OWizNameMatching::~OWizNameMatching()
-{
- disposeOnce();
+ m_xColumn_up->connect_clicked(LINK(this,OWizNameMatching,ButtonClickHdl));
+ m_xColumn_down->connect_clicked(LINK(this,OWizNameMatching,ButtonClickHdl));
+
+ m_xColumn_up_right->connect_clicked(LINK(this,OWizNameMatching,RightButtonClickHdl));
+ m_xColumn_down_right->connect_clicked(LINK(this,OWizNameMatching,RightButtonClickHdl));
+
+ m_xAll->connect_clicked(LINK(this,OWizNameMatching,AllNoneClickHdl));
+ m_xNone->connect_clicked(LINK(this,OWizNameMatching,AllNoneClickHdl));
+
+ m_xCTRL_LEFT->connect_changed(LINK(this,OWizNameMatching,TableListClickHdl));
+ m_xCTRL_RIGHT->connect_changed(LINK(this,OWizNameMatching,TableListRightSelectHdl));
+
+ m_sSourceText = m_xTABLE_LEFT->get_label() + "\n";
+ m_sDestText = m_xTABLE_RIGHT->get_label() + "\n";
}
-void OWizNameMatching::dispose()
+OWizNameMatching::~OWizNameMatching()
{
- m_pTABLE_LEFT.clear();
- m_pTABLE_RIGHT.clear();
- m_pCTRL_LEFT.clear();
- m_pCTRL_RIGHT.clear();
- m_pColumn_up.clear();
- m_pColumn_down.clear();
- m_pColumn_up_right.clear();
- m_pColumn_down_right.clear();
- m_pAll.clear();
- m_pNone.clear();
- OWizardPage::dispose();
}
void OWizNameMatching::Reset()
{
- // restore original state;
- // the left tree contains bitmaps so i need to resize the right one
- if(m_bFirstTime)
- {
- m_pCTRL_RIGHT->SetReadOnly(); // sets autoinc to readonly
- m_pCTRL_RIGHT->SetEntryHeight(m_pCTRL_LEFT->GetEntryHeight());
- m_pCTRL_RIGHT->SetIndent(m_pCTRL_LEFT->GetIndent());
- m_pCTRL_RIGHT->SetSpaceBetweenEntries(m_pCTRL_LEFT->GetSpaceBetweenEntries());
-
- m_bFirstTime = false;
- }
-
+ m_bFirstTime = false;
}
void OWizNameMatching::ActivatePage( )
{
-
// set source table name
OUString aName = m_sSourceText + m_pParent->m_sSourceName;
- m_pTABLE_LEFT->SetText(aName);
+ m_xTABLE_LEFT->set_label(aName);
// set dest table name
aName = m_sDestText + m_pParent->m_sName;
- m_pTABLE_RIGHT->SetText(aName);
+ m_xTABLE_RIGHT->set_label(aName);
- m_pCTRL_LEFT->FillListBox(m_pParent->getSrcVector());
- m_pCTRL_RIGHT->FillListBox(m_pParent->getDestVector());
+ FillListBox(*m_xCTRL_LEFT, m_pParent->getSrcVector(), true);
+ FillListBox(*m_xCTRL_RIGHT, m_pParent->getDestVector(), false);
- m_pColumn_up->Enable( m_pCTRL_LEFT->GetEntryCount() > 1 );
- m_pColumn_down->Enable( m_pCTRL_LEFT->GetEntryCount() > 1 );
+ m_xColumn_up->set_sensitive( m_xCTRL_LEFT->n_children() > 1 );
+ m_xColumn_down->set_sensitive( m_xCTRL_LEFT->n_children() > 1 );
- m_pColumn_up_right->Enable( m_pCTRL_RIGHT->GetEntryCount() > 1 );
- m_pColumn_down_right->Enable( m_pCTRL_RIGHT->GetEntryCount() > 1 );
+ m_xColumn_up_right->set_sensitive( m_xCTRL_RIGHT->n_children() > 1 );
+ m_xColumn_down_right->set_sensitive( m_xCTRL_RIGHT->n_children() > 1 );
m_pParent->EnableNextButton(false);
- m_pCTRL_LEFT->GrabFocus();
+ m_xCTRL_LEFT->grab_focus();
+ TableListClickHdl(*m_xCTRL_LEFT);
}
bool OWizNameMatching::LeavePage()
@@ -144,12 +113,15 @@ bool OWizNameMatching::LeavePage()
m_pParent->m_vColumnPositions.resize( rSrcColumns.size(), ODatabaseExport::TPositions::value_type( COLUMN_POSITION_NOT_FOUND, COLUMN_POSITION_NOT_FOUND ) );
m_pParent->m_vColumnTypes.resize( rSrcColumns.size(), COLUMN_POSITION_NOT_FOUND );
+ std::unique_ptr<weld::TreeIter> xLeftEntry = m_xCTRL_LEFT->make_iterator();
+ std::unique_ptr<weld::TreeIter> xRightEntry = m_xCTRL_RIGHT->make_iterator();
+
sal_Int32 nParamPos = 0;
- SvTreeListEntry* pLeftEntry = m_pCTRL_LEFT->GetModel()->First();
- SvTreeListEntry* pRightEntry = m_pCTRL_RIGHT->GetModel()->First();
- while(pLeftEntry && pRightEntry)
+ bool bLeftEntry = m_xCTRL_LEFT->get_iter_first(*xLeftEntry);
+ bool bRightEntry = m_xCTRL_RIGHT->get_iter_first(*xRightEntry);
+ while (bLeftEntry && bRightEntry)
{
- OFieldDescription* pSrcField = static_cast<OFieldDescription*>(pLeftEntry->GetUserData());
+ OFieldDescription* pSrcField = reinterpret_cast<OFieldDescription*>(m_xCTRL_LEFT->get_id(*xLeftEntry).toInt64());
OSL_ENSURE(pSrcField,"OWizNameMatching: OColumn can not be null!");
sal_Int32 nPos = 0;
@@ -160,9 +132,9 @@ bool OWizNameMatching::LeavePage()
++nPos;
}
- if(m_pCTRL_LEFT->GetCheckButtonState(pLeftEntry) == SvButtonState::Checked)
+ if (m_xCTRL_LEFT->get_toggle(*xLeftEntry, 0) == TRISTATE_TRUE)
{
- OFieldDescription* pDestField = static_cast<OFieldDescription*>(pRightEntry->GetUserData());
+ OFieldDescription* pDestField = reinterpret_cast<OFieldDescription*>(m_xCTRL_RIGHT->get_id(*xRightEntry).toInt64());
OSL_ENSURE(pDestField,"OWizNameMatching: OColumn can not be null!");
const ODatabaseExport::TColumnVector& rDestColumns = m_pParent->getDestVector();
sal_Int32 nPosDest = 1;
@@ -203,8 +175,8 @@ bool OWizNameMatching::LeavePage()
m_pParent->m_vColumnPositions[nPos].second = COLUMN_POSITION_NOT_FOUND;
}
- pLeftEntry = m_pCTRL_LEFT->GetModel()->Next(pLeftEntry);
- pRightEntry = m_pCTRL_RIGHT->GetModel()->Next(pRightEntry);
+ bLeftEntry = m_xCTRL_LEFT->iter_next(*xLeftEntry);
+ bRightEntry = m_xCTRL_RIGHT->iter_next(*xRightEntry);
}
return true;
@@ -212,199 +184,145 @@ bool OWizNameMatching::LeavePage()
OUString OWizNameMatching::GetTitle() const { return DBA_RES(STR_WIZ_NAME_MATCHING_TITEL); }
-IMPL_LINK( OWizNameMatching, ButtonClickHdl, Button *, pButton, void )
+IMPL_LINK(OWizNameMatching, ButtonClickHdl, weld::Button&, rButton, void)
{
- SvTreeListEntry* pEntry = m_pCTRL_LEFT->FirstSelected();
- if ( pEntry )
- {
- sal_Int32 nPos = m_pCTRL_LEFT->GetModel()->GetAbsPos(pEntry);
- if(pButton == m_pColumn_up && nPos)
- --nPos;
- else if(pButton == m_pColumn_down)
- nPos += 2;
+ int nPos = m_xCTRL_LEFT->get_selected_index();
+ if (nPos == -1)
+ return;
- m_pCTRL_LEFT->ModelIsMoving(pEntry,nullptr,nPos);
- m_pCTRL_LEFT->GetModel()->Move(pEntry,nullptr,nPos);
- m_pCTRL_LEFT->ModelHasMoved(pEntry);
+ int nOrigPos = nPos;
+ if (&rButton == m_xColumn_up.get() && nPos)
+ --nPos;
+ else if (&rButton == m_xColumn_down.get() && nPos < m_xCTRL_LEFT->n_children() - 1)
+ ++nPos;
- long nThumbPos = m_pCTRL_LEFT->GetVScroll()->GetThumbPos();
- long nVisibleSize = m_pCTRL_LEFT->GetVScroll()->GetVisibleSize();
+ m_xCTRL_LEFT->swap(nOrigPos, nPos);
- if(pButton == m_pColumn_down && (nThumbPos+nVisibleSize+1) < nPos)
- {
- m_pCTRL_LEFT->GetVScroll()->DoScrollAction(ScrollType::LineDown);
- }
+ m_xCTRL_LEFT->scroll_to_row(nPos);
- TableListClickHdl(m_pCTRL_LEFT);
- }
+ TableListClickHdl(*m_xCTRL_LEFT);
+}
+
+IMPL_LINK( OWizNameMatching, RightButtonClickHdl, weld::Button&, rButton, void )
+{
+ int nPos = m_xCTRL_RIGHT->get_selected_index();
+ if (nPos == -1)
+ return;
+
+ int nOrigPos = nPos;
+ if (&rButton == m_xColumn_up_right.get() && nPos)
+ --nPos;
+ else if (&rButton == m_xColumn_down_right.get() && nPos < m_xCTRL_RIGHT->n_children() - 1)
+ ++nPos;
+
+ m_xCTRL_RIGHT->swap(nOrigPos, nPos);
+
+ m_xCTRL_RIGHT->scroll_to_row(nPos);
+
+ TableListRightSelectHdl(*m_xCTRL_RIGHT);
}
-IMPL_LINK( OWizNameMatching, RightButtonClickHdl, Button *, pButton, void )
+namespace
{
- SvTreeListEntry* pEntry = m_pCTRL_RIGHT->FirstSelected();
- if ( pEntry )
+ int GetFirstEntryInView(weld::TreeView& rTreeView)
{
- sal_Int32 nPos = m_pCTRL_RIGHT->GetModel()->GetAbsPos(pEntry);
- if(pButton == m_pColumn_up_right && nPos)
- --nPos;
- else if(pButton == m_pColumn_down_right)
- nPos += 2;
-
- m_pCTRL_RIGHT->ModelIsMoving(pEntry,nullptr,nPos);
- m_pCTRL_RIGHT->GetModel()->Move(pEntry,nullptr,nPos);
- m_pCTRL_RIGHT->ModelHasMoved(pEntry);
- long nThumbPos = m_pCTRL_RIGHT->GetVScroll()->GetThumbPos();
- long nVisibleSize = m_pCTRL_RIGHT->GetVScroll()->GetVisibleSize();
-
- if(pButton == m_pColumn_down_right && (nThumbPos+nVisibleSize+1) < nPos)
- m_pCTRL_RIGHT->GetVScroll()->DoScrollAction(ScrollType::LineDown);
- TableListRightSelectHdl(m_pCTRL_RIGHT);
+ int nFirstEntryInView = -1;
+
+ rTreeView.visible_foreach([&nFirstEntryInView, &rTreeView](weld::TreeIter& rEntry){
+ nFirstEntryInView = rTreeView.get_iter_index_in_parent(rEntry);
+ // stop after first entry
+ return true;
+ });
+
+ return nFirstEntryInView;
}
}
-IMPL_LINK_NOARG( OWizNameMatching, TableListClickHdl, SvTreeListBox*, void )
+IMPL_LINK_NOARG(OWizNameMatching, TableListClickHdl, weld::TreeView&, void)
{
- SvTreeListEntry* pEntry = m_pCTRL_LEFT->FirstSelected();
- if(pEntry)
+ int nPos = m_xCTRL_LEFT->get_selected_index();
+ if (nPos != -1)
{
- sal_uLong nPos = m_pCTRL_LEFT->GetModel()->GetAbsPos(pEntry);
- SvTreeListEntry* pOldEntry = m_pCTRL_RIGHT->FirstSelected();
- if(pOldEntry && nPos != m_pCTRL_RIGHT->GetModel()->GetAbsPos(pOldEntry))
+ int nOldEntry = m_xCTRL_RIGHT->get_selected_index();
+ if (nOldEntry != -1 && nPos != nOldEntry)
{
- if(pOldEntry)
- m_pCTRL_RIGHT->Select(pOldEntry,false);
- pOldEntry = m_pCTRL_RIGHT->GetEntry(nPos);
- if(pOldEntry)
+ m_xCTRL_RIGHT->unselect(nOldEntry);
+ if (nPos < m_xCTRL_RIGHT->n_children())
{
- sal_uLong nNewPos = m_pCTRL_LEFT->GetModel()->GetAbsPos(m_pCTRL_LEFT->GetFirstEntryInView());
+ int nNewPos = GetFirstEntryInView(*m_xCTRL_LEFT);
if ( nNewPos - nPos == 1 )
--nNewPos;
- m_pCTRL_RIGHT->MakeVisible(m_pCTRL_RIGHT->GetEntry(nNewPos), true);
- m_pCTRL_RIGHT->Select(pOldEntry);
+ m_xCTRL_RIGHT->scroll_to_row(nNewPos);
+ m_xCTRL_RIGHT->select(nPos);
}
}
- else if(!pOldEntry)
+ else if (nOldEntry == -1)
{
- pOldEntry = m_pCTRL_RIGHT->GetEntry(nPos);
- if(pOldEntry)
- {
- m_pCTRL_RIGHT->Select(pOldEntry);
- }
+ if (nPos < m_xCTRL_RIGHT->n_children())
+ m_xCTRL_RIGHT->select(nPos);
}
}
}
-IMPL_LINK_NOARG( OWizNameMatching, TableListRightSelectHdl, SvTreeListBox*, void )
+IMPL_LINK_NOARG( OWizNameMatching, TableListRightSelectHdl, weld::TreeView&, void )
{
- SvTreeListEntry* pEntry = m_pCTRL_RIGHT->FirstSelected();
- if(pEntry)
+ int nPos = m_xCTRL_RIGHT->get_selected_index();
+ if (nPos != -1)
{
- sal_uLong nPos = m_pCTRL_RIGHT->GetModel()->GetAbsPos(pEntry);
- SvTreeListEntry* pOldEntry = m_pCTRL_LEFT->FirstSelected();
- if(pOldEntry && nPos != m_pCTRL_LEFT->GetModel()->GetAbsPos(pOldEntry))
+ OFieldDescription* pColumn = reinterpret_cast<OFieldDescription*>(m_xCTRL_RIGHT->get_id(nPos).toInt64());
+ if (pColumn->IsAutoIncrement())
{
- if(pOldEntry)
- m_pCTRL_LEFT->Select(pOldEntry,false);
- pOldEntry = m_pCTRL_LEFT->GetEntry(nPos);
- if(pOldEntry)
+ m_xCTRL_RIGHT->unselect(nPos);
+ return;
+ }
+
+ int nOldEntry = m_xCTRL_LEFT->get_selected_index();
+ if (nOldEntry != -1 && nPos != nOldEntry)
+ {
+ m_xCTRL_LEFT->unselect(nOldEntry);
+ if (nPos < m_xCTRL_LEFT->n_children())
{
- sal_uLong nNewPos = m_pCTRL_RIGHT->GetModel()->GetAbsPos(m_pCTRL_RIGHT->GetFirstEntryInView());
+ int nNewPos = GetFirstEntryInView(*m_xCTRL_RIGHT);
if ( nNewPos - nPos == 1 )
nNewPos--;
- m_pCTRL_LEFT->MakeVisible(m_pCTRL_LEFT->GetEntry(nNewPos), true);
- m_pCTRL_LEFT->Select(pOldEntry);
+ m_xCTRL_LEFT->scroll_to_row(nNewPos);
+ m_xCTRL_LEFT->select(nPos);
}
}
- else if(!pOldEntry)
+ else if (nOldEntry == -1)
{
- pOldEntry = m_pCTRL_LEFT->GetEntry(nPos);
- if(pOldEntry)
- {
- m_pCTRL_LEFT->Select(pOldEntry);
- }
+ if (nPos < m_xCTRL_LEFT->n_children())
+ m_xCTRL_LEFT->select(nPos);
}
}
}
-IMPL_LINK( OWizNameMatching, AllNoneClickHdl, Button *, pButton, void )
+IMPL_LINK(OWizNameMatching, AllNoneClickHdl, weld::Button&, rButton, void)
{
- bool bAll = pButton == m_pAll;
- SvTreeListEntry* pEntry = m_pCTRL_LEFT->First();
- while(pEntry)
- {
- m_pCTRL_LEFT->SetCheckButtonState( pEntry, bAll ? SvButtonState::Checked : SvButtonState::Unchecked);
- pEntry = m_pCTRL_LEFT->Next(pEntry);
- }
+ bool bAll = &rButton == m_xAll.get();
+ m_xCTRL_LEFT->all_foreach([this, bAll](weld::TreeIter& rEntry){
+ m_xCTRL_LEFT->set_toggle(rEntry, bAll ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ return false;
+ });
}
-// class OColumnString
-class OColumnString : public SvLBoxString
+void OWizNameMatching::FillListBox(weld::TreeView& rTreeView, const ODatabaseExport::TColumnVector& rList, bool bCheckButtons)
{
- bool m_bReadOnly;
-public:
- OColumnString( const OUString& rStr, bool RO )
- :SvLBoxString(rStr)
- ,m_bReadOnly(RO)
- {
- }
+ rTreeView.clear();
- virtual void Paint(const Point& rPos, SvTreeListBox& rDev, vcl::RenderContext& rRenderContext,
- const SvViewDataEntry* pView, const SvTreeListEntry& rEntry) override;
-};
+ int nRow(0);
-void OColumnString::Paint(const Point& rPos, SvTreeListBox& /*rDev*/, vcl::RenderContext& rRenderContext,
- const SvViewDataEntry* /*pView*/, const SvTreeListEntry& /*rEntry*/)
-{
- rRenderContext.Push(PushFlags::TEXTCOLOR | PushFlags::TEXTFILLCOLOR);
- if(m_bReadOnly)
+ for (auto const& elem : rList)
{
- const StyleSettings& rStyleSettings = rRenderContext.GetSettings().GetStyleSettings();
- rRenderContext.SetTextColor(rStyleSettings.GetDisableColor());
- rRenderContext.SetTextFillColor(rStyleSettings.GetFieldColor());
- }
- rRenderContext.DrawText(rPos, GetText());
- rRenderContext.Pop();
-}
-
-OColumnTreeBox::OColumnTreeBox( vcl::Window* pParent )
- : OMarkableTreeListBox(pParent, WB_BORDER)
- , m_bReadOnly(false)
-{
- SetDragDropMode( DragDropMode::NONE );
- EnableInplaceEditing( false );
- SetStyle(GetStyle() | WB_BORDER | WB_HASBUTTONS | WB_HSCROLL );
- SetSelectionMode( SelectionMode::Single );
-}
-
-VCL_BUILDER_FACTORY(OColumnTreeBox)
-
-void OColumnTreeBox::InitEntry(SvTreeListEntry* pEntry, const OUString& rStr, const Image& rImg1, const Image& rImg2)
-{
- DBTreeListBox::InitEntry(pEntry, rStr, rImg1, rImg2);
- pEntry->ReplaceItem(std::make_unique<OColumnString>(rStr,false), pEntry->ItemCount() - 1);
-}
-
-bool OColumnTreeBox::Select( SvTreeListEntry* pEntry, bool bSelect )
-{
- if(bSelect)
- {
- OFieldDescription* pColumn = static_cast<OFieldDescription*>(pEntry->GetUserData());
- if(!(pColumn->IsAutoIncrement() && m_bReadOnly))
- bSelect = DBTreeListBox::Select( pEntry,bSelect );
- }
- else
- bSelect = DBTreeListBox::Select( pEntry,bSelect );
- return bSelect;
-}
-
-void OColumnTreeBox::FillListBox( const ODatabaseExport::TColumnVector& _rList)
-{
- Clear();
- for (auto const& elem : _rList)
- {
- SvTreeListEntry* pEntry = InsertEntry(elem->first, nullptr, false, TREELIST_APPEND, elem->second);
- SvButtonState eState = !(m_bReadOnly && elem->second->IsAutoIncrement()) ? SvButtonState::Checked : SvButtonState::Unchecked;
- SetCheckButtonState( pEntry, eState );
+ rTreeView.append();
+ if (bCheckButtons)
+ {
+ bool bChecked = !elem->second->IsAutoIncrement();
+ rTreeView.set_toggle(nRow, bChecked ? TRISTATE_TRUE : TRISTATE_FALSE, 0);
+ }
+ rTreeView.set_text(nRow, elem->first);
+ rTreeView.set_id(nRow, OUString::number(reinterpret_cast<sal_Int64>(elem->second)));
+ ++nRow;
}
}
diff --git a/dbaccess/source/ui/misc/WTypeSelect.cxx b/dbaccess/source/ui/misc/WTypeSelect.cxx
index 29144469ad6f..06fcf50d0a46 100644
--- a/dbaccess/source/ui/misc/WTypeSelect.cxx
+++ b/dbaccess/source/ui/misc/WTypeSelect.cxx
@@ -44,10 +44,10 @@ using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdbc;
// OWizTypeSelectControl
-OWizTypeSelectControl::OWizTypeSelectControl(vcl::Window* pParent, vcl::Window* pParentTabPage)
+OWizTypeSelectControl::OWizTypeSelectControl(TabPageParent pParent, OWizTypeSelect* pParentTabPage)
: OFieldDescControl(pParent, nullptr)
+ , m_xParentTabPage(pParentTabPage)
{
- m_pParentTabPage = pParentTabPage;
}
OWizTypeSelectControl::~OWizTypeSelectControl()
@@ -57,7 +57,7 @@ OWizTypeSelectControl::~OWizTypeSelectControl()
void OWizTypeSelectControl::dispose()
{
- m_pParentTabPage.clear();
+ m_xParentTabPage.clear();
OFieldDescControl::dispose();
}
@@ -93,12 +93,12 @@ void OWizTypeSelectControl::CellModified(long nRow, sal_uInt16 nColId )
{
OSL_ENSURE(nRow == -1,"nRow must be -1!");
- MultiListBox *pListBox = static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_pColumnNames;
+ weld::TreeView* pListBox = m_xParentTabPage->m_xColumnNames->GetWidget();
OFieldDescription* pCurFieldDescr = getCurrentFieldDescData();
- const sal_Int32 nPos = pListBox->GetEntryPos( pCurFieldDescr->GetName() );
- pCurFieldDescr = static_cast< OFieldDescription* >( pListBox->GetEntryData( nPos ) );
+ const sal_Int32 nPos = pListBox->find_text(pCurFieldDescr->GetName());
+ pCurFieldDescr = reinterpret_cast< OFieldDescription* >( pListBox->get_id(nPos).toInt64() );
OSL_ENSURE( pCurFieldDescr, "OWizTypeSelectControl::CellModified: Columnname/type not found in the listbox!" );
if ( !pCurFieldDescr )
return;
@@ -108,23 +108,23 @@ void OWizTypeSelectControl::CellModified(long nRow, sal_uInt16 nColId )
OUString sNewName;
const OPropColumnEditCtrl* pColumnName = getColumnCtrl();
if ( pColumnName )
- sNewName = pColumnName->GetText();
+ sNewName = pColumnName->get_text();
switch(nColId)
{
case FIELD_PROPERTY_COLUMNNAME:
{
- OCopyTableWizard* pWiz = static_cast<OCopyTableWizard*>(GetParentDialog());
+ OCopyTableWizard* pWiz = m_xParentTabPage->m_pParent;
// first we have to check if this name already exists
bool bDoubleName = false;
bool bCase = true;
if ( getMetaData().is() && !getMetaData()->supportsMixedCaseQuotedIdentifiers() )
{
bCase = false;
- const sal_Int32 nCount = pListBox->GetEntryCount();
+ const sal_Int32 nCount = pListBox->n_children();
for (sal_Int32 i=0 ; !bDoubleName && i < nCount ; ++i)
{
- OUString sEntry(pListBox->GetEntry(i));
+ OUString sEntry(pListBox->get_text(i));
bDoubleName = sNewName.equalsIgnoreAsciiCase(sEntry);
}
if ( !bDoubleName && pWiz->shouldCreatePrimaryKey() )
@@ -132,7 +132,7 @@ void OWizTypeSelectControl::CellModified(long nRow, sal_uInt16 nColId )
}
else
- bDoubleName = ((pListBox->GetEntryPos(sNewName) != LISTBOX_ENTRY_NOTFOUND)
+ bDoubleName = ((pListBox->find_text(sNewName) != -1)
|| ( pWiz->shouldCreatePrimaryKey()
&& pWiz->getPrimaryKeyName() == sNewName) );
@@ -143,13 +143,13 @@ void OWizTypeSelectControl::CellModified(long nRow, sal_uInt16 nColId )
pWiz->showError(strMessage);
pCurFieldDescr->SetName(sName);
DisplayData(pCurFieldDescr);
- static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->setDuplicateName(true);
+ m_xParentTabPage->setDuplicateName(true);
return;
}
OUString sOldName = pCurFieldDescr->GetName();
pCurFieldDescr->SetName(sNewName);
- static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->setDuplicateName(false);
+ m_xParentTabPage->setDuplicateName(false);
// now we change the name
@@ -163,9 +163,9 @@ void OWizTypeSelectControl::CellModified(long nRow, sal_uInt16 nColId )
}
}
- pListBox->RemoveEntry(nPos);
- pListBox->InsertEntry(pCurFieldDescr->GetName(),nPos);
- pListBox->SetEntryData(nPos,pCurFieldDescr);
+ pListBox->remove(nPos);
+ pListBox->insert_text(nPos, pCurFieldDescr->GetName());
+ pListBox->set_id(nPos, OUString::number(reinterpret_cast<sal_Int64>(pCurFieldDescr)));
pWiz->replaceColumn(nPos,pCurFieldDescr,sOldName);
}
@@ -176,75 +176,74 @@ void OWizTypeSelectControl::CellModified(long nRow, sal_uInt16 nColId )
css::lang::Locale OWizTypeSelectControl::GetLocale() const
{
- return static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_pParent->GetLocale();
+ return m_xParentTabPage->m_pParent->GetLocale();
}
Reference< XNumberFormatter > OWizTypeSelectControl::GetFormatter() const
{
- return static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_pParent->GetFormatter();
+ return m_xParentTabPage->m_pParent->GetFormatter();
}
TOTypeInfoSP OWizTypeSelectControl::getTypeInfo(sal_Int32 _nPos)
{
- return static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_pParent->getDestTypeInfo(_nPos);
+ return m_xParentTabPage->m_pParent->getDestTypeInfo(_nPos);
}
const OTypeInfoMap* OWizTypeSelectControl::getTypeInfo() const
{
- return &static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_pParent->getDestTypeInfo();
+ return &m_xParentTabPage->m_pParent->getDestTypeInfo();
}
css::uno::Reference< css::sdbc::XDatabaseMetaData> OWizTypeSelectControl::getMetaData()
{
- return static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_pParent->m_xDestConnection->getMetaData();
+ return m_xParentTabPage->m_pParent->m_xDestConnection->getMetaData();
}
css::uno::Reference< css::sdbc::XConnection> OWizTypeSelectControl::getConnection()
{
- return static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_pParent->m_xDestConnection;
+ return m_xParentTabPage->m_pParent->m_xDestConnection;
}
bool OWizTypeSelectControl::isAutoIncrementValueEnabled() const
{
- return static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_bAutoIncrementEnabled;
+ return m_xParentTabPage->m_bAutoIncrementEnabled;
}
OUString OWizTypeSelectControl::getAutoIncrementValue() const
{
- return static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_sAutoIncrementValue;
+ return m_xParentTabPage->m_sAutoIncrementValue;
}
-OWizTypeSelect::OWizTypeSelect( vcl::Window* pParent, SvStream* _pStream )
- :OWizardPage( pParent, "TypeSelect", "dbaccess/ui/typeselectpage.ui")
- ,m_pTypeControl(VclPtr<OWizTypeSelectControl>::Create(get<VclVBox>("control_container"), this) )
- ,m_pParserStream( _pStream )
- ,m_nDisplayRow(0)
- ,m_bAutoIncrementEnabled(false)
- ,m_bDuplicateName(false)
+OWizTypeSelect::OWizTypeSelect(OCopyTableWizard* pWizard, TabPageParent pParent, SvStream* pStream)
+ : OWizardPage(pWizard, pParent, "dbaccess/ui/typeselectpage.ui", "TypeSelect")
+ , m_xColumnNames(new OWizTypeSelectList(m_xBuilder->weld_tree_view("columnnames")))
+ , m_xColumns(m_xBuilder->weld_label("columns"))
+ , m_xControlContainer(m_xBuilder->weld_container("control_container"))
+ , m_xTypeControl(VclPtr<OWizTypeSelectControl>::Create(TabPageParent(m_xControlContainer.get(), pWizard), this))
+ , m_xAutoType(m_xBuilder->weld_label("autotype"))
+ , m_xAutoFt(m_xBuilder->weld_label("autolabel"))
+ , m_xAutoEt(m_xBuilder->weld_spin_button("auto"))
+ , m_xAutoPb(m_xBuilder->weld_button("autobutton"))
+ , m_pParserStream(pStream)
+ , m_nDisplayRow(0)
+ , m_bAutoIncrementEnabled(false)
+ , m_bDuplicateName(false)
{
- get(m_pColumnNames, "columnnames");
- m_pColumnNames->SetParentTabPage(this);
- get(m_pColumns, "columns");
- get(m_pAutoType, "autotype");
- get(m_pAutoFt, "autolabel");
- get(m_pAutoEt, "auto");
- get(m_pAutoPb, "autobutton");
+ m_xColumnNames->SetParentTabPage(this);
- m_pColumnNames->SetSelectHdl(LINK(this,OWizTypeSelect,ColumnSelectHdl));
+ m_xColumnNames->connect_changed(LINK(this,OWizTypeSelect,ColumnSelectHdl));
- m_imgPKey = Image(StockImage::Yes, BMP_PRIMARY_KEY);
+ m_xTypeControl->Show();
+ m_xTypeControl->Init();
- m_pTypeControl->Show();
- m_pTypeControl->Init();
-
- m_pAutoEt->SetText("10");
- m_pAutoEt->SetDecimalDigits(0);
- m_pAutoPb->SetClickHdl(LINK(this,OWizTypeSelect,ButtonClickHdl));
- m_pColumnNames->EnableMultiSelection(true);
+ m_xAutoEt->set_text("10");
+ m_xAutoEt->set_digits(0);
+ m_xAutoPb->connect_clicked(LINK(this,OWizTypeSelect,ButtonClickHdl));
+ m_xColumnNames->set_selection_mode(SelectionMode::Multiple);
try
{
- m_pColumnNames->SetPKey( m_pParent->supportsPrimaryKey() );
+ m_xColumnNames->SetPKey( m_pParent->supportsPrimaryKey() );
::dbaui::fillAutoIncrementValue( m_pParent->m_xDestConnection, m_bAutoIncrementEnabled, m_sAutoIncrementValue );
}
catch(const Exception&)
@@ -260,13 +259,7 @@ OWizTypeSelect::~OWizTypeSelect()
void OWizTypeSelect::dispose()
{
- m_pTypeControl.disposeAndClear();
- m_pColumnNames.clear();
- m_pColumns.clear();
- m_pAutoType.clear();
- m_pAutoFt.clear();
- m_pAutoEt.clear();
- m_pAutoPb.clear();
+ m_xTypeControl.disposeAndClear();
OWizardPage::dispose();
}
@@ -275,34 +268,30 @@ OUString OWizTypeSelect::GetTitle() const
return DBA_RES(STR_WIZ_TYPE_SELECT_TITEL);
}
-IMPL_LINK_NOARG( OWizTypeSelect, ColumnSelectHdl, ListBox&, void )
+IMPL_LINK_NOARG(OWizTypeSelect, ColumnSelectHdl, weld::TreeView&, void)
{
- OUString aColumnName( m_pColumnNames->GetSelectedEntry() );
-
- OFieldDescription* pField = static_cast<OFieldDescription*>(m_pColumnNames->GetEntryData(m_pColumnNames->GetEntryPos(aColumnName)));
- if(pField)
- m_pTypeControl->DisplayData(pField);
+ OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xColumnNames->get_selected_id().toInt64());
+ if (pField)
+ m_xTypeControl->DisplayData(pField);
- m_pTypeControl->Enable(m_pColumnNames->GetSelectedEntryCount() == 1 );
+ m_xTypeControl->Enable(m_xColumnNames->count_selected_rows() == 1);
}
void OWizTypeSelect::Reset()
{
// restore original state
-
- while(m_pColumnNames->GetEntryCount())
- m_pColumnNames->RemoveEntry(0);
- m_pColumnNames->Clear();
- sal_Int32 nBreakPos;
+ m_xColumnNames->clear();
+ sal_Int32 nCount(0), nBreakPos;
m_pParent->CheckColumns(nBreakPos);
const ODatabaseExport::TColumnVector& rDestColumns = m_pParent->getDestVector();
for (auto const& column : rDestColumns)
{
- const sal_Int32 nPos = column->second->IsPrimaryKey()
- ? m_pColumnNames->InsertEntry(column->first, m_imgPKey )
- : m_pColumnNames->InsertEntry(column->first);
- m_pColumnNames->SetEntryData(nPos,column->second);
+ OUString sId(OUString::number(reinterpret_cast<sal_Int64>(column->second)));
+ m_xColumnNames->append(sId, column->first);
+ if (column->second->IsPrimaryKey())
+ m_xColumnNames->set_image(nCount, BMP_PRIMARY_KEY);
+ ++nCount;
}
m_bFirstTime = false;
}
@@ -313,20 +302,18 @@ void OWizTypeSelect::ActivatePage( )
Reset();
m_bFirstTime = bOldFirstTime;
- m_pColumnNames->SelectEntryPos(static_cast<sal_uInt16>(m_nDisplayRow));
+ m_xColumnNames->select(m_nDisplayRow);
m_nDisplayRow = 0;
- m_pColumnNames->GetSelectHdl().Call(*m_pColumnNames);
+ ColumnSelectHdl(*m_xColumnNames->GetWidget());
}
bool OWizTypeSelect::LeavePage()
{
- OUString aColumnName( m_pColumnNames->GetSelectedEntry() );
-
bool bDuplicateName = false;
- OFieldDescription* pField = static_cast<OFieldDescription*>(m_pColumnNames->GetEntryData(m_pColumnNames->GetEntryPos(aColumnName)));
+ OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xColumnNames->get_selected_id().toInt64());
if ( pField )
{
- m_pTypeControl->SaveData(pField);
+ m_xTypeControl->SaveData(pField);
bDuplicateName = m_bDuplicateName;
}
return !bDuplicateName;
@@ -334,19 +321,19 @@ bool OWizTypeSelect::LeavePage()
void OWizTypeSelect::EnableAuto(bool bEnable)
{
- m_pAutoFt->Show(bEnable);
- m_pAutoEt->Show(bEnable);
- m_pAutoPb->Show(bEnable);
- m_pAutoType->Show(bEnable);
+ m_xAutoFt->set_visible(bEnable);
+ m_xAutoEt->set_visible(bEnable);
+ m_xAutoPb->set_visible(bEnable);
+ m_xAutoType->set_visible(bEnable);
}
-IMPL_LINK_NOARG( OWizTypeSelect, ButtonClickHdl, Button *, void )
+IMPL_LINK_NOARG(OWizTypeSelect, ButtonClickHdl, weld::Button&, void)
{
sal_Int32 nBreakPos;
m_pParent->CheckColumns(nBreakPos);
// fill column list
- sal_uInt32 nRows = m_pAutoEt->GetText().toInt32();
+ sal_uInt32 nRows = m_xAutoEt->get_text().toInt32();
if(m_pParserStream)
{
sal_uInt64 const nTell = m_pParserStream->Tell(); // might change seek position of stream
@@ -358,24 +345,24 @@ IMPL_LINK_NOARG( OWizTypeSelect, ButtonClickHdl, Button *, void )
ActivatePage();
}
-OWizTypeSelectList::~OWizTypeSelectList()
+OWizTypeSelectList::OWizTypeSelectList(std::unique_ptr<weld::TreeView> xControl)
+ : m_xControl(std::move(xControl))
+ , m_bPKey(false)
+ , m_xParentTabPage(nullptr)
{
- disposeOnce();
-}
-
-void OWizTypeSelectList::dispose()
-{
- m_pParentTabPage.clear();
- MultiListBox::dispose();
+ m_xControl->connect_popup_menu(LINK(this, OWizTypeSelectList, CommandHdl));
}
bool OWizTypeSelectList::IsPrimaryKeyAllowed() const
{
- const sal_Int32 nCount = GetSelectedEntryCount();
+ auto aRows = m_xControl->get_selected_rows();
+ std::sort(aRows.begin(), aRows.end());
+
+ const sal_Int32 nCount = aRows.size();
for( sal_Int32 j = 0; m_bPKey && j < nCount; ++j )
{
- OFieldDescription* pField = static_cast<OFieldDescription*>(GetEntryData(GetSelectedEntryPos(j)));
+ OFieldDescription* pField = reinterpret_cast<OFieldDescription*>(m_xControl->get_id(aRows[j]).toInt64());
if(!pField || pField->getTypeInfo()->nSearchType == ColumnSearch::NONE)
return false;
}
@@ -384,96 +371,71 @@ bool OWizTypeSelectList::IsPrimaryKeyAllowed() const
void OWizTypeSelectList::setPrimaryKey(OFieldDescription* _pFieldDescr, sal_uInt16 _nPos, bool _bSet)
{
- OUString sColumnName = GetEntry(_nPos);
- RemoveEntry(_nPos);
_pFieldDescr->SetPrimaryKey(_bSet);
if( _bSet )
- InsertEntry(sColumnName, static_cast<OWizTypeSelect*>(m_pParentTabPage.get())->m_imgPKey,_nPos);
+ {
+ OUString sImage(BMP_PRIMARY_KEY);
+ m_xControl->set_image(_nPos, sImage);
+ }
else if( _pFieldDescr->getTypeInfo()->bNullable )
{
_pFieldDescr->SetControlDefault(Any());
- InsertEntry(sColumnName,_nPos);
+ m_xControl->set_image(_nPos, OUString());
}
- SetEntryData(_nPos,_pFieldDescr);
}
-VCL_BUILDER_FACTORY(OWizTypeSelectList)
-
-bool OWizTypeSelectList::PreNotify( NotifyEvent& rEvt )
+IMPL_LINK(OWizTypeSelectList, CommandHdl, const CommandEvent&, rCEvt, bool)
{
- bool bDone = false;
- switch( rEvt.GetType() )
+ if (rCEvt.GetCommand() != CommandEventId::ContextMenu)
+ return false;
+ if (!IsPrimaryKeyAllowed())
+ return false;
+
+ std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(m_xControl.get(), "dbaccess/ui/keymenu.ui"));
+ auto xContextMenu = xBuilder->weld_menu("menu");
+ // Should primary key checkbox be checked?
+ const sal_Int32 nCount = m_xControl->n_children();
+ bool bCheckOk = false;
+ for(sal_Int32 j = 0 ; j < nCount ; ++j)
{
- case MouseNotifyEvent::MOUSEBUTTONDOWN:
+ OFieldDescription* pFieldDescr = reinterpret_cast<OFieldDescription*>(m_xControl->get_id(j).toInt64());
+ // if at least one of the fields is selected but not in the primary key,
+ // or is in the primary key but not selected, then don't check the
+ // primary key checkbox.
+ if( pFieldDescr && pFieldDescr->IsPrimaryKey() != m_xControl->is_selected(j) )
{
- const MouseEvent* pMEvt = rEvt.GetMouseEvent();
- if(pMEvt->IsRight() && !pMEvt->GetModifier())
- bDone = true;
- }
+ bCheckOk = false;
break;
- case MouseNotifyEvent::COMMAND:
+ }
+ if (!bCheckOk && m_xControl->is_selected(j))
+ bCheckOk = true;
+ }
+
+ if (bCheckOk)
+ xContextMenu->set_active("primarykey", true);
+
+ OString sCommand(xContextMenu->popup_at_rect(m_xControl.get(), tools::Rectangle(rCEvt.GetMousePosPixel(), Size(1,1))));
+ if (sCommand == "primarykey")
+ {
+ for (sal_Int32 j = 0 ; j < nCount; ++j)
{
- if(!IsPrimaryKeyAllowed())
- break;
-
- const CommandEvent* pComEvt = rEvt.GetCommandEvent();
- if(pComEvt->GetCommand() != CommandEventId::ContextMenu)
- break;
- // the place, at which was clicked
- Point ptWhere(0,0);
- if (pComEvt->IsMouseEvent())
- ptWhere = pComEvt->GetMousePosPixel();
-
- VclBuilder aBuilder(nullptr, VclBuilderContainer::getUIRootDir(), "dbaccess/ui/keymenu.ui", "");
- VclPtr<PopupMenu> aContextMenu(aBuilder.get_menu("menu"));
- // Should primary key checkbox be checked?
- const sal_Int32 nCount = GetEntryCount();
- bool bCheckOk = false;
- for(sal_Int32 j = 0 ; j < nCount ; ++j)
+ OFieldDescription* pFieldDescr = reinterpret_cast<OFieldDescription*>(m_xControl->get_id(j).toInt64());
+ if (pFieldDescr)
{
- OFieldDescription* pFieldDescr = static_cast<OFieldDescription*>(GetEntryData(j));
- // if at least one of the fields is selected but not in the primary key,
- // or is in the primary key but not selected, then don't check the
- // primary key checkbox.
- if( pFieldDescr && pFieldDescr->IsPrimaryKey() != IsEntryPosSelected(j) )
+ if(!bCheckOk && m_xControl->is_selected(j))
{
- bCheckOk = false;
- break;
+ setPrimaryKey(pFieldDescr,j,true);
}
- if (!bCheckOk && IsEntryPosSelected(j))
- bCheckOk = true;
- }
-
- if (bCheckOk)
- aContextMenu->CheckItem("primarykey");
-
- if (aContextMenu->Execute(this, ptWhere))
- {
- for (sal_Int32 j = 0 ; j < nCount ; ++j)
+ else
{
- OFieldDescription* pFieldDescr = static_cast<OFieldDescription*>(GetEntryData(j));
- if( pFieldDescr )
- {
- if(!bCheckOk && IsEntryPosSelected(j))
- {
- setPrimaryKey(pFieldDescr,j,true);
- SelectEntryPos(j);
- }
- else
- {
- setPrimaryKey(pFieldDescr,j);
- }
- }
+ setPrimaryKey(pFieldDescr,j);
}
- GetSelectHdl().Call(*this);
}
- bDone = true;
}
- break;
- default:
- break;
+ m_aChangeHdl.Call(*m_xControl);
}
- return bDone || MultiListBox::PreNotify(rEvt);
+
+ return true;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/uno/copytablewizard.cxx b/dbaccess/source/ui/uno/copytablewizard.cxx
index 8565ce5949de..450634feb34f 100644
--- a/dbaccess/source/ui/uno/copytablewizard.cxx
+++ b/dbaccess/source/ui/uno/copytablewizard.cxx
@@ -70,6 +70,7 @@
#include <toolkit/helper/vclunohelper.hxx>
#include <tools/diagnose_ex.h>
#include <unotools/sharedunocomponent.hxx>
+#include <vcl/svapp.hxx>
#include <vcl/waitobj.hxx>
namespace dbaui
@@ -547,7 +548,7 @@ void SAL_CALL CopyTableWizard::setTitle( const OUString& _rTitle )
OCopyTableWizard& CopyTableWizard::impl_getDialog_throw()
{
- OCopyTableWizard* pWizard = dynamic_cast< OCopyTableWizard* >(m_aDialog.m_xVclDialog.get());
+ OCopyTableWizard* pWizard = dynamic_cast<OCopyTableWizard*>(m_aDialog.m_xWeldDialog.get());
if ( !pWizard )
throw DisposedException( OUString(), *this );
return *pWizard;
@@ -1302,7 +1303,7 @@ void CopyTableWizard::impl_doCopy_nothrow()
{
OCopyTableWizard& rWizard( impl_getDialog_throw() );
- WaitObject aWO( rWizard.GetParent() );
+ weld::WaitObject aWO(rWizard.getDialog());
Reference< XPropertySet > xTable;
switch ( rWizard.getOperation() )
@@ -1473,6 +1474,13 @@ void SAL_CALL CopyTableWizard::initialize( const Sequence< Any >& _rArguments )
if ( xDestDocHandler.is() && !m_xInteractionHandler.is() )
m_xInteractionHandler = xDestDocHandler;
+
+ Reference< XPropertySet > xInteractionHandler(m_xInteractionHandler, UNO_QUERY);
+ if (xInteractionHandler.is())
+ {
+ Any aParentWindow(xInteractionHandler->getPropertyValue("ParentWindow"));
+ aParentWindow >>= m_xParent;
+ }
}
catch( const RuntimeException& ) { throw; }
catch( const SQLException& ) { throw; }
@@ -1503,20 +1511,19 @@ svt::OGenericUnoDialog::Dialog CopyTableWizard::createDialog(const css::uno::Ref
OSL_PRECOND( isInitialized(), "CopyTableWizard::createDialog: not initialized!" );
// this should have been prevented in ::execute already
- VclPtrInstance<OCopyTableWizard> pWizard(
- VCLUnoHelper::GetWindow(rParent),
+ auto xWizard = std::make_unique<OCopyTableWizard>(
+ Application::GetFrameWeld(rParent),
m_sDestinationTable,
m_nOperation,
*m_pSourceObject,
m_xSourceConnection.getTyped(),
m_xDestConnection.getTyped(),
m_xContext,
- m_xInteractionHandler
- );
+ m_xInteractionHandler);
- impl_attributesToDialog_nothrow( *pWizard );
+ impl_attributesToDialog_nothrow(*xWizard);
- return svt::OGenericUnoDialog::Dialog(pWizard);
+ return svt::OGenericUnoDialog::Dialog(std::move(xWizard));
}
void CopyTableWizard::executedDialog( sal_Int16 _nExecutionResult )