コード例 #1
0
ファイル: main.cpp プロジェクト: afester/CodeSamples
    MainWindow(QWidget* parent) {
        resize(800, 600);

        QLabel* imageLabel = new QLabel;
        QImage image("sample.png");
        imageLabel->setPixmap(QPixmap::fromImage(image));
        QWidget* wdg = imageLabel;

        // Standard QScrollArea will add scroll bars around the image label
        QScrollArea* scrollArea = new QScrollArea(this);

        // The UnboundedScrollArea shows how it should look like
        //QScrollArea* scrollArea = new UnboundedScrollArea(this);

        scrollArea->setHorizontalScrollBarPolicy( Qt::ScrollBarAsNeeded);
        scrollArea->setVerticalScrollBarPolicy( Qt::ScrollBarAsNeeded);
        scrollArea->setWidget(wdg);

        QGridLayout* layout = new QGridLayout();
        layout->setMargin(0);
        layout->setHorizontalSpacing(0);
        layout->setVerticalSpacing(0);
        layout->setRowStretch(0, 1);
        layout->setRowStretch(2, 1);
        layout->setColumnStretch(0, 1);
        layout->setColumnStretch(2, 1);
        layout->addWidget(scrollArea, 1, 1);

        QWidget* centralWidget = new QWidget(this);
        centralWidget->setLayout(layout);
        setCentralWidget(centralWidget);
    }
コード例 #2
0
ファイル: SeekWidget.cpp プロジェクト: d-j-a-y/OPP
void SeekWidget::initSeekWidget()
{
    _autoHide = false;

    // ELAPSED TIME
    _labelElapsed = new QLabel(this);
    _labelElapsed->setText("00:00:00");
    _labelElapsed->setAlignment(Qt::AlignTop);
    _labelElapsed->setContentsMargins(QMargins(0,0,0,0));

    // REMAINING TIME
    _labelRemaining = new QLabel(this);
    _labelRemaining->setText("- 00:00:00");
    _labelRemaining->setAlignment(Qt::AlignRight|Qt::AlignTop);
    _labelRemaining->setContentsMargins(QMargins(0,0,0,0));

    // SEEK BAR
    _seek = new FlipBar(this);

    // LAYOUT
    QGridLayout *layout = new QGridLayout();
    layout->addWidget(_seek, 2, 1, 1, -1);
    layout->addWidget(_labelElapsed, 1, 1);
    layout->addWidget(_labelRemaining, 1, 2);
    layout->setHorizontalSpacing(0);
    layout->setVerticalSpacing(0);
    layout->setContentsMargins(0, 15, 0, 4);
    setLayout(layout);

    setStyleSheet(QString(
        "QLabel{"
        "   font-size: 13px;"
        "}"
    ));
}
コード例 #3
0
ファイル: rogue-gui.cpp プロジェクト: OpenDAWN/rogue
 QWidget* createPhaser(QGroupBox* parent) {
     parent->setObjectName("phaser");
     parent->setCheckable(true);
     connectBox(p_phaser_on, parent);
     QGridLayout* grid = new QGridLayout(parent);
     // row 1
     grid->addWidget(createDial(p_phaser_min_freq), 0, 0);
     grid->addWidget(createDial(p_phaser_max_freq), 0, 1);
     grid->addWidget(createDial(p_phaser_rate), 0, 2);
     grid->addWidget(createDial(p_phaser_depth), 0, 3);
     grid->addWidget(createDial(p_phaser_feedback), 0, 4);
     // row 2
     grid->addWidget(new QLabel("Min Fr"), 1, 0);
     grid->addWidget(new QLabel("Max Fr"), 1, 1);
     grid->addWidget(new QLabel("Mod frq"), 1, 2);
     grid->addWidget(new QLabel("Depth"), 1, 3);
     grid->addWidget(new QLabel("Feedb"), 1, 4);
     // row 3
     grid->addWidget(createLabel(p_phaser_min_freq), 2, 0);
     grid->addWidget(createLabel(p_phaser_max_freq), 2, 1);
     grid->addWidget(createLabel(p_phaser_rate), 2, 2);
     grid->addWidget(createLabel(p_phaser_depth), 2, 3);
     grid->addWidget(createLabel(p_phaser_feedback), 2, 4);
     grid->setHorizontalSpacing(2);
     grid->setVerticalSpacing(0);
     grid->setColumnStretch(5, 1);
     return parent;
 }
コード例 #4
0
BallotVoteWindow::BallotVoteWindow(QWidget *parent)
    : ballotView((BallotView *)parent),
    tableModel(0),
    tableView(0),
    proxyModel(0)
{
    setWindowTitle(tr(" Votes"));
    setMinimumSize(800,200);

    QVBoxLayout *vlayout = new QVBoxLayout(this);
    vlayout->setContentsMargins(0,0,0,0);
    vlayout->setSpacing(0);

    QGridLayout *glayout = new QGridLayout();
    glayout->setHorizontalSpacing(0);
    glayout->setVerticalSpacing(0);
    vlayout->addLayout(glayout);

    tableView = new QTableView();
    tableView->installEventFilter(this);
    tableView->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
    tableView->setTabKeyNavigation(false);
    tableView->setContextMenuPolicy(Qt::CustomContextMenu);
    tableView->setAlternatingRowColors(true);
    vlayout->addWidget(tableView);
}
コード例 #5
0
ファイル: rogue-gui.cpp プロジェクト: OpenDAWN/rogue
 QWidget* createReverb(QGroupBox* parent) {
     parent->setObjectName("reverb");
     parent->setCheckable(true);
     connectBox(p_reverb_on, parent);
     QGridLayout* grid = new QGridLayout(parent);
     // row 1
     grid->addWidget(createDial(p_reverb_predelay), 0, 0);
     grid->addWidget(createDial(p_reverb_decay), 0, 1);
     grid->addWidget(createDial(p_reverb_lowcut), 0, 2);
     grid->addWidget(createDial(p_reverb_highcut), 0, 3);
     grid->addWidget(createDial(p_reverb_depth), 0, 4);
     // row 2
     grid->addWidget(new QLabel("Predelay"), 1, 0);
     grid->addWidget(new QLabel("Decay"), 1, 1);
     grid->addWidget(new QLabel("Lowcut"), 1, 2);
     grid->addWidget(new QLabel("Highcut"), 1, 3);
     grid->addWidget(new QLabel("Depth"), 1, 4);
     // row 4
     grid->addWidget(createLabel(p_reverb_predelay), 2, 0);
     grid->addWidget(createLabel(p_reverb_decay), 2, 1);
     grid->addWidget(createLabel(p_reverb_lowcut), 2, 2);
     grid->addWidget(createLabel(p_reverb_highcut), 2, 3);
     grid->addWidget(createLabel(p_reverb_depth), 2, 4);
     grid->setHorizontalSpacing(2);
     grid->setVerticalSpacing(0);
     grid->setColumnStretch(5, 1);
     return parent;
 }
