mirror of
https://github.com/fralx/LimeReport.git
synced 2025-09-23 08:29:07 +03:00
Report variables have been refactored
This commit is contained in:
BIN
limereport/databrowser/images/varToReport.png
Normal file
BIN
limereport/databrowser/images/varToReport.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 644 B |
@@ -208,12 +208,15 @@ void DataBrowser::updateDataTree()
|
||||
void DataBrowser::updateVariablesTree()
|
||||
{
|
||||
ui->variablesTree->clear();
|
||||
QTreeWidgetItem *userVariables =new QTreeWidgetItem(QStringList(tr("User variables")),DataBrowserTree::Category);
|
||||
userVariables->setIcon(0,QIcon(":/report/images/folder"));
|
||||
QTreeWidgetItem *reportVariables = new QTreeWidgetItem(QStringList(tr("Report variables")),DataBrowserTree::Category);
|
||||
reportVariables->setIcon(0,QIcon(":/report/images/folder"));
|
||||
QTreeWidgetItem *systemVariables =new QTreeWidgetItem(QStringList(tr("System variables")),DataBrowserTree::Category);
|
||||
systemVariables->setIcon(0,QIcon(":/report/images/folder"));
|
||||
ui->variablesTree->addTopLevelItem(userVariables);
|
||||
QTreeWidgetItem *externalVariables = new QTreeWidgetItem(QStringList(tr("External variables")),DataBrowserTree::Category);
|
||||
externalVariables->setIcon(0,QIcon(":/report/images/folder"));
|
||||
ui->variablesTree->addTopLevelItem(reportVariables);
|
||||
ui->variablesTree->addTopLevelItem(systemVariables);
|
||||
ui->variablesTree->addTopLevelItem(externalVariables);
|
||||
|
||||
foreach(QString variableName,m_report->dataManager()->variableNames()){
|
||||
QStringList values;
|
||||
@@ -227,12 +230,24 @@ void DataBrowser::updateVariablesTree()
|
||||
if (m_report->dataManager()->variableIsSystem(variableName)){
|
||||
systemVariables->addChild(item);
|
||||
} else {
|
||||
userVariables->addChild(item);
|
||||
reportVariables->addChild(item);
|
||||
}
|
||||
}
|
||||
|
||||
ui->variablesTree->expandItem(userVariables);
|
||||
foreach(QString variableName,m_report->dataManager()->namesOfUserVariables()){
|
||||
if (!m_report->dataManager()->variableNames().contains(variableName)){
|
||||
QStringList values;
|
||||
values<<variableName+" ["+m_report->dataManager()->variable(variableName).toString()+"]"
|
||||
<<variableName;
|
||||
QTreeWidgetItem *item=new QTreeWidgetItem(values,DataBrowserTree::ExternalVariable);
|
||||
item->setIcon(0,QIcon(":/databrowser/images/value"));
|
||||
externalVariables->addChild(item);
|
||||
}
|
||||
}
|
||||
|
||||
ui->variablesTree->expandItem(reportVariables);
|
||||
ui->variablesTree->expandItem(systemVariables);
|
||||
ui->variablesTree->expandItem(externalVariables);
|
||||
}
|
||||
|
||||
void DataBrowser::closeAllDataWindows()
|
||||
@@ -333,7 +348,11 @@ QString DataBrowser::getConnectionName()
|
||||
|
||||
QString DataBrowser::getVariable()
|
||||
{
|
||||
if(ui->variablesTree->currentItem()&&ui->variablesTree->currentItem()->type() == DataBrowserTree::Variable){
|
||||
if(
|
||||
ui->variablesTree->currentItem() &&
|
||||
(ui->variablesTree->currentItem()->type() == DataBrowserTree::Variable ||
|
||||
ui->variablesTree->currentItem()->type() == DataBrowserTree::ExternalVariable)
|
||||
){
|
||||
return ui->variablesTree->currentItem()->text(1);
|
||||
}
|
||||
return QString();
|
||||
@@ -369,7 +388,7 @@ void DataBrowser::slotDeleteDatasource()
|
||||
tr("Do you really want to delete \"%1\" datasource ?").arg(datasourceName),
|
||||
QMessageBox::Ok|QMessageBox::No,
|
||||
QMessageBox::No
|
||||
)==QMessageBox::Ok
|
||||
) == QMessageBox::Ok
|
||||
){
|
||||
removeDatasource(datasourceName);
|
||||
}
|
||||
@@ -390,6 +409,7 @@ void DataBrowser::slotClear()
|
||||
ui->dataTree->clear();
|
||||
foreach(QDockWidget* window,m_dataWindows.values()) window->close();
|
||||
updateDataTree();
|
||||
updateVariablesTree();
|
||||
}
|
||||
|
||||
void DataBrowser::initConnections()
|
||||
@@ -696,16 +716,24 @@ void DataBrowser::on_deleteVariable_clicked()
|
||||
void DataBrowser::on_variablesTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous)
|
||||
{
|
||||
Q_UNUSED(previous)
|
||||
|
||||
if (current){
|
||||
if (m_report->dataManager()->containsVariable(current->text(1))&&
|
||||
!m_report->dataManager()->variableIsSystem(current->text(1))
|
||||
){
|
||||
ui->editVariable->setEnabled(true);
|
||||
ui->deleteVariable->setEnabled(true);
|
||||
if (m_report->dataManager()->containsVariable(current->text(1))){
|
||||
if (m_report->dataManager()->variableType(current->text(1)) == VarDesc::Report){
|
||||
ui->editVariable->setEnabled(true);
|
||||
ui->deleteVariable->setEnabled(true);
|
||||
} else {
|
||||
ui->editVariable->setEnabled(false);
|
||||
ui->deleteVariable->setEnabled(false);
|
||||
}
|
||||
if (m_report->dataManager()->variableType(current->text(1)) == VarDesc::User){
|
||||
ui->varToReport->setEnabled(true);
|
||||
} else {
|
||||
ui->varToReport->setEnabled(false);
|
||||
}
|
||||
} else {
|
||||
ui->editVariable->setEnabled(false);
|
||||
ui->deleteVariable->setEnabled(false);
|
||||
ui->varToReport->setEnabled(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -717,8 +745,47 @@ void DataBrowser::on_errorMessage_clicked()
|
||||
}
|
||||
}
|
||||
|
||||
void DataBrowser::on_varToReport_clicked()
|
||||
{
|
||||
QString varName = getVariable();
|
||||
if (!varName.isEmpty()){
|
||||
m_report->dataManager()->addVariable(varName,m_report->dataManager()->variable(varName), VarDesc::Report);
|
||||
ui->varToReport->setEnabled(false);
|
||||
updateVariablesTree();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void DataBrowser::on_variablesTree_itemDoubleClicked(QTreeWidgetItem *item, int )
|
||||
{
|
||||
if (item){
|
||||
QString varName = item->text(1);
|
||||
if (
|
||||
!varName.isEmpty() &&
|
||||
(m_report->dataManager()->variableType(varName) == VarDesc::Report)
|
||||
){
|
||||
LRVariableDialog dialog(this);
|
||||
#ifdef Q_OS_MAC
|
||||
dialog.setWindowModality(Qt::WindowModal);
|
||||
#else
|
||||
dialog.setWindowModality(Qt::ApplicationModal);
|
||||
#endif
|
||||
dialog.setVariableContainer(m_report->dataManager());
|
||||
dialog.setVariableName(varName);
|
||||
connect(&dialog,SIGNAL(signalVariableAccepted(QString)),this,SLOT(slotVariableEditorAccept(QString)));
|
||||
dialog.exec();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace LimeReport
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@@ -83,6 +83,9 @@ private slots:
|
||||
void on_addVariable_clicked();
|
||||
void on_variablesTree_currentItemChanged(QTreeWidgetItem *current, QTreeWidgetItem *previous);
|
||||
void on_errorMessage_clicked();
|
||||
void on_varToReport_clicked();
|
||||
void on_variablesTree_itemDoubleClicked(QTreeWidgetItem *item, int);
|
||||
|
||||
private:
|
||||
QString getDatasourceName();
|
||||
QString getConnectionName();
|
||||
|
@@ -43,5 +43,6 @@
|
||||
<file alias="/images/value_add">images/value_add2.png</file>
|
||||
<file alias="/images/value_edit">images/value_edit2.png</file>
|
||||
<file alias="/images/value">images/value1.png</file>
|
||||
<file alias="/images/varToReport">images/varToReport.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
@@ -35,7 +35,7 @@
|
||||
<enum>QTabWidget::South</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
@@ -429,6 +429,26 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QToolButton" name="varToReport">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Grab variable</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<iconset resource="lrdatabrowser.qrc">
|
||||
<normaloff>:/databrowser/images/varToReport</normaloff>:/databrowser/images/varToReport</iconset>
|
||||
</property>
|
||||
<property name="autoRaise">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
|
@@ -39,7 +39,7 @@ class DataBrowserTree : public QTreeWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum NodeType{Connection,Table,Row,Category,Variable};
|
||||
enum NodeType{Connection, Table, Row, Category, Variable, ExternalVariable};
|
||||
explicit DataBrowserTree(QWidget *parent = 0);
|
||||
protected:
|
||||
QMimeData* mimeData(const QList<QTreeWidgetItem *> items) const;
|
||||
|
@@ -80,10 +80,10 @@ void LRVariableDialog::accept()
|
||||
m_variablesContainer->changeVariable(m_oldVariableName,value());
|
||||
} else {
|
||||
m_variablesContainer->deleteVariable(m_oldVariableName);
|
||||
m_variablesContainer->addVariable(ui->leName->text(),value());
|
||||
m_variablesContainer->addVariable(ui->leName->text(),value(), LimeReport::VarDesc::Report);
|
||||
}
|
||||
} else {
|
||||
m_variablesContainer->addVariable(ui->leName->text(),value());
|
||||
m_variablesContainer->addVariable(ui->leName->text(),value(), LimeReport::VarDesc::Report);
|
||||
}
|
||||
emit signalVariableAccepted(ui->leName->text());
|
||||
QDialog::accept();
|
||||
|
Reference in New Issue
Block a user