summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2022-09-04 21:21:17 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-09-05 11:47:26 +0200
commita80a7e286481ea668d33cdf9fcbf45d02fb10915 (patch)
treee4e4a56a201785d7be1a686494d176fc68e2b0ad /dbaccess/source/ui
parent26e3bfa02c4d582fd430171d509fa570ca364d35 (diff)
OSaveAsDlg doesn't need a pimpl
it is module private Change-Id: Ib1eb6ddbbfc181b72e4a69a211b27c901e59affd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139377 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'dbaccess/source/ui')
-rw-r--r--dbaccess/source/ui/dlg/dlgsave.cxx261
-rw-r--r--dbaccess/source/ui/inc/dlgsave.hxx25
2 files changed, 124 insertions, 162 deletions
diff --git a/dbaccess/source/ui/dlg/dlgsave.cxx b/dbaccess/source/ui/dlg/dlgsave.cxx
index 608e962b4669..9aeecae139ed 100644
--- a/dbaccess/source/ui/dlg/dlgsave.cxx
+++ b/dbaccess/source/ui/dlg/dlgsave.cxx
@@ -24,8 +24,6 @@
#include <com/sun/star/sdbc/XRow.hpp>
#include <connectivity/dbtools.hxx>
#include <UITools.hxx>
-#include <SqlNameEdit.hxx>
-#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <objectnamecheck.hxx>
#include <utility>
#include <comphelper/diagnose_ex.hxx>
@@ -36,47 +34,10 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::container;
using namespace ::com::sun::star::sdb;
using namespace ::com::sun::star::sdbc;
-namespace dbaui
-{
+using namespace ::com::sun::star::lang;
-class OSaveAsDlgImpl
-{
-public:
- OUString m_aQryLabel;
- OUString m_sTblLabel;
- OUString m_aName;
- const IObjectNameCheck& m_rObjectNameCheck;
- css::uno::Reference< css::sdbc::XDatabaseMetaData> m_xMetaData;
- sal_Int32 m_nType;
- SADFlags m_nFlags;
-
- 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,
- OUString sDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags);
- OSaveAsDlgImpl( weld::Builder* pParent,
- OUString sDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags);
-};
-
-} // dbaui
-
-IMPL_LINK(OSaveAsDlgImpl, TextFilterHdl, OUString&, rTest, bool)
+
+IMPL_LINK(OSaveAsDlg, TextFilterHdl, OUString&, rTest, bool)
{
OUString sCorrected;
if (m_aChecker.checkString(rTest, sCorrected))
@@ -84,69 +45,6 @@ IMPL_LINK(OSaveAsDlgImpl, TextFilterHdl, OUString&, rTest, bool)
return true;
}
-OSaveAsDlgImpl::OSaveAsDlgImpl(weld::Builder* pBuilder,
- sal_Int32 _rType,
- const Reference< XConnection>& _xConnection,
- OUString sDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags)
- : m_aQryLabel(DBA_RES(STR_QRY_LABEL))
- , m_sTblLabel(DBA_RES(STR_TBL_LABEL))
- , m_aName(std::move(sDefault))
- , 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"))
-{
- if ( _xConnection.is() )
- m_xMetaData = _xConnection->getMetaData();
-
- if (m_xMetaData.is())
- {
- OUString sExtraNameChars(m_xMetaData->getExtraNameCharacters());
- m_aChecker.setAllowedChars(sExtraNameChars);
- }
-
- 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(weld::Builder* pBuilder,
- OUString sDefault,
- const IObjectNameCheck& _rObjectNameCheck,
- SADFlags _nFlags)
- : m_aQryLabel(DBA_RES(STR_QRY_LABEL))
- , m_sTblLabel(DBA_RES(STR_TBL_LABEL))
- , m_aName(std::move(sDefault))
- , 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"))
-{
- 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;
-
namespace
{
typedef Reference< XResultSet > (SAL_CALL XDatabaseMetaData::*FGetMetaStrings)();
@@ -186,69 +84,95 @@ OSaveAsDlg::OSaveAsDlg( weld::Window * pParent,
SADFlags _nFlags)
: GenericDialogController(pParent, "dbaccess/ui/savedialog.ui", "SaveDialog")
, m_xContext( _rxContext )
+ , m_aQryLabel(DBA_RES(STR_QRY_LABEL))
+ , m_sTblLabel(DBA_RES(STR_TBL_LABEL))
+ , m_aName(rDefault)
+ , m_rObjectNameCheck( _rObjectNameCheck )
+ , m_nType(_rType)
+ , m_nFlags(_nFlags)
+ , m_aChecker(OUString())
+ , m_xDescription(m_xBuilder->weld_label("descriptionft"))
+ , m_xCatalogLbl(m_xBuilder->weld_label("catalogft"))
+ , m_xCatalog(m_xBuilder->weld_combo_box("catalog"))
+ , m_xSchemaLbl(m_xBuilder->weld_label("schemaft"))
+ , m_xSchema(m_xBuilder->weld_combo_box("schema"))
+ , m_xLabel(m_xBuilder->weld_label("titleft"))
+ , m_xTitle(m_xBuilder->weld_entry("title"))
+ , m_xPB_OK(m_xBuilder->weld_button("ok"))
{
- m_pImpl.reset( new OSaveAsDlgImpl(m_xBuilder.get(),_rType,_xConnection,rDefault,_rObjectNameCheck,_nFlags) );
+ if ( _xConnection.is() )
+ m_xMetaData = _xConnection->getMetaData();
+
+ if (m_xMetaData.is())
+ {
+ OUString sExtraNameChars(m_xMetaData->getExtraNameCharacters());
+ m_aChecker.setAllowedChars(sExtraNameChars);
+ }
+
+ m_xTitle->connect_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
switch (_rType) {
case CommandType::QUERY:
- implInitOnlyTitle(m_pImpl->m_aQryLabel);
+ implInitOnlyTitle(m_aQryLabel);
break;
case CommandType::TABLE:
- OSL_ENSURE( m_pImpl->m_xMetaData.is(), "OSaveAsDlg::OSaveAsDlg: no meta data for entering table names: this will crash!" );
+ OSL_ENSURE( m_xMetaData.is(), "OSaveAsDlg::OSaveAsDlg: no meta data for entering table names: this will crash!" );
{
- m_pImpl->m_xLabel->set_label(m_pImpl->m_sTblLabel);
- if(m_pImpl->m_xMetaData.is() && !m_pImpl->m_xMetaData->supportsCatalogsInTableDefinitions()) {
- m_pImpl->m_xCatalogLbl->hide();
- m_pImpl->m_xCatalog->hide();
+ m_xLabel->set_label(m_sTblLabel);
+ if(m_xMetaData.is() && !m_xMetaData->supportsCatalogsInTableDefinitions()) {
+ m_xCatalogLbl->hide();
+ m_xCatalog->hide();
} else {
// now fill the catalogs
- lcl_fillComboList( *m_pImpl->m_xCatalog, _xConnection,
+ lcl_fillComboList( *m_xCatalog, _xConnection,
&XDatabaseMetaData::getCatalogs, _xConnection->getCatalog() );
}
- if ( !m_pImpl->m_xMetaData->supportsSchemasInTableDefinitions()) {
- m_pImpl->m_xSchemaLbl->hide();
- m_pImpl->m_xSchema->hide();
+ if ( !m_xMetaData->supportsSchemasInTableDefinitions()) {
+ m_xSchemaLbl->hide();
+ m_xSchema->hide();
} else {
- lcl_fillComboList( *m_pImpl->m_xSchema, _xConnection,
- &XDatabaseMetaData::getSchemas, m_pImpl->m_xMetaData->getUserName() );
+ lcl_fillComboList( *m_xSchema, _xConnection,
+ &XDatabaseMetaData::getSchemas, m_xMetaData->getUserName() );
}
- OSL_ENSURE(m_pImpl->m_xMetaData.is(),"The metadata can not be null!");
- if(m_pImpl->m_aName.indexOf('.') != -1) {
+ OSL_ENSURE(m_xMetaData.is(),"The metadata can not be null!");
+ if(m_aName.indexOf('.') != -1) {
OUString sCatalog,sSchema,sTable;
- ::dbtools::qualifiedNameComponents(m_pImpl->m_xMetaData,
- m_pImpl->m_aName,
+ ::dbtools::qualifiedNameComponents(m_xMetaData,
+ m_aName,
sCatalog,
sSchema,
sTable,
::dbtools::EComposeRule::InDataManipulation);
- int nPos = m_pImpl->m_xCatalog->find_text(sCatalog);
+ int nPos = m_xCatalog->find_text(sCatalog);
if (nPos != -1)
- m_pImpl->m_xCatalog->set_active(nPos);
+ m_xCatalog->set_active(nPos);
if ( !sSchema.isEmpty() ) {
- nPos = m_pImpl->m_xSchema->find_text(sSchema);
+ nPos = m_xSchema->find_text(sSchema);
if (nPos != -1)
- m_pImpl->m_xSchema->set_active(nPos);
+ m_xSchema->set_active(nPos);
}
- m_pImpl->m_xTitle->set_text(sTable);
+ m_xTitle->set_text(sTable);
} else
- m_pImpl->m_xTitle->set_text(m_pImpl->m_aName);
- m_pImpl->m_xTitle->select_region(0, -1);
+ m_xTitle->set_text(m_aName);
+ m_xTitle->select_region(0, -1);
- sal_Int32 nLength = m_pImpl->m_xMetaData.is() ? m_pImpl->m_xMetaData->getMaxTableNameLength() : 0;
+ sal_Int32 nLength = m_xMetaData.is() ? m_xMetaData->getMaxTableNameLength() : 0;
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);
+ m_xTitle->set_max_length(nLength);
+ m_xSchema->set_entry_max_length(nLength);
+ m_xCatalog->set_entry_max_length(nLength);
}
bool bCheck = _xConnection.is() && isSQL92CheckEnabled(_xConnection);
- m_pImpl->m_aChecker.setCheck(bCheck); // enable non valid sql chars as well
+ m_aChecker.setCheck(bCheck); // enable non valid sql chars as well
}
break;
@@ -267,8 +191,25 @@ OSaveAsDlg::OSaveAsDlg(weld::Window * pParent,
SADFlags _nFlags)
: GenericDialogController(pParent, "dbaccess/ui/savedialog.ui", "SaveDialog")
, m_xContext( _rxContext )
+ , m_aQryLabel(DBA_RES(STR_QRY_LABEL))
+ , m_sTblLabel(DBA_RES(STR_TBL_LABEL))
+ , m_aName(rDefault)
+ , m_rObjectNameCheck( _rObjectNameCheck )
+ , m_nType(CommandType::COMMAND)
+ , m_nFlags(_nFlags)
+ , m_aChecker(OUString())
+ , m_xDescription(m_xBuilder->weld_label("descriptionft"))
+ , m_xCatalogLbl(m_xBuilder->weld_label("catalogft"))
+ , m_xCatalog(m_xBuilder->weld_combo_box("catalog"))
+ , m_xSchemaLbl(m_xBuilder->weld_label("schemaft"))
+ , m_xSchema(m_xBuilder->weld_combo_box("schema"))
+ , m_xLabel(m_xBuilder->weld_label("titleft"))
+ , m_xTitle(m_xBuilder->weld_entry("title"))
+ , m_xPB_OK(m_xBuilder->weld_button("ok"))
{
- m_pImpl.reset( new OSaveAsDlgImpl(m_xBuilder.get(),rDefault,_rObjectNameCheck,_nFlags) );
+ m_xTitle->connect_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xSchema->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
+ m_xCatalog->connect_entry_insert_text(LINK(this, OSaveAsDlg, TextFilterHdl));
implInitOnlyTitle(_sLabel);
implInit();
}
@@ -279,13 +220,13 @@ OSaveAsDlg::~OSaveAsDlg()
IMPL_LINK_NOARG(OSaveAsDlg, ButtonClickHdl, weld::Button&, void)
{
- m_pImpl->m_aName = m_pImpl->m_xTitle->get_text();
+ m_aName = m_xTitle->get_text();
- OUString sNameToCheck( m_pImpl->m_aName );
+ OUString sNameToCheck( m_aName );
- if ( m_pImpl->m_nType == CommandType::TABLE ) {
+ if ( m_nType == CommandType::TABLE ) {
sNameToCheck = ::dbtools::composeTableName(
- m_pImpl->m_xMetaData,
+ m_xMetaData,
getCatalog(),
getSchema(),
sNameToCheck,
@@ -295,58 +236,58 @@ IMPL_LINK_NOARG(OSaveAsDlg, ButtonClickHdl, weld::Button&, void)
}
SQLExceptionInfo aNameError;
- if ( m_pImpl->m_rObjectNameCheck.isNameValid( sNameToCheck, aNameError ) )
+ if ( m_rObjectNameCheck.isNameValid( sNameToCheck, aNameError ) )
m_xDialog->response(RET_OK);
showError(aNameError, m_xDialog->GetXWindow(), m_xContext);
- m_pImpl->m_xTitle->grab_focus();
+ m_xTitle->grab_focus();
}
IMPL_LINK_NOARG(OSaveAsDlg, EditModifyHdl, weld::Entry&, void)
{
- m_pImpl->m_xPB_OK->set_sensitive(!m_pImpl->m_xTitle->get_text().isEmpty());
+ m_xPB_OK->set_sensitive(!m_xTitle->get_text().isEmpty());
}
void OSaveAsDlg::implInitOnlyTitle(const OUString& _rLabel)
{
- 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
+ m_xLabel->set_label(_rLabel);
+ m_xCatalogLbl->hide();
+ m_xCatalog->hide();
+ m_xSchemaLbl->hide();
+ m_xSchema->hide();
+
+ m_xTitle->set_text(m_aName);
+ m_aChecker.setCheck(false); // enable non valid sql chars as well
}
void OSaveAsDlg::implInit()
{
- if ( !( m_pImpl->m_nFlags & SADFlags::AdditionalDescription ) ) {
+ if ( !( m_nFlags & SADFlags::AdditionalDescription ) ) {
// hide the description window
- m_pImpl->m_xDescription->hide();
+ m_xDescription->hide();
}
- if ( SADFlags::TitlePasteAs == ( m_pImpl->m_nFlags & SADFlags::TitlePasteAs ) )
+ if ( SADFlags::TitlePasteAs == ( m_nFlags & SADFlags::TitlePasteAs ) )
m_xDialog->set_title( DBA_RES( STR_TITLE_PASTE_AS ) );
- else if ( SADFlags::TitleRename == ( m_pImpl->m_nFlags & SADFlags::TitleRename ) )
+ else if ( SADFlags::TitleRename == ( m_nFlags & SADFlags::TitleRename ) )
m_xDialog->set_title( DBA_RES( STR_TITLE_RENAME ) );
- 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();
+ m_xPB_OK->connect_clicked(LINK(this,OSaveAsDlg,ButtonClickHdl));
+ m_xTitle->connect_changed(LINK(this,OSaveAsDlg,EditModifyHdl));
+ m_xTitle->grab_focus();
}
const OUString& OSaveAsDlg::getName() const
{
- return m_pImpl->m_aName;
+ return m_aName;
}
OUString OSaveAsDlg::getCatalog() const
{
- return m_pImpl->m_xCatalog->get_visible() ? m_pImpl->m_xCatalog->get_active_text() : OUString();
+ return m_xCatalog->get_visible() ? m_xCatalog->get_active_text() : OUString();
}
OUString OSaveAsDlg::getSchema() const
{
- return m_pImpl->m_xSchema->get_visible() ? m_pImpl->m_xSchema->get_active_text() : OUString();
+ return m_xSchema->get_visible() ? m_xSchema->get_active_text() : OUString();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dbaccess/source/ui/inc/dlgsave.hxx b/dbaccess/source/ui/inc/dlgsave.hxx
index d56fc6ade293..c5bc9d8037e1 100644
--- a/dbaccess/source/ui/inc/dlgsave.hxx
+++ b/dbaccess/source/ui/inc/dlgsave.hxx
@@ -19,6 +19,8 @@
#pragma once
+#include "SqlNameEdit.hxx"
+#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
#include <com/sun/star/uno/XComponentContext.hpp>
#include <o3tl/typed_flags_set.hxx>
#include <vcl/weld.hxx>
@@ -42,13 +44,32 @@ namespace o3tl {
namespace dbaui
{
- class OSaveAsDlgImpl;
class IObjectNameCheck;
class OSaveAsDlg : public weld::GenericDialogController
{
private:
- std::unique_ptr<OSaveAsDlgImpl> m_pImpl;
css::uno::Reference< css::uno::XComponentContext > m_xContext;
+ OUString m_aQryLabel;
+ OUString m_sTblLabel;
+ OUString m_aName;
+ const IObjectNameCheck& m_rObjectNameCheck;
+ css::uno::Reference< css::sdbc::XDatabaseMetaData> m_xMetaData;
+ sal_Int32 m_nType;
+ SADFlags m_nFlags;
+
+ 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);
+
public:
OSaveAsDlg( weld::Window * pParent, sal_Int32 _rType,
const css::uno::Reference< css::uno::XComponentContext >& _rxContext,