コード例 #6
0
ファイル: rogue-gui.cpp プロジェクト: OpenDAWN/rogue
 QWidget* createLfo(QGroupBox* parent, uint i) {
     uint off = i * LFO_OFF;
     parent->setCheckable(true);
     connectBox(p_lfo1_on + off, parent);
     QGridLayout* grid = new QGridLayout(parent);
     // row 1
     QComboBox* typeBox = createSelect(p_lfo1_type + off, lfo_types, 6);
     lfoMapper.setMapping(typeBox, i);
     connect(typeBox, SIGNAL(currentIndexChanged(int)), &lfoMapper, SLOT(map()));
     grid->addWidget(typeBox, 0, 0, 1, 2);
     grid->addWidget(createSelect(p_lfo1_reset_type + off, lfo_reset_types, 3), 0, 2, 1, 2);
     grid->addWidget(connectToLfo(createToggle(p_lfo1_inv + off, "Inv"), i), 0, 4);
     // row 2-4
     grid->addWidget(lfo_wd[i] = new WaveDisplay(LFO_WIDTH, WAVE_HEIGHT), 1, 0, 3, 3);
     // row 5
     grid->addWidget(createDial(p_lfo1_freq + off), 4, 0);
     grid->addWidget(connectToLfo(createDial(p_lfo1_start + off), i), 4, 1);
     grid->addWidget(connectToLfo(createDial(p_lfo1_width + off), i), 4, 2);
     grid->addWidget(createDial(p_lfo1_humanize + off), 4, 3);
     // row 6
     grid->addWidget(new QLabel("Freq"), 5, 0);
     grid->addWidget(new QLabel("Start"), 5, 1);
     grid->addWidget(new QLabel("Width"), 5, 2);
     grid->addWidget(new QLabel("Rand"), 5, 3);
     // row 7
     grid->addWidget(createLabel(p_lfo1_freq + off), 6, 0);
     grid->addWidget(createLabel(p_lfo1_start + off), 6, 1);
     grid->addWidget(createLabel(p_lfo1_width + off), 6, 2);
     grid->addWidget(createLabel(p_lfo1_humanize + off), 6, 3);
     grid->setHorizontalSpacing(2);
     grid->setVerticalSpacing(0);
     grid->setColumnStretch(5, 1);
     grid->setRowStretch(7, 1);
     return parent;
 }
