Exemplo n.º 1
0
void CGraphicBuildingTile::display(QList<QString> _toDisplay)
{
    QDialog* infoDialog = new QDialog;//(dynamic_cast<QWidget*>(this->parent()));
    QVBoxLayout* newLayout = new QVBoxLayout();
    int q=0;
    QScrollArea* scrolArea = new QScrollArea(dynamic_cast<QWidget*>(this->parent()));
    for(int i=0;i<_toDisplay.count();i++)
    {   QLabel* newLabel = new QLabel(_toDisplay.at(i));
        newLabel->setFixedWidth(280);
        newLabel->setMinimumHeight(22);
        newLabel->setStyleSheet("border: 1px solid black");
        newLayout->addWidget(newLabel);
        q++;
    }
    QPalette pal;
    pal.setColor(QPalette::Background,QColor(230,200,167));
    infoDialog->setFixedWidth(330);
    infoDialog->setMinimumHeight(30+22*q);
    infoDialog->setLayout(newLayout);
    infoDialog->setAutoFillBackground(true);
    infoDialog->setPalette(pal);
    infoDialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::Dialog);
    scrolArea->setWidget(infoDialog);
    scrolArea->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::Dialog);
    scrolArea->setMaximumHeight(infoDialog->size().height()+2);
    scrolArea->setWindowTitle(QString("Info about"));
    scrolArea->show();
}
Exemplo n.º 2
0
//initialize according to the type and the cube database
//
void
TabWidget::initialize( cube::Cube* cube, QString fileName,
                       cubeparser::Driver* driver, Statistics* statistics )
{
    this->cube = cube;

    TreeWidget* treeWidget;

    if ( type == METRICTAB )
    {
        //metric tabs have a metric tree
        ScrollArea* scrollArea = new ScrollArea( this, ScrollAreaTreeWidget );
        treeWidget = new TreeWidget( scrollArea, METRICTREE, fileName, driver, statistics );
        connect( treeWidget, SIGNAL( setMessage( QString ) ), this, SIGNAL( setMessage( QString ) ) );
        treeWidget->setFont( treeFont );
        treeWidget->setSpacing( spacing );
        treeWidget->setTabWidget( this );
        treeWidget->initialize( cube );
        scrollArea->setMainWidget( treeWidget );
        addTab( scrollArea, "Metric tree" );
    }
    else if ( type == CALLTAB )
    {
        //call tabs have a call tree and a flat call profile
        ScrollArea* scrollArea = new ScrollArea( this, ScrollAreaTreeWidget );
        treeWidget = new TreeWidget( scrollArea, CALLTREE, fileName, driver, statistics );
        connect( treeWidget, SIGNAL( setMessage( QString ) ), this, SIGNAL( setMessage( QString ) ) );
        treeWidget->setFont( treeFont );
        treeWidget->setSpacing( spacing );
        treeWidget->setTabWidget( this );
        treeWidget->initialize( cube );
        scrollArea->setMainWidget( treeWidget );
        addTab( scrollArea, "Call tree" );

        scrollArea = new ScrollArea( this, ScrollAreaTreeWidget );
        treeWidget = new TreeWidget( scrollArea, CALLFLAT );
        connect( treeWidget, SIGNAL( setMessage( QString ) ), this, SIGNAL( setMessage( QString ) ) );
        treeWidget->setFont( treeFont );
        treeWidget->setSpacing( spacing );
        treeWidget->setTabWidget( this );
        treeWidget->initialize( cube );
        scrollArea->setMainWidget( treeWidget );
        addTab( scrollArea, "Flat view" );
    }
    else if ( type == SYSTEMTAB )
    {
        subsetCombo = new QComboBox();
        subsetCombo->setModel( &subsetModel );
        subsetCombo->setWhatsThis(
            tr( "The Boxplot uses the currently selected subset of threads when determining its statistics."
                " Other defined subsets can be chosen from the combobox menu, such as \"All\" threads or"
                " \"Visited\" threads for only threads that visited the currently selected callpath."
                " Additional subsets can be defined from the System Tree with the \"Define subset\" context menu"
                " using the currently selected threads via multiple selection (control + left mouseclick)"
                " or with the \"Find items\" context menu selection option." ) );
        fillSubsetCombo();
        connect( subsetCombo, SIGNAL( currentIndexChanged( int ) ), this, SLOT( displayItems() ) );
        connect( subsetCombo, SIGNAL( currentIndexChanged( int ) ), this, SLOT( updateSubsetCombo() ) );

        //system tabs have a system tree, topologies and box plot
        {
            ScrollArea* scrollArea = new ScrollArea( this, ScrollAreaTreeWidget );
            treeWidget = new TreeWidget( scrollArea, SYSTEMTREE );
            connect( treeWidget, SIGNAL( setMessage( QString ) ), this, SIGNAL( setMessage( QString ) ) );
            connect( treeWidget, SIGNAL( selectionChanged() ), this, SLOT( resetSubsetCombo() ) );
            treeWidget->setFont( treeFont );
            treeWidget->setSpacing( spacing );
            treeWidget->setTabWidget( this );
            treeWidget->initialize( cube );
            scrollArea->setMainWidget( treeWidget );

            SplitterContainer* container = new SplitterContainer();
            container->setComponent( treeWidget ); // main component, used in TabWidget
            container->addWidget( scrollArea );

            connect( treeWidget, SIGNAL( definedSubsetsChanged( const QString & ) ),
                     this, SLOT( fillSubsetCombo( const QString & ) ) );
            container->addWidget( subsetCombo );

            QList<int> sizeList;
            sizeList << container->size().height() << 1;
            container->setSizes( sizeList );
            addTab( container, "System tree" );
        }
        {   // box plot tab
            SplitterContainer* container  = new SplitterContainer();
            ScrollArea*        scrollArea = new ScrollArea( this, ScrollAreaBoxPlot );
            systemBoxWidget = new SystemBoxPlot( scrollArea, treeWidget );
            scrollArea->setMainWidget( systemBoxWidget );
            scrollArea->setWidgetResizable( true );
            scrollArea->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
            scrollArea->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );

            container->setComponent( systemBoxWidget ); // main component, used in TabWidget
            container->addWidget( scrollArea );

            // set lower splitter element to minimum size (1 pixel => replaced by minimumSize())
            QList<int> sizeList;
            sizeList << container->size().height() << 1;
            container->setSizes( sizeList );
            systemBoxPlotIndex = addTab( container, "Box Plot" );
        }
        {
            SystemTopologyWidget* systemTopologyWidget;
            unsigned              numTopologies = cube->get_cartv().size();

            for ( unsigned i = 0; i < numTopologies; i++ )
            {
                QString name = ( cube->get_cartv() ).at( i )->get_name().c_str();
                if ( name == "" )
                {
                    name.append( "Topology " );
                    name.append( QString::number( i ) );
                }
                SplitterContainer* container = new SplitterContainer();
                systemTopologyWidget = new SystemTopologyWidget( treeWidget, i );

                systemTopologyWidget->setLineType( lineType );
                systemTopologyWidget->initialize( cube );

                container->setComponent( systemTopologyWidget );
                container->addWidget( systemTopologyWidget );

                /** add topology dimension toolbar with scrollPane */
                QWidget* dimBar = systemTopologyWidget->getDimensionSelectionBar( cube );
                if ( dimBar != 0 )
                {
                    QScrollArea* scroll = new QScrollArea();
                    container->addWidget( scroll );
                    scroll->setVerticalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
                    scroll->setHorizontalScrollBarPolicy( Qt::ScrollBarAlwaysOff );
                    scroll->setFrameStyle( QFrame::NoFrame );
                    scroll->setMinimumHeight( dimBar->minimumSizeHint().height() );
                    scroll->setMaximumHeight( dimBar->minimumSizeHint().height() );
                    scroll->setWidget( dimBar );
                    long ndims = ( cube->get_cartv() ).at( i )->get_ndims();
                    if ( ndims <= 3 )   // minimize dimension selection bar
                    {
                        QList<int> sizeList;
                        sizeList << 1 << 0;
                        container->setSizes( sizeList );
                    }
                }

                addTab( container, name );
            }
        } // SYSTEMTAB
    }