diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-03-02 16:08:30 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-03-02 22:40:19 +0100 |
commit | 884df9f66ce5d28af256224e830651da2186af5d (patch) | |
tree | 3d47b930edaa7d89c9cd81295b2ae33279caa4be /dbaccess | |
parent | 7823ea5a6b63f4617684ebbbe2822d12e0323511 (diff) |
weld OSaveAsDlg
Change-Id: I745cdca8b79308db27ccd4fd2c9d4b557e3f6fce
Reviewed-on: https://gerrit.libreoffice.org/68624
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/source/ui/app/AppController.cxx | 25 | ||||
-rw-r--r-- | dbaccess/source/ui/app/AppControllerDnD.cxx | 19 | ||||
-rw-r--r-- | dbaccess/source/ui/app/AppControllerGen.cxx | 13 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/CollectionView.cxx | 2 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/dlgsave.cxx | 260 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/UITools.hxx | 2 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/dlgsave.hxx | 18 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/UITools.cxx | 19 | ||||
-rw-r--r-- | dbaccess/source/ui/querydesign/querycontroller.cxx | 12 | ||||
-rw-r--r-- | dbaccess/source/ui/tabledesign/TableController.cxx | 10 | ||||
-rw-r--r-- | dbaccess/uiconfig/ui/savedialog.ui | 58 |
11 files changed, 227 insertions, 211 deletions
diff --git a/dbaccess/source/ui/app/AppController.cxx b/dbaccess/source/ui/app/AppController.cxx index 391707a43c9b..efa5f95d8453 100644 --- a/dbaccess/source/ui/app/AppController.cxx +++ b/dbaccess/source/ui/app/AppController.cxx @@ -2013,7 +2013,7 @@ void OApplicationController::renameEntry() if ( xContainer.is() ) { std::unique_ptr< IObjectNameCheck > pNameChecker; - VclPtr< OSaveAsDlg > aDialog; + std::unique_ptr<OSaveAsDlg> xDialog; Reference<XRename> xRename; const ElementType eType = getContainer()->getElementType(); @@ -2046,9 +2046,8 @@ void OApplicationController::renameEntry() } } pNameChecker.reset( new HierarchicalNameCheck( xHNames.get(), OUString() ) ); - aDialog.reset( VclPtr<OSaveAsDlg>::Create( - - getView(), getORB(), sName, sLabel, *pNameChecker, SADFlags::TitleRename ) ); + xDialog.reset(new OSaveAsDlg( + getFrameWeld(), getORB(), sName, sLabel, *pNameChecker, SADFlags::TitleRename)); } } } @@ -2066,37 +2065,35 @@ void OApplicationController::renameEntry() ensureConnection(); pNameChecker.reset( new DynamicTableOrQueryNameCheck( getConnection(), nCommandType ) ); - aDialog.reset( VclPtr<OSaveAsDlg>::Create( - - getView(), nCommandType, getORB(), getConnection(), - *aList.begin(), *pNameChecker, SADFlags::TitleRename ) ); + xDialog.reset(new OSaveAsDlg(getFrameWeld(), nCommandType, getORB(), getConnection(), + *aList.begin(), *pNameChecker, SADFlags::TitleRename)); } break; default: break; } - if ( xRename.is() && aDialog.get() ) + if (xRename.is() && xDialog) { bool bTryAgain = true; while( bTryAgain ) { - if ( aDialog->Execute() == RET_OK ) + if (xDialog->run() == RET_OK) { try { OUString sNewName; if ( eType == E_TABLE ) { - OUString sName = aDialog->getName(); - OUString sCatalog = aDialog->getCatalog(); - OUString sSchema = aDialog->getSchema(); + OUString sName = xDialog->getName(); + OUString sCatalog = xDialog->getCatalog(); + OUString sSchema = xDialog->getSchema(); sNewName = ::dbtools::composeTableName( m_xMetaData, sCatalog, sSchema, sName, false, ::dbtools::EComposeRule::InDataManipulation ); } else - sNewName = aDialog->getName(); + sNewName = xDialog->getName(); OUString sOldName = *aList.begin(); if ( eType == E_FORM || eType == E_REPORT ) diff --git a/dbaccess/source/ui/app/AppControllerDnD.cxx b/dbaccess/source/ui/app/AppControllerDnD.cxx index 18756710ff04..b77e875e6b79 100644 --- a/dbaccess/source/ui/app/AppControllerDnD.cxx +++ b/dbaccess/source/ui/app/AppControllerDnD.cxx @@ -680,18 +680,17 @@ bool OApplicationController::paste( ElementType _eType, const svx::ODataAccessDe has a /table/ with that name) */ if ( bNeedAskForName ) { - ScopedVclPtrInstance<OSaveAsDlg> aAskForName( - getView(), - CommandType::QUERY, - getORB(), - getConnection(), - sTargetName, - aNameChecker, - SADFlags::AdditionalDescription | SADFlags::TitlePasteAs ); - if ( RET_OK != aAskForName->Execute() ) + OSaveAsDlg aAskForName(getFrameWeld(), + CommandType::QUERY, + getORB(), + getConnection(), + sTargetName, + aNameChecker, + SADFlags::AdditionalDescription | SADFlags::TitlePasteAs ); + if ( RET_OK != aAskForName.run() ) // cancelled by the user return false; - sTargetName = aAskForName->getName(); + sTargetName = aAskForName.getName(); } // create a new object diff --git a/dbaccess/source/ui/app/AppControllerGen.cxx b/dbaccess/source/ui/app/AppControllerGen.cxx index 4d71e1f4fcfd..2e4512575a3a 100644 --- a/dbaccess/source/ui/app/AppControllerGen.cxx +++ b/dbaccess/source/ui/app/AppControllerGen.cxx @@ -64,6 +64,7 @@ #include <vcl/weld.hxx> #include <vcl/mnemonic.hxx> #include <vcl/svapp.hxx> +#include <vcl/syswin.hxx> #include <vcl/waitobj.hxx> #include <osl/mutex.hxx> @@ -108,12 +109,12 @@ void OApplicationController::convertToView(const OUString& _sName) const OUString aDefaultName = ::dbaui::createDefaultName(xMeta, xTables, DBA_RES(STR_TBL_TITLE).getToken(0, ' ')); DynamicTableOrQueryNameCheck aNameChecker( xConnection, CommandType::TABLE ); - ScopedVclPtrInstance< OSaveAsDlg > aDlg( getView(), CommandType::TABLE, getORB(), xConnection, aDefaultName, aNameChecker, SADFlags::NONE ); - if ( aDlg->Execute() == RET_OK ) + OSaveAsDlg aDlg(getFrameWeld(), CommandType::TABLE, getORB(), xConnection, aDefaultName, aNameChecker, SADFlags::NONE); + if (aDlg.run() == RET_OK) { - OUString sName = aDlg->getName(); - OUString sCatalog = aDlg->getCatalog(); - OUString sSchema = aDlg->getSchema(); + OUString sName = aDlg.getName(); + OUString sCatalog = aDlg.getCatalog(); + OUString sSchema = aDlg.getSchema(); OUString sNewName( ::dbtools::composeTableName( xMeta, sCatalog, sSchema, sName, false, ::dbtools::EComposeRule::InTableDefinitions ) ); Reference<XPropertySet> xView = ::dbaui::createView(sNewName,xConnection,xSourceObject); @@ -591,7 +592,7 @@ void OApplicationController::onDocumentOpened( const OUString& _rName, const sal bool OApplicationController::insertHierachyElement(ElementType _eType, const OUString& _sParentFolder, bool _bCollection, const Reference<XContent>& _xContent, bool _bMove) { Reference<XHierarchicalNameContainer> xNames(getElements(_eType), UNO_QUERY); - return dbaui::insertHierachyElement(getView() + return dbaui::insertHierachyElement(getFrameWeld() ,getORB() ,xNames ,_sParentFolder diff --git a/dbaccess/source/ui/dlg/CollectionView.cxx b/dbaccess/source/ui/dlg/CollectionView.cxx index c9cd2f991682..c1156b446bf1 100644 --- a/dbaccess/source/ui/dlg/CollectionView.cxx +++ b/dbaccess/source/ui/dlg/CollectionView.cxx @@ -196,7 +196,7 @@ IMPL_LINK_NOARG(OCollectionView, NewFolder_Click, Button*, void) try { Reference<XHierarchicalNameContainer> xNameContainer(m_xContent,UNO_QUERY); - if ( dbaui::insertHierachyElement(this,m_xContext,xNameContainer,OUString(),m_bCreateForm) ) + if ( dbaui::insertHierachyElement(GetFrameWeld(),m_xContext,xNameContainer,OUString(),m_bCreateForm) ) m_pView->Initialize(m_xContent); } catch( const SQLException& ) diff --git a/dbaccess/source/ui/dlg/dlgsave.cxx b/dbaccess/source/ui/dlg/dlgsave.cxx index e5c549214005..8716ff3af1a4 100644 --- a/dbaccess/source/ui/dlg/dlgsave.cxx +++ b/dbaccess/source/ui/dlg/dlgsave.cxx @@ -44,17 +44,10 @@ using namespace ::com::sun::star::sdb; using namespace ::com::sun::star::sdbc; namespace dbaui { + class OSaveAsDlgImpl { public: - VclPtr<FixedText> m_pDescription; - VclPtr<FixedText> m_pCatalogLbl; - VclPtr<OSQLNameComboBox> m_pCatalog; - VclPtr<FixedText> m_pSchemaLbl; - VclPtr<OSQLNameComboBox> m_pSchema; - VclPtr<FixedText> m_pLabel; - VclPtr<OSQLNameEdit> m_pTitle; - VclPtr<OKButton> m_pPB_OK; OUString m_aQryLabel; OUString m_sTblLabel; OUString m_aName; @@ -63,12 +56,25 @@ public: sal_Int32 m_nType; SADFlags m_nFlags; - OSaveAsDlgImpl( OSaveAsDlg* pParent, sal_Int32 _rType, + OSQLNameChecker m_aChecker; + + std::unique_ptr<weld::Label> m_xDescription; + std::unique_ptr<weld::Label> m_xCatalogLbl; + std::unique_ptr<weld::ComboBox> m_xCatalog; + std::unique_ptr<weld::Label> m_xSchemaLbl; + std::unique_ptr<weld::ComboBox> m_xSchema; + std::unique_ptr<weld::Label> m_xLabel; + std::unique_ptr<weld::Entry> m_xTitle; + std::unique_ptr<weld::Button> m_xPB_OK; + + DECL_LINK(TextFilterHdl, OUString&, bool); + + OSaveAsDlgImpl( weld::Builder* pParent, sal_Int32 _rType, const css::uno::Reference< css::sdbc::XConnection>& _xConnection, const OUString& rDefault, const IObjectNameCheck& _rObjectNameCheck, SADFlags _nFlags); - OSaveAsDlgImpl( OSaveAsDlg* pParent, + OSaveAsDlgImpl( weld::Builder* pParent, const OUString& rDefault, const IObjectNameCheck& _rObjectNameCheck, SADFlags _nFlags); @@ -76,7 +82,15 @@ public: } // dbaui -OSaveAsDlgImpl::OSaveAsDlgImpl(OSaveAsDlg* pParent, +IMPL_LINK(OSaveAsDlgImpl, TextFilterHdl, OUString&, rTest, bool) +{ + OUString sCorrected; + if (m_aChecker.checkString(rTest, sCorrected)) + rTest = sCorrected; + return true; +} + +OSaveAsDlgImpl::OSaveAsDlgImpl(weld::Builder* pBuilder, sal_Int32 _rType, const Reference< XConnection>& _xConnection, const OUString& rDefault, @@ -88,31 +102,31 @@ OSaveAsDlgImpl::OSaveAsDlgImpl(OSaveAsDlg* pParent, , m_rObjectNameCheck( _rObjectNameCheck ) , m_nType(_rType) , m_nFlags(_nFlags) + , m_aChecker(OUString()) + , m_xDescription(pBuilder->weld_label("descriptionft")) + , m_xCatalogLbl(pBuilder->weld_label("catalogft")) + , m_xCatalog(pBuilder->weld_combo_box("catalog")) + , m_xSchemaLbl(pBuilder->weld_label("schemaft")) + , m_xSchema(pBuilder->weld_combo_box("schema")) + , m_xLabel(pBuilder->weld_label("titleft")) + , m_xTitle(pBuilder->weld_entry("title")) + , m_xPB_OK(pBuilder->weld_button("ok")) { - pParent->get(m_pDescription, "descriptionft"); - pParent->get(m_pCatalogLbl, "catalogft"); - pParent->get(m_pCatalog, "catalog"); - pParent->get(m_pSchemaLbl, "schemaft"); - pParent->get(m_pSchema, "schema"); - pParent->get(m_pLabel, "titleft"); - pParent->get(m_pTitle, "title"); - pParent->get(m_pPB_OK, "ok"); - if ( _xConnection.is() ) m_xMetaData = _xConnection->getMetaData(); - if ( m_xMetaData.is() ) { - OUString sExtraNameChars( m_xMetaData->getExtraNameCharacters() ); - m_pCatalog->setAllowedChars( sExtraNameChars ); - m_pSchema->setAllowedChars( sExtraNameChars ); - m_pTitle->setAllowedChars( sExtraNameChars ); + if (m_xMetaData.is()) + { + OUString sExtraNameChars(m_xMetaData->getExtraNameCharacters()); + m_aChecker.setAllowedChars(sExtraNameChars); } - m_pCatalog->SetDropDownLineCount( 10 ); - m_pSchema->SetDropDownLineCount( 10 ); + m_xTitle->connect_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl)); + m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl)); + m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl)); } -OSaveAsDlgImpl::OSaveAsDlgImpl(OSaveAsDlg* pParent, +OSaveAsDlgImpl::OSaveAsDlgImpl(weld::Builder* pBuilder, const OUString& rDefault, const IObjectNameCheck& _rObjectNameCheck, SADFlags _nFlags) @@ -122,18 +136,19 @@ OSaveAsDlgImpl::OSaveAsDlgImpl(OSaveAsDlg* pParent, , m_rObjectNameCheck( _rObjectNameCheck ) , m_nType(CommandType::COMMAND) , m_nFlags(_nFlags) + , m_aChecker(OUString()) + , m_xDescription(pBuilder->weld_label("descriptionft")) + , m_xCatalogLbl(pBuilder->weld_label("catalogft")) + , m_xCatalog(pBuilder->weld_combo_box("catalog")) + , m_xSchemaLbl(pBuilder->weld_label("schemaft")) + , m_xSchema(pBuilder->weld_combo_box("schema")) + , m_xLabel(pBuilder->weld_label("titleft")) + , m_xTitle(pBuilder->weld_entry("title")) + , m_xPB_OK(pBuilder->weld_button("ok")) { - pParent->get(m_pDescription, "descriptionft"); - pParent->get(m_pCatalogLbl, "catalogft"); - pParent->get(m_pCatalog, "catalog"); - pParent->get(m_pSchemaLbl, "schemaft"); - pParent->get(m_pSchema, "schema"); - pParent->get(m_pLabel, "titleft"); - pParent->get(m_pTitle, "title"); - pParent->get(m_pPB_OK, "ok"); - - m_pCatalog->SetDropDownLineCount( 10 ); - m_pSchema->SetDropDownLineCount( 10 ); + m_xTitle->connect_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl)); + m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl)); + m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlgImpl, TextFilterHdl)); } using namespace ::com::sun::star::lang; @@ -142,7 +157,7 @@ namespace { typedef Reference< XResultSet > (SAL_CALL XDatabaseMetaData::*FGetMetaStrings)(); -void lcl_fillComboList( ComboBox& _rList, const Reference< XConnection >& _rxConnection, +void lcl_fillComboList( weld::ComboBox& _rList, const Reference< XConnection >& _rxConnection, FGetMetaStrings GetAll, const OUString& _rCurrent ) { try { @@ -154,31 +169,31 @@ void lcl_fillComboList( ComboBox& _rList, const Reference< XConnection >& _rxCon while ( xRes->next() ) { sValue = xRow->getString( 1 ); if ( !xRow->wasNull() ) - _rList.InsertEntry( sValue ); + _rList.append_text( sValue ); } - sal_Int32 nPos = _rList.GetEntryPos( _rCurrent ); - if ( nPos != COMBOBOX_ENTRY_NOTFOUND ) - _rList.SelectEntryPos( nPos ); + int nPos = _rList.find_text( _rCurrent ); + if (nPos != -1) + _rList.set_active( nPos ); else - _rList.SelectEntryPos( 0 ); + _rList.set_active( 0 ); } catch( const Exception& ) { DBG_UNHANDLED_EXCEPTION("dbaccess"); } } } -OSaveAsDlg::OSaveAsDlg( vcl::Window * pParent, +OSaveAsDlg::OSaveAsDlg( weld::Window * pParent, sal_Int32 _rType, const Reference< XComponentContext >& _rxContext, const Reference< XConnection>& _xConnection, const OUString& rDefault, const IObjectNameCheck& _rObjectNameCheck, SADFlags _nFlags) - : ModalDialog(pParent, "SaveDialog", "dbaccess/ui/savedialog.ui") + : GenericDialogController(pParent, "dbaccess/ui/savedialog.ui", "SaveDialog") , m_xContext( _rxContext ) { - m_pImpl.reset( new OSaveAsDlgImpl(this,_rType,_xConnection,rDefault,_rObjectNameCheck,_nFlags) ); + m_pImpl.reset( new OSaveAsDlgImpl(m_xBuilder.get(),_rType,_xConnection,rDefault,_rObjectNameCheck,_nFlags) ); switch (_rType) { case CommandType::QUERY: @@ -188,21 +203,21 @@ OSaveAsDlg::OSaveAsDlg( vcl::Window * pParent, case CommandType::TABLE: OSL_ENSURE( m_pImpl->m_xMetaData.is(), "OSaveAsDlg::OSaveAsDlg: no meta data for entering table names: this will crash!" ); { - m_pImpl->m_pLabel->SetText(m_pImpl->m_sTblLabel); + m_pImpl->m_xLabel->set_label(m_pImpl->m_sTblLabel); if(m_pImpl->m_xMetaData.is() && !m_pImpl->m_xMetaData->supportsCatalogsInTableDefinitions()) { - m_pImpl->m_pCatalogLbl->Hide(); - m_pImpl->m_pCatalog->Hide(); + m_pImpl->m_xCatalogLbl->hide(); + m_pImpl->m_xCatalog->hide(); } else { // now fill the catalogs - lcl_fillComboList( *m_pImpl->m_pCatalog, _xConnection, + lcl_fillComboList( *m_pImpl->m_xCatalog, _xConnection, &XDatabaseMetaData::getCatalogs, _xConnection->getCatalog() ); } if ( !m_pImpl->m_xMetaData->supportsSchemasInTableDefinitions()) { - m_pImpl->m_pSchemaLbl->Hide(); - m_pImpl->m_pSchema->Hide(); + m_pImpl->m_xSchemaLbl->hide(); + m_pImpl->m_xSchema->hide(); } else { - lcl_fillComboList( *m_pImpl->m_pSchema, _xConnection, + lcl_fillComboList( *m_pImpl->m_xSchema, _xConnection, &XDatabaseMetaData::getSchemas, m_pImpl->m_xMetaData->getUserName() ); } @@ -216,31 +231,30 @@ OSaveAsDlg::OSaveAsDlg( vcl::Window * pParent, sTable, ::dbtools::EComposeRule::InDataManipulation); - sal_Int32 nPos = m_pImpl->m_pCatalog->GetEntryPos(sCatalog); - if ( nPos != COMBOBOX_ENTRY_NOTFOUND ) - m_pImpl->m_pCatalog->SelectEntryPos(nPos); + int nPos = m_pImpl->m_xCatalog->find_text(sCatalog); + if (nPos != -1) + m_pImpl->m_xCatalog->set_active(nPos); if ( !sSchema.isEmpty() ) { - nPos = m_pImpl->m_pSchema->GetEntryPos(sSchema); - if ( nPos != COMBOBOX_ENTRY_NOTFOUND ) - m_pImpl->m_pSchema->SelectEntryPos(nPos); + nPos = m_pImpl->m_xSchema->find_text(sSchema); + if (nPos != -1) + m_pImpl->m_xSchema->set_active(nPos); } - m_pImpl->m_pTitle->SetText(sTable); + m_pImpl->m_xTitle->set_text(sTable); } else - m_pImpl->m_pTitle->SetText(m_pImpl->m_aName); - m_pImpl->m_pTitle->SetSelection( Selection( SELECTION_MIN, SELECTION_MAX ) ); + m_pImpl->m_xTitle->set_text(m_pImpl->m_aName); + m_pImpl->m_xTitle->select_region(0, -1); sal_Int32 nLength = m_pImpl->m_xMetaData.is() ? m_pImpl->m_xMetaData->getMaxTableNameLength() : 0; - nLength = nLength ? nLength : EDIT_NOLIMIT; - - m_pImpl->m_pTitle->SetMaxTextLen(nLength); - m_pImpl->m_pSchema->SetMaxTextLen(nLength); - m_pImpl->m_pCatalog->SetMaxTextLen(nLength); + if (nLength) + { + m_pImpl->m_xTitle->set_max_length(nLength); + m_pImpl->m_xSchema->set_entry_max_length(nLength); + m_pImpl->m_xCatalog->set_entry_max_length(nLength); + } bool bCheck = _xConnection.is() && isSQL92CheckEnabled(_xConnection); - m_pImpl->m_pTitle->setCheck(bCheck); // enable non valid sql chars as well - m_pImpl->m_pSchema->setCheck(bCheck); // enable non valid sql chars as well - m_pImpl->m_pCatalog->setCheck(bCheck); // enable non valid sql chars as well + m_pImpl->m_aChecker.setCheck(bCheck); // enable non valid sql chars as well } break; @@ -251,91 +265,81 @@ OSaveAsDlg::OSaveAsDlg( vcl::Window * pParent, implInit(); } -OSaveAsDlg::OSaveAsDlg( vcl::Window * pParent, - const Reference< XComponentContext >& _rxContext, - const OUString& rDefault, - const OUString& _sLabel, - const IObjectNameCheck& _rObjectNameCheck, - SADFlags _nFlags) - : ModalDialog(pParent, "SaveDialog", "dbaccess/ui/savedialog.ui") +OSaveAsDlg::OSaveAsDlg(weld::Window * pParent, + const Reference< XComponentContext >& _rxContext, + const OUString& rDefault, + const OUString& _sLabel, + const IObjectNameCheck& _rObjectNameCheck, + SADFlags _nFlags) + : GenericDialogController(pParent, "dbaccess/ui/savedialog.ui", "SaveDialog") , m_xContext( _rxContext ) { - m_pImpl.reset( new OSaveAsDlgImpl(this,rDefault,_rObjectNameCheck,_nFlags) ); + m_pImpl.reset( new OSaveAsDlgImpl(m_xBuilder.get(),rDefault,_rObjectNameCheck,_nFlags) ); implInitOnlyTitle(_sLabel); implInit(); } OSaveAsDlg::~OSaveAsDlg() { - disposeOnce(); -} - -void OSaveAsDlg::dispose() -{ - m_pImpl.reset(); - ModalDialog::dispose(); } -IMPL_LINK(OSaveAsDlg, ButtonClickHdl, Button *, pButton, void) +IMPL_LINK_NOARG(OSaveAsDlg, ButtonClickHdl, weld::Button&, void) { - if (pButton == m_pImpl->m_pPB_OK) { - m_pImpl->m_aName = m_pImpl->m_pTitle->GetText(); - - OUString sNameToCheck( m_pImpl->m_aName ); - - if ( m_pImpl->m_nType == CommandType::TABLE ) { - sNameToCheck = ::dbtools::composeTableName( - m_pImpl->m_xMetaData, - getCatalog(), - getSchema(), - sNameToCheck, - false, // no quoting - ::dbtools::EComposeRule::InDataManipulation - ); - } + m_pImpl->m_aName = m_pImpl->m_xTitle->get_text(); + + OUString sNameToCheck( m_pImpl->m_aName ); + + if ( m_pImpl->m_nType == CommandType::TABLE ) { + sNameToCheck = ::dbtools::composeTableName( + m_pImpl->m_xMetaData, + getCatalog(), + getSchema(), + sNameToCheck, + false, // no quoting + ::dbtools::EComposeRule::InDataManipulation + ); + } - SQLExceptionInfo aNameError; - if ( m_pImpl->m_rObjectNameCheck.isNameValid( sNameToCheck, aNameError ) ) - EndDialog( RET_OK ); + SQLExceptionInfo aNameError; + if ( m_pImpl->m_rObjectNameCheck.isNameValid( sNameToCheck, aNameError ) ) + m_xDialog->response(RET_OK); - showError( aNameError, VCLUnoHelper::GetInterface(this), m_xContext ); - m_pImpl->m_pTitle->GrabFocus(); - } + showError(aNameError, m_xDialog->GetXWindow(), m_xContext); + m_pImpl->m_xTitle->grab_focus(); } -IMPL_LINK(OSaveAsDlg, EditModifyHdl, Edit&, rEdit, void ) +IMPL_LINK_NOARG(OSaveAsDlg, EditModifyHdl, weld::Entry&, void) { - if (&rEdit == m_pImpl->m_pTitle) - m_pImpl->m_pPB_OK->Enable(!m_pImpl->m_pTitle->GetText().isEmpty()); + m_pImpl->m_xPB_OK->set_sensitive(!m_pImpl->m_xTitle->get_text().isEmpty()); } void OSaveAsDlg::implInitOnlyTitle(const OUString& _rLabel) { - m_pImpl->m_pLabel->SetText(_rLabel); - m_pImpl->m_pCatalogLbl->Hide(); - m_pImpl->m_pCatalog->Hide(); - m_pImpl->m_pSchemaLbl->Hide(); - m_pImpl->m_pSchema->Hide(); - - m_pImpl->m_pTitle->SetText(m_pImpl->m_aName); - m_pImpl->m_pTitle->setCheck(false); // enable non valid sql chars as well + m_pImpl->m_xLabel->set_label(_rLabel); + m_pImpl->m_xCatalogLbl->hide(); + m_pImpl->m_xCatalog->hide(); + m_pImpl->m_xSchemaLbl->hide(); + m_pImpl->m_xSchema->hide(); + + m_pImpl->m_xTitle->set_text(m_pImpl->m_aName); + m_pImpl->m_aChecker.setCheck(false); // enable non valid sql chars as well } void OSaveAsDlg::implInit() { if ( !( m_pImpl->m_nFlags & SADFlags::AdditionalDescription ) ) { // hide the description window - m_pImpl->m_pDescription->Hide(); + m_pImpl->m_xDescription->hide(); } if ( SADFlags::TitlePasteAs == ( m_pImpl->m_nFlags & SADFlags::TitlePasteAs ) ) - SetText( DBA_RES( STR_TITLE_PASTE_AS ) ); + m_xDialog->set_title( DBA_RES( STR_TITLE_PASTE_AS ) ); else if ( SADFlags::TitleRename == ( m_pImpl->m_nFlags & SADFlags::TitleRename ) ) - SetText( DBA_RES( STR_TITLE_RENAME ) ); + m_xDialog->set_title( DBA_RES( STR_TITLE_RENAME ) ); - m_pImpl->m_pPB_OK->SetClickHdl(LINK(this,OSaveAsDlg,ButtonClickHdl)); - m_pImpl->m_pTitle->SetModifyHdl(LINK(this,OSaveAsDlg,EditModifyHdl)); - m_pImpl->m_pTitle->GrabFocus(); + m_pImpl->m_xPB_OK->connect_clicked(LINK(this,OSaveAsDlg,ButtonClickHdl)); + m_pImpl->m_xTitle->connect_changed(LINK(this,OSaveAsDlg,EditModifyHdl)); + m_pImpl->m_xTitle->grab_focus(); } const OUString& OSaveAsDlg::getName() const @@ -344,11 +348,11 @@ const OUString& OSaveAsDlg::getName() const } OUString OSaveAsDlg::getCatalog() const { - return m_pImpl->m_pCatalog->IsVisible() ? m_pImpl->m_pCatalog->GetText() : OUString(); + return m_pImpl->m_xCatalog->get_visible() ? m_pImpl->m_xCatalog->get_active_text() : OUString(); } OUString OSaveAsDlg::getSchema() const { - return m_pImpl->m_pSchema->IsVisible() ? m_pImpl->m_pSchema->GetText() : OUString(); + return m_pImpl->m_xSchema->get_visible() ? m_pImpl->m_xSchema->get_active_text() : OUString(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/dbaccess/source/ui/inc/UITools.hxx b/dbaccess/source/ui/inc/UITools.hxx index 8b08d08a31ee..e98f7539d694 100644 --- a/dbaccess/source/ui/inc/UITools.hxx +++ b/dbaccess/source/ui/inc/UITools.hxx @@ -377,7 +377,7 @@ namespace dbaui <TRUE/> if the insert opertions was successful, otherwise <FALSE/>. */ bool insertHierachyElement( - vcl::Window* _pParent, + weld::Window* pParent, const css::uno::Reference< css::uno::XComponentContext >& _rxContext, const css::uno::Reference< css::container::XHierarchicalNameContainer>& _xNames, const OUString& _sParentFolder, diff --git a/dbaccess/source/ui/inc/dlgsave.hxx b/dbaccess/source/ui/inc/dlgsave.hxx index 3b4be283fc46..cb55e2cc8d6f 100644 --- a/dbaccess/source/ui/inc/dlgsave.hxx +++ b/dbaccess/source/ui/inc/dlgsave.hxx @@ -21,11 +21,11 @@ #define INCLUDED_DBACCESS_SOURCE_UI_INC_DLGSAVE_HXX #include <apitools.hxx> -#include <vcl/dialog.hxx> #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/uno/XComponentContext.hpp> -#include <memory> #include <o3tl/typed_flags_set.hxx> +#include <vcl/weld.hxx> +#include <memory> namespace com { namespace sun { namespace star { namespace sdbc { @@ -43,41 +43,37 @@ namespace o3tl { template<> struct typed_flags<SADFlags> : is_typed_flags<SADFlags, 0x0301> {}; } - -class Button; -class Edit; namespace dbaui { class OSaveAsDlgImpl; class IObjectNameCheck; - class OSaveAsDlg : public ModalDialog + class OSaveAsDlg : public weld::GenericDialogController { private: std::unique_ptr<OSaveAsDlgImpl> m_pImpl; css::uno::Reference< css::uno::XComponentContext > m_xContext; public: - OSaveAsDlg( vcl::Window * pParent, sal_Int32 _rType, + OSaveAsDlg( weld::Window * pParent, sal_Int32 _rType, const css::uno::Reference< css::uno::XComponentContext >& _rxContext, const css::uno::Reference< css::sdbc::XConnection>& _xConnection, const OUString& rDefault, const IObjectNameCheck& _rObjectNameCheck, SADFlags _nFlags); - OSaveAsDlg( vcl::Window* _pParent, + OSaveAsDlg( weld::Window* _pParent, const css::uno::Reference< css::uno::XComponentContext >& _rxContext, const OUString& _rDefault, const OUString& _sLabel, const IObjectNameCheck& _rObjectNameCheck, SADFlags _nFlags); virtual ~OSaveAsDlg() override; - virtual void dispose() override; const OUString& getName() const; OUString getCatalog() const; OUString getSchema() const; private: - DECL_LINK(ButtonClickHdl, Button *, void); - DECL_LINK(EditModifyHdl, Edit&, void); + DECL_LINK(ButtonClickHdl, weld::Button&, void); + DECL_LINK(EditModifyHdl, weld::Entry&, void); void implInitOnlyTitle(const OUString& _rLabel); void implInit(); diff --git a/dbaccess/source/ui/misc/UITools.cxx b/dbaccess/source/ui/misc/UITools.cxx index 9f7b94ca488c..25049a904e08 100644 --- a/dbaccess/source/ui/misc/UITools.cxx +++ b/dbaccess/source/ui/misc/UITools.cxx @@ -1292,7 +1292,7 @@ Reference<XPropertySet> createView( const OUString& _rName, const Reference< XCo return createView( _rName, _rxConnection, sCommand ); } -bool insertHierachyElement( vcl::Window* _pParent, const Reference< XComponentContext >& _rxContext, +bool insertHierachyElement(weld::Window* pParent, const Reference< XComponentContext >& _rxContext, const Reference<XHierarchicalNameContainer>& _xNames, const OUString& _sParentFolder, bool _bForm, @@ -1337,18 +1337,17 @@ bool insertHierachyElement( vcl::Window* _pParent, const Reference< XComponentCo // here we have everything needed to create a new query object ... HierarchicalNameCheck aNameChecker( _xNames.get(), _sParentFolder ); // ... ehm, except a new name - ScopedVclPtrInstance<OSaveAsDlg> aAskForName( - _pParent, - _rxContext, - sTargetName, - sLabel, - aNameChecker, - SADFlags::AdditionalDescription | SADFlags::TitlePasteAs ); - if ( RET_OK != aAskForName->Execute() ) + OSaveAsDlg aAskForName(pParent, + _rxContext, + sTargetName, + sLabel, + aNameChecker, + SADFlags::AdditionalDescription | SADFlags::TitlePasteAs); + if ( RET_OK != aAskForName.run() ) // cancelled by the user return false; - sNewName = aAskForName->getName(); + sNewName = aAskForName.getName(); } } else if ( xNameAccess->hasByName(sNewName) ) diff --git a/dbaccess/source/ui/querydesign/querycontroller.cxx b/dbaccess/source/ui/querydesign/querycontroller.cxx index ea956ad90ccc..48e02ec47111 100644 --- a/dbaccess/source/ui/querydesign/querycontroller.cxx +++ b/dbaccess/source/ui/querydesign/querycontroller.cxx @@ -1207,8 +1207,8 @@ bool OQueryController::askForNewName(const Reference<XNameAccess>& _xElements, b } DynamicTableOrQueryNameCheck aNameChecker( getConnection(), CommandType::QUERY ); - ScopedVclPtrInstance<OSaveAsDlg> aDlg( - getView(), + OSaveAsDlg aDlg( + getFrameWeld(), m_nCommandType, getORB(), getConnection(), @@ -1216,14 +1216,14 @@ bool OQueryController::askForNewName(const Reference<XNameAccess>& _xElements, b aNameChecker, SADFlags::NONE ); - bRet = ( aDlg->Execute() == RET_OK ); + bRet = ( aDlg.run() == RET_OK ); if ( bRet ) { - m_sName = aDlg->getName(); + m_sName = aDlg.getName(); if ( editingView() ) { - m_sUpdateCatalogName = aDlg->getCatalog(); - m_sUpdateSchemaName = aDlg->getSchema(); + m_sUpdateCatalogName = aDlg.getCatalog(); + m_sUpdateSchemaName = aDlg.getSchema(); } } } diff --git a/dbaccess/source/ui/tabledesign/TableController.cxx b/dbaccess/source/ui/tabledesign/TableController.cxx index b5c3aab719b9..e8335fbce67e 100644 --- a/dbaccess/source/ui/tabledesign/TableController.cxx +++ b/dbaccess/source/ui/tabledesign/TableController.cxx @@ -301,13 +301,13 @@ bool OTableController::doSaveDoc(bool _bSaveAs) aDefaultName = ::dbtools::createUniqueName(xTables,aDefaultName); DynamicTableOrQueryNameCheck aNameChecker( getConnection(), CommandType::TABLE ); - ScopedVclPtrInstance< OSaveAsDlg > aDlg( getView(), CommandType::TABLE, getORB(), getConnection(), aDefaultName, aNameChecker, SADFlags::NONE ); - if ( aDlg->Execute() != RET_OK ) + OSaveAsDlg aDlg(getFrameWeld(), CommandType::TABLE, getORB(), getConnection(), aDefaultName, aNameChecker, SADFlags::NONE); + if (aDlg.run() != RET_OK) return false; - m_sName = aDlg->getName(); - sCatalog = aDlg->getCatalog(); - sSchema = aDlg->getSchema(); + m_sName = aDlg.getName(); + sCatalog = aDlg.getCatalog(); + sSchema = aDlg.getSchema(); } // did we get a name diff --git a/dbaccess/uiconfig/ui/savedialog.ui b/dbaccess/uiconfig/ui/savedialog.ui index 48e7c31cd529..5184395e5521 100644 --- a/dbaccess/uiconfig/ui/savedialog.ui +++ b/dbaccess/uiconfig/ui/savedialog.ui @@ -1,14 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="dba"> <requires lib="gtk+" version="3.18"/> - <requires lib="LibreOffice" version="1.0"/> <object class="GtkDialog" id="SaveDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="savedialog|SaveDialog">Save As</property> <property name="resizable">False</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> <property name="type_hint">dialog</property> + <child> + <placeholder/> + </child> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> @@ -81,10 +86,10 @@ <object class="GtkLabel" id="descriptionft"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="savedialog|descriptionft">Please enter a name for the object to be created:</property> <property name="wrap">True</property> <property name="max_width_chars">52</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -96,10 +101,10 @@ <object class="GtkLabel" id="catalogft"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">1</property> <property name="label" translatable="yes" context="savedialog|catalogft">_Catalog:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">catalog</property> + <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> @@ -110,10 +115,10 @@ <object class="GtkLabel" id="schemaft"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">1</property> <property name="label" translatable="yes" context="savedialog|schemaft">_Schema:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">schema</property> + <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> @@ -121,23 +126,12 @@ </packing> </child> <child> - <object class="dbulo-OSQLNameComboBox" id="schema"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="hexpand">True</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="top_attach">2</property> - </packing> - </child> - <child> <object class="GtkLabel" id="titleft"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">1</property> <property name="use_underline">True</property> <property name="mnemonic_widget">title</property> + <property name="xalign">1</property> </object> <packing> <property name="left_attach">0</property> @@ -145,10 +139,11 @@ </packing> </child> <child> - <object class="dbulo-OSQLNameEdit" id="title"> + <object class="GtkEntry" id="title"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hexpand">True</property> + <property name="activates_default">True</property> </object> <packing> <property name="left_attach">1</property> @@ -156,16 +151,41 @@ </packing> </child> <child> - <object class="dbulo-OSQLNameComboBox" id="catalog"> + <object class="GtkComboBoxText" id="catalog"> <property name="visible">True</property> <property name="can_focus">False</property> <property name="hexpand">True</property> + <property name="has_entry">True</property> + <child internal-child="entry"> + <object class="GtkEntry"> + <property name="can_focus">True</property> + <property name="activates_default">True</property> + </object> + </child> </object> <packing> <property name="left_attach">1</property> <property name="top_attach">1</property> </packing> </child> + <child> + <object class="GtkComboBoxText" id="schema"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="has_entry">True</property> + <child internal-child="entry"> + <object class="GtkEntry"> + <property name="can_focus">True</property> + <property name="activates_default">True</property> + </object> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">2</property> + </packing> + </child> </object> <packing> <property name="expand">False</property> |