コード例 #7
0
ファイル: settingsbottomview.cpp プロジェクト: Sylla/updraft
void SettingsBottomView::rowsInserted(
  const QModelIndex& parent, int start, int end) {
  QModelIndex index;
  QGridLayout* layout;
  QWidget* page;

  if (!parent.isValid()) {
    layout = new QGridLayout();

    layout->setHorizontalSpacing(5);
    layout->setVerticalSpacing(5);
    layout->setContentsMargins(5, 5, 5, 5);

    QScrollArea* scrollArea = new QScrollArea();

    page = new QWidget();
    page->setLayout(layout);
    page->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding);
    page->setMinimumSize(0, 0);

    scrollArea->setFrameStyle(QFrame::NoFrame);
    scrollArea->setWidget(page);
    scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    stack->addWidget(scrollArea);
  }

  // Invalid insertion index will mark insertion of a group
  insertionIndex = parent;
}
コード例 #8
0
ファイル: EdLevelResourceSound.cpp プロジェクト: 9heart/DT3
EdLevelResourceSound::EdLevelResourceSound (const FilePath &path)
{
    
    EdLevelSoundThumbnail *item = new EdLevelSoundThumbnail(this);
    item->setSound(path);
    item->setMaximumWidth(128);
    item->setMinimumWidth(128);
    item->setMaximumHeight(128);
    item->setMinimumHeight(128);

    QLabel *title = new QLabel(this);
    title->setMaximumWidth(200);
    title->setMinimumWidth(200);
    title->setText(path.file_name().c_str());
    
    QGridLayout *layout = new QGridLayout;
    layout->setContentsMargins(2,2,2,2);
    layout->setHorizontalSpacing(0);
    layout->setVerticalSpacing(0);
    layout->setColumnStretch(1,1);
    layout->addWidget(item,1,0);
    layout->addWidget(title,0,0);

    setLayout(layout);
    
    setMinimumHeight(15+2+128);
    setMinimumWidth(200);
    setMaximumWidth(200);
}
コード例 #9
0
ファイル: clintwindow.cpp プロジェクト: ftynse/clint
void ClintWindow::resetCentralWidget(QWidget *interface) {
  if (centralWidget() != nullptr) {
    QWidget *oldWidget = centralWidget();
    m_graphicalInterface->setParent(nullptr);
    m_scriptEditor->setParent(nullptr);
    m_codeEditor->setParent(nullptr);
    m_reparseScriptButton->setParent(nullptr);
    m_reparseCodeButton->setParent(nullptr);
    delete oldWidget;
  }
  m_graphicalInterface = interface;

  if (interface == nullptr) {
    setCentralWidget(nullptr);
    return;
  }

  QGridLayout *topLayout = new QGridLayout;
  topLayout->addWidget(interface, 0, 0, 2, 1 /*,Qt::AlignCenter | Qt::AlignVCenter*/);
  topLayout->addWidget(m_reparseScriptButton, 0, 1, 1, 1);
  topLayout->addWidget(m_reparseCodeButton, 1, 1, 1, 1);
  topLayout->addWidget(m_scriptEditor, 0, 2, 1, 1 /*,Qt::AlignCenter | Qt::AlignTop*/);
  topLayout->addWidget(m_codeEditor, 1, 2, 1, 1  /*,Qt::AlignCenter| Qt::AlignBottom*/);
  topLayout->setHorizontalSpacing(0);

  topLayout->setColumnStretch(0, 3);
  topLayout->setColumnStretch(2, 1);
  topLayout->setRowStretch(0, 1);
  topLayout->setRowStretch(1, 3);

  QWidget *topWidget = new QWidget;
  topWidget->setLayout(topLayout);
  setCentralWidget(topWidget);
}
コード例 #10
0
/* QGUIClickMapCtrl */
QGUIClickMapCtrl::QGUIClickMapCtrl(plCreatable* pCre, QWidget* parent)
                : QCreatable(pCre, kGUIClickMapCtrl, parent)
{
    pfGUIClickMapCtrl* ctrl = pfGUIClickMapCtrl::Convert(fCreatable);

    fControlModLink = new QCreatableLink(this, false);
    fControlModLink->setText(tr("GUI Control Common Properties"));
    fControlModLink->setCreatable(ctrl);
    fControlModLink->setForceType(kGUIControlMod);

    QGroupBox* grpFlags = new QGroupBox(tr("Flags"), this);
    fModFlags[pfGUIClickMapCtrl::kReportDragging - kModFlagStart] = new QCheckBox(tr("Report Dragging"), grpFlags);
    fModFlags[pfGUIClickMapCtrl::kReportHovering - kModFlagStart] = new QCheckBox(tr("Report Hovering"), grpFlags);
    QGridLayout* flagLayout = new QGridLayout(grpFlags);
    flagLayout->setContentsMargins(8, 8, 8, 8);
    flagLayout->setVerticalSpacing(0);
    flagLayout->setHorizontalSpacing(8);
    flagLayout->addWidget(fModFlags[pfGUIClickMapCtrl::kReportDragging - kModFlagStart], 0, 0);
    flagLayout->addWidget(fModFlags[pfGUIClickMapCtrl::kReportHovering - kModFlagStart], 1, 0);
    for (size_t i=0; i<kModFlagCount; i++)
        fModFlags[i]->setChecked(ctrl->getFlag(i + kModFlagStart));

    QGridLayout* layout = new QGridLayout(this);
    layout->setContentsMargins(8, 8, 8, 8);
    layout->addWidget(fControlModLink, 0, 0, 1, 2);
    layout->addWidget(grpFlags, 1, 0, 1, 2);
}
コード例 #11
0
InstrumentFunctionNoteStackingView::InstrumentFunctionNoteStackingView( InstrumentFunctionNoteStacking* cc, QWidget* parent ) :
	QWidget( parent ),
	ModelView( NULL, this ),
	m_cc( cc ),
	m_chordsGroupBox( new GroupBox( tr( "STACKING" ) ) ),
	m_chordsComboBox( new ComboBox() ),
	m_chordRangeKnob( new Knob( knobBright_26 ) )
{
	QHBoxLayout* topLayout = new QHBoxLayout( this );
	topLayout->setMargin( 0 );
	topLayout->addWidget( m_chordsGroupBox );

	QGridLayout* mainLayout = new QGridLayout( m_chordsGroupBox );
	mainLayout->setContentsMargins( 8, 18, 8, 8 );
	mainLayout->setColumnStretch( 0, 1 );
	mainLayout->setHorizontalSpacing( 20 );
	mainLayout->setVerticalSpacing( 1 );

	QLabel* chordLabel = new QLabel( tr( "Chord:" ) );
	chordLabel->setFont( pointSize<8>( chordLabel->font() ) );

	m_chordRangeKnob->setLabel( tr( "RANGE" ) );
	m_chordRangeKnob->setHintText( tr( "Chord range:" ), " " + tr( "octave(s)" ) );
	m_chordRangeKnob->setWhatsThis(
		tr( "Use this knob for setting the chord range in octaves. "
			"The selected chord will be played within specified "
			"number of octaves." ) );

	mainLayout->addWidget( chordLabel, 0, 0 );
	mainLayout->addWidget( m_chordsComboBox, 1, 0 );
	mainLayout->addWidget( m_chordRangeKnob, 0, 1, 2, 1, Qt::AlignHCenter );
}
コード例 #12
0
EdLevelPropertyTitleField::EdLevelPropertyTitleField (EdLevelPropertiesWindow *parent, std::shared_ptr<PlugNode> node, std::shared_ptr<ArchiveData> data)
{
    //setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
    _data = data;
    _node = node;
    
    _value = new EdLevelLineEdit(this);
    _value->setObjectName("prop");

	connect(	_value,         SIGNAL(editingFinished()),
				this,           SLOT(doWriteParams())	);
    
	connect(	this,           SIGNAL(doCommand(QString, bool)),
				parent,         SLOT(onCommand(QString, bool))	);

    QGridLayout *layout = new QGridLayout;
    layout->setContentsMargins(0,10,0,5);
    layout->setHorizontalSpacing(0);
    layout->setVerticalSpacing(0);
    layout->addWidget(_value,0,0);

    setLayout(layout);
    
    setMinimumHeight(15+2+10+5);
    
    doReadParams();
}
コード例 #13
0
ファイル: rogue-gui.cpp プロジェクト: OpenDAWN/rogue
 QWidget* createChorus(QGroupBox* parent) {
     parent->setObjectName("chorus");
     parent->setCheckable(true);
     connectBox(p_chorus_on, parent);
     QGridLayout* grid = new QGridLayout(parent);
     // row 1
     grid->addWidget(createDial(p_chorus_delay), 0, 0);
     grid->addWidget(createDial(p_chorus_amount), 0, 1);
     grid->addWidget(createDial(p_chorus_rate), 0, 2);
     grid->addWidget(createDial(p_chorus_depth), 0, 3);
     grid->addWidget(createDial(p_chorus_feedback), 0, 4);
     // row 2
     grid->addWidget(new QLabel("Delay"), 1, 0);
     grid->addWidget(new QLabel("Mod amt"), 1, 1);
     grid->addWidget(new QLabel("Mod frq"), 1, 2);
     grid->addWidget(new QLabel("Depth"), 1, 3);
     grid->addWidget(new QLabel("Feedb"), 1, 4);
     // row 3
     grid->addWidget(createLabel(p_chorus_delay), 2, 0);
     grid->addWidget(createLabel(p_chorus_amount), 2, 1);
     grid->addWidget(createLabel(p_chorus_rate), 2, 2);
     grid->addWidget(createLabel(p_chorus_depth), 2,3);
     grid->addWidget(createLabel(p_chorus_feedback), 2, 4);
     grid->setHorizontalSpacing(2);
     grid->setVerticalSpacing(0);
     grid->setColumnStretch(5, 1);
     return parent;
 }
