Пример #1
0
void connectItems(QObject * object, QObject * mw)
{
	QObject::connect( object, SIGNAL( itemSelected( QObject *, QPointF ) ), mw, SLOT( itemSelected( QObject *, QPointF ) ) );
	QObject::connect( object, SIGNAL( geometryChanged( QObject*, QRectF, QRectF ) ), mw, SLOT( itemGeometryChanged( QObject*, QRectF, QRectF ) ) );
	foreach( QObject * obj, object->children())
		connectItems(obj,mw);
}
Пример #2
0
void DelCommand::undo()
{
	Report::PageInterface* m_page = ( Report::PageInterface* )dynamic_cast<QGraphicsView *>( findObjectByTabName( m_mainWindow->m_tw, m_pageName ) )->scene();
	Q_ASSERT( m_page );

	QObject *m_parent;
	if ( m_parentName.isNull() )
		m_parent = m_page;
	else
		m_parent = findObject( m_page, m_parentName );

	Report::ItemInterface *m_item;

	if ( !m_parent )
		return;

	QDomDocument doc;
	doc.setContent( m_domObject );
	QObject * obj = m_mainWindow->m_reportEngine.objectFromDom( m_parent, doc.firstChildElement() );
	connectItems(obj, m_mainWindow);

	if ( dynamic_cast<Report::BandInterface*>( obj ) )
	{
		dynamic_cast<Report::BandInterface*>( obj )->setOrder( INT_MAX );
		dynamic_cast<Report::BandInterface*>( obj )->setGeometry( QRectF( 0, 0, dynamic_cast<Report::BandInterface*>( obj )->geometry().width(), dynamic_cast<Report::BandInterface*>( obj )->geometry().height() ) );
	}

	m_item = dynamic_cast<Report::ItemInterface*>( obj );

	if ( dynamic_cast<Report::ItemInterface*>( m_parent ) )
	{
		if ( !dynamic_cast<Report::ItemInterface*>( m_parent )->canContain( m_item ) )
		{
			delete m_item;
			m_item = 0;
		}
	}
	else
		if ( dynamic_cast<Report::PageInterface*>( m_parent )->canContain( m_item ) )
			dynamic_cast<Report::PageInterface*>( m_parent )->addItem( m_item );
		else
		{
			delete m_item;
			m_item = 0;
		}

	if ( m_item )
	{
		if ( dynamic_cast<Report::BandInterface*>( m_item ) )
			dynamic_cast<Report::BandInterface*>( m_item )->setOrder( INT_MAX );

		m_mainWindow->m_pe->setObject( m_item );
		m_mainWindow->m_objectModel.setRootObject( m_mainWindow->m_report );
		m_mainWindow->selectObject( m_item, m_mainWindow->m_objectModel.index( 0, 0 ) );
	}
}
Пример #3
0
void RemovePageCommand::undo()
{
    	QDomDocument doc;
	doc.setContent( m_domObject );
	Report::PageInterface* page = dynamic_cast<Report::PageInterface*> (m_mainWindow->m_reportEngine.objectFromDom( m_mainWindow->m_report, doc.firstChildElement() ) );
	Q_ASSERT( page );

	int index = m_mainWindow->_createNewPage_(page);
	m_mainWindow->m_tw->setTabText( index, m_pageName );
	connectItems(page , m_mainWindow);
}
Пример #4
0
void QARehabFileControlWidget::init(void)
{
    this->setMinimumWidth(1000);
    this->setMinimumHeight(130);
    this->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
    this->setMouseTracking(true);
    this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
    this->setSizeAdjustPolicy(QAbstractScrollArea::AdjustIgnored);
    this->setRenderHints(QPainter::Antialiasing | QPainter::HighQualityAntialiasing | QPainter::SmoothPixmapTransform | QPainter::TextAntialiasing);
    this->setStyleSheet("border: none; background: transparent;");

    loadSVGFiles();
    connectItems();
    doLayout();
}
Пример #5
0
void AddDomObject::redo() 
{
	Report::PageInterface* page = ( Report::PageInterface* )dynamic_cast<QGraphicsView *>( findObjectByTabName( m_mainWindow->m_tw, m_pageName ) )->scene();
	Q_ASSERT( page );

	QObject *m_parent;
	if ( m_parentName.isNull() || m_parentName==page->objectName())
		m_parent = page;
	else
		m_parent = findObject( page, m_parentName );

	Report::ItemInterface *m_item;
	if ( !m_parent )
	{
		m_canUndo=false;
		return;
	}
	QDomDocument doc;
	doc.setContent( m_domObject );
	QObject * obj = m_mainWindow->m_reportEngine.objectFromDom( m_parent, doc.firstChildElement() );

	if ( dynamic_cast<Report::BandInterface*>( obj ) )
	{
		dynamic_cast<Report::BandInterface*>( obj )->setOrder( INT_MAX );
		dynamic_cast<Report::BandInterface*>( obj )->setGeometry( QRectF( 0, 0, dynamic_cast<Report::BandInterface*>( obj )->geometry().width(), dynamic_cast<Report::BandInterface*>( obj )->geometry().height() ) );
	}

	m_item = dynamic_cast<Report::ItemInterface*>( obj );

	if ( dynamic_cast<Report::ItemInterface*>( m_parent ) )
	{
		if ( !dynamic_cast<Report::ItemInterface*>( m_parent )->canContain( m_item ) )
		{
			delete m_item;
			m_item = 0;
		}
	}
	else
		if ( dynamic_cast<Report::PageInterface*>( m_parent )->canContain( m_item ) )
			dynamic_cast<Report::PageInterface*>( m_parent )->addItem( m_item );
		else
		{
			delete m_item;
			m_item = 0;
		}

	if ( m_item )
	{
		connectItems(m_item, m_mainWindow);
		if ( dynamic_cast<Report::BandInterface*>( m_item ) )
			dynamic_cast<Report::BandInterface*>( m_item )->setOrder( INT_MAX );
		else
			m_item->setPos(m_pos);
		makeUnique( static_cast<QObject*>(m_item));
		m_itemName=m_item->objectName();
		m_mainWindow->m_pe->setObject( m_item );
		m_mainWindow->m_objectModel.setRootObject( m_mainWindow->m_report );
		m_mainWindow->selectObject( m_item, m_mainWindow->m_objectModel.index( 0, 0 ) );
		setText(QObject::tr("Open item %1(%2)").arg(m_itemName).arg(m_item->metaObject()->className()));
		m_mainWindow->m_pe->setObject( m_item );
		m_mainWindow->selectObject( m_item, m_mainWindow->m_objectModel.index( 0, 0 ) );
	}
	else
	{
		m_canUndo=false;
		m_mainWindow->m_pe->setObject( m_parent );
		m_mainWindow->selectObject( m_parent, m_mainWindow->m_objectModel.index( 0, 0 ) );
	}

}