QVariant DiveComputerModel::data(const QModelIndex &index, int role) const { QList<DiveComputerNode> values = dcWorkingMap.values(); DiveComputerNode node = values.at(index.row()); QVariant ret; if (role == Qt::DisplayRole || role == Qt::EditRole) { switch (index.column()) { case ID: ret = QString("0x").append(QString::number(node.deviceId, 16)); break; case MODEL: ret = node.model; break; case NICKNAME: ret = node.nickName; break; } } if (index.column() == REMOVE) { switch (role) { case Qt::DecorationRole: ret = trashIcon(); break; case Qt::SizeHintRole: ret = trashIcon().size(); break; case Qt::ToolTipRole: ret = tr("Clicking here will remove this dive computer."); break; } } return ret; }
QVariant DivePlannerPointsModel::data(const QModelIndex &index, int role) const { divedatapoint p = divepoints.at(index.row()); if (role == Qt::DisplayRole || role == Qt::EditRole) { switch (index.column()) { case CCSETPOINT: return (double)p.setpoint / 1000; case DEPTH: return (int) rint(get_depth_units(p.depth, NULL, NULL)); case RUNTIME: return p.time / 60; case DURATION: if (index.row()) return (p.time - divepoints.at(index.row() - 1).time) / 60; else return p.time / 60; case GAS: return get_gas_string(displayed_dive.cylinder[p.cylinderid].gasmix); } } else if (role == Qt::DecorationRole) { switch (index.column()) { case REMOVE: if (rowCount() > 1) return p.entered ? trashIcon() : QVariant(); else return trashForbiddenIcon(); } } else if (role == Qt::SizeHintRole) { switch (index.column()) { case REMOVE: if (rowCount() > 1) return p.entered ? trashIcon().size() : QVariant(); else return trashForbiddenIcon().size(); } } else if (role == Qt::FontRole) { if (divepoints.at(index.row()).entered) { return defaultModelFont(); } else { QFont font = defaultModelFont(); font.setBold(true); return font; } } return QVariant(); }
MailClient::MailClient() { QIcon folderIcon(style()->standardPixmap(QStyle::SP_DirClosedIcon)); QIcon trashIcon(style()->standardPixmap(QStyle::SP_FileIcon)); QStringList folderLabels; folderLabels << tr("Folders"); foldersTreeWidget = new QTreeWidget; foldersTreeWidget->setHeaderLabels(folderLabels); addFolder(folderIcon, tr("Inbox")); addFolder(folderIcon, tr("Outbox")); addFolder(folderIcon, tr("Sent")); addFolder(trashIcon, tr("Trash")); QStringList messageLabels; messageLabels << tr("Subject") << tr("Sender") << tr("Date"); messagesTreeWidget = new QTreeWidget; messagesTreeWidget->setHeaderLabels(messageLabels); addMessage(tr("Happy New Year!"), tr("Grace K. <*****@*****.**>"), tr("2006-12-31")); addMessage(tr("Radically new concept!"), tr("Grace K. <*****@*****.**>"), tr("2006-12-22")); addMessage(tr("Accounts"), tr("*****@*****.**"), tr("2006-12-31")); addMessage(tr("Expenses"), tr("Joe Bloggs <*****@*****.**>"), tr("2006-12-25")); addMessage(tr("Re: Expenses"), tr("Andy <*****@*****.**>"), tr("2007-01-02")); addMessage(tr("Re: Accounts"), tr("Joe Bloggs <*****@*****.**>"), tr("2007-01-03")); addMessage(tr("Re: Accounts"), tr("Andy <*****@*****.**>"), tr("2007-01-03")); messagesTreeWidget->resizeColumnToContents(0); messagesTreeWidget->resizeColumnToContents(1); textEdit = new QTextEdit; textEdit->setReadOnly(true); textEdit->setHtml("<table bolder=0>" "<tr><td align=right><b>Subject:</b>" "<td><p>Happy New Year!" "<tr><td align=right><b>Date:</b>" "<td><p>Sun, 31 Dec 2006" "<tr><td align=right><b>From:</b>" "<td><p>Grace K. <[email protected]>" "<tr><td align=right><b>To:</b>" "<td>[email protected]" "</table>" "<br>I want to seize this occasion to thank " "everybody for the year that has gone, and want " "to wish you the best for next year. It has been " "a pleasure to work with you all on the Hawk " "project, and I'm sure we'll get concrete " "results shortly." "<br><br>Happy New Year!" "<br>--Grace"); menuBar()->addMenu(tr("&File")); menuBar()->addMenu(tr("&Edit")); menuBar()->addMenu(tr("&View")); menuBar()->addMenu(tr("F&older")); menuBar()->addMenu(tr("&Message")); menuBar()->addMenu(tr("&Settings")); menuBar()->addMenu(tr("&Help")); statusBar()->showMessage(tr("No new messages on server")); rightSplitter = new QSplitter(Qt::Vertical); rightSplitter->addWidget(messagesTreeWidget); rightSplitter->addWidget(textEdit); rightSplitter->setStretchFactor(1, 1); mainSplitter = new QSplitter(Qt::Horizontal); mainSplitter->addWidget(foldersTreeWidget); mainSplitter->addWidget(rightSplitter); mainSplitter->setStretchFactor(1, 1); setCentralWidget(mainSplitter); setWindowTitle(tr("Mail Client")); readSettings(); }
QVariant ActivityTableModel::data(const QModelIndex &index, int role) const { QSharedPointer<Activity> activity = activityAt(index.row()); switch (role) { case Qt::DisplayRole: switch (index.column()) { case 0: if (activity->isUntimed()) { return QVariant(); } return activity->startedAtHM(); case 1: if (activity->isUntimed()) { return QVariant(); } return s_timeSeparator; case 2: if (activity->isUntimed()) { return QVariant(); } return activity->endedAtHM(); case 3: return activity->name(); case 4: return activity->projectName(); case 5: /* Tags */ return activity->tagNames(); case 6: return activity->durationInWords(); } break; case Qt::DecorationRole: switch (index.column()) { case 7: return editIcon(); case 8: return trashIcon(); } break; case Qt::TextAlignmentRole: switch (index.column()) { case 0: case 6: return (int) (Qt::AlignVCenter | Qt::AlignRight); case 2: case 3: case 4: case 5: return (int) (Qt::AlignVCenter | Qt::AlignLeft); default: return Qt::AlignCenter; } break; case Qt::ForegroundRole: if (index.column() == 4) { return Qt::gray; } break; default: break; } return QVariant(); }