std::size_t hash_value(const Wt::WModelIndex& index) { boost::hash<int> intHasher; boost::hash< ::uint64_t > longHasher; return intHasher(index.row()) + intHasher(index.column()) + longHasher(index.internalId()); }
boost::any data(const Wt::WModelIndex& index, int role=Wt::DisplayRole) const { dbo::Transaction t(fApp->session()); const CommentPtr& o = resultRow(index.row()); if (index.column() == deleted_column) { if (role == Wt::DisplayRole) { return ""; } else if (role == Wt::CheckStateRole) { return o->deleted(); } } else if (index.column() == index_column) { if (role == Wt::LinkRole) { return Wt::WLink(Wt::WLink::InternalPath, fApp->comment_path(o)); } else if (role == Wt::DisplayRole) { return tr("facts.common.id_format").arg(o.id().index); } } else if (index.column() == ip_column && role == Wt::LinkRole) { return Wt::WLink(Wt::WLink::InternalPath, fApp->ip_path(o->ip())); } else if (index.column() == text_column && role == Wt::DisplayRole) { if (o->deleted()) { return tr("facts.comment.deleted"); } else { return tr("facts.comment.format").arg(o->username()).arg(o->email()) .arg(o->when_added().toString()).arg(o->text()); } } return BaseQM::data(index, role); }
void RSWappSearchFilesPage::tableClicked() { //_tableView->selectedIndexes().begin(). Wt::WModelIndex index; std::list<int> jobList; const Wt::WModelIndexSet selectedRows = _tableView->selectedIndexes(); for (Wt::WModelIndexSet::iterator i = selectedRows.begin(); i != selectedRows.end(); ++i) { index = *i; jobList.push_back(index.row()); } DirDetails dd; std::list<DirDetails> items = _shared_files_model->getItems(jobList); for (std::list<DirDetails>::iterator i = items.begin(); i != items.end(); ++i) { dd = *i; FileInfo finfo ; rsFiles->FileDetails(dd.hash, RS_FILE_HINTS_REMOTE, finfo) ; std::list<std::string> srcIds; for(std::list<TransferInfo>::const_iterator it(finfo.peers.begin());it!=finfo.peers.end();++it) { srcIds.push_back((*it).peerId) ; } if (rsFiles->FileRequest(dd.name, dd.hash, dd.count, "", RS_FILE_REQ_ANONYMOUS_ROUTING, srcIds)) { std::cerr << "\n\n DOWNLOADING: " << dd.name << ", " << dd.hash << ", " << dd.count <<std::endl; } else { std::cerr << "\n\n SKIPDL: " << dd.name << ", " << dd.hash << ", " << dd.count <<std::endl; //fileExist.append(link.name()); } } //dryRunSignal().emit(jobList); }
boost::any data(const Wt::WModelIndex& index, int role=Wt::DisplayRole) const { dbo::Transaction t(fApp->session()); if (role == Wt::LinkRole && index.column() == N_COLUMN) { const FactPtr& o = resultRow(index.row()); return Wt::WLink(Wt::WLink::InternalPath, fApp->fact_path(o)); } return BaseQM::data(index, role); }
virtual boost::any data(const Wt::WModelIndex& index, int role = Wt::DisplayRole) const { RsStackMutex mtx(_mtx) ; std::cerr << "data row: " << index.row() << std::endl; if(index.column() >= 6 || index.row() >= (int)_searchResults.size()) return boost::any(); //DirDetails dd; //dd.count; switch (role) { case Wt::DisplayRole: switch(index.column()) { case COLUMN_FILENAME : return Wt::WString(_searchResults[index.row()].name) ; case COLUMN_SIZE : return make_big_number(_searchResults[index.row()].count) ; case COLUMN_AGE: return make_big_number(_searchResults[index.row()].age); default: return boost::any(); } case Wt::UserRole: switch(index.column()) { default: return Wt::WString(_searchResults[index.row()].hash) ; } case Wt::ToolTipRole: Wt::WString(_searchResults[index.row()].hash) ; default: return boost::any(); } }
boost::any InstructionListModel::data(const Wt::WModelIndex &index, int role) const { ASSERT_require(index.isValid()); ASSERT_require(index.row()>=0 && (size_t)index.row() < insns_.size()); SgAsmInstruction *insn = insns_[index.row()]; if (Wt::DisplayRole == role) { switch (index.column()) { case C_ADDR: { return Wt::WString(StringUtility::addrToString(insn->get_address())); } case C_BYTES: { std::string s; for (size_t i=0; i<insn->get_raw_bytes().size(); ++i) { uint8_t byte = insn->get_raw_bytes()[i]; char buf[32]; sprintf(buf, "%02x", byte); s += std::string(i?" ":"") + buf; } return Wt::WString(s); } case C_CHARS: { std::string s; for (size_t i=0; i<insn->get_raw_bytes().size(); ++i) { char ch = insn->get_raw_bytes()[i]; s += std::string(i?" ":"") + (isgraph(ch) ? std::string(1, ch) : std::string(" ")); } return Wt::WString(s); } case C_STACKDELTA: { int64_t delta = insn->get_stackDelta(); if (delta == SgAsmInstruction::INVALID_STACK_DELTA) return Wt::WString(""); std::string s = (delta >= 0 ? "+" : "") + boost::lexical_cast<std::string>(delta); return Wt::WString(s); } case C_NAME: { return Wt::WString(unparseMnemonic(insn)); } case C_ARGS: { std::string s; const RegisterDictionary *regs = ctx_.partitioner.instructionProvider().registerDictionary(); const SgAsmExpressionPtrList &operands = insn->get_operandList()->get_operands(); for (size_t i=0; i<operands.size(); ++i) s += (i?", ":"") + unparseExpression(operands[i], NULL, regs); return Wt::WString(s); } case C_COMMENT: { return Wt::WString(insn->get_comment()); } default: ASSERT_not_reachable("invalid column number"); } } return boost::any(); }
bool setData(const Wt::WModelIndex& index, const boost::any& value, int role=Wt::EditRole) { if (role == Wt::CheckStateRole && value.type() == typeid(bool)) { dbo::Transaction t(fApp->session()); const CommentPtr& o = resultRow(index.row()); o.modify()->set_deleted(boost::any_cast<bool>(value)); t.commit(); dataChanged().emit(index, this->index(index.row(), text_column)); return true; } return BaseQM::setData(index, value, Wt::EditRole); }
boost::any PlaneData::data(const Wt::WModelIndex& index, int role) const { if (role != DisplayRole) { return boost::any(); } double x, y; y = yStart_ + index.column() * yDelta_; x = xStart_ + index.row() * xDelta_; return 0.5*y; }
virtual boost::any data(const Wt::WModelIndex& index, int role = Wt::DisplayRole) const { switch (role) { case Wt::DisplayRole: if(index.column()==0) return Wt::WString(_profiles[index.row()].uuid); if(index.column()==1) return Wt::WString(_profiles[index.row()].name); default: return boost::any(); } }
Sawyer::Optional<rose_addr_t> HexDumpModel::cellAddress(const Wt::WModelIndex &idx) const { if (!idx.isValid()) return Sawyer::Nothing(); size_t column = idx.column(); size_t row = idx.row(); if (column >= bytesColumn && column < bytesColumn + bytesPerRow) return cellAddress(row, column - bytesColumn); if (column >= asciiColumn && column < asciiColumn + bytesPerRow) return cellAddress(row, column - asciiColumn); return Sawyer::Nothing(); }
Wt::cpp17::any PlaneData::data(const Wt::WModelIndex& index, Wt::ItemDataRole role) const { if (role != Wt::ItemDataRole::Display) { return WStandardItemModel::data(index, role); } double delta_x = (xEnd_ - xStart_)/(rowCount()-2); double delta_y = (yEnd_ - yStart_)/(columnCount()-2); double x = xStart_ + index.row() * delta_x; double y = yStart_ + index.column() * delta_y; return 0.2*x - 0.2*y; }
virtual boost::any data(const Wt::WModelIndex& index, int role = Wt::DisplayRole) const { switch (role) { case Wt::DisplayRole: if (index.column() == 0) return Wt::WString("Row {1}").arg(index.row()); else return Wt::WString("Item row {1}, col {2}") .arg(index.row()).arg(index.column()); default: return boost::any(); } }
boost::any SombreroData::data(const Wt::WModelIndex& index, int role) const { if (role != DisplayRole) { return boost::any(); } double delta_y = (yEnd_ - yStart_)/(nbYPts_-1); if (index.row() == 0) { // give back y-abscis if (index.column() == 0) return 0.0; return yStart_ + (index.column()-1)*delta_y; } double delta_x = (xEnd_ - xStart_)/(nbXPts_-1); if (index.column() == 0) { // give back x-abscis if (index.row() == 0) return 0.0; return xStart_ + (index.row()-1)*delta_x; } double x, y; y = yStart_ + (index.column()-1)*delta_y; x = xStart_ + (index.row()-1)*delta_x; return 4*std::sin(std::sqrt(std::pow(x,2) + std::pow(y,2))) / (std::sqrt (std::pow(x,2) + std::pow(y,2))); }
Wt::cpp17::any SombreroData::data(const Wt::WModelIndex& index, Wt::ItemDataRole role) const { if (role != Wt::ItemDataRole::Display) { return WStandardItemModel::data(index, role); } double delta_y = (yEnd_ - yStart_)/(columnCount()-2); if (index.row() == 0) { // give back y-abscis if (index.column() == 0) return 0.0; return yStart_ + (index.column()-1)*delta_y; } double delta_x = (xEnd_ - xStart_)/(rowCount()-2); if (index.column() == 0) { // give back x-abscis if (index.row() == 0) return 0.0; return xStart_ + (index.row()-1)*delta_x; } double x, y; y = yStart_ + (index.column()-1)*delta_y; x = xStart_ + (index.row()-1)*delta_x; return 4*std::sin(std::sqrt(std::pow(x,2) + std::pow(y,2))) / (std::sqrt (std::pow(x,2) + std::pow(y,2))); }
void ProfileList::doubleClicked(Wt::WModelIndex index, Wt::WMouseEvent event) { LOGDEBUG("cell double clicked:"<< boost::any_cast<Wt::WString>(tableView->model()->data(index.row(),index.column()))); tableView->select(index); db::Preset preset=((ProfileTableModel*)tableView->model())->getPresetAtIndex(index.row()); openEditDialog(preset); }
virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const { if (!parent.isValid()) return _friends.size() ; else return 0; }
virtual int columnCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const { if (!parent.isValid()) return 6; else return 0; }
virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const { if (!parent.isValid()) return rows_; else return 0; }
virtual boost::any data(const Wt::WModelIndex& index, int role = Wt::DisplayRole) const { std::string id = ids_[index.row()]; switch (role) { case Wt::DisplayRole: { if (showOffset_) { boost::local_time::time_zone_ptr tz = tz_db_.time_zone_from_region(id); Wt::WTime t = Wt::WTime(0, 0, 0) .addSecs(tz->base_utc_offset().total_seconds()); std::string result = locality(id) + " (GMT" + t.toString("+hh:mm").toUTF8() + ")"; return result; } else return locality(id); } case Wt::LevelRole: return id.substr(0, id.find('/')); case BoostTimeZoneRole: return tz_db_.time_zone_from_region(id); case PosixTimeZoneRole: return tz_db_.time_zone_from_region(id)->to_posix_string(); default: return boost::any(); } }
Wt::WFlags<Wt::ItemFlag> flags(const Wt::WModelIndex& i) const { Wt::WFlags<Wt::ItemFlag> f = ULP::BaseQM::flags(i); if (i.column() == NAME_COLUMN) { f |= Wt::ItemIsXHTMLText; } return f; }
virtual int rowCount(const Wt::WModelIndex& parent = Wt::WModelIndex()) const { RsStackMutex mtx(_mtx) ; if (!parent.isValid()) return _searchResults.size() ; else return 0; }
boost::any data(const Wt::WModelIndex& index, int role = Wt::DisplayRole) const { dbo::Transaction t(tApp->session()); const BDPtr& o = resultRow(index.row()); if (role == Wt::DisplayRole) { if (index.column() == BAN) { if (o->type() == Wt::Wc::Gather::IP) { if (IpBan::is_banned(o->value())) { return tr("tc.user.Already_banned"); } else { return tr("tc.user.New_ban"); } } else { return ""; } } else if (index.column() == USER) { return o->user()->username(); } else if (index.column() == TYPE) { return Wt::Wc::Gather::type_to_str(o->type()); } } else if (role == Wt::LinkRole) { if (index.column() == VALUE && o->type() == Wt::Wc::Gather::IP) { return tApp->path().banned_ip()->get_link(o->value()); } else if (index.column() == BAN && o->type() == Wt::Wc::Gather::IP && !IpBan::is_banned(o->value())) { tApp->path().user_view()->set_integer_value(o->user().id()); return tApp->path().new_ip_ban()->get_link(o->value()); } else if (index.column() == USER) { return tApp->path().user_view()->get_link(o->user().id()); } } return ILP::BaseQM::data(index, role); }
boost::any PointsData::data(const Wt::WModelIndex& index, int role) const { if (role == MarkerBrushColorRole) { //return WColor(rand()%256, rand()%256, rand()%256); return WColor(0, 255, 0); } else if (role != DisplayRole) { return boost::any(); } const double pi = 3.141592; double XYangle = index.row() * (8*pi/nbPts_); if (index.column() == 0) { return std::cos(XYangle); } if (index.column() == 1) { return std::sin(XYangle); } if (index.column() == 2) { return -5.0 + index.row() * (10.0/nbPts_); } return boost::any(); }
bool WModelIndex::isAncestor(const Wt::WModelIndex& i1, const Wt::WModelIndex& i2) { if (!i1.isValid()) return false; for (Wt::WModelIndex p = i1.parent(); p.isValid(); p = p.parent()) { if (p == i2) return true; } return !i2.isValid(); }
Wt::cpp17::any SpiralData::data(const Wt::WModelIndex& index, Wt::ItemDataRole role) const { if (role != Wt::ItemDataRole::Display) { return WStandardItemModel::data(index, role); } const double pi = 3.141592; double XYangle = index.row() * (8*pi/nbPts_); double heightRatio = (float)index.row() / rowCount(); double radius = 1.0 + heightRatio * 5.0; if (index.column() == 0) { return radius * std::cos(XYangle); } else if (index.column() == 1) { return radius * std::sin(XYangle); } else if (index.column() == 2) { return 5.0 - index.row() * (10.0/nbPts_); } else { return Wt::cpp17::any(); } }
int InstructionListModel::columnCount(const Wt::WModelIndex &parent) const { return parent.isValid() ? 0 : C_NCOLS; }
int InstructionListModel::rowCount(const Wt::WModelIndex &parent) const { return parent.isValid() ? 0 : insns_.size(); }
boost::any HexDumpModel::data(const Wt::WModelIndex &index, int role) const { ASSERT_require(index.isValid()); ASSERT_require(index.row() >= 0); // Why signed when a valid row is non-negative? size_t row = index.row(); ASSERT_require(row < nRows_); ASSERT_require(index.column() >= 0); // Why signed when a valid column is non-negative? size_t column = index.column(); ASSERT_require(column < endColumn); if (role == Wt::DisplayRole) { if (column == addressColumn) { rose_addr_t va = 0; if (rowAddress(row).assignTo(va)) return Wt::WString(StringUtility::addrToString(va)); return Wt::WString(""); } else if (column >= bytesColumn && column < bytesColumn + bytesPerRow) { uint8_t byte = 0; if (readByte(cellAddress(row, column-bytesColumn)).assignTo(byte) && byte!=0) { char buf[8]; sprintf(buf, "%02x", (unsigned)byte); return Wt::WString(buf); } return Wt::WString(""); } else if (column >= asciiColumn && column < asciiColumn + bytesPerRow) { uint8_t byte = 0; std::string s; if (readByte(cellAddress(row, column-asciiColumn)).assignTo(byte)) s = charToString(byte); return Wt::WString(s); } else if (column == sep1Column || column == sep2Column) { return Wt::WString(""); } else { ASSERT_not_reachable("this column needs data"); } } else if (role == Wt::ToolTipRole) { MemoryMap::ConstNodeIterator mmNode = memoryMap_->nodes().end(); rose_addr_t va = 0; if (column == addressColumn) { mmNode = rowSegment(row); va = cellAddress(row, 0).orElse(0); } else if (column >= bytesColumn && column < bytesColumn + bytesPerRow && cellAddress(row, column-bytesColumn).assignTo(va)) { mmNode = memoryMap_->at(va).findNode(); } else if (column >= asciiColumn && column < asciiColumn + bytesPerRow && cellAddress(row, column-asciiColumn).assignTo(va)) { mmNode = memoryMap_->at(va).findNode(); } if (mmNode != memoryMap_->nodes().end()) { const AddressInterval &interval = mmNode->key(); const MemoryMap::Segment &segment = mmNode->value(); std::string tip = StringUtility::htmlEscape(segment.name()); if (interval.isContaining(va)) tip += "+" + StringUtility::addrToString(va-interval.least()); return Wt::WString(tip); } } else if (role == Wt::StyleClassRole) { if (column==sep1Column || column==sep2Column || !rowAddress(row)) { return Wt::WString("hexdump_unmapped"); } else if (column >= bytesColumn && column < bytesColumn + bytesPerRow && !cellAddress(row, column-bytesColumn)) { return Wt::WString("hexdump_unmapped"); } else if (column >= asciiColumn && column < asciiColumn + bytesPerRow) { if (!cellAddress(row, column-asciiColumn)) { return Wt::WString("hexdump_unmapped"); } else if (charToString(*readByte(cellAddress(row, column-asciiColumn))).empty()) { return Wt::WString("hexdump_nochar"); } } else if (column == addressColumn) { MemoryMap::ConstNodeIterator mmIter = rowSegment(row); ASSERT_require(mmIter != memoryMap_->nodes().end()); // would have been caught above unsigned a = mmIter->value().accessibility(); std::string style; if (0!=(a & MemoryMap::READABLE)) style += "r"; if (0!=(a & MemoryMap::WRITABLE)) style += "w"; if (0!=(a & MemoryMap::EXECUTABLE)) style += "x"; if (style.empty()) style = "none"; return Wt::WString("hexdump_addr_" + style); } else if (row % 2) { return Wt::WString("hexdump_oddrow"); } else { return Wt::WString("hexdump_evenrow"); } } return boost::any(); }
int HexDumpModel::columnCount(const Wt::WModelIndex &parent) const { return parent.isValid() ? 0 : endColumn; }
boost::any data(const Wt::WModelIndex& index, int role = Wt::DisplayRole) const { dbo::Transaction t(tApp->session()); const UserPtr& o = resultRow(index.row()); if (role == Wt::DisplayRole) { if (index.column() == NUMBER_COL) { return index.row() + 1; } else if (index.column() == NAME_COLUMN) { return tr("tc.user.User_template") .arg(o->safe_username()) .arg(Gravatar::path(o)) .arg(o->online() ? tr("tc.user.Online") : ""); } else if (index.column() == CLASSIFICATION_COLUMN) { return o->classification_str(); } else if (index.column() == DRAWS_COLUMN) { return o->games_stat().draws(); } else if (index.column() == ONLINE_TIME) { return td2str(o->online_time()); } } else if (role == Wt::LinkRole) { if (index.column() == NAME_COLUMN) { return tApp->path().user_view()->get_link(o.id()); } } else if (role == Wt::StyleClassRole) { if (index.column() == NAME_COLUMN) { return "thechess-user-anchor"; } else if (index.column() == ALL_COLUMN) { return "thechess-games-all"; } else if (index.column() == WINS_COLUMN) { return "thechess-games-wins"; } else if (index.column() == FAILS_COLUMN) { return "thechess-games-fails"; } else if (index.column() == DRAWS_COLUMN) { return "thechess-games-draws"; } else if (index.column() == RATING_COLUMN) { return "thechess-games-rating"; } else if (index.column() == ONLINE_TIME || index.column() == REGISTRATION_DATE) { return "thechess-datetime"; } } t.commit(); return ULP::BaseQM::data(index, role); }