void
CQAlignAnchorObject::
selectSlot(bool enabled)
{
  if (enabled)
    emit selectObject();
  else
    emit cancelSelect();
}
CQAlignAnchor::
CQAlignAnchor(QWidget *parent) :
 QWidget(parent)
{
  QGridLayout *layout = new QGridLayout(this);
  layout->setMargin(0); layout->setSpacing(2);

  QLabel *anchorLabel = new QLabel("<small><b>Anchor</b></small>");

  layout->addWidget(anchorLabel, 0, 0, 1, 2);

  objectCombo_ = new QComboBox;

  objectCombo_->addItem("Selection");
  objectCombo_->addItem("Object");
  objectCombo_->addItem("Position");

  connect(objectCombo_, SIGNAL(activated(const QString &)),
          this, SLOT(objectSlot(const QString &)));

  layout->addWidget(objectCombo_, 1, 0);

  anchorStack_ = new QStackedWidget;

  anchorLabel_  = new QWidget;
  anchorObject_ = new CQAlignAnchorObject;
  anchorPoint_  = new CQAlignAnchorPoint;

  anchorStack_->addWidget(anchorLabel_);
  anchorStack_->addWidget(anchorObject_);
  anchorStack_->addWidget(anchorPoint_);

  layout->addWidget(anchorStack_, 1, 1);

  connect(anchorObject_, SIGNAL(selectObject()), this, SIGNAL(selectObject()));
  connect(anchorObject_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelect()));

  connect(anchorPoint_, SIGNAL(selectPoint()), this, SIGNAL(selectPosition()));
  connect(anchorPoint_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelect()));

  //-----

  updateState();
}
void
CQIllustratorAlignToolbar::
addWidgets()
{
  QBoxLayout *layout = qobject_cast<QBoxLayout *>(CQIllustratorToolbar::layout());

  QGridLayout *grid = new QGridLayout;
  grid->setMargin(0); grid->setSpacing(2);

  layout->addLayout(grid);

  //-----

  QTabWidget *tab = new QTabWidget;

  QFont font = tab->font();

  font.setPointSizeF(font.pointSizeF()*0.7);

  tab->setFont(font);

  //------

  alignw_ = new CQAlignButtons;

  tab->addTab(alignw_, "Align");

  connect(alignw_, SIGNAL(alignLeft()), this, SIGNAL(alignLeft()));
  connect(alignw_, SIGNAL(alignBottom()), this, SIGNAL(alignBottom()));
  connect(alignw_, SIGNAL(alignRight()), this, SIGNAL(alignRight()));
  connect(alignw_, SIGNAL(alignTop()), this, SIGNAL(alignTop()));
  connect(alignw_, SIGNAL(alignHorizontal()), this, SIGNAL(alignHorizontal()));
  connect(alignw_, SIGNAL(alignVertical()), this, SIGNAL(alignVertical()));

  connect(alignw_, SIGNAL(alignLeftPreview()), this, SIGNAL(alignLeftPreview()));
  connect(alignw_, SIGNAL(alignBottomPreview()), this, SIGNAL(alignBottomPreview()));
  connect(alignw_, SIGNAL(alignRightPreview()), this, SIGNAL(alignRightPreview()));
  connect(alignw_, SIGNAL(alignTopPreview()), this, SIGNAL(alignTopPreview()));
  connect(alignw_, SIGNAL(alignHorizontalPreview()), this, SIGNAL(alignHorizontalPreview()));
  connect(alignw_, SIGNAL(alignVerticalPreview()), this, SIGNAL(alignVerticalPreview()));

  connect(alignw_, SIGNAL(alignPreviewClear()), this, SIGNAL(alignPreviewClear()));

  //------

  distw_ = new CQDistButtons;

  tab->addTab(distw_, "Distribute");

  //------

  spreadw_ = new CQSpreadButtons;

  tab->addTab(spreadw_, "Spread");

  //------

  grid->addWidget(tab, 0, 0, 2, 1);

  //------

  QLabel *olabel = new QLabel("<small><b>Offset</b></small>");

  offset_ = new CQRealEdit(0.0);

  offset_->setFocusPolicy(Qt::ClickFocus);

  grid->addWidget(olabel , 0, 1);
  grid->addWidget(offset_, 1, 1);

  //------

  anchor_ = new CQAlignAnchor;

  connect(anchor_, SIGNAL(selectObject()), this, SIGNAL(selectAnchorObject()));
  connect(anchor_, SIGNAL(selectPosition()), this, SIGNAL(selectAnchorPosition()));
  connect(anchor_, SIGNAL(cancelSelect()), this, SIGNAL(cancelSelectAnchor()));

  grid->addWidget(anchor_, 0, 2, 2, 1);

  //------

  grid->setColumnStretch(3, 1);
}
Ejemplo n.º 4
0
// --------------------------------------------------------------------------------
void QmvSelect::init()
{
    current_item = -1;
    setCaption( tr( "Select" ) );

        // ------------------------------------------------------------
        // Top level layout - add a groupbox, and manage it manually
        // ------------------------------------------------------------
    QVBoxLayout * vl_top = new QVBoxLayout( this );
    QLabel * lbl = new QLabel( "Select from list", this, "selection list" );
    vl_top->addWidget( lbl );

        // ------------------------------------------------------------
        // Create the listview.
        // ------------------------------------------------------------
    list_view = new QListView( this, "select list" );
    vl_top->addWidget( list_view );
    list_view->setAllColumnsShowFocus(TRUE);
    bool increasing = (sort_by >= 0) ? true : false;
    if ( sort_by < 0 ) sort_by = -sort_by;
    list_view->setSorting( sort_by, increasing );
    list_view->setShowSortIndicator( true );

        // clicked
    connect( list_view, SIGNAL( currentChanged( QListViewItem * ) ),
             this, SLOT( highlighted( QListViewItem * ) ) );
        // select
    connect( list_view, SIGNAL( doubleClicked( QListViewItem * ) ),
             this, SLOT( selected( QListViewItem * ) ) );

        // ----------------
        // Column Headings:
        // ----------------
    num_cols = label_list.count();
    for ( int col = 0; col < num_cols; col++ )
        list_view->addColumn( label_list[col] );
    
        // Add the index column at the right
    index_column = list_view->addColumn( "#" );

        // ----------------
        // Load the rows.
        // ----------------
    
    list_view->clear();
    list_view->setFocusPolicy(StrongFocus);
    QListViewItem * item = 0;
    QListViewItem * after = 0;

        // load the rows
    num_rows = value_list.count();
    for ( int row = 0; row < num_rows; row++)
    {
            // Place first item at top of list.
        if ( row == 0 )
            item = new QListViewItem( list_view );
        else
            item = new QListViewItem( list_view, after );

            // Extract the stringlist first
        QStringList * sl = value_list.at(row);
        if (sl) {
                // Load the strings into items
            for ( int col = 0; col < num_cols; col++ ) {
                if (sl->at(col) == sl->end())   // at() returns iterator
                    continue;
                item->setText( col, (*(sl->at(col))) );
            }
        }
            // Extract the pixmap list
        QList<QPixmap> * pl = pixmap_list.at(row);
        if (pl) {
                // Load the pixmaps
            int pm_count = pl->count();
            for ( int col = 0; col < num_cols; col++ ) {
                QPixmap * pm;
                pm = pl->at(col);               // at() returns pointer to pixmap
                if (!pm || pm->isNull() )
                    continue;
                item->setPixmap( col, *pm );
                item->setText( col, "");        // unset the text
            }
            
        }

            // the index column
        int index = 1 + static_cast<int> (floor(log10(num_rows)));
        QString format = QString("0%1d").arg(index);
        format.prepend("%");
        item->setText( num_cols, QString("%1").sprintf(format,row) );

        after = item;
        
    }
        
    QHBoxLayout * hl_button = new QHBoxLayout( vl_top );
    QPushButton *pb;
    pb = new QPushButton("OK", this );
    pb->setDefault(TRUE);
    hl_button->addWidget( pb );
    connect( pb, SIGNAL( clicked() ), this, SLOT( accept() ) );
    pb = new QPushButton( "Cancel", this );
    hl_button->addWidget( pb );
    connect( pb, SIGNAL( clicked() ), this, SLOT( reject() ) );

        // cancel
    connect( this, SIGNAL( escapePressed() ),
             this, SLOT( cancelSelect() ) );

        // Highlight the first row
    
    QListViewItem *first = list_view->firstChild();
    if ( first )
    {
        list_view->setCurrentItem( first );
        list_view->setSelected( first, TRUE );
    } else {
        pb->setFocus();
    }
    

    setFocusProxy( list_view );
    adjustSize();
    updateGeometry();
//  no need to set focus - has been set above by setCurrentItem
//  setFocus();

}