Ejemplo n.º 1
0
QVector<QVector<QPair<int, int>>> SearchingTree::searchValidCorr()
{
	QVector<QVector<QPair<int, int>>> candidates;

	//Expand tree
	while (1)
	{
		SearchingNode * LastOne = sTree[sTree.size() - 1];
		if (LastOne->VolumeProportion > volumeThreshold)
		{
			evaluateNode(LastOne);
			if (LastOne->energy < energyThreshold)
				candidates.push_back(LastOne->corr);
			else
				LastOne->valid = false;
		}
		if (LastOne->currentPair.second < totalB - 1 && expandBranch(LastOne))
		{
			continue;
		}
		if (LastOne->currentPair.first < totalA - 1)
		{
			if (LastOne->parent != NULL)
			{
				if (LastOne->parent->next != NULL)
				{
					expandChild(LastOne->parent->next);
					continue;
				}
			}
			SearchingNode * parent = LastOne->pre;
			if (parent == NULL)
				break;
			while (parent->pre != NULL)
				parent = parent->pre;
			expandChild(parent);
			continue;
		}
	}

	return candidates;
}
Ejemplo n.º 2
0
void
QNodeTreeView::doSelectFC(const FieldContainerPtr &pFC)
{
    if(pFC == getSelectedFC())
        return;

    BranchType         branch;
    QListViewItem     *pSelectedItem = this->selectedItem ();

    if(getBranch(pFC, branch))
    {
        expandBranch(branch);
    }
    else
    {
        QListViewItem *pItem = findItemInChildren(pFC, pSelectedItem);

        if(pItem)
        {
            this->setSelected      (pItem, true);
            this->ensureItemVisible(pItem      );
        }
    }
}
Ejemplo n.º 3
0
ccDBRoot::ccDBRoot(ccCustomQTreeView* dbTreeWidget, QTreeView* propertiesTreeWidget, QObject* parent) : QAbstractItemModel(parent)
{
    m_treeRoot = new ccHObject("DB Tree");

    //DB Tree
    assert(dbTreeWidget);
    m_dbTreeWidget = dbTreeWidget;
    m_dbTreeWidget->setModel(this);
    m_dbTreeWidget->header()->hide();

	//drag & drop support
	m_dbTreeWidget->setDragEnabled(true);
	m_dbTreeWidget->setAcceptDrops(true);
	//m_dbTreeWidget->viewport()->setAcceptDrops(true);
	m_dbTreeWidget->setDropIndicatorShown(true);
	m_dbTreeWidget->setDragDropMode(QAbstractItemView::InternalMove);
	setSupportedDragActions(Qt::MoveAction);
    /*//already done in ui file!
    m_dbTreeWidget->setEditTriggers(QAbstractItemView::EditKeyPressed);
    m_dbTreeWidget->setDragDropMode(QAbstractItemView::InternalMove);
    m_dbTreeWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
    m_dbTreeWidget->setUniformRowHeights(true);
    //*/

	//context menu on DB tree elements
	m_dbTreeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
	m_expandBranch = new QAction("Expand branch",this);
	m_collapseBranch = new QAction("Collapse branch",this);
	m_gatherInformation = new QAction("Information (recursive)",this);
	m_sortSiblingsType = new QAction("Sort siblings by type",this);
	m_sortSiblingsAZ = new QAction("Sort siblings by name (A-Z)",this);
	m_sortSiblingsZA = new QAction("Sort siblings by name (Z-A)",this);
	m_deleteSelectedEntities = new QAction("Delete",this);
	m_toggleSelectedEntities = new QAction("Toggle",this);
	m_toggleSelectedEntitiesVisibility = new QAction("Toggle visibility",this);
	m_toggleSelectedEntitiesColor = new QAction("Toggle color",this);
	m_toggleSelectedEntitiesNormals = new QAction("Toggle normals",this);
	m_toggleSelectedEntitiesMat = new QAction("Toggle materials/textures",this);
	m_toggleSelectedEntitiesSF = new QAction("Toggle SF",this);
	m_toggleSelectedEntities3DName = new QAction("Toggle 3D name",this);
	m_addEmptyGroup = new QAction("Add empty group",this);
	m_alignCameraWithEntity = new QAction("Align camera",this);
	m_alignCameraWithEntityReverse = new QAction("Align camera (reverse)",this);

	m_contextMenuPos = QPoint(-1,-1);

	//connect custom context menu actions
	connect(m_dbTreeWidget,						SIGNAL(customContextMenuRequested(const QPoint&)),	this, SLOT(showContextMenu(const QPoint&)));
	connect(m_expandBranch,						SIGNAL(triggered()),								this, SLOT(expandBranch()));
	connect(m_collapseBranch,					SIGNAL(triggered()),								this, SLOT(collapseBranch()));
	connect(m_gatherInformation,				SIGNAL(triggered()),								this, SLOT(gatherRecursiveInformation()));
	connect(m_sortSiblingsAZ,					SIGNAL(triggered()),								this, SLOT(sortSiblingsAZ()));
	connect(m_sortSiblingsZA,					SIGNAL(triggered()),								this, SLOT(sortSiblingsZA()));
	connect(m_sortSiblingsType,					SIGNAL(triggered()),								this, SLOT(sortSiblingsType()));
	connect(m_deleteSelectedEntities,			SIGNAL(triggered()),								this, SLOT(deleteSelectedEntities()));
	connect(m_toggleSelectedEntities,			SIGNAL(triggered()),								this, SLOT(toggleSelectedEntities()));
	connect(m_toggleSelectedEntitiesVisibility,	SIGNAL(triggered()),								this, SLOT(toggleSelectedEntitiesVisibility()));
	connect(m_toggleSelectedEntitiesColor,		SIGNAL(triggered()),								this, SLOT(toggleSelectedEntitiesColor()));
	connect(m_toggleSelectedEntitiesNormals,	SIGNAL(triggered()),								this, SLOT(toggleSelectedEntitiesNormals()));
	connect(m_toggleSelectedEntitiesMat,		SIGNAL(triggered()),								this, SLOT(toggleSelectedEntitiesMat()));
	connect(m_toggleSelectedEntitiesSF,			SIGNAL(triggered()),								this, SLOT(toggleSelectedEntitiesSF()));
	connect(m_toggleSelectedEntities3DName,		SIGNAL(triggered()),								this, SLOT(toggleSelectedEntities3DName()));
	connect(m_addEmptyGroup,					SIGNAL(triggered()),								this, SLOT(addEmptyGroup()));
	connect(m_alignCameraWithEntity,			SIGNAL(triggered()),								this, SLOT(alignCameraWithEntityDirect()));
	connect(m_alignCameraWithEntityReverse,		SIGNAL(triggered()),								this, SLOT(alignCameraWithEntityIndirect()));

    //other DB tree signals/slots connection
    connect(m_dbTreeWidget->selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(changeSelection(const QItemSelection&, const QItemSelection&)));

    //Properties Tree
    assert(propertiesTreeWidget);
    m_propertiesTreeWidget = propertiesTreeWidget;
    m_propertiesModel = new QStandardItemModel(0, 2, parent);
    /*//already done in ui file!
    m_propertiesTreeWidget->header()->hide();
    m_propertiesTreeWidget->setSelectionMode(QAbstractItemView::NoSelection);
    m_propertiesTreeWidget->setAllColumnsShowFocus(true);
    //*/
    m_ccPropDelegate = new ccPropertiesTreeDelegate(m_propertiesModel, m_propertiesTreeWidget);
    m_propertiesTreeWidget->setItemDelegate(m_ccPropDelegate);
    m_propertiesTreeWidget->setModel(m_propertiesModel);
	m_propertiesTreeWidget->header()->setResizeMode(QHeaderView::Interactive);
	m_propertiesTreeWidget->header()->setStretchLastSection(true);
    m_propertiesTreeWidget->setEnabled(false);

    //Properties tree signals/slots connection
    connect(m_ccPropDelegate, SIGNAL(ccObjectPropertiesChanged(ccHObject*)), this, SLOT(updateCCObject(ccHObject*)));
    connect(m_ccPropDelegate, SIGNAL(ccObjectAppearanceChanged(ccHObject*)), this, SLOT(redrawCCObject(ccHObject*)));
    connect(m_ccPropDelegate, SIGNAL(ccObjectAndChildrenAppearanceChanged(ccHObject*)), this, SLOT(redrawCCObjectAndChildren(ccHObject*)));
}