App::App( int& argc, char** argv ) : unicorn::Application( argc, argv ) , m_mainwindow( 0 ) , m_tagcloud( 0 ) , m_scrobsocket( 0 ) , m_pipe( 0 ) , m_playlist( 0 ) , m_audioOutput( 0 ) , m_playing( false ) , m_req( 0 ) , m_api( unicorn::UserSettings().value(PLAYDAR_URLBASE_KEY, "http://localhost:8888").toString(), unicorn::UserSettings().value(PLAYDAR_AUTHTOKEN_KEY, "").toString() ) { m_wam = new lastfm::NetworkAccessManager( this ); m_playdar = new PlaydarConnection(m_wam, m_api); connect(m_playdar, SIGNAL(authed(QString)), SLOT(onPlaydarAuth(QString))); m_shuffler = new Shuffler(this); m_tracksource = new TrackSource(m_shuffler, this); }
FenPrincipale::FenPrincipale(QWidget *parent) : QMainWindow(parent), ui(new Ui::FenPrincipale), m_fenOptions(NULL), m_trayWarningShown(false), m_auth(new Auth(this)), m_handler(new DownloadHandler(this)), m_infoExtractor(new InfoExtractor(this)), m_vitesseTransfert(new VitesseTransfert(this, DOWNLOAD_SPEED_UPDATE_INTERVAL, DOWNLOAD_SPEED_AVERAGE_TIME)), m_versionCheck(new VersionCheckThread(this, VERSION_HOST, APP_NAME, VERSION, VERSION_NBR)), m_currentDownload(), m_waitTimer(new QTimer(this)), m_updateDownloadTimer(new QTimer(this)), m_waitTime(0), m_isDownloading(false) { ui->setupUi(this); setWindowTitle(APP_NAME " - v" VERSION); //Icône système m_menu = new QMenu(this); m_retablirAction = new QAction("Rétablir", m_menu); m_startAction = new QAction("Télécharger", m_menu); m_stopAction = new QAction("Arrêter", m_menu); m_quitterAction = new QAction("Quitter", m_menu); m_tray = new QSystemTrayIcon(windowIcon(), this); m_menu->addAction(m_retablirAction); m_menu->addAction(m_startAction); m_menu->addAction(m_stopAction); m_menu->addAction(m_quitterAction); m_retablirAction->setVisible(false); m_stopAction->setVisible(false); m_tray->setContextMenu(m_menu); m_tray->show(); qApp->setActiveWindow(this); loadSettings(); //UI connect(ui->adresse, SIGNAL(returnPressed()), this, SLOT(on_btn_ajouter_clicked())); connect(m_waitTimer, SIGNAL(timeout()), this, SLOT(waitTimerTick())); connect(m_infoExtractor, SIGNAL(infoAvailable(QString,QString,QString,QString)), this, SLOT(infoAvailable(QString,QString,QString,QString))); connect(m_infoExtractor, SIGNAL(infoUnavailable(QString,ExtractionError)), this, SLOT(infoUnavailable(QString,ExtractionError))); connect(m_updateDownloadTimer, SIGNAL(timeout()), this, SLOT(updateDownloadTick())); connect(m_versionCheck, SIGNAL(update(QString, QString)), this, SLOT(updateAvailable(QString, QString))); connect(m_tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(trayClicked(QSystemTrayIcon::ActivationReason))); connect(m_retablirAction, SIGNAL(triggered()), this, SLOT(retablir())); connect(m_startAction, SIGNAL(triggered()), this, SLOT(on_btn_go_clicked())); connect(m_stopAction, SIGNAL(triggered()), this, SLOT(on_btn_arreter_clicked())); connect(m_quitterAction, SIGNAL(triggered()), qApp, SLOT(quit())); connect(QApplication::clipboard(), SIGNAL(changed(QClipboard::Mode)), this, SLOT(clipboardChange())); //Raccourcis connect(new QShortcut(QKeySequence("Ctrl+Q"), this), SIGNAL(activated()), qApp, SLOT(quit())); connect(new QShortcut(QKeySequence("Ctrl+D"), this), SIGNAL(activated()), ui->btn_details, SLOT(toggle())); connect(new QShortcut(QKeySequence("Ctrl+Up"), this), SIGNAL(activated()), this, SLOT(on_btn_monter_clicked())); connect(new QShortcut(QKeySequence("Ctrl+Shift+Up"), this), SIGNAL(activated()), this, SLOT(on_btn_monter_clicked())); connect(new QShortcut(QKeySequence("Ctrl+Down"), this), SIGNAL(activated()), this, SLOT(on_btn_descendre_clicked())); connect(new QShortcut(QKeySequence("Ctrl+Shift+Down"), this), SIGNAL(activated()), this, SLOT(on_btn_descendre_clicked())); connect(new QShortcut(QKeySequence("Del"), this), SIGNAL(activated()), this, SLOT(on_btn_supprimer_clicked())); //Téléchargement connect(m_auth, SIGNAL(authed(AuthInfo)), this, SLOT(authSuccess(AuthInfo))); connect(m_auth, SIGNAL(authError(AuthError)), this, SLOT(authFail(AuthError))); connect(m_handler, SIGNAL(error(DownloadError)), this, SLOT(error(DownloadError))); connect(m_handler, SIGNAL(downloadProgress(qint64, qint64)), this, SLOT(updateDownload(qint64, qint64))); connect(m_handler, SIGNAL(finished()), this, SLOT(downloadComplete())); connect(m_handler, SIGNAL(waitTime(int, QString)), this, SLOT(waitTimerStart(int, QString))); console("Authentification..."); m_auth->login(m_login, m_password); m_updateDownloadTimer->setInterval(DOWNLOAD_SPEED_UPDATE_INTERVAL); m_versionCheck->start(); m_waitTimer->setInterval(1000); clipboardChange(); //Initialise la zone d'adresse avec les adresses déjà présentes en mémoire. setDetailsVisible(ui->btn_details->isChecked()); ui->btn_arreter->hide(); ui->liste->setCurrentRow(0); sLog->out(APP_NAME " startup."); }