summaryrefslogtreecommitdiffstats
path: root/playerwidget.cpp
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2017-08-26 06:51:56 +0200
committerArno <arno@disconnect.de>2017-08-26 06:51:56 +0200
commita957512861065d700663ddd522de57925b878eae (patch)
treed98db5dfa2d354b1834c110bdbb3f0e3c7321c1e /playerwidget.cpp
parentbaf1130ec1148d007f2c98382c217af4731719c7 (diff)
downloadBeetPlayer-a957512861065d700663ddd522de57925b878eae.tar.gz
BeetPlayer-a957512861065d700663ddd522de57925b878eae.tar.bz2
BeetPlayer-a957512861065d700663ddd522de57925b878eae.zip
Implement view for WebRadio
does nothing yet, doesn't crash, either :)
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r--playerwidget.cpp35
1 files changed, 35 insertions, 0 deletions
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);