コード例 #1
0
QSize QGridLayoutProto::minimumSize() const
{
  QGridLayout *item = qscriptvalue_cast<QGridLayout*>(thisObject());
  if (item)
    return item->minimumSize();
  return QSize();
}
コード例 #2
0
ファイル: Sheet.cpp プロジェクト: maksverver/kakuro
void Sheet::setGridSize(const QSize &size)
{
    if(size.width() < 0 || size.height() < 0)
        return;

    QGridLayout *l = qobject_cast<QGridLayout*>(layout());

    l->setEnabled(false);

    clear();

    grid_size = size;

    // Add cell controls
    for(int r = 0; r < size.height(); ++r)
        for(int c = 0; c < size.width(); ++c)
        {
            CellControl *cc = new CellControl(QPoint(c, r), *this);
            l->addWidget(cc, r, c);
            cc->show();
        }

    // Set cell neighbours
    for(int r = 0; r < size.height(); ++r)
        for(int c = 0; c < size.width(); ++c)
        {
            cellAt(r, c).setNeighbours(
                r > 0                 ? &cellAt(r - 1, c    ) : 0,
                c > 0                 ? &cellAt(r    , c - 1) : 0,
                r < size.height() - 1 ? &cellAt(r + 1, c    ) : 0,
                c < size.width()  - 1 ? &cellAt(r    , c + 1) : 0 );
        }

    setFixedSize(l->minimumSize());
    l->setEnabled(true);
}
コード例 #3
0
SaveGeometryDialog::SaveGeometryDialog(QWidget *parent,Qt::WFlags flags) 
  : QDialog(parent, flags)
{
  static log4cplus::Logger logger =
      log4cplus::Logger::getInstance("SaveGeometryDialog.SaveGeometryDialog");

  verticalLayout = new QVBoxLayout(this);
  verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));

  // check boxes
  QGridLayout* gridLayout = new QGridLayout();
  gridLayout->setSizeConstraint(QLayout::SetMinimumSize);

  QScrollArea* scrollArea = new QScrollArea();
  QWidget* w = new QWidget();
  w->setLayout(gridLayout);
  scrollArea->setWidget(w);
  verticalLayout->addWidget(scrollArea);

  // check all buttons
  QPushButton* selectAll = new QPushButton("Select all");
  QPushButton* unselectAll = new QPushButton("Unselect all");
  connect(selectAll, SIGNAL(clicked()), SLOT(selectAllSlot()));
  connect(unselectAll, SIGNAL(clicked()), SLOT(unselectAllSlot()));
  QHBoxLayout* selectLayout = new QHBoxLayout();
  selectLayout->addWidget(selectAll);
  selectLayout->addWidget(unselectAll);
  verticalLayout->addLayout(selectLayout);

  // output directory
  _outputDir = new QLineEdit();
  QSettings settings;
  QString dir = settings.value("openFile/dir", "").toString();
  _outputDir->setText(dir);
  QPushButton* outputDirButton = new QPushButton("...");
  connect(outputDirButton, SIGNAL(clicked()), SLOT(outputDirSlot()));
  QGridLayout* dirLayout = new QGridLayout();
  dirLayout->addWidget(new QLabel("Dir:"), 0, 0);
  dirLayout->addWidget(_outputDir, 0, 2);
  dirLayout->addWidget(outputDirButton, 0, 4);
  dirLayout->setColumnStretch(2, 1);
  verticalLayout->addLayout(dirLayout);

  // type
  _typeBox = new QComboBox();
  _typeBox->addItem("obj");
  _typeBox->addItem("off");
  _typeBox->addItem("raw");
  QHBoxLayout* typeLayout = new QHBoxLayout();
  typeLayout->addWidget(new QLabel("Type:"), 0, Qt::AlignRight);
  typeLayout->addWidget(_typeBox, 0, Qt::AlignRight);
  verticalLayout->addLayout(typeLayout);

  // ok and cancel
  buttonBox = new QDialogButtonBox(this);
  buttonBox->setObjectName(QString::fromUtf8("buttonBox"));
  buttonBox->setOrientation(Qt::Horizontal);
  buttonBox->setStandardButtons(QDialogButtonBox::Cancel|QDialogButtonBox::Ok);
  verticalLayout->addWidget(buttonBox);

  setWindowTitle("Save Geometry");

  QObject::connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
  QObject::connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));

  QMetaObject::connectSlotsByName(this);

  std::vector<std::string> keys = cvcapp.data<cvcraw_geometry::cvcgeom_t>();
  
  if(keys.empty()) {
    QMessageBox::information(this, tr("Laplace Skeletonization"),
                             tr("No geometry loaded."), QMessageBox::Ok);
  }
  else {
    gridLayout->addWidget(new QLabel("Geometry"), 0, 0);
    // gridLayout->setColumnMinimumWidth(1, 5);
    gridLayout->addWidget(new QLabel("Output filename"), 0, 2);
    gridLayout->setColumnStretch(2, 1);
    
    vector<string> vprops = cvcapp.listProperty("zoomed.geometries");
    set<string> props(vprops.begin(), vprops.end());

    BOOST_FOREACH(std::string key, keys) {
      const cvcraw_geometry::cvcgeom_t geom =
          boost::any_cast<cvcraw_geometry::cvcgeom_t>(cvcapp.data()[key]);
        if (geom.points().size() > 0 &&
            geom.const_tets().empty() &&
            props.find(key) != props.end()) {
        
        std::string segmentedString = "-segmented";
        int sizeSegmented = segmentedString.length();
        int positionSegmented = key.rfind(segmentedString);
          
        if(positionSegmented != NOT_FOUND)
          key.replace(key.rfind(segmentedString),sizeSegmented,"");
          
        string ext(".raw");
        switch (GetType(geom)) {
          case kRaw:
            ext = ".raw";
            break;
          case kRawn:
            ext = ".rawn";
            break;
          case kRawc:
            ext = ".rawc";
            break;
          case kRawnc:
            ext = ".rawnc";
            break;
        }
        const int i = _boxes.size();
        _boxes.push_back(new QCheckBox(QString::fromStdString(key)));//, this));
        // _filenames.push_back(new QLineEdit(QString::fromStdString(key+ext)));//, this));
        _filenames.push_back(new QLineEdit(QString::fromStdString(key)));//, this));

        _boxes[i]->setCheckState(Qt::Checked);

        gridLayout->addWidget(_boxes[i], i+1, 0);
        gridLayout->addWidget(_filenames[i], i+1, 2);
      }
    }
    QSize size = gridLayout->minimumSize();
    scrollArea->setMinimumSize(QSize(min(size.width()+10, 400), min(size.height()+10, 300)));
  }

  resize(minimumSizeHint());
}
コード例 #4
0
ファイル: tasksviewer.cpp プロジェクト: walkerka/opentoonz
TaskSheet::TaskSheet(TasksViewer *owner) : QScrollArea(owner) {
  QFrame *contentWidget = new QFrame(this);
  contentWidget->setMinimumWidth(300);
  contentWidget->setMinimumHeight(400);

  setWidget(contentWidget);
  setWidgetResizable(true);

  m_task   = 0;
  int row  = 0;
  m_viewer = owner;

  QGridLayout *layout = new QGridLayout(contentWidget);
  layout->setMargin(15);
  layout->setSpacing(8);
  layout->setColumnStretch(3, 1);
  layout->setColumnStretch(5, 1);
  layout->setColumnStretch(6, 4);
  layout->setColumnMinimumWidth(2, 70);
  layout->setColumnMinimumWidth(3, 70);
  layout->setColumnMinimumWidth(4, 40);
  layout->setColumnMinimumWidth(5, 100);
  contentWidget->setLayout(layout);
  ::create(m_name, layout, tr("Name:"), row++);
  ::create(m_status, layout, tr("Status:"), row++);
  ::create(m_commandLine, layout, tr("Command Line:"), row++);
  ::create(m_server, layout, tr("Server:"), row++);
  ::create(m_submittedBy, layout, tr("Submitted By:"), row++);
  ::create(m_submittedOn, layout, tr("Submitted On:"), row++);
  ::create(m_submitDate, layout, tr("Submission Date:"), row++);
  ::create(m_startDate, layout, tr("Start Date:"), row++);
  ::create(m_complDate, layout, tr("Completion Date:"), row++);
  ::create(m_duration, layout, tr("Duration:"), row++);
  // m_duration->setMaximumWidth(38);
  ::create(m_stepCount, layout, tr("Step Count:"), row++);
  // m_stepCount->setMaximumWidth(38);
  ::create(m_failedSteps, layout, tr("Failed Steps:"), row++);
  // m_failedSteps->setMaximumWidth(38);
  ::create(m_succSteps, layout, tr("Successful Steps:"), row++);
  // m_succSteps->setMaximumWidth(38);
  ::create(m_priority, layout, tr("Priority:"), row++);
  // m_priority->setMaximumWidth(40);

  layout->setColumnStretch(0, 0);
  layout->setColumnStretch(1, 0);
  layout->setColumnStretch(2, 1);
  layout->setColumnStretch(3, 1);
  layout->setColumnStretch(4, 1);
  layout->setColumnStretch(5, 1);

  int row1 = 0;

  m_boxComposer = new QFrame(contentWidget);
  m_boxComposer->setMinimumHeight(150);
  QGridLayout *layout1 = new QGridLayout(m_boxComposer);
  layout1->setMargin(0);
  layout1->setSpacing(8);
  m_boxComposer->setLayout(layout1);
  ::create(m_outputPath, layout1, tr("Output:"), row1++, 4);

  ::create(m_chunkSize, m_multimedia, layout1, tr("Frames per Chunk:"),
           tr("Multimedia:"), Qt::AlignRight | Qt::AlignTop,
           Qt::AlignLeft | Qt::AlignTop, row1++);
  ::create(m_from, m_to, layout1, tr("From:"), tr("To:"),
           Qt::AlignRight | Qt::AlignTop, Qt::AlignRight | Qt::AlignTop,
           row1++);
  ::create(m_step, m_shrink, layout1, tr("Step:"), tr("Shrink:"),
           Qt::AlignRight | Qt::AlignTop, Qt::AlignRight | Qt::AlignTop,
           row1++);

  layout1->setColumnMinimumWidth(2, 40);
  QStringList multimediaTypes;
  multimediaTypes << tr("None") << tr("Fx Schematic Flows")
                  << tr("Fx Schematic Terminal Nodes");
  m_multimedia->addItems(multimediaTypes);

  ::create(m_threadsCombo, layout1, tr("Dedicated CPUs:"), row1++, 3);
  QStringList threadsTypes;
  threadsTypes << tr("Single") << tr("Half") << tr("All");
  m_threadsCombo->addItems(threadsTypes);

  ::create(m_rasterGranularityCombo, layout1, tr("Render Tile:"), row1++, 3);
  QStringList granularityTypes;
  granularityTypes << tr("None") << tr("Large") << tr("Medium") << tr("Small");
  m_rasterGranularityCombo->addItems(granularityTypes);

  layout1->addWidget(new QWidget(), 0, 5);

  layout1->setColumnStretch(0, 0);
  layout1->setColumnStretch(1, 0);
  layout1->setColumnStretch(2, 0);
  layout1->setColumnStretch(3, 0);
  layout1->setColumnStretch(4, 0);
  layout1->setColumnStretch(5, 1);

  layout->addWidget(m_boxComposer, row++, 0, 1,
                    6 /*, Qt::AlignLeft|Qt::AlignTop*/);

  // tcleanupper Box
  m_boxCleanup         = new QFrame(contentWidget);
  QGridLayout *layout2 = new QGridLayout(m_boxCleanup);
  layout2->setMargin(0);
  layout2->setSpacing(8);
  m_boxCleanup->setLayout(layout2);
  ::create(m_visible, layout2, tr("Visible Only"), 0);
  ::create(m_overwrite, layout2, tr("Overwrite"), 1, 1);

  QStringList overwriteOptions;
  overwriteOptions << tr("All") << tr("NoPaint") << tr("Off");
  m_overwrite->addItems(overwriteOptions);
  m_overwrite->setCurrentIndex(2);  // do not overwrite by default

  layout2->setColumnStretch(0, 0);
  layout2->setColumnStretch(1, 0);
  layout2->setColumnStretch(2, 1);

  layout->addWidget(m_boxCleanup, row++, 2, 1, 1, Qt::AlignLeft | Qt::AlignTop);

  QLabel *label = new QLabel(tr("Dependencies:"), contentWidget);
  label->setObjectName("TaskSheetItemLabel");
  layout->addWidget(label, row, 0, 1, 2, Qt::AlignRight | Qt::AlignTop);

  m_addedBox = new QListWidget(contentWidget);
  m_addedBox->setSelectionMode(QAbstractItemView::ExtendedSelection);
  m_addedBox->setObjectName("tasksRemoveBox");
  m_addedBox->setFrameStyle(QFrame::StyledPanel);
  layout->addWidget(m_addedBox, row, 2, 1, 2, Qt::AlignLeft | Qt::AlignTop);

  m_notAddedBox = new QListWidget(contentWidget);
  m_notAddedBox->setSelectionMode(QAbstractItemView::ExtendedSelection);
  m_notAddedBox->setObjectName("tasksAddBox");
  m_notAddedBox->setFrameStyle(QFrame::StyledPanel);
  layout->addWidget(m_notAddedBox, row++, 4, 1, 2,
                    Qt::AlignLeft | Qt::AlignTop);

  QPushButton *removeBtn = new QPushButton(tr("Remove >>"));
  layout->addWidget(removeBtn, row, 2, 1, 2, Qt::AlignRight | Qt::AlignTop);

  QPushButton *addBtn = new QPushButton(tr("<< Add"));
  layout->addWidget(addBtn, row++, 4, 1, 2, Qt::AlignLeft | Qt::AlignTop);

  bool ret = true;

  ret =
      ret && connect(m_name, SIGNAL(editingFinished()), this, SLOT(setName()));
  ret =
      ret && connect(m_from, SIGNAL(editingFinished()), this, SLOT(setFrom()));
  ret = ret && connect(m_to, SIGNAL(editingFinished()), this, SLOT(setTo()));
  ret =
      ret && connect(m_step, SIGNAL(editingFinished()), this, SLOT(setStep()));
  ret = ret &&
        connect(m_shrink, SIGNAL(editingFinished()), this, SLOT(setShrink()));
  ret = ret && connect(m_outputPath, SIGNAL(editingFinished()), this,
                       SLOT(setOutput()));
  ret = ret && connect(m_chunkSize, SIGNAL(editingFinished()), this,
                       SLOT(setChunkSize()));
  ret = ret && connect(m_priority, SIGNAL(editingFinished()), this,
                       SLOT(setPriority()));

  ret = ret && connect(m_name, SIGNAL(focusIn()), this, SLOT(onFocusIn()));
  ret = ret && connect(m_from, SIGNAL(focusIn()), this, SLOT(onFocusIn()));
  ret = ret && connect(m_to, SIGNAL(focusIn()), this, SLOT(onFocusIn()));
  ret = ret && connect(m_step, SIGNAL(focusIn()), this, SLOT(onFocusIn()));
  ret = ret && connect(m_shrink, SIGNAL(focusIn()), this, SLOT(onFocusIn()));
  ret =
      ret && connect(m_outputPath, SIGNAL(focusIn()), this, SLOT(onFocusIn()));
  ret = ret && connect(m_chunkSize, SIGNAL(focusIn()), this, SLOT(onFocusIn()));
  ret = ret && connect(m_priority, SIGNAL(focusIn()), this, SLOT(onFocusIn()));

  ret = ret && connect(m_multimedia, SIGNAL(currentIndexChanged(int)), this,
                       SLOT(setMultimedia(int)));
  ret = ret && connect(m_visible, SIGNAL(stateChanged(int)), this,
                       SLOT(setVisible(int)));

  ret = ret && connect(m_overwrite, SIGNAL(currentIndexChanged(int)), this,
                       SLOT(setOverwrite(int)));

  ret =
      ret && connect(m_addedBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
                     this, SLOT(onRemovedItemDoubleClicked(QListWidgetItem *)));
  ret = ret &&
        connect(m_notAddedBox, SIGNAL(itemDoubleClicked(QListWidgetItem *)),
                this, SLOT(onAddedItemDoubleClicked(QListWidgetItem *)));

  ret = ret &&
        connect(removeBtn, SIGNAL(clicked(bool)), this, SLOT(onRemoved(bool)));
  ret =
      ret && connect(addBtn, SIGNAL(clicked(bool)), this, SLOT(onAdded(bool)));

  ret = ret && connect(m_threadsCombo, SIGNAL(currentIndexChanged(int)), this,
                       SLOT(setThreadsCombo(int)));
  ret =
      ret && connect(m_rasterGranularityCombo, SIGNAL(currentIndexChanged(int)),
                     this, SLOT(setGranularityCombo(int)));

  assert(ret);

  // The following instruction is needed in order to prevent contentWidget from
  // shrinking
  // beyond the tolerable size for its grid layout.
  contentWidget->setMinimumSize(layout->minimumSize());

  widget()->hide();
}