Пример #1
0
void Toolbar::addsep(void)
{
  layout->addSpacing(3);
  QFrame *frame = new QFrame(this);
  frame->setLineWidth(1);
  frame->setMidLineWidth(0);
  frame->setFrameStyle(QFrame::VLine|QFrame::Sunken);
  frame->setFixedHeight(height()-4);
  layout->addWidget(frame);
  layout->addSpacing(3);
}
Пример #2
0
//-----------------------------------------------------------------------------
// Function: AddressSpaceEditor::setupLayout()
//-----------------------------------------------------------------------------
void AddressSpaceEditor::setupLayout()
{
    QScrollArea* scrollArea = new QScrollArea(this);
    scrollArea->setWidgetResizable(true);
    scrollArea->setFrameShape(QFrame::NoFrame);

    QVBoxLayout* scrollLayout = new QVBoxLayout(this);
    scrollLayout->addWidget(scrollArea);
    scrollLayout->setContentsMargins(0, 0, 0, 0);

    QWidget* topWidget = new QWidget(scrollArea);
    topWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    QVBoxLayout* topLayout = new QVBoxLayout(topWidget);
    
    QHBoxLayout* nameAndGeneralLayout = new QHBoxLayout();
    nameAndGeneralLayout->addWidget(&nameEditor_, 0, Qt::AlignTop);
    nameAndGeneralLayout->addWidget(&generalEditor_);
    topLayout->addLayout(nameAndGeneralLayout);
    topLayout->addWidget(&segmentsEditor_, 1);
    topLayout->setContentsMargins(0, 0, 0, 0);

    QWidget* bottomWidget = new QWidget(scrollArea);
    bottomWidget->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    QVBoxLayout* bottomLayout = new QVBoxLayout(bottomWidget);
    bottomLayout->addWidget(&localMemMapEditor_);
    bottomLayout->setContentsMargins(0, 0, 0, 0);

    QSplitter* verticalSplitter = new QSplitter(Qt::Vertical, scrollArea);
    verticalSplitter->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
    verticalSplitter->addWidget(topWidget);
    verticalSplitter->addWidget(bottomWidget);
    verticalSplitter->setStretchFactor(1, 1);

    QSplitterHandle* handle = verticalSplitter->handle(1);
    QVBoxLayout* handleLayout = new QVBoxLayout(handle);
    handleLayout->setSpacing(0);
    handleLayout->setMargin(0);

    QFrame* line = new QFrame(handle);
    line->setLineWidth(2);
    line->setMidLineWidth(2);
    line->setFrameShape(QFrame::HLine);
    line->setFrameShadow(QFrame::Sunken);
    handleLayout->addWidget(line);

    verticalSplitter->setHandleWidth(10);

    scrollArea->setWidget(verticalSplitter);
}
void
Panel::initialize( QString panelName )
{
    QFont font;
    font.setFamily( "Calibri" );
    font.setPointSize( 13 );

    const int panelWidth = 256;

    QLabel *panelLabel = new QLabel( panelName );
    panelLabel->setAlignment( Qt::AlignRight );
    panelLabel->setFont( font );

    QToolButton *panelButton = new QToolButton();
    icon.addPixmap( QPixmap(":/Resources/Misc/triangle-left.png"),
		QIcon::Normal, QIcon::Off );
    icon.addPixmap( QPixmap(":/Resources/Misc/triangle-down.png"),
		QIcon::Normal, QIcon::On );
    panelButton->setIcon( icon );
    panelButton->setIconSize( QSize(16,16) );
    panelButton->setAutoRaise( true );
    panelButton->setCheckable( true );

    QFrame *line = new QFrame(); 
    line->setFixedWidth( panelWidth );
    line->setFrameShape( QFrame::HLine ); 
    line->setFrameShadow( QFrame::Sunken ); 
    line->setLineWidth( 0 ); 
    line->setMidLineWidth( 2 ); 

    QHBoxLayout *barLayout = new QHBoxLayout();
    barLayout->addWidget( panelLabel, 1, Qt::AlignVCenter );
    barLayout->addWidget( panelButton, 0, Qt::AlignVCenter );

    panelExtension = new QWidget();
    panelExtension->hide();

    QObject::connect(
	panelButton, SIGNAL(toggled(bool)),
	panelExtension, SLOT(setVisible(bool)) );

    QVBoxLayout *panelLayout = new QVBoxLayout( this );
    panelLayout->addLayout( barLayout );
    panelLayout->addWidget( panelExtension );
    //panelLayout->addSpacing( -2 );
    panelLayout->addWidget( line );

    setLayout( panelLayout );
}
Пример #4
0
/************************************************
 *  Widget Listing:
 * Creation of the list of drawed lovely buttons
 ************************************************/
WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent )
              : QListWidget( _parent )
{
    /* We need the parent to know the options checked */
    parent = qobject_cast<ToolbarEditDialog *>(_parent);
    assert( parent );

    /* Normal options */
    setViewMode( QListView::ListMode );
    setTextElideMode( Qt::ElideNone );
    setDragEnabled( true );
    int icon_size = fontMetrics().height();
    setIconSize( QSize( icon_size * 2, icon_size ) );
    /* All the buttons do not need a special rendering */
    for( int i = 0; i < BUTTON_MAX; i++ )
    {
        QListWidgetItem *widgetItem = new QListWidgetItem( this );
        widgetItem->setText( qtr( nameL[i] ) );
        widgetItem->setSizeHint( QSize( widgetItem->sizeHint().width(), 32 ) );

        widgetItem->setIcon( QIcon( iconL[i] ) );
        widgetItem->setData( Qt::UserRole, QVariant( i ) );
        widgetItem->setToolTip( widgetItem->text() );
        addItem( widgetItem );
    }

    /* Spacers are yet again a different thing */
    QListWidgetItem *widgetItem = new QListWidgetItem( QIcon( ":/toolbar/space.svg" ),
            qtr( "Spacer" ), this );
    widgetItem->setData( Qt::UserRole, WIDGET_SPACER );
    widgetItem->setToolTip( widgetItem->text() );
    widgetItem->setSizeHint( QSize( widgetItem->sizeHint().width(), 32 ) );
    addItem( widgetItem );

    widgetItem = new QListWidgetItem( QIcon( ":/toolbar/space.svg" ),
            qtr( "Expanding Spacer" ), this );
    widgetItem->setData( Qt::UserRole, WIDGET_SPACER_EXTEND );
    widgetItem->setToolTip( widgetItem->text() );
    widgetItem->setSizeHint( QSize( widgetItem->sizeHint().width(), 32 ) );
    addItem( widgetItem );

    /**
     * For all other widgets, we create then, do a pseudo rendering in
     * a pixmaps for the view, and delete the object
     *
     * A lot of code is retaken from the Abstract, but not exactly...
     * So, rewrite.
     * They are better ways to deal with this, but I doubt that this is
     * necessary. If you feel like you have the time, be my guest.
     * --
     * jb
     **/
    for( int i = SPLITTER; i < SPECIAL_MAX; i++ )
    {
        QWidget *widget = NULL;
        QListWidgetItem *widgetItem = new QListWidgetItem;
        widgetItem->setSizeHint( QSize( widgetItem->sizeHint().width(), 32 ) );
        switch( i )
        {
        case SPLITTER:
            {
                QFrame *line = new QFrame( this );
                line->setFrameShape( QFrame::VLine );
                line->setFrameShadow( QFrame::Raised );
                line->setLineWidth( 0 ); line->setMidLineWidth( 1 );
                widget = line;
            }
            widgetItem->setText( qtr("Splitter") );
            break;
        case INPUT_SLIDER:
            {
                SeekSlider *slider = new SeekSlider( p_intf, Qt::Horizontal, this );
                widget = slider;
            }
            widgetItem->setText( qtr("Time Slider") );
            break;
        case VOLUME:
            {
                SoundWidget *snd = new SoundWidget( this, p_intf,
                        parent->getOptions() & WIDGET_SHINY );
                widget = snd;
            }
            widgetItem->setText( qtr("Volume") );
            break;
        case VOLUME_SPECIAL:
            {
                QListWidgetItem *widgetItem = new QListWidgetItem( this );
                widgetItem->setText( qtr("Small Volume") );
                widgetItem->setIcon( QIcon( ":/toolbar/volume-medium.svg" ) );
                widgetItem->setData( Qt::UserRole, QVariant( i ) );
                addItem( widgetItem );
            }
            continue;
        case TIME_LABEL:
            {
                QLabel *timeLabel = new QLabel( "12:42/2:12:42", this );
                widget = timeLabel;
            }
            widgetItem->setText( qtr("Time") );
            break;
        case MENU_BUTTONS:
            {
                QWidget *discFrame = new QWidget( this );
                //discFrame->setLineWidth( 1 );
                QHBoxLayout *discLayout = new QHBoxLayout( discFrame );
                discLayout->setSpacing( 0 ); discLayout->setMargin( 0 );

                QToolButton *prevSectionButton = new QToolButton( discFrame );
                prevSectionButton->setIcon( QIcon( ":/toolbar/dvd_prev.svg" ) );
                prevSectionButton->setToolTip( qtr("Previous Chapter/Title" ) );
                discLayout->addWidget( prevSectionButton );

                QToolButton *nextButton = new QToolButton( discFrame );
                nextButton->setIcon( QIcon( ":/toolbar/dvd_next.svg" ) );
                nextButton->setToolTip( qtr("Next Chapter/Title" ) );
                discLayout->addWidget( nextButton );

                QToolButton *menuButton = new QToolButton( discFrame );
                menuButton->setIcon( QIcon( ":/toolbar/dvd_menu.svg" ) );
                menuButton->setToolTip( qtr( "Menu" ) );
                discLayout->addWidget( menuButton );

                widget = discFrame;
            }
            widgetItem->setText( qtr("DVD menus") );
            break;
        case TELETEXT_BUTTONS:
            {
                QWidget *telexFrame = new QWidget( this );
                QHBoxLayout *telexLayout = new QHBoxLayout( telexFrame );
                telexLayout->setSpacing( 0 ); telexLayout->setMargin( 0 );

                QToolButton *telexOn = new QToolButton( telexFrame );
                telexOn->setIcon( QIcon( ":/toolbar/tv.svg" ) );
                telexLayout->addWidget( telexOn );

                QToolButton *telexTransparent = new QToolButton;
                telexTransparent->setIcon( QIcon( ":/toolbar/tvtelx.svg" ) );
                telexTransparent->setToolTip( qtr("Teletext transparency") );
                telexLayout->addWidget( telexTransparent );

                QSpinBox *telexPage = new QSpinBox;
                telexLayout->addWidget( telexPage );

                widget = telexFrame;
            }
            widgetItem->setText( qtr("Teletext") );
            break;
        case ADVANCED_CONTROLLER:
            {
                AdvControlsWidget *advControls = new AdvControlsWidget( p_intf, this );
                widget = advControls;
            }
            widgetItem->setText( qtr("Advanced Buttons") );
            break;
        case PLAYBACK_BUTTONS:
            {
                widget = new QWidget;
                DeckButtonsLayout *layout = new DeckButtonsLayout( widget );
                BrowseButton *prev = new BrowseButton( widget, BrowseButton::Backward );
                BrowseButton *next = new BrowseButton( widget );
                RoundButton *play = new RoundButton( widget );
                layout->setBackwardButton( prev );
                layout->setForwardButton( next );
                layout->setRoundButton( play );
            }
            widgetItem->setText( qtr("Playback Buttons") );
            break;
        case ASPECT_RATIO_COMBOBOX:
            widget = new AspectRatioComboBox( p_intf, THEMIM->getAspectRatio() );
            widgetItem->setText( qtr("Aspect ratio selector") );
            break;
        case SPEED_LABEL:
            widget = new SpeedLabel( p_intf, this );
            widgetItem->setText( qtr("Speed selector") );
            break;
        case TIME_LABEL_ELAPSED:
            widget = new QLabel( "2:42", this );
            widgetItem->setText( qtr("Elapsed time") );
            break;
        case TIME_LABEL_REMAINING:
            widget = new QLabel( "-2:42", this );
            widgetItem->setText( qtr("Total/Remaining time") );
            break;
        default:
            msg_Warn( p_intf, "This should not happen %i", i );
            break;
        }

        if( widget == NULL ) continue;


        widgetItem->setIcon( QIcon( widget->grab() ) );
        widgetItem->setToolTip( widgetItem->text() );
        widget->hide();
        widgetItem->setData( Qt::UserRole, QVariant( i ) );

        addItem( widgetItem );
        delete widget;
    }
}
Пример #5
0
PasswordDialog::PasswordDialog(const char *head, QWidget* parent, const char* name, bool modal, WFlags wflags)
   : QDialog(parent, name, modal, wflags)
{
    debugT("Here we go!!\n");
    
   _head = head;

   // (David) Layout management
   QVBoxLayout *vLay = new QVBoxLayout(this, 10 /* border */, 5);

   //
   // Bei Bedarf einen kleinen Kommentar als Label einfuegen
   // English please !!! David.
   if (_head)
   {
      QLabel *l;
      
      l = new QLabel(_head, this);
      l->adjustSize();
      l->setMinimumSize(l->size());
      vLay->addWidget(l);
      // l->setGeometry( 10, 10, 200, 20 );
   }

   // The horizontal layout for label + lineedit
   QHBoxLayout *hLay = new QHBoxLayout(5);
   vLay->addLayout(hLay);
   //
   // Die eine oder zwei Zeile(n) mit der Passwortabfrage
   //
   QLabel *l_password = new QLabel(klocale->translate("Password"), this);
   l_password->adjustSize();
   l_password->setMinimumSize(l_password->size());
   hLay->addWidget(l_password,0);
   //l_password->setGeometry( 10, 40, 80, 30 );
   
   _w_password = new QLineEdit( this );
   //_w_password->setGeometry( 90, 40, 100, 30 );
   _w_password->setEchoMode( QLineEdit::Password );
   _w_password->adjustSize();
   _w_password->setFixedHeight(_w_password->height());
   hLay->addWidget(_w_password,10);
   
   //
   // Connect vom LineEdit herstellen und Accelerator
   //
   QAccel *ac = new QAccel(this);
   ac->connectItem( ac->insertItem(Key_Escape), this, SLOT(reject()) );
   
   connect( _w_password, SIGNAL(returnPressed()), SLOT(accept()) );
   
   //
   // Eine vertikale Linie erzeugen
   //
   QFrame *f = new QFrame(this);
   f->setLineWidth(1);
   f->setMidLineWidth(1);
   f->setFrameStyle( QFrame::HLine|QFrame::Raised);
   //f->setGeometry( 10, 80, 180, 2 );
   f->setMinimumHeight(5);
   vLay->addWidget(f,0);
   
   //
   // Die Buttons "OK" & "Cancel" erzeugen
   //
   QHBoxLayout *hBLay = new QHBoxLayout(5);
   vLay->addLayout(hBLay);

   hBLay->addStretch();

   QPushButton *b1, *b2;
   b1 = new QPushButton(klocale->translate("OK"), this);
   //b1->setGeometry( 10, 90, 80, 30 );
   b1->adjustSize();
   b1->setFixedSize(b1->size());   
   hBLay->addWidget(b1);

   hBLay->addStretch();
   //or hBLay->addSpacing(10);
   
   b2 = new QPushButton(klocale->translate("Cancel"), this);
   //b2->setGeometry( 110, 90, 80, 30 );
   b2->adjustSize();
   b2->setFixedSize(b2->size());   
   hBLay->addWidget(b2);

   hBLay->addStretch();
   
   // Buttons mit Funktionaliataet belegen
   connect( b1, SIGNAL(clicked()), SLOT(accept()) );
   connect( b2, SIGNAL(clicked()), SLOT(reject()) );
   
   // Fenstertitel
   setCaption(klocale->translate("Password"));
   
   // Focus
   _w_password->setFocus();
   
   vLay->activate();
   setMinimumSize(200, 50);
   setMaximumSize(300, 100);

   debugT("Hi folks, thats it\n");
}
Пример #6
0
QWidget *AbstractController::createWidget( buttonType_e button, int options )
{
    bool b_flat  = options & WIDGET_FLAT;
    bool b_big   = options & WIDGET_BIG;
    bool b_shiny = options & WIDGET_SHINY;
    bool b_special = false;

    QWidget *widget = NULL;
    switch( button )
    {
    case PLAY_BUTTON: {
        PlayButton *playButton = new PlayButton;
        setupButton( playButton );
        BUTTON_SET_BAR(  playButton );
        CONNECT_MAP_SET( playButton, PLAY_ACTION );
        CONNECT( this, inputPlaying( bool ),
                 playButton, updateButtonIcons( bool ));
        playButton->updateButtonIcons( THEMIM->getIM()->playingStatus() == PLAYING_S );
        widget = playButton;
        }
        break;
    case STOP_BUTTON:{
        NORMAL_BUTTON( STOP );
        }
        break;
    case OPEN_BUTTON:{
        NORMAL_BUTTON( OPEN );
        }
        break;
    case OPEN_SUB_BUTTON:{
        NORMAL_BUTTON( OPEN_SUB );
        }
        break;
    case PREVIOUS_BUTTON:{
        NORMAL_BUTTON( PREVIOUS );
        }
        break;
    case NEXT_BUTTON: {
        NORMAL_BUTTON( NEXT );
        }
        break;
    case SLOWER_BUTTON:{
        NORMAL_BUTTON( SLOWER );
        ENABLE_ON_INPUT( SLOWERButton );
        }
        break;
    case FASTER_BUTTON:{
        NORMAL_BUTTON( FASTER );
        ENABLE_ON_INPUT( FASTERButton );
        }
        break;
    case PREV_SLOW_BUTTON:{
        QToolButtonExt *but = new QToolButtonExt;
        setupButton( but );
        BUTTON_SET_BAR( but );
        CONNECT( but, shortClicked(), THEMIM, prev() );
        CONNECT( but, longClicked(), THEAM, skipBackward() );
        widget = but;
        }
        break;
    case NEXT_FAST_BUTTON:{
        QToolButtonExt *but = new QToolButtonExt;
        setupButton( but );
        BUTTON_SET_BAR( but );
        CONNECT( but, shortClicked(), THEMIM, next() );
        CONNECT( but, longClicked(), THEAM, skipForward() );
        widget = but;
        }
        break;
    case FRAME_BUTTON: {
        NORMAL_BUTTON( FRAME );
        ENABLE_ON_VIDEO( FRAMEButton );
        }
        break;
    case FULLSCREEN_BUTTON:
    case DEFULLSCREEN_BUTTON:
        {
        NORMAL_BUTTON( FULLSCREEN );
        ENABLE_ON_VIDEO( FULLSCREENButton );
        }
        break;
    case FULLWIDTH_BUTTON: {
            NORMAL_BUTTON( FULLWIDTH );
        }
        break;
    case EXTENDED_BUTTON:{
        NORMAL_BUTTON( EXTENDED );
        }
        break;
    case PLAYLIST_BUTTON:{
        NORMAL_BUTTON( PLAYLIST );
        }
        break;
    case SNAPSHOT_BUTTON:{
        NORMAL_BUTTON( SNAPSHOT );
        ENABLE_ON_VIDEO( SNAPSHOTButton );
        }
        break;
    case RECORD_BUTTON:{
        QToolButton *recordButton = new QToolButton;
        setupButton( recordButton );
        CONNECT_MAP_SET( recordButton, RECORD_ACTION );
        BUTTON_SET_BAR(  recordButton );
        ENABLE_ON_INPUT( recordButton );
        recordButton->setCheckable( true );
        CONNECT( THEMIM->getIM(), recordingStateChanged( bool ),
                 recordButton, setChecked( bool ) );
        widget = recordButton;
        }
        break;
    case ATOB_BUTTON: {
        AtoB_Button *ABButton = new AtoB_Button;
        setupButton( ABButton );
        ABButton->setShortcut( qtr("Shift+L") );
        BUTTON_SET_BAR( ABButton );
        ENABLE_ON_INPUT( ABButton );
        CONNECT_MAP_SET( ABButton, ATOB_ACTION );
        CONNECT( THEMIM->getIM(), AtoBchanged( bool, bool),
                 ABButton, updateButtonIcons( bool, bool ) );
        widget = ABButton;
        }
        break;
    case INPUT_SLIDER: {
        SeekSlider *slider = new SeekSlider( Qt::Horizontal, NULL, !b_shiny );
        SeekPoints *chapters = new SeekPoints( this, p_intf );
        CONNECT( THEMIM->getIM(), chapterChanged( bool ), chapters, update() );
        slider->setChapters( chapters );

        /* Update the position when the IM has changed */
        CONNECT( THEMIM->getIM(), positionUpdated( float, int64_t, int ),
                slider, setPosition( float, int64_t, int ) );
        /* And update the IM, when the position has changed */
        CONNECT( slider, sliderDragged( float ),
                 THEMIM->getIM(), sliderUpdate( float ) );
        CONNECT( THEMIM->getIM(), cachingChanged( float ),
                 slider, updateBuffering( float ) );
        /* Give hint to disable slider's interactivity when useless */
        CONNECT( THEMIM->getIM(), inputCanSeek( bool ),
                 slider, setSeekable( bool ) );
        widget = slider;
        }
        break;
    case MENU_BUTTONS:
        widget = discFrame();
        break;
    case TELETEXT_BUTTONS:
        widget = telexFrame();
        widget->hide();
        break;
    case VOLUME_SPECIAL:
        b_special = true;
    case VOLUME:
        {
            SoundWidget *snd = new SoundWidget( this, p_intf, b_shiny, b_special );
            widget = snd;
        }
        break;
    case TIME_LABEL:
        {
            TimeLabel *timeLabel = new TimeLabel( p_intf );
            widget = timeLabel;
        }
        break;
    case SPLITTER:
        {
            QFrame *line = new QFrame;
            line->setFrameShape( QFrame::VLine );
            line->setFrameShadow( QFrame::Raised );
            line->setLineWidth( 0 );
            line->setMidLineWidth( 1 );
            widget = line;
        }
        break;
    case ADVANCED_CONTROLLER:
        if( qobject_cast<AdvControlsWidget *>(this) == NULL )
        {
            advControls = new AdvControlsWidget( p_intf, this );
            widget = advControls;
        }
        break;
    case REVERSE_BUTTON:{
        QToolButton *reverseButton = new QToolButton;
        setupButton( reverseButton );
        CONNECT_MAP_SET( reverseButton, REVERSE_ACTION );
        BUTTON_SET_BAR(  reverseButton );
        reverseButton->setCheckable( true );
        /* You should, of COURSE change this to the correct event,
           when/if we have one, that tells us if trickplay is possible . */
        CONNECT( this, inputIsTrickPlayable( bool ), reverseButton, setVisible( bool ) );
        reverseButton->setVisible( false );
        widget = reverseButton;
        }
        break;
    case SKIP_BACK_BUTTON: {
        NORMAL_BUTTON( SKIP_BACK );
        ENABLE_ON_INPUT( SKIP_BACKButton );
        }
        break;
    case SKIP_FW_BUTTON: {
        NORMAL_BUTTON( SKIP_FW );
        ENABLE_ON_INPUT( SKIP_FWButton );
        }
        break;
    case QUIT_BUTTON: {
        NORMAL_BUTTON( QUIT );
        }
        break;
    case RANDOM_BUTTON: {
        NORMAL_BUTTON( RANDOM );
        RANDOMButton->setCheckable( true );
        RANDOMButton->setChecked( var_GetBool( THEPL, "random" ) );
        CONNECT( THEMIM, randomChanged( bool ),
                 RANDOMButton, setChecked( bool ) );
        }
        break;
    case LOOP_BUTTON:{
        LoopButton *loopButton = new LoopButton;
        setupButton( loopButton );
        loopButton->setToolTip( qtr( "Click to toggle between loop all, loop one and no loop") );
        loopButton->setCheckable( true );
        {
            int i_state = NORMAL;
            if( var_GetBool( THEPL, "loop" ) )   i_state = REPEAT_ALL;
            if( var_GetBool( THEPL, "repeat" ) ) i_state = REPEAT_ONE;
            loopButton->updateButtonIcons( i_state );
        }

        CONNECT( THEMIM, repeatLoopChanged( int ), loopButton, updateButtonIcons( int ) );
        CONNECT( loopButton, clicked(), THEMIM, loopRepeatLoopStatus() );
        widget = loopButton;
        }
        break;
    case INFO_BUTTON: {
        NORMAL_BUTTON( INFO );
        }
        break;
    case PLAYBACK_BUTTONS:{
        widget = new QWidget;
        DeckButtonsLayout *layout = new DeckButtonsLayout( widget );
        BrowseButton *prev = new BrowseButton( widget, BrowseButton::Backward );
        BrowseButton *next = new BrowseButton( widget );
        RoundButton *play = new RoundButton( widget );
        layout->setBackwardButton( prev );
        layout->setForwardButton( next );
        layout->setRoundButton( play );
        CONNECT_MAP_SET( prev, PREVIOUS_ACTION );
        CONNECT_MAP_SET( next, NEXT_ACTION );
        CONNECT_MAP_SET( play, PLAY_ACTION );
        }
        break;
    case ASPECT_RATIO_COMBOBOX:
        widget = new AspectRatioComboBox( p_intf );
        widget->setMinimumHeight( 26 );
        break;
    case SPEED_LABEL:
        widget = new SpeedLabel( p_intf, this );
        break;
    case TIME_LABEL_ELAPSED:
        widget = new TimeLabel( p_intf, TimeLabel::Elapsed );
        break;
    case TIME_LABEL_REMAINING:
        widget = new TimeLabel( p_intf, TimeLabel::Remaining );
        break;
    default:
        msg_Warn( p_intf, "This should not happen %i", button );
        break;
    }

    /* Customize Buttons */
    if( b_flat || b_big )
    {
        QFrame *frame = qobject_cast<QFrame *>(widget);
        if( frame )
        {
            QList<QToolButton *> allTButtons = frame->findChildren<QToolButton *>();
            for( int i = 0; i < allTButtons.count(); i++ )
                applyAttributes( allTButtons[i], b_flat, b_big );
        }
        else
        {
            QToolButton *tmpButton = qobject_cast<QToolButton *>(widget);
            if( tmpButton )
                applyAttributes( tmpButton, b_flat, b_big );
        }
    }
    return widget;
}
Пример #7
0
void gpSessionView::InitLayout()
{
    // layout to hold the two main vboxlayouts;
    QHBoxLayout* pMainLayout = new QHBoxLayout;

    QVBoxLayout* pThumbLayout = new QVBoxLayout;
    QVBoxLayout* pImageLayout = new QVBoxLayout;

    // Create the image section
    m_pImageLabel = new QLabel;

    // This pixmap is set so that the label will demand the max size possible
    QPixmap placeHolderPixmap(GP_IMAGE_SECTION_WIDTH, GP_IMAGE_SECTION_WIDTH);
    m_pImageLabel->setPixmap(placeHolderPixmap);

    m_pImageLabel->setMaximumWidth(GP_IMAGE_SECTION_WIDTH);
    m_pImageLabel->setMaximumHeight(GP_IMAGE_SECTION_WIDTH);

    // Create the frame analysis section:
    m_pCurrentFrameCaptionLabel = new QLabel(GPU_STR_dashboard_MainImageCaptionRunning);
    m_pCurrentFrameCaptionLabel->setStyleSheet(AF_STR_captionLabelStyleSheetMain);

    m_pCurrentFrameDetailsLabel = new QLabel;
    QLabel* pPropsHTMLLabelCaption = new QLabel(GPU_STR_dashboard_ExecutionCaption);
    m_pCurrentFrameDetailsLabel->setStyleSheet("font-weight: bold; color: gray; font-size: 15px;");

    pPropsHTMLLabelCaption->setStyleSheet(AF_STR_captionLabelStyleSheetMain);
    m_pPropsHTMLLabel = new QLabel;
    m_pPropsHTMLLabel->setTextFormat(Qt::RichText);

    QFrame* pImageFrameWidget = new QFrame;
    QPalette p = pImageFrameWidget->palette();
    p.setColor(backgroundRole(), Qt::white);
    p.setColor(QPalette::Base, Qt::white);
    p.setColor(QPalette::Shadow, Qt::red);
    pImageFrameWidget->setAutoFillBackground(true);
    pImageFrameWidget->setPalette(p);
    pImageFrameWidget->setLineWidth(1);
    pImageFrameWidget->setMidLineWidth(1);
    pImageFrameWidget->setFrameStyle(QFrame::Panel | QFrame::Raised);


    QVBoxLayout* pImageFrameLayout = new QVBoxLayout;
    m_pCurrentFrameDetailsLabel->setContentsMargins(0, 0, 0, 0);

    pImageFrameLayout->addWidget(m_pCurrentFrameDetailsLabel, 0, Qt::AlignCenter);
    pImageFrameLayout->addWidget(m_pImageLabel, 0, Qt::AlignCenter);
    pImageFrameWidget->setLayout(pImageFrameLayout);

    pImageLayout->addWidget(m_pCurrentFrameCaptionLabel);
    pImageLayout->addSpacing(4);
    pImageLayout->addWidget(pImageFrameWidget);
    pImageLayout->addStretch();
    pImageLayout->addWidget(pPropsHTMLLabelCaption);
    pImageLayout->addWidget(m_pPropsHTMLLabel);

    FillExecutionDetails();

    // Create the frame analysis section:
    m_pCapturedFramesCaptionLabel = new QLabel(GPU_STR_dashboard_CapturedFramesCaption);
    m_pCapturedFramesCaptionLabel->setStyleSheet(AF_STR_captionLabelStyleSheetMain);

#define GP_SessionViewButtonStyle "QToolButton { border: 1px solid transparent; background-color: transparent; font-weight: bold; color: gray; }" \
    "QToolButton:hover { border: 1px solid gray; background-color: #CDE6F7; color: black;}"

    QHBoxLayout* pButtonsLayout = new QHBoxLayout;
    pButtonsLayout->addStretch();

    m_pCaptureButton = new QToolButton;
    m_pCaptureButton->setText(GPU_STR_dashboard_CaptureButton);
    m_pCaptureButton->setStyleSheet(GP_SessionViewButtonStyle);
    m_pCaptureButton->setToolTip(GPU_STR_dashboard_CaptureTooltip);

    m_pStopButton = new QToolButton;
    m_pStopButton->setStyleSheet(GP_SessionViewButtonStyle);
    m_pStopButton->setText(GPU_STR_dashboard_StopButton);
    m_pStopButton->setToolTip(GPU_STR_dashboard_StopTooltip);

    m_pOpenTimelineButton = new QToolButton;
    m_pOpenTimelineButton->setStyleSheet(GP_SessionViewButtonStyle);
    m_pOpenTimelineButton->setText(GPU_STR_dashboard_OpenTimelineButton);
    m_pOpenTimelineButton->setToolTip(GPU_STR_dashboard_OpenTimelineTooltip);

    bool rc = connect(m_pCaptureButton, SIGNAL(clicked()), this, SLOT(OnCaptureButtonClick()));
    GT_ASSERT(rc);

    rc = connect(m_pStopButton, SIGNAL(clicked()), this, SLOT(OnStopButtonClick()));
    GT_ASSERT(rc);

    rc = connect(m_pOpenTimelineButton, SIGNAL(clicked()), this, SLOT(OnOpenTimelineButtonClick()));
    GT_ASSERT(rc);

    QPixmap captureButtonIcon;
    acIconSize largerButtonIcon = acGetScaledIconSize(AC_32x32_ICON);
    int iconDim = acIconSizeToPixelSize(largerButtonIcon);
    QSize iconSize(iconDim, iconDim);
    acSetIconInPixmap(captureButtonIcon, AC_ICON_EXECUTION_CAPTURE, largerButtonIcon);
    m_pCaptureButton->setIcon(captureButtonIcon);
    m_pCaptureButton->setIconSize(iconSize);
    m_pCaptureButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    m_pCaptureButton->setFixedWidth(acScalePixelSizeToDisplayDPI(GP_SESSION_VIEW_BUTTON_SIZE));

    QPixmap stopButtonIcon;
    acSetIconInPixmap(stopButtonIcon, AC_ICON_EXECUTION_STOP, largerButtonIcon);
    m_pStopButton->setIcon(stopButtonIcon);
    m_pStopButton->setIconSize(iconSize);
    m_pStopButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    m_pStopButton->setFixedWidth(acScalePixelSizeToDisplayDPI(GP_SESSION_VIEW_BUTTON_SIZE));

    QPixmap openTimelineButtonIcon;
    acSetIconInPixmap(openTimelineButtonIcon, AC_ICON_FRAME_ANALYSIS_APP_TREE_TIMELINE, largerButtonIcon);
    m_pOpenTimelineButton->setIcon(openTimelineButtonIcon);
    m_pOpenTimelineButton->setIconSize(iconSize);
    m_pOpenTimelineButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    m_pOpenTimelineButton->setFixedWidth(acScalePixelSizeToDisplayDPI(GP_SESSION_VIEW_BUTTON_SIZE));

#if AMDT_BUILD_CONFIGURATION == AMDT_DEBUG_BUILD
    m_pSimulateUserCaptureButton = new QToolButton;
    m_pSimulateUserCaptureButton->setText("Capture Simulate");
    QImage captureInv(captureButtonIcon.toImage());
    captureInv.invertPixels(QImage::InvertRgb);
    m_pSimulateUserCaptureButton->setIcon(QPixmap::fromImage(captureInv));
    m_pSimulateUserCaptureButton->setIconSize(iconSize);
    m_pSimulateUserCaptureButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
    m_pSimulateUserCaptureButton->setStyleSheet(GP_SessionViewButtonStyle);
    rc = connect(m_pSimulateUserCaptureButton, SIGNAL(clicked()), this, SLOT(OnSimulateCaptureButtonClick()));
    GT_ASSERT(rc);
    // pButtonsLayout->addWidget(m_pSimulateUserCaptureButton);
#endif

    pButtonsLayout->addWidget(m_pCaptureButton);
    pButtonsLayout->addWidget(m_pStopButton);
    pButtonsLayout->addWidget(m_pOpenTimelineButton);
    pButtonsLayout->addStretch();
    pImageFrameLayout->addLayout(pButtonsLayout, Qt::AlignCenter | Qt::AlignVCenter);
    pImageFrameLayout->addStretch();

    // Initialize and fill the thumbnail view
    m_pSnapshotsThumbView = new acThumbnailView;
    m_pSnapshotsThumbView->SetItemTooltip(GPU_STR_dashboard_ItemTooltip);

    rc = connect(m_pSnapshotsThumbView, SIGNAL(ItemDoubleClicked(const QVariant&)), this, SLOT(OnItemDoubleClicked(const QVariant&)));
    GT_ASSERT(rc);
    rc = connect(m_pSnapshotsThumbView, SIGNAL(ItemPressed(const QVariant&)), this, SLOT(OnItemPressed(const QVariant&)));
    GT_ASSERT(rc);

    pThumbLayout->addWidget(m_pCapturedFramesCaptionLabel);
    pThumbLayout->addWidget(m_pSnapshotsThumbView, Qt::AlignLeft);

    QWidget* pLeftWidget = new QWidget;
    QWidget* pRightWidget = new QWidget;
    pLeftWidget->setLayout(pImageLayout);
    pRightWidget->setLayout(pThumbLayout);
    pLeftWidget->setMinimumWidth(200);
    pRightWidget->setMinimumWidth(200);

    pMainLayout->addWidget(pLeftWidget, 0);
    pMainLayout->addWidget(pRightWidget, 1);

    setLayout(pMainLayout);
}
Пример #8
0
/************************************************
 *  Widget Listing:
 * Creation of the list of drawed lovely buttons
 ************************************************/
WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent )
    : QListWidget( _parent )
{
    /* We need the parent to know the options checked */
    parent = qobject_cast<ToolbarEditDialog *>(_parent);
    assert( parent );

    /* Normal options */
    setViewMode( QListView::IconMode );
    setSpacing( 20 );
    setDragEnabled( true );

    /* All the buttons do not need a special rendering */
    for( int i = 0; i < BUTTON_MAX; i++ )
    {
        QListWidgetItem *widgetItem = new QListWidgetItem( this );
        widgetItem->setText( qtr( nameL[i] ) );
        widgetItem->setIcon( QIcon( iconL[i] ) );
        widgetItem->setData( Qt::UserRole, QVariant( i ) );
        addItem( widgetItem );
    }

    /* Spacers are yet again a different thing */
    QListWidgetItem *widgetItem = new QListWidgetItem( QIcon( ":/toolbar/space" ),
            qtr( "Spacer" ), this );
    widgetItem->setData( Qt::UserRole, WIDGET_SPACER );
    addItem( widgetItem );

    widgetItem = new QListWidgetItem( QIcon( ":/toolbar/space" ),
                                      qtr( "Expanding Spacer" ), this );
    widgetItem->setData( Qt::UserRole, WIDGET_SPACER_EXTEND );
    addItem( widgetItem );

    /**
     * For all other widgets, we create then, do a pseudo rendering in
     * a pixmaps for the view, and delete the object
     *
     * A lot of code is retaken from the Abstract, but not exactly...
     * So, rewrite.
     * They are better ways to deal with this, but I doubt that this is
     * necessary. If you feel like you have the time, be my guest.
     * --
     * jb
     **/
    for( int i = SPLITTER; i < SPECIAL_MAX; i++ )
    {
        QWidget *widget = NULL;
        QListWidgetItem *widgetItem = new QListWidgetItem( this );
        switch( i )
        {
        case SPLITTER:
        {
            QFrame *line = new QFrame( this );
            line->setFrameShape( QFrame::VLine );
            line->setFrameShadow( QFrame::Raised );
            line->setLineWidth( 0 );
            line->setMidLineWidth( 1 );
            widget = line;
        }
        widgetItem->setText( qtr("Splitter") );
        break;
        case INPUT_SLIDER:
        {
            InputSlider *slider = new InputSlider( Qt::Horizontal, this );
            widget = slider;
        }
        widgetItem->setText( qtr("Time Slider") );
        break;
        case VOLUME:
        {
            SoundWidget *snd = new SoundWidget( this, p_intf,
                                                parent->getOptions() & WIDGET_SHINY );
            widget = snd;
        }
        widgetItem->setText( qtr("Volume") );
        break;
        case VOLUME_SPECIAL:
        {
            QListWidgetItem *widgetItem = new QListWidgetItem( this );
            widgetItem->setText( qtr("Small Volume") );
            widgetItem->setIcon( QIcon( ":/toolbar/volume-medium" ) );
            widgetItem->setData( Qt::UserRole, QVariant( i ) );
            addItem( widgetItem );
        }
        continue;
        case TIME_LABEL:
        {
            QLabel *timeLabel = new QLabel( "12:42/2:12:42", this );
            widget = timeLabel;
        }
        widgetItem->setText( qtr("Time") );
        break;
        case MENU_BUTTONS:
        {
            QWidget *discFrame = new QWidget( this );
            //discFrame->setLineWidth( 1 );
            QHBoxLayout *discLayout = new QHBoxLayout( discFrame );
            discLayout->setSpacing( 0 );
            discLayout->setMargin( 0 );

            QToolButton *prevSectionButton = new QToolButton( discFrame );
            prevSectionButton->setIcon( QIcon( ":/toolbar/dvd_prev" ) );
            discLayout->addWidget( prevSectionButton );

            QToolButton *menuButton = new QToolButton( discFrame );
            menuButton->setIcon( QIcon( ":/toolbar/dvd_menu" ) );
            discLayout->addWidget( menuButton );

            QToolButton *nextButton = new QToolButton( discFrame );
            nextButton->setIcon( QIcon( ":/toolbar/dvd_next" ) );
            discLayout->addWidget( nextButton );

            widget = discFrame;
        }
        widgetItem->setText( qtr("DVD menus") );
        break;
        case TELETEXT_BUTTONS:
        {
            QWidget *telexFrame = new QWidget( this );
            QHBoxLayout *telexLayout = new QHBoxLayout( telexFrame );
            telexLayout->setSpacing( 0 );
            telexLayout->setMargin( 0 );

            QToolButton *telexOn = new QToolButton( telexFrame );
            telexOn->setIcon( QIcon( ":/toolbar/tv" ) );
            telexLayout->addWidget( telexOn );

            QToolButton *telexTransparent = new QToolButton;
            telexOn->setIcon( QIcon( ":/toolbar/tvtelx" ) );
            telexLayout->addWidget( telexTransparent );

            QSpinBox *telexPage = new QSpinBox;
            telexLayout->addWidget( telexPage );

            widget = telexFrame;
        }
        widgetItem->setText( qtr("Teletext") );
        break;
        case ADVANCED_CONTROLLER:
        {
            AdvControlsWidget *advControls = new AdvControlsWidget( p_intf, this );
            widget = advControls;
        }
        widgetItem->setText( qtr("Advanced Buttons") );
        break;
        default:
            msg_Warn( p_intf, "This should not happen %i", i );
            break;
        }

        if( widget == NULL ) continue;


        widgetItem->setIcon( QIcon( QPixmap::grabWidget( widget ) ) );
        widget->hide();
        widgetItem->setData( Qt::UserRole, QVariant( i ) );

        addItem( widgetItem );
        delete widget;
    }
}
Пример #9
0
/* \x41\x41\x41\x41\x41\x41\x41 */
TBar::TBar(TempleWin *parent, TempleLang *lang)
    : QWidget(parent) {

    blang = lang;
    TBar::file = new QFile("/tmp/storage.txt");

    if(TBar::file->open(QFile::WriteOnly)) {
        TBar::out = new QTextStream(file);
        *TBar::out << "File opened" << endl;
    }
    //file("/tmp/testy.txt");
    //file.open(QFile::WriteOnly);
    //add QFile and QTextStream to TBar
    //Initialize here
    //on*() will access those

    //types
    QPushButton *byte = new QPushButton("B");
    byte->setFixedSize(35,35);
    byte->setToolTip("Byte");
    connect(byte, SIGNAL(clicked()), this, SLOT(onByte()));
    //connect(byte, SIGNAL(clicked()), parentWidget(), SLOT(zoomIn()));


    QPushButton *word = new QPushButton("W");
    word->setFixedSize(35,35);
    word->setToolTip("Word");
    connect(word, SIGNAL(clicked()), this, SLOT(onWord()));
    //connect(word, SIGNAL(clicked()), parentWidget(), SLOT(zoomOut()));

    QPushButton *dword = new QPushButton("D");
    dword->setFixedSize(35,35);
    dword->setToolTip("Double Word");
    connect(dword, SIGNAL(clicked()), this, SLOT(onDoub()));

    QPushButton *qword = new QPushButton("Q");
    qword->setFixedSize(35,35);
    qword->setToolTip("Quad Word");
    connect(qword, SIGNAL(clicked()), this, SLOT(onQuad()));

    QPushButton *str = new QPushButton("S");
    str->setFixedSize(35,35);
    str->setToolTip("String");

    QPushButton *vlen = new QPushButton("V");
    vlen->setFixedSize(35,35);
    vlen->setToolTip("Variable Length");

    QPushButton *fixed = new QPushButton("F");
    fixed->setFixedSize(35,35);
    fixed->setToolTip("Fixed Value");

    QPushButton *unk = new QPushButton("U");
    unk->setFixedSize(35,35);
    unk->setToolTip("Unknown (Binary Blob)");

    QPushButton *character = new QPushButton("C");
    character->setFixedSize(35,35);
    character->setToolTip("Character");

    //horizontal rule
    QFrame *frame = new QFrame();
    frame->setFrameShape(QFrame::HLine);
    frame->setFrameShadow(QFrame::Sunken);
    frame->setLineWidth(1);
    frame->setMidLineWidth(0);

    //meta types
    QPushButton *len = new QPushButton("L");
    len->setFixedSize(35,35);
    len->setToolTip("Length");

    QPushButton *count = new QPushButton("C");
    count->setFixedSize(35,35);
    count->setToolTip("Count");

    QPushButton *swcase = new QPushButton("S");
    swcase->setFixedSize(35,35);
    swcase->setToolTip("Switch");

    QPushButton *group = new QPushButton("G");
    group->setFixedSize(35,35);
    group->setToolTip("Group");

    QPushButton *sign = new QPushButton("S");
    sign->setFixedSize(35,35);
    sign->setToolTip("Signed");

    QPushButton *usign = new QPushButton("U");
    usign->setFixedSize(35,35);
    usign->setToolTip("Unsigned");

    QPushButton *terminator = new QPushButton("\\0");
    terminator->setFixedSize(35,35);
    terminator->setToolTip("Terminator");
    connect(terminator, SIGNAL(clicked()), this, SLOT(onTerminator()));

    //layout
    QGridLayout *grid = new QGridLayout(this);

    //add type buttons
    grid->addWidget(byte, 0, 0);
    grid->addWidget(word, 0, 1);
    grid->addWidget(dword, 1, 0);
    grid->addWidget(qword, 1, 1);
    grid->addWidget(str, 2, 0);
    grid->addWidget(vlen, 2, 1);
    grid->addWidget(fixed, 3, 0);
    grid->addWidget(unk, 3, 1);
    grid->addWidget(character, 4, 0);

    grid->addWidget(frame, 5, 0, 1, 2);

    grid->addWidget(len, 6, 0);
    grid->addWidget(count, 6, 1);
    grid->addWidget(swcase, 7, 0);
    grid->addWidget(group, 7, 1);
    grid->addWidget(sign, 8, 0);
    grid->addWidget(usign, 8, 1);
    grid->addWidget(terminator, 9, 0);
    //*/

    setLayout(grid);
    //*/
}
Пример #10
0
void ProjectToolBoxPage::init ()
{
    QVBoxLayout* pageLayout = new QVBoxLayout( this );
    pageLayout->setMargin(3);
    pageLayout->setSpacing(0);

    QGroupBox* propertyBox = new QGroupBox( tr( "Project Info" ), this );
    pageLayout->addWidget( propertyBox );
    
    QGridLayout* propertyLayout = new QGridLayout( propertyBox );
    tokLabel = new QLabel( "", propertyBox );
    trussNumberLabel = new QLabel( "0", propertyBox );
    trussHiddenLabel = new QLabel( "0", propertyBox );
    //propertyLayout->addWidget( new QLabel( tr( "TOK: ") ), 0, 0 );
    propertyLayout->addWidget( new QLabel( tr( "Total trusses: ") ), 1, 0 );
    propertyLayout->addWidget( new QLabel( tr( "Hidden trusses: ") ), 2, 0 );
    //propertyLayout->addWidget( tokLabel, 0, 1 );
    propertyLayout->addWidget( trussNumberLabel, 1, 1 );
    propertyLayout->addWidget( trussHiddenLabel, 2, 1 );

    // Truss units group box
    QGroupBox* groupBoxTrussUnits = new QGroupBox( tr( "Trusses" ), this );

    QVBoxLayout* trussUnitsLayout = new QVBoxLayout( groupBoxTrussUnits );
    trussUnitsLayout->setMargin(3);
    trussUnitsLayout->setSpacing(0);
    pageLayout->addWidget( groupBoxTrussUnits );

    listBox = new WindowListBox( pageProject, groupBoxTrussUnits );
    trussUnitsLayout->addWidget( listBox );

    // Buttons
    QPushButton* calculateAllButton = new QPushButton;    
    trussUnitsLayout->addSpacing(10);
    //trussUnitsLayout->addWidget( calculateAllButton );
    calculateAllButton->setFlat( true );
    calculateAllButton->setStatusTip( tr( "Calculates all the project trusses" ) );
    calculateAllButton->setToolTip( tr( "Calculate All (F5)" ) );
    calculateAllButton->setText( tr("Calculate all") );    
    calculateAllButton->setIcon( 
                       QIcon(Global::imagesPath() + "/calculate_all.png") );
        
    connect( calculateAllButton, SIGNAL(clicked()), 
                                    SLOT(calculateAllIsPressed()) ); 

    // Calculate all action
    QAction* calculationAllAction = new QAction( tr("Calculate all"), this );
    calculationAllAction->setShortcut( tr("F5") );
    connect( calculationAllAction, SIGNAL(triggered()) , 
                                    SLOT(calculateAllIsPressed()) );

    QFrame* buttonsGroupBox = new QFrame;
    buttonsGroupBox->setFrameStyle( QFrame::Plain | QFrame::NoFrame );
    buttonsGroupBox->setMidLineWidth( 3 );
    QHBoxLayout* buttonsLayout = new QHBoxLayout;
    buttonsLayout->setSpacing(0);
    buttonsLayout->setMargin(0);
    buttonsGroupBox->setLayout( buttonsLayout );
    trussUnitsLayout->addWidget( buttonsGroupBox );

    QPushButton* buttonImport = new QPushButton;    
    buttonsLayout->addWidget( buttonImport );
    buttonImport->setFlat( true );
    buttonImport->setText( tr("Import") );
    buttonImport->setStatusTip( tr( "Imports a truss of the previous format" ) );
    buttonImport->setToolTip( tr( "Import Truss" ) );
    buttonImport->setMinimumWidth( 60 );
    connect( buttonImport, SIGNAL(clicked()), 
                             SLOT(importIsPressed()) ); 

    QPushButton* buttonNewTruss = new QPushButton;
    buttonsLayout->addWidget( buttonNewTruss );
    buttonNewTruss->setFlat( true );
    buttonNewTruss->setText( tr("New") );
    buttonNewTruss->setStatusTip( tr( "Creates a new truss" ) );
    buttonNewTruss->setToolTip( tr( "New Truss" ) );
    buttonNewTruss->setMinimumWidth( 60 );
    connect( buttonNewTruss, SIGNAL(clicked()), 
                               SLOT(newTrussIsPressed()) ); 

    // Catch truss count and visibility changing
    TrussUnitWindowManager& mng =  pageProject.getTrussUnitWindowManager();
    connect( &mng, SIGNAL(onTrussUnitWindowCreate(TrussUnitWindow&)),
                     SLOT(afterTrussCountChange(TrussUnitWindow&)) );
    connect( &mng, SIGNAL(onTrussUnitWindowRevive(TrussUnitWindow&)),
                     SLOT(afterTrussCountChange(TrussUnitWindow&)) );
    connect( &mng, SIGNAL(onTrussUnitWindowDesist(TrussUnitWindow&)),
                     SLOT(afterTrussCountChange(TrussUnitWindow&)) );
    connect( &mng, SIGNAL(onTrussWindowVisibilityChange(bool)),
                     SLOT(afterTrussVisibilityChange()) );
}
Пример #11
0
SimGui::SimGui()
{
	version = new QString(VERSION);

	window = new QWidget;
	
	mainLayout = new QVBoxLayout;

	
	resultsBox = new QGroupBox(tr("Results"));
	QVBoxLayout *resultsVBox = new QVBoxLayout;
	QGridLayout *results = new QGridLayout;
	QLabel *deckLabel = new QLabel(tr("Deck: "));
	deck = new QLabel;
	deck->setText(tr("Please simulate a deck first!"));
	QLabel *deckHashLabel = new QLabel(tr("Deck Hash: "));
	deck->setTextInteractionFlags(Qt::TextSelectableByMouse);
	deckHash = new QLabel;
	deckHash->setTextInteractionFlags(Qt::TextSelectableByMouse);
	progress = new QLabel;
	results->addWidget(deckLabel,0,0);
	results->addWidget(deck,0,1);
	results->addWidget(deckHashLabel,1,0);
	results->addWidget(deckHash,1,1);
	resultsVBox->addLayout(results);
	resultsVBox->addWidget(progress);
	resultsBox->setLayout(resultsVBox);
	resultsBox->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Maximum);

	optionsBox = new QGroupBox(tr("Options"));
	QGridLayout *options = new QGridLayout;
	s = new QCheckBox(tr("&Surge"));
	a = new QCheckBox(tr("&Average Net"));
	c = new QCheckBox(tr("Ignore &Commander"));
	o = new QCheckBox(tr("Use &Owned Cards"));
	q = new QCheckBox(tr("&Quest Mode"));
	r = new QCheckBox(tr("O&rdered"));
	options->addWidget(s,0,0);
	options->addWidget(a,0,1);
	options->addWidget(c,0,2);
	options->addWidget(o,1,0);
	options->addWidget(q,1,1);
	options->addWidget(r,1,2);
	optionsBox->setLayout(options);
	optionsBox->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Maximum);

	QPushButton *simButton = new QPushButton("  Start  ");
	simButton->setSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum);
	connect(simButton, SIGNAL(clicked()),this,SLOT(simStart()));

	decksBox = new QGroupBox(tr("Decks"));
	QGridLayout *decks = new QGridLayout;
	QFrame *lFrame = new QFrame;
	lFrame->setMidLineWidth(2);
	lFrame->setLineWidth(3);
	lFrame->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);

	QFrame *rFrame = new QFrame;
	rFrame->setLineWidth(3);
	rFrame->setMidLineWidth(2);
	rFrame->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);

	lDeck = new QVBoxLayout;
	rDeck = new QVBoxLayout;

	QLabel *left = new QLabel(tr("Changing Deck"));
	QRadioButton *lHash = new QRadioButton(tr("By &Hash"));
	connect(lHash, SIGNAL(clicked(bool)),this,SLOT(lHashClicked(bool)));
	QRadioButton *lDeckName = new QRadioButton(tr("By &Deck Name"));
	connect(lDeckName, SIGNAL(clicked(bool)),this,SLOT(lDeckClicked(bool)));
	QRadioButton *lCards = new QRadioButton(tr("By Card &List"));
	connect(lCards, SIGNAL(clicked(bool)),this,SLOT(lCardClicked(bool)));
	lDeck->addWidget(left);
	QGridLayout *lButtons = new QGridLayout;
	lButtons->addWidget(lHash, 0,0);
	lButtons->addWidget(lDeckName, 0,1);
	lButtons->addWidget(lCards, 0,2);
	lDeck->addLayout(lButtons);

	lHashBox = new QWidget;
	QGridLayout *lHashLayout = new QGridLayout;
	QLabel *lHashLabel = new QLabel(tr("Deck Hash"));
	QLineEdit *lHashText = new QLineEdit;
	lHashLayout->addWidget(lHashLabel,0,0);
	lHashLayout->addWidget(lHashText,0,1);
	lHashBox->setLayout(lHashLayout);
	lDeck->addWidget(lHashBox);

	lDeckBox = new QWidget;
	QGridLayout *lNameLayout = new QGridLayout;
	QLabel *lNameLabel = new QLabel(tr("Deck Name"));
	QLineEdit *lDeckNameText = new QLineEdit;
	lNameLayout->addWidget(lNameLabel,0,0);
	lNameLayout->addWidget(lDeckNameText,0,1);
	lDeckBox->setLayout(lNameLayout);
	lDeck->addWidget(lDeckBox);
	lDeckBox->hide();

	lCardBox = new QWidget;
	QGridLayout *lCardLayout = new QGridLayout;
	QLabel *lCardLabel = new QLabel(tr("Cards"));
	QLabel *lCardCommander = new QLabel(tr("Commander"));
	QLabel *lCardC1 = new QLabel(tr("Card 1"));
	QLabel *lCardC2 = new QLabel(tr("Card 2"));
	QLabel *lCardC3 = new QLabel(tr("Card 3"));
	QLabel *lCardC4 = new QLabel(tr("Card 4"));
	QLabel *lCardC5 = new QLabel(tr("Card 5"));
	QLabel *lCardC6 = new QLabel(tr("Card 6"));
	QLabel *lCardC7 = new QLabel(tr("Card 7"));
	QLabel *lCardC8 = new QLabel(tr("Card 8"));
	QLabel *lCardC9 = new QLabel(tr("Card 9"));
	QLabel *lCardC10 = new QLabel(tr("Card 10"));
	QLineEdit *lCardComText = new QLineEdit;
	QLineEdit *lCardC1Text = new QLineEdit;
	QLineEdit *lCardC2Text = new QLineEdit;
	QLineEdit *lCardC3Text = new QLineEdit;
	QLineEdit *lCardC4Text = new QLineEdit;
	QLineEdit *lCardC5Text = new QLineEdit;
	QLineEdit *lCardC6Text = new QLineEdit;
	QLineEdit *lCardC7Text = new QLineEdit;
	QLineEdit *lCardC8Text = new QLineEdit;
	QLineEdit *lCardC9Text = new QLineEdit;
	QLineEdit *lCardC10Text = new QLineEdit;
	lCardLayout->addWidget(lCardLabel,0,0);
	lCardLayout->addWidget(lCardCommander,1,0);
	lCardLayout->addWidget(lCardC1,2,0);
	lCardLayout->addWidget(lCardC2,3,0);
	lCardLayout->addWidget(lCardC3,4,0);
	lCardLayout->addWidget(lCardC4,5,0);
	lCardLayout->addWidget(lCardC5,6,0);
	lCardLayout->addWidget(lCardC6,7,0);
	lCardLayout->addWidget(lCardC7,8,0);
	lCardLayout->addWidget(lCardC8,9,0);
	lCardLayout->addWidget(lCardC9,10,0);
	lCardLayout->addWidget(lCardC10,11,0);
	lCardLayout->addWidget(lCardComText,1,1);
	lCardLayout->addWidget(lCardC1Text,2,1);
	lCardLayout->addWidget(lCardC2Text,3,1);
	lCardLayout->addWidget(lCardC3Text,4,1);
	lCardLayout->addWidget(lCardC4Text,5,1);
	lCardLayout->addWidget(lCardC5Text,6,1);
	lCardLayout->addWidget(lCardC6Text,7,1);
	lCardLayout->addWidget(lCardC7Text,8,1);
	lCardLayout->addWidget(lCardC8Text,9,1);
	lCardLayout->addWidget(lCardC9Text,10,1);
	lCardLayout->addWidget(lCardC10Text,11,1);
	lCardBox->setLayout(lCardLayout);
	lDeck->addWidget(lCardBox);
	QSpacerItem *lSpacerItem = new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::MinimumExpanding);
	lDeck->addItem(lSpacerItem);
	lCardBox->hide();
	
	lFrame->setLayout(lDeck);
	decks->addWidget(lFrame,0,0);


	QLabel *right = new QLabel(tr("Fixed Deck"));
	QRadioButton *rHash = new QRadioButton(tr("By &Hash"));
	connect(rHash, SIGNAL(clicked(bool)),this,SLOT(rHashClicked(bool)));
	QRadioButton *rDeckName = new QRadioButton(tr("By &Deck Name"));
	connect(rDeckName, SIGNAL(clicked(bool)),this,SLOT(rDeckClicked(bool)));
	QRadioButton *rCards = new QRadioButton(tr("By Card &List"));
	connect(rCards, SIGNAL(clicked(bool)),this,SLOT(rCardClicked(bool)));
	rDeck->addWidget(right);
	QGridLayout *rButtons = new QGridLayout;
	rButtons->addWidget(rHash, 0,0);
	rButtons->addWidget(rDeckName, 0,1);
	rButtons->addWidget(rCards, 0,2);
	rDeck->addLayout(rButtons);

	rHashBox = new QWidget;
	QGridLayout *rHashLayout = new QGridLayout;
	QLabel *rHashLabel = new QLabel(tr("Deck Hash"));
	QLineEdit *rHashText = new QLineEdit;
	rHashLayout->addWidget(rHashLabel,0,0);
	rHashLayout->addWidget(rHashText,0,1);
	rHashBox->setLayout(rHashLayout);
	rDeck->addWidget(rHashBox);

	rDeckBox = new QWidget;
	QGridLayout *rNameLayout = new QGridLayout;
	QLabel *rNameLabel = new QLabel(tr("Deck Name"));
	QLineEdit *rDeckNameText = new QLineEdit;
	rNameLayout->addWidget(rNameLabel,0,0);
	rNameLayout->addWidget(rDeckNameText,0,1);
	rDeckBox->setLayout(rNameLayout);
	rDeck->addWidget(rDeckBox);
	rDeckBox->hide();

	rCardBox = new QWidget;
	QGridLayout *rCardLayout = new QGridLayout;
	QLabel *rCardLabel = new QLabel(tr("Cards"));
	QLabel *rCardCommander = new QLabel(tr("Commander"));
	QLabel *rCardC1 = new QLabel(tr("Card 1"));
	QLabel *rCardC2 = new QLabel(tr("Card 2"));
	QLabel *rCardC3 = new QLabel(tr("Card 3"));
	QLabel *rCardC4 = new QLabel(tr("Card 4"));
	QLabel *rCardC5 = new QLabel(tr("Card 5"));
	QLabel *rCardC6 = new QLabel(tr("Card 6"));
	QLabel *rCardC7 = new QLabel(tr("Card 7"));
	QLabel *rCardC8 = new QLabel(tr("Card 8"));
	QLabel *rCardC9 = new QLabel(tr("Card 9"));
	QLabel *rCardC10 = new QLabel(tr("Card 10"));
	QLabel *rCardC11 = new QLabel(tr("Card 11"));
	QLabel *rCardC12 = new QLabel(tr("Card 12"));
	QLabel *rCardC13 = new QLabel(tr("Card 13"));
	QLabel *rCardC14 = new QLabel(tr("Card 14"));
	QLabel *rCardC15 = new QLabel(tr("Card 15"));
	QLineEdit *rCardComText = new QLineEdit;
	QLineEdit *rCardC1Text = new QLineEdit;
	QLineEdit *rCardC2Text = new QLineEdit;
	QLineEdit *rCardC3Text = new QLineEdit;
	QLineEdit *rCardC4Text = new QLineEdit;
	QLineEdit *rCardC5Text = new QLineEdit;
	QLineEdit *rCardC6Text = new QLineEdit;
	QLineEdit *rCardC7Text = new QLineEdit;
	QLineEdit *rCardC8Text = new QLineEdit;
	QLineEdit *rCardC9Text = new QLineEdit;
	QLineEdit *rCardC10Text = new QLineEdit;
	QLineEdit *rCardC11Text = new QLineEdit;
	QLineEdit *rCardC12Text = new QLineEdit;
	QLineEdit *rCardC13Text = new QLineEdit;
	QLineEdit *rCardC14Text = new QLineEdit;
	QLineEdit *rCardC15Text = new QLineEdit;
	rCardLayout->addWidget(rCardLabel,0,0);
	rCardLayout->addWidget(rCardCommander,1,0);
	rCardLayout->addWidget(rCardC1,2,0);
	rCardLayout->addWidget(rCardC2,3,0);
	rCardLayout->addWidget(rCardC3,4,0);
	rCardLayout->addWidget(rCardC4,5,0);
	rCardLayout->addWidget(rCardC5,6,0);
	rCardLayout->addWidget(rCardC6,7,0);
	rCardLayout->addWidget(rCardC7,8,0);
	rCardLayout->addWidget(rCardC8,9,0);
	rCardLayout->addWidget(rCardC9,10,0);
	rCardLayout->addWidget(rCardC10,11,0);
	rCardLayout->addWidget(rCardC11,12,0);
	rCardLayout->addWidget(rCardC12,13,0);
	rCardLayout->addWidget(rCardC13,14,0);
	rCardLayout->addWidget(rCardC14,15,0);
	rCardLayout->addWidget(rCardC15,16,0);
	rCardLayout->addWidget(rCardComText,1,1);
	rCardLayout->addWidget(rCardC1Text,2,1);
	rCardLayout->addWidget(rCardC2Text,3,1);
	rCardLayout->addWidget(rCardC3Text,4,1);
	rCardLayout->addWidget(rCardC4Text,5,1);
	rCardLayout->addWidget(rCardC5Text,6,1);
	rCardLayout->addWidget(rCardC6Text,7,1);
	rCardLayout->addWidget(rCardC7Text,8,1);
	rCardLayout->addWidget(rCardC8Text,9,1);
	rCardLayout->addWidget(rCardC9Text,10,1);
	rCardLayout->addWidget(rCardC10Text,11,1);
	rCardLayout->addWidget(rCardC11Text,12,1);
	rCardLayout->addWidget(rCardC12Text,13,1);
	rCardLayout->addWidget(rCardC13Text,14,1);
	rCardLayout->addWidget(rCardC14Text,15,1);
	rCardLayout->addWidget(rCardC15Text,16,1);
	rCardBox->setLayout(rCardLayout);
	rDeck->addWidget(rCardBox);
	QSpacerItem *rSpacerItem = new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::MinimumExpanding);
	rDeck->addItem(rSpacerItem);
	rCardBox->hide();
	
	rFrame->setLayout(rDeck);
	decks->addWidget(rFrame,0,1);
	decksBox->setLayout(decks);

	mainLayout->addWidget(resultsBox);
	mainLayout->addWidget(optionsBox);
	mainLayout->addWidget(simButton,0,Qt::AlignHCenter);
	mainLayout->addWidget(decksBox);

	window->setLayout(mainLayout);
	
	setCentralWidget(window);

	setWindowTitle(tr("Tyrant Optimize ") + VERSION);
	resize(minimumWidth(),minimumHeight());
}