Kaydet (Commit) 5067591a authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Call orcus filter accessor from the dialog when a new source file is set.

For now it doesn't do anything.

Change-Id: I8e41c7e15c3b99ab0ddec8e68242176c97f368fc
üst 8ca9f3c5
...@@ -32,6 +32,8 @@ ...@@ -32,6 +32,8 @@
#include <tools/string.hxx> #include <tools/string.hxx>
#include <rtl/textenc.h> #include <rtl/textenc.h>
#include "scdllapi.h"
class SfxMedium; class SfxMedium;
class SvStream; class SvStream;
...@@ -133,7 +135,7 @@ extern "C" { ...@@ -133,7 +135,7 @@ extern "C" {
class ScFormatFilter { class ScFormatFilter {
public: public:
static ScFormatFilterPlugin &Get(); SC_DLLPUBLIC static ScFormatFilterPlugin &Get();
}; };
#endif #endif
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "rtl/ustring.hxx" #include "rtl/ustring.hxx"
class ScDocument; class ScDocument;
class SvTreeListBox;
/** /**
* Collection of orcus filter wrappers. * Collection of orcus filter wrappers.
...@@ -23,6 +24,8 @@ public: ...@@ -23,6 +24,8 @@ public:
virtual ~ScOrcusFilters() {} virtual ~ScOrcusFilters() {}
virtual bool importCSV(ScDocument& rDoc, const rtl::OUString& rPath) const = 0; virtual bool importCSV(ScDocument& rDoc, const rtl::OUString& rPath) const = 0;
virtual bool loadXMLStructure(const rtl::OUString& rPath, SvTreeListBox& rTree) const = 0;
}; };
#endif #endif
......
...@@ -16,6 +16,8 @@ class ScOrcusFiltersImpl : public ScOrcusFilters ...@@ -16,6 +16,8 @@ class ScOrcusFiltersImpl : public ScOrcusFilters
{ {
public: public:
virtual bool importCSV(ScDocument& rDoc, const rtl::OUString& rPath) const; virtual bool importCSV(ScDocument& rDoc, const rtl::OUString& rPath) const;
virtual bool loadXMLStructure(const rtl::OUString& rPath, SvTreeListBox& rTree) const;
}; };
#endif #endif
......
...@@ -7,11 +7,12 @@ ...@@ -7,11 +7,12 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
#include "orcusfiltersimpl.hxx"
#include "document.hxx" #include "document.hxx"
#include "tools/urlobj.hxx" #include "tools/urlobj.hxx"
#include "svtools/svtreebx.hxx"
#include "orcusfiltersimpl.hxx"
#define __ORCUS_STATIC_LIB #define __ORCUS_STATIC_LIB
#include <orcus/spreadsheet/import_interface.hpp> #include <orcus/spreadsheet/import_interface.hpp>
...@@ -152,7 +153,8 @@ bool ScOrcusFiltersImpl::importCSV(ScDocument& rDoc, const OUString& rPath) cons ...@@ -152,7 +153,8 @@ bool ScOrcusFiltersImpl::importCSV(ScDocument& rDoc, const OUString& rPath) cons
{ {
ScOrcusFactory aFactory(rDoc); ScOrcusFactory aFactory(rDoc);
INetURLObject aURL(rPath); INetURLObject aURL(rPath);
const char* path = rtl::OUStringToOString(aURL.getFSysPath(SYSTEM_PATH), RTL_TEXTENCODING_UTF8).getStr(); OString aSysPath = rtl::OUStringToOString(aURL.getFSysPath(SYSTEM_PATH), RTL_TEXTENCODING_UTF8);
const char* path = aSysPath.getStr();
try try
{ {
...@@ -168,4 +170,15 @@ bool ScOrcusFiltersImpl::importCSV(ScDocument& rDoc, const OUString& rPath) cons ...@@ -168,4 +170,15 @@ bool ScOrcusFiltersImpl::importCSV(ScDocument& rDoc, const OUString& rPath) cons
return true; return true;
} }
bool ScOrcusFiltersImpl::loadXMLStructure(const OUString& rPath, SvTreeListBox& /*rTree*/) const
{
INetURLObject aURL(rPath);
OString aSysPath = rtl::OUStringToOString(aURL.getFSysPath(SYSTEM_PATH), RTL_TEXTENCODING_UTF8);
const char* path = aSysPath.getStr();
fprintf(stdout, "ScOrcusFiltersImpl::loadXMLStructure: path = '%s'\n", path);
// TODO: Load the tree box.
return true;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
...@@ -50,6 +50,7 @@ public: ...@@ -50,6 +50,7 @@ public:
private: private:
void SelectSourceFile(); void SelectSourceFile();
void LoadSourceFileStructure(const OUString& rPath);
DECL_LINK(BtnPressedHdl, Button*); DECL_LINK(BtnPressedHdl, Button*);
}; };
......
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
#include "scresid.hxx" #include "scresid.hxx"
#include "document.hxx" #include "document.hxx"
#include "orcusfilters.hxx"
#include "filter.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/ui/dialogs/XFilePicker.hpp> #include <com/sun/star/ui/dialogs/XFilePicker.hpp>
...@@ -81,6 +83,17 @@ void ScXMLSourceDlg::SelectSourceFile() ...@@ -81,6 +83,17 @@ void ScXMLSourceDlg::SelectSourceFile()
// There should only be one file returned from the file picker. // There should only be one file returned from the file picker.
maFtSourceFile.SetText(aFiles[0]); maFtSourceFile.SetText(aFiles[0]);
LoadSourceFileStructure(aFiles[0]);
}
void ScXMLSourceDlg::LoadSourceFileStructure(const OUString& rPath)
{
ScOrcusFilters* pOrcus = ScFormatFilter::Get().GetOrcusFilters();
if (!pOrcus)
return;
pOrcus->loadXMLStructure(rPath, maLbTree);
} }
IMPL_LINK(ScXMLSourceDlg, BtnPressedHdl, Button*, pBtn) IMPL_LINK(ScXMLSourceDlg, BtnPressedHdl, Button*, pBtn)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment