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(stopButton,SIGNAL(clicked()),this,SLOT(stop()));
70 connect(gs,SIGNAL(sKeyFound()),this,SLOT(startP()));
74 if(!lineEdit->text().isEmpty())
76 if(lineEdit->isEnabled())
79 if(sMethod->text().compare("Song:")==0)
80 resultView->setModel(gs->getSongModel(lineEdit->text()));
81 else if(sMethod->text().compare("Artist:")==0)
82 resultView->setModel(gs->getArtistModel(lineEdit->text()));
83 else if(sMethod->text().compare("Album")==0)
84 resultView->setModel(gs->getAlbumModel(lineEdit->text()));
89 button->setText("Stop");
90 lineEdit->setDisabled(true);
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);
102 void groove::finishedS()
104 model = gs->getModel();
105 resultView->setModel(model);
106 button->setText("Search");
107 resultView->setColumnWidth(0,resultView->viewport()->width()/2);
108 resultView->setColumnWidth(1,resultView->viewport()->width()/2);
109 lineEdit->setDisabled(false);
110 resultView->setColumnHidden(2,true);
112 void groove::changeS( QAction * action)
114 sMethod->setText(action->text());
115 sMethod->setMaximumWidth(sMethod->sizeHint().rwidth());
119 QModelIndexList selected = resultView->selectionModel()->selectedRows(0);
120 if(!selected.isEmpty())
122 QStandardItem *item = model->item(selected.first().row(),2);
126 gs->getSong(item->text());
131 void groove::startP()
133 if(!gs->sku.isValid())
136 player = new sPlayer();
137 player->play(gs->streamID,gs->sku);