StartupView::StartupView( QWidget * parent ) : QWidget( parent ) { m_templateListModel = std::shared_ptr<TemplateListModel>( new TemplateListModel() ); setStyleSheet("openstudio--StartupView { background: #E6E6E6; }"); #ifdef Q_OS_MAC setWindowFlags(Qt::FramelessWindowHint); #else setWindowFlags(Qt::CustomizeWindowHint); #endif auto recentProjectsView = new QWidget(); recentProjectsView->setStyleSheet("QWidget { background: #F2F2F2; }"); auto recentProjectsLayout = new QVBoxLayout(); recentProjectsLayout->setContentsMargins(10,10,10,10); QLabel * recentProjectsLabel = new QLabel("Recent Projects"); recentProjectsLabel->setStyleSheet("QLabel { font: bold }"); recentProjectsLayout->addWidget(recentProjectsLabel,0,Qt::AlignTop); recentProjectsView->setLayout(recentProjectsLayout); auto openButton = new QToolButton(); openButton->setText("Open File"); openButton->setStyleSheet("QToolButton { font: bold; }"); openButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); QIcon openIcon(":/images/open_file.png"); openButton->setIcon(openIcon); openButton->setIconSize(QSize(40,40)); connect(openButton, &QToolButton::clicked, this, &StartupView::openClicked); auto importButton = new QToolButton(); importButton->setText("Import Idf"); importButton->setStyleSheet("QToolButton { font: bold; }"); importButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); QIcon importIcon(":/images/import_file.png"); importButton->setIcon(importIcon); importButton->setIconSize(QSize(40,40)); connect(importButton, &QToolButton::clicked, this, &StartupView::importClicked); /* QToolButton * importSDDButton = new QToolButton(); importSDDButton->setText("Import SDD"); importSDDButton->setStyleSheet("QToolButton { font: bold; }"); importSDDButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); QIcon importSDDIcon(":/images/import_file.png"); importSDDButton->setIcon(importSDDIcon); importSDDButton->setIconSize(QSize(40,40)); connect(importSDDButton, &QToolButton::clicked, this, &StartupView::importSDDClicked); */ auto projectChooserView = new QWidget(); projectChooserView->setFixedWidth(238); projectChooserView->setStyleSheet("QWidget { background: #F2F2F2; }"); auto projectChooserLayout = new QVBoxLayout(); projectChooserLayout->setContentsMargins(10,10,10,10); QLabel * projectChooserLabel = new QLabel("Create New From Template"); projectChooserLabel->setStyleSheet("QLabel { font: bold }"); projectChooserLayout->addWidget(projectChooserLabel,0,Qt::AlignTop); m_listView = new QListView(); m_listView->setViewMode(QListView::IconMode); m_listView->setModel(m_templateListModel.get()); m_listView->setFocusPolicy(Qt::NoFocus); m_listView->setFlow(QListView::LeftToRight); m_listView->setUniformItemSizes(true); m_listView->setSelectionMode(QAbstractItemView::SingleSelection); projectChooserLayout->addWidget(m_listView); projectChooserView->setLayout(projectChooserLayout); m_projectDetailView = new QWidget(); m_projectDetailView->setStyleSheet("QWidget { background: #F2F2F2; }"); auto projectDetailLayout = new QVBoxLayout(); projectDetailLayout->setContentsMargins(10,10,10,10); m_projectDetailView->setLayout(projectDetailLayout); auto footerView = new QWidget(); footerView->setObjectName("FooterView"); footerView->setStyleSheet("QWidget#FooterView { background: #E6E6E6; }"); footerView->setMaximumHeight(50); footerView->setMinimumHeight(50); auto cancelButton = new QPushButton(); cancelButton->setObjectName("StandardGrayButton"); cancelButton->setMinimumSize(QSize(99,28)); #ifdef OPENSTUDIO_PLUGIN cancelButton->setText("Cancel"); connect(cancelButton, &QPushButton::clicked, this, &StartupView::hide); #else #ifdef Q_OS_MAC cancelButton->setText("Quit"); #else cancelButton->setText("Exit"); #endif connect(cancelButton, &QPushButton::clicked, OpenStudioApp::instance(), &OpenStudioApp::quit); #endif cancelButton->setStyleSheet("QPushButton { font: bold; }"); auto chooseButton = new QPushButton(); chooseButton->setObjectName("StandardBlueButton"); chooseButton->setText("Choose"); chooseButton->setMinimumSize(QSize(99,28)); connect(chooseButton, &QPushButton::clicked, this, &StartupView::newFromTemplateSlot); chooseButton->setStyleSheet("QPushButton { font: bold; }"); auto hFooterLayout = new QHBoxLayout(); hFooterLayout->setSpacing(25); hFooterLayout->setContentsMargins(0,0,0,0); hFooterLayout->addStretch(); hFooterLayout->addWidget(cancelButton); hFooterLayout->addWidget(chooseButton); footerView->setLayout(hFooterLayout); auto hLayout = new QHBoxLayout(); auto vLayout = new QVBoxLayout(); auto vOpenLayout = new QVBoxLayout(); vOpenLayout->addWidget(recentProjectsView); vOpenLayout->addWidget(openButton); vOpenLayout->addWidget(importButton); //vOpenLayout->addWidget(importSDDButton); hLayout->addLayout(vOpenLayout); hLayout->addWidget(projectChooserView); hLayout->addWidget(m_projectDetailView,1); vLayout->addSpacing(50); vLayout->addLayout(hLayout); vLayout->addWidget(footerView); setLayout(vLayout); connect(m_listView, &QListView::clicked, this, &StartupView::showDetailsForItem); m_listView->setCurrentIndex(m_templateListModel->index(0,0)); showDetailsForItem(m_templateListModel->index(0,0)); }
void SCameraConfigLauncher::starting() { this->create(); m_cameraSeries = this->getInOut< ::arData::CameraSeries >("cameraSeries"); SLM_ASSERT("Missing cameraSeries.", m_cameraSeries); m_activitySeries = this->getInOut< ::fwMedData::ActivitySeries >("activitySeries"); SLM_ASSERT("Missing activitySeries.", m_activitySeries); auto qtContainer = ::fwGuiQt::container::QtContainer::dynamicCast( this->getContainer() ); QHBoxLayout* layout = new QHBoxLayout(); m_cameraComboBox = new QComboBox(); layout->addWidget(m_cameraComboBox); QIcon addIcon(QString::fromStdString(::fwRuntime::getBundleResourceFilePath("media", "icons/Import.svg").string())); m_addButton = new QPushButton(addIcon, ""); m_addButton->setToolTip("Add a new camera."); layout->addWidget(m_addButton); QIcon importIcon(QString::fromStdString(::fwRuntime::getBundleResourceFilePath("arMedia", "icons/CameraSeries.svg").string())); m_importButton = new QPushButton(importIcon, ""); m_importButton->setToolTip("Import an intrinsic calibration."); layout->addWidget(m_importButton); QIcon removeIcon(QString::fromStdString(::fwRuntime::getBundleResourceFilePath("arMedia", "icons/remove.svg").string())); m_removeButton = new QPushButton(removeIcon, ""); m_removeButton->setToolTip("Remove the camera."); layout->addWidget(m_removeButton); m_extrinsicButton = new QPushButton("Extrinsic"); layout->addWidget(m_extrinsicButton); m_extrinsicButton->setCheckable(true); qtContainer->setLayout( layout ); const size_t nbCam = m_cameraSeries->getNumberOfCameras(); if (nbCam == 0) { this->addCamera(); m_extrinsicButton->setEnabled(false); m_removeButton->setEnabled(false); } else { for (size_t i = 0; i < nbCam; ++i) { m_cameraComboBox->addItem(QString("Camera %1").arg(i+1)); } const bool moreThanOneCamera = (nbCam > 1); m_extrinsicButton->setEnabled(moreThanOneCamera); m_removeButton->setEnabled(moreThanOneCamera); } QObject::connect(m_cameraComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(onCameraChanged(int))); QObject::connect(m_addButton, SIGNAL(clicked()), this, SLOT(onAddClicked())); QObject::connect(m_importButton, SIGNAL(clicked()), this, SLOT(onImportClicked())); QObject::connect(m_removeButton, SIGNAL(clicked()), this, SLOT(onRemoveClicked())); QObject::connect(m_extrinsicButton, SIGNAL(toggled(bool)), this, SLOT(onExtrinsicToggled(bool))); this->startIntrinsicConfig(0); }