⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dgetmainwin.cpp

📁 dget是一个基于Linux平台的多线程下载工具, 采用C++开发。主要支持FTP, HTTP, MMS, RTSP协议下载, 目前为止主要实现了FTP, HTTP, MMS,RTSP协议的多线程下载
💻 CPP
📖 第 1 页 / 共 2 页
字号:
    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 + -