コード例 #14
0
ファイル: mainwindow.cpp プロジェクト: radekp/qneoroid
void MainWindow::initCells()
{

  if (centralWidget() != 0) {
    delete centralWidget();
  }
  QWidget *grid = new QWidget();
  QPalette pal;
  pal.setBrush(QPalette::Active, QPalette::Window,QBrush(QColor("#b2b5c7")));
  grid->setPalette(pal);
  grid->setAutoFillBackground(true);
  grid->setBackgroundRole(QPalette::Window);

  QGridLayout* layout = new QGridLayout;
  layout->setHorizontalSpacing(0);
  layout->setVerticalSpacing(0);
  layout->setSizeConstraint(QLayout::SetNoConstraint);
  //layout->setContentsMargins(1,1,1,1);
  layout->setContentsMargins(0,0,0,0);
  for(int i = 0; i < BoardSize; i++)
  {
    for(int j = 0; j < BoardSize; j++)
    {
      int ii = i * BoardSize + j;
      board[ii] = new Cell(grid, ii);
      connect(board[ii], SIGNAL(cellClicked(int)), SLOT(cellClicked(int)));
      layout->addWidget(board[ii], i, j);
    }
  }
  
  grid->setLayout(layout); 
  setCentralWidget(grid);
  QApplication::processEvents();
  doResize();
}
コード例 #15
0
ファイル: mainwindow.cpp プロジェクト: JoakimMisund/Chess
MainWindow::MainWindow(QWidget *parent) :
  QMainWindow(parent)
{
  p1 = p2 = NULL;

  QWidget *mainWindow = new QWidget();
  QGridLayout *gridLayout = new QGridLayout();
  gridLayout->setVerticalSpacing(0);
  gridLayout->setHorizontalSpacing(0);
  
  for( int i = 0; i < 8; ++i ) {
    for( int j = 0; j < 8; ++j ) {
      
      QPushButton *label = new QPushButton( QString::fromStdString( " " ) );
      QObject::connect( label, SIGNAL( clicked() ), this , SLOT( handleSquarePress() ) );
      label->setFixedSize( 70, 70 );
      label->setFocusPolicy( Qt::NoFocus );

      
      if( (i + j) % 2 == 0 ) {
	label->setStyleSheet( "QPushButton{ background:white}" );
      } else {
	label->setStyleSheet( "QPushButton{ background:grey}");
      }
      gridLayout->addWidget( label, i, j );
      buttons[i][j] = label;
    }
  }
  mainWindow->setLayout( gridLayout );
  setCentralWidget( mainWindow );
  setWindowTitle( "Chess" );
  show();
}
コード例 #16
0
ファイル: Console.cpp プロジェクト: weilandetian/Yoyo
Console::Console(TeamSelector* teamSelector)
  : visualContext(new VisualContext(this)),
    teamSelector(teamSelector),
    scrollArea(new ScrollArea(this)),
    prompt(0),
    cmdLine(0)
{
  cmdLine = new CommandLineEdit(this);

  prompt = new QLabel("bush>", cmdLine);
  prompt->setAutoFillBackground(true);
  QPalette p = prompt->palette();
  p.setColor(QPalette::Background, p.color(QPalette::AlternateBase));
  prompt->setPalette(p);

  QGridLayout* layout = new QGridLayout();
  layout->setHorizontalSpacing(0);
  scrollArea->setWidget(visualContext);
  scrollArea->setWidgetResizable(true);
  scrollArea->setBackgroundRole(QPalette::AlternateBase);
  layout->addWidget(scrollArea, 0, 0);
  layout->setRowStretch(0, 1);
  QFormLayout* fl = new QFormLayout();
  fl->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
  fl->addRow(prompt, cmdLine);
  layout->addLayout(fl, 1, 0);
  setLayout(layout);

  connect(cmdLine, SIGNAL(returnPressed()), this, SLOT(returnPressed()));
}
コード例 #17
0
//     FrmLocalizar_cls(const QString &title, QWidget *parent=0);
  FrmCompras_cls::FrmCompras_cls(const QString &title,QWidget *parent)
     : QDialog(parent)
 {
	QWidget *formWidget = loadUiFile();
        ui_edt_idpro = qFindChild<QLineEdit*>(this, "edt_idpro");     
        ui_edt_qtdpro = qFindChild<QLineEdit*>(this, "edt_qtdpro");
	ui_edt_nomepro = qFindChild<QLineEdit*>(this, "edt_nomepro");
        ui_edt_vlrpro = qFindChild<QLineEdit*>(this, "edt_vlrpro");
        ui_edt_vlrtotal = qFindChild<QLineEdit*>(this, "edt_vlrtotal");
	ui_btn_calc = qFindChild<QPushButton*>(this, "btn_calc");
        ui_btn_sair = qFindChild<QPushButton*>(this, "btn_sair");
	ui_btn_ok = qFindChild<QPushButton*>(this, "btn_ok");
	ui_btn_localizar = qFindChild<QPushButton*>(this, "btn_localizar");
	ui_btn_comprar = qFindChild<QPushButton*>(this, "btn_comprar");
	QMetaObject::connectSlotsByName(this);
//        connect( ui_edt_vlrpro, SIGNAL(textChanged(const QString&)), this, SLOT(keyPressEvent(QKeyEvent *event)) );
        connect( ui_edt_vlrpro, SIGNAL(textChanged(const QString&)), this, SLOT(ui_edt_vlrpro_setText(const QString&)) );
	connect( ui_edt_vlrtotal, SIGNAL(textChanged(const QString&)), this, SLOT(setText(const QString&)) );
        ui_edt_vlrpro->setAlignment(Qt::AlignRight);
	ui_edt_vlrtotal->setAlignment(Qt::AlignRight);
        ui_edt_vlrpro->setMaxLength(9);
	local=0;
	//QVBoxLayout *layout = new QVBoxLayout;
	QGridLayout *layout = new QGridLayout;
	layout->setHorizontalSpacing (0);
	layout->setSizeConstraint(QLayout::SetMinAndMaxSize);
	setConfigDB();
	
	layout->addWidget(formWidget);
	setLayout(layout);	
	setWindowTitle(title);
 }
コード例 #18
0
QSDLEditor::QSDLEditor(QWidget* parent)
          : QWidget(parent), fRecord(NULL), fIOwnRecord(false), fSDLVersion(-1)
{
    fSDLList = new QTreeWidget(this);
    fSDLList->setColumnCount(2);
    fSDLList->setUniformRowHeights(true);
    fSDLList->setRootIsDecorated(false);
    fSDLList->headerItem()->setText(0, tr("Name"));
    fSDLList->headerItem()->setText(1, tr("Value"));

    fEditorPanel = new QWidget(this);
    fEditorLayout = new QGridLayout(fEditorPanel);
    fEditorLayout->setContentsMargins(0, 0, 0, 0);
    fEditorLayout->setHorizontalSpacing(8);
    fEditorLayout->setVerticalSpacing(8);

    QGridLayout* layout = new QGridLayout(this);
    layout->setContentsMargins(0, 0, 0, 0);
    layout->setHorizontalSpacing(8);
    layout->setVerticalSpacing(8);
    layout->addWidget(fSDLList, 0, 0);
    layout->addWidget(fEditorPanel, 1, 0);

    connect(fSDLList, SIGNAL(currentItemChanged(QTreeWidgetItem*, QTreeWidgetItem*)),
            this, SLOT(itemSelected(QTreeWidgetItem*, QTreeWidgetItem*)));
}
コード例 #19
0
ファイル: rogue-gui.cpp プロジェクト: OpenDAWN/rogue
    QWidget* createMain(QWidget* parent) {
        parent->setObjectName("main");
        QGridLayout* grid = new QGridLayout(parent);
        // row 1
        grid->addWidget(createDial(p_volume), 0, 0);
        grid->addWidget(createSelect(p_play_mode, modes, 3), 0, 1);
        grid->addWidget(createDial(p_glide_time), 0, 2);
        grid->addWidget(createDial(p_pitchbend_range), 0, 3);
        // row 2
        grid->addWidget(new QLabel("Vol"),  1, 0);
        grid->addWidget(new QLabel("Mode"), 1, 1);
        grid->addWidget(new QLabel("Glide t."), 1, 2);
        grid->addWidget(new QLabel("Bend r."), 1, 3);
        // row 3
        grid->addWidget(createLabel(p_volume), 2, 0);
        // skip
        grid->addWidget(createLabel(p_glide_time), 2, 2);
        grid->addWidget(createLabel(p_pitchbend_range), 2, 3);

        grid->setHorizontalSpacing(2);
        grid->setVerticalSpacing(0);
        grid->setColumnStretch(4, 1);
        grid->setRowStretch(3, 1);
        return parent;
    }
