2 #include "qmaemo5rotator.h"
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 QMenu *moreAction = new QMenu();
30 moreAction->addAction("Playlist");
31 moreAction->addAction("Add current song to playlist");
32 moreAction->addAction("Show download Progress");
33 moreButton->setMenu(moreAction);
35 //sMethod->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Maximum);
36 sMethod->setMaximumWidth(sMethod->sizeHint().rwidth());
37 sMethod->setMenu(pushMenu);
38 model = new QStandardItemModel();
39 model->setHorizontalHeaderLabels(
40 QStringList() << "Please wait for initialization"
42 resultView->setModel(model);
43 resultView->verticalHeader()->hide();
44 resultView->horizontalHeader()->setStretchLastSection(true);
45 resultView->setSelectionBehavior(QAbstractItemView::SelectRows);
46 resultView->setSelectionMode(QAbstractItemView::SingleSelection);
47 resultView->setEditTriggers(QAbstractItemView::NoEditTriggers);
48 resultView->setColumnHidden(2,true);
49 resultView->setColumnHidden(3,true);
50 resultView->setAutoScroll(false);
51 /*QPalette pal = resultView->palette();
52 pal.setBrush(QPalette::Highlight,QBrush(Qt::transparent,Qt::NoBrush));
53 resultView->setPalette(pal);*/
55 layout->addWidget(sMethod);
56 rot = new QMaemo5Rotator(QMaemo5Rotator::AutomaticBehavior,this);
57 layout->addWidget(lineEdit);
58 layout->addWidget(button);
59 vlayout->addLayout(layout);
60 vlayout->addWidget(resultView);
61 vlayout->addLayout(bottomLayout);
62 bottomLayout->addWidget(dButton);
63 bottomLayout->addWidget(stopButton);
64 bottomLayout->addWidget(moreButton);
65 vlayout->setMenuBar(mBar);
67 setWindowTitle("GrooveShark");
68 //Create New Grooveshark connection
71 connect(button, SIGNAL(clicked()), this, SLOT(search()));
72 connect(gs, SIGNAL(finishedSearch()), this, SLOT(finishedS()));
73 connect(lineEdit,SIGNAL(returnPressed()),this, SLOT(search()));
74 connect(pushMenu,SIGNAL(triggered(QAction*)),this,SLOT(changeS(QAction*)));
75 connect(dButton,SIGNAL(clicked()),this, SLOT(play()));
76 connect(stopButton,SIGNAL(clicked()),this,SLOT(stop()));
77 connect(gs,SIGNAL(sKeyFound()),this,SLOT(startP()));
78 connect(moreButton,SIGNAL(clicked()),this,SLOT(moreB()));
79 //connect(rotator,SIGNAL(orientationChanged(Orientation)),this,SLOT(orientationChanged()));
83 if(!lineEdit->text().isEmpty())
85 if(lineEdit->isEnabled())
88 if(sMethod->text().compare("Song:")==0)
89 resultView->setModel(gs->getSongModel(lineEdit->text()));
90 else if(sMethod->text().compare("Artist:")==0)
91 resultView->setModel(gs->getArtistModel(lineEdit->text()));
92 else if(sMethod->text().compare("Album")==0)
93 resultView->setModel(gs->getAlbumModel(lineEdit->text()));
98 button->setText("Stop");
99 lineEdit->setDisabled(true);
103 resultView->setModel(model);
104 button->setText("Search");
105 resultView->setColumnWidth(0,resultView->viewport()->width()/2);
106 resultView->setColumnWidth(1,resultView->viewport()->width()/2);
107 lineEdit->setDisabled(false);
111 void groove::finishedS()
113 model = gs->getModel();
114 resultView->setModel(model);
115 button->setText("Search");
116 resultView->setColumnWidth(0,resultView->viewport()->width()/2);
117 resultView->setColumnWidth(1,resultView->viewport()->width()/2);
118 lineEdit->setDisabled(false);
119 resultView->setColumnHidden(2,true);
121 void groove::changeS( QAction * action)
123 sMethod->setText(action->text());
124 sMethod->setMaximumWidth(sMethod->sizeHint().rwidth());
128 QModelIndexList selected = resultView->selectionModel()->selectedRows(0);
129 if(!selected.isEmpty())
131 QStandardItem *item = model->item(selected.first().row(),2);
135 gs->getSong(item->text());
140 void groove::startP()
142 if(!gs->sku.isValid())
145 player = new sPlayer();
147 player->play(gs->streamID,gs->sku,rot->currentOrientation());
149 player->play(gs->streamID,gs->sku);
158 qDebug() << "He pressed the button";
160 void groove::orientationChanged()
163 QRect screenGeometry = QApplication::desktop()->screenGeometry();
164 if (screenGeometry.width() > screenGeometry.height())