Example #1
0
MainWindow::MainWindow( orcaprobe::IBrowser *browser,
                        orcaqcm::OcmModel        *model,
                        const std::vector<std::string> & supportedInterfaces,
                        QWidget *parent, Qt::WFlags flags)
    : QMainWindow(parent, flags),
      browser_(browser),
      model_(model),
      supportedInterfaces_(supportedInterfaces)
{
    assert(browser_ || "null pointer to browser");
    assert(model_ || "null pointer to model");

    setWindowTitle("Orca: Probe");
    setWindowIcon ( QPixmap(orcaqt::orca2_2x3_yellow_130_xpm) );
    QFont f;
    f.setPointSize( 7 );
    setFont( f );
    resize( qApp->desktop()->availableGeometry(0).width(), 400 );

    pathLabel_ = new QLabel;
    QLabel *movLabel = new QLabel;
    movie_ = new QMovie(this);
    movie_->setCacheMode(QMovie::CacheAll);
    movie_->setFileName("/opt/orca2/images/working.mng");
    movLabel->setMovie(movie_);
    
    QHBoxLayout *labelLayout = new QHBoxLayout;
    labelLayout->addWidget(pathLabel_, 0, Qt::AlignLeft );
    labelLayout->addWidget(movLabel, 0, Qt::AlignRight );

    QSplitter* split = new QSplitter();
    split->setOrientation(Qt::Horizontal);
    split->setMinimumWidth( 400 );

    ProbeView::config( browser_, pathLabel_, statusBar() );

    regView_    = new ProbeView( "Regisry", model_, split );
    platfView_  = new ProbeView( "Platform", model_, split );
    compView_   = new ProbeView( "Component", model_, split );
    ifaceView_  = new ProbeView( "Interface", model_, split );
    operView_   = new ProbeView( "Operation", model_, split );

    split->setStretchFactor( 0, 1 );
    split->setStretchFactor( 1, 1 );
    split->setStretchFactor( 2, 1 );
    split->setStretchFactor( 3, 1 );
    split->setStretchFactor( 4, 2 );

    regView_->setNeighbors( 0, platfView_ );
    platfView_->setNeighbors( regView_, compView_ );
    compView_->setNeighbors( platfView_, ifaceView_ );
    ifaceView_->setNeighbors( compView_, operView_ );
    operView_->setNeighbors( ifaceView_, 0 );

    QWidget *centralWidget = new QWidget;
    QVBoxLayout *layout = new QVBoxLayout;
    layout->addLayout( labelLayout, 0 );
    layout->addWidget( split, 1 );

    centralWidget->setLayout( layout );
    setCentralWidget( centralWidget );

    setupMenuBar();

    statusBar()->showMessage( "Initialized", 2000 );
}