From a957512861065d700663ddd522de57925b878eae Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 26 Aug 2017 06:51:56 +0200 Subject: Implement view for WebRadio does nothing yet, doesn't crash, either :) --- playerwidget.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'playerwidget.cpp') diff --git a/playerwidget.cpp b/playerwidget.cpp index 0810487..9d41b79 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -74,6 +74,7 @@ void PlayerWidget::setupGui(){ mView->setSelectionMode(QAbstractItemView::ExtendedSelection); connect(mView, &BeetView::doubleClicked, this, &PlayerWidget::viewDoubleClicked); mFolderModel = new QStandardItemModel; + mWebRadioModel = new QStandardItemModel; mCurrentModel = mViewModel; QToolBar *viewTB = new QToolBar; QActionGroup *viewAG = new QActionGroup(this); @@ -108,6 +109,11 @@ void PlayerWidget::setupGui(){ mSearchA->setCheckable(true); viewAG->addAction(mSearchA); connect(mSearchA, &QAction::triggered, this, &PlayerWidget::doFilter); + QAction *viewByWebradioA = new QAction(QIcon(":/dog_hood.png"), tr("Webradio"), this); + viewByWebradioA->setCheckable(true); + viewAG->addAction(Helper::createSeparator(this)); + viewAG->addAction(viewByWebradioA); + connect(viewByWebradioA, &QAction::triggered, this, &PlayerWidget::doPopulateByWebradio); viewTB->addActions(viewAG->actions()); mSelectFilesA = new QAction(QIcon(":/bizarre_amputee.png"), tr("Select files..."), this); mSelectFilesA->setShortcut(tr("CTRL++")); @@ -699,6 +705,24 @@ void PlayerWidget::populateByGenre(QStandardItem *parent, const QString &filter) } } +void PlayerWidget::populateByWebradio(QStandardItem *parent){ + QSqlDatabase db = QSqlDatabase::database("beetplayerdb"); + QStandardItem *root = parent; + QIcon wrIcon(":/dog_hood.png"); + QSqlQuery wrQ = QSqlQuery(db); + wrQ.prepare("SELECT tdescription, turl FROM webradio ORDER BY tdescription DESC"); + wrQ.exec(); + while(wrQ.next()){ + QStandardItem *curWr = new QStandardItem; + curWr->setEditable(false); + curWr->setFont(QFont("courier")); + curWr->setText(wrQ.value(0).toString()); + curWr->setIcon(wrIcon); + curWr->setData(wrQ.value(1), UrlRole); + root->appendRow(curWr); + } +} + void PlayerWidget::doPopulateByFolder(){ mCurrentModel = mFolderModel; mFolderModel->clear(); @@ -749,6 +773,17 @@ void PlayerWidget::doPopulateByFolder(){ emit modelChanged(); } +void PlayerWidget::doPopulateByWebradio(){ + mCurrentModel = mWebRadioModel; + mWebRadioModel->clear(); + mWebRadioModel->setHorizontalHeaderLabels(QStringList() << tr("Description")); + QStandardItem *root = mWebRadioModel->invisibleRootItem(); + populateByWebradio(root); + mView->setModel(mWebRadioModel); + emit viewModeChanged("WebRadio"); + emit modelChanged(); +} + void PlayerWidget::doModelChanged(){ if(mCurrentModel == mFolderModel){ mSelectFilesA->setEnabled(true); -- cgit v1.2.3-70-g09d2