diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2017-07-17 08:02:54 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2017-07-24 20:11:01 +0200 |
commit | c478d1b3cc371d3b9e8147ff57347f99d25c565e (patch) | |
tree | 9aa2ad1d22c7dac30e8fbb50a71eab5079ef5ddc /dbaccess | |
parent | 4a822b85d2c2e32422cfe001a37b5057651f3ecf (diff) |
Implement mail merge data source from Writer tables
This is a combination of 17 commits:
connectivity: add initial writer backend
Similar to the calc one. As a first step the Driver and the Connection
interfaces are implemented, though the later has some stubs.
(cherry picked from commit 69068f2228147ca0d252762612edbcab0713cdfa)
connectivity writer driver: initial DatabaseMetaData implementation
With this the list of tables is visible in Data Sources.
(cherry picked from commit d7ac239793905564d2754edc52611930b6ba2cdc)
connectivity writer driver: add Catalog implementation
But leave OWriterCatalog::refreshTables() as a stub for now.
(cherry picked from commit 6fb3e3a9c1dd1aec8a1ba90fea51e32048e609bf)
connectivity writer driver: add Tables implementation
But leave OWriterTables::createObject() as a stub for now.
(cherry picked from commit 60020f61339e5836f5a481909c1183af2734f569)
connectivity writer driver: add Table implementation
Gets rid of the stub warnings in OWriterTables::createObject().
(cherry picked from commit bec2da98c74dc4c02561641862de15e5d2630fa2)
connectivity writer driver: add Columns implementation
Gets rid of the stub warnings in OWriterTable::refreshColumns().
(cherry picked from commit a11ddfdcf3f5021cbeb0f065694d875bb748dc76)
connectivity writer driver: add PreparedStatement implementation
Gets rid of the stub warnings in OWriterConnection::prepareStatement().
(cherry picked from commit ac3c24bec925dd53f07b2827dab0d71c0dbaedee)
Conflicts:
connectivity/source/drivers/writer/WConnection.cxx
connectivity writer driver: add ResultSet implementation
Now column headers and table data show up on the UI.
(cherry picked from commit a93c89894feb663df37609c95d4db523120c0bc1)
connectivity writer driver: add Statement implementation
Gets rid of the OWriterConnection::createStatement() stub warning. This
is the last interface which was not supported by the writer driver, as
far as I see.
(cherry picked from commit cad0d8df38cf390d0615668ce2ab7c8f7ee42cde)
connectivity writer driver: mention Writer in display name
It was just "Document" to be consistent with Calc's "Spreadsheet", but
it's confusing as we have a Text driver as well.
(cherry picked from commit 5445de1432fd65fb3ef613d1dafd2bbb9b99b265)
dbaccess: introduce DATASOURCE_TYPE::DST_WRITER
By mostly reusing the spreadsheet code. This way the UI allows creating
a data source where the backend is a Writer document (containing at
least one Writer table).
(cherry picked from commit 36f2df84fcfc21038b4d20df38a9e5addfcbde3f)
sw mail merge: add support for the new 'writer' connectivity driver
By mapping the .odt, .sxw, .doc and .docx extensions to sdbc:writer:. If
we are at it, also accept xlsx next to xls.
(cherry picked from commit 83b43ef2223b66484e0e90e7b614886e06f955b5)
Conflicts:
sw/inc/dbui.hrc
sw/source/uibase/dbui/dbmgr.cxx
sw mailmerge: add writer data source testcase
Fails with commit 83b43ef2223b66484e0e90e7b614886e06f955b5 (sw mail
merge: add support for the new 'writer' connectivity driver, 2017-07-18)
reverted.
(cherry picked from commit d9b0108e3af7244179bcc7b07db9d0826c3ac8a6)
connectivity: merge OCalcResultSet and OWriterResultSet
Into a single OComponentResultSet, as both of them just provide data
source functionality based on a file loaded into an LO component, so
they can share code.
(cherry picked from commit e473d49acc127ece76eb31cb3610e3950f35d9d9)
Conflicts:
connectivity/source/drivers/component/CResultSet.cxx
connectivity/source/drivers/writer/WResultSet.cxx
connectivity/source/inc/writer/WResultSet.hxx
connectivity: merge OCalcStatement and OWriterStatement
Into a single OComponentStatement, as both of them just provide statement
functionality based on a file loaded into an LO component, so they can share
code.
(cherry picked from commit 4073bc15d1aa1b46b2e0953d6316f2ab6a23dc87)
connectivity: merge OCalcPreparedStatement and OWriterPreparedStatement
Into a single OComponentPreparedStatement, as both of them just provide
prepared statement functionality based on a file loaded into an LO
component, so they can share code.
(cherry picked from commit 196ee66d4aab62678a8cfb762379909bdda16051)
connectivity: merge OCalcColumns and OWriterColumns
Turns out createObject() only needs the base class OFileTable, and then
these can be shared.
(cherry picked from commit d3d9292a0fb414e6721b2f3b12b7e283caed946d)
Change-Id: I6e8a83155dbbbc3d85794e190c2e710d01902017
Reviewed-on: https://gerrit.libreoffice.org/40231
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'dbaccess')
-rw-r--r-- | dbaccess/inc/dbaccess_helpid.hrc | 1 | ||||
-rw-r--r-- | dbaccess/source/core/misc/dsntypes.cxx | 4 | ||||
-rw-r--r-- | dbaccess/source/inc/dsntypes.hxx | 3 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/AutoControls.src | 5 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/ConnectionHelper.cxx | 13 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/ConnectionPage.cxx | 4 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx | 2 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx | 2 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/DbAdminImpl.cxx | 1 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/dbadminsetup.src | 4 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/dbwiz.cxx | 1 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/dbwizsetup.cxx | 10 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/dbu_dlg.hrc | 4 | ||||
-rw-r--r-- | dbaccess/source/ui/inc/dbwizsetup.hxx | 2 |
14 files changed, 41 insertions, 15 deletions
diff --git a/dbaccess/inc/dbaccess_helpid.hrc b/dbaccess/inc/dbaccess_helpid.hrc index 086bf7f4d40a..36fe8399efed 100644 --- a/dbaccess/inc/dbaccess_helpid.hrc +++ b/dbaccess/inc/dbaccess_helpid.hrc @@ -100,6 +100,7 @@ #define HID_DSADMIN_MSACCESS_MDB_FILE "DBACCESS_HID_DSADMIN_MSACCESS_MDB_FILE" #define HID_DSADMIN_FLAT_PATH "DBACCESS_HID_DSADMIN_FLAT_PATH" #define HID_DSADMIN_CALC_PATH "DBACCESS_HID_DSADMIN_CALC_PATH" +#define HID_DSADMIN_WRITER_PATH "DBACCESS_HID_DSADMIN_WRITER_PATH" #define HID_DSADMIN_ORACLE_DATABASE "DBACCESS_HID_DSADMIN_ORACLE_DATABASE" #define HID_APP_TABLE_TREE "DBACCESS_HID_APP_TABLE_TREE" diff --git a/dbaccess/source/core/misc/dsntypes.cxx b/dbaccess/source/core/misc/dsntypes.cxx index 0414b77e2219..a478f6c6fb63 100644 --- a/dbaccess/source/core/misc/dsntypes.cxx +++ b/dbaccess/source/core/misc/dsntypes.cxx @@ -388,6 +388,7 @@ DATASOURCE_TYPE ODsnTypeCollection::determineType(const OUString& _rDsn) const const KnownPrefix aKnowPrefixes[] = { KnownPrefix( "sdbc:calc:", DST_CALC, false ), + KnownPrefix( "sdbc:writer:", DST_WRITER, false ), KnownPrefix( "sdbc:flat:", DST_FLAT, false ), KnownPrefix( "sdbc:odbc:", DST_ODBC, false ), KnownPrefix( "sdbc:dbase:", DST_DBASE, false ), @@ -436,7 +437,8 @@ void ODsnTypeCollection::fillPageIds(const OUString& _sURL,::std::vector<sal_Int _rOutPathIds.push_back(PAGE_DBSETUPWIZARD_TEXT); break; case DST_CALC: - _rOutPathIds.push_back(PAGE_DBSETUPWIZARD_SPREADSHEET); + case DST_WRITER: + _rOutPathIds.push_back(PAGE_DBSETUPWIZARD_DOCUMENT_OR_SPREADSHEET); break; case DST_ODBC: _rOutPathIds.push_back(PAGE_DBSETUPWIZARD_ODBC); diff --git a/dbaccess/source/inc/dsntypes.hxx b/dbaccess/source/inc/dsntypes.hxx index 75c6739a2fe1..9d78daf9693f 100644 --- a/dbaccess/source/inc/dsntypes.hxx +++ b/dbaccess/source/inc/dsntypes.hxx @@ -62,6 +62,7 @@ enum DATASOURCE_TYPE DST_FIREBIRD = 26, DST_EMBEDDED_FIREBIRD = 27, DST_POSTGRES = 28, + DST_WRITER = 29, DST_USERDEFINE1, /// first user defined driver DST_USERDEFINE2, @@ -90,7 +91,7 @@ enum DATASOURCE_TYPE #define PAGE_DBSETUPWIZARD_JDBC 10 #define PAGE_DBSETUPWIZARD_ADO 11 #define PAGE_DBSETUPWIZARD_ODBC 12 -#define PAGE_DBSETUPWIZARD_SPREADSHEET 13 +#define PAGE_DBSETUPWIZARD_DOCUMENT_OR_SPREADSHEET 13 #define PAGE_DBSETUPWIZARD_AUTHENTIFICATION 14 #define PAGE_DBSETUPWIZARD_FINAL 16 #define PAGE_DBSETUPWIZARD_USERDEFINED 17 diff --git a/dbaccess/source/ui/dlg/AutoControls.src b/dbaccess/source/ui/dlg/AutoControls.src index 5b0b9687796c..c6539edc6f66 100644 --- a/dbaccess/source/ui/dlg/AutoControls.src +++ b/dbaccess/source/ui/dlg/AutoControls.src @@ -34,6 +34,11 @@ String STR_CALC_PATH_OR_FILE Text[ en-US ] = "Path to the spreadsheet document"; }; +String STR_WRITER_PATH_OR_FILE +{ + Text[ en-US ] = "Path to the Writer document"; +}; + String STR_NAME_OF_ODBC_DATASOURCE { Text[ en-US ] = "Name of the ODBC data source on your system"; diff --git a/dbaccess/source/ui/dlg/ConnectionHelper.cxx b/dbaccess/source/ui/dlg/ConnectionHelper.cxx index 5911c6e0eb88..65828aad2c3a 100644 --- a/dbaccess/source/ui/dlg/ConnectionHelper.cxx +++ b/dbaccess/source/ui/dlg/ConnectionHelper.cxx @@ -224,6 +224,17 @@ namespace dbaui askForFileName(aFileDlg); } break; + case ::dbaccess::DST_WRITER: + { + SvtModuleOptions aModule; + ::sfx2::FileDialogHelper aFileDlg( + ui::dialogs::TemplateDescription::FILEOPEN_READONLY_VERSION, + FileDialogFlags::NONE, + aModule.GetFactoryEmptyDocumentURL(SvtModuleOptions::EFactory::WRITER) + ,SfxFilterFlags::IMPORT); + askForFileName(aFileDlg); + } + break; case ::dbaccess::DST_MSACCESS: { const OUString sExt("*.mdb;*.mde"); @@ -664,7 +675,7 @@ namespace dbaui const ::dbaccess::DATASOURCE_TYPE eType = m_pCollection->determineType(m_eType); - if ( ( ::dbaccess::DST_CALC == eType) || ( ::dbaccess::DST_MSACCESS == eType) || ( ::dbaccess::DST_MSACCESS_2007 == eType) ) + if ( ( ::dbaccess::DST_CALC == eType) || ( ::dbaccess::DST_WRITER == eType) || ( ::dbaccess::DST_MSACCESS == eType) || ( ::dbaccess::DST_MSACCESS_2007 == eType) ) { if( pathExists(sURL, true) == PATH_NOT_EXIST ) { diff --git a/dbaccess/source/ui/dlg/ConnectionPage.cxx b/dbaccess/source/ui/dlg/ConnectionPage.cxx index fa8d31fbfcd3..ac673a4b5638 100644 --- a/dbaccess/source/ui/dlg/ConnectionPage.cxx +++ b/dbaccess/source/ui/dlg/ConnectionPage.cxx @@ -149,6 +149,10 @@ namespace dbaui m_pFT_Connection->SetText(OUString(ModuleRes(STR_CALC_PATH_OR_FILE))); m_pConnectionURL->SetHelpId(HID_DSADMIN_CALC_PATH); break; + case ::dbaccess::DST_WRITER: + m_pFT_Connection->SetText(OUString(ModuleRes(STR_WRITER_PATH_OR_FILE))); + m_pConnectionURL->SetHelpId(HID_DSADMIN_WRITER_PATH); + break; case ::dbaccess::DST_ADO: m_pFT_Connection->SetText(OUString(ModuleRes(STR_COMMONURL))); break; diff --git a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx b/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx index edad0abe55ea..8daeaed35163 100644 --- a/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx +++ b/dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx @@ -687,7 +687,7 @@ using namespace ::com::sun::star; callModifiedHdl(); } - VclPtr<OGenericAdministrationPage> OSpreadSheetConnectionPageSetup::CreateSpreadSheetTabPage( vcl::Window* pParent, const SfxItemSet& _rAttrSet ) + VclPtr<OGenericAdministrationPage> OSpreadSheetConnectionPageSetup::CreateDocumentOrSpreadSheetTabPage( vcl::Window* pParent, const SfxItemSet& _rAttrSet ) { return VclPtr<OSpreadSheetConnectionPageSetup>::Create( pParent, _rAttrSet ); } diff --git a/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx b/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx index cbdb3e273e4e..9aff6bb8d5bf 100644 --- a/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx +++ b/dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx @@ -40,7 +40,7 @@ namespace dbaui { public: virtual bool FillItemSet ( SfxItemSet* _rCoreAttrs ) override; - static VclPtr<OGenericAdministrationPage> CreateSpreadSheetTabPage( vcl::Window* pParent, const SfxItemSet& _rAttrSet ); + static VclPtr<OGenericAdministrationPage> CreateDocumentOrSpreadSheetTabPage( vcl::Window* pParent, const SfxItemSet& _rAttrSet ); OSpreadSheetConnectionPageSetup(vcl::Window* pParent, const SfxItemSet& _rCoreAttrs); virtual ~OSpreadSheetConnectionPageSetup() override; virtual void dispose() override; diff --git a/dbaccess/source/ui/dlg/DbAdminImpl.cxx b/dbaccess/source/ui/dlg/DbAdminImpl.cxx index 2490f0eaf31c..04d204379331 100644 --- a/dbaccess/source/ui/dlg/DbAdminImpl.cxx +++ b/dbaccess/source/ui/dlg/DbAdminImpl.cxx @@ -479,6 +479,7 @@ OUString ODbDataSourceAdministrationHelper::getConnectionURL() const case ::dbaccess::DST_DBASE: case ::dbaccess::DST_FLAT: case ::dbaccess::DST_CALC: + case ::dbaccess::DST_WRITER: break; case ::dbaccess::DST_MSACCESS: case ::dbaccess::DST_MSACCESS_2007: diff --git a/dbaccess/source/ui/dlg/dbadminsetup.src b/dbaccess/source/ui/dlg/dbadminsetup.src index d798978cb21b..a4903c5dc4d1 100644 --- a/dbaccess/source/ui/dlg/dbadminsetup.src +++ b/dbaccess/source/ui/dlg/dbadminsetup.src @@ -74,9 +74,9 @@ String STR_PAGETITLE_ODBC Text[ en-US ] = "Set up ODBC connection" ; }; -String STR_PAGETITLE_SPREADSHEET +String STR_PAGETITLE_DOCUMENT_OR_SPREADSHEET { - Text[ en-US ] = "Set up Spreadsheet connection" ; + Text[ en-US ] = "Set up Writer Document or Spreadsheet connection" ; }; String STR_PAGETITLE_AUTHENTIFICATION diff --git a/dbaccess/source/ui/dlg/dbwiz.cxx b/dbaccess/source/ui/dlg/dbwiz.cxx index 669a607c669a..3ff5645621f2 100644 --- a/dbaccess/source/ui/dlg/dbwiz.cxx +++ b/dbaccess/source/ui/dlg/dbwiz.cxx @@ -156,6 +156,7 @@ WizardTypes::WizardState ODbTypeWizDialog::determineNextState( WizardState _nCur case ::dbaccess::DST_MSACCESS_2007: case ::dbaccess::DST_JDBC: case ::dbaccess::DST_CALC: + case ::dbaccess::DST_WRITER: nNextState = WZS_INVALID_STATE; break; case ::dbaccess::DST_DBASE: diff --git a/dbaccess/source/ui/dlg/dbwizsetup.cxx b/dbaccess/source/ui/dlg/dbwizsetup.cxx index 9e33bc439e79..4e09735c5c5f 100644 --- a/dbaccess/source/ui/dlg/dbwizsetup.cxx +++ b/dbaccess/source/ui/dlg/dbwizsetup.cxx @@ -120,7 +120,7 @@ ODbTypeWizDialogSetup::ODbTypeWizDialogSetup(vcl::Window* _pParent , m_sRM_OracleText( ModuleRes( STR_PAGETITLE_ORACLE ) ) , m_sRM_MySQLText( ModuleRes( STR_PAGETITLE_MYSQL ) ) , m_sRM_ODBCText( ModuleRes( STR_PAGETITLE_ODBC ) ) - , m_sRM_SpreadSheetText( ModuleRes( STR_PAGETITLE_SPREADSHEET ) ) + , m_sRM_DocumentOrSpreadSheetText( ModuleRes( STR_PAGETITLE_DOCUMENT_OR_SPREADSHEET ) ) , m_sRM_AuthentificationText( ModuleRes( STR_PAGETITLE_AUTHENTIFICATION ) ) , m_sRM_FinalText( ModuleRes( STR_PAGETITLE_FINAL ) ) , m_sWorkPath( SvtPathOptions().GetWorkPath() ) @@ -240,8 +240,8 @@ OUString ODbTypeWizDialogSetup::getStateDisplayName( WizardState _nState ) const case PAGE_DBSETUPWIZARD_ODBC: sRoadmapItem = m_sRM_ODBCText; break; - case PAGE_DBSETUPWIZARD_SPREADSHEET: - sRoadmapItem = m_sRM_SpreadSheetText; + case PAGE_DBSETUPWIZARD_DOCUMENT_OR_SPREADSHEET: + sRoadmapItem = m_sRM_DocumentOrSpreadSheetText; break; case PAGE_DBSETUPWIZARD_AUTHENTIFICATION: sRoadmapItem = m_sRM_AuthentificationText; @@ -520,8 +520,8 @@ VclPtr<TabPage> ODbTypeWizDialogSetup::createPage(WizardState _nState) pPage = OLDAPConnectionPageSetup::CreateLDAPTabPage(this,*m_pOutSet); break; - case PAGE_DBSETUPWIZARD_SPREADSHEET: /// first user defined driver - pPage = OSpreadSheetConnectionPageSetup::CreateSpreadSheetTabPage(this,*m_pOutSet); + case PAGE_DBSETUPWIZARD_DOCUMENT_OR_SPREADSHEET: + pPage = OSpreadSheetConnectionPageSetup::CreateDocumentOrSpreadSheetTabPage(this,*m_pOutSet); break; case PAGE_DBSETUPWIZARD_MSACCESS: diff --git a/dbaccess/source/ui/inc/dbu_dlg.hrc b/dbaccess/source/ui/inc/dbu_dlg.hrc index 3fb205315fa8..960c175a3ff6 100644 --- a/dbaccess/source/ui/inc/dbu_dlg.hrc +++ b/dbaccess/source/ui/inc/dbu_dlg.hrc @@ -79,7 +79,7 @@ #define STR_NAME_OF_ODBC_DATASOURCE RID_STR_DLG_START + 48 #define STR_MYSQL_DATABASE_NAME RID_STR_DLG_START + 49 #define STR_ORACLE_DATABASE_NAME RID_STR_DLG_START + 50 - // FREE +#define STR_WRITER_PATH_OR_FILE RID_STR_DLG_START + 51 #define STR_MSACCESS_MDB_FILE RID_STR_DLG_START + 52 #define STR_COMMONURL RID_STR_DLG_START + 53 #define STR_DATABASEDEFAULTNAME RID_STR_DLG_START + 54 @@ -108,7 +108,7 @@ #define STR_PAGETITLE_ORACLE RID_STR_DLG_START + 76 #define STR_PAGETITLE_MYSQL RID_STR_DLG_START + 77 #define STR_PAGETITLE_ODBC RID_STR_DLG_START + 78 -#define STR_PAGETITLE_SPREADSHEET RID_STR_DLG_START + 79 +#define STR_PAGETITLE_DOCUMENT_OR_SPREADSHEET RID_STR_DLG_START + 79 #define STR_PAGETITLE_AUTHENTIFICATION RID_STR_DLG_START + 80 #define STR_PAGETITLE_MYSQL_NATIVE RID_STR_DLG_START + 81 #define STR_PAGETITLE_FINAL RID_STR_DLG_START + 82 diff --git a/dbaccess/source/ui/inc/dbwizsetup.hxx b/dbaccess/source/ui/inc/dbwizsetup.hxx index 31b08dfa0bd5..99df1376475e 100644 --- a/dbaccess/source/ui/inc/dbwizsetup.hxx +++ b/dbaccess/source/ui/inc/dbwizsetup.hxx @@ -77,7 +77,7 @@ private: OUString m_sRM_OracleText; OUString m_sRM_MySQLText; OUString m_sRM_ODBCText; - OUString m_sRM_SpreadSheetText; + OUString m_sRM_DocumentOrSpreadSheetText; OUString m_sRM_AuthentificationText; OUString m_sRM_FinalText; INetURLObject m_aDocURL; |