ImportCsvDialogue::ImportCsvDialogue(const QString &path, QList<ImportDialogueTable *> &tables, QWidget *parent): QDialog(parent, Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowMaximizeButtonHint), file_path(path) { setupUi(this); this->tables = tables; id_bb->button(QDialogButtonBox::Ok)->setEnabled(false); id_bb->button(QDialogButtonBox::Cancel)->setText(tr("Cancel")); tw_content->verticalHeader()->setDefaultSectionSize(20); for (int i = 0; i < tables.count(); ++i) { cb_table->addItem(tables.at(i)->name(), tables.at(i)->id()); } cb_encoding->addItem(tr("Unicode (UTF-8)"), "UTF-8"); cb_encoding->addItem(tr("Central European (Windows 1250)"), "CP 1250"); cb_encoding->addItem(tr("System default"), "System"); cb_separator->addItem(tr("Comma"), ','); cb_separator->addItem(tr("Semicolon"), ';'); cb_separator->addItem(tr("Tab"), '\t'); loadTableColumns(0); trw_columns->header()->setStretchLastSection(false); trw_columns->header()->setSectionResizeMode(0, QHeaderView::Stretch); trw_columns->header()->setSectionResizeMode(1, QHeaderView::ResizeToContents); QObject::connect(btn_reload, SIGNAL(clicked()), this, SLOT(load())); QObject::connect(cb_table, SIGNAL(currentIndexChanged(int)), this, SLOT(loadTableColumns(int))); QObject::connect(trw_columns, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(changeColumnIndex(QTreeWidgetItem *))); };
void QgsSQLComposerDialog::splitSQLIntoFields() { if ( mAlreadyModifyingFields ) return; QgsSQLStatement sql( mQueryEdit->text() ); if ( sql.hasParserError() ) return; const QgsSQLStatement::NodeSelect *nodeSelect = dynamic_cast<const QgsSQLStatement::NodeSelect *>( sql.rootNode() ); if ( nodeSelect == nullptr ) return; mDistinct = nodeSelect->distinct(); QList<QgsSQLStatement::NodeSelectedColumn *> columns = nodeSelect->columns(); QString columnText; Q_FOREACH ( QgsSQLStatement::NodeSelectedColumn *column, columns ) { if ( !columnText.isEmpty() ) columnText += QLatin1String( ", " ); columnText += column->dump(); } QList<QgsSQLStatement::NodeTableDef *> tables = nodeSelect->tables(); QString tablesText; Q_FOREACH ( QgsSQLStatement::NodeTableDef *table, tables ) { if ( !tablesText.isEmpty() ) tablesText += QLatin1String( ", " ); loadTableColumns( QgsSQLStatement::quotedIdentifierIfNeeded( table->name() ) ); tablesText += table->dump(); } QString whereText; QgsSQLStatement::Node *where = nodeSelect->where(); if ( where != nullptr ) whereText = where->dump(); QString orderText; QList<QgsSQLStatement::NodeColumnSorted *> orderColumns = nodeSelect->orderBy(); Q_FOREACH ( QgsSQLStatement::NodeColumnSorted *column, orderColumns ) { if ( !orderText.isEmpty() ) orderText += QLatin1String( ", " ); orderText += column->dump(); } QList<QgsSQLStatement::NodeJoin *> joins = nodeSelect->joins(); mAlreadyModifyingFields = true; mColumnsEditor->setPlainText( columnText ); mTablesEditor->setText( tablesText ); mWhereEditor->setPlainText( whereText ); mOrderEditor->setPlainText( orderText ); mTableJoins->setRowCount( joins.size() + 1 ); int iRow = 0; Q_FOREACH ( QgsSQLStatement::NodeJoin *join, joins ) { loadTableColumns( QgsSQLStatement::quotedIdentifierIfNeeded( join->tableDef()->name() ) ); mTableJoins->setItem( iRow, 0, new QTableWidgetItem( join->tableDef()->dump() ) ); if ( join->onExpr() ) mTableJoins->setItem( iRow, 1, new QTableWidgetItem( join->onExpr()->dump() ) ); else mTableJoins->setItem( iRow, 1, new QTableWidgetItem( QLatin1String( "" ) ) ); iRow ++; }