void TREE_SECIM_KERNEL::INIT_KERNEL ( QObject * parent,ADAK_SQL * database ) { Q_UNUSED ( parent ); m_secilen_check_box_column = -1; if (m_is_multi_row EQ true) { m_secilen_check_box_column = m_column_headers.size() - 1; } QVBoxLayout * vertical_layout = new QVBoxLayout(this); QTreeWidget * widget = new QTreeWidget; widget->clear(); REGISTER_TREE_WIDGET(widget); m_tree_widget->setHeaderLabels(m_column_headers); widget->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff ); setLayout(vertical_layout); resize(p_width, p_height); SET_ADAK_WINDOW_DEFAULTS(this); SET_DB_CONN ( database ); FILL_TREE_TABLE(); vertical_layout->addWidget ( m_tree_widget ); vertical_layout->addLayout ( p_h_box_layout ); SET_TREE_WIDGET_DEFAULTS(); }
void PListEditorWidget::reloadGui(void ) { QTreeWidget* tree = m_ui.plistTree; tree->clear(); QTreeWidgetItem* rootNode = NULL; if (m_currentPlist) { // Add information if (m_currentPlist->GetType() == PLIST_ARRAY) { rootNode = generateArrayItem (m_currentPlist); rootNode->setText (NameColumn, "Root"); } else if (m_currentPlist->GetType() == PLIST_DICT) { rootNode = generateDictionaryItem (m_currentPlist); rootNode->setText (NameColumn, "Root"); } } if (rootNode) tree->addTopLevelItem(rootNode); tree->expandAll(); for (int x=0; x < tree->columnCount(); ++x) tree->resizeColumnToContents(x); }
void MainWindow::on_extractBtn_clicked() { QString msg = ui->inputTxt->text(); if (msg.isEmpty()) return; isoExtract->process(msg); QTreeWidget* tree = ui->resultTree; tree->clear(); QTreeWidgetItem *parentItem = new QTreeWidgetItem(tree,QStringList(isoExtract->msgType)); QList<QTreeWidgetItem *> items; QMap<int, IsoField*> isoMsgMap = isoExtract->isoMessage; QMapIterator<int, IsoField*> i(isoMsgMap); while (i.hasNext()) { i.next(); QStringList bitmsg; bitmsg << QString("Bit %1").arg(i.key()) << i.value()->lengthType << i.value()->value; items.append(new QTreeWidgetItem((QTreeWidget*)0, bitmsg)); } parentItem->addChildren(items); tree->expandItem(parentItem); // tree->setSelectionMode(QAbstractItemView::ExtendedSelection); }
void CreateCircleDialog::loadCircle(uint32_t token) { #ifdef DEBUG_CREATE_CIRCLE_DIALOG std::cerr << "CreateCircleDialog::loadCircle(" << token << ")"; std::cerr << std::endl; #endif QTreeWidget *tree = ui.treeWidget_membership; if (mClearList) tree->clear(); std::vector<RsGxsCircleGroup> groups; if (!rsGxsCircles->getGroupData(token, groups)) { std::cerr << "CreateCircleDialog::loadCircle() Error getting GroupData"; std::cerr << std::endl; return; } if (groups.size() != 1) { std::cerr << "CreateCircleDialog::loadCircle() Error Group.size() != 1"; std::cerr << std::endl; return; } mCircleGroup = groups[0]; #ifdef DEBUG_CREATE_CIRCLE_DIALOG std::cerr << "CreateCircleDialog::loadCircle() LoadedGroup.meta: " << mCircleGroup.mMeta << std::endl; #endif updateCircleGUI(); }
void VVimIndicator::updateMarksTree(QWidget *p_widget) { QTreeWidget *markTree = dynamic_cast<QTreeWidget *>(p_widget); if (!m_vim) { markTree->clear(); return; } const QMap<QChar, VVim::Mark> &marks = m_vim->getMarks().getMarks(); fillTreeItemsWithMarks(markTree, marks); }
void VVimIndicator::updateRegistersTree(QWidget *p_widget) { QTreeWidget *regTree = dynamic_cast<QTreeWidget *>(p_widget); if (!m_vim) { regTree->clear(); return; } const QMap<QChar, VVim::Register> ®s = m_vim->getRegisters(); fillTreeItemsWithRegisters(regTree, regs); }
void ImporterWizard::load(ObjImporter::SceneInfo& si) { QTreeWidget* t = m_ui->tree; t->clear(); QList<QTreeWidgetItem*> items; m_objects = new QTreeWidgetItem(t, QStringList() << "Objects"); m_models = new QTreeWidgetItem(t, QStringList() << "Models"); m_animations = new QTreeWidgetItem(t, QStringList() << "Animations"); m_cameras = new QTreeWidgetItem(t, QStringList() << "Cameras"); m_lights = new QTreeWidgetItem(t, QStringList() << "Lights"); m_materials = new QTreeWidgetItem(t, QStringList() << "Materials"); m_textures = new QTreeWidgetItem(t, QStringList() << "Textures"); items << m_objects << m_models << m_animations << m_cameras << m_lights << m_materials << m_textures; t->addTopLevelItems(items); QMap<QString, QString>::const_iterator it; for (it = si.objects.begin(); it != si.objects.end(); ++it) { newItem(m_objects, it); newItem(m_models, it); } for (it = si.animations.begin(); it != si.animations.end(); ++it) { QTreeWidgetItem* x = newItem(m_animations, it); x->setCheckState(0, Qt::Unchecked); x->setDisabled(true); } for (it = si.cameras.begin(); it != si.cameras.end(); ++it) { QTreeWidgetItem* x = newItem(m_animations, it); x->setCheckState(0, Qt::Unchecked); x->setDisabled(true); } for (it = si.lights.begin(); it != si.lights.end(); ++it) { QTreeWidgetItem* x = newItem(m_lights, it); x->setCheckState(0, Qt::Unchecked); x->setDisabled(true); } for (it = si.materials.begin(); it != si.materials.end(); ++it) { newItem(m_materials, it); } for (it = si.textures.begin(); it != si.textures.end(); ++it) { newItem(m_textures, it); } foreach (QTreeWidgetItem* i, items) { i->setFirstColumnSpanned(true); i->setExpanded(true); if (i->childCount() == 0) i->setDisabled(true); }
void VAttachmentList::sortItems() { const QVector<VAttachment> &attas = m_file->getAttachments(); if (attas.size() < 2) { return; } VSortDialog dialog(tr("Sort Attachments"), tr("Sort attachments of note <span style=\"%1\">%2</span> " "in the configuration file.") .arg(g_config->c_dataTextStyle) .arg(m_file->getName()), g_mainWin); QTreeWidget *tree = dialog.getTreeWidget(); tree->clear(); tree->setColumnCount(1); QStringList headers(tr("Name")); tree->setHeaderLabels(headers); for (int i = 0; i < attas.size(); ++i) { QTreeWidgetItem *item = new QTreeWidgetItem(tree, QStringList(attas[i].m_name)); item->setData(0, Qt::UserRole, i); } dialog.treeUpdated(); if (dialog.exec()) { QVector<QVariant> data = dialog.getSortedData(); Q_ASSERT(data.size() == attas.size()); QVector<int> sortedIdx(data.size(), -1); for (int i = 0; i < data.size(); ++i) { sortedIdx[i] = data[i].toInt(); } if (!m_file->sortAttachments(sortedIdx)) { VUtils::showMessage(QMessageBox::Warning, tr("Warning"), tr("Fail to sort attachments of note <span style=\"%1\">%2</span>.") .arg(g_config->c_dataTextStyle) .arg(m_file->getName()), "", QMessageBox::Ok, QMessageBox::Ok, this); } } }
dmz::V8Value dmz::JsModuleUiV8QtBasic::_tree_clear (const v8::Arguments &Args) { v8::HandleScope scope; V8Value result = v8::Undefined (); JsModuleUiV8QtBasic *self = _to_self (Args); if (self) { QTreeWidget *tree = self->v8_to_qobject<QTreeWidget> (Args.This ()); if (tree) { tree->clear (); } } return scope.Close (result); }
void Box::updateContainerTree(QTreeWidget & qt){ qt.clear(); QTreeWidgetItem* item=new QTreeWidgetItem(); item->setIcon(0, QIcon(QString::fromUtf8(":/ico/box.png"))); item->setText(0, (std::string("Box ")+to_string(this)).c_str()); QTreeWidgetItem* itemWidth=new QTreeWidgetItem(item); itemWidth->setText(0, (std::string("Width : ")+to_string(getWidth())).c_str()); itemWidth->setIcon(0, QIcon(QString::fromUtf8(":/ico/axis.png"))); QTreeWidgetItem* itemHeight=new QTreeWidgetItem(item); itemHeight->setText(0, (std::string("Height : ")+to_string(getHeight())).c_str()); itemHeight->setIcon(0, QIcon(QString::fromUtf8(":/ico/axis.png"))); QTreeWidgetItem* itemDepth=new QTreeWidgetItem(item); itemDepth->setText(0, (std::string("Depth : ")+to_string(getDepth())).c_str()); itemDepth->setIcon(0, QIcon(QString::fromUtf8(":/ico/axis.png"))); QTreeWidgetItem* itemNCells=new QTreeWidgetItem(item); itemNCells->setText(0, (std::string("Cells : ")+to_string(cells.size())).c_str()); itemNCells->setIcon(0, QIcon(QString::fromUtf8(":/ico/cells.gif"))); qt.insertTopLevelItem(0,item); }
QWidget *PluginAboutPage::createPage(QWidget *parent) { if (!m_Spec) return new QWidget(parent); QWidget *w = new QWidget(parent); QVBoxLayout *layout = new QVBoxLayout(w); layout->setSpacing(0); layout->setMargin(0); QTreeWidget *tree = new QTreeWidget(w); tree->header()->hide(); layout->addWidget(tree); QLabel *lbl = new QLabel(w); lbl->setText(tkTr(Trans::Constants::DESCRIPTION)); layout->addWidget(lbl); QTextBrowser *tb = new QTextBrowser(w); layout->addWidget(tb); // popuplate tree tree->clear(); QFont f; f.setBold(true); QTreeWidgetItem *i = 0; i = new QTreeWidgetItem(tree, QStringList() << tkTr(Trans::Constants::INFORMATION)); i->setFont(0,f); new QTreeWidgetItem(i, QStringList() << tkTr(Trans::Constants::VERSION) + " " + m_Spec->version() ); if (Utils::isDebugWithoutInstallCompilation()) { new QTreeWidgetItem( i, QStringList() << tkTr(Trans::Constants::BUILD_DEBUG) + " - no install"); } else { new QTreeWidgetItem( i, QStringList() << tkTr(Trans::Constants::BUILD_RELEASE) ); } new QTreeWidgetItem(i, QStringList() << "License: " + m_Spec->license()); tree->expandAll(); // populate textbrowser tb->setPlainText(m_Spec->description()); return w; }
// Slot. void TransitionEditorWindow::updateEquationsTree() { if (model_ == nullptr) return; QTreeWidget* tree = ui_->equationsTree; tree->clear(); for (const auto& group : model_->equationGroupList()) { std::unique_ptr<QTreeWidgetItem> item(new QTreeWidgetItem); item->setText(0, group.name.c_str()); item->setFlags(Qt::ItemIsEnabled); for (const auto& equation : group.equationList) { std::unique_ptr<QTreeWidgetItem> childItem(new QTreeWidgetItem); childItem->setText(0, equation->name().c_str()); childItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); item->addChild(childItem.release()); } tree->addTopLevelItem(item.release()); } tree->expandAll(); }
void CreateLobbyDialog::setShareList(const std::list<std::string>& friend_list) { if (!rsPeers) { /* not ready yet! */ return; } std::list<std::string> peers; std::list<std::string>::iterator it; mShareList.clear() ; rsPeers->getFriendList(peers); /* get a link to the table */ QTreeWidget *shareWidget = ui->keyShareList; QList<QTreeWidgetItem *> items; for(it = peers.begin(); it != peers.end(); it++) { RsPeerDetails detail; if (!rsPeers->getPeerDetails(*it, detail)) { continue; /* BAD */ } /* make a widget per friend */ QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0); item -> setText(0, PeerDefs::nameWithLocation(detail)); if (detail.state & RS_PEER_STATE_CONNECTED) { item -> setTextColor(0,(Qt::darkBlue)); } item -> setSizeHint(0, QSize( 17,17 ) ); item -> setText(1, QString::fromStdString(detail.id)); item -> setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled); item -> setCheckState(0, Qt::Unchecked); for(std::list<std::string>::const_iterator it2(friend_list.begin());it2!=friend_list.end();++it2) if(*it == *it2) { item -> setCheckState(0, Qt::Checked); mShareList.push_back(*it) ; break ; } /* add to the list */ items.append(item); } /* remove old items */ shareWidget->clear(); shareWidget->setColumnCount(1); /* add the items in! */ shareWidget->insertTopLevelItems(0, items); shareWidget->update(); /* update display */ }
/* get the list of peers from the RsIface. */ void PeersDialog::insertPeers() { std::list<std::string> peers; std::list<std::string>::iterator it; if (!rsPeers) { /* not ready yet! */ return; } rsPeers->getFriendList(peers); /* get a link to the table */ QTreeWidget *peerWidget = ui.peertreeWidget; QTreeWidgetItem *oldSelect = getCurrentPeer(); QTreeWidgetItem *newSelect = NULL; time_t now = time(NULL); std::string oldId; if (oldSelect) { oldId = (oldSelect -> text(7)).toStdString(); } /* remove old items ??? */ peerWidget->clear(); peerWidget->setColumnCount(3); QList<QTreeWidgetItem *> items; for(it = peers.begin(); it != peers.end(); it++) { RsPeerDetails detail; if (!rsPeers->getPeerDetails(*it, detail)) { continue; /* BAD */ } /* make a widget per friend */ QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0); /* add all the labels */ /* First 5 (1-5) Key Items */ /* () Status Icon */ item -> setText(0, ""); /* (0) Status */ QString status = QString::fromStdString(RsPeerStateString(detail.state)); /* Append additional status info from status service */ StatusInfo statusInfo; if ((rsStatus) && (rsStatus->getStatus(*it, statusInfo))) { status.append(QString::fromStdString("/" + RsStatusString(statusInfo.status))); } //item -> setText(1, status); item -> setText(1, QString::fromStdString(detail.autoconnect)); item -> setTextAlignment(1, Qt::AlignCenter | Qt::AlignVCenter ); /* (1) Person */ item -> setText(2, QString::fromStdString(detail.name)); /* (2) Auto Connect */ //item -> setText(3, QString::fromStdString(detail.autoconnect)); item -> setText(3, status); /* (3) Trust Level */ item -> setText(4,QString::fromStdString( RsPeerTrustString(detail.trustLvl))); /* (4) Peer Address */ { std::ostringstream out; out << detail.localAddr << ":"; out << detail.localPort << "/"; out << detail.extAddr << ":"; out << detail.extPort; item -> setText(5, QString::fromStdString(out.str())); } /* less important ones */ /* () Last Contact */ item -> setText(6,QString::fromStdString( RsPeerLastConnectString(now - detail.lastConnect))); /* () Org */ //item -> setText(7, QString::fromStdString(detail.org)); /* () Location */ //item -> setText(8, QString::fromStdString(detail.location)); /* () Email */ //item -> setText(9, QString::fromStdString(detail.email)); /* Hidden ones: RsCertId */ { item -> setText(7, QString::fromStdString(detail.id)); if ((oldSelect) && (oldId == detail.id)) { newSelect = item; } } /* () AuthCode */ // item -> setText(11, QString::fromStdString(detail.authcode)); /* change background */ int i; if (detail.state & RS_PEER_STATE_CONNECTED) { /* bright green */ for(i = 1; i < 8; i++) { // CsoLer: I uncommented the color because it's really confortable // to be able to see at some distance that people are connected. // The blue/gray icons need a close look indeed. //item -> setBackground(i,QBrush(Qt::green)) item -> setTextColor(i,(Qt::darkBlue)); QFont font ; font.setBold(true); item -> setFont(i,font); item -> setIcon(0,(QIcon(IMAGE_ONLINE))); } } else if (detail.state & RS_PEER_STATE_UNREACHABLE) { /* bright green */ for(i = 1; i < 8; i++) { item -> setBackground(i,QBrush(Qt::red)); item -> setIcon(0,(QIcon(IMAGE_OFFLINE))); } } else if (detail.state & RS_PEER_STATE_ONLINE) { /* bright green */ for(i = 1; i < 8; i++) { //item -> setBackground(i,QBrush(Qt::cyan)); item -> setTextColor(i,(Qt::darkCyan)); QFont font ; font.setBold(true); item -> setFont(i,font); item -> setIcon(0,(QIcon(IMAGE_AVAIBLE))); } } else { if (now - detail.lastConnect < 3600) { for(i = 1; i < 8; i++) { //item -> setBackground(i,QBrush(Qt::lightGray)); item -> setIcon(0,(QIcon(IMAGE_OFFLINE))); } } else { for(i = 1; i < 8; i++) { //item -> setBackground(i,QBrush(Qt::gray)); item -> setIcon(0,(QIcon(IMAGE_OFFLINE2))); } } } /* add to the list */ items.append(item); } /* add the items in! */ peerWidget->insertTopLevelItems(0, items); if (newSelect) { peerWidget->setCurrentItem(newSelect); } peerWidget->update(); /* update display */ }
void IdDialog::insertIdList(uint32_t token) { QTreeWidget *tree = ui.treeWidget_IdList; tree->clear(); std::list<std::string> ids; std::list<std::string>::iterator it; bool acceptAll = ui.radioButton_ListAll->isChecked(); bool acceptPseudo = ui.radioButton_ListPseudo->isChecked(); bool acceptYourself = ui.radioButton_ListYourself->isChecked(); bool acceptFriends = ui.radioButton_ListFriends->isChecked(); bool acceptOthers = ui.radioButton_ListOthers->isChecked(); //rsIdentity->getIdentityList(ids); //for(it = ids.begin(); it != ids.end(); it++) //{ RsIdGroup data; while(rsIdentity->getGroupData(token, data)) { /* do filtering */ bool ok = false; if (acceptAll) { ok = true; } else if (data.mIdType & RSID_TYPE_PSEUDONYM) { if (acceptPseudo) { ok = true; } if ((data.mIdType & RSID_RELATION_YOURSELF) && (acceptYourself)) { ok = true; } } else { if (data.mIdType & RSID_RELATION_YOURSELF) { if (acceptYourself) { ok = true; } } else if (data.mIdType & (RSID_RELATION_FRIEND | RSID_RELATION_FOF)) { if (acceptFriends) { ok = true; } } else { if (acceptOthers) { ok = true; } } } if (!ok) { continue; } QTreeWidgetItem *item = new QTreeWidgetItem(); //item->setText(RSID_COL_NICKNAME, QString::fromStdString(data.mNickname)); //item->setText(RSID_COL_KEYID, QString::fromStdString(data.mKeyId)); item->setText(RSID_COL_NICKNAME, QString::fromStdString(data.mMeta.mGroupName)); item->setText(RSID_COL_KEYID, QString::fromStdString(data.mMeta.mGroupId)); item->setText(RSID_COL_IDTYPE, QString::fromStdString(rsIdTypeToString(data.mIdType))); tree->addTopLevelItem(item); } // fix up buttons. updateSelection(); }
/* get the list of Links from the RsRanks. */ void LinksDialog::updateLinks() { std::list<std::string> rids; std::list<std::string>::iterator rit; std::list<RsRankComment>::iterator cit; #ifdef LINKS_DEBUG std::cerr << "LinksDialog::updateLinks()" << std::endl; #endif /* Work out the number/entries to show */ uint32_t count = rsRanks->getRankingsCount(); uint32_t start; uint32_t entries = ENTRIES_PER_BLOCK; if (count < entries) { entries = count; } if (mStart == -1) { /* backwards */ start = count-entries; } else { start = mStart; if (start + entries > count) { start = count - entries; } } /* get a link to the table */ QTreeWidget *linkWidget = ui.linkTreeWidget; QList<QTreeWidgetItem *> items; rsRanks->getRankings(start, entries, rids); float maxRank = rsRanks->getMaxRank(); for(rit = rids.begin(); rit != rids.end(); rit++) { RsRankDetails detail; if (!rsRanks->getRankDetails(*rit, detail)) { continue; } /* create items */ QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0); /* (0) Title */ { item -> setText(0, QString::fromStdWString(detail.title)); item -> setSizeHint(0, QSize( 20,20 ) ); /* Bold and bigger */ /*QFont font = item->font(0); font.setBold(true); font.setPointSize(font.pointSize() + 2); item->setFont(0, font);*/ } /* (1) Rank */ { std::ostringstream out; out << 100 * (detail.rank / (maxRank + 0.01)); item -> setText(1, QString::fromStdString(out.str())); item -> setSizeHint(1, QSize( 20,20 ) ); /* Bold and bigger */ /*QFont font = item->font(1); font.setBold(true); font.setPointSize(font.pointSize() + 2); item->setFont(1, font);*/ } /* (2) Link */ { item -> setText(2, QString::fromStdWString(detail.link)); item -> setSizeHint(2, QSize( 20,20 ) ); /* Bold and bigger */ /*QFont font = item->font(2); font.setBold(true); font.setPointSize(font.pointSize() + 2); item->setFont(2, font);*/ } /* (3) Date */ /*{ QDateTime qtime; qtime.setTime_t(it->lastPost); QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss"); item -> setText(3, timestamp); }*/ /* (4) rid */ item -> setText(4, QString::fromStdString(detail.rid)); /* add children */ int i = 0; for(cit = detail.comments.begin(); cit != detail.comments.end(); cit++, i++) { /* create items */ QTreeWidgetItem *child = new QTreeWidgetItem((QTreeWidget*)0); QString commentText; QString peerScore; if (cit->score > 1) { peerScore = "[+2] "; child -> setIcon(0,(QIcon(IMAGE_GREAT))); item -> setIcon(0,(QIcon(IMAGE_GREAT))); //peerScore = "[+2 Great Link] "; } else if (cit->score == 1) { peerScore = "[+1] "; child -> setIcon(0,(QIcon(IMAGE_GOOD))); item -> setIcon(0,(QIcon(IMAGE_GOOD))); //peerScore = "[+1 Good] "; } else if (cit->score == 0) { peerScore = "[+0] "; child -> setIcon(0,(QIcon(IMAGE_OK))); item -> setIcon(0,(QIcon(IMAGE_OK))); //peerScore = "[+0 Okay] "; } else if (cit->score == -1) { peerScore = "[-1] "; child -> setIcon(0,(QIcon(IMAGE_SUX))); item -> setIcon(0,(QIcon(IMAGE_SUX))); //peerScore = "[-1 Not Worth It] "; } else //if (cit->score < -1) { peerScore = "[-2 BAD] "; child -> setIcon(0,(QIcon(IMAGE_BADLINK))); item -> setIcon(0,(QIcon(IMAGE_BADLINK))); //peerScore = "[-2 BAD Link] "; } /* (0) Comment */ if (cit->comment != L"") { commentText = peerScore + QString::fromStdWString(cit->comment); } else { commentText = peerScore + "No Comment"; } child -> setText(0, commentText); /* (2) Peer / Date */ { QDateTime qtime; qtime.setTime_t(cit->timestamp); QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss"); QString peerLabel = QString::fromStdString(mPeers->getPeerName(cit->id)); if (peerLabel == "") { peerLabel = "<"; peerLabel += QString::fromStdString(cit->id); peerLabel += ">"; } peerLabel += " "; peerLabel += timestamp; child -> setText(2, peerLabel); } /* (4) Id */ child -> setText(4, QString::fromStdString(cit->id)); if (i % 2 == 1) { /* set to light gray background */ child->setBackground(0,QBrush(Qt::lightGray)); child->setBackground(1,QBrush(Qt::lightGray)); child->setBackground(2,QBrush(Qt::lightGray)); } /* push to items */ item->addChild(child); } /* add to the list */ items.append(item); } /* remove old items */ linkWidget->clear(); linkWidget->setColumnCount(3); /* add the items in! */ linkWidget->insertTopLevelItems(0, items); linkWidget->update(); /* update display */ }
void DhtWindow::updateRelays() { QTreeWidget *relayTreeWidget = ui->relayTreeWidget; std::list<RsDhtRelayEnd> relayEnds; std::list<RsDhtRelayProxy> relayProxies; std::list<RsDhtRelayEnd>::iterator reit; std::list<RsDhtRelayProxy>::iterator rpit; rsDht->getRelayEnds(relayEnds); rsDht->getRelayProxies(relayProxies); #define RTW_COL_TYPE 0 #define RTW_COL_SRC 1 #define RTW_COL_PROXY 2 #define RTW_COL_DEST 3 #define RTW_COL_CLASS 4 #define RTW_COL_AGE 5 #define RTW_COL_LASTSEND 6 #define RTW_COL_BANDWIDTH 7 relayTreeWidget->clear(); time_t now = time(NULL); for(reit = relayEnds.begin(); reit != relayEnds.end(); reit++) { /* find the entry */ QTreeWidgetItem *item = new QTreeWidgetItem(); relayTreeWidget->addTopLevelItem(item); std::ostringstream typestr; typestr << "RELAY END"; std::ostringstream srcstr; srcstr << "Yourself"; std::ostringstream proxystr; proxystr << reit->mProxyAddr; std::ostringstream deststr; deststr << reit->mRemoteAddr; std::ostringstream agestr; agestr << "unknown"; std::ostringstream lastsendstr; lastsendstr << "unknown"; std::ostringstream bandwidthstr; bandwidthstr << "unlimited"; std::ostringstream classstr; classstr << "Own Relay"; //std::ostringstream dhtupdatestr; //dhtupdatestr << now - status.mDhtUpdateTS << " secs ago"; item -> setData(RTW_COL_TYPE, Qt::DisplayRole, QString::fromStdString(typestr.str())); item -> setData(RTW_COL_SRC, Qt::DisplayRole, QString::fromStdString(srcstr.str())); item -> setData(RTW_COL_PROXY, Qt::DisplayRole, QString::fromStdString(proxystr.str())); item -> setData(RTW_COL_DEST, Qt::DisplayRole, QString::fromStdString(deststr.str())); item -> setData(RTW_COL_CLASS, Qt::DisplayRole, QString::fromStdString(classstr.str())); item -> setData(RTW_COL_AGE, Qt::DisplayRole, QString::fromStdString(agestr.str())); item -> setData(RTW_COL_LASTSEND, Qt::DisplayRole, QString::fromStdString(lastsendstr.str())); item -> setData(RTW_COL_BANDWIDTH, Qt::DisplayRole, QString::fromStdString(bandwidthstr.str())); } for(rpit = relayProxies.begin(); rpit != relayProxies.end(); rpit++) { /* find the entry */ QTreeWidgetItem *item = new QTreeWidgetItem(); relayTreeWidget->addTopLevelItem(item); std::ostringstream typestr; typestr << "RELAY PROXY"; std::ostringstream srcstr; srcstr << rpit->mSrcAddr; std::ostringstream proxystr; proxystr << "Yourself"; std::ostringstream deststr; deststr << rpit->mDestAddr; std::ostringstream agestr; agestr << now - rpit->mCreateTS << " secs ago"; std::ostringstream lastsendstr; lastsendstr << now - rpit->mLastTS << " secs ago"; std::ostringstream bandwidthstr; bandwidthstr << rpit->mBandwidth << "B/s"; std::ostringstream classstr; classstr << rpit->mRelayClass; item -> setData(RTW_COL_TYPE, Qt::DisplayRole, QString::fromStdString(typestr.str())); item -> setData(RTW_COL_SRC, Qt::DisplayRole, QString::fromStdString(srcstr.str())); item -> setData(RTW_COL_PROXY, Qt::DisplayRole, QString::fromStdString(proxystr.str())); item -> setData(RTW_COL_DEST, Qt::DisplayRole, QString::fromStdString(deststr.str())); item -> setData(RTW_COL_CLASS, Qt::DisplayRole, QString::fromStdString(classstr.str())); item -> setData(RTW_COL_AGE, Qt::DisplayRole, QString::fromStdString(agestr.str())); item -> setData(RTW_COL_LASTSEND, Qt::DisplayRole, QString::fromStdString(lastsendstr.str())); item -> setData(RTW_COL_BANDWIDTH, Qt::DisplayRole, QString::fromStdString(bandwidthstr.str())); } }
void DhtWindow::updateDhtPeers() { /* Hackish display of all Dht peers, should be split into buckets (as children) */ //QString status = QString::fromStdString(mPeerNet->getDhtStatusString()); //ui->dhtLabel->setText(status); std::list<RsDhtPeer> allpeers; std::list<RsDhtPeer>::iterator it; int i; for(i = 0; i < 160; i++) { std::list<RsDhtPeer> peers; rsDht->getDhtPeers(i, peers); for(it = peers.begin(); it != peers.end(); it++) { allpeers.push_back(*it); } } QTreeWidget *dhtTreeWidget = ui->dhtTreeWidget; dhtTreeWidget->clear(); time_t now = time(NULL); for(it = allpeers.begin(); it != allpeers.end(); it++) { /* find the entry */ QTreeWidgetItem *dht_item = NULL; /* insert */ dht_item = new DhtTreeWidgetItem(); int dist = it->mBucket; std::ostringstream buckstr; buckstr << dist; std::ostringstream ipstr; ipstr << it->mAddr; std::ostringstream idstr; idstr << it->mDhtId; std::ostringstream flagsstr; flagsstr << "0x" << std::hex << std::setfill('0') << it->mPeerFlags; flagsstr << " EX:0x" << std::hex << std::setfill('0') << it->mExtraFlags; std::ostringstream foundstr; foundstr << now - it->mFoundTime << " secs ago"; std::ostringstream lastsendstr; if (it->mLastSendTime == 0) { lastsendstr << "never"; } else { lastsendstr << now - it->mLastSendTime << " secs ago"; } std::ostringstream lastrecvstr; lastrecvstr << now - it->mLastRecvTime << " secs ago"; dht_item -> setData(DTW_COL_BUCKET, Qt::DisplayRole, QString::fromStdString(buckstr.str())); dht_item -> setData(DTW_COL_IPADDR, Qt::DisplayRole, QString::fromStdString(ipstr.str())); dht_item -> setData(DTW_COL_PEERID, Qt::DisplayRole, QString::fromStdString(idstr.str())); dht_item -> setData(DTW_COL_FLAGS, Qt::DisplayRole, QString::fromStdString(flagsstr.str())); dht_item -> setData(DTW_COL_FOUND, Qt::DisplayRole, QString::fromStdString(foundstr.str())); dht_item -> setData(DTW_COL_SEND, Qt::DisplayRole, QString::fromStdString(lastsendstr.str())); dht_item -> setData(DTW_COL_RECV, Qt::DisplayRole, QString::fromStdString(lastrecvstr.str())); dhtTreeWidget->addTopLevelItem(dht_item); } }
// Update the tree widget to show datasets, pipelines and views void HandleViewList::updateViewTree() { QTreeWidget* viewTree = m_viewListDock->m_viewTree; viewTree->clear(); // Get the active window No. We will select it in the tree widget int activeWinNo = m_viewManager->getActiveViewWindowNo(); QTreeWidgetItem * currentItem = 0; int i,j,k; QList<QTreeWidgetItem *> datasets; // Traverse all original dataset for ( i=0; i<m_pipelineManager->getOrigDatasetsCount(); i++) { Data* data = m_pipelineManager->getOrigDataset(i); if ( data ) { // We assume that all data is OkcData OkcData* okcdata = dynamic_cast<OkcData*>(data); DatasetItem* newDatasetItem = new DatasetItem( (QTreeWidget*)0, okcdata->filename, data); // Search all pipelines to find those associated with this data QList<QTreeWidgetItem *> pipelines; for ( j=0; j<m_pipelineManager->getPipelinesCount(); j++ ) { Pipeline* pl = m_pipelineManager->getPipeline(j); if (!pl) { // If this is a null pointer, the pipeline has been removed continue; } int pipelineID = pl->getPipelineID(); if ( pl->getOrigDataset()==data ) { PipelineItem* newPipelineItem = 0; // If this pipeline is associated with this data switch ( pl->getPipelineType() ) { case XmdvTool::PLTYPE_FLATNORMAL : newPipelineItem = new PipelineItem( (QTreeWidget*)0, "Flat Data Mode Pipeline", pl ); break; case XmdvTool::PLTYPE_SBB : newPipelineItem = new PipelineItem( (QTreeWidget*)0, "Hierarchical Data Mode Pipeline", pl ); break; case XmdvTool::PLTYPE_DIMR : newPipelineItem = new PipelineItem( (QTreeWidget*)0, "Hierarchical Dimension Mode Pipeline", pl ); break; } QList<QTreeWidgetItem *> views; int viewNo = 0; for ( k=0; k<m_viewManager->getViewWindowsCount(); k++ ) { ViewWindow* win = m_viewManager->getViewWindow(k); if ( !win ){ // If this is a null pointer, the view has been removed continue; } if (win && win->getPipelineID()==pipelineID ) { ViewItem* newViewItem = new ViewItem((QTreeWidget*)0, ViewWindow::createViewName( win->getOrder() ), win ); viewNo++; views.append( newViewItem); // If this is the active view, we record it to set as the current item // after we finish initializing the tree widget if ( k == activeWinNo ) { currentItem = (QTreeWidgetItem*)newViewItem; } } } // Add the view nodes as the children of the pipeline node newPipelineItem->addChildren (views); pipelines.append( newPipelineItem ); } } // Add the pipeline nodes as the children of the dataset node newDatasetItem->addChildren(pipelines); datasets.append( newDatasetItem ); } } viewTree->insertTopLevelItems(0, datasets); viewTree->setCurrentItem(currentItem, 0, QItemSelectionModel::SelectCurrent); viewTree->expandAll (); }
void DhtWindow::updateNetPeers() { QTreeWidget *peerTreeWidget = ui->peerTreeWidget; std::list<std::string> peerIds; std::list<std::string>::iterator it; rsDht->getNetPeerList(peerIds); /* collate peer stats */ int nPeers = peerIds.size(); // from DHT peers int nOnlinePeers = 0; int nUnreachablePeers = 0; int nOfflinePeers = 0; // Connect States. int nDisconnPeers = 0; int nDirectPeers = 0; int nProxyPeers = 0; int nRelayPeers = 0; #define PTW_COL_RSNAME 0 #define PTW_COL_PEERID 1 #define PTW_COL_DHT_STATUS 2 #define PTW_COL_PEER_CONNECTLOGIC 3 #define PTW_COL_PEER_CONNECT_STATUS 4 #define PTW_COL_PEER_CONNECT_MODE 5 #define PTW_COL_PEER_REQ_STATUS 6 #define PTW_COL_PEER_CB_MSG 7 #define PTW_COL_RSID 8 #if 0 /* clear old entries */ int itemCount = peerTreeWidget->topLevelItemCount(); for (int nIndex = 0; nIndex < itemCount;) { QTreeWidgetItem *tmp_item = peerTreeWidget->topLevelItem(nIndex); std::string tmpid = tmp_item->data(PTW_COL_PEERID, Qt::DisplayRole).toString().toStdString(); if (peerIds.end() == std::find(peerIds.begin(), peerIds.end(), tmpid)) { peerTreeWidget->removeItemWidget(tmp_item, 0); /* remove it! */ itemCount--; } else { nIndex++; } } #endif peerTreeWidget->clear(); for(it = peerIds.begin(); it != peerIds.end(); it++) { /* find the entry */ QTreeWidgetItem *peer_item = NULL; #if 0 QString qpeerid = QString::fromStdString(*it); int itemCount = peerTreeWidget->topLevelItemCount(); for (int nIndex = 0; nIndex < itemCount; nIndex++) { QTreeWidgetItem *tmp_item = peerTreeWidget->topLevelItem(nIndex); if (tmp_item->data(PTW_COL_PEERID, Qt::DisplayRole).toString() == qpeerid) { peer_item = tmp_item; break; } } #endif if (!peer_item) { /* insert */ peer_item = new QTreeWidgetItem(); peerTreeWidget->addTopLevelItem(peer_item); } /* update the data */ RsDhtNetPeer status; rsDht->getNetPeerStatus(*it, status); std::string name = rsPeers->getPeerName(*it); peer_item -> setData(PTW_COL_PEERID, Qt::DisplayRole, QString::fromStdString(status.mDhtId)); peer_item -> setData(PTW_COL_RSNAME, Qt::DisplayRole, QString::fromStdString(name)); peer_item -> setData(PTW_COL_RSID, Qt::DisplayRole, QString::fromStdString(status.mRsId)); std::ostringstream dhtstate; switch(status.mDhtState) { default: case RSDHT_PEERDHT_NOT_ACTIVE: dhtstate << "Not Active (Maybe Connected!)"; break; case RSDHT_PEERDHT_SEARCHING: dhtstate << "Searching"; break; case RSDHT_PEERDHT_FAILURE: dhtstate << "Failed"; break; case RSDHT_PEERDHT_OFFLINE: dhtstate << "offline"; nOfflinePeers++; break; case RSDHT_PEERDHT_UNREACHABLE: dhtstate << "Unreachable"; nUnreachablePeers++; break; case RSDHT_PEERDHT_ONLINE: dhtstate << "ONLINE"; nOnlinePeers++; break; } peer_item -> setData(PTW_COL_DHT_STATUS, Qt::DisplayRole, QString::fromStdString(dhtstate.str())); // NOW CONNECT STATE std::ostringstream cpmstr; switch(status.mPeerConnectMode) { case RSDHT_TOU_MODE_DIRECT: cpmstr << "Direct"; break; case RSDHT_TOU_MODE_PROXY: cpmstr << "Proxy VIA "; cpmstr << status.mPeerConnectProxyId; break; case RSDHT_TOU_MODE_RELAY: cpmstr << "Relay VIA "; cpmstr << status.mPeerConnectProxyId; break; default: cpmstr << "None"; break; } std::ostringstream cpsstr; switch(status.mPeerConnectState) { default: case RSDHT_PEERCONN_DISCONNECTED: cpsstr << "Disconnected"; nDisconnPeers++; break; case RSDHT_PEERCONN_UDP_STARTED: cpsstr << "Udp Started"; break; case RSDHT_PEERCONN_CONNECTED: { cpsstr << "Connected"; break; switch(status.mPeerConnectMode) { default: case RSDHT_TOU_MODE_DIRECT: nDirectPeers++; break; case RSDHT_TOU_MODE_PROXY: nProxyPeers++; break; case RSDHT_TOU_MODE_RELAY: nRelayPeers++; break; } } break; } peer_item -> setData(PTW_COL_PEER_CONNECT_STATUS, Qt::DisplayRole, QString::fromStdString(cpsstr.str())); if (status.mPeerConnectState == RSDHT_PEERCONN_DISCONNECTED) { peer_item -> setData(PTW_COL_PEER_CONNECT_MODE, Qt::DisplayRole, ""); } else { peer_item -> setData(PTW_COL_PEER_CONNECT_MODE, Qt::DisplayRole, QString::fromStdString(cpmstr.str())); } // NOW REQ STATE. std::ostringstream reqstr; if (status.mExclusiveProxyLock) { reqstr << "(E) "; } switch(status.mPeerReqState) { case RSDHT_PEERREQ_RUNNING: reqstr << "Request Active"; break; case RSDHT_PEERREQ_STOPPED: reqstr << "No Request"; break; default: reqstr << "Unknown"; break; } peer_item -> setData(PTW_COL_PEER_REQ_STATUS, Qt::DisplayRole, QString::fromStdString(reqstr.str())); peer_item -> setData(PTW_COL_PEER_CB_MSG, Qt::DisplayRole, QString::fromStdString(status.mCbPeerMsg)); peer_item -> setData(PTW_COL_PEER_CONNECTLOGIC, Qt::DisplayRole, QString::fromStdString(status.mConnectState)); } std::ostringstream connstr; connstr << "#Peers: " << nPeers; connstr << " DHT: (#off:" << nOfflinePeers; connstr << ",unreach:" << nUnreachablePeers; connstr << ",online:" << nOnlinePeers; connstr << ") Connections: (#dis:" << nDisconnPeers; connstr << ",#dir:" << nDirectPeers; connstr << ",#proxy:" << nProxyPeers; connstr << ",#relay:" << nRelayPeers; connstr << ")"; QLabel *label = ui->peerSummaryLabel; label->setText(QString::fromStdString(connstr.str())); }
void DhtWindow::updateDhtPeers() { /* Hackish display of all Dht peers, should be split into buckets (as children) */ //QString status = QString::fromStdString(mPeerNet->getDhtStatusString()); //ui->dhtLabel->setText(status); std::list<RsDhtPeer> allpeers; std::list<RsDhtPeer>::iterator it; int i; for(i = 0; i < 160; i++) { std::list<RsDhtPeer> peers; rsDht->getDhtPeers(i, peers); for(it = peers.begin(); it != peers.end(); it++) { allpeers.push_back(*it); } } QTreeWidget *dhtTreeWidget = ui->dhtTreeWidget; dhtTreeWidget->clear(); time_t now = time(NULL); for(it = allpeers.begin(); it != allpeers.end(); it++) { /* find the entry */ QTreeWidgetItem *dht_item = NULL; /* insert */ dht_item = new DhtTreeWidgetItem(); QString buckstr = QString::number(it->mBucket); QString ipstr = QString::fromStdString(it->mAddr); QString idstr = QString::fromStdString(it->mDhtId); QString flagsstr = QString(tr("0x%1 EX:0x%2")).arg(it->mPeerFlags, 0, 16, QChar('0')).arg(it->mExtraFlags, 0, 16, QChar('0')); QString foundstr = QString(tr("%1 secs ago")).arg(now - it->mFoundTime); QString lastsendstr; if (it->mLastSendTime == 0) { lastsendstr = tr("never"); } else { lastsendstr = QString (tr("%1 secs ago")).arg(now - it->mLastSendTime); } QString lastrecvstr = QString (tr("%1 secs ago")).arg(now - it->mLastRecvTime); dht_item -> setData(DTW_COL_BUCKET, Qt::DisplayRole, buckstr); dht_item -> setData(DTW_COL_IPADDR, Qt::DisplayRole, ipstr); dht_item -> setData(DTW_COL_PEERID, Qt::DisplayRole, idstr); dht_item -> setData(DTW_COL_FLAGS, Qt::DisplayRole, flagsstr); dht_item -> setData(DTW_COL_FOUND, Qt::DisplayRole, foundstr); dht_item -> setData(DTW_COL_SEND, Qt::DisplayRole, lastsendstr); dht_item -> setData(DTW_COL_RECV, Qt::DisplayRole, lastrecvstr); dhtTreeWidget->addTopLevelItem(dht_item); } }
void IdDialog::insertIdList(uint32_t token) { QTreeWidget *tree = ui.treeWidget_IdList; tree->clear(); std::list<std::string> ids; std::list<std::string>::iterator it; bool acceptAll = ui.radioButton_ListAll->isChecked(); bool acceptPseudo = ui.radioButton_ListPseudo->isChecked(); bool acceptYourself = ui.radioButton_ListYourself->isChecked(); bool acceptFriends = ui.radioButton_ListFriends->isChecked(); bool acceptOthers = ui.radioButton_ListOthers->isChecked(); RsGxsIdGroup data; std::vector<RsGxsIdGroup> datavector; std::vector<RsGxsIdGroup>::iterator vit; if (!rsIdentity->getGroupData(token, datavector)) { std::cerr << "IdDialog::insertIdList() Error getting GroupData"; std::cerr << std::endl; return; } std::string ownPgpId = rsPeers->getGPGOwnId(); for(vit = datavector.begin(); vit != datavector.end(); vit++) { data = (*vit); bool isOwnId = (data.mPgpKnown && (data.mPgpId == ownPgpId)) || (data.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN); /* do filtering */ bool ok = false; if (acceptAll) { ok = true; } else if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) { if (isOwnId && acceptYourself) { ok = true; } else { if (data.mPgpKnown) { if (acceptFriends) { ok = true; } } else { if (acceptOthers) { ok = true; } } } } else { if (acceptPseudo) { ok = true; } if (isOwnId && acceptYourself) { ok = true; } } if (!ok) { continue; } QTreeWidgetItem *item = new QTreeWidgetItem(); item->setText(RSID_COL_NICKNAME, QString::fromStdString(data.mMeta.mGroupName)); item->setText(RSID_COL_KEYID, QString::fromStdString(data.mMeta.mGroupId)); if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) { if (data.mPgpKnown) { RsPeerDetails details; rsPeers->getGPGDetails(data.mPgpId, details); item->setText(RSID_COL_IDTYPE, QString::fromStdString(details.name)); } else { item->setText(RSID_COL_IDTYPE, "PGP Linked Id"); } } else { item->setText(RSID_COL_IDTYPE, "Anon Id"); } tree->addTopLevelItem(item); } // fix up buttons. updateSelection(); }
void MessagesDialog::insertMessages() { rsiface->lockData(); /* Lock Interface */ std::list<MessageInfo>::const_iterator it; const std::list<MessageInfo> &msgs = rsiface->getMessages(); /* get a link to the table */ QTreeWidget *msgWidget = ui.msgWidget; /* get the MsgId of the current one ... */ std::string cid; std::string mid; bool oldSelected = getCurrentMsg(cid, mid); QTreeWidgetItem *newSelected = NULL; /* remove old items ??? */ int listrow = ui.listWidget -> currentRow(); //std::cerr << "MessagesDialog::insertMessages()" << std::endl; //std::cerr << "Current Row: " << listrow << std::endl; /* check the mode we are in */ unsigned int msgbox = 0; switch(listrow) { case 3: msgbox = RS_MSG_SENTBOX; break; case 2: msgbox = RS_MSG_DRAFTBOX; break; case 1: msgbox = RS_MSG_OUTBOX; break; case 0: default: msgbox = RS_MSG_INBOX; break; } QList<QTreeWidgetItem *> items; for(it = msgs.begin(); it != msgs.end(); it++) { /* check the message flags, to decide which * group it should go in... * * InBox * OutBox * Drafts * Sent * * FLAGS = OUTGOING. * -> Outbox/Drafts/Sent * + SENT -> Sent * + IN_PROGRESS -> Draft. * + nuffing -> Outbox. * FLAGS = INCOMING = (!OUTGOING) * -> + NEW -> Bold. * */ if ((it -> msgflags & RS_MSG_BOXMASK) != msgbox) { //std::cerr << "Msg from other box: " << it->msgflags; //std::cerr << std::endl; continue; } /* make a widget per friend */ QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0); /* So Text should be: * (1) Msg / Broadcast * (1b) Person / Channel Name * (2) Rank * (3) Date * (4) Title * (5) Msg * (6) File Count * (7) File Total */ // Date First.... (for sorting) { QDateTime qtime; qtime.setTime_t(it->ts); QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss"); item -> setText(0, timestamp); } // From .... { std::ostringstream out; out << it -> srcname; item -> setText(1, QString::fromStdString(out.str())); } item -> setText(2, QString::fromStdString(it->title)); // No of Files. { std::ostringstream out; out << it -> count; item -> setText(3, QString::fromStdString(out.str())); } // Size. // Msg. // Rank { std::ostringstream out; out << it -> size; item -> setText(4, QString::fromStdString(out.str())); } /* strip out the \n and \r symbols */ std::string tmsg = it -> msg; for(int i = 0; i < tmsg.length(); i++) { if ((tmsg[i] == '\n') || (tmsg[i] == '\r')) { tmsg[i] = ' '; } } item -> setText(5, QString::fromStdString(tmsg)); { std::ostringstream out; out << "5"; // RANK item -> setText(6, QString::fromStdString(out.str())); } { std::ostringstream out; out << it -> id; item -> setText(7, QString::fromStdString(out.str())); } { std::ostringstream out; out << it -> msgId; item -> setText(8, QString::fromStdString(out.str())); if ((oldSelected) && (mid == out.str())) { newSelected = item; } } if (it -> msgflags & RS_MSG_NEW) { for(int i = 0; i < 10; i++) { QFont qf = item->font(i); qf.setBold(true); item->setFont(i, qf); //std::cerr << "Setting Item BOLD!" << std::endl; } } /* add to the list */ items.append(item); } /* add the items in! */ msgWidget->clear(); msgWidget->insertTopLevelItems(0, items); if (newSelected) { msgWidget->setCurrentItem(newSelected); } rsiface->unlockData(); /* UnLock Interface */ }
void CreateCircleDialog::loadIdentities(uint32_t token) { #ifdef DEBUG_CREATE_CIRCLE_DIALOG std::cerr << "CreateCircleDialog::loadIdentities(" << token << ")"; std::cerr << std::endl; #endif QTreeWidget *tree = ui.treeWidget_IdList; tree->clear(); bool acceptAnonymous = ui.radioButton_ListAll->isChecked(); bool acceptAllPGP = ui.radioButton_ListAllPGP->isChecked(); //bool acceptKnownPGP = ui.radioButton_ListKnownPGP->isChecked(); RsGxsIdGroup data; std::vector<RsGxsIdGroup> datavector; std::vector<RsGxsIdGroup>::iterator vit; if (!rsIdentity->getGroupData(token, datavector)) { std::cerr << "CreateCircleDialog::insertIdentities() Error getting GroupData"; std::cerr << std::endl; return; } for(vit = datavector.begin(); vit != datavector.end(); ++vit) { data = (*vit); /* do filtering */ bool ok = false; if (acceptAnonymous) ok = true; else if (acceptAllPGP) ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; else if (data.mPgpKnown) ok = data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID ; if (!ok) { #ifdef DEBUG_CREATE_CIRCLE_DIALOG std::cerr << "CreateCircleDialog::insertIdentities() Skipping ID: " << data.mMeta.mGroupId; std::cerr << std::endl; #endif continue; } QString keyId = QString::fromStdString(data.mMeta.mGroupId.toStdString()); QString nickname = QString::fromUtf8(data.mMeta.mGroupName.c_str()); QString idtype = tr("Anon Id"); QPixmap pixmap ; if(data.mImage.mSize == 0 || !pixmap.loadFromData(data.mImage.mData, data.mImage.mSize, "PNG")) pixmap = QPixmap::fromImage(GxsIdDetails::makeDefaultIcon(RsGxsId(data.mMeta.mGroupId))) ; if (data.mMeta.mGroupFlags & RSGXSID_GROUPFLAG_REALID) { if (data.mPgpKnown) { RsPeerDetails details; rsPeers->getGPGDetails(data.mPgpId, details); idtype = QString::fromUtf8(details.name.c_str()); } else idtype = tr("PGP Linked Id"); } QTreeWidgetItem *item = new QTreeWidgetItem(); item->setText(RSCIRCLEID_COL_NICKNAME, nickname); item->setIcon(RSCIRCLEID_COL_NICKNAME, QIcon(pixmap)); item->setText(RSCIRCLEID_COL_KEYID, keyId); item->setText(RSCIRCLEID_COL_IDTYPE, idtype); tree->addTopLevelItem(item); // External Circle. if (mIsExistingCircle) { // check if its in the circle. // We use an explicit cast // if ( mCircleGroup.mInvitedMembers.find(RsGxsId(data.mMeta.mGroupId)) != mCircleGroup.mInvitedMembers.end()) /* found it */ addMember(keyId, idtype, nickname); } } }
/* get the list of Neighbours from the RsIface. */ void NetworkDialog::insertConnect() { if (!rsPeers) { return; } std::list<std::string> neighs; std::list<std::string>::iterator it; rsPeers->getOthersList(neighs); /* get a link to the table */ QTreeWidget *connectWidget = ui.connecttreeWidget; QTreeWidgetItem *oldSelect = getCurrentNeighbour(); QTreeWidgetItem *newSelect = NULL; std::string oldId; if (oldSelect) { oldId = (oldSelect -> text(9)).toStdString(); } QList<QTreeWidgetItem *> items; for(it = neighs.begin(); it != neighs.end(); it++) { RsPeerDetails detail; if (!rsPeers->getPeerDetails(*it, detail)) { continue; /* BAD */ } /* make a widget per friend */ QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0); /* add all the labels */ /* (0) Status Icon */ item -> setText(0, ""); /* (1) Accept/Deny */ if (detail.state & RS_PEER_STATE_FRIEND) item -> setText(1, tr("Trusted")); else item -> setText(1, tr("Denied")); if (rsPeers->isTrustingMe(detail.id) || detail.lastConnect>0) item -> setText(2, tr("Is trusting me")); else item -> setText(2, tr("Unknown")); /* (3) Last Connect */ { std::ostringstream out; // Show anouncement if a friend never was connected. if (detail.lastConnect==0 ) item -> setText(3, tr("Never seen")); else { // Dont Show a timestamp in RS calculate the day QDateTime datum = QDateTime::fromTime_t(detail.lastConnect); // out << datum.toString(Qt::LocalDate); QString stime = datum.toString(Qt::LocalDate); item -> setText(3, stime); } } /* (4) Person */ item -> setText(4, QString::fromStdString(detail.name)); /* (5) Peer Address */ { std::ostringstream out; if(detail.state & RS_PEER_STATE_FRIEND) { out << detail.localAddr << ":"; out << detail.localPort << "/"; out << detail.extAddr << ":"; out << detail.extPort; } else { // No Trust => no IP Information out << "0.0.0.0:0/0.0.0.0:0"; } item -> setText(5, QString::fromStdString(out.str())); } /* Others */ item -> setText(6, QString::fromStdString(detail.org)); item -> setText(7, QString::fromStdString(detail.location)); item -> setText(8, QString::fromStdString(detail.email)); { item -> setText(9, QString::fromStdString(detail.id)); if ((oldSelect) && (oldId == detail.id)) { newSelect = item; } } //item -> setText(10, QString::fromStdString(detail.authcode)); /** * Determinated the Background Color */ QColor backgrndcolor; if (detail.state & RS_PEER_STATE_FRIEND) { item -> setIcon(0,(QIcon(IMAGE_AUTHED))); backgrndcolor=Qt::green; } else { if (rsPeers->isTrustingMe(detail.id)) { backgrndcolor=Qt::magenta; item -> setIcon(0,(QIcon(IMAGE_TRUSTED))); for(int k=0;k<8;++k) item -> setToolTip(k,QString::fromStdString(detail.name) + QString(tr(" is trusting you. \nRight-click and select 'make friend' to be able to connect."))) ; } else if (detail.trustLvl > RS_TRUST_LVL_MARGINAL) { backgrndcolor=Qt::cyan; item -> setIcon(0,(QIcon(IMAGE_DENIED))); } else if (detail.lastConnect < 10000) /* 3 hours? */ { backgrndcolor=Qt::yellow; item -> setIcon(0,(QIcon(IMAGE_DENIED))); } else { backgrndcolor=Qt::gray; item -> setIcon(0,(QIcon(IMAGE_DENIED))); } } // Color each Background column in the Network Tab except the first one => 1-9 // whith the determinated color for(int i = 1; i <10; i++) item -> setBackground(i,QBrush(backgrndcolor)); /* add to the list */ items.append(item); } // add self to network. RsPeerDetails pd ; if(rsPeers->getPeerDetails(rsPeers->getOwnId(),pd)) { QTreeWidgetItem *self_item = new QTreeWidgetItem((QTreeWidget*)0); self_item->setText(1,"N/A"); self_item->setText(2,"N/A"); self_item->setText(3,"N/A"); self_item->setText(4,QString::fromStdString(pd.name) + " (yourself)") ; std::ostringstream out; out << pd.localAddr << ":" << pd.localPort << "/" << pd.extAddr << ":" << pd.extPort; self_item->setText(5, QString::fromStdString(out.str())); self_item->setText(6, QString::fromStdString(pd.org)); self_item->setText(7, QString::fromStdString(pd.location)); self_item->setText(8, QString::fromStdString(pd.email)); self_item->setText(9, QString::fromStdString(pd.id)); // Color each Background column in the Network Tab except the first one => 1-9 for(int i=1;i<10;++i) { self_item->setBackground(i,QBrush(Qt::green)); } self_item->setIcon(0,(QIcon(IMAGE_AUTHED))); items.append(self_item); } /* remove old items ??? */ connectWidget->clear(); connectWidget->setColumnCount(10); /* add the items in! */ connectWidget->insertTopLevelItems(0, items); if (newSelect) { connectWidget->setCurrentItem(newSelect); } connectWidget->update(); /* update display */ }
void BwCtrlWindow::updateBandwidth() { QTreeWidget *peerTreeWidget = bwTreeWidget; peerTreeWidget->clear(); RsConfigDataRates totalRates; std::map<RsPeerId, RsConfigDataRates> rateMap; std::map<RsPeerId, RsConfigDataRates>::iterator it; rsConfig->getTotalBandwidthRates(totalRates); rsConfig->getAllBandwidthRates(rateMap); /* insert */ QTreeWidgetItem *item = new QTreeWidgetItem(); peerTreeWidget->addTopLevelItem(item); peerTreeWidget->setSelectionMode(QAbstractItemView::SingleSelection); /* do Totals */ item -> setData(COLUMN_PEERID, Qt::DisplayRole, tr("TOTALS")); item -> setData(COLUMN_RSNAME, Qt::DisplayRole, tr("Totals")); item -> setData(COLUMN_IN_RATE, Qt::DisplayRole, totalRates.mRateIn); item -> setData(COLUMN_IN_MAX, Qt::DisplayRole,totalRates.mRateMaxIn); item -> setData(COLUMN_IN_QUEUE, Qt::DisplayRole, totalRates.mQueueIn); item -> setData(COLUMN_IN_ALLOC, Qt::DisplayRole, std::numeric_limits<float>::max()); item -> setData(COLUMN_IN_ALLOC_SENT, Qt::DisplayRole, std::numeric_limits<qint64>::max()); item -> setData(COLUMN_OUT_RATE, Qt::DisplayRole, totalRates.mRateOut); item -> setData(COLUMN_OUT_MAX, Qt::DisplayRole, totalRates.mRateMaxOut); item -> setData(COLUMN_OUT_QUEUE, Qt::DisplayRole, totalRates.mQueueOut); item -> setData(COLUMN_OUT_ALLOC, Qt::DisplayRole, std::numeric_limits<float>::max()); item -> setData(COLUMN_OUT_ALLOC_SENT, Qt::DisplayRole, std::numeric_limits<qint64>::max()); time_t now = time(NULL); for(it = rateMap.begin(); it != rateMap.end(); ++it) { /* find the entry */ QTreeWidgetItem *peer_item = NULL; #if 0 QString qpeerid = QString::fromStdString(*it); int itemCount = peerTreeWidget->topLevelItemCount(); for (int nIndex = 0; nIndex < itemCount; ++nIndex) { QTreeWidgetItem *tmp_item = peerTreeWidget->topLevelItem(nIndex); if (tmp_item->data(COLUMN_PEERID, Qt::DisplayRole).toString() == qpeerid) { peer_item = tmp_item; break; } } #endif if (!peer_item) { /* insert */ peer_item = new QTreeWidgetItem(); peerTreeWidget->addTopLevelItem(peer_item); } std::string name = rsPeers->getPeerName(it->first); peer_item -> setData(COLUMN_PEERID, Qt::DisplayRole, QString::fromStdString(it->first.toStdString())); peer_item -> setData(COLUMN_RSNAME, Qt::DisplayRole, QString::fromStdString(name)); peer_item -> setData(COLUMN_IN_RATE, Qt::DisplayRole, it->second.mRateIn); peer_item -> setData(COLUMN_IN_MAX, Qt::DisplayRole, it->second.mRateMaxIn); peer_item -> setData(COLUMN_IN_QUEUE, Qt::DisplayRole, it->second.mQueueIn); peer_item -> setData(COLUMN_IN_ALLOC, Qt::DisplayRole, it->second.mAllocIn); peer_item -> setData(COLUMN_IN_ALLOC_SENT, Qt::DisplayRole, qint64(now - it->second.mAllocTs)); peer_item -> setData(COLUMN_OUT_RATE, Qt::DisplayRole, it->second.mRateOut); peer_item -> setData(COLUMN_OUT_MAX, Qt::DisplayRole, it->second.mRateMaxOut); peer_item -> setData(COLUMN_OUT_QUEUE, Qt::DisplayRole, it->second.mQueueOut); if (it->second.mAllowedTs != 0) { peer_item -> setData(COLUMN_OUT_ALLOC, Qt::DisplayRole, it->second.mAllowedOut); peer_item -> setData(COLUMN_OUT_ALLOC_SENT, Qt::DisplayRole,qint64(now - it->second.mAllowedTs)); } else { peer_item -> setData(COLUMN_OUT_ALLOC, Qt::DisplayRole, std::numeric_limits<float>::max()); peer_item -> setData(COLUMN_OUT_ALLOC_SENT, Qt::DisplayRole, std::numeric_limits<qint64>::max()); } /* colour the columns */ if (it->second.mAllowedTs != 0) { if (it->second.mAllowedOut < it->second.mRateOut) { /* RED */ QColor bc("#ff4444"); // red peer_item -> setBackground(COLUMN_OUT_RATE,QBrush(bc)); } else if (it->second.mAllowedOut < it->second.mRateMaxOut) { /* YELLOW */ QColor bc("#ffff66"); // yellow peer_item -> setBackground(COLUMN_OUT_MAX,QBrush(bc)); } else { /* GREEN */ QColor bc("#44ff44");//bright green peer_item -> setBackground(COLUMN_OUT_ALLOC,QBrush(bc)); } } else { /* GRAY */ QColor bc("#444444");// gray peer_item -> setBackground(COLUMN_OUT_ALLOC,QBrush(bc)); peer_item -> setBackground(COLUMN_OUT_ALLOC_SENT,QBrush(bc)); } /* queueOut */ #define QUEUE_RED 10000 #define QUEUE_ORANGE 2000 #define QUEUE_YELLOW 500 if (it->second.mQueueOut > QUEUE_RED) { /* RED */ QColor bc("#ff4444"); // red peer_item -> setBackground(COLUMN_OUT_QUEUE,QBrush(bc)); } else if (it->second.mQueueOut > QUEUE_ORANGE) { /* ORANGE */ QColor bc("#ff9900"); //orange peer_item -> setBackground(COLUMN_OUT_QUEUE,QBrush(bc)); } else if (it->second.mQueueOut > QUEUE_YELLOW) { /* YELLOW */ QColor bc("#ffff66"); // yellow peer_item -> setBackground(COLUMN_OUT_QUEUE,QBrush(bc)); } else { /* GREEN */ QColor bc("#44ff44");//bright green peer_item -> setBackground(COLUMN_OUT_QUEUE,QBrush(bc)); } } }
void MessagesDialog::insertMsgTxtAndFiles() { /* Locate the current Message */ QTreeWidget *msglist = ui.msgWidget; //std::cerr << "MessagesDialog::insertMsgTxtAndFiles()" << std::endl; /* get its Ids */ std::string cid; std::string mid; QTreeWidgetItem *qtwi = msglist -> currentItem(); if (!qtwi) { /* blank it */ ui.msgText->setText(""); ui.msgList->clear(); return; } else { cid = qtwi -> text(7).toStdString(); mid = qtwi -> text(8).toStdString(); } /* Save the Data.... for later */ mCurrCertId = cid; mCurrMsgId = mid; /* get Message */ rsiface->lockData(); /* Lock Interface */ const MessageInfo *mi = NULL; mi = rsiface->getMessage(cid, mid); if (!mi) { rsiface->unlockData(); /* Unlock Interface */ return; } const std::list<FileInfo> &recList = mi->files; std::list<FileInfo>::const_iterator it; /* get a link to the table */ QTreeWidget *tree = ui.msgList; /* get the MessageInfo */ tree->clear(); tree->setColumnCount(5); QList<QTreeWidgetItem *> items; for(it = recList.begin(); it != recList.end(); it++) { /* make a widget per person */ QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0); /* (0) Filename */ item -> setText(0, QString::fromStdString(it->fname)); //std::cerr << "Msg FileItem(" << it->fname.length() << ") :" << it->fname << std::endl; /* (1) Size */ { std::ostringstream out; out << it->size; item -> setText(1, QString::fromStdString(out.str())); } /* (2) Rank */ { std::ostringstream out; out << it->rank; item -> setText(2, QString::fromStdString(out.str())); } item -> setText(3, QString::fromStdString(it->hash)); /* add to the list */ items.append(item); } /* add the items in! */ tree->insertTopLevelItems(0, items); /* add the Msg */ std::string msgtext = "Title: " + mi -> title; msgtext += "\nHdr: " + mi -> header; msgtext += "\n-----------------\n" + mi -> msg; ui.msgText->setText(QString::fromStdString(msgtext)); rsiface->unlockData(); /* Unlock Interface */ /* finally mark message as read! */ rsicontrol -> MessageRead(mid); }
void VDirectoryTree::sortItems(VDirectory *p_dir) { if (!p_dir) { return; } const QVector<VDirectory *> &dirs = p_dir->getSubDirs(); if (dirs.size() < 2) { return; } bool isNotebook = p_dir->parent() == NULL; VSortDialog dialog(tr("Sort Folders"), tr("Sort folders in %1 <span style=\"%2\">%3</span> " "in the configuration file.") .arg(isNotebook ? tr("notebook") : tr("folder")) .arg(g_config->c_dataTextStyle) .arg(isNotebook ? p_dir->getNotebook()->getName() : p_dir->getName()), this); QTreeWidget *tree = dialog.getTreeWidget(); tree->clear(); tree->setColumnCount(2); QStringList headers; headers << tr("Name") << tr("Created Time"); tree->setHeaderLabels(headers); for (int i = 0; i < dirs.size(); ++i) { const VDirectory *dir = dirs[i]; Q_ASSERT(dir->isOpened()); QString createdTime = VUtils::displayDateTime(dir->getCreatedTimeUtc().toLocalTime()); QStringList cols; cols << dir->getName() << createdTime; QTreeWidgetItem *item = new QTreeWidgetItem(tree, cols); item->setData(0, Qt::UserRole, i); } dialog.treeUpdated(); if (dialog.exec()) { QVector<QVariant> data = dialog.getSortedData(); Q_ASSERT(data.size() == dirs.size()); QVector<int> sortedIdx(data.size(), -1); for (int i = 0; i < data.size(); ++i) { sortedIdx[i] = data[i].toInt(); } qDebug() << "sort dirs" << sortedIdx; if (!p_dir->sortSubDirectories(sortedIdx)) { VUtils::showMessage(QMessageBox::Warning, tr("Warning"), tr("Fail to sort folders in %1 <span style=\"%2\">%3</span>.") .arg(isNotebook ? tr("notebook") : tr("folder")) .arg(g_config->c_dataTextStyle) .arg(isNotebook ? p_dir->getNotebook()->getName() : p_dir->getName()), "", QMessageBox::Ok, QMessageBox::Ok, this); } updateItemDirectChildren(findVDirectory(p_dir)); } }
void DhtWindow::updateRelays() { QTreeWidget *relayTreeWidget = ui->relayTreeWidget; std::list<RsDhtRelayEnd> relayEnds; std::list<RsDhtRelayProxy> relayProxies; std::list<RsDhtRelayEnd>::iterator reit; std::list<RsDhtRelayProxy>::iterator rpit; rsDht->getRelayEnds(relayEnds); rsDht->getRelayProxies(relayProxies); #define RTW_COL_TYPE 0 #define RTW_COL_SRC 1 #define RTW_COL_PROXY 2 #define RTW_COL_DEST 3 #define RTW_COL_CLASS 4 #define RTW_COL_AGE 5 #define RTW_COL_LASTSEND 6 #define RTW_COL_BANDWIDTH 7 relayTreeWidget->clear(); time_t now = time(NULL); for(reit = relayEnds.begin(); reit != relayEnds.end(); reit++) { /* find the entry */ QTreeWidgetItem *item = new QTreeWidgetItem(); relayTreeWidget->addTopLevelItem(item); QString typestr = tr("RELAY END"); QString srcstr = tr("Yourself"); QString proxystr = QString::fromStdString(reit->mProxyAddr); QString deststr = QString::fromStdString(reit->mRemoteAddr); QString agestr = tr("unknown"); QString lastsendstr = tr("unknown"); QString bandwidthstr = tr("unlimited"); QString classstr = tr("Own Relay"); //std::ostringstream dhtupdatestr; //dhtupdatestr << now - status.mDhtUpdateTS << " secs ago"; item -> setData(RTW_COL_TYPE, Qt::DisplayRole, typestr); item -> setData(RTW_COL_SRC, Qt::DisplayRole, srcstr); item -> setData(RTW_COL_PROXY, Qt::DisplayRole, proxystr); item -> setData(RTW_COL_DEST, Qt::DisplayRole, deststr); item -> setData(RTW_COL_CLASS, Qt::DisplayRole, classstr); item -> setData(RTW_COL_AGE, Qt::DisplayRole, agestr); item -> setData(RTW_COL_LASTSEND, Qt::DisplayRole, lastsendstr); item -> setData(RTW_COL_BANDWIDTH, Qt::DisplayRole, bandwidthstr); } for(rpit = relayProxies.begin(); rpit != relayProxies.end(); rpit++) { /* find the entry */ QTreeWidgetItem *item = new QTreeWidgetItem(); relayTreeWidget->addTopLevelItem(item); QString typestr = tr("RELAY PROXY"); QString srcstr = QString::fromStdString(rpit->mSrcAddr); QString proxystr = tr("Yourself"); QString deststr = QString::fromStdString(rpit->mDestAddr); QString agestr = QString(tr("%1 secs ago")).arg(now - rpit->mCreateTS); QString lastsendstr = QString(tr("%1 secs ago")).arg(now - rpit->mLastTS); QString bandwidthstr = QString(tr("%1B/s")).arg(QString::number(rpit->mBandwidth)); QString classstr = QString::number(rpit->mRelayClass); item -> setData(RTW_COL_TYPE, Qt::DisplayRole, typestr); item -> setData(RTW_COL_SRC, Qt::DisplayRole, srcstr); item -> setData(RTW_COL_PROXY, Qt::DisplayRole, proxystr); item -> setData(RTW_COL_DEST, Qt::DisplayRole, deststr); item -> setData(RTW_COL_CLASS, Qt::DisplayRole, classstr); item -> setData(RTW_COL_AGE, Qt::DisplayRole, agestr); item -> setData(RTW_COL_LASTSEND, Qt::DisplayRole, lastsendstr); item -> setData(RTW_COL_BANDWIDTH, Qt::DisplayRole, bandwidthstr); } }