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

📄 messagemodel.cpp

📁 qt-x11-opensource-src-4.1.4.tar.gz源码
💻 CPP
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the Qt Linguist of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "messagemodel.h"#include "contextmodel.h"#include "trwindow.h"MessageItem::MessageItem(const MetaTranslatorMessage &message,                         const QString &text, const QString &comment, ContextItem *ctxtI)                         : m(message), tx(text), com(comment), cntxtItem(ctxtI){    if (m.translation().isEmpty()) {        QString t = "";        m.setTranslation(t);    }    fini = true;    d = false;    if (m.type() == MetaTranslatorMessage::Unfinished)         setFinished(false);}void MessageItem::setFinished(bool finished){    if (!fini && finished) {        m.setType(MetaTranslatorMessage::Finished);        cntxtItem->decrementUnfinishedCount();    } else if (fini && !finished) {        m.setType(MetaTranslatorMessage::Unfinished);        cntxtItem->incrementUnfinishedCount();    }    fini = finished;}void MessageItem::setDanger(bool danger){    if (!d && danger) {        cntxtItem->incrementDangerCount();    } else if (d && !danger) {        cntxtItem->decrementDangerCount();    }    d = danger;}MessageModel::MessageModel(QObject *parent): QAbstractTableModel(parent), cntxtItem(0){}void MessageModel::setContextItem(ContextItem *ctxtI){    if (ctxtI == cntxtItem)        return;    cntxtItem = ctxtI;    reset();}void MessageModel::updateItem(QModelIndex indx){    QModelIndex strtindx = createIndex(indx.row(), 0);    QModelIndex endindx = createIndex(indx.row(), 2);    emit dataChanged(strtindx, endindx);}int MessageModel::rowCount(const QModelIndex &) const{    if (cntxtItem != 0)        return cntxtItem->messageItemsInList();    return 0;}int MessageModel::columnCount(const QModelIndex &) const{    return 3;}QVariant MessageModel::headerData(int section, Qt::Orientation orientation, int role) const{    if ((role == Qt::DisplayRole) && (orientation == Qt::Horizontal)) {        switch(section)        {        case 0:            return tr("Done");        case 1:            return tr("Source text");        case 2:            return tr("Translation");        }        return "Error";    }    else {        return QVariant();    }}QVariant MessageModel::data(const QModelIndex &index, int role) const{    int row = index.row();    int column = index.column();    if (cntxtItem == 0)        return QVariant();    if (row >= cntxtItem->messageItemsInList() || !index.isValid())        return QVariant();    MessageItem *msgItem = cntxtItem->messageItem(row);    if (role == Qt::DisplayRole) {        switch(column) {        case 0: // done            return QVariant();        case 1: // source text			return msgItem->sourceText().simplified();        case 2: // translation            return msgItem->translation().simplified();        }    }    else if ((role == Qt::DecorationRole) && (column == 0)) {        if (msgItem->message().type() == MetaTranslatorMessage::Unfinished && msgItem->translation().isEmpty())            return qVariantFromValue(*TrWindow::pxEmpty);        else if (msgItem->message().type() == MetaTranslatorMessage::Unfinished && msgItem->danger())            return qVariantFromValue(*TrWindow::pxDanger);        else if (msgItem->message().type() == MetaTranslatorMessage::Finished && msgItem->danger())            return qVariantFromValue(*TrWindow::pxWarning);        else if (msgItem->message().type() == MetaTranslatorMessage::Finished)            return qVariantFromValue(*TrWindow::pxOn);        else if (msgItem->message().type() == MetaTranslatorMessage::Unfinished)            return qVariantFromValue(*TrWindow::pxOff);        else if (msgItem->message().type() == MetaTranslatorMessage::Obsolete)            return qVariantFromValue(*TrWindow::pxObsolete);    }    return QVariant();}void MessageModel::sort(int column, Qt::SortOrder order){    if (cntxtItem != 0) {        cntxtItem->sortMessages(column, order);        emit dataChanged(index(0,0),            index(cntxtItem->messageItemsInList()-1, 2));    }}

⌨️ 快捷键说明

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