📄 dgetmainwin.cpp
字号:
editStartAction->addTo( Toolbar ); editStopAction->addTo( Toolbar ); editRestartAction->addTo( Toolbar ); editResumeAction->addTo( Toolbar ); Toolbar->addSeparator(); editRemoveAction->addTo( Toolbar ); fileExitAction->addTo( Toolbar ); // menubar MenuBar = new QMenuBar( this, "MenuBar" ); fileMenu = new QPopupMenu( this ); fileNewUrlAction->addTo( fileMenu ); filePrefAction->addTo( fileMenu ); fileMenu->insertSeparator(); fileExitAction->addTo( fileMenu ); MenuBar->insertItem( QString(""), fileMenu, 1 ); editMenu = new QPopupMenu( this ); editStartAction->addTo( editMenu ); editStopAction->addTo( editMenu ); editMenu->insertSeparator(); editRestartAction->addTo( editMenu ); editResumeAction->addTo( editMenu ); editMenu->insertSeparator(); editRemoveAction->addTo( editMenu ); MenuBar->insertItem( QString(""), editMenu, 2 ); helpMenu = new QPopupMenu( this ); helpContentsAction->addTo( helpMenu ); helpIndexAction->addTo( helpMenu ); helpMenu->insertSeparator(); helpAboutAction->addTo( helpMenu ); MenuBar->insertItem( QString(""), helpMenu, 3 ); languageChange(); resize( QSize(705, 448).expandedTo(minimumSizeHint()) ); clearWState( WState_Polished ); lvs = new ListViews(this, "MyView"); lvs->resize( 640, 480 ); lvs->setCaption( "Task Manager" ); lvs->contextmenu->insertItem( tr("NewTask"), this, SLOT( fileNewUrl()) ); lvs->contextmenu->insertItem( tr("Start"), this, SLOT( dlStart()) ); lvs->contextmenu->insertItem( tr("Stop"), this, SLOT( dlStop() ) ); lvs->contextmenu->insertItem( tr("Restart"), this, SLOT( dlRestart() ) ); lvs->contextmenu->insertItem( tr("Resume"), this, SLOT( dlResume() ) ); lvs->contextmenu->insertItem( tr("Remove"), this, SLOT( dlRemove() ) ); setCentralWidget(lvs); msg = new QLabel( statusBar(), tr("message") ); msg->setAlignment( AlignCenter ); QFont boldfont; boldfont.setWeight(QFont::Bold); msg->setFont( boldfont ); statusBar()->addWidget( msg, 4);// prog = new QProgressBar( statusBar(), "progress" );// prog->setTotalSteps( 100 );// progress = 80;// prog->setProgress( progress );// statusBar()->addWidget( prog , 1 ); statusBar()->message( tr("Welcome to dget"), 1000 ); ///////Create TaskManager//// TaskMgr = new TTaskManager();/////////////////////////////// gbltimer = new QTimer( this );// connect( gbltimer, SIGNAL(timeout()), this, SLOT( TimeTick() ) );// gbltimer->start( 2500, FALSE ); // signals and slots connections connect( fileNewUrlAction, SIGNAL( activated() ), this, SLOT( fileNewUrl() ) ); connect( filePrefAction, SIGNAL( activated() ), this, SLOT( filePref() ) ); connect( fileExitAction, SIGNAL( activated() ), qApp, SLOT( quit() ) ); connect( editStartAction, SIGNAL( activated() ), this, SLOT( dlStart() ) ); connect( editStopAction, SIGNAL( activated() ), this, SLOT( dlStop() ) ); connect( editRestartAction, SIGNAL( activated() ), this, SLOT( dlRestart() ) ); connect( editResumeAction, SIGNAL( activated() ), this, SLOT( dlResume() ) ); connect( editRemoveAction, SIGNAL( activated() ), this, SLOT( dlRemove() ) ); connect( helpIndexAction, SIGNAL( activated() ), this, SLOT( helpIndex() ) ); connect( helpContentsAction, SIGNAL( activated() ), this, SLOT( helpContents() ) ); connect( helpAboutAction, SIGNAL( activated() ), this, SLOT( helpAbout() ) ); }/* * Destroys the object and frees any allocated resources */FrmMainWin::~FrmMainWin(){ // no need to delete child widgets, Qt does it all for us}/* * Sets the strings of the subwidgets using the current * language. */void FrmMainWin::languageChange(){ setCaption( tr( "dget" ) ); fileNewUrlAction->setText( tr( "NewTask" ) ); fileNewUrlAction->setMenuText( tr( "NewTask" ) ); filePrefAction->setText( tr( "Preference" ) ); filePrefAction->setMenuText( tr( "Preference" ) ); fileExitAction->setText( tr( "Exit" ) ); fileExitAction->setMenuText( tr( "Exit" ) ); editStartAction->setText( tr( "Start" ) ); editStartAction->setMenuText( tr( "Start" ) ); editStopAction->setText( tr( "Stop" ) ); editStopAction->setMenuText( tr( "Stop" ) ); editRestartAction->setText( tr( "Restart" ) ); editRestartAction->setMenuText( tr( "Restart" ) ); editResumeAction->setText( tr( "Resume" ) ); editResumeAction->setMenuText( tr( "Resume" ) ); editRemoveAction->setText( tr( "Remove" ) ); editRemoveAction->setMenuText( tr( "Remove" ) ); helpContentsAction->setText( tr( "Contents" ) ); helpContentsAction->setMenuText( tr( "Contents..." ) ); helpIndexAction->setText( tr( "Index" ) ); helpIndexAction->setMenuText( tr( "Index" ) ); helpAboutAction->setText( tr( "About" ) ); helpAboutAction->setMenuText( tr( "About" ) ); Toolbar->setLabel( tr( "Toolbar" ) ); if (MenuBar->findItem(1)) MenuBar->findItem(1)->setText( tr( "File" ) ); if (MenuBar->findItem(2)) MenuBar->findItem(2)->setText( tr( "Task" ) ); if (MenuBar->findItem(3)) MenuBar->findItem(3)->setText( tr( "Help" ) ); }void FrmMainWin::fileNewUrl(){ char buf[128]; QString str; frmNewUrl * newurl = new frmNewUrl; str = "http://www.kernel.org/pub/linux/kernel/v1.0/linux-1.0.tar.gz"; newurl->edtUrl->setText(str); newurl->edtDir->setText(getcwd(buf, 128)); if(newurl->exec() == QDialog::Accepted) { update(); str = newurl->edtUrl->text(); if(str.isEmpty()) return; QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) ); int ret = NewTask( str, newurl->edtDir->text()); if ( ret == -1 ) ShowMsgx("Target File Exist"); } delete newurl; }void FrmMainWin::filePref(){ TabDialog tabPref( 0, "tabdialog", QString("dget Preference")); tabPref.resize( 450, 350 ); tabPref.setCaption( "Preference Dialog" ); if(tabPref.exec() == QDialog::Accepted) { //msg->setText("AAA"); } else { //msg->setText("BBB" ); }}void FrmMainWin::fileExit(){ // a litter problem TaskMgr->TerminateAllTask(); TaskMgr->ClearAllTask(); qApp->quit();}void FrmMainWin::dlStart(){ QWidget * w = lvs->GetCurrentTabPage(); QString str = lvs->tmTabWidget->tabLabel(w); TTask * tsk = TaskMgr->GetTaskByName(str.latin1()); if(tsk != NULL) { if(tsk->GetTaskStatus() == RUNNING) { ShowMsgx("This Task is RUNNING"); return; } if(tsk->GetTaskStatus() == STOP) { TaskMgr->ScheduleTask(tsk); } }}void FrmMainWin::dlStop(){ QWidget * w = lvs->GetCurrentTabPage(); QString str = lvs->tmTabWidget->tabLabel(w); TTask * tsk = TaskMgr->GetTaskByName(str.latin1()); if(tsk != NULL) { if(tsk->GetTaskStatus() == RUNNING) { TaskMgr->StopTask(tsk); tsk->SetTaskStatus(STOP); } else return; }}void FrmMainWin::dlRestart(){ QWidget * w = lvs->GetCurrentTabPage(); QString str = lvs->tmTabWidget->tabLabel(w); TTask * tsk = TaskMgr->GetTaskByName(str.latin1()); if(tsk != NULL) { if(tsk->GetTaskStatus() == RUNNING) { TaskMgr->StopTask(tsk); tsk->SetTaskStatus(STOP); TaskMgr->ScheduleTask(tsk); } if(tsk->GetTaskStatus() == STOP) { TaskMgr->ScheduleTask(tsk); } }}void FrmMainWin::dlResume(){ QWidget * w = lvs->GetCurrentTabPage(); QString str = lvs->tmTabWidget->tabLabel(w); TTask * tsk = TaskMgr->GetTaskByName(str.latin1()); if(tsk != NULL) { TaskMgr->StopTask(tsk); tsk->SetTaskStatus(STOP); TaskMgr->ScheduleTask(tsk); }}void FrmMainWin :: TimeTick(void){ ShowMsgx("This Task has not Finshed"); if( TaskMgr->IsEmptyTskQue() == TRUE) return; for( TTask * tsk = TaskMgr->FirstTsk(); tsk; TaskMgr->NextTsk()) { if(tsk->GetTaskStatus() == FINISHED ) TaskMgr->DeleteTask(tsk); }}void FrmMainWin::dlRemove(){ QString s1 = tr("OldTaskBox"); QString s2 = tr("NewTaskBox"); Folder * item1 = lvs->GetFolderByName(s1); Folder * item2 = lvs->GetFolderByName(s2); QWidget * w = lvs->GetCurrentTabPage(); QString str = lvs->tmTabWidget->tabLabel(w); TTask * tsk = TaskMgr->GetTaskByName(str.latin1()); QListViewItem * j = lvs->folders->findItem ( s2, 0); if ( !j ) return; if ( !j->isSelected() ) return; QListViewItem *i = lvs->messages->currentItem(); Message * CurMsg = lvs->GetCurrentMsg(); if ( !i ) return; if ( !i->isSelected() ) return; if(tsk != NULL) { if(TaskMgr->QueryTaskStatus(tsk) == FINISHED) { lvs->messages->takeItem(i); lvs->tmTabWidget->removePage(w); tsk->SetTaskStatus(DEAD); TaskMgr->DeleteTask(tsk); item1->addMessage(CurMsg); item2->delMessage(CurMsg); } } else { ShowMsgx("This Task has not Finshed"); }}void FrmMainWin::helpIndex(){ msg->setText("helpIndex(): Not implemented yet" );}void FrmMainWin::helpContents(){ msg->setText("helpContents(): Not implemented yet" );}void FrmMainWin::helpAbout(){ QMessageBox::about( this, "About <Application>", "dget is a multi-thread download tool based on linux platform," "The Max Thread number limits to 10.\n" "dget 0.2v with QT by balancesli. " "<balancesli@gmail.com>\n" "http://www.a2z.org.cn/\n" "http://sourceforge.net/projects/dget\n" );}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -