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 QHBoxLayout *bottomLayout = new QHBoxLayout();
16 button = new QPushButton("Search");
17 QPushButton *dButton = new QPushButton("Play");
18 QPushButton *stopButton = new QPushButton("Stop");
19 QPushButton *moreButton = new QPushButton();
20 resultView = new QTableView();
21 QMenu *pushMenu = new QMenu();
24 lineEdit->setDisabled(true);
25 pushMenu->addAction("Song:");
26 //pushMenu->addAction("Artist:");
27 //pushMenu->addAction("Album:");
29 //sMethod->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Maximum);
30 sMethod->setMaximumWidth(sMethod->sizeHint().rwidth());
31 sMethod->setMenu(pushMenu);
32 model = new QStandardItemModel();
33 model->setHorizontalHeaderLabels(
34 QStringList() << "Please wait for initialization"
36 resultView->setModel(model);
37 resultView->verticalHeader()->hide();
38 resultView->horizontalHeader()->setStretchLastSection(true);
39 resultView->setSelectionBehavior(QAbstractItemView::SelectRows);
40 resultView->setSelectionMode(QAbstractItemView::SingleSelection);
41 resultView->setEditTriggers(QAbstractItemView::NoEditTriggers);
42 resultView->setColumnHidden(2,true);
43 resultView->setColumnHidden(3,true);
44 resultView->setAutoScroll(false);
45 /*QPalette pal = resultView->palette();
46 pal.setBrush(QPalette::Highlight,QBrush(Qt::transparent,Qt::NoBrush));
47 resultView->setPalette(pal);*/
49 layout->addWidget(sMethod);
50 layout->addWidget(lineEdit);
51 layout->addWidget(button);
52 vlayout->addLayout(layout);
53 vlayout->addWidget(resultView);
54 vlayout->addLayout(bottomLayout);
55 bottomLayout->addWidget(dButton);
56 bottomLayout->addWidget(stopButton);
57 bottomLayout->addWidget(moreButton);
58 vlayout->setMenuBar(mBar);
60 setWindowTitle("GrooveShark");
61 //Create New Grooveshark connection
64 connect(button, SIGNAL(clicked()), this, SLOT(search()));
65 connect(gs, SIGNAL(finishedSearch()), this, SLOT(finishedS()));
66 connect(lineEdit,SIGNAL(returnPressed()),this, SLOT(search()));
67 connect(pushMenu,SIGNAL(triggered(QAction*)),this,SLOT(changeS(QAction*)));
68 connect(dButton,SIGNAL(clicked()),this, SLOT(play()));
69 connect(gs,SIGNAL(sKeyFound()),this,SLOT(startP()));
73 if(!lineEdit->text().isEmpty())
75 if(lineEdit->isEnabled())
78 if(sMethod->text().compare("Song:")==0)
79 resultView->setModel(gs->getSongModel(lineEdit->text()));
80 else if(sMethod->text().compare("Artist:")==0)
81 resultView->setModel(gs->getArtistModel(lineEdit->text()));
82 else if(sMethod->text().compare("Album")==0)
83 resultView->setModel(gs->getAlbumModel(lineEdit->text()));
88 button->setText("Stop");
89 lineEdit->setDisabled(true);
93 resultView->setModel(model);
94 button->setText("Search");
95 resultView->setColumnWidth(0,resultView->viewport()->width()/2);
96 resultView->setColumnWidth(1,resultView->viewport()->width()/2);
97 lineEdit->setDisabled(false);
101 void groove::finishedS()
103 model = gs->getModel();
104 resultView->setModel(model);
105 button->setText("Search");
106 resultView->setColumnWidth(0,resultView->viewport()->width()/2);
107 resultView->setColumnWidth(1,resultView->viewport()->width()/2);
108 lineEdit->setDisabled(false);
109 resultView->setColumnHidden(2,true);
111 void groove::changeS( QAction * action)
113 sMethod->setText(action->text());
114 sMethod->setMaximumWidth(sMethod->sizeHint().rwidth());
118 QModelIndexList selected = resultView->selectionModel()->selectedRows(0);
119 if(!selected.isEmpty())
121 QStandardItem *item = model->item(selected.first().row(),2);
125 gs->getSong(item->text());
130 void groove::startP()
132 if(!gs->sku.isValid())
135 player = new sPlayer();
136 player->play(gs->streamID,gs->sku);