summaryrefslogtreecommitdiffstats
path: root/dbaccess
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2017-07-17 08:02:54 +0200
committerJan Holesovsky <kendy@collabora.com>2017-07-24 20:11:01 +0200
commitc478d1b3cc371d3b9e8147ff57347f99d25c565e (patch)
tree9aa2ad1d22c7dac30e8fbb50a71eab5079ef5ddc /dbaccess
parentResolves: tdf#99071 tree view shows odd text widths when > 100 lines (diff)
downloadcore-c478d1b3cc371d3b9e8147ff57347f99d25c565e.tar.gz
core-c478d1b3cc371d3b9e8147ff57347f99d25c565e.zip
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.hrc1
-rw-r--r--dbaccess/source/core/misc/dsntypes.cxx4
-rw-r--r--dbaccess/source/inc/dsntypes.hxx3
-rw-r--r--dbaccess/source/ui/dlg/AutoControls.src5
-rw-r--r--dbaccess/source/ui/dlg/ConnectionHelper.cxx13
-rw-r--r--dbaccess/source/ui/dlg/ConnectionPage.cxx4
-rw-r--r--dbaccess/source/ui/dlg/DBSetupConnectionPages.cxx2
-rw-r--r--dbaccess/source/ui/dlg/DBSetupConnectionPages.hxx2
-rw-r--r--dbaccess/source/ui/dlg/DbAdminImpl.cxx1
-rw-r--r--dbaccess/source/ui/dlg/dbadminsetup.src4
-rw-r--r--dbaccess/source/ui/dlg/dbwiz.cxx1
-rw-r--r--dbaccess/source/ui/dlg/dbwizsetup.cxx10
-rw-r--r--dbaccess/source/ui/inc/dbu_dlg.hrc4
-rw-r--r--dbaccess/source/ui/inc/dbwizsetup.hxx2
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;