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();    
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);

}
Ejemplo n.º 4
0
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();
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
void VVimIndicator::updateRegistersTree(QWidget *p_widget)
{
    QTreeWidget *regTree = dynamic_cast<QTreeWidget *>(p_widget);
    if (!m_vim) {
        regTree->clear();
        return;
    }

    const QMap<QChar, VVim::Register> &regs = m_vim->getRegisters();
    fillTreeItemsWithRegisters(regTree, regs);
}
Ejemplo n.º 7
0
  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);
    }
Ejemplo n.º 8
0
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);
}
Ejemplo n.º 10
0
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);
}
Ejemplo n.º 11
0
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();
}
Ejemplo n.º 13
0
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 */
}
Ejemplo n.º 14
0
/* 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 */
}
Ejemplo n.º 15
0
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();
}
Ejemplo n.º 16
0
/* 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 */


}
Ejemplo n.º 17
0
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()));

	}
}
Ejemplo n.º 18
0
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);
	}

}
Ejemplo n.º 19
0
// 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 ();
}
Ejemplo n.º 20
0
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()));

}
Ejemplo n.º 21
0
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);
	}

}
Ejemplo n.º 22
0
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();
}
Ejemplo n.º 23
0
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 */
}
Ejemplo n.º 24
0
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);
	    }
    }
}
Ejemplo n.º 25
0
/* 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 */
}
Ejemplo n.º 26
0
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));
		}
	}
}
Ejemplo n.º 27
0
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);
}
Ejemplo n.º 28
0
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));
    }
}
Ejemplo n.º 29
0
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);

	}
}