5 groove::groove(QWidget *parent) :
9 //mBar->addAction("test");
10 sMethod = new QPushButton("Song:");
11 lineEdit = new QLineEdit("");
12 player = new sPlayer();
13 QHBoxLayout *layout = new QHBoxLayout();
14 QVBoxLayout *vlayout = new QVBoxLayout();
15 button = new QPushButton("Search");
16 QPushButton *dButton = new QPushButton("Play");
17 resultView = new QTableView();
18 QMenu *pushMenu = new QMenu();
21 lineEdit->setDisabled(true);
22 pushMenu->addAction("Song:");
23 pushMenu->addAction("Artist:");
24 pushMenu->addAction("Album:");
26 //sMethod->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Maximum);
27 sMethod->setMaximumWidth(sMethod->sizeHint().rwidth());
28 sMethod->setMenu(pushMenu);
29 model = new QStandardItemModel();
30 model->setHorizontalHeaderLabels(
31 QStringList() << "Please wait for initialization"
33 resultView->setModel(model);
34 resultView->verticalHeader()->hide();
35 resultView->horizontalHeader()->setStretchLastSection(true);
36 resultView->setSelectionBehavior(QAbstractItemView::SelectRows);
37 resultView->setSelectionMode(QAbstractItemView::SingleSelection);
38 resultView->setEditTriggers(QAbstractItemView::NoEditTriggers);
39 resultView->setColumnHidden(2,true);
40 resultView->setAutoScroll(false);
42 layout->addWidget(sMethod);
43 layout->addWidget(lineEdit);
44 layout->addWidget(button);
45 vlayout->addLayout(layout);
46 vlayout->addWidget(resultView);
47 vlayout->addWidget(dButton);
48 vlayout->setMenuBar(mBar);
50 setWindowTitle("GrooveShark");
51 //Create New Grooveshark connection
54 connect(button, SIGNAL(clicked()), this, SLOT(search()));
55 connect(gs, SIGNAL(finishedSearch()), this, SLOT(finishedS()));
56 connect(lineEdit,SIGNAL(returnPressed()),this, SLOT(search()));
57 connect(pushMenu,SIGNAL(triggered(QAction*)),this,SLOT(changeS(QAction*)));
58 connect(dButton,SIGNAL(clicked()),this, SLOT(play()));
59 connect(gs,SIGNAL(sKeyFound()),this,SLOT(startP()));
63 if(!lineEdit->text().isEmpty())
65 if(lineEdit->isEnabled())
68 if(sMethod->text().compare("Song:")==0)
69 resultView->setModel(gs->getSongModel(lineEdit->text()));
70 else if(sMethod->text().compare("Artist:")==0)
71 resultView->setModel(gs->getArtistModel(lineEdit->text()));
72 else if(sMethod->text().compare("Album")==0)
73 resultView->setModel(gs->getAlbumModel(lineEdit->text()));
78 button->setText("Stop");
79 lineEdit->setDisabled(true);
83 resultView->setModel(model);
84 button->setText("Search");
85 resultView->setColumnWidth(0,resultView->viewport()->width()/2);
86 resultView->setColumnWidth(1,resultView->viewport()->width()/2);
87 lineEdit->setDisabled(false);
91 void groove::finishedS()
93 model = gs->getModel();
94 resultView->setModel(model);
95 button->setText("Search");
96 resultView->setColumnWidth(0,resultView->viewport()->width()/2);
97 resultView->setColumnWidth(1,resultView->viewport()->width()/2);
98 lineEdit->setDisabled(false);
99 resultView->setColumnHidden(2,true);
101 void groove::changeS( QAction * action)
103 sMethod->setText(action->text());
104 sMethod->setMaximumWidth(sMethod->sizeHint().rwidth());
108 QModelIndexList selected = resultView->selectionModel()->selectedRows(0);
109 if(!selected.isEmpty())
111 QStandardItem *item = model->item(selected.first().row(),2);
115 gs->getSong(item->text());
120 void groove::startP()
122 if(!gs->sku.isValid())
125 player = new sPlayer();
126 player->play(gs->streamID,gs->sku);