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

📄 messagetreeitem.cpp

📁 用qt4 编写的局域网聊天工具
💻 CPP
字号:
/*************************************************************************** *   Copyright (C) 2007 by Anistratov Oleg                                 * *   ower86@gmail.com                                                      * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License version 2        * *   as published by the Free Software Foundation;                         * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * ***************************************************************************/#include "messagetreeitem.h"#include "singlemsgshistorymodel.h"#include "singlemessage.h"#include "qchaticon.h"MessageTreeItem::MessageTreeItem(const QList<QVariant> & data, TreeItem* parent, QString name):  TreeItem(data, parent, name),  m_message(NULL){}MessageTreeItem::~MessageTreeItem(){  qDebug("[~MessageTreeItem]");}void MessageTreeItem::sortChildren(int column, Qt::SortOrder order){  setSortingColumn(column);  setSortingOrder (order);  foreach(TreeItem* item, *children())    item->setSortingColumn(column);  qStableSort(children()->begin(), children()->end(), MessageTreeItem::LessThan);  foreach(TreeItem* item, *children())    item->sortChildren(column, order);}bool MessageTreeItem::LessThan(TreeItem* item1, TreeItem* item2){  bool res;  MessageTreeItem* i1 = static_cast<MessageTreeItem*>(item1);  MessageTreeItem* i2 = static_cast<MessageTreeItem*>(item2);  if(i1 && i2 && i1->message() && i2->message())  {    switch(sortingColumn())    {       case SingleMsgsHistoryModel::DateCol :         res = i1->message()->receiveTime() < i2->message()->receiveTime();         break;       case SingleMsgsHistoryModel::IpCol :         res = i1->message()->srcIp() < i2->message()->srcIp();         break;       case SingleMsgsHistoryModel::NicknameCol :         res = i1->message()->userName() < i2->message()->userName();         break;       case SingleMsgsHistoryModel::MessageCol :         res = i1->message()->msg() < i2->message()->msg();         break;       default :         res = (i1->data(sortingColumn(), Qt::DisplayRole).toString() <                i2->data(sortingColumn(), Qt::DisplayRole).toString());    }  }  else    res = (i1->data(sortingColumn(), Qt::DisplayRole).toString() <           i2->data(sortingColumn(), Qt::DisplayRole).toString());  return sortingOrder() == Qt::AscendingOrder ? res : !res;}QVariant MessageTreeItem::data(int column, int role, bool with_hidden) const{  int visible_cols = visibleCols(with_hidden, Qt::DisplayRole);  int real_column = realColumn(column);  bool ok = visible_cols > column && column >= 0;  if(real_column == 0 && role == Qt::DecorationRole)  {    if(ok && m_message && m_message->messageWgt())      return QIcon(QChatIcon::icon( (m_message->isNew() ? "message-unread" : "message-opened")) );    else      return QVariant();  }  else    return TreeItem::data(column, role, with_hidden);  return QVariant();}

⌨️ 快捷键说明

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