summaryrefslogtreecommitdiff
path: root/dbaccess
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-07-24 19:38:22 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-07-24 22:42:51 +0200
commit3e5abe71c0f00969425da347e272b49c2624f40b (patch)
tree2e5dde2de13dc5f5a8a5e363850971a2b04c16a5 /dbaccess
parent77af4cb9715a00f4f5165fcd912b9640d5ffbca3 (diff)
drop intermediate TabPage
OColumnControlWindow can be seen used in "use wizard to create table" from base Change-Id: Ib59b487c6711321550c1b516986ef20df402b171 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99414 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess')
-rw-r--r--dbaccess/UIConfig_dbaccess.mk1
-rw-r--r--dbaccess/source/ui/control/ColumnControlWindow.cxx29
-rw-r--r--dbaccess/source/ui/control/FieldDescControl.cxx89
-rw-r--r--dbaccess/source/ui/inc/ColumnControlWindow.hxx20
-rw-r--r--dbaccess/source/ui/inc/FieldDescControl.hxx28
-rw-r--r--dbaccess/source/ui/inc/WTypeSelect.hxx2
-rw-r--r--dbaccess/source/ui/misc/WTypeSelect.cxx7
-rw-r--r--dbaccess/source/ui/tabledesign/TEditControl.cxx1
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldControl.cxx5
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldControl.hxx4
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx4
-rw-r--r--dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx2
-rw-r--r--dbaccess/source/ui/uno/ColumnPeer.cxx24
-rw-r--r--dbaccess/uiconfig/ui/colcontrolbox.ui15
14 files changed, 110 insertions, 121 deletions
diff --git a/dbaccess/UIConfig_dbaccess.mk b/dbaccess/UIConfig_dbaccess.mk
index f1647bb44b08..d2d30dd9b7fd 100644
--- a/dbaccess/UIConfig_dbaccess.mk
+++ b/dbaccess/UIConfig_dbaccess.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_UIConfig_add_uifiles,dbaccess, \
dbaccess/uiconfig/ui/authentificationpage \
dbaccess/uiconfig/ui/autocharsetpage \
dbaccess/uiconfig/ui/choosedatasourcedialog \
+ dbaccess/uiconfig/ui/colcontrolbox \
dbaccess/uiconfig/ui/collectionviewdialog \
dbaccess/uiconfig/ui/colwidthdialog \
dbaccess/uiconfig/ui/connectionpage \
diff --git a/dbaccess/source/ui/control/ColumnControlWindow.cxx b/dbaccess/source/ui/control/ColumnControlWindow.cxx
index 28a77291ce13..8f9186b01ccb 100644
--- a/dbaccess/source/ui/control/ColumnControlWindow.cxx
+++ b/dbaccess/source/ui/control/ColumnControlWindow.cxx
@@ -34,10 +34,33 @@ using namespace ::com::sun::star::util;
using namespace ::com::sun::star::sdbc;
using namespace ::com::sun::star::lang;
+OColumnControlTopLevel::OColumnControlTopLevel(vcl::Window* pParent,
+ const Reference<XComponentContext>& _rxContext)
+ : InterimItemWindow(pParent, "dbaccess/ui/colcontrolbox.ui", "ColControlBox")
+ , m_xControl(new OColumnControlWindow(m_xContainer.get(), _rxContext))
+{
+}
+
+void OColumnControlTopLevel::dispose()
+{
+ m_xControl.reset();
+ InterimItemWindow::dispose();
+}
+
+void OColumnControlTopLevel::GetFocus()
+{
+ m_xControl->GetFocus();
+}
+
+void OColumnControlTopLevel::LoseFocus()
+{
+ m_xControl->LoseFocus();
+}
+
// OColumnControlWindow
-OColumnControlWindow::OColumnControlWindow(vcl::Window* pParent
- ,const Reference<XComponentContext>& _rxContext)
- : OFieldDescControl(nullptr, pParent, nullptr)
+OColumnControlWindow::OColumnControlWindow(weld::Container* pParent,
+ const Reference<XComponentContext>& _rxContext)
+ : OFieldDescControl(pParent, nullptr)
, m_xContext(_rxContext)
, m_sTypeNames(DBA_RES(STR_TABLEDESIGN_DBFIELDTYPES))
, m_bAutoIncrementEnabled(true)
diff --git a/dbaccess/source/ui/control/FieldDescControl.cxx b/dbaccess/source/ui/control/FieldDescControl.cxx
index 54365392353b..bb10fb787f9f 100644
--- a/dbaccess/source/ui/control/FieldDescControl.cxx
+++ b/dbaccess/source/ui/control/FieldDescControl.cxx
@@ -65,70 +65,28 @@ namespace
}
}
-OFieldDescControl::OFieldDescControl(weld::Container* pPage, vcl::Window* pParent, OTableDesignHelpBar* pHelpBar)
- :TabPage(pPage ? Application::GetDefDialogParent() : pParent, WB_3DLOOK | WB_DIALOGCONTROL)
- ,m_pHelp( pHelpBar )
- ,m_pLastFocusWindow(nullptr)
- ,m_pActFocusWindow(nullptr)
- ,m_pPreviousType()
- ,m_nPos(-1)
- ,aYes(DBA_RES(STR_VALUE_YES))
- ,aNo(DBA_RES(STR_VALUE_NO))
- ,m_nEditWidth(50)
- ,m_bAdded(false)
- ,pActFieldDescr(nullptr)
+OFieldDescControl::OFieldDescControl(weld::Container* pPage, OTableDesignHelpBar* pHelpBar)
+ : m_xBuilder(Application::CreateBuilder(pPage, "dbaccess/ui/fielddescpage.ui"))
+ , m_xContainer(m_xBuilder->weld_container("FieldDescPage"))
+ , m_pHelp( pHelpBar )
+ , m_pLastFocusWindow(nullptr)
+ , m_pActFocusWindow(nullptr)
+ , m_pPreviousType()
+ , m_nPos(-1)
+ , aYes(DBA_RES(STR_VALUE_YES))
+ , aNo(DBA_RES(STR_VALUE_NO))
+ , m_nEditWidth(50)
+ , pActFieldDescr(nullptr)
{
- if (pPage)
- m_xBuilder.reset(Application::CreateBuilder(pPage, "dbaccess/ui/fielddescpage.ui"));
- else
- {
- m_xVclContentArea = VclPtr<VclVBox>::Create(this);
- m_xVclContentArea->Show();
- m_xBuilder.reset(Application::CreateInterimBuilder(m_xVclContentArea, "dbaccess/ui/fielddescpage.ui"));
-
- m_aLayoutIdle.SetPriority(TaskPriority::RESIZE);
- m_aLayoutIdle.SetInvokeHandler( LINK( this, OFieldDescControl, ImplHandleLayoutTimerHdl ) );
- m_aLayoutIdle.SetDebugName( "OFieldDescControl m_aLayoutIdle" );
- }
-
- m_xContainer = m_xBuilder->weld_container("FieldDescPage");
-}
-
-void OFieldDescControl::queue_resize(StateChangedType eReason)
-{
- TabPage::queue_resize(eReason);
- if (!m_xVclContentArea)
- return;
- if (m_aLayoutIdle.IsActive())
- return;
- m_aLayoutIdle.Start();
-}
-
-void OFieldDescControl::Resize()
-{
- TabPage::Resize();
- if (!m_xVclContentArea)
- return;
- queue_resize();
-}
-
-IMPL_LINK_NOARG(OFieldDescControl, ImplHandleLayoutTimerHdl, Timer*, void)
-{
- m_xVclContentArea->SetPosSizePixel(Point(0,0), GetSizePixel());
}
OFieldDescControl::~OFieldDescControl()
{
- disposeOnce();
+ dispose();
}
void OFieldDescControl::dispose()
{
- m_aLayoutIdle.Stop();
-
- if ( m_bAdded )
- ::dbaui::notifySystemWindow(this,this,::comphelper::mem_fun(&TaskPaneList::RemoveWindow));
-
// Destroy children
DeactivateAggregate( tpDefault );
DeactivateAggregate( tpRequired );
@@ -172,8 +130,6 @@ void OFieldDescControl::dispose()
m_xFormat.reset();
m_xContainer.reset();
m_xBuilder.reset();
- m_xVclContentArea.disposeAndClear();
- TabPage::dispose();
}
OUString OFieldDescControl::BoolStringPersistent(const OUString& rUIString) const
@@ -626,8 +582,6 @@ void OFieldDescControl::ActivateAggregate( EControlType eType )
m_xBoolDefault->show();
break;
}
-
- queue_resize();
}
void OFieldDescControl::InitializeControl(OPropListBoxCtrl* _pControl,const OString& _sHelpId,bool _bAddChangeHandler)
@@ -646,7 +600,7 @@ void OFieldDescControl::InitializeControl(weld::Widget* pControl,const OString&
if (dynamic_cast<weld::Entry*>(pControl))
{
- int nWidthRequest = LogicToPixel(Size(m_nEditWidth, 0), MapMode(MapUnit::MapAppFont)).Width();
+ int nWidthRequest = Application::GetDefaultDevice()->LogicToPixel(Size(m_nEditWidth, 0), MapMode(MapUnit::MapAppFont)).Width();
pControl->set_size_request(nWidthRequest, -1);
}
}
@@ -723,8 +677,6 @@ void OFieldDescControl::DeactivateAggregate( EControlType eType )
lcl_HideAndDeleteControl(m_nPos,m_xBoolDefault,m_xBoolDefaultText);
break;
}
-
- queue_resize();
}
void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
@@ -749,20 +701,9 @@ void OFieldDescControl::DisplayData(OFieldDescription* pFieldDescr )
m_pPreviousType = TOTypeInfoSP();
// Reset the saved focus' pointer
m_pLastFocusWindow = nullptr;
- if ( m_bAdded )
- {
- ::dbaui::notifySystemWindow(this,this,::comphelper::mem_fun(&TaskPaneList::RemoveWindow));
- m_bAdded = false;
- }
return;
}
- if ( !m_bAdded )
- {
- ::dbaui::notifySystemWindow(this,this,::comphelper::mem_fun(&TaskPaneList::AddWindow));
- m_bAdded = true;
- }
-
TOTypeInfoSP pFieldType(pFieldDescr->getTypeInfo());
ActivateAggregate( tpColumnName );
@@ -1228,8 +1169,6 @@ void OFieldDescControl::implFocusLost(weld::Widget* _pWhich)
void OFieldDescControl::LoseFocus()
{
implFocusLost(nullptr);
-
- TabPage::LoseFocus();
}
bool OFieldDescControl::IsFocusInEditableWidget() const
diff --git a/dbaccess/source/ui/inc/ColumnControlWindow.hxx b/dbaccess/source/ui/inc/ColumnControlWindow.hxx
index 1b6d4a5fd8a8..1a5abac2c06d 100644
--- a/dbaccess/source/ui/inc/ColumnControlWindow.hxx
+++ b/dbaccess/source/ui/inc/ColumnControlWindow.hxx
@@ -23,6 +23,7 @@
#include "TypeInfo.hxx"
#include <com/sun/star/uno/XComponentContext.hpp>
#include <com/sun/star/util/XNumberFormatter.hpp>
+#include <vcl/InterimItemWindow.hxx>
namespace dbaui
{
@@ -53,8 +54,8 @@ namespace dbaui
virtual void CellModified(long nRow, sal_uInt16 nColId ) override;
public:
- OColumnControlWindow(vcl::Window* pParent
- ,const css::uno::Reference< css::uno::XComponentContext>& _rxContext);
+ OColumnControlWindow(weld::Container* pParent,
+ const css::uno::Reference< css::uno::XComponentContext>& _rxContext);
void setConnection(const css::uno::Reference< css::sdbc::XConnection>& _xCon);
@@ -63,6 +64,21 @@ namespace dbaui
virtual const OTypeInfoMap* getTypeInfo() const override;
TOTypeInfoSP const & getDefaultTyp() const;
};
+
+ class OColumnControlTopLevel final : public InterimItemWindow
+ {
+ std::unique_ptr<OColumnControlWindow> m_xControl;
+ public:
+ OColumnControlTopLevel(vcl::Window* pParent,
+ const css::uno::Reference< css::uno::XComponentContext>& _rxContext);
+ virtual void dispose() override;
+
+ OColumnControlWindow& GetControl() { return *m_xControl; }
+
+ virtual void GetFocus() override;
+ virtual void LoseFocus() override;
+ };
+
} // namespace dbaui
#endif // INCLUDED_DBACCESS_SOURCE_UI_INC_COLUMNCONTROLWINDOW_HXX
diff --git a/dbaccess/source/ui/inc/FieldDescControl.hxx b/dbaccess/source/ui/inc/FieldDescControl.hxx
index 77e439997ab4..3948c11066a8 100644
--- a/dbaccess/source/ui/inc/FieldDescControl.hxx
+++ b/dbaccess/source/ui/inc/FieldDescControl.hxx
@@ -19,9 +19,6 @@
#ifndef INCLUDED_DBACCESS_SOURCE_UI_INC_FIELDDESCCONTROL_HXX
#define INCLUDED_DBACCESS_SOURCE_UI_INC_FIELDDESCCONTROL_HXX
-#include <vcl/idle.hxx>
-#include <vcl/layout.hxx>
-#include <vcl/tabpage.hxx>
#include <vcl/weld.hxx>
#include "IClipBoardTest.hxx"
#include "QEnumTypes.hxx"
@@ -66,12 +63,9 @@ namespace dbaui
class OFieldDescription;
class OPropColumnEditCtrl;
- class OFieldDescControl : public TabPage
- , public IClipboardTest
+ class OFieldDescControl : public IClipboardTest
{
private:
- Idle m_aLayoutIdle;
- VclPtr<VclVBox> m_xVclContentArea;
std::unique_ptr<weld::Builder> m_xBuilder;
std::unique_ptr<weld::Container> m_xContainer;
@@ -116,13 +110,10 @@ namespace dbaui
sal_Int32 m_nEditWidth;
- bool m_bAdded;
-
OFieldDescription* pActFieldDescr;
DECL_LINK(FormatClickHdl, weld::Button&, void);
DECL_LINK(ChangeHdl, weld::ComboBox&, void);
- DECL_LINK(ImplHandleLayoutTimerHdl, Timer*, void);
// used by ActivatePropertyField
DECL_LINK( OnControlFocusLost, weld::Widget&, void );
@@ -137,6 +128,7 @@ namespace dbaui
bool IsFocusInEditableWidget() const;
+ void dispose();
protected:
void saveCurrentFieldDescData() { SaveData( pActFieldDescr ); }
OFieldDescription* getCurrentFieldDescData() { return pActFieldDescr; }
@@ -167,9 +159,8 @@ namespace dbaui
void implFocusLost(weld::Widget* _pWhich);
public:
- OFieldDescControl(weld::Container* pPage, vcl::Window* pParent, OTableDesignHelpBar* pHelpBar);
- virtual ~OFieldDescControl() override;
- virtual void dispose() override;
+ OFieldDescControl(weld::Container* pPage, OTableDesignHelpBar* pHelpBar);
+ virtual ~OFieldDescControl();
void DisplayData(OFieldDescription* pFieldDescr );
@@ -178,6 +169,9 @@ namespace dbaui
void SetControlText( sal_uInt16 nControlId, const OUString& rText );
void SetReadOnly( bool bReadOnly );
+ void Enable(bool bEnable) { m_xContainer->set_sensitive(bEnable); }
+ void SetHelpId(const OString& rId) { m_xContainer->set_help_id(rId); }
+
virtual bool isCutAllowed() override;
virtual bool isCopyAllowed() override;
virtual bool isPasteAllowed() override;
@@ -191,12 +185,10 @@ namespace dbaui
m_aControlFocusIn = rLink;
}
- void Init();
- virtual void GetFocus() override;
- virtual void LoseFocus() override;
- virtual void Resize() override;
+ void Init();
- virtual void queue_resize(StateChangedType eReason = StateChangedType::Layout) override;
+ void GetFocus();
+ void LoseFocus();
virtual css::uno::Reference< css::sdbc::XDatabaseMetaData> getMetaData() = 0;
virtual css::uno::Reference< css::sdbc::XConnection> getConnection() = 0;
diff --git a/dbaccess/source/ui/inc/WTypeSelect.hxx b/dbaccess/source/ui/inc/WTypeSelect.hxx
index 4a0f240a788f..ddcbf17fa409 100644
--- a/dbaccess/source/ui/inc/WTypeSelect.hxx
+++ b/dbaccess/source/ui/inc/WTypeSelect.hxx
@@ -107,7 +107,7 @@ namespace dbaui
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<OWizTypeSelectControl> m_xTypeControl;
std::unique_ptr<weld::Label> m_xAutoType;
std::unique_ptr<weld::Label> m_xAutoFt;
std::unique_ptr<weld::SpinButton> m_xAutoEt;
diff --git a/dbaccess/source/ui/misc/WTypeSelect.cxx b/dbaccess/source/ui/misc/WTypeSelect.cxx
index f42521524d60..3b2647fac719 100644
--- a/dbaccess/source/ui/misc/WTypeSelect.cxx
+++ b/dbaccess/source/ui/misc/WTypeSelect.cxx
@@ -26,6 +26,7 @@
#include <strings.hrc>
#include <tools/stream.hxx>
#include <vcl/commandevent.hxx>
+#include <vcl/svapp.hxx>
#include <UITools.hxx>
#include <core_resource.hxx>
#include <FieldControls.hxx>
@@ -39,7 +40,7 @@ using namespace ::com::sun::star::sdbc;
// OWizTypeSelectControl
OWizTypeSelectControl::OWizTypeSelectControl(weld::Container* pPage, OWizTypeSelect* pParentTabPage)
- : OFieldDescControl(pPage, nullptr, nullptr)
+ : OFieldDescControl(pPage, nullptr)
, m_pParentTabPage(pParentTabPage)
{
}
@@ -206,7 +207,7 @@ OWizTypeSelect::OWizTypeSelect(weld::Container* pPage, OCopyTableWizard* pWizard
, 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(m_xControlContainer.get(), this))
+ , m_xTypeControl(new OWizTypeSelectControl(m_xControlContainer.get(), this))
, m_xAutoType(m_xBuilder->weld_label("autotype"))
, m_xAutoFt(m_xBuilder->weld_label("autolabel"))
, m_xAutoEt(m_xBuilder->weld_spin_button("auto"))
@@ -218,7 +219,6 @@ OWizTypeSelect::OWizTypeSelect(weld::Container* pPage, OCopyTableWizard* pWizard
{
m_xColumnNames->connect_changed(LINK(this,OWizTypeSelect,ColumnSelectHdl));
- m_xTypeControl->Show();
m_xTypeControl->Init();
m_xAutoEt->set_text("10");
@@ -239,7 +239,6 @@ OWizTypeSelect::OWizTypeSelect(weld::Container* pPage, OCopyTableWizard* pWizard
OWizTypeSelect::~OWizTypeSelect()
{
- m_xTypeControl.disposeAndClear();
}
OUString OWizTypeSelect::GetTitle() const
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.cxx b/dbaccess/source/ui/tabledesign/TEditControl.cxx
index 28af7b8bae54..39e3bd86ee3f 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.cxx
@@ -41,6 +41,7 @@
#include <UITools.hxx>
#include "TableFieldControl.hxx"
#include <dsntypes.hxx>
+#include <vcl/builder.hxx>
#include <vcl/commandevent.hxx>
#include <vcl/menu.hxx>
#include <vcl/svapp.hxx>
diff --git a/dbaccess/source/ui/tabledesign/TableFieldControl.cxx b/dbaccess/source/ui/tabledesign/TableFieldControl.cxx
index 49cbdf99abca..b384dab2738e 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldControl.cxx
@@ -34,7 +34,7 @@ using namespace ::com::sun::star::sdbc;
using namespace dbaui;
OTableFieldControl::OTableFieldControl(weld::Container* pParent, OTableDesignHelpBar* pHelpBar, OTableDesignView* pView)
- : OFieldDescControl(pParent, nullptr, pHelpBar)
+ : OFieldDescControl(pParent, pHelpBar)
, m_xView(pView)
{
}
@@ -42,12 +42,11 @@ OTableFieldControl::OTableFieldControl(weld::Container* pParent, OTableDesignHel
void OTableFieldControl::dispose()
{
m_xView.clear();
- OFieldDescControl::dispose();
}
OTableFieldControl::~OTableFieldControl()
{
- disposeOnce();
+ dispose();
}
void OTableFieldControl::CellModified(long nRow, sal_uInt16 nColId )
diff --git a/dbaccess/source/ui/tabledesign/TableFieldControl.hxx b/dbaccess/source/ui/tabledesign/TableFieldControl.hxx
index e74ab4c8a88b..e71d447b0a77 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldControl.hxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldControl.hxx
@@ -33,6 +33,9 @@ namespace dbaui
VclPtr<OTableDesignView> m_xView;
OTableEditorCtrl* GetCtrl() const;
+
+ void dispose();
+
protected:
virtual void ActivateAggregate( EControlType eType ) override;
virtual void DeactivateAggregate( EControlType eType ) override;
@@ -51,7 +54,6 @@ namespace dbaui
public:
OTableFieldControl(weld::Container* pParent, OTableDesignHelpBar* pHelpBar, OTableDesignView* pView);
- virtual void dispose() override;
virtual ~OTableFieldControl() override;
using OFieldDescControl::BoolStringPersistent;
diff --git a/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx b/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
index 530dfd6237a3..2e87c0891e44 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldDescWin.cxx
@@ -34,7 +34,7 @@ OTableFieldDescWin::OTableFieldDescWin(vcl::Window* pParent, OTableDesignView* p
: InterimItemWindow(pParent, "dbaccess/ui/fielddescpanel.ui", "FieldDescPanel")
, m_xHelpBar(new OTableDesignHelpBar(m_xBuilder->weld_text_view("textview")))
, m_xBox(m_xBuilder->weld_container("box"))
- , m_xFieldControl(VclPtr<OTableFieldControl>::Create(m_xBox.get(), m_xHelpBar.get(), pView))
+ , m_xFieldControl(new OTableFieldControl(m_xBox.get(), m_xHelpBar.get(), pView))
, m_xHeader(m_xBuilder->weld_label("header"))
, m_eChildFocus(NONE)
{
@@ -55,7 +55,7 @@ OTableFieldDescWin::~OTableFieldDescWin()
void OTableFieldDescWin::dispose()
{
// destroy children
- m_xFieldControl.disposeAndClear();
+ m_xFieldControl.reset();
m_xBox.reset();
m_xHeader.reset();
m_xHelpBar.reset();
diff --git a/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx b/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx
index 72f9376a1076..d25c5c61b60b 100644
--- a/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx
+++ b/dbaccess/source/ui/tabledesign/TableFieldDescWin.hxx
@@ -41,7 +41,7 @@ namespace dbaui
private:
std::unique_ptr<OTableDesignHelpBar> m_xHelpBar;
std::unique_ptr<weld::Container> m_xBox;
- VclPtr<OTableFieldControl> m_xFieldControl;
+ std::unique_ptr<OTableFieldControl> m_xFieldControl;
std::unique_ptr<weld::Label> m_xHeader;
Link<weld::Widget&, void> m_aFocusInHdl;
diff --git a/dbaccess/source/ui/uno/ColumnPeer.cxx b/dbaccess/source/ui/uno/ColumnPeer.cxx
index 9dc357eb2a8c..48f5fbce5692 100644
--- a/dbaccess/source/ui/uno/ColumnPeer.cxx
+++ b/dbaccess/source/ui/uno/ColumnPeer.cxx
@@ -36,7 +36,7 @@ OColumnPeer::OColumnPeer(vcl::Window* _pParent,const Reference<XComponentContext
{
osl_atomic_increment( &m_refCount );
{
- VclPtrInstance<OColumnControlWindow> pFieldControl(_pParent, _rxContext);
+ VclPtrInstance<OColumnControlTopLevel> pFieldControl(_pParent, _rxContext);
pFieldControl->SetComponentInterface(this);
pFieldControl->Show();
}
@@ -46,19 +46,21 @@ OColumnPeer::OColumnPeer(vcl::Window* _pParent,const Reference<XComponentContext
void OColumnPeer::setEditWidth(sal_Int32 _nWidth)
{
SolarMutexGuard aGuard;
- VclPtr<OColumnControlWindow> pFieldControl = GetAs<OColumnControlWindow>();
+ VclPtr<OColumnControlTopLevel> pFieldControl = GetAs<OColumnControlTopLevel>();
if ( pFieldControl )
- pFieldControl->setEditWidth(_nWidth);
+ pFieldControl->GetControl().setEditWidth(_nWidth);
}
void OColumnPeer::setColumn(const Reference< XPropertySet>& _xColumn)
{
SolarMutexGuard aGuard;
- VclPtr<OColumnControlWindow> pFieldControl = GetAs<OColumnControlWindow>();
+ VclPtr<OColumnControlTopLevel> pFieldControl = GetAs<OColumnControlTopLevel>();
if ( !pFieldControl )
return;
+ OColumnControlWindow& rControl = pFieldControl->GetControl();
+
if ( m_pActFieldDescr )
{
delete m_pActFieldDescr;
@@ -88,22 +90,22 @@ void OColumnPeer::setColumn(const Reference< XPropertySet>& _xColumn)
m_pActFieldDescr = new OFieldDescription(_xColumn,true);
// search for type
bool bForce;
- TOTypeInfoSP pTypeInfo = ::dbaui::getTypeInfoFromType(*pFieldControl->getTypeInfo(),nType,sTypeName,"x",nPrecision,nScale,bAutoIncrement,bForce);
+ TOTypeInfoSP pTypeInfo = ::dbaui::getTypeInfoFromType(*rControl.getTypeInfo(),nType,sTypeName,"x",nPrecision,nScale,bAutoIncrement,bForce);
if ( !pTypeInfo )
- pTypeInfo = pFieldControl->getDefaultTyp();
+ pTypeInfo = rControl.getDefaultTyp();
m_pActFieldDescr->FillFromTypeInfo(pTypeInfo,true,false);
m_xColumn = _xColumn;
}
- pFieldControl->DisplayData(m_pActFieldDescr);
+ rControl.DisplayData(m_pActFieldDescr);
}
void OColumnPeer::setConnection(const Reference< XConnection>& _xCon)
{
SolarMutexGuard aGuard;
- VclPtr<OColumnControlWindow> pFieldControl = GetAs<OColumnControlWindow>();
+ VclPtr<OColumnControlTopLevel> pFieldControl = GetAs<OColumnControlTopLevel>();
if ( pFieldControl )
- pFieldControl->setConnection(_xCon);
+ pFieldControl->GetControl().setConnection(_xCon);
}
void OColumnPeer::setProperty( const OUString& _rPropertyName, const Any& Value)
@@ -127,14 +129,14 @@ void OColumnPeer::setProperty( const OUString& _rPropertyName, const Any& Value)
Any OColumnPeer::getProperty( const OUString& _rPropertyName )
{
Any aProp;
- VclPtr< OFieldDescControl > pFieldControl = GetAs< OFieldDescControl >();
+ VclPtr<OColumnControlTopLevel> pFieldControl = GetAs<OColumnControlTopLevel>();
if (pFieldControl && _rPropertyName == PROPERTY_COLUMN)
{
aProp <<= m_xColumn;
}
else if (pFieldControl && _rPropertyName == PROPERTY_ACTIVE_CONNECTION)
{
- aProp <<= pFieldControl->getConnection();
+ aProp <<= pFieldControl->GetControl().getConnection();
}
else
aProp = VCLXWindow::getProperty(_rPropertyName);
diff --git a/dbaccess/uiconfig/ui/colcontrolbox.ui b/dbaccess/uiconfig/ui/colcontrolbox.ui
new file mode 100644
index 000000000000..74ce361e63d8
--- /dev/null
+++ b/dbaccess/uiconfig/ui/colcontrolbox.ui
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.36.0 -->
+<interface domain="dba">
+ <requires lib="gtk+" version="3.18"/>
+ <object class="GtkBox" id="ColControlBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="vexpand">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+</interface>