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.
This commit is contained in:
Martin Kleusberg
2013-05-31 16:50:13 +02:00
parent b9afbe2aea
commit cbd81de88b
3 changed files with 21 additions and 45 deletions

View File

@@ -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"));
}
}

View File

@@ -10,11 +10,6 @@
#include <QSettings>
#include <QDebug>
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;i<table.fldmap.count();i++)
{
// Is this the column to rename?
if(table.fldmap.value(i).getname() == name)
if(table.fldmap.value(i)->name() == 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);

View File

@@ -16,23 +16,8 @@ enum
kLogMsg_App
};
typedef QMap<int, class DBBrowserField> fieldMap;
typedef QMultiMap<QString, class DBBrowserObject> 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;i<fldmap.size();i++)
if(fldmap.at(i)->name() == name)
return fldmap.at(i);
return sqlb::FieldPtr();
}
fieldMap fldmap;
sqlb::FieldVector fldmap;
private:
QString name;
QString sql;