summaryrefslogtreecommitdiff
path: root/sc/source
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-10 08:23:53 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-08-10 18:54:23 +0200
commitf50ae88277d7fd652679e1ed763855ccd223f756 (patch)
tree78805ebf946a6eed9b416f8cba8d60523552fe97 /sc/source
parent8a7883f40536fa32aab85260f967f5f3f7f53431 (diff)
external data: some work on the dialog
Change-Id: I4962688db1ccd766a7ff0e379033b5dc19a7462b Reviewed-on: https://gerrit.libreoffice.org/40962 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Diffstat (limited to 'sc/source')
-rw-r--r--sc/source/ui/inc/dataproviderdlg.hxx10
-rw-r--r--sc/source/ui/miscdlgs/dataproviderdlg.cxx101
-rw-r--r--sc/source/ui/view/cellsh2.cxx12
3 files changed, 25 insertions, 98 deletions
diff --git a/sc/source/ui/inc/dataproviderdlg.hxx b/sc/source/ui/inc/dataproviderdlg.hxx
index 05e607157931..0bba15b4e70d 100644
--- a/sc/source/ui/inc/dataproviderdlg.hxx
+++ b/sc/source/ui/inc/dataproviderdlg.hxx
@@ -33,22 +33,14 @@ class DataProviderDlg : public ModalDialog
VclPtr<SvtURLBox> m_pCbUrl;
VclPtr<PushButton> m_pBtnBrowse;
- VclPtr<RadioButton> m_pRBAddressValue;
- VclPtr<CheckBox> m_pCBRefreshOnEmpty;
- VclPtr<RadioButton> m_pRBMaxLimit;
- VclPtr<RadioButton> m_pRBUnlimited;
- VclPtr<Edit> m_pEdRange;
- VclPtr<Edit> m_pEdLimit;
VclPtr<OKButton> m_pBtnOk;
- VclPtr<VclFrame> m_pVclFrameLimit;
+ VclPtr<ComboBox> m_pCBData;
DECL_LINK(UpdateClickHdl, Button*, void);
- DECL_LINK(UpdateHdl, Edit&, void);
DECL_LINK(UpdateComboBoxHdl, ComboBox&, void);
DECL_LINK(BrowseHdl, Button*, void);
void UpdateEnable();
- ScRange GetStartRange();
std::shared_ptr<ExternalDataSource> mpDataSource;
diff --git a/sc/source/ui/miscdlgs/dataproviderdlg.cxx b/sc/source/ui/miscdlgs/dataproviderdlg.cxx
index eaa830cde2c1..8c20f8fff4a6 100644
--- a/sc/source/ui/miscdlgs/dataproviderdlg.cxx
+++ b/sc/source/ui/miscdlgs/dataproviderdlg.cxx
@@ -25,27 +25,10 @@ DataProviderDlg::DataProviderDlg(ScDocShell *pDocShell, vcl::Window* pParent)
{
get(m_pCbUrl, "url");
get(m_pBtnBrowse, "browse");
- get(m_pRBAddressValue, "addressvalue");
- get(m_pCBRefreshOnEmpty, "refresh_ui");
- //get(m_pRBRangeDown, "rangedown");
- //get(m_pRBNoMove, "nomove");
- get(m_pRBMaxLimit, "maxlimit");
- get(m_pRBUnlimited, "unlimited");
- get(m_pEdRange, "range");
- get(m_pEdLimit, "limit");
get(m_pBtnOk, "ok");
- get(m_pVclFrameLimit, "framelimit");
- //get(m_pVclFrameMove, "framemove");
+ get(m_pCBData, "combobox_db");
m_pCbUrl->SetSelectHdl( LINK( this, DataProviderDlg, UpdateComboBoxHdl ) );
- m_pRBAddressValue->SetClickHdl( LINK( this, DataProviderDlg, UpdateClickHdl ) );
- m_pRBAddressValue->Enable(false);
- //m_pRBScriptData->Enable(false);
- //m_pRBDirectData->Hide();
- //m_pRBScriptData->Hide();
- //m_pRBNoMove->Hide();
- //m_pRBValuesInLine->SetClickHdl( LINK( this, DataProviderDlg, UpdateClickHdl ) );
- m_pEdRange->SetModifyHdl( LINK( this, DataProviderDlg, UpdateHdl ) );
m_pBtnBrowse->SetClickHdl( LINK( this, DataProviderDlg, BrowseHdl ) );
UpdateEnable();
}
@@ -59,21 +42,8 @@ void DataProviderDlg::dispose()
{
m_pCbUrl.clear();
m_pBtnBrowse.clear();
- //m_pRBDirectData.clear();
- //m_pRBScriptData.clear();
- //m_pRBValuesInLine.clear();
- m_pRBAddressValue.clear();
- m_pCBRefreshOnEmpty.clear();
- //m_pRBDataDown.clear();
- //m_pRBRangeDown.clear();
- //m_pRBNoMove.clear();
- m_pRBMaxLimit.clear();
- m_pRBUnlimited.clear();
- m_pEdRange.clear();
- m_pEdLimit.clear();
m_pBtnOk.clear();
- m_pVclFrameLimit.clear();
- //m_pVclFrameMove.clear();
+ m_pCBData.clear();
ModalDialog::dispose();
}
@@ -91,78 +61,47 @@ IMPL_LINK_NOARG(DataProviderDlg, UpdateClickHdl, Button*, void)
{
UpdateEnable();
}
+
IMPL_LINK_NOARG(DataProviderDlg, UpdateComboBoxHdl, ComboBox&, void)
{
UpdateEnable();
}
-IMPL_LINK_NOARG(DataProviderDlg, UpdateHdl, Edit&, void)
-{
- UpdateEnable();
-}
void DataProviderDlg::UpdateEnable()
{
bool bOk = !m_pCbUrl->GetURL().isEmpty();
- if (m_pRBAddressValue->IsChecked())
- {
- m_pVclFrameLimit->Disable();
- //m_pVclFrameMove->Disable();
- m_pEdRange->Disable();
- }
- else
- {
- m_pVclFrameLimit->Enable();
- //m_pVclFrameMove->Enable();
- m_pEdRange->Enable();
- if (bOk)
- {
- // Check the given range to make sure it's valid.
- ScRange aTest = GetStartRange();
- if (!aTest.IsValid())
- bOk = false;
- }
- }
m_pBtnOk->Enable(bOk);
setOptimalLayoutSize();
}
-ScRange DataProviderDlg::GetStartRange()
+void DataProviderDlg::Init()
{
- OUString aStr = m_pEdRange->GetText();
ScDocument& rDoc = mpDocShell->GetDocument();
- ScRange aRange;
- ScRefFlags nRes = aRange.Parse(aStr, &rDoc, rDoc.GetAddressConvention());
- if ( ((nRes & ScRefFlags::VALID) == ScRefFlags::ZERO) || !aRange.IsValid())
+ ScDBCollection::NamedDBs& rNamedDBs = rDoc.GetDBCollection()->getNamedDBs();
+ for (auto& itr : rNamedDBs)
{
- // Invalid range.
- aRange.SetInvalid();
- return aRange;
+ OUString aName = itr->GetName();
+ m_pCBData->InsertEntry(aName);
}
-
- // Make sure it's only one row tall.
- if (aRange.aStart.Row() != aRange.aEnd.Row())
- aRange.SetInvalid();
-
- return aRange;
-}
-
-void DataProviderDlg::Init()
-{
- // TODO : Get the user specified Url and Range
- (void)this;
}
void DataProviderDlg::StartImport()
{
- ScRange aRange = GetStartRange();
- if (!aRange.IsValid())
- // Don't start the stream without a valid range.
+ OUString aURL = m_pCbUrl->GetText();
+ if (aURL.isEmpty())
+ return;
+
+ OUString maDBDataName = m_pCBData->GetText();
+ if (maDBDataName.isEmpty())
+ return;
+
+ ScDocument& rDoc = mpDocShell->GetDocument();
+ ScDBData* pDBData = rDoc.GetDBCollection()->getNamedDBs().findByUpperName(ScGlobal::pCharClass->uppercase(maDBDataName));
+ if (!pDBData)
return;
- OUString aURL;
- // TODO : replace those strings with something that is obtained from user
ExternalDataSource aDataSource(aURL, "org.libreoffice.calc.csv", &mpDocShell->GetDocument());
- //aDataSource.setDBData(pDBData);
+ aDataSource.setDBData(pDBData);
mpDocShell->GetDocument().GetExternalDataMapper().insertDataSource(aDataSource);
}
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index 7866f7693e9f..abbb35219c0a 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -782,15 +782,11 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
case SID_DATA_PROVIDER:
{
ScopedVclPtrInstance< sc::DataProviderDlg > aDialog( GetViewData()->GetDocShell(), pTabViewShell->GetDialogParent() );
- //ScDocument *pDoc = GetViewData()->GetDocument();
- //sc::DocumentLinkManager& rMgr = pDoc->GetDocLinkManager();
- //sc::DataStream* pStrm = rMgr.getDataStream();
- //if (pStrm)
aDialog->Init(/**pStrm*/);
- aDialog->Execute();
-
- //if (aDialog->Execute() == RET_OK)
- //aDialog->StartStream();
+ if (aDialog->Execute() == RET_OK)
+ {
+ aDialog->StartImport();
+ }
}
break;
case SID_MANAGE_XML_SOURCE: