AMWorkflowView3::AMWorkflowView3(AMActionRunner3 *actionRunner, QWidget *parent) : QWidget(parent) { layoutSpacer_ = 0; QHBoxLayout* hl = new QHBoxLayout(); hl->setContentsMargins(12,12,12,12); hl->setSpacing(12); QLabel* titleIcon = new QLabel(); titleIcon->setMaximumSize(36,36); titleIcon->setPixmap(QPixmap(":/user-away.png")); titleIcon->setScaledContents(true); hl->addWidget(titleIcon); QLabel* titleLabel = new QLabel(actionRunner->actionRunnerTitle()); titleLabel->setStyleSheet("font: " AM_FONT_XLARGE_ "pt \"Lucida Grande\";\ncolor: rgb(79, 79, 79);"); hl->addWidget(titleLabel); hl->addStretch(1); addActionButton_ = new QPushButton("Add Action..."); hl->addWidget(addActionButton_); currentView_ = new AMActionRunnerCurrentView3(actionRunner); queueView_ = new AMActionRunnerQueueView3(actionRunner); historyView_ = new AMActionHistoryView3(actionRunner, actionRunner->loggingDatabase()); addActionDialog_ = 0; QVBoxLayout* vl = new QVBoxLayout(); vl->setContentsMargins(0,0,0,0); vl->setSpacing(0); vl->addLayout(hl); vl->addWidget(historyView_); vl->addSpacing(12); vl->addWidget(currentView_); vl->addSpacing(12); vl->addWidget(queueView_); setLayout(vl); connect(queueView_, SIGNAL(collapsed(bool)), this, SLOT(onViewCollapsed())); connect(historyView_, SIGNAL(collapsed(bool)), this, SLOT(onViewCollapsed())); connect(addActionButton_, SIGNAL(clicked()), this, SLOT(onAddActionButtonClicked())); }
AMWorkflowManagerView::AMWorkflowManagerView(QWidget *parent) : QWidget(parent) { currentSamplePlate_ = 0;//NULL samplePlateModel_ = 0;//NULL addActionMenu_ = 0;//NULL samplePlateAddActionMenu_ = 0;//NULL fiducializationMarkAddActionMenu_ = 0;//NULL samplePlateHoverIndex_ = 0; fiducializationMarkHoverIndex_ = 0; topFrame_ = new AMTopFrame("Workflow"); topFrame_->setIcon(QIcon(":/user-away.png")); startWorkflowButton_ = new QPushButton("Start This Workflow\nReady"); startWorkflowButton_->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); addActionButton_ = new QPushButton("Add an Action"); addActionButton_->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); QHBoxLayout *hl = new QHBoxLayout(); hl->addItem(new QSpacerItem(10, 10, QSizePolicy::MinimumExpanding, QSizePolicy::Preferred)); hl->addWidget(addActionButton_, 0, Qt::AlignRight); hl->addWidget(startWorkflowButton_, 0, Qt::AlignRight); connect(startWorkflowButton_, SIGNAL(clicked()), this, SLOT(startQueue())); connect(addActionButton_, SIGNAL(clicked()), this, SLOT(onAddActionButtonClicked())); workflowActions_ = new AMBeamlineActionsList(this); workflowQueue_ = new AMBeamlineActionsQueue(workflowActions_, this); workflowView_ = new AMBeamlineActionsListView(workflowActions_, workflowQueue_, this); connect(workflowView_, SIGNAL(copyRequested(AMBeamlineActionItem*)), this, SLOT(onCopyActionRequested(AMBeamlineActionItem*))); connect(workflowView_, SIGNAL(moveUpRequested(AMBeamlineActionItem*)), this, SLOT(onMoveUpActionRequested(AMBeamlineActionItem*))); connect(workflowView_, SIGNAL(moveDownRequested(AMBeamlineActionItem*)), this, SLOT(onMoveDownActionRequested(AMBeamlineActionItem*))); QScrollArea* scrollArea = new QScrollArea(); scrollArea->setWidget(workflowView_); scrollArea->setWidgetResizable(true); /// \bug Github issue GH-193: reviewWorkflowStatus() is never called, because the beamline may not be initiated yet here. Removing the connection, since in this case it was doing nothing anyways. // Removed: connect(AMBeamline::bl(), SIGNAL(beamlineScanningChanged(bool)), this, SLOT(reviewWorkflowStatus())); connect(workflowQueue_, SIGNAL(isRunningChanged(bool)), this, SLOT(reviewWorkflowStatus())); connect(workflowQueue_, SIGNAL(isEmptyChanged(bool)), this, SLOT(reviewWorkflowStatus())); // removed with adder: connect(workflowView_, SIGNAL(queueUpdated(int)), adder_, SLOT(onQueueUpdated(int))); // Darren added this. connect(workflowQueue_, SIGNAL(headChanged()), this, SIGNAL(headChanged())); // End of Darren's addition. vl_ = new QVBoxLayout(); vl_->addWidget(scrollArea); topFrame_->frameLayout()->addLayout(hl); QVBoxLayout *vl2 = new QVBoxLayout(); vl2->addWidget(topFrame_); vl2->addLayout(vl_); vl2->setContentsMargins(0,0,0,0); vl2->setSpacing(1); vl_->setContentsMargins(10, 5, 10, 10); vl_->setSpacing(5); hl->setContentsMargins(0, 2, 10, 2); hl->setSpacing(5); setLayout(vl2); }