コード例 #20
0
ファイル: vobjectwidget.cpp プロジェクト: gilgil1973/vdream90
QLineEdit* VOptionable::addLineEdit(QLayout* layout, QString objectName, QString text, QString value)
{
  QWidget* parentWidget = layout->parentWidget();
  if (parentWidget == NULL)
  {
    LOG_FATAL("parentWidget is null(%s)", qPrintable(objectName));
    return NULL;
  }
  if (parentWidget->findChild<QObject*>(objectName) != NULL)
  {
    LOG_FATAL("parentWidget->findChild(%s) is not null", qPrintable(objectName));
    return NULL;
  }

  QLabel*    label    = new QLabel(parentWidget);
  QLineEdit* lineEdit = new QLineEdit(parentWidget);

  label->setText(text);
  lineEdit->setObjectName(objectName);
  lineEdit->setText(value);

  QGridLayout* myLayout = new QGridLayout;
  myLayout->setHorizontalSpacing(8);
  myLayout->addWidget(label,    0, 0);
  myLayout->addWidget(lineEdit, 0, 1);
  layout->addItem(myLayout);

  return lineEdit;
}
コード例 #21
0
/* QFadeOpacityMod */
QFadeOpacityMod::QFadeOpacityMod(plCreatable* pCre, QWidget* parent)
               : QCreatable(pCre, kFadeOpacityMod, parent)
{
    plFadeOpacityMod* mod = plFadeOpacityMod::Convert(fCreatable);

    fSynchObjLink = new QCreatableLink(this, false);
    fSynchObjLink->setText(tr("Synch Flags"));
    fSynchObjLink->setCreatable(mod);
    fSynchObjLink->setForceType(kSynchedObject);

    QGroupBox* grpFlags = new QGroupBox(tr("Flags"), this);
    QGridLayout* layFlags = new QGridLayout(grpFlags);
    layFlags->setVerticalSpacing(0);
    layFlags->setHorizontalSpacing(8);
    fFlags[kBoundsCenter] = new QCheckBox(tr("Bounds Centered"), grpFlags);
    layFlags->addWidget(fFlags[kBoundsCenter], 0, 0);
    fFlags[kBoundsCenter]->setChecked(mod->getFlag(plFadeOpacityMod::kBoundsCenter));

    fUp = new QFloatEdit(this);
    fUp->setValue(mod->getFadeUp());

    fDown = new QFloatEdit(this);
    fDown->setValue(mod->getFadeDown());

    QGridLayout* layout = new QGridLayout(this);
    layout->setContentsMargins(8, 8, 8, 8);
    layout->addWidget(fSynchObjLink, 0, 0, 1, 2);
    layout->addWidget(grpFlags, 1, 0, 1, 2);
    layout->addWidget(new QLabel(tr("Fade Up:"), this), 2, 0);
    layout->addWidget(fUp, 2, 1);
    layout->addWidget(new QLabel(tr("Fade Down:"), this), 3, 0);
    layout->addWidget(fDown, 3, 1);
}
コード例 #22
0
SpeedInOutSegmentPage::SpeedInOutSegmentPage(FunctionSegmentViewer *parent)
    : FunctionSegmentPage(parent) {
  m_speed0xFld = new LineEdit("0");
  m_speed0yFld = new DVGui::MeasuredDoubleLineEdit();
  m_speed1xFld = new LineEdit("0");
  m_speed1yFld = new DVGui::MeasuredDoubleLineEdit();

  m_firstSpeedFld = new DVGui::MeasuredDoubleLineEdit();
  m_lastSpeedFld  = new DVGui::MeasuredDoubleLineEdit();

  //----layout

  QGridLayout *mainLayout = new QGridLayout();
  mainLayout->setHorizontalSpacing(5);
  mainLayout->setVerticalSpacing(5);
  mainLayout->setMargin(2);
  {
    mainLayout->addWidget(new QLabel(tr("First Speed:")), 0, 0,
                          Qt::AlignRight | Qt::AlignVCenter);
    mainLayout->addWidget(m_firstSpeedFld, 0, 1, 1, 2);

    mainLayout->addWidget(new QLabel(tr("Handle:")), 1, 0,
                          Qt::AlignRight | Qt::AlignVCenter);
    mainLayout->addWidget(m_speed0yFld, 1, 1);
    mainLayout->addWidget(new QLabel(tr("/")), 1, 2);
    mainLayout->addWidget(m_speed0xFld, 1, 3);

    mainLayout->addWidget(new QLabel(tr("Last Speed:")), 2, 0,
                          Qt::AlignRight | Qt::AlignVCenter);
    mainLayout->addWidget(m_lastSpeedFld, 2, 1, 1, 2);

    mainLayout->addWidget(new QLabel(tr("Handle:")), 3, 0,
                          Qt::AlignRight | Qt::AlignVCenter);
    mainLayout->addWidget(m_speed1yFld, 3, 1);
    mainLayout->addWidget(new QLabel(tr("/")), 3, 2);
    mainLayout->addWidget(m_speed1xFld, 3, 3);
  }
  mainLayout->setColumnStretch(0, 0);
  mainLayout->setColumnStretch(1, 1);
  mainLayout->setColumnStretch(2, 0);
  mainLayout->setColumnStretch(3, 1);
  setLayout(mainLayout);

  bool ret = connect(m_speed0xFld, SIGNAL(editingFinished()), this,
                     SLOT(onFirstHandleXChanged()));
  ret = ret && connect(m_speed0yFld, SIGNAL(editingFinished()), this,
                       SLOT(onFirstHandleYChanged()));
  ret = ret && connect(m_firstSpeedFld, SIGNAL(editingFinished()), this,
                       SLOT(onFirstSpeedChanged()));

  ret = ret && connect(m_speed1xFld, SIGNAL(editingFinished()), this,
                       SLOT(onLastHandleXChanged()));
  ret = ret && connect(m_speed1yFld, SIGNAL(editingFinished()), this,
                       SLOT(onLastHandleYChanged()));
  ret = ret && connect(m_lastSpeedFld, SIGNAL(editingFinished()), this,
                       SLOT(onLastSpeedChanged()));

  assert(ret);
}
コード例 #23
0
void TransmitPAWidget::createGainGroup() {

//	QLabel *dBmLabel = new QLabel("dBm", this);
//	dBmLabel->setFrameStyle(QFrame::Box | QFrame::Raised);
//	dBmLabel->setStyleSheet(set->getLabelStyle());

	// band label
	QStringList bandNames;
    bandNames << "2200m" << "630m" << "160 m" << "80 m" << "60 m" << "40 m" << "30 m" << "20 m" << "17 m" << "15 m" << "12 m" << "10 m" << "6 m" << "gen";

	QList<QLabel *> bandLabelList;

	for (int i = 0; i < MAX_BANDS-1; i++) {

		QLabel *label = new QLabel(bandNames.at(i), this);
		label->setFrameStyle(QFrame::Box | QFrame::Raised);
		label->setStyleSheet(set->getLabelStyle());

		bandLabelList << label;
	}

	// gain spinBox list
	for (int i = 0; i < MAX_BANDS-1; i++) {

		QDoubleSpinBox *spinBox = new QDoubleSpinBox();
		spinBox->setStyleSheet(set->getComboBoxStyle());
		spinBox->setMinimum(38.8);
		spinBox->setMaximum(100.0);
		spinBox->setSingleStep(0.1);
		spinBox->setStyleSheet(set->getDoubleSpinBoxStyle());


		//CHECKED_CONNECT(comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setAttenuatorValue(int)));

		gainSpinBoxList << spinBox;
	}

	QGridLayout* grid = new QGridLayout(this);
	grid->setVerticalSpacing(1);
	grid->setHorizontalSpacing(1);
	grid->setContentsMargins(7, 7, 5, 7);

	//grid->addWidget(attnLabel, 0, 0, 1, 2, Qt::AlignCenter);
	//grid->addWidget(emptyLabel1, 0, 2, 1, 1, Qt::AlignCenter);

	for (int i = 0; i < MAX_BANDS-1; i++) {

		grid->addWidget(bandLabelList.at(i), i+1, 0, 1, 1, Qt::AlignLeft);
		grid->addWidget(gainSpinBoxList.at(i), i+1, 1, 1, 1, Qt::AlignCenter);
		//grid->addWidget(dBmLabel, i+1, 3, 1, 1, Qt::AlignLeft);
	}


	gainGroup = new QGroupBox(tr("Gain by Band (dB)"), this);
	gainGroup->setMinimumWidth(m_minimumGroupBoxWidth);
	gainGroup->setLayout(grid);
	gainGroup->setStyleSheet(set->getWidgetStyle());
	gainGroup->setFont(QFont("Arial", 8));
}
コード例 #24
0
ファイル: settingsbottomview.cpp プロジェクト: Sylla/updraft
void SettingsBottomView::createEditors() {
  QModelIndex index;
  QGridLayout* layout;

  if (!model()) {
    return;
  }

  delete stack;
  stack = new QStackedWidget(this);

  for (int page = 0; page < model()->rowCount(); ++page) {
    layout = new QGridLayout();

    // Create labels and editors
    index = model()->index(page, 0);
    int row;
    for (row = 0; row < model()->rowCount(index); ++row) {
      QModelIndex child = model()->index(row, 0, index);
      QString description = getSettingDescription(child);

      QLabel* label = new QLabel(description, NULL);
      label->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum);
      layout->addWidget(label, row, 0);

      QWidget* editor = createEditorForIndex(child);
      editor->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
      layout->addWidget(editor, row, 1);

      editor->show();
    }

    // Adding a stretcher at the bottom of all settings
    QWidget* dummy = new QWidget();
    layout->addWidget(dummy, row, 0);
    layout->setRowStretch(row, 1);

    // Setting space on the page
    layout->setHorizontalSpacing(5);
    layout->setVerticalSpacing(5);
    layout->setContentsMargins(5, 5, 5, 5);

    QScrollArea* scrollArea = new QScrollArea();

    QWidget* pageWidget = new QWidget();
    pageWidget->setLayout(layout);
    pageWidget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Expanding);
    pageWidget->setMinimumSize(0, 0);

    scrollArea->setFrameStyle(QFrame::NoFrame);
    scrollArea->setWidget(pageWidget);
    scrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

    stack->addWidget(scrollArea);
  }

  this->layout()->addWidget(stack);
}
コード例 #25
0
ファイル: qt_utils.cpp プロジェクト: telishev/sneakPic
 QGridLayout *create_common_grid_widget (QWidget *parent)
 {
   QWidget *widget = create_container_widget (parent);
   QGridLayout *layout = new QGridLayout (widget);
   layout->setContentsMargins (6, 6, 6, 6);
   layout->setVerticalSpacing (5);
   layout->setHorizontalSpacing (10);
   return layout;
 }
