AvailableMusicView::AvailableMusicView(DataStore *dataStore, QWidget *parent): QTableView(parent), dataStore(dataStore) { setEditTriggers(QAbstractItemView::NoEditTriggers); availableMusicModel = new MusicModel(getDataQuery(), dataStore, this); setModel(availableMusicModel); // horizontalHeader()->setStretchLastSection(true); configHeaders(); setSelectionBehavior(QAbstractItemView::SelectRows); setContextMenuPolicy(Qt::CustomContextMenu); createActions(); connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(handleContextMenuRequest(const QPoint&))); connect( this, SIGNAL(activated(const QModelIndex&)), this, SLOT(addSongToActivePlaylist(const QModelIndex&))); connect( dataStore, SIGNAL(availableSongsModified()), availableMusicModel, SLOT(refresh())); }
ActivePlaylistView::ActivePlaylistView(DataStore* dataStore, QWidget* parent): QTableView(parent), dataStore(dataStore) { setContextMenuPolicy(Qt::CustomContextMenu); setFocusPolicy(Qt::TabFocus); setEditTriggers(QAbstractItemView::NoEditTriggers); model = new ActivePlaylistModel(getDataQuery(), dataStore, this); horizontalHeader()->setStretchLastSection(true); createActions(); setModel(model); setSelectionBehavior(QAbstractItemView::SelectRows); setSelectionMode(QAbstractItemView::ContiguousSelection); configureHeaders(); connect( dataStore, SIGNAL(activePlaylistModified()), model, SLOT(refresh())); connect( this, SIGNAL(activated(const QModelIndex&)), this, SLOT(setCurrentSong(const QModelIndex&))); connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(handleContextMenuRequest(const QPoint&))); connect( selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(handleSelectionChange(const QItemSelection&, const QItemSelection&))); }
void PgReader::CursorSetup() { std::ostringstream oss; oss << "DECLARE cur CURSOR FOR " << getDataQuery(); pg_begin(m_session); pg_execute(m_session, oss.str()); log()->get(LogLevel::Debug) << "SQL cursor prepared: " << oss.str() << std::endl; }
LibraryView::LibraryView(DataStore *dataStore, QWidget* parent): QTableView(parent), dataStore(dataStore) { libraryModel = new MusicModel(getDataQuery(), dataStore, this); proxyModel = new QSortFilterProxyModel(this); proxyModel->setSourceModel(libraryModel); proxyModel->setFilterKeyColumn(-1); proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive); verticalHeader()->hide(); horizontalHeader()->setStretchLastSection(true); setModel(proxyModel); setSortingEnabled(true); setSelectionBehavior(QAbstractItemView::SelectRows); setContextMenuPolicy(Qt::CustomContextMenu); configureColumns(); createActions(); connect( dataStore, SIGNAL(libSongsModified(const QSet<library_song_id_t>&)), libraryModel, SLOT(refresh())); connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(handleContextMenuRequest(const QPoint&))); connect( this, SIGNAL(activated(const QModelIndex&)), this, SLOT(addSongToPlaylist(const QModelIndex&))); while(libraryModel->canFetchMore()){ libraryModel->fetchMore(); } }