From cbd81de88b22ed8591bd46ab3db6498ffbacb687 Mon Sep 17 00:00:00 2001 From: Martin Kleusberg Date: Fri, 31 May 2013 16:50:13 +0200 Subject: [PATCH] Remove the DBBrowserField class Remove the DBBrowserField class and change all parts of the program which used to use this class to work with sqlb::Field instead. --- src/MainWindow.cpp | 14 +++++++------- src/sqlitedb.cpp | 23 +++++++---------------- src/sqlitedb.h | 29 +++++++---------------------- 3 files changed, 21 insertions(+), 45 deletions(-) diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index c3e718d5..bef806b4 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -217,10 +217,10 @@ void MainWindow::populateStructure() tablefieldmodel->setRowCount((*it).fldmap.count()); tablefieldmodel->setColumnCount(1); - fieldMap::ConstIterator fit; int fldrow = 0; - for ( fit = (*it).fldmap.begin(); fit != (*it).fldmap.end(); ++fit, ++fldrow ) { - QString fieldname = fit.value().getname(); + for(int i=0;i<(*it).fldmap.size();i++,fldrow++) + { + QString fieldname = (*it).fldmap.at(i)->name(); QStandardItem* fldItem = new QStandardItem(fieldname); fldItem->setIcon(QIcon(":/icons/field")); tablefieldmodel->setItem(fldrow, 0, fldItem); @@ -272,12 +272,12 @@ void MainWindow::populateStructure() // If it is a table add the field Nodes if((*it).gettype() == "table" || (*it).gettype() == "view") { - fieldMap::ConstIterator fit; - for ( fit = (*it).fldmap.begin(); fit != (*it).fldmap.end(); ++fit ) { + for(int i=0;i<(*it).fldmap.size();i++) + { QTreeWidgetItem *fldItem = new QTreeWidgetItem(tableItem); - fldItem->setText(0, fit.value().getname()); + fldItem->setText(0, (*it).fldmap.at(i)->name()); fldItem->setText(1, "field"); - fldItem->setText(2, fit.value().gettype()); + fldItem->setText(2, (*it).fldmap.at(i)->type()); fldItem->setIcon(0, QIcon(":/icons/field")); } } diff --git a/src/sqlitedb.cpp b/src/sqlitedb.cpp index f1cb04f4..37b12337 100644 --- a/src/sqlitedb.cpp +++ b/src/sqlitedb.cpp @@ -10,11 +10,6 @@ #include #include -void DBBrowserObject::addField(int order, const QString& wfield,const QString& wtype) -{ - fldmap[order] = DBBrowserField(wfield,wtype); -} - bool DBBrowserDB::isOpen ( ) const { return _db!=0; @@ -535,7 +530,7 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const QString& name, sq // Collect information on the current DB layout DBBrowserObject table = getObjectByName(tablename); - if(table.getname() == "" || table.getField(name).getname() == "") + if(table.getname() == "" || table.getField(name)->name() == "") { lastErrorMessage = QObject::tr("renameColumn: cannot find table %1 with column %2").arg(tablename).arg(name); qWarning() << lastErrorMessage; @@ -557,10 +552,10 @@ bool DBBrowserDB::renameColumn(const QString& tablename, const QString& name, sq for(int i=0;iname() == name) new_table_structure.push_back(to->toString()); else - new_table_structure.push_back(QString("`%1` %2").arg(table.fldmap.value(i).getname()).arg(table.fldmap.value(i).gettype())); + new_table_structure.push_back(table.fldmap.value(i)->toString()); } if(!createTable("sqlitebrowser_rename_column_new_table", new_table_structure)) { @@ -761,11 +756,8 @@ QStringList DBBrowserDB::getTableFields(const QString & tablename) const { if((*it).getname() == tablename) { - fieldMap::ConstIterator fit; - - for ( fit = (*it).fldmap.begin(); fit != (*it).fldmap.end(); ++fit ) { - res.append( fit.value().getname() ); - } + for(int i=0;i<(*it).fldmap.size();i++) + res.append((*it).fldmap.at(i)->name()); } } return res; @@ -873,7 +865,6 @@ void DBBrowserDB::updateSchema( ) &vm, &tail); if (err == SQLITE_OK){ (*it).fldmap.clear(); - int e = 0; while ( sqlite3_step(vm) == SQLITE_ROW ){ if (sqlite3_column_count(vm)==6) { @@ -884,8 +875,8 @@ void DBBrowserDB::updateSchema( ) if(ispk==1) val2.append(QString(" PRIMARY KEY")); - (*it).addField(e, val1, val2); - e++; + sqlb::FieldPtr f(new sqlb::Field(val1, val2)); + (*it).addField(f); } } sqlite3_finalize(vm); diff --git a/src/sqlitedb.h b/src/sqlitedb.h index 46869b40..a27616cb 100644 --- a/src/sqlitedb.h +++ b/src/sqlitedb.h @@ -16,23 +16,8 @@ enum kLogMsg_App }; -typedef QMap fieldMap; typedef QMultiMap objectMap; -class DBBrowserField -{ -public: - DBBrowserField() : name( "" ) { } - DBBrowserField( const QString& wname,const QString& wtype ) - : name( wname), type( wtype ) - { } - QString getname() const { return name; } - QString gettype() const { return type; } -private: - QString name; - QString type; -}; - class DBBrowserObject { public: @@ -41,19 +26,19 @@ public: : name( wname), sql( wsql ), type(wtype) { } - void addField(int order, const QString& wfield,const QString& wtype); + void addField(sqlb::FieldPtr field) { fldmap.push_back(field); } QString getname() const { return name; } QString getsql() const { return sql; } QString gettype() const { return type; } - DBBrowserField getField(const QString& name) const + sqlb::FieldPtr getField(const QString& name) const { - for(fieldMap::ConstIterator i=fldmap.begin();i!=fldmap.end();++i) - if(i.value().getname() == name) - return *i; - return DBBrowserField(); + for(int i=0;iname() == name) + return fldmap.at(i); + return sqlb::FieldPtr(); } - fieldMap fldmap; + sqlb::FieldVector fldmap; private: QString name; QString sql;