Mento::Mento(QObject *parent) : QObject(parent) { if(CocoaInitialize::DefaultApp()->checkRunning()) { initsuccess=false; QMessageBox::warning(0,"Warning","Cocoa Mento 正在运行当中!",QMessageBox::Ok,QMessageBox::Ok); return; } else initsuccess=true; log=new QTextBrowser(); log->setWindowModality(Qt::WindowModal); log->setWindowFlags(Qt::WindowStaysOnTopHint|Qt::CustomizeWindowHint|Qt::WindowCloseButtonHint); log->setGeometry(200,200,400,500); log->setWindowTitle(tr("认证日志")); gt=new Guite(); main=new Menu("Cocoa Mento"); sub=new Menu("Settings"); status=new MenuItem("[状态:正常] 未连接"); connectHandle=new MenuItem("开始认证"); settings=new MenuItem("偏好设置"); about=new MenuItem("关于CocoaMento"); aboutQt=new MenuItem("关于Qt"); help=new MenuItem("使用说明"); exit=new MenuItem("退出"); resetsettings=new MenuItem("重置偏好设置"); logs=new MenuItem("显示日志"); cv=new ConfigView(); cvcontainer=new MenuViewItem("Settings",cv); cv->setPalette(Qt::white); cv->show(); settings->setSubMenu(sub); main->addMenuItem(status); main->addMenuSeparator(); main->addMenuItem(connectHandle); main->addMenuItem(settings); main->addMenuItem(resetsettings); main->addMenuItem(logs); main->addMenuSeparator(); main->addMenuItem(help); main->addMenuItem(about); main->addMenuItem(aboutQt); main->addMenuSeparator(); main->addMenuItem(exit); sub->addMenuItem(cvcontainer); icon=new StatusIcon(); icon->setMenu(main); icon->showIcon(); mainthread=new MentoThread(cv->Config()); connect((QObject*)exit->port,SIGNAL(trigger()),this,SLOT(quitApp())); connect((QObject*)resetsettings->port,SIGNAL(trigger()),cv,SLOT(resetConfig())); connect((QObject*)connectHandle->port,SIGNAL(trigger()),this,SLOT(toggleConnect())); connect((QObject*)logs->port,SIGNAL(trigger()),log,SLOT(show())); connect((QObject*)about->port,SIGNAL(trigger()),gt,SLOT(showAbout())); connect((QObject*)aboutQt->port,SIGNAL(trigger()),this,SLOT(showAboutQt())); connect((QObject*)help->port,SIGNAL(trigger()),gt,SLOT(showHelp())); connect(mainthread,SIGNAL(output(QString)),this,SLOT(outputHandle(QString))); connect(mainthread,SIGNAL(exitSuccess()),this,SLOT(exitHandle())); connect(mainthread,SIGNAL(statusChanged(QString,int)),this,SLOT(statusHandle(QString,int))); connect(mainthread,SIGNAL(error(QString)),this,SLOT(errorHandle(QString))); connect(mainthread,SIGNAL(authError()),this,SLOT(authMento())); connect(mainthread,SIGNAL(noConfig()),this,SLOT(noconfigHandle())); connect(mainthread,SIGNAL(notify(QString)),this,SLOT(notifyHandle(QString))); if(cv->autoConnect()) toggleConnect(); }
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."); }