bool MusicUserModel::addUser(const QString &uid, const QString &pwd, const QString &mail) { setTable("MusicUser"); select(); insertRow(0); setData(index(0, fieldIndex("USERID")), uid); setData(index(0, fieldIndex("PASSWD")), userPasswordEncryption(pwd)); setData(index(0, fieldIndex("EMAIL")), mail); setData(index(0, fieldIndex("USERNAME")), uid); setData(index(0, fieldIndex("LOGINTIME")), 0); database().transaction(); if(submitAll()) { database().commit(); M_LOGGER_INFO("submit successfully"); return true; } else { M_LOGGER_INFO("submit failed"); database().rollback(); return false; } }
bool BaseExternalPlaylistModel::isColumnInternal(int column) { if (column == fieldIndex("track_id") || (PlayerManager::numPreviewDecks() == 0 && column == fieldIndex("preview"))) { return true; } return false; }
bool BaseExternalTrackModel::isColumnInternal(int column) { // Used for preview deck widgets. if (column == fieldIndex(LIBRARYTABLE_ID) || (PlayerManager::numPreviewDecks() == 0 && column == fieldIndex("preview"))) { return true; } return false; }
bool BaseExternalPlaylistModel::isColumnInternal(int column) { if (column == fieldIndex(ColumnCache::COLUMN_PLAYLISTTRACKSTABLE_TRACKID) || (PlayerManager::numPreviewDecks() == 0 && column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_PREVIEW))) { return true; } return false; }
Qt::ItemFlags DTPriceListTableModel::flags(const QModelIndex &index) const { Qt::ItemFlags flags = QSqlTableModel::flags(index); if ((index.column() == fieldIndex(cCountFieldName)) || (index.column() == fieldIndex(cInfoFieldName))) { if (flags.testFlag(Qt::ItemIsEditable)) flags ^= Qt::ItemIsEditable; } return flags; }
bool BaseSqlTableModel::setData( const QModelIndex& index, const QVariant& value, int role) { if (!index.isValid()) return false; int row = index.row(); int column = index.column(); if (sDebug) { qDebug() << this << "setData() column:" << column << "value:" << value << "role:" << role; } // Over-ride sets to TIMESPLAYED and re-direct them to PLAYED if (role == Qt::CheckStateRole) { QString val = value.toInt() > 0 ? QString("true") : QString("false"); if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_TIMESPLAYED)) { QModelIndex playedIndex = index.sibling(index.row(), fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_PLAYED)); return setData(playedIndex, val, Qt::EditRole); } else if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM)) { QModelIndex bpmLockindex = index.sibling(index.row(), fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_BPM_LOCK)); return setData(bpmLockindex, val, Qt::EditRole); } return false; } if (row < 0 || row >= m_rowInfo.size()) { return false; } const RowInfo& rowInfo = m_rowInfo[row]; TrackId trackId(rowInfo.trackId); // You can't set something in the table columns because we have no way of // persisting it. if (column < m_tableColumns.size()) { return false; } // TODO(rryan) ugly and only works because the mixxx library tables are the // only ones that aren't read-only. This should be moved into BTC. TrackPointer pTrack = m_trackDAO.getTrack(trackId); if (!pTrack) { return false; } setTrackValueForColumn(pTrack, column, value); // Do not save the track here. Changing the track dirties it and the caching // system will automatically save the track once it is unloaded from // memory. rryan 10/2010 //m_trackDAO.saveTrack(pTrack); return true; }
/*! * \brief MDiezmos::data * \param idx * \param role * \return */ QVariant MDiezmos::data(const QModelIndex &idx, int role) const { switch( idx.column() ) { case 1: { switch( role ) { case Qt::DisplayRole: { return QSqlTableModel::data( idx, role ).toDate().toString( Qt::SystemLocaleShortDate ); break; } default: {break;} } break; } case 3: case 4: { switch( role ) { case Qt::DisplayRole: { double valor = QSqlTableModel::data( idx, role ).toDouble(); return QString( "$ %L1").arg( valor, 10, 'f', 2 ); break; } default: { break; } } break; } case 6: { switch( role ) { case Qt::DisplayRole: { double nuevo_saldo = 0.0; if( idx.row() > 1 ) { nuevo_saldo = saldos->at( idx.row() -1 ); } nuevo_saldo -= data( index( idx.row(), fieldIndex( "haber" ) ), Qt::EditRole ).toDouble(); nuevo_saldo += data( index( idx.row(), fieldIndex( "debe" ) ), Qt::EditRole ).toDouble(); int pos = idx.row(); this->saldos->insert( pos, nuevo_saldo ); return QString( "$ %L1" ).arg( saldos->at( pos ), 10, 'f', 2 ); break; } default: { break; } } break; } default: { break; } } return QSqlTableModel::data( idx, role ); }
BaseExternalTrackModel::BaseExternalTrackModel(QObject* parent, TrackCollection* pTrackCollection, const char* settingsNamespace, const QString& trackTable, QSharedPointer<BaseTrackCache> trackSource) : BaseSqlTableModel(parent, pTrackCollection, settingsNamespace) { QString viewTable = trackTable + "_view"; QStringList columns; columns << "id"; columns << "'' AS " + LIBRARYTABLE_PREVIEW; QSqlQuery query(m_database); FieldEscaper f(m_database); QString queryString = QString( "CREATE TEMPORARY VIEW IF NOT EXISTS %1 AS " "SELECT %2 FROM %3") .arg(f.escapeString(viewTable), columns.join(","), f.escapeString(trackTable)); query.prepare(queryString); if (!query.exec()) { LOG_FAILED_QUERY(query) << "Error creating temporary view for" << trackTable; return; } columns[1] = LIBRARYTABLE_PREVIEW; setTable(viewTable, columns[0], columns, trackSource); setDefaultSort(fieldIndex("artist"), Qt::AscendingOrder); }
void BaseExternalTrackModel::trackLoaded(QString group, TrackPointer pTrack) { if (group == m_previewDeckGroup) { // If there was a previously loaded track, refresh its rows so the // preview state will update. if (m_previewDeckTrackId.isValid()) { const int numColumns = columnCount(); QLinkedList<int> rows = getTrackRows(m_previewDeckTrackId); m_previewDeckTrackId = TrackId(); // invalidate foreach (int row, rows) { QModelIndex left = index(row, 0); QModelIndex right = index(row, numColumns); emit(dataChanged(left, right)); } } if (pTrack) { // The external table has foreign Track IDs, so we need to compare // by location for (int row = 0; row < rowCount(); ++row) { QString location = index(row, fieldIndex("location")).data().toString(); if (location == pTrack->getLocation()) { m_previewDeckTrackId = TrackId(index(row, 0).data()); //qDebug() << "foreign track id" << m_previewDeckTrackId; break; } } } }
TrackId BaseSqlTableModel::getTrackId(const QModelIndex& index) const { if (index.isValid()) { return TrackId(index.sibling(index.row(), fieldIndex(m_idColumn)).data()); } else { return TrackId(); } }
void LibraryTableModel::setTableModel(int id){ Q_UNUSED(id); QStringList columns; columns << "library."+LIBRARYTABLE_ID << "'' as preview"; QString tableName = "library_view"; QSqlQuery query(m_pTrackCollection->getDatabase()); QString queryString = "CREATE TEMPORARY VIEW IF NOT EXISTS "+tableName+" AS " "SELECT " + columns.join(", ") + " FROM library INNER JOIN track_locations " "ON library.location = track_locations.id " "WHERE (" + LibraryTableModel::DEFAULT_LIBRARYFILTER + ")"; query.prepare(queryString); if (!query.exec()) { LOG_FAILED_QUERY(query); } QStringList tableColumns; tableColumns << LIBRARYTABLE_ID; tableColumns << "preview"; setTable(tableName, LIBRARYTABLE_ID, tableColumns, m_pTrackCollection->getTrackSource("default")); // BaseSqlTabelModel will setup the header info initHeaderData(); setSearch(""); setDefaultSort(fieldIndex("artist"), Qt::AscendingOrder); }
QVariant DTPriceListTableModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); QSqlRecord rec; QDate date; QString name; QString text; if (index.column() == fieldIndex(cInfoFieldName)) { switch(role) { case Qt::DisplayRole: rec = record(index.row()); name = rec.value("PRICELIST_NAME").toString().trimmed(); date = rec.value("PRICELIST_DATE").toDate(); text = QString(tr("%1 от %2")). arg(name). arg(date.toString(Qt::SystemLocaleShortDate).trimmed()); return text; break; default: return QSqlTableModel::data(index,role); } } return QSqlTableModel::data(index,role); }
void MissingTableModel::setTableModel(int id) { Q_UNUSED(id); QSqlQuery query(m_database); //query.prepare("DROP VIEW " + playlistTableName); //query.exec(); QString tableName("missing_songs"); QStringList columns; columns << "library." + LIBRARYTABLE_ID; query.prepare("CREATE TEMPORARY VIEW IF NOT EXISTS " + tableName + " AS " "SELECT " + columns.join(",") + " FROM library " "INNER JOIN track_locations " "ON library.location=track_locations.id " "WHERE " + MissingTableModel::MISSINGFILTER); if (!query.exec()) { qDebug() << query.executedQuery() << query.lastError(); } //Print out any SQL error, if there was one. if (query.lastError().isValid()) { qDebug() << __FILE__ << __LINE__ << query.lastError(); } QStringList tableColumns; tableColumns << LIBRARYTABLE_ID; setTable(tableName, LIBRARYTABLE_ID, tableColumns, m_pTrackCollection->getTrackSource()); setDefaultSort(fieldIndex("artist"), Qt::AscendingOrder); setSearch(""); }
void BaseSqlTableModel::setSort(int column, Qt::SortOrder order) { if (sDebug) { qDebug() << this << "setSort()" << column << order << m_tableColumns; } int trackSourceColumnCount = m_trackSource ? m_trackSource->columnCount() : 0; if (column < 0 || column >= trackSourceColumnCount + m_sortColumns.size() - 1) { // -1 because id column is in both tables qWarning() << "BaseSqlTableModel::setSort invalid column:" << column; return; } // There's no item to sort already, load from Settings last sort if (m_sortColumns.isEmpty()) { QString val = getModelSetting(COLUMNS_SORTING); QTextStream in(&val); while (!in.atEnd()) { int ordI = -1; QString name; in >> name >> ordI; int col = fieldIndex(name); if (col < 0) continue; Qt::SortOrder ord; ord = ordI > 0 ? Qt::AscendingOrder : Qt::DescendingOrder; m_sortColumns << SortColumn(col, ord); } }
int DTPriceListTableModel::getInfoFieldIndex() { //Поле с иконкой. Это PRICELISTNAME. if (record().isEmpty()) select(); int res = fieldIndex(cInfoFieldName); return res; }
void SparseMsg::tripletFill1( vector< unsigned int > v ) { unsigned int s3 = v.size() / 3; vector< unsigned int > src( v.begin(), v.begin() + s3 ); vector< unsigned int > dest( v.begin() + s3, v.begin() + 2 * s3 ); vector< unsigned int > fieldIndex( v.begin() + 2 * s3, v.end() ); tripletFill( src, dest, fieldIndex ); }
ContextModel::ContextModel(QObject *parent) : QSqlTableModel(parent) { setTable("context"); setSort(fieldIndex("shortdescr"), Qt::AscendingOrder); select(); }
void BaseSqlTableModel::setHeaderProperties( ColumnCache::Column column, QString title, int defaultWidth) { int fi = fieldIndex(column); setHeaderData(fi, Qt::Horizontal, m_tableColumnCache.columnName(column), TrackModel::kHeaderNameRole); setHeaderData(fi, Qt::Horizontal, title, Qt::DisplayRole); setHeaderData(fi, Qt::Horizontal, defaultWidth, TrackModel::kHeaderWidthRole); }
QString BaseSqlTableModel::getTrackLocation(const QModelIndex& index) const { if (!index.isValid()) { return ""; } QString location = index.sibling( index.row(), fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_LOCATION)).data().toString(); return location; }
TrackPointer BaseExternalTrackModel::getTrack(const QModelIndex& index) const { QString artist = index.sibling(index.row(), fieldIndex("artist")).data().toString(); QString title = index.sibling(index.row(), fieldIndex("title")).data().toString(); QString album = index.sibling(index.row(), fieldIndex("album")).data().toString(); QString year = index.sibling(index.row(), fieldIndex("year")).data().toString(); QString genre = index.sibling(index.row(), fieldIndex("genre")).data().toString(); float bpm = index.sibling(index.row(), fieldIndex("bpm")).data().toString().toFloat(); QString location = index.sibling(index.row(), fieldIndex("location")).data().toString(); if (location.isEmpty()) { // Track is lost return TrackPointer(); } bool track_already_in_library = false; TrackPointer pTrack = m_pTrackCollection->getTrackDAO() .getOrAddTrack(location, true, &track_already_in_library); // If this track was not in the Mixxx library it is now added and will be // saved with the metadata from iTunes. If it was already in the library // then we do not touch it so that we do not over-write the user's metadata. if (pTrack && !track_already_in_library) { pTrack->setArtist(artist); pTrack->setTitle(title); pTrack->setAlbum(album); pTrack->setYear(year); pTrack->setGenre(genre); pTrack->setBpm(bpm); } return pTrack; }
Qt::ItemFlags DTScheduleModel::flags(const QModelIndex &index) const { Qt::ItemFlags flags = QSqlTableModel::flags(index); if (index.column() == fieldIndex("FIO")) { if (flags.testFlag(Qt::ItemIsEditable)) flags ^= Qt::ItemIsEditable; } return flags; }
const TCHAR* CppSQLite3Query::fieldValue(const TCHAR* szField) { int nField = fieldIndex(szField); #ifdef _UNICODE return (const TCHAR*)sqlite3_column_text16(mpVM, nField); #else return (const TCHAR*)sqlite3_column_text(mpVM, nField); #endif }
// This minimizes the potential on a series of hyperplanes, all // perpendicular to the vector difference of the vacua. It tries to avoid // "zig-zag-iness" from Minuit2 coming to rest on a jittery line reasonably // far from the starting path by setting the starting point on each plane // to be the previous node plus the vector difference of previous node from // the node before it, with a special case for the first varying node. It // ignores both arguments, and also sets notYetProvidedPath to false. TunnelPath const* MinuitOnPotentialOnParallelPlanes::TryToImprovePath( TunnelPath const& lastPath, BubbleProfile const& bubbleFromLastPath ) { SetParallelVector( returnPathNodes.front(), returnPathNodes.back() ); // A tenth of the Euclidean distance between hyperplanes is used as the // initial step size for Minuit, though the step size should be adapted // internally as the minimization proceeds. SetCurrentMinuitSteps( 0.1 * segmentAuxiliaryLength ); SetUpHouseholderReflection(); for( size_t fieldIndex( 0 ); fieldIndex < numberOfFields; ++fieldIndex ) { currentHyperplaneOrigin( fieldIndex ) = ( returnPathNodes.front()[ fieldIndex ] + ( segmentAuxiliaryLength * currentParallelComponent( fieldIndex ) ) ); } RunMigradAndPutTransformedResultIn( returnPathNodes[ 1 ] ); for( size_t nodeIndex( 2 ); nodeIndex <= numberOfVaryingNodes; ++nodeIndex ) { // Each minimization in the next hyperplane starts at points along the // straight vector between the vacua at equal intervals. for( size_t fieldIndex( 0 ); fieldIndex < numberOfFields; ++fieldIndex ) { currentHyperplaneOrigin( fieldIndex ) += ( segmentAuxiliaryLength * currentParallelComponent( fieldIndex ) ); } RunMigradAndPutTransformedResultIn( returnPathNodes[ nodeIndex ] ); } return new LinearSplineThroughNodes( returnPathNodes, nodeZeroParameterization, pathTemperature ); }
void BaseExternalTrackModel::setTableModel(int id) { Q_UNUSED(id); QStringList columns; columns << "id"; // TODO(XXX) preview column, needs a temporary view setTable(m_trackTable, columns[0], columns, m_pTrackCollection->getTrackSource(m_trackSource)); setDefaultSort(fieldIndex("artist"), Qt::AscendingOrder); initHeaderData(); }
void PlaylistTableModel::setTableModel(int playlistId) { //qDebug() << "PlaylistTableModel::setTableModel" << playlistId; if (m_iPlaylistId == playlistId) { qDebug() << "Already focused on playlist " << playlistId; return; } m_iPlaylistId = playlistId; QString playlistTableName = "playlist_" + QString::number(m_iPlaylistId); QSqlQuery query(m_database); FieldEscaper escaper(m_database); QStringList columns; columns << PLAYLISTTRACKSTABLE_TRACKID + " AS " + LIBRARYTABLE_ID << PLAYLISTTRACKSTABLE_POSITION << PLAYLISTTRACKSTABLE_DATETIMEADDED << "'' AS " + LIBRARYTABLE_PREVIEW // For sorting the cover art column we give LIBRARYTABLE_COVERART // the same value as the cover hash. << LIBRARYTABLE_COVERART_HASH + " AS " + LIBRARYTABLE_COVERART; // We drop files that have been explicitly deleted from mixxx // (mixxx_deleted=0) from the view. There was a bug in <= 1.9.0 where // removed files were not removed from playlists, so some users will have // libraries where this is the case. QString queryString = QString("CREATE TEMPORARY VIEW IF NOT EXISTS %1 AS " "SELECT %2 FROM PlaylistTracks " "INNER JOIN library ON library.id = PlaylistTracks.track_id " "WHERE PlaylistTracks.playlist_id = %3") .arg(escaper.escapeString(playlistTableName), columns.join(","), QString::number(playlistId)); if (!m_showAll) { queryString.append(" AND library.mixxx_deleted = 0"); } query.prepare(queryString); if (!query.exec()) { LOG_FAILED_QUERY(query); } columns[0] = LIBRARYTABLE_ID; // columns[1] = PLAYLISTTRACKSTABLE_POSITION from above // columns[2] = PLAYLISTTRACKSTABLE_DATETIMEADDED from above columns[3] = LIBRARYTABLE_PREVIEW; columns[4] = LIBRARYTABLE_COVERART; setTable(playlistTableName, LIBRARYTABLE_ID, columns, m_pTrackCollection->getTrackSource()); setSearch(""); setDefaultSort(fieldIndex(ColumnCache::COLUMN_PLAYLISTTRACKSTABLE_POSITION), Qt::AscendingOrder); setSort(defaultSortColumn(), defaultSortOrder()); connect(&m_playlistDao, SIGNAL(changed(int)), this, SLOT(playlistChanged(int))); }
void BaseExternalPlaylistModel::setPlaylist(QString playlist_path) { QSqlQuery finder_query(m_database); finder_query.prepare(QString("SELECT id from %1 where name=:name").arg(m_playlistsTable)); finder_query.bindValue(":name", playlist_path); if (!finder_query.exec()) { LOG_FAILED_QUERY(finder_query) << "Error getting id for playlist:" << playlist_path; return; } // TODO(XXX): Why not last-insert id? int playlistId = -1; QSqlRecord finder_query_record = finder_query.record(); while (finder_query.next()) { playlistId = finder_query.value( finder_query_record.indexOf("id")).toInt(); } if (playlistId == -1) { qDebug() << "ERROR: Could not get the playlist ID for playlist:" << playlist_path; return; } QString playlistViewTable = QString("%1_%2").arg(m_playlistTracksTable, QString::number(playlistId)); QStringList columns; columns << "track_id"; columns << "position"; columns << "'' AS " + LIBRARYTABLE_PREVIEW; QSqlQuery query(m_database); FieldEscaper f(m_database); QString queryString = QString( "CREATE TEMPORARY VIEW IF NOT EXISTS %1 AS " "SELECT %2 FROM %3 WHERE playlist_id = %4") .arg(f.escapeString(playlistViewTable), columns.join(","), m_playlistTracksTable, QString::number(playlistId)); query.prepare(queryString); if (!query.exec()) { LOG_FAILED_QUERY(query) << "Error creating temporary view for playlist."; return; } columns[2] = LIBRARYTABLE_PREVIEW; setTable(playlistViewTable, columns[0], columns, m_trackSource); setDefaultSort(fieldIndex(ColumnCache::COLUMN_PLAYLISTTRACKSTABLE_POSITION), Qt::AscendingOrder); setSearch(""); }
void SqlTableModel::setTable(const QString &tableName) { QSqlTableModel::setTable(tableName); generateRoleNames(); int col = fieldIndex(_sortField); if (col >= 0) { setSort(col, _sortOrder); } select(); }
const unsigned short* CppSQLite3Query::fieldValue16(const CString& szField) { checkVM(); int nField = fieldIndex(szField); if (nField < 0 || nField > mnCols-1) { throw CppSQLite3Exception(CPPSQLITE_ERROR, "Invalid field index requested"); } return (const unsigned short*)sqlite3_column_text16(mpVM, nField); }
TrackPointer BaseExternalPlaylistModel::getTrack(const QModelIndex& index) const { QString location = index.sibling( index.row(), fieldIndex("location")).data().toString(); if (location.isEmpty()) { // Track is lost return TrackPointer(); } TrackDAO& track_dao = m_pTrackCollection->getTrackDAO(); int track_id = track_dao.getTrackId(location); bool track_already_in_library = track_id >= 0; if (track_id < 0) { // Add Track to library track_id = track_dao.addTrack(location, true); } TrackPointer pTrack; if (track_id < 0) { // Add Track to library failed, create a transient TrackInfoObject pTrack = TrackPointer(new TrackInfoObject(location), &QObject::deleteLater); } else { pTrack = track_dao.getTrack(track_id); } // If this track was not in the Mixxx library it is now added and will be // saved with the metadata from iTunes. If it was already in the library // then we do not touch it so that we do not over-write the user's metadata. if (!track_already_in_library) { QString artist = index.sibling( index.row(), fieldIndex("artist")).data().toString(); pTrack->setArtist(artist); QString title = index.sibling( index.row(), fieldIndex("title")).data().toString(); pTrack->setTitle(title); QString album = index.sibling( index.row(), fieldIndex("album")).data().toString(); pTrack->setAlbum(album); QString year = index.sibling( index.row(), fieldIndex("year")).data().toString(); pTrack->setYear(year); QString genre = index.sibling( index.row(), fieldIndex("genre")).data().toString(); pTrack->setGenre(genre); float bpm = index.sibling( index.row(), fieldIndex("bpm")).data().toString().toFloat(); pTrack->setBpm(bpm); } return pTrack; }
BaseExternalTrackModel::BaseExternalTrackModel(QObject* parent, TrackCollection* pTrackCollection, const char* settingsNamespace, const QString& trackTable, QSharedPointer<BaseTrackCache> trackSource) : BaseSqlTableModel(parent, pTrackCollection, settingsNamespace), m_trackTable(trackTable) { QStringList columns; columns << "id"; // TODO(XXX) preview column, needs a temporary view setTable(m_trackTable, columns[0], columns, trackSource); setDefaultSort(fieldIndex("artist"), Qt::AscendingOrder); }