[Libreoffice-commits] core.git: dbaccess/source dbaccess/uiconfig extras/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Sat Mar 2 21:40:41 UTC 2019


 dbaccess/source/ui/app/AppController.cxx           |   25 --
 dbaccess/source/ui/app/AppControllerDnD.cxx        |   19 -
 dbaccess/source/ui/app/AppControllerGen.cxx        |   13 -
 dbaccess/source/ui/dlg/CollectionView.cxx          |    2 
 dbaccess/source/ui/dlg/dlgsave.cxx                 |  260 ++++++++++-----------
 dbaccess/source/ui/inc/UITools.hxx                 |    2 
 dbaccess/source/ui/inc/dlgsave.hxx                 |   18 -
 dbaccess/source/ui/misc/UITools.cxx                |   19 -
 dbaccess/source/ui/querydesign/querycontroller.cxx |   12 
 dbaccess/source/ui/tabledesign/TableController.cxx |   10 
 dbaccess/uiconfig/ui/savedialog.ui                 |   58 +++-
 extras/source/glade/libreoffice-catalog.xml.in     |    7 
 12 files changed, 227 insertions(+), 218 deletions(-)

New commits:
commit 884df9f66ce5d28af256224e830651da2186af5d
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Sat Mar 2 16:08:30 2019 +0000
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Sat Mar 2 22:40:19 2019 +0100

    weld OSaveAsDlg
    
    Change-Id: I745cdca8b79308db27ccd4fd2c9d4b557e3f6fce
    Reviewed-on: https://gerrit.libreoffice.org/68624
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

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>
diff --git a/extras/source/glade/libreoffice-catalog.xml.in b/extras/source/glade/libreoffice-catalog.xml.in
index c2e95ce903fa..943855c27751 100644
--- a/extras/source/glade/libreoffice-catalog.xml.in
+++ b/extras/source/glade/libreoffice-catalog.xml.in
@@ -39,9 +39,6 @@
     <glade-widget-class title="Condition Edit" name="rptuilo-ConditionField"
                         generic-name="ConditionEdit" parent="GtkEntry"
                         icon-name="widget-gtk-comboboxtext"/>
-    <glade-widget-class title="OSQL NameEdit" name="dbulo-OSQLNameEdit"
-                        generic-name="OSQLNameEdit" parent="GtkEntry"
-                        icon-name="widget-gtk-textentry"/>
 
     <glade-widget-class title="VclComboBoxText" name="VclComboBoxText"
                         generic-name="ComboBoxText" parent="GtkComboBoxText"
@@ -117,10 +114,6 @@
       </properties>
     </glade-widget-class>
 
-    <glade-widget-class title="OSQL NameComboBox" name="dbulo-OSQLNameComboBox"
-                        generic-name="OSQLNameComboBox" parent="GtkComboBox"
-                        icon-name="widget-gtk-combobox"/>
-
     <glade-widget-class title="Font Preview" name="svxlo-SvxFontPrevWindow"
                         generic-name="Font Preview Window" parent="GtkDrawingArea"
                         icon-name="widget-gtk-drawingarea">


More information about the Libreoffice-commits mailing list