diff options
Diffstat (limited to 'sc/source/ui/inc/dataprovider.hxx')
-rw-r--r-- | sc/source/ui/inc/dataprovider.hxx | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/sc/source/ui/inc/dataprovider.hxx b/sc/source/ui/inc/dataprovider.hxx index df70c4099d2c..30e871ee6b0c 100644 --- a/sc/source/ui/inc/dataprovider.hxx +++ b/sc/source/ui/inc/dataprovider.hxx @@ -60,11 +60,11 @@ class CSVFetchThread : public salhelper::Thread std::vector<std::shared_ptr<sc::DataTransformation>> maDataTransformations; - Idle* mpIdle; + std::function<void()> maImportFinishedHdl; public: - CSVFetchThread(ScDocument& rDoc, const OUString&, Idle* pIdle, + CSVFetchThread(ScDocument& rDoc, const OUString&, std::function<void()> aImportFinishedHdl, const std::vector<std::shared_ptr<sc::DataTransformation>>& mrDataTransformations); virtual ~CSVFetchThread() override; @@ -87,9 +87,10 @@ protected: * If true make the threaded import deterministic for the tests. */ bool mbDeterministic; + sc::ExternalDataSource& mrDataSource; public: - DataProvider(); + DataProvider(sc::ExternalDataSource& rDataSource); virtual ~DataProvider(); @@ -106,23 +107,20 @@ public: class CSVDataProvider : public DataProvider { - OUString maURL; rtl::Reference<CSVFetchThread> mxCSVFetchThread; ScDocument* mpDocument; - ScDBDataManager* mpDBDataManager; std::unique_ptr<ScDocument> mpDoc; - Idle maIdle; void Refresh(); public: - CSVDataProvider (ScDocument* pDoc, const OUString& rURL, ScDBDataManager* pDBManager); + CSVDataProvider (ScDocument* pDoc, sc::ExternalDataSource& rDataSource); virtual ~CSVDataProvider() override; virtual void Import() override; - const OUString& GetURL() const override { return maURL; } - DECL_LINK( ImportFinishedHdl, Timer*, void ); + const OUString& GetURL() const override; + void ImportFinished(); }; /** @@ -140,17 +138,12 @@ class ScDBDataManager OUString maDBName; ScDocument* mpDoc; - std::vector<std::shared_ptr<sc::DataTransformation>> maDataTransformations; - public: ScDBDataManager(const OUString& rDBName, bool bAllowResize, ScDocument* pDoc); ~ScDBDataManager(); void SetDatabase(const OUString& rDBName); - void AddDataTransformation(std::shared_ptr<sc::DataTransformation> mpDataTransformation); - const std::vector<std::shared_ptr<sc::DataTransformation>>& getDataTransformation() const; - ScDBData* getDBData(); void WriteToDoc(ScDocument& rDoc); @@ -164,7 +157,7 @@ private: public: - static std::shared_ptr<DataProvider> getDataProvider(ScDocument* pDoc, const OUString& rProvider, const OUString& rURL, const OUString& rID, ScDBDataManager* pManager); + static std::shared_ptr<DataProvider> getDataProvider(ScDocument* pDoc, sc::ExternalDataSource& rDataSource); static std::vector<OUString> getDataProviders(); }; |