QSize QGridLayoutProto::minimumSize() const { QGridLayout *item = qscriptvalue_cast<QGridLayout*>(thisObject()); if (item) return item->minimumSize(); return QSize(); }
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); }
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()); }
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(); }