void CountryModel::populate(QString source) { beginInsertRows(QModelIndex(), rowCount(), rowCount()); _list.clear(); std::string path(Core::AbstractConfig::prefix); path += Core::AbstractConfig::sharePath; path += "db/"; if (source == "") return ; QString filename(source); filename.append(".db"); filename.prepend(path.c_str()); Core::DatabaseSqlite *db; db = new Core::DatabaseSqlite(""); qDebug() << "filename = " << filename; if (db) { db->set_databasename(filename.toStdString()); }else { qDebug() << "error db"; } if (!db->open_database()){ qDebug() << "error open database"; return; } Core::listdata * list = db->create_countries_list(); Core::listdata::iterator cur; if (!list) return; for (cur=list->begin(); cur<list->end(); cur++){ QString str = QString::fromStdString((*cur).second); _list.append(new SelectData(str, QString::fromStdString((*cur).first), str.left(1))); } endInsertRows(); reset(); }