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

📄 listviews.h

📁 dget是一个基于Linux平台的多线程下载工具, 采用C++开发。主要支持FTP, HTTP, MMS, RTSP协议下载, 目前为止主要实现了FTP, HTTP, MMS,RTSP协议的多线程下载
💻 H
字号:
#ifndef LISTVIEWS_H#define LISTVIEWS_H#include <qsplitter.h>#include <qstring.h>#include <qobject.h>#include <qdatetime.h>#include <qptrlist.h>#include <qlistview.h>#include <qtabwidget.h>#include <qlistbox.h>#include <stdarg.h>class QListView;class QLabel;class QPainter;class QColorGroup;class QObjectList;class QPopupMenu;class Message;class Folder;// ----------------------------------------------------------------class ThreadMsg{private:    QString ThreadId;    QString Status;    QString Received;   	QString AvgSpeed;	QString Percent;public:	enum State { Read = 0, Unread};	State mstate;	public:	ThreadMsg( const QString & _ThreadId, const QString & _Status,				const QString & _Received, const QString & _AvgSpeed,				const QString & _Percent) :	ThreadId( _ThreadId ),				Status( _Status ), 	Received( _Received ),AvgSpeed(_AvgSpeed), 				Percent(_Percent), mstate( Unread )    {		}	void setState( const State &s ) { mstate = s; }	State state() { return mstate; }	    QString GetThreadId() const	{ 		return ThreadId; 	}    	void SetThreadId(QString & _ThreadId) 	{ 		ThreadId = _ThreadId; 	}		QString GetStatus() const	{ 		return Status; 	}		void SetStatus(QString & _Status) 	{ 		Status = _Status; 	}	QString GetReceived() const	{ 		return Received; 	}		void SetReceived(QString & _Received) 	{ 		Received = _Received; 	}	QString GetAvgSpeed() const	{ 		return AvgSpeed; 	}		void SetAvgSpeed(QString & _AvgSpeed) 	{ 		AvgSpeed = _AvgSpeed; 	}		QString GetPercent() const	{ 		return Percent; 	}		void SetPercent(QString & _Percent) 	{ 		Percent = _Percent; 	}	};class ThreadMsgListItem : public QListViewItem{protected:    ThreadMsg *myThreadMsg;public:    ThreadMsgListItem( QListView *parent, ThreadMsg *m );    virtual void paintCell( QPainter *p, const QColorGroup &cg, int column,													int width, int alignment );    ThreadMsg * threadmsg() { return myThreadMsg; }};// -----------------------------------------------------------------class Message{public:    enum State { Read = 0, Unread};protected:    QString mFileName; 	QString mFileSize;	QString mStatus;	QString mUrl;    QDateTime mdatetime;	QString mReceived;	QString mTotalAvgSpeed;	QString mTimeLeft;	State mstate;    		QPtrList<ThreadMsg> lstThreadMsgs;public:	QListView * ThreadMsgs;	public:	    Message( const QString & _FileName, const QString & _FileSize,			const QString & _Url, const QString & _Received, 			const QString & _TimeLeft, const QDateTime & _datetime) : 			mFileName( _FileName ), mFileSize( _FileSize ), mUrl( _Url ), 			mdatetime( _datetime ), mTimeLeft( _TimeLeft ), mstate( Unread ),			mReceived( _Received ), mTotalAvgSpeed( "" )    {		ThreadMsgs = NULL;		mStatus = ""; 	}    Message( const Message &m )  : mFileName( m.mFileName ),			mFileSize( m.mFileSize ), mStatus( m.mStatus ), mdatetime( m.mdatetime ),			mUrl( m.mUrl ), mTimeLeft( m.mTimeLeft ), mstate( Unread )    {		}    Message &operator=( const Message & mh )	{		mFileName = mh.mFileName;		mFileSize = mh.mFileSize;		mStatus =  mh.mStatus; 		mdatetime = mh.mdatetime;		mUrl = mh.mUrl;		mTimeLeft = mh.mTimeLeft;		mstate = Unread;    	return *this;	}	QString FileName() { return mFileName; }	QString FileSize() { return mFileSize; }	QDateTime datetime() { return mdatetime; }    QString Status() { return mStatus; }	QString Url() {	return mUrl; }	    QString GetTimeLeft() { return mTimeLeft; }	void SetTimeLeft(QString & _TimeLeft)  { mTimeLeft = _TimeLeft; }		QString GetReceived() { return mReceived; }	void SetReceived(QString & _Received) {  mReceived = _Received; }		void setState( const State &s ) { mstate = s; }    State state() {	return mstate; }		void SetFileName(QString & _FileName) 	{ 		mFileName = _FileName;			}		void SetFileSize(QString & _FileSize) 	{ 		mFileSize = _FileSize;	}		void Setdatetime(QDateTime & _datetime) 	{ 		mdatetime = _datetime;	}    	void SetStatus(QString & _Status) 	{ 		mStatus = _Status; 	}	void SetUrl(QString & _Url)	{			mUrl = _Url; 	}	void SetAvgSpeed( QString & _TotalAvgSpeed )	{		mTotalAvgSpeed = _TotalAvgSpeed;	}			void addThreadMsg( ThreadMsg *m ) {	lstThreadMsgs.append( m ); }	ThreadMsg *firstThreadMsg() { return lstThreadMsgs.first(); }    ThreadMsg *nextThreadMsg() { return lstThreadMsgs.next(); }};class MessageListItem : public QListViewItem{protected:    Message *myMessage;	public:    MessageListItem( QListView *parent, Message *m );    virtual void paintCell( QPainter *p, const QColorGroup &cg, int column,													int width, int alignment );    Message *message() { return myMessage; }};// -----------------------------------------------------------------class Folder : public QObject{    Q_OBJECTprotected:    QString fName;    QPtrList<Message> lstMessages;	public:    Folder( Folder *parent, const QString &name );    ~Folder() { }    void addMessage( Message *m ) { lstMessages.append( m ); }	void delMessage( Message *m ) { lstMessages.remove( m ); }    QString folderName() { return fName; }    Message *firstMessage() { return lstMessages.first(); }    Message *nextMessage() { return lstMessages.next(); }};// -----------------------------------------------------------------class FolderListItem : public QListViewItem{protected:    Folder *myFolder;	public:    FolderListItem( QListView *parent, Folder *f );    FolderListItem( FolderListItem *parent, Folder *f );    void insertSubFolders( const QObjectList *lst );    Folder *folder() { return myFolder; }};// -----------------------------------------------------------------class ListViews : public QSplitter{    Q_OBJECTpublic:    ListViews( QWidget *parent = 0, const char *name = 0 );	    ~ListViews() {}		Folder * GetCurrentFolder();		Message * GetCurrentMsg();	QListView * GetCurrentThreadMsgs();	QWidget * GetCurrentTabPage();	Folder * GetFolderByName(QString& foldername);			void RefreshFolder(Folder * item);//protected:public:    void initFolders();    void initFolder( Folder * folder, unsigned int &count );	void initMessage( Message * msg, QListView * ThreadMsgs);	void setupFolders();	void InsertTabWidget(Message * msg, const QString & label);	void InsertDebugTabWidget(const QString & label);	    QListView * messages;	QListView * folders;		QTabWidget * tmTabWidget;		QPopupMenu* contextmenu;    QPtrList<Folder> lstFolders;	public : 	///debug	QListBox * dout;	public	slots:    void slotFolderChanged( QListViewItem* );    void slotMessageChanged();	void slotThreadMsgChanged(QListViewItem * );    void slotRMB( QListViewItem*, const QPoint &, int );signals:	void TabChanged( int );	};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -