0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-09-30 19:19:56 +03:00

defaultConnection support has been added to LimeReport designer

This commit is contained in:
Arin Alexander
2017-02-15 02:52:11 +03:00
parent 8fb3fb5aba
commit fa985d7fb7
9 changed files with 108 additions and 42 deletions

View File

@@ -126,17 +126,17 @@ void DataBrowser::slotSQLEditingFinished(SQLEditResult result)
void DataBrowser::slotDeleteConnection()
{
if (!getConnectionName().isEmpty()){
if (!getConnectionName(NameForUser).isEmpty()){
if (
QMessageBox::critical(
this,
tr("Attention"),
tr("Do you really want to delete \"%1\" connection ?").arg(getConnectionName()),
tr("Do you really want to delete \"%1\" connection ?").arg(getConnectionName(NameForUser)),
QMessageBox::Ok|QMessageBox::No,
QMessageBox::No
)==QMessageBox::Ok
) == QMessageBox::Ok
){
m_report->dataManager()->removeConnection(getConnectionName());
m_report->dataManager()->removeConnection(getConnectionName(NameForReport));
updateDataTree();
}
}
@@ -153,7 +153,7 @@ void DataBrowser::slotAddDataSource()
#endif
sqlEdit->setSettings(settings());
sqlEdit->setDataSources(m_report->dataManager());
sqlEdit->setDefaultConnection(getConnectionName());
sqlEdit->setDefaultConnection(getConnectionName(NameForReport));
connect(sqlEdit,SIGNAL(signalSqlEditingFinished(SQLEditResult)),this,SLOT(slotSQLEditingFinished(SQLEditResult)));
sqlEdit->exec();
}
@@ -173,7 +173,10 @@ void DataBrowser::updateDataTree()
foreach(QString dataSourceName, m_report->datasourcesNames()){
QTreeWidgetItem *item=new QTreeWidgetItem(QStringList(dataSourceName),DataBrowserTree::Table);
QTreeWidgetItem *parentItem = findByNameAndType(m_report->dataManager()->connectionName(dataSourceName),DataBrowserTree::Connection);
QTreeWidgetItem *parentItem = findByNameAndType(
ConnectionDesc::connectionNameForUser(m_report->dataManager()->connectionName(dataSourceName)),
DataBrowserTree::Connection
);
if (parentItem){
parentItem->addChild(item);
if (!parentItem->isExpanded()) ui->dataTree->expandItem(parentItem);
@@ -336,11 +339,18 @@ QTreeWidgetItem* findConnectionItem(QTreeWidgetItem* item){
}
}
QString DataBrowser::getConnectionName()
QString DataBrowser::getConnectionName(NameType nameType)
{
if (ui->dataTree->currentItem()){
QTreeWidgetItem * ci = findConnectionItem(ui->dataTree->currentItem());
if (ci) return ci->text(0);
if (ci) {
switch (nameType) {
case NameForUser:
return ConnectionDesc::connectionNameForUser(ci->text(0));
case NameForReport:
return ConnectionDesc::connectionNameForReport(ci->text(0));
}
}
else return QString();
};
return QString();
@@ -417,7 +427,11 @@ void DataBrowser::initConnections()
ui->dataTree->clear();
QList<QTreeWidgetItem *>items;
foreach(QString connectionName,m_report->dataManager()->connectionNames()){
QTreeWidgetItem *item=new QTreeWidgetItem(ui->dataTree,QStringList(connectionName), DataBrowserTree::Connection);
QTreeWidgetItem *item=new QTreeWidgetItem(
ui->dataTree,
QStringList(ConnectionDesc::connectionNameForUser(connectionName)),
DataBrowserTree::Connection
);
if (m_report->dataManager()->isConnectionConnected(connectionName))
item->setIcon(0,QIcon(":/databrowser/images/database_connected"));
else
@@ -482,10 +496,10 @@ void DataBrowser::slotDataWindowClosed()
void DataBrowser::slotChangeConnection()
{
if (!getConnectionName().isEmpty()){
if (!getConnectionName(NameForUser).isEmpty()){
ConnectionDialog *connectionEdit = new ConnectionDialog(
this,
m_report->dataManager()->connectionByName(getConnectionName()),
m_report->dataManager()->connectionByName(getConnectionName(NameForReport)),
this
);
connectionEdit->setAttribute(Qt::WA_DeleteOnClose,true);
@@ -501,7 +515,7 @@ void DataBrowser::slotChangeConnection()
void DataBrowser::slotChangeConnectionState()
{
QString connectionName = getConnectionName();
QString connectionName = getConnectionName(NameForReport);
if (!connectionName.isEmpty()){
if (!m_report->dataManager()->isConnectionConnected(connectionName)){
setCursor(Qt::WaitCursor);
@@ -626,6 +640,12 @@ bool DataBrowser::checkConnectionDesc(ConnectionDesc *connection)
return result;
}
bool DataBrowser::containsDefaultConnection()
{
bool result = m_report->dataManager()->connectionByName(QSqlDatabase::defaultConnection);
return result;
}
QString DataBrowser::lastError() const
{
return m_lastError;
@@ -778,4 +798,4 @@ void DataBrowser::on_variablesTree_itemDoubleClicked(QTreeWidgetItem *item, int
}
}
} // namespace LimeReport
} // namespace LimeReport