123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- #include <QString>
- #include <QVBoxLayout>
- #include <QDebug>
- #include <QList>
- #include "ctkWorkflowGroupBox.h"
- #include "ctkWorkflowWidgetStep.h"
- #include "ctkFittedTextBrowser.h"
- #include "ui_ctkWorkflowGroupBox.h"
- #include "ctkLogger.h"
- static ctkLogger logger("org.commontk.libs.widgets.ctkWorkflowGroupBox");
- class ctkWorkflowGroupBoxPrivate: public Ui_ctkWorkflowGroupBox
-
- {
- public:
- ctkWorkflowGroupBoxPrivate();
- ~ctkWorkflowGroupBoxPrivate();
- bool HideWidgetsOfNonCurrentSteps;
- bool ErrorTextEnabled;
- ctkWorkflowStep* StepShownPreviously;
- ctkWorkflowStep* StepShownCurrently;
- void setupUi(ctkWorkflowGroupBox* widget);
- };
- ctkWorkflowGroupBoxPrivate::ctkWorkflowGroupBoxPrivate()
- {
- this->HideWidgetsOfNonCurrentSteps = false;
- this->ErrorTextEnabled = true;
- this->StepShownPreviously = 0;
- this->StepShownCurrently = 0;
- }
- ctkWorkflowGroupBoxPrivate::~ctkWorkflowGroupBoxPrivate()
- {
- }
- void ctkWorkflowGroupBoxPrivate::setupUi(ctkWorkflowGroupBox* widget)
- {
- this->Ui_ctkWorkflowGroupBox::setupUi(widget);
- }
- ctkWorkflowGroupBox::ctkWorkflowGroupBox(QWidget* _parent) : Superclass(_parent)
- , d_ptr(new ctkWorkflowGroupBoxPrivate)
- {
- Q_D(ctkWorkflowGroupBox);
- d->setupUi(this);
- }
- ctkWorkflowGroupBox::~ctkWorkflowGroupBox()
- {
- }
- CTK_GET_CPP(ctkWorkflowGroupBox, bool, hideWidgetsOfNonCurrentSteps, HideWidgetsOfNonCurrentSteps);
- CTK_SET_CPP(ctkWorkflowGroupBox, bool, setHideWidgetsOfNonCurrentSteps, HideWidgetsOfNonCurrentSteps);
- CTK_GET_CPP(ctkWorkflowGroupBox, bool, errorTextEnabled, ErrorTextEnabled);
- CTK_SET_CPP(ctkWorkflowGroupBox, bool, setErrorTextEnabled, ErrorTextEnabled);
- CTK_GET_CPP(ctkWorkflowGroupBox, QLayout*, clientAreaLayout, ClientAreaLayout);
- void ctkWorkflowGroupBox::updateGroupBox(ctkWorkflowStep* currentStep)
- {
- Q_D(ctkWorkflowGroupBox);
- d->StepShownPreviously = d->StepShownCurrently;
- d->StepShownCurrently = currentStep;
- if (currentStep)
- {
- this->setTitle(currentStep->name());
- this->setSubTitle(currentStep->description());
- this->setErrorText(currentStep->statusText());
-
- d->SubTitleTextBrowser->setVisible(!this->subTitle().isEmpty());
- d->PreTextBrowser->setVisible(!this->preText().isEmpty());
- d->PostTextBrowser->setVisible(!this->postText().isEmpty());
- d->ErrorTextBrowser->setVisible(!this->errorText().isEmpty() && d->ErrorTextEnabled);
- }
-
- if (ctkWorkflowWidgetStep* prevStep = dynamic_cast<ctkWorkflowWidgetStep*>(d->StepShownPreviously))
- {
- logger.debug(QString("updateClientArea - hiding %1").arg(prevStep->name()));
- if (QWidget* stepArea = prevStep->stepArea())
- {
- stepArea->setEnabled(false);
- if (d->HideWidgetsOfNonCurrentSteps)
- {
- stepArea->hide();
- }
- }
- }
-
- ctkWorkflowWidgetStep* currentWidgetStep = dynamic_cast<ctkWorkflowWidgetStep*>(currentStep);
-
- if (currentWidgetStep)
- {
- currentWidgetStep->showUserInterface();
- if (QWidget* stepArea = currentWidgetStep->stepArea())
- {
-
- if (!this->isAncestorOf(stepArea))
- {
- d->ClientAreaLayout->addWidget(stepArea);
- }
- stepArea->setEnabled(true);
- stepArea->show();
- }
- }
-
- }
- QString ctkWorkflowGroupBox::title()const
- {
- Q_D(const ctkWorkflowGroupBox);
- return d->CollapsibleButton->text();
- }
- void ctkWorkflowGroupBox::setTitle(const QString& newTitleText)
- {
- Q_D(ctkWorkflowGroupBox);
- d->CollapsibleButton->setText(newTitleText);
- }
- QString ctkWorkflowGroupBox::subTitle()const
- {
- Q_D(const ctkWorkflowGroupBox);
- return d->SubTitleTextBrowser->toPlainText();
- }
- void ctkWorkflowGroupBox::setSubTitle(const QString& newSubTitleText)
- {
- Q_D(ctkWorkflowGroupBox);
- d->SubTitleTextBrowser->setPlainText(newSubTitleText);
- }
- QString ctkWorkflowGroupBox::preText()const
- {
- Q_D(const ctkWorkflowGroupBox);
- return d->PreTextBrowser->toPlainText();
- }
- void ctkWorkflowGroupBox::setPreText(const QString& newPreText)
- {
- Q_D(ctkWorkflowGroupBox);
- d->PreTextBrowser->setPlainText(newPreText);
- }
- QString ctkWorkflowGroupBox::postText()const
- {
- Q_D(const ctkWorkflowGroupBox);
- return d->PostTextBrowser->toPlainText();
- }
- void ctkWorkflowGroupBox::setPostText(const QString& newPostText)
- {
- Q_D(ctkWorkflowGroupBox);
- d->PostTextBrowser->setPlainText(newPostText);
- }
- QString ctkWorkflowGroupBox::errorText()const
- {
- Q_D(const ctkWorkflowGroupBox);
- return d->ErrorTextBrowser->toPlainText();
- }
- void ctkWorkflowGroupBox::setErrorText(const QString& newErrorText)
- {
- Q_D(ctkWorkflowGroupBox);
- d->ErrorTextBrowser->setPlainText(newErrorText);
- }
|