int LaserTrailModel::rowCount(const QModelIndex &parent) const { if(parent.isValid()) return 0; return m_lasers.size(); }
QVariant GeodbViewTableModel::data(const QModelIndex &index, int role) const { //SQL sql; if (!index.isValid()) return QVariant(); if (index.row() >= listOfObjects.size() || index.row() < 0) return QVariant(); // if(role == Qt::CheckStateRole) // { // if(index.column() != 0) // return QVariant(); // else // { // segmentData sd = listOfSegments.at(index.row()); // segmentInfo si = sql.getSegmentInfo(sd.SegmentId); // if (sql.isRouteUsedOnDate(m_routeNbr, sd.SegmentId, m_date)) // return Qt::Checked; // else // return Qt::Unchecked; // } // } geodbObject go = listOfObjects.at(index.row()); if (role == Qt::DisplayRole) { switch(index.column()) { case 0: //TODO setup checkbox if segment used in route. return go.Strasse; case 1: return go.PLZ; case 2: return go.Ortstiel; case 3: return go.Bezirk; case 4: return go.Stadt; case 5: switch(go.Strasse_type) { case 101100000: return tr("Street"); case 101104000: return tr("Regional Bahn station"); case 101105000: return tr("S-Bahn station"); case 101106000: return tr("U-Bahn station"); case 101300000: return tr("Park"); case 101400000: return tr("Bridge"); default: return QString("%1").arg(go.Strasse_type); } case 6: return go.Strasse_von; case 7: return go.Strasse_bis; } } return QVariant(); }
Qt::ItemFlags RotationModel::flags(const QModelIndex &index) const { if (!index.isValid()) return Qt::ItemIsEnabled | Qt::ItemIsDropEnabled; return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | Qt::ItemIsEditable; }
int KeyModel::columnCount( const QModelIndex &index ) const { return index.isValid() ? 0 : 3; }
int CookieModel::columnCount(const QModelIndex &parent) const { return (parent.isValid()) ? 0 : 6; }
bool CSMWorld::NestedTableProxyModel::indexIsParent(const QModelIndex& index) { return (index.isValid() && index.column() == mParentColumn && mMainModel->data(mMainModel->index(index.row(), 0)).toString().toUtf8().constData() == mId); }
int CSMWorld::NestedTableProxyModel::columnCount(const QModelIndex& parent) const { assert (!parent.isValid()); return mMainModel->columnCount(mMainModel->getModelIndex(mId, mParentColumn)); }
inline QModelIndex TransferListWidget::mapFromSource(const QModelIndex &index) const { Q_ASSERT(index.isValid()); Q_ASSERT(index.model() == labelFilterModel); return nameFilterModel->mapFromSource(statusFilterModel->mapFromSource(labelFilterModel->mapFromSource(index))); }
//----------------------------------------------------------------------------- // Function: ViewsModel::data() //----------------------------------------------------------------------------- QVariant ViewsModel::data(QModelIndex const& index, int role) const { if (!index.isValid() || index.row() < 0 || index.row() >= views_.size()) { return QVariant(); } QSharedPointer<View> view = views_.at(index.row()); if (role == Qt::DisplayRole) { if (index.column() == ViewsModel::NAME_COLUMN) { if (!view->getName().isEmpty()) { return views_.at(index.row())->getName(); } else { return "unnamed"; } } else if (index.column() == ViewsModel::TYPE_COLUMN) { if (view->isHierarchical()) { return tr("hierarchical"); } else { return tr("non-hierarchical"); } } else if (index.column() == ViewsModel::DESCRIPTION_COLUMN) { return view->getDescription().replace(QRegularExpression("\n.*$", QRegularExpression::DotMatchesEverythingOption), "..."); } else { return QVariant(); } } else if (role == Qt::EditRole && index.column() == ViewsModel::DESCRIPTION_COLUMN) { return view->getDescription(); } else if (role == Qt::ForegroundRole) { if (index.column() == ViewsModel::TYPE_COLUMN) { return QColor("gray"); } else if (view->isValid(component_->getFileSetNames(), component_->getChoices())) { return QColor("black"); } else { return QColor("red"); } } else if (role == Qt::BackgroundRole) { if (index.column() == ViewsModel::NAME_COLUMN) { return QColor("LemonChiffon"); } else { return QColor("white"); } } else { return QVariant(); } }
int UserSearchModel::rowCount(const QModelIndex& parentIndex) const { if (!parentIndex.isValid()) { return results_.size(); } return 0; }
CMakeBuildSettingsWidget::CMakeBuildSettingsWidget(CMakeBuildConfiguration *bc) : m_buildConfiguration(bc), m_configModel(new ConfigModel(this)), m_configFilterModel(new Utils::CategorySortFilterModel), m_configTextFilterModel(new Utils::CategorySortFilterModel) { QTC_CHECK(bc); setDisplayName(tr("CMake")); auto vbox = new QVBoxLayout(this); vbox->setMargin(0); auto container = new Utils::DetailsWidget; container->setState(Utils::DetailsWidget::NoSummary); vbox->addWidget(container); auto details = new QWidget(container); container->setWidget(details); auto mainLayout = new QGridLayout(details); mainLayout->setMargin(0); mainLayout->setColumnStretch(1, 10); auto project = static_cast<CMakeProject *>(bc->project()); auto buildDirChooser = new Utils::PathChooser; buildDirChooser->setBaseFileName(project->projectDirectory()); buildDirChooser->setFileName(bc->buildDirectory()); connect(buildDirChooser, &Utils::PathChooser::rawPathChanged, this, [this](const QString &path) { m_configModel->flush(); // clear out config cache... m_buildConfiguration->setBuildDirectory(Utils::FileName::fromString(path)); }); int row = 0; mainLayout->addWidget(new QLabel(tr("Build directory:")), row, 0); mainLayout->addWidget(buildDirChooser->lineEdit(), row, 1); mainLayout->addWidget(buildDirChooser->buttonAtIndex(0), row, 2); ++row; mainLayout->addItem(new QSpacerItem(20, 10), row, 0); ++row; m_errorLabel = new QLabel; m_errorLabel->setPixmap(Utils::Icons::CRITICAL.pixmap()); m_errorLabel->setVisible(false); m_errorMessageLabel = new QLabel; m_errorMessageLabel->setVisible(false); auto boxLayout = new QHBoxLayout; boxLayout->addWidget(m_errorLabel); boxLayout->addWidget(m_errorMessageLabel); mainLayout->addLayout(boxLayout, row, 0, 1, 3, Qt::AlignHCenter); ++row; m_warningLabel = new QLabel; m_warningLabel->setPixmap(Utils::Icons::WARNING.pixmap()); m_warningLabel->setVisible(false); m_warningMessageLabel = new QLabel; m_warningMessageLabel->setVisible(false); auto boxLayout2 = new QHBoxLayout; boxLayout2->addWidget(m_warningLabel); boxLayout2->addWidget(m_warningMessageLabel); mainLayout->addLayout(boxLayout2, row, 0, 1, 3, Qt::AlignHCenter); ++row; mainLayout->addItem(new QSpacerItem(20, 10), row, 0); ++row; m_filterEdit = new Utils::FancyLineEdit; m_filterEdit->setPlaceholderText(tr("Filter")); m_filterEdit->setFiltering(true); mainLayout->addWidget(m_filterEdit, row, 0, 1, 2); ++row; auto tree = new Utils::TreeView; connect(tree, &Utils::TreeView::activated, tree, [tree](const QModelIndex &idx) { tree->edit(idx); }); m_configView = tree; m_configView->viewport()->installEventFilter(this); m_configFilterModel->setSourceModel(m_configModel); m_configFilterModel->setFilterKeyColumn(0); m_configFilterModel->setFilterRole(ConfigModel::ItemIsAdvancedRole); m_configFilterModel->setFilterFixedString("0"); m_configTextFilterModel->setSourceModel(m_configFilterModel); m_configTextFilterModel->setSortRole(Qt::DisplayRole); m_configTextFilterModel->setFilterKeyColumn(-1); m_configTextFilterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); connect(m_configTextFilterModel, &QAbstractItemModel::layoutChanged, this, [this]() { QModelIndex selectedIdx = m_configView->currentIndex(); if (selectedIdx.isValid()) m_configView->scrollTo(selectedIdx); }); m_configView->setModel(m_configTextFilterModel); m_configView->setMinimumHeight(300); m_configView->setUniformRowHeights(true); m_configView->setSortingEnabled(true); m_configView->sortByColumn(0, Qt::AscendingOrder); auto stretcher = new Utils::HeaderViewStretcher(m_configView->header(), 0); m_configView->setSelectionMode(QAbstractItemView::SingleSelection); m_configView->setSelectionBehavior(QAbstractItemView::SelectItems); m_configView->setFrameShape(QFrame::NoFrame); m_configView->setItemDelegate(new ConfigModelItemDelegate(m_buildConfiguration->project()->projectDirectory(), m_configView)); QFrame *findWrapper = Core::ItemViewFind::createSearchableWrapper(m_configView, Core::ItemViewFind::LightColored); findWrapper->setFrameStyle(QFrame::StyledPanel); m_progressIndicator = new Utils::ProgressIndicator(Utils::ProgressIndicatorSize::Large, findWrapper); m_progressIndicator->attachToWidget(findWrapper); m_progressIndicator->raise(); m_progressIndicator->hide(); m_showProgressTimer.setSingleShot(true); m_showProgressTimer.setInterval(50); // don't show progress for < 50ms tasks connect(&m_showProgressTimer, &QTimer::timeout, [this]() { m_progressIndicator->show(); }); mainLayout->addWidget(findWrapper, row, 0, 1, 2); auto buttonLayout = new QVBoxLayout; m_addButton = new QPushButton(tr("&Add")); m_addButton->setToolTip(tr("Add a new configuration value.")); buttonLayout->addWidget(m_addButton); { m_addButtonMenu = new QMenu; m_addButtonMenu->addAction(tr("&Boolean"))->setData( QVariant::fromValue(static_cast<int>(ConfigModel::DataItem::BOOLEAN))); m_addButtonMenu->addAction(tr("&String"))->setData( QVariant::fromValue(static_cast<int>(ConfigModel::DataItem::STRING))); m_addButtonMenu->addAction(tr("&Directory"))->setData( QVariant::fromValue(static_cast<int>(ConfigModel::DataItem::DIRECTORY))); m_addButtonMenu->addAction(tr("&File"))->setData( QVariant::fromValue(static_cast<int>(ConfigModel::DataItem::FILE))); m_addButton->setMenu(m_addButtonMenu); } m_editButton = new QPushButton(tr("&Edit")); m_editButton->setToolTip(tr("Edit the current CMake configuration value.")); buttonLayout->addWidget(m_editButton); m_unsetButton = new QPushButton(tr("&Unset")); m_unsetButton->setToolTip(tr("Unset a value in the CMake configuration.")); buttonLayout->addWidget(m_unsetButton); m_resetButton = new QPushButton(tr("&Reset")); m_resetButton->setToolTip(tr("Reset all unapplied changes.")); m_resetButton->setEnabled(false); buttonLayout->addWidget(m_resetButton); buttonLayout->addItem(new QSpacerItem(10, 10, QSizePolicy::Fixed, QSizePolicy::Fixed)); m_showAdvancedCheckBox = new QCheckBox(tr("Advanced")); buttonLayout->addWidget(m_showAdvancedCheckBox); buttonLayout->addItem(new QSpacerItem(10, 10, QSizePolicy::Minimum, QSizePolicy::Expanding)); mainLayout->addLayout(buttonLayout, row, 2); connect(m_configView->selectionModel(), &QItemSelectionModel::currentChanged, this, &CMakeBuildSettingsWidget::updateSelection); ++row; m_reconfigureButton = new QPushButton(tr("Apply Configuration Changes")); m_reconfigureButton->setEnabled(false); mainLayout->addWidget(m_reconfigureButton, row, 0, 1, 3); updateAdvancedCheckBox(); setError(bc->error()); setWarning(bc->warning()); connect(project, &ProjectExplorer::Project::parsingStarted, this, [this]() { updateButtonState(); m_configView->setEnabled(false); m_showProgressTimer.start(); }); if (m_buildConfiguration->isParsing()) m_showProgressTimer.start(); else { m_configModel->setConfiguration(m_buildConfiguration->configurationFromCMake()); m_configView->expandAll(); } connect(project, &ProjectExplorer::Project::parsingFinished, this, [this, buildDirChooser, stretcher]() { m_configModel->setConfiguration(m_buildConfiguration->configurationFromCMake()); m_configView->expandAll(); m_configView->setEnabled(true); stretcher->stretch(); updateButtonState(); buildDirChooser->triggerChanged(); // refresh valid state... m_showProgressTimer.stop(); m_progressIndicator->hide(); }); connect(m_buildConfiguration, &CMakeBuildConfiguration::errorOccured, this, [this]() { m_showProgressTimer.stop(); m_progressIndicator->hide(); }); connect(m_configTextFilterModel, &QAbstractItemModel::modelReset, this, [this, stretcher]() { m_configView->expandAll(); stretcher->stretch(); }); connect(m_configModel, &QAbstractItemModel::dataChanged, this, &CMakeBuildSettingsWidget::updateButtonState); connect(m_configModel, &QAbstractItemModel::modelReset, this, &CMakeBuildSettingsWidget::updateButtonState); connect(m_showAdvancedCheckBox, &QCheckBox::stateChanged, this, &CMakeBuildSettingsWidget::updateAdvancedCheckBox); connect(m_filterEdit, &QLineEdit::textChanged, m_configTextFilterModel, &QSortFilterProxyModel::setFilterFixedString); connect(m_resetButton, &QPushButton::clicked, m_configModel, &ConfigModel::resetAllChanges); connect(m_reconfigureButton, &QPushButton::clicked, this, [this]() { m_buildConfiguration->setConfigurationForCMake(m_configModel->configurationForCMake()); }); connect(m_unsetButton, &QPushButton::clicked, this, [this]() { m_configModel->toggleUnsetFlag(mapToSource(m_configView, m_configView->currentIndex())); }); connect(m_editButton, &QPushButton::clicked, this, [this]() { QModelIndex idx = m_configView->currentIndex(); if (idx.column() != 1) idx = idx.sibling(idx.row(), 1); m_configView->setCurrentIndex(idx); m_configView->edit(idx); }); connect(m_addButtonMenu, &QMenu::triggered, this, [this](QAction *action) { ConfigModel::DataItem::Type type = static_cast<ConfigModel::DataItem::Type>(action->data().value<int>()); QString value = tr("<UNSET>"); if (type == ConfigModel::DataItem::BOOLEAN) value = QString::fromLatin1("OFF"); m_configModel->appendConfiguration(tr("<UNSET>"), value, type); const Utils::TreeItem *item = m_configModel->findNonRootItem([&value, type](Utils::TreeItem *item) { ConfigModel::DataItem dataItem = ConfigModel::dataItemFromIndex(item->index()); return dataItem.key == tr("<UNSET>") && dataItem.type == type && dataItem.value == value; }); QModelIndex idx = m_configModel->indexForItem(item); idx = m_configTextFilterModel->mapFromSource(m_configFilterModel->mapFromSource(idx)); m_configView->scrollTo(idx); m_configView->setCurrentIndex(idx); m_configView->edit(idx); }); connect(bc, &CMakeBuildConfiguration::errorOccured, this, &CMakeBuildSettingsWidget::setError); connect(bc, &CMakeBuildConfiguration::warningOccured, this, &CMakeBuildSettingsWidget::setWarning); updateFromKit(); connect(m_buildConfiguration->target(), &ProjectExplorer::Target::kitChanged, this, &CMakeBuildSettingsWidget::updateFromKit); connect(m_buildConfiguration, &CMakeBuildConfiguration::enabledChanged, this, [this]() { setError(m_buildConfiguration->disabledReason()); setConfigurationForCMake(); }); connect(m_buildConfiguration, &CMakeBuildConfiguration::configurationForCMakeChanged, this, [this]() { setConfigurationForCMake(); }); updateSelection(QModelIndex(), QModelIndex()); }
QVariant UserSearchModel::data(const QModelIndex& index, int role) const { if (!index.isValid()) return QVariant(); UserSearchResult* result = static_cast<UserSearchResult*>(index.internalPointer()); return data(result, role); }
int ImageInfoModel::columnCount(const QModelIndex &parent) const { if (parent.isValid()) return 0; return ColumnCount; }
int ImageInfoModel::rowCount(const QModelIndex &parent) const { if (parent.isValid()) return 0; return _contents.isNull() ? 0 : RowCount; }
void Menu::populateModelMenu() { QMenu *menu = qobject_cast<QMenu*>(sender()); if (!menu || !menu->menuAction()) { return; } QModelIndex index = menu->menuAction()->data().toModelIndex(); if (!menu->actions().isEmpty() && !(m_role == BookmarksMenuRole && !index.isValid() && menu->actions().count() == 3)) { return; } if (!index.isValid()) { index = ((m_role == NotesMenuRole) ? NotesManager::getModel() : BookmarksManager::getModel())->getRootItem()->index(); } const QAbstractItemModel *model = index.model(); if (!model) { return; } if (model->rowCount(index) > 1 && m_role == BookmarksMenuRole) { QAction *openAllAction = menu->addAction(Utils::getIcon(QLatin1String("document-open-folder")), tr("Open All"), this, SLOT(openBookmark())); openAllAction->setData(index); menu->addSeparator(); } if (m_role == BookmarkSelectorMenuRole) { QAction *addFolderAction = menu->addAction(Utils::getIcon(QLatin1String("document-open-folder")), tr("This Folder")); addFolderAction->setData(index); menu->addSeparator(); } for (int i = 0; i < model->rowCount(index); ++i) { const QModelIndex childIndex = index.child(i, 0); if (!childIndex.isValid()) { continue; } const BookmarksModel::BookmarkType type = static_cast<BookmarksModel::BookmarkType>(childIndex.data(BookmarksModel::TypeRole).toInt()); if (type == BookmarksModel::RootBookmark || type == BookmarksModel::FolderBookmark || type == BookmarksModel::UrlBookmark) { QAction *action = menu->addAction(childIndex.data(Qt::DecorationRole).value<QIcon>(), (childIndex.data(BookmarksModel::TitleRole).toString().isEmpty() ? tr("(Untitled)") : Utils::elideText(QString(childIndex.data(BookmarksModel::TitleRole).toString()).replace(QLatin1Char('&'), QLatin1String("&&")), menu))); action->setData(childIndex); action->setToolTip(childIndex.data(BookmarksModel::DescriptionRole).toString()); action->setStatusTip(childIndex.data(BookmarksModel::UrlRole).toString()); if (type == BookmarksModel::UrlBookmark && m_role == BookmarksMenuRole) { connect(action, SIGNAL(triggered()), this, SLOT(openBookmark())); } else if (type == BookmarksModel::FolderBookmark) { if (model->rowCount(childIndex) > 0) { action->setMenu(new Menu(m_role, this)); } else { action->setEnabled(false); } } } else { menu->addSeparator(); } } }
void OpenPagesManager::setCurrentPage(const QModelIndex &index) { if (index.isValid()) setCurrentPage(index.row()); }
void Mesh::update( const NifModel * nif, const QModelIndex & index ) { Node::update( nif, index ); if ( ! iBlock.isValid() || ! index.isValid() ) return; upData |= ( iData == index ) || ( iTangentData == index ); upSkin |= ( iSkin == index ); upSkin |= ( iSkinData == index ); upSkin |= ( iSkinPart == index ); if ( iBlock == index ) { // NiMesh presents a problem because we are almost guaranteed to have multiple "data" blocks // for eg. vertices, indices, normals, texture data etc. #ifndef QT_NO_DEBUG if ( nif->checkVersion( 0x14050000, 0 ) && nif->inherits( iBlock, "NiMesh" ) ) { qWarning() << nif->get<ushort>( iBlock, "Num Submeshes" ) << " submeshes"; iData = nif->getIndex( iBlock, "Datas" ); if ( iData.isValid() ) { qWarning() << "Got " << nif->rowCount( iData ) << " rows of data"; upData = true; } else { qWarning() << "Did not find data in NiMesh ???"; } return; } #endif foreach ( int link, nif->getChildLinks( id() ) ) { QModelIndex iChild = nif->getBlock( link ); if ( ! iChild.isValid() ) continue; QString name = nif->itemName( iChild ); if ( nif->inherits(iChild, "NiTriShapeData") || nif->inherits(iChild, "NiTriStripsData" ) ) { if ( ! iData.isValid() ) { iData = iChild; upData = true; } else if ( iData != iChild ) { qWarning() << "shape block" << id() << "has multiple data blocks"; } } else if ( nif->inherits(iChild, "NiSkinInstance" ) ) { if ( ! iSkin.isValid() ) { iSkin = iChild; upSkin = true; } else if ( iSkin != iChild ) qWarning() << "shape block" << id() << "has multiple skin instances"; } } } upBounds |= upData; }
void OpenPagesManager::closePage(const QModelIndex &index) { if (index.isValid()) removePage(index.row()); }
int CSMWorld::NestedTableProxyModel::rowCount(const QModelIndex& index) const { assert (!index.isValid()); return mMainModel->rowCount(mMainModel->getModelIndex(mId, mParentColumn)); }
int DebuggerSourcePathMappingWidget::currentRow() const { const QModelIndex index = m_treeView->selectionModel()->currentIndex(); return index.isValid() ? index.row() : -1; }
QVariant TransferListModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); BitTorrent::TorrentHandle *const torrent = m_torrents.value(index.row()); if (!torrent) return QVariant(); if ((role == Qt::DecorationRole) && (index.column() == TR_NAME)) return getIconByState(torrent->state()); if (role == Qt::ForegroundRole) return getColorByState(torrent->state()); if ((role != Qt::DisplayRole) && (role != Qt::UserRole)) return QVariant(); switch (index.column()) { case TR_NAME: return torrent->name(); case TR_PRIORITY: return torrent->queuePosition(); case TR_SIZE: return torrent->wantedSize(); case TR_PROGRESS: return torrent->progress(); case TR_STATUS: return QVariant::fromValue(torrent->state()); case TR_SEEDS: return (role == Qt::DisplayRole) ? torrent->seedsCount() : torrent->totalSeedsCount(); case TR_PEERS: return (role == Qt::DisplayRole) ? torrent->leechsCount() : torrent->totalLeechersCount(); case TR_DLSPEED: return torrent->downloadPayloadRate(); case TR_UPSPEED: return torrent->uploadPayloadRate(); case TR_ETA: return torrent->eta(); case TR_RATIO: return torrent->realRatio(); case TR_CATEGORY: return torrent->category(); case TR_TAGS: { QStringList tagsList = torrent->tags().toList(); tagsList.sort(); return tagsList.join(", "); } case TR_ADD_DATE: return torrent->addedTime(); case TR_SEED_DATE: return torrent->completedTime(); case TR_TRACKER: return torrent->currentTracker(); case TR_DLLIMIT: return torrent->downloadLimit(); case TR_UPLIMIT: return torrent->uploadLimit(); case TR_AMOUNT_DOWNLOADED: return torrent->totalDownload(); case TR_AMOUNT_UPLOADED: return torrent->totalUpload(); case TR_AMOUNT_DOWNLOADED_SESSION: return torrent->totalPayloadDownload(); case TR_AMOUNT_UPLOADED_SESSION: return torrent->totalPayloadUpload(); case TR_AMOUNT_LEFT: return torrent->incompletedSize(); case TR_TIME_ELAPSED: return (role == Qt::DisplayRole) ? torrent->activeTime() : torrent->seedingTime(); case TR_SAVE_PATH: return Utils::Fs::toNativePath(torrent->savePath()); case TR_COMPLETED: return torrent->completedSize(); case TR_RATIO_LIMIT: return torrent->maxRatio(); case TR_SEEN_COMPLETE_DATE: return torrent->lastSeenComplete(); case TR_LAST_ACTIVITY: if (torrent->isPaused() || torrent->isChecking()) return -1; return torrent->timeSinceActivity(); case TR_TOTAL_SIZE: return torrent->totalSize(); } return QVariant(); }
Qt::ItemFlags TagsModel::flags(const QModelIndex &index) const { return (index.isValid())? Qt::ItemIsSelectable | Qt::ItemIsEnabled : Qt::ItemIsEnabled; }
int KeyModel::rowCount( const QModelIndex &index ) const { return index.isValid() ? 0 : skKeys.count(); }
int SnifferModel::columnCount(const QModelIndex &parent) const { return parent.isValid() ? 0 : tc::LAST+1; }
int CookieModel::rowCount(const QModelIndex &parent) const { return (parent.isValid() || !m_cookieJar) ? 0 : m_cookies.count(); }
int SnifferModel::rowCount(const QModelIndex &parent) const { const QMap<quint32, SnifferItem*>& map = mFilter ? mFilters : mMap; return parent.isValid() ? 0 : map.size(); }
void VtkVisPipelineView::contextMenuEvent( QContextMenuEvent* event ) { QModelIndex index = selectionModel()->currentIndex(); if (index.isValid()) { // check object type VtkVisPipelineItem* item = static_cast<VtkVisPipelineItem*>(static_cast<VtkVisPipeline*>( this->model())->getItem(this->selectionModel()->currentIndex())); int objectType = item->algorithm()->GetOutputDataObject(0)->GetDataObjectType(); VtkAlgorithmProperties* vtkProps = item->getVtkProperties(); bool isSourceItem = (this->selectionModel()->currentIndex().parent().isValid()) ? 0 : 1; QMenu menu; QAction* addFilterAction = menu.addAction("Add filter..."); QAction* addLUTAction(NULL); QAction* addMeshingAction(NULL); if (objectType == VTK_IMAGE_DATA) { // this exception is needed as image object are only displayed in the vis-pipeline isSourceItem = false; addMeshingAction = menu.addAction("Convert Image to Mesh..."); connect(addMeshingAction, SIGNAL(triggered()), this, SLOT(showImageToMeshConversionDialog())); } else { addLUTAction = menu.addAction("Add color table..."); connect(addLUTAction, SIGNAL(triggered()), this, SLOT(addColorTable())); } QAction* addConvertToMeshAction(NULL); if (objectType == VTK_UNSTRUCTURED_GRID) { addConvertToMeshAction = menu.addAction("Convert to Mesh..."); connect(addConvertToMeshAction, SIGNAL(triggered()), this, SLOT(convertVTKToOGSMesh())); } menu.addSeparator(); QAction* exportVtkAction = menu.addAction("Export as VTK"); QAction* exportOsgAction = menu.addAction("Export as OpenSG"); #ifdef VTKFBXCONVERTER_FOUND QAction* exportFbxAction = menu.addAction("Export as Fbx"); #endif QAction* removeAction = NULL; if (!isSourceItem || vtkProps->IsRemovable()) { menu.addSeparator(); removeAction = menu.addAction("Remove"); connect(removeAction, SIGNAL(triggered()), this, SLOT(removeSelectedPipelineItem())); } connect(addFilterAction, SIGNAL(triggered()), this, SLOT(addPipelineFilterItem())); connect(exportVtkAction, SIGNAL(triggered()), this, SLOT(exportSelectedPipelineItemAsVtk())); connect(exportOsgAction, SIGNAL(triggered()), this, SLOT(exportSelectedPipelineItemAsOsg())); #ifdef VTKFBXCONVERTER_FOUND connect(exportFbxAction, SIGNAL(triggered()), this, SLOT(exportSelectedPipelineItemAsFbx())); #endif menu.exec(event->globalPos()); } }
QVariant SnifferModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); SnifferItem *item = static_cast<SnifferItem*>(index.internalPointer()); if(!item) QVariant(); int col = index.column(); switch(role) { case Qt::DisplayRole: { switch(col) { case tc::DELTA: return QString::number(item->getDelta(), 'f'); case tc::ID: return QString("%1").arg(item->getId(), 5, 16, QLatin1Char(' ')).toUpper(); default: break; } if(tc::DATA_0<=col && col <=tc::DATA_7) { int data = item->getData(col-tc::DATA_0); if(data >= 0) { return QString("%1").arg(data, 2, 16, QLatin1Char('0')).toUpper(); } } break; } case Qt::ForegroundRole: { if (!mFadeInactive || col < 2) return QApplication::palette().brush(QPalette::Text); int v = item->getSeqInterval(col - 2) * 10; //qDebug() << "mTS: " << mTimeSequence << " gDT(" << (col - 2) << ") " << item->getDataTimestamp(col - 2); if (v > 225) v = 225; if (v < 0) v = 0; if (!mDarkMode) //text defaults to being dark { return QBrush(QColor(v,v,v,255)); } else //text defaults to being light { return QBrush(QColor(255-v,255-v,255-v,255)); } } case Qt::BackgroundRole: { if(tc::ID==col) { if(item->elapsed() > 4000) { if (!mDarkMode) return QBrush(Qt::red); return QBrush(QColor(128,0,0)); } } else if(tc::DATA_0<=col && col<=tc::DATA_7) { dc change = item->dataChange(col-tc::DATA_0); switch(change) { case dc::INC: if (!mDarkMode) return QBrush(Qt::green); return QBrush(QColor(0,128,0)); case dc::DEINC: if (!mDarkMode) return QBrush(Qt::red); return QBrush(QColor(128,0,0)); default: return QApplication::palette().brush(QPalette::Base); } } break; } } return QVariant(); }
int TianyaModel::columnCount(const QModelIndex& parent) const { if(parent.isValid()) return 0; return 6; }
void FolderNavigationWidget::slotOpenItem(const QModelIndex &viewIndex) { if (viewIndex.isValid()) openItem(m_filterModel->mapToSource(viewIndex)); }