Fix re-enabling subdetail checkbox #109

This commit is contained in:
Arin Alexander
2018-05-21 21:10:16 +03:00
parent 16a5da084a
commit c32281fb79
5 changed files with 54 additions and 26 deletions

View File

@@ -96,31 +96,10 @@ void DataBrowser::slotAddConnection()
void DataBrowser::slotSQLEditingFinished(SQLEditResult result)
{
if (result.dialogMode==SQLEditDialog::AddMode) {
switch (result.resultMode) {
case SQLEditResult::Query:
addQuery(result);
break;
case SQLEditResult::SubQuery:
addSubQuery(result);
break;
case SQLEditResult::SubProxy:
addProxy(result);
default:
break;
}
addDatasource(result);
} else {
switch(result.resultMode){
case SQLEditResult::Query:
changeQuery(result);
break;
case SQLEditResult::SubQuery:
changeSubQuery(result);
break;
case SQLEditResult::SubProxy:
changeProxy(result);
}
applyChanges(result);
}
updateDataTree();
}
@@ -661,6 +640,50 @@ void DataBrowser::changeProxy(SQLEditResult result)
}
}
SQLEditResult::ResultMode DataBrowser::currentDatasourceType(const QString& datasourceName)
{
if (m_report->dataManager()->isQuery(datasourceName)) return SQLEditResult::Query;
if (m_report->dataManager()->isSubQuery(datasourceName)) return SQLEditResult::SubQuery;
if (m_report->dataManager()->isProxy(datasourceName)) return SQLEditResult::SubProxy;
return SQLEditResult::Undefined;
}
void DataBrowser::applyChanges(SQLEditResult result)
{
if (result.resultMode == currentDatasourceType(result.datasourceName)){
switch(result.resultMode){
case SQLEditResult::Query:
changeQuery(result);
break;
case SQLEditResult::SubQuery:
changeSubQuery(result);
break;
case SQLEditResult::SubProxy:
changeProxy(result);
}
} else {
removeDatasource(result.datasourceName);
addDatasource(result);
}
}
void DataBrowser::addDatasource(SQLEditResult result)
{
switch (result.resultMode) {
case SQLEditResult::Query:
addQuery(result);
break;
case SQLEditResult::SubQuery:
addSubQuery(result);
break;
case SQLEditResult::SubProxy:
addProxy(result);
default:
break;
}
}
void DataBrowser::addConnectionDesc(ConnectionDesc *connection)
{
m_report->dataManager()->addConnectionDesc(connection);