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); }
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 ) ); } }
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); }
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(); }
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 ) ); } }