📄 listviews.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 + -