diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-09-05 12:22:38 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-09-12 20:28:14 +0200 |
commit | 8c66efa030e98cfdf5da20be368566d64e43c5d1 (patch) | |
tree | 88c9fb335349fd1b7b285d46108e5d41a3c9aac4 /dbaccess/source/ui/inc | |
parent | 8150219824a1d08c4a22fd8bb7cc63fe2aa88074 (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/ui/inc')
-rw-r--r-- | dbaccess/source/ui/inc/FieldControls.hxx | 62 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/FieldDescControl.hxx | 105 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/SqlNameEdit.hxx | 59 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/WCPage.hxx | 43 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/WColumnSelect.hxx | 30 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/WCopyTable.hxx | 36 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/WExtendPages.hxx | 20 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/WNameMatch.hxx | 53 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/WTabPage.hxx | 8 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/WTypeSelect.hxx | 79 |
10 files changed, 292 insertions, 203 deletions
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 |