本文整理汇总了C++中WModelIndex类的典型用法代码示例。如果您正苦于以下问题:C++ WModelIndex类的具体用法?C++ WModelIndex怎么用?C++ WModelIndex使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WModelIndex类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: setData
bool ChannelsModel::setData(const WModelIndex &index, const boost::any &value, int role)
{
if (index.column() == 3)
{
QSharedPointer<common::User> du;
QSharedPointer<Channel> ch;
ch = m_availableChannels->at(index.row());
du = common::DbSession::getInstance().getTokensMap().find(std::string(m_token))->second;
bool subscribed=false;
for (int i = 0; i < m_subscribedChannels->size(); i++)
{
if (m_subscribedChannels->at(i) == ch)
{
subscribed = true;
break;
}
}
if (subscribed)
{
//unsubscribe
common::DbSession::getInstance().unsubscribe(du,ch);
}
else
{
//subscribe
common::DbSession::getInstance().subscribe(du,ch);
}
// index.data(Wt::CheckStateRole)=;
dataChanged().emit(index, index);
this->channelsUpdated.emit();
return true;
}
return false;
}
开发者ID:aygerim,项目名称:geo2tag,代码行数:34,代码来源:ChannelsModel.cpp
示例2: data
boost::any GitModel::data(const WModelIndex& index, int role) const
{
if (!index.isValid())
return boost::any();
/* Only 3 data roles on column 0 data are supported:
* - DisplayRole: the file name
* - DecorationRole: an icon (folder or file)
* - ContentsRole: the file contents
*/
if (index.column() == 0) {
Git::Object object = getObject(index);
if (role == DisplayRole) {
if (object.type == Git::Tree)
return object.name + '/';
else
return object.name;
} else if (role == DecorationRole) {
if (object.type == Git::Blob)
return static_cast<const char*>("resources/icons/git-blob.png");
else if (object.type == Git::Tree)
return static_cast<const char*>("resources/icons/git-tree.png");
} else if (role == ContentsRole) {
if (object.type == Git::Blob)
return git_.catFile(object.id);
} else if (role == FilePathRole) {
return boost::any();
}
}
return boost::any();
}
开发者ID:weyrick,项目名称:caw,代码行数:32,代码来源:sourceTreeModel.cpp
示例3: WModelIndex
WModelIndex WIdentityProxyModel::mapFromSource(const WModelIndex &sourceIndex) const
{
if (!sourceIndex.isValid())
return WModelIndex();
return createIndex(sourceIndex.row(), sourceIndex.column(), sourceIndex.internalPointer());
}
开发者ID:LifeGo,项目名称:wt,代码行数:7,代码来源:WIdentityProxyModel.C
示例4: rowCount
int GitModel::rowCount(const WModelIndex& index) const
{
// we are looking for the git SHA1 id of a tree object (since only folders
// may contain children).
Git::ObjectId objectId;
int treeId;
if (index.isValid()) {
// only column 0 items may contain children
if (index.column() != 0)
return 0;
Git::Object o = getObject(index);
if (o.type == Git::Tree) {
objectId = o.id;
treeId = getTreeId(index.internalId(), index.row());
} else
// not a folder: no children
return 0;
} else {
treeId = 0;
// the index corresponds to the root object
if (treeData_.empty())
// model not yet loaded !
return 0;
else
objectId = treeData_[0].treeObject();
}
return treeData_[treeId].rowCount();
}
开发者ID:weyrick,项目名称:caw,代码行数:31,代码来源:sourceTreeModel.cpp
示例5: rowCount
WModelIndexList WAbstractItemModel::match(const WModelIndex& start,
int role,
const boost::any& value,
int hits,
WFlags<MatchFlag> flags)
const
{
WModelIndexList result;
const int rc = rowCount(start.parent());
for (int i = 0; i < rc; ++i) {
int row = start.row() + i;
if (row >= rc) {
if (!(flags & MatchWrap))
break;
else
row -= rc;
}
WModelIndex idx = index(row, start.column(), start.parent());
boost::any v = data(idx, role);
if (Impl::matchValue(v, value, flags))
result.push_back(idx);
}
return result;
}
开发者ID:bvanhauwaert,项目名称:wt,代码行数:30,代码来源:WAbstractItemModel.C
示例6: parent
virtual WModelIndex parent(const WModelIndex& index) const {
if (!index.isValid() || index.internalId() == 0) {
return WModelIndex(); // treeData_[0] is the tree root
} else {
const Tree& item = treeData_[index.internalId()];
return createIndex(item.index(), 0, item.parentId());
}
}
开发者ID:AlexanderKotliar,项目名称:wt,代码行数:8,代码来源:GitModel.cpp
示例7: parent
WModelIndex WStandardItemModel::parent(const WModelIndex& index) const
{
if (!index.isValid())
return index;
WStandardItem *parent = static_cast<WStandardItem *>(index.internalPointer());
return indexFromItem(parent);
}
开发者ID:bvanhauwaert,项目名称:wt,代码行数:9,代码来源:WStandardItemModel.C
示例8: parent
WModelIndex ArnModelW::parent(const WModelIndex& index) const
{
// qDebug() << "### arnModelW parent: Check";
if (!index.isValid())
return index;
ArnNode* parentNode = static_cast<ArnNode*>( index.internalPointer());
return indexFromNode( parentNode, 0);
}
开发者ID:micwik,项目名称:WebArnBrowser,代码行数:10,代码来源:ArnModel.cpp
示例9: index
bool WAbstractItemModel::setData(int row, int column, const boost::any& value,
int role, const WModelIndex& parent)
{
WModelIndex i = index(row, column, parent);
if (i.isValid())
return setData(i, value, role);
else
return false;
}
开发者ID:bvanhauwaert,项目名称:wt,代码行数:10,代码来源:WAbstractItemModel.C
示例10: if
bool WSuggestionPopup::partialResults() const
{
if (filterLength_ < 0)
return true;
else if (model_->rowCount() > 0) {
WModelIndex index = model_->index(model_->rowCount() - 1, modelColumn_);
boost::any styleclass = index.data(StyleClassRole);
return Wt::asString(styleclass) == "Wt-more-data";
} else
return false;
}
开发者ID:Unss,项目名称:wt,代码行数:11,代码来源:WSuggestionPopup.C
示例11: doDelete
void gdContainerBar::doDelete()
{
WModelIndexSet pSet = m_pView->selectedIndexes();
if ( pSet.empty() ) return;
// TODO : Dialog confirm
for (WModelIndexSet::iterator it = pSet.begin(); it != pSet.end(); ++it) {
WModelIndex pIdx = *it;
rowDeleted_.emit(pIdx.row());
m_pView->model()->removeRows(pIdx.row(), 1);
}
}
开发者ID:Wittyshare,项目名称:gdwtcore,代码行数:11,代码来源:gdContainerBar.cpp
示例12: parentItemFromIndex
WModelIndex WSortFilterProxyModel::mapToSource(const WModelIndex& proxyIndex)
const
{
if (proxyIndex.isValid()) {
Item *parentItem = parentItemFromIndex(proxyIndex);
return sourceModel()->index(parentItem->proxyRowMap_[proxyIndex.row()],
proxyIndex.column(),
parentItem->sourceIndex_);
} else
return WModelIndex();
}
开发者ID:chr-thien,项目名称:wt,代码行数:11,代码来源:WSortFilterProxyModel.C
示例13: data
virtual cpp17::any data(const WModelIndex& index, ItemDataRole role = ItemDataRole::Display) const {
if (!index.isValid())
return cpp17::any();
Git::Object object = getObject(index);
switch (index.column()) {
case 0:
if (role == ItemDataRole::Display) {
if (object.type == Git::Tree)
return object.name + '/';
else
return object.name;
} else if (role == ItemDataRole::Decoration) {
if (object.type == Git::Blob)
return std::string("icons/git-blob.png");
else if (object.type == Git::Tree)
return std::string("icons/git-tree.png");
} else if (role == ContentsRole) {
if (object.type == Git::Blob)
return git_.catFile(object.id);
}
break;
case 1:
if (role == ItemDataRole::Display) {
if (object.type == Git::Tree)
return std::string("Folder");
else {
std::string suffix = getSuffix(object.name);
if (suffix == "C" || suffix == "cpp")
return std::string("C++ Source");
else if (suffix == "h" ||
(suffix == "" && !topLevel(index)))
return std::string("C++ Header");
else if (suffix == "css")
return std::string("CSS Stylesheet");
else if (suffix == "js")
return std::string("JavaScript Source");
else if (suffix == "md")
return std::string("Markdown");
else if (suffix == "png" || suffix == "gif")
return std::string("Image");
else if (suffix == "txt")
return std::string("Text");
else
return cpp17::any();
}
}
}
return cpp17::any();
}
开发者ID:AlexanderKotliar,项目名称:wt,代码行数:54,代码来源:GitModel.cpp
示例14: flags
WFlags<ItemFlag> ArnModelW::flags(const WModelIndex& index) const
{
if (!index.isValid()) {
return WFlags<ItemFlag>(0);
}
if (index.column() == 1) {
return WAbstractItemModel::flags( index) | Wt::ItemIsEditable;
}
else {
return WAbstractItemModel::flags( index);
}
}
开发者ID:micwik,项目名称:WebArnBrowser,代码行数:12,代码来源:ArnModel.cpp
示例15: index
virtual WModelIndex index(int row, int column,
const WModelIndex& parent = WModelIndex()) const {
int parentId;
if (!parent.isValid())
parentId = 0;
else {
int grandParentId = parent.internalId();
parentId = getTreeId(grandParentId, parent.row());
}
return createIndex(row, column, parentId);
}
开发者ID:AlexanderKotliar,项目名称:wt,代码行数:13,代码来源:GitModel.cpp
示例16: modelDataChanged
void WSuggestionPopup::modelDataChanged(const WModelIndex& topLeft,
const WModelIndex& bottomRight)
{
if (topLeft.parent().isValid())
return;
if (modelColumn_ < topLeft.column() || modelColumn_ > bottomRight.column())
return;
for (int i = topLeft.row(); i <= bottomRight.row(); ++i) {
WContainerWidget *w = dynamic_cast<WContainerWidget *>(impl_->widget(i));
WAnchor *anchor = dynamic_cast<WAnchor *>(w->widget(0));
WText *value = dynamic_cast<WText *>(anchor->widget(0));
WModelIndex index = model_->index(i, modelColumn_);
boost::any d = index.data();
value->setText(asString(d));
TextFormat format = index.flags() & ItemIsXHTMLText ? XHTMLText : PlainText;
value->setTextFormat(format);
boost::any d2 = model_->data(i, modelColumn_, UserRole);
if (d2.empty())
d2 = d;
value->setAttributeValue("sug", asString(d2));
}
}
开发者ID:Unss,项目名称:wt,代码行数:29,代码来源:WSuggestionPopup.C
示例17:
WModelIndexSet
WModelIndex::decodeFromRawIndexes(const WModelIndexSet& encodedIndexes)
{
WModelIndexSet result;
for (WModelIndexSet::const_iterator i = encodedIndexes.begin();
i != encodedIndexes.end(); ++i) {
WModelIndex n = i->decodeFromRawIndex();
if (n.isValid())
result.insert(n);
}
return result;
}
开发者ID:913862627,项目名称:wt,代码行数:14,代码来源:WModelIndex.C
示例18: WModelIndex
WModelIndex GitModel::parent(const WModelIndex& index) const
{
// treeData_[0] indicates the top-level parent.
if (!index.isValid() || index.internalId() == 0)
return WModelIndex();
else {
// get the item that corresponds to the parent ...
const Tree& item = treeData_[index.internalId()];
// ... and construct that identifies the parent:
// row = child index in the grand parent
// internalId = id of the grand parent
return createIndex(item.index(), 0, item.parentId());
}
}
开发者ID:weyrick,项目名称:caw,代码行数:15,代码来源:sourceTreeModel.cpp
示例19: updateModelIndex
// Updates the model index of the gdSqlComboBoxCustomItem
void gdSqlComboBoxDelegate::updateModelIndex(WWidget* widget, const WModelIndex& index)
{
if ( isFirstRowReserved() )
if ( index.row() == 0 ) {
if ( m_bDebug )
wApp->log("notice") << " gdSqlComboBoxDelegate::updateModelIndex firstRow reserved and row = 0 ";
WItemDelegate* pItem = dynamic_cast<WItemDelegate*>(widget);
return pItem->updateModelIndex(widget, index);
}
if ( m_bDebug )
wApp->log("notice") << " gdSqlComboBoxDelegate::updateModelIndex row = " << index.row();
gdSqlComboBoxCustomItem* item = dynamic_cast<gdSqlComboBoxCustomItem*>(widget);
item->setIndex(index);
WItemDelegate::updateModelIndex(widget, index);
}
开发者ID:Wittyshare,项目名称:gdwtcore,代码行数:16,代码来源:gdSqlComboBoxDelegate.cpp
示例20: setData
bool ArnModelW::setData(const WModelIndex& index,
const boost::any& value, int role)
{
if (index.isValid() && role == Wt::EditRole) {
ArnNode* node = nodeFromIndex( index);
if (!node) return false;
if (node->isFolder()) {
if (node->_valueChild) {
if (node->_setMap) {
node->_valueChild->setValue( node->_setMap->key( toQString( boost::any_cast<WString>(value))));
}
else {
node->_valueChild->setValue( toQString( boost::any_cast<WString>(value)));
}
emitDataChangedI( index);
}
}
else {
if (value.type() == typeid(QVariant))
node->setValue( boost::any_cast<QVariant>(value));
else
node->setValue( toQString( boost::any_cast<WString>(value)));
emitDataChangedI( index);
}
return true;
}
return false;
}
开发者ID:micwik,项目名称:WebArnBrowser,代码行数:29,代码来源:ArnModel.cpp
注:本文中的WModelIndex类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论