GFODlg::GFODlg(MainWindow *mw, Hand *h, QWidget *parent) : QDialog(parent), mMainWindow(mw), mHand(h) { setupUi(this); statusLabel->setText("Status: optimization off"); optimizationTypeBox->insertItem("Contact force existence"); optimizationTypeBox->insertItem("Contact force optimization"); optimizationTypeBox->insertItem("Grasp force existence"); optimizationTypeBox->insertItem("Grasp force optimization"); optimizationTypeBox->insertItem("Compliant joint equilibrium"); optimizationTypeBox->insertItem("DOF force equilibrium"); if (mHand->isA("McGrip")) { optimizationTypeBox->insertItem("McGrip tendon route"); optimizationTypeBox->insertItem("McGrip joint equilibrium"); } QObject::connect(exitButton, SIGNAL(clicked()), this, SLOT(exitButtonClicked())); QObject::connect(mHand, SIGNAL(configurationChanged()), this, SLOT(handConfigurationChanged())); QObject::connect(optimizationOnBox, SIGNAL(clicked()), this, SLOT(optimizationOnBoxClicked())); }
/*! \param pMainWindow - pointer to MainWindow */ StackFramesWidget::StackFramesWidget(MainWindow *pMainWindow) : QWidget(pMainWindow) { mpMainWindow = pMainWindow; /* continue tool button */ mpResumeToolButton = new QToolButton; mpResumeToolButton->setEnabled(false); mpResumeToolButton->setText(Helper::resume); mpResumeToolButton->setIcon(QIcon(":/Resources/icons/resume.svg")); mpResumeToolButton->setIconSize(Helper::buttonIconSize); mpResumeToolButton->setToolTip(Helper::resume); mpResumeToolButton->setAutoRaise(true); connect(mpResumeToolButton, SIGNAL(clicked()), SLOT(resumeButtonClicked())); /* continue tool button */ mpInterruptToolButton = new QToolButton; mpInterruptToolButton->setEnabled(false); mpInterruptToolButton->setText(Helper::interrupt); mpInterruptToolButton->setIcon(QIcon(":/Resources/icons/interrupt.svg")); mpInterruptToolButton->setIconSize(Helper::buttonIconSize); mpInterruptToolButton->setToolTip(Helper::interrupt); mpInterruptToolButton->setAutoRaise(true); connect(mpInterruptToolButton, SIGNAL(clicked()), SLOT(interruptButtonClicked())); /* continue tool button */ mpExitToolButton = new QToolButton; mpExitToolButton->setEnabled(false); mpExitToolButton->setText(Helper::exit); mpExitToolButton->setIcon(QIcon(":/Resources/icons/exit.svg")); mpExitToolButton->setIconSize(Helper::buttonIconSize); mpExitToolButton->setToolTip(Helper::exit); mpExitToolButton->setAutoRaise(true); connect(mpExitToolButton, SIGNAL(clicked()), SLOT(exitButtonClicked())); /* Control buttons frame */ QFrame *pControlButtonsFrame = new QFrame; QHBoxLayout *pControlButtonsHorizontalLayout = new QHBoxLayout; pControlButtonsHorizontalLayout->setContentsMargins(0, 0, 0, 0); pControlButtonsHorizontalLayout->setSpacing(0); pControlButtonsHorizontalLayout->addWidget(mpResumeToolButton); pControlButtonsHorizontalLayout->addWidget(mpInterruptToolButton); pControlButtonsHorizontalLayout->addWidget(mpExitToolButton); pControlButtonsFrame->setLayout(pControlButtonsHorizontalLayout); /* step-into tool button */ mpStepIntoToolButton = new QToolButton; mpStepIntoToolButton->setEnabled(false); mpStepIntoToolButton->setText(Helper::stepInto); mpStepIntoToolButton->setIcon(QIcon(":/Resources/icons/step-into.svg")); mpStepIntoToolButton->setIconSize(Helper::buttonIconSize); mpStepIntoToolButton->setToolTip(Helper::stepInto); mpStepIntoToolButton->setAutoRaise(true); connect(mpStepIntoToolButton, SIGNAL(clicked()), SLOT(stepIntoButtonClicked())); /* step-over tool button */ mpStepOverToolButton = new QToolButton; mpStepOverToolButton->setEnabled(false); mpStepOverToolButton->setText(Helper::stepOver); mpStepOverToolButton->setIcon(QIcon(":/Resources/icons/step-over.svg")); mpStepOverToolButton->setIconSize(Helper::buttonIconSize); mpStepOverToolButton->setToolTip(Helper::stepOver); mpStepOverToolButton->setAutoRaise(true); connect(mpStepOverToolButton, SIGNAL(clicked()), SLOT(stepOverButtonClicked())); /* step-return tool button */ mpStepReturnToolButton = new QToolButton; mpStepReturnToolButton->setEnabled(false); mpStepReturnToolButton->setText(Helper::stepReturn); mpStepReturnToolButton->setIcon(QIcon(":/Resources/icons/step-return.svg")); mpStepReturnToolButton->setIconSize(Helper::buttonIconSize); mpStepReturnToolButton->setToolTip(Helper::stepReturn); mpStepReturnToolButton->setAutoRaise(true); connect(mpStepReturnToolButton, SIGNAL(clicked()), SLOT(stepReturnButtonClicked())); /* Flow buttons frame */ QFrame *pFlowButtonsFrame = new QFrame; QHBoxLayout *pFlowButtonsHorizontalLayout = new QHBoxLayout; pFlowButtonsHorizontalLayout->setContentsMargins(0, 0, 0, 0); pFlowButtonsHorizontalLayout->setSpacing(0); pFlowButtonsHorizontalLayout->addWidget(mpStepIntoToolButton); pFlowButtonsHorizontalLayout->addWidget(mpStepOverToolButton); pFlowButtonsHorizontalLayout->addWidget(mpStepReturnToolButton); pFlowButtonsFrame->setLayout(pFlowButtonsHorizontalLayout); /* Threads Label */ mpThreadsLabel = new Label(tr("Threads:")); /* Threads combo box */ mpThreadsComboBox = new QComboBox; mpThreadsComboBox->setEnabled(false); connect(mpThreadsComboBox, SIGNAL(currentIndexChanged(int)), SLOT(threadChanged(int))); connect(mpMainWindow->getGDBAdapter(), SIGNAL(threadInfo(GDBMIValue*,QString)), SLOT(fillThreadComboBox(GDBMIValue*,QString))); /* Thread frame */ QFrame *pThreadFrame = new QFrame; QHBoxLayout *pThreadHorizontalLayout = new QHBoxLayout; pThreadHorizontalLayout->setContentsMargins(0, 0, 0, 0); pThreadHorizontalLayout->setSpacing(0); pThreadHorizontalLayout->addWidget(mpThreadsLabel); pThreadHorizontalLayout->addWidget(mpThreadsComboBox); pThreadFrame->setLayout(pThreadHorizontalLayout); // create project status bar mpStatusBar = new QStatusBar; mpStatusBar->setObjectName("ModelStatusBar"); mpStatusBar->setStyleSheet("QStatusBar{border-bottom: none;} QStatusBar::item{margin-bottom: -1px;}"); mpStatusBar->setSizeGripEnabled(false); mpStatusBar->addPermanentWidget(pControlButtonsFrame, 0); mpStatusBar->addPermanentWidget(pFlowButtonsFrame, 0); mpStatusBar->addPermanentWidget(pThreadFrame, 0); /* Message Label */ mpStatusLabel = new Label; mpStatusLabel->setElideMode(Qt::ElideMiddle); mpStatusBar->addPermanentWidget(mpStatusLabel, 1); /* Stack Frames Tree Widget */ mpStackFramesTreeWidget = new StackFramesTreeWidget(this); setSelectedThread(1); setSelectedFrame(0); /* set layout */ QGridLayout *pMainLayout = new QGridLayout; pMainLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop); pMainLayout->setContentsMargins(0, 0, 0, 0); pMainLayout->setSpacing(0); pMainLayout->addWidget(mpStatusBar, 0, 0); pMainLayout->addWidget(mpStackFramesTreeWidget, 1, 0); setLayout(pMainLayout); /* Make connections to control the enable/disable of tool buttons */ connect(mpMainWindow->getGDBAdapter(), SIGNAL(GDBProcessStarted()), SLOT(handleGDBProcessStarted())); connect(mpMainWindow->getGDBAdapter(), SIGNAL(GDBProcessFinished()), SLOT(handleGDBProcessFinished())); connect(mpMainWindow->getGDBAdapter(), SIGNAL(inferiorSuspended()), SLOT(handleInferiorSuspended())); connect(mpMainWindow->getGDBAdapter(), SIGNAL(inferiorResumed()), SLOT(handleInferiorResumed())); }
OptimizerDlg::OptimizerDlg(World *w, QWidget *parent) : QDialog(parent), mWorld(w) { setupUi(this); QObject::connect(exitButton, SIGNAL(clicked()), this, SLOT(exitButtonClicked())); QObject::connect(torqueButton, SIGNAL(clicked()), this, SLOT(torqueButtonClicked())); }