#include "window.hpp" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include QString theArtist = "unknown"; QString theTitle = "unknown"; using namespace std; Window::Window() { resize(0,0); mNetManager = new QNetworkAccessManager (this); // Builds icon sticon = new QSystemTrayIcon(this); QIcon icon(":/music.png"); sticon->setIcon(icon); // Builds menu and menu items QMenu* stmenu = new QMenu(NULL); actTexte1 = new QAction(tr("unknown"),this); actTexte2 = new QAction(tr("Capturing")+"...",NULL); QAction* actTexte3 = new QAction(tr("Quit"),NULL); actTexte4 = new QAction(tr("Search on")+" Youtube",NULL); QAction* actTexte5 = new QAction(tr("About"),NULL); QAction* actTexte6 = new QAction(tr("List of music played"),NULL); actTexte7 = new QAction(tr("Search for the artist on")+" Wikipedia",NULL); actTexte8 = new QAction(tr("Search for the Facebook fan page"),NULL); actTexte9 = new QAction(tr("Search for the artist on")+" Discogs",NULL); actTexte10 = new QAction(tr("Search for remixes on")+" Soundcloud",NULL); actTexte11 = new QAction(tr("Search for lyrics on")+" SongLyrics",NULL); actTexte12 = new QAction(tr("Search for tablature on")+" UltimateGuitar",NULL); actTexte13 = new QAction(tr("Search on")+" Grooveshark",NULL); actTexte14 = new QAction(tr("Search on")+" Amazon",NULL); actTexte15 = new QAction(tr("Register on")+" Echonest "+tr("to get an API key"),NULL); actTexte16 = new QAction(tr("Enter your API key"),NULL); QIcon iconYoutube(":/youtube.png"); actTexte4->setIcon(iconYoutube); QIcon iconList(":/list.png"); actTexte6->setIcon(iconList); QIcon iconWiki(":/wiki.png"); actTexte7->setIcon(iconWiki); QIcon iconFan(":/fan.png"); actTexte8->setIcon(iconFan); QIcon iconDiscogs(":/discogs.png"); actTexte9->setIcon(iconDiscogs); QIcon iconSoundcloud(":/soundcloud.png"); actTexte10->setIcon(iconSoundcloud); QIcon iconLyrics(":/lyrics.png"); actTexte11->setIcon(iconLyrics); QIcon iconGuitar(":/guitar.png"); actTexte12->setIcon(iconGuitar); QIcon iconGroove(":/groove.png"); actTexte13->setIcon(iconGroove); QIcon iconAmazon(":/amazon.png"); actTexte14->setIcon(iconAmazon); QIcon iconEchonest(":/echonest.png"); actTexte15->setIcon(iconEchonest); QIcon iconKey(":/key.png"); actTexte16->setIcon(iconKey); stmenu->addAction(actTexte1); stmenu->addAction(actTexte2); stmenu->addAction(actTexte6); stmenu->addSeparator (); stmenu->addAction(actTexte4); stmenu->addAction(actTexte13); stmenu->addAction(actTexte14); stmenu->addAction(actTexte10); stmenu->addAction(actTexte11); stmenu->addAction(actTexte12); stmenu->addAction(actTexte9); stmenu->addAction(actTexte7); stmenu->addAction(actTexte8); stmenu->addSeparator (); stmenu->addAction(actTexte15); stmenu->addAction(actTexte16); stmenu->addSeparator (); stmenu->addAction(actTexte5); stmenu->addAction(actTexte3); actTexte4->setDisabled(TRUE); actTexte7->setDisabled(TRUE); actTexte8->setDisabled(TRUE); actTexte9->setDisabled(TRUE); actTexte10->setDisabled(TRUE); actTexte11->setDisabled(TRUE); actTexte12->setDisabled(TRUE); actTexte13->setDisabled(TRUE); actTexte14->setDisabled(TRUE); sticon->setContextMenu(stmenu); // Mouse over sticon->setToolTip(tr("unknown")); sticon->show(); connect(actTexte1, SIGNAL(triggered()), this, SLOT(changeTexte1())); connect(actTexte2, SIGNAL(triggered()), this, SLOT(changeTexte2())); connect(actTexte3, SIGNAL(triggered()), this, SLOT(changeTexte3())); connect(actTexte4, SIGNAL(triggered()), this, SLOT(changeTexte4())); connect(actTexte5, SIGNAL(triggered()), this, SLOT(changeTexte5())); connect(actTexte6, SIGNAL(triggered()), this, SLOT(changeTexte6())); connect(actTexte7, SIGNAL(triggered()), this, SLOT(changeTexte7())); connect(actTexte8, SIGNAL(triggered()), this, SLOT(changeTexte8())); connect(actTexte9, SIGNAL(triggered()), this, SLOT(changeTexte9())); connect(actTexte10, SIGNAL(triggered()), this, SLOT(changeTexte10())); connect(actTexte11, SIGNAL(triggered()), this, SLOT(changeTexte11())); connect(actTexte12, SIGNAL(triggered()), this, SLOT(changeTexte12())); connect(actTexte13, SIGNAL(triggered()), this, SLOT(changeTexte13())); connect(actTexte14, SIGNAL(triggered()), this, SLOT(changeTexte14())); connect(actTexte15, SIGNAL(triggered()), this, SLOT(changeTexte15())); connect(actTexte16, SIGNAL(triggered()), this, SLOT(changeTexte16())); } Window::~Window() { } void Window::changeTexte1() { /* QUrlQuery query; query.addQueryItem("access_token","221288444739676|9hMt73RbC9Ac6h0DQRW42-PsYYc"); query.addQueryItem("message","TEST"); query.addQueryItem("description","Testing"); query.addQueryItem("name","Test"); query.addQueryItem("caption","Testing"); QNetworkRequest request(QUrl("https://graph.facebook.com/me/feed")); request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded"); QNetworkReply *reply = mNetManager->post(request, query.query().toLatin1()); connect(reply,SIGNAL(finished()), this, SLOT(queryFinished())); */ } void Window::changeTexte2() { } void Window::changeTexte3() { QApplication::quit(); exit(1); } void Window::changeTexte4() { QString qmusic = getMusic(); QString searchSite = ""; searchSite += "http://www.youtube.com/results?search_query="; searchSite += qmusic; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte5() { sticon->showMessage("My Music Recognition v1.1",tr("Made in June 2014 by")+" Amir Hammoutene (amir.hammoutene@gmail.com)"); } void Window::changeTexte6() { QFile file("musiclist.txt"); if(file.exists()) { QDesktopServices::openUrl(QUrl(file.fileName())); } } void Window::changeTexte7() { QString qartist = getArtist(); QString searchSite = ""; searchSite += "http://www.google.com/search?sourceid=navclient&gfns=1&q="; searchSite += qartist; searchSite += " wikipedia"; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte8() { QString qartist = getArtist(); QString searchSite = ""; searchSite += "http://www.google.com/search?sourceid=navclient&gfns=1&q="; searchSite += qartist; searchSite += " facebook"; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte9() { QString qartist = getArtist(); QString searchSite = ""; searchSite += "http://www.google.com/search?sourceid=navclient&gfns=1&q="; searchSite += qartist; searchSite += " discogs"; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte10() { QString qmusic = getMusic(); QString searchSite = ""; searchSite += "https://soundcloud.com/search?q="; searchSite += qmusic; searchSite += " remix"; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte11() { QString qmusic = getMusic(); QString searchSite = ""; searchSite += "http://www.songlyrics.com/index.php?section=search&searchW="; searchSite += qmusic; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte12() { QString qmusic = getMusic(); QString searchSite = ""; searchSite += "http://www.ultimate-guitar.com/search.php?search_type=title&value="; searchSite += qmusic; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte13() { QString qmusic = getMusic(); QString searchSite = ""; searchSite += "http://grooveshark.com/#!/search?q="; searchSite += qmusic; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte14() { QString qmusic = getMusic(); QString searchSite = ""; searchSite += "http://www.amazon.fr/s/ref=nb_sb_noss?field-keywords="; searchSite += qmusic; QDesktopServices::openUrl(QUrl(searchSite)); } void Window::changeTexte15() { QDesktopServices::openUrl(QUrl("https://developer.echonest.com/account/register")); } void Window::changeTexte16() { bool dialogResult; QString key; QFile keyFile("apikey.txt"); if(!keyFile.exists()){ keyFile.open(QIODevice::WriteOnly); QTextStream keyStream1(&keyFile); keyStream1 << "XXXXXXXXXXXXXXXXX"; keyFile.close(); } // Open apikey.txt and copy content in key (string) keyFile.open(QIODevice::ReadOnly); QTextStream keyStream2(&keyFile); key = keyStream2.readLine(); keyFile.close(); QString result = QInputDialog::getText(this, "Echonest API Key", "Enter your API key:", QLineEdit::Normal, "key", &dialogResult); if(dialogResult) { keyFile.open(QIODevice::WriteOnly); QTextStream keyStream3(&keyFile); keyStream3 << result; keyFile.close(); } } QString Window::getMusic() { QString qmusic(theArtist+" - "+theTitle); qmusic.replace("&","%26"); return qmusic; } QString Window::getArtist() { QString qartist(theArtist); qartist.replace("&","%26"); return qartist; } void Window::changeTooltip(QString message) { sticon->showMessage("",message); } void Window::changeTitleItem(QString message) { if(message!="unknown") { actTexte1->setText(message); sticon->setToolTip(message); } else { actTexte1->setText(tr("unknown")); sticon->setToolTip(tr("unknown")); } } void Window::setEchonestBold(bool status) { QFont f; f.setBold(status); actTexte15->setFont(f); actTexte16->setFont(f); } void Window::changeStatusItem(int status) { if(0 == status) { actTexte2->setText(tr("Ready")); QIcon iconCapturing(":/ready.png"); actTexte2->setIcon(iconCapturing); } else if(1 == status) { actTexte2->setText(tr("Capturing")+"..."); QIcon iconCapturing(":/capturing.png"); actTexte2->setIcon(iconCapturing); } else { actTexte2->setText(tr("Analyzing")+"..."); QIcon iconCapturing(":/analyzing.png"); actTexte2->setIcon(iconCapturing); } } void Window::changeSearchItem(int status) { if(status == 0) { actTexte4->setDisabled(TRUE); actTexte7->setDisabled(TRUE); actTexte8->setDisabled(TRUE); actTexte9->setDisabled(TRUE); actTexte10->setDisabled(TRUE); actTexte11->setDisabled(TRUE); actTexte12->setDisabled(TRUE); actTexte13->setDisabled(TRUE); actTexte14->setDisabled(TRUE); } else { actTexte4->setEnabled(TRUE); actTexte7->setEnabled(TRUE); actTexte8->setEnabled(TRUE); actTexte9->setEnabled(TRUE); actTexte10->setEnabled(TRUE); actTexte11->setEnabled(TRUE); actTexte12->setEnabled(TRUE); actTexte13->setEnabled(TRUE); actTexte14->setEnabled(TRUE); } }