コード例 #26
0
/*!
 * 	// Tab "General"
 */
void XYFourierFilterCurveDock::setupGeneral() {
	QWidget* generalTab = new QWidget(ui.tabGeneral);
	uiGeneralTab.setupUi(generalTab);

	QGridLayout* gridLayout = dynamic_cast<QGridLayout*>(generalTab->layout());
	if (gridLayout) {
		gridLayout->setContentsMargins(2,2,2,2);
		gridLayout->setHorizontalSpacing(2);
		gridLayout->setVerticalSpacing(2);
	}

	cbXDataColumn = new TreeViewComboBox(generalTab);
	gridLayout->addWidget(cbXDataColumn, 4, 2, 1, 2);
	cbYDataColumn = new TreeViewComboBox(generalTab);
	gridLayout->addWidget(cbYDataColumn, 5, 2, 1, 2);

	uiGeneralTab.cbType->addItem(i18n("Low pass"));
	uiGeneralTab.cbType->addItem(i18n("High pass"));
	uiGeneralTab.cbType->addItem(i18n("Band pass"));
	uiGeneralTab.cbType->addItem(i18n("Band reject"));
//TODO	uiGeneralTab.cbType->addItem(i18n("Threshold"));

	uiGeneralTab.cbForm->addItem(i18n("Ideal"));
	uiGeneralTab.cbForm->addItem(i18n("Butterworth"));
	uiGeneralTab.cbForm->addItem(i18n("Chebyshev type I"));
	uiGeneralTab.cbForm->addItem(i18n("Chebyshev type II"));

	uiGeneralTab.cbUnit->addItem(i18n("Frequency (Hz)"));
	uiGeneralTab.cbUnit->addItem(i18n("Fraction"));
	uiGeneralTab.cbUnit->addItem(i18n("Index"));
	uiGeneralTab.cbUnit2->addItem(i18n("Frequency (Hz)"));
	uiGeneralTab.cbUnit2->addItem(i18n("Fraction"));
	uiGeneralTab.cbUnit2->addItem(i18n("Index"));
	uiGeneralTab.pbRecalculate->setIcon(KIcon("run-build"));

	QHBoxLayout* layout = new QHBoxLayout(ui.tabGeneral);
	layout->setMargin(0);
	layout->addWidget(generalTab);

	//Slots
	connect( uiGeneralTab.leName, SIGNAL(returnPressed()), this, SLOT(nameChanged()) );
	connect( uiGeneralTab.leComment, SIGNAL(returnPressed()), this, SLOT(commentChanged()) );
	connect( uiGeneralTab.chkVisible, SIGNAL(clicked(bool)), this, SLOT(visibilityChanged(bool)) );

	connect( uiGeneralTab.cbType, SIGNAL(currentIndexChanged(int)), this, SLOT(typeChanged(int)) );
	connect( uiGeneralTab.cbForm, SIGNAL(currentIndexChanged(int)), this, SLOT(formChanged(int)) );
	connect( uiGeneralTab.sbOrder, SIGNAL(valueChanged(int)), this, SLOT(orderChanged(int)) );
	connect( uiGeneralTab.sbCutoff, SIGNAL(valueChanged(double)), this, SLOT(enableRecalculate()) );
	connect( uiGeneralTab.sbCutoff2, SIGNAL(valueChanged(double)), this, SLOT(enableRecalculate()) );
	connect( uiGeneralTab.cbUnit, SIGNAL(currentIndexChanged(int)), this, SLOT(unitChanged(int)) );
	connect( uiGeneralTab.cbUnit2, SIGNAL(currentIndexChanged(int)), this, SLOT(unit2Changed(int)) );

//	connect( uiGeneralTab.pbOptions, SIGNAL(clicked()), this, SLOT(showOptions()) );
	connect( uiGeneralTab.pbRecalculate, SIGNAL(clicked()), this, SLOT(recalculateClicked()) );
}
コード例 #27
0
BtCopyByReferencesDialog::BtCopyByReferencesDialog(const BtConstModuleList & modules,
                                                   BTHistory * historyPtr,
                                                   CSwordKey * key,
                                                   BtModuleTextModel * model,
                                                   QWidget* parent)
        : QDialog(parent), m_modules(modules), m_key(key),
          m_keyChooser1(nullptr), m_keyChooser2(nullptr),
          m_moduleTextModel(model), m_buttons(nullptr) {

    setWindowTitle(tr("Copy"));
    setMinimumWidth(400);

    QVBoxLayout* vLayout = new QVBoxLayout(this);
    setLayout(vLayout);

    QGridLayout* gridLayout = new QGridLayout();
    gridLayout->setHorizontalSpacing(15);
    gridLayout->setVerticalSpacing(15);
    gridLayout->setContentsMargins(11,11,11,16);
    vLayout->addLayout(gridLayout);

    QLabel* label1 = new QLabel(tr("First"));
    gridLayout->addWidget(label1, 0,0);

    m_keyChooser1 = CKeyChooser::createInstance(modules, historyPtr, key->copy(), this);
    gridLayout->addWidget(m_keyChooser1,0,1);

    QHBoxLayout* hLayout = new QHBoxLayout;
    vLayout->addLayout(hLayout);

    QLabel* label2 = new QLabel(tr("Last"));
    gridLayout->addWidget(label2, 1,0);

    m_keyChooser2 = CKeyChooser::createInstance(modules, historyPtr, key->copy(), this);
    gridLayout->addWidget(m_keyChooser2,1,1);

    m_sizeToLarge = new QLabel(tr("Copy size is to large."));
    m_sizeToLarge->setVisible(false);
    hLayout->addWidget(m_sizeToLarge);

    m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
    message::prepareDialogBox(m_buttons);
    hLayout->addWidget(m_buttons);

    BT_CONNECT(m_keyChooser1, SIGNAL(keyChanged(CSwordKey *)),
               this, SLOT(slotKeyChanged(CSwordKey *)));

    BT_CONNECT(m_keyChooser2, SIGNAL(keyChanged(CSwordKey *)),
               this, SLOT(slotKeyChanged(CSwordKey *)));

    BT_CONNECT(m_buttons, SIGNAL(accepted()), this, SLOT(accept()));
    BT_CONNECT(m_buttons, SIGNAL(rejected()), this, SLOT(reject()));

    slotKeyChanged(nullptr);
}
コード例 #28
0
ファイル: rogue-gui.cpp プロジェクト: OpenDAWN/rogue
 QWidget* createLfos(QWidget* parent) {
     parent->setObjectName("lfos");
     QGridLayout* grid = new QGridLayout(parent);
     grid->addWidget(createLfo(new QGroupBox(), 0), 0, 0);
     grid->addWidget(createLfo(new QGroupBox(), 1), 0, 1);
     grid->addWidget(createLfo(new QGroupBox(), 2), 0, 2);
     grid->addWidget(createLfo(new QGroupBox(), 3), 0, 3);
     grid->setRowStretch(1, 1);
     grid->setHorizontalSpacing(5);
     return parent;
 }
コード例 #29
0
/*!
 * 	// Tab "General"
 */
void XYFitCurveDock::setupGeneral() {
    QWidget* generalTab = new QWidget(ui.tabGeneral);
    uiGeneralTab.setupUi(generalTab);
    QGridLayout* gridLayout = dynamic_cast<QGridLayout*>(generalTab->layout());
    if (gridLayout) {
        gridLayout->setContentsMargins(2,2,2,2);
        gridLayout->setHorizontalSpacing(2);
        gridLayout->setVerticalSpacing(2);
    }

    cbXDataColumn = new TreeViewComboBox(generalTab);
    gridLayout->addWidget(cbXDataColumn, 4, 4, 1, 2);

    cbYDataColumn = new TreeViewComboBox(generalTab);
    gridLayout->addWidget(cbYDataColumn, 5, 4, 1, 2);

    cbWeightsColumn = new TreeViewComboBox(generalTab);
    gridLayout->addWidget(cbWeightsColumn, 6, 4, 1, 2);

    uiGeneralTab.cbModel->addItem(i18n("Polynomial"));
    uiGeneralTab.cbModel->addItem(i18n("Power"));
    uiGeneralTab.cbModel->addItem(i18n("Exponential"));
    uiGeneralTab.cbModel->addItem(i18n("Inverse Exponential"));
    uiGeneralTab.cbModel->addItem(i18n("Fourier"));
    uiGeneralTab.cbModel->addItem(i18n("Gaussian"));
    uiGeneralTab.cbModel->addItem(i18n("Lorentz (Cauchy)"));
    uiGeneralTab.cbModel->addItem(i18n("Maxwell-Boltzmann"));
    uiGeneralTab.cbModel->addItem(i18n("Sigmoid"));
    uiGeneralTab.cbModel->addItem(i18n("Custom"));

    uiGeneralTab.teEquation->setMaximumHeight(uiGeneralTab.leName->sizeHint().height()*2);

    uiGeneralTab.tbConstants->setIcon( KIcon("labplot-format-text-symbol") );
    uiGeneralTab.tbFunctions->setIcon( KIcon("preferences-desktop-font") );
    uiGeneralTab.pbRecalculate->setIcon(KIcon("run-build"));

    QHBoxLayout* layout = new QHBoxLayout(ui.tabGeneral);
    layout->setMargin(0);
    layout->addWidget(generalTab);

    //Slots
    connect( uiGeneralTab.leName, SIGNAL(returnPressed()), this, SLOT(nameChanged()) );
    connect( uiGeneralTab.leComment, SIGNAL(returnPressed()), this, SLOT(commentChanged()) );
    connect( uiGeneralTab.chkVisible, SIGNAL(clicked(bool)), this, SLOT(visibilityChanged(bool)) );

    connect( uiGeneralTab.cbModel, SIGNAL(currentIndexChanged(int)), this, SLOT(modelChanged(int)) );
    connect( uiGeneralTab.sbDegree, SIGNAL(valueChanged(int)), this, SLOT(updateModelEquation()) );
    connect( uiGeneralTab.teEquation, SIGNAL(expressionChanged()), this, SLOT(enableRecalculate()) );
    connect( uiGeneralTab.tbConstants, SIGNAL(clicked()), this, SLOT(showConstants()) );
    connect( uiGeneralTab.tbFunctions, SIGNAL(clicked()), this, SLOT(showFunctions()) );
    connect( uiGeneralTab.pbParameters, SIGNAL(clicked()), this, SLOT(showParameters()) );
    connect( uiGeneralTab.pbOptions, SIGNAL(clicked()), this, SLOT(showOptions()) );
    connect( uiGeneralTab.pbRecalculate, SIGNAL(clicked()), this, SLOT(recalculateClicked()) );
}
コード例 #30
0
/* QGUIListBoxMod */
QGUIListBoxMod::QGUIListBoxMod(plCreatable* pCre, QWidget* parent)
              : QCreatable(pCre, kGUIListBoxMod, parent)
{
    pfGUIListBoxMod* ctrl = pfGUIListBoxMod::Convert(fCreatable);

    fControlModLink = new QCreatableLink(this, false);
    fControlModLink->setText(tr("GUI Control Common Properties"));
    fControlModLink->setCreatable(ctrl);
    fControlModLink->setForceType(kGUIControlMod);

    QGroupBox* grpFlags = new QGroupBox(tr("Flags"), this);
    fModFlags[pfGUIListBoxMod::kSingleSelect - kModFlagStart] = new QCheckBox(tr("Single Select"), grpFlags);
    fModFlags[pfGUIListBoxMod::kDragAndDropCapable - kModFlagStart] = new QCheckBox(tr("Drag & Drop"), grpFlags);
    fModFlags[pfGUIListBoxMod::kDisableSelection - kModFlagStart] = new QCheckBox(tr("Disable Selection"), grpFlags);
    fModFlags[pfGUIListBoxMod::kDisableKeyActions - kModFlagStart] = new QCheckBox(tr("Disable Key Actions"), grpFlags);
    fModFlags[pfGUIListBoxMod::kScrollLeftToRight - kModFlagStart] = new QCheckBox(tr("Scroll Horizontally"), grpFlags);
    fModFlags[pfGUIListBoxMod::kAllowMultipleElementsPerRow - kModFlagStart] = new QCheckBox(tr("Multiple Elements per Row"), grpFlags);
    fModFlags[pfGUIListBoxMod::kAllowMousePassThrough - kModFlagStart] = new QCheckBox(tr("Allow Mouse Pass-Through"), grpFlags);
    fModFlags[pfGUIListBoxMod::kGrowLeavesAndProcessOxygen - kModFlagStart] = new QCheckBox(tr("Grow Leaves and Process Oxygen"), grpFlags);
    fModFlags[pfGUIListBoxMod::kHandsOffMultiSelect - kModFlagStart] = new QCheckBox(tr("Hands-Off Multi-Select"), grpFlags);
    fModFlags[pfGUIListBoxMod::kForbidNoSelection - kModFlagStart] = new QCheckBox(tr("Forbid No Selection"), grpFlags);
    QGridLayout* flagLayout = new QGridLayout(grpFlags);
    flagLayout->setContentsMargins(8, 8, 8, 8);
    flagLayout->setVerticalSpacing(0);
    flagLayout->setHorizontalSpacing(8);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kSingleSelect - kModFlagStart], 0, 0);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kDragAndDropCapable - kModFlagStart], 1, 0);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kDisableSelection - kModFlagStart], 2, 0);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kDisableKeyActions - kModFlagStart], 3, 0);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kScrollLeftToRight - kModFlagStart], 4, 0);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kAllowMultipleElementsPerRow - kModFlagStart], 0, 1);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kAllowMousePassThrough - kModFlagStart], 1, 1);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kGrowLeavesAndProcessOxygen - kModFlagStart], 2, 1);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kHandsOffMultiSelect - kModFlagStart], 3, 1);
    flagLayout->addWidget(fModFlags[pfGUIListBoxMod::kForbidNoSelection - kModFlagStart], 4, 1);
    for (size_t i=0; i<kModFlagCount; i++)
        fModFlags[i]->setChecked(ctrl->getFlag(i + kModFlagStart));

    fScrollCtrl = new QCreatableLink(this);
    fScrollCtrl->setKey(ctrl->getScrollCtrl());
    fScrollCtrl->setText(ctrl->getScrollCtrl().Exists()
                           ? ~ctrl->getScrollCtrl()->getName()
                           : "(None)");

    QGridLayout* layout = new QGridLayout(this);
    layout->setContentsMargins(8, 8, 8, 8);
    layout->addWidget(fControlModLink, 0, 0, 1, 2);
    layout->addWidget(grpFlags, 1, 0, 1, 2);
    layout->addWidget(new QLabel(tr("Scroll Ctrl:"), this), 2, 0);
    layout->addWidget(fScrollCtrl, 2, 1);

    connect(fScrollCtrl, SIGNAL(addObject()), this, SLOT(setScrollCtrl()));
    connect(fScrollCtrl, SIGNAL(delObject()), this, SLOT(unsetScrollCtrl()));
}