123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- #include <QApplication>
- #include <QTimer>
- #include "ctkWorkflow.h"
- #include "ctkWorkflowTabWidget.h"
- #include "ctkWorkflowWidgetStep.h"
- #include "ctkWorkflowGroupBox.h"
- #include "ctkExampleWorkflowWidgetStepUsingSignalsAndSlots.h"
- #include <cstdlib>
- #include <iostream>
- int ctkExampleUseOfWorkflowWidgetUsingSignalsAndSlots(int argc, char * argv [] )
- {
- QApplication app(argc, argv);
-
-
-
-
-
- bool hideWidgets = false;
-
- ctkWorkflow* workflow = new ctkWorkflow;
-
- ctkWorkflowTabWidget* workflowWidget = new ctkWorkflowTabWidget;
- workflowWidget->setWorkflow(workflow);
- ctkWorkflowGroupBox* groupBox = workflowWidget->workflowGroupBox();
- groupBox->setPreText("I am some pre-text");
- groupBox->setPostText("I am some post-text");
- groupBox->setHideWidgetsOfNonCurrentSteps(hideWidgets);
-
- ctkWorkflowWidgetStep* testStep1 = new ctkWorkflowWidgetStep("Step 1");
- testStep1->setName("Step 1");
- testStep1->setDescription("I am in step 1");
-
- workflowWidget->associateStepWithLabel(testStep1, "name 1");
-
- ctkWorkflowWidgetStep* testStep2 = new ctkWorkflowWidgetStep("Step 2");
- testStep2->setName("Step 2");
- testStep2->setDescription("I am in step 2");
-
- workflowWidget->associateStepWithLabel(testStep2, "name 2");
-
- ctkWorkflowWidgetStep* testStep3 = new ctkWorkflowWidgetStep("Step 3");
- testStep3->setName("Step 3");
- testStep3->setDescription("I am in step 3");
-
-
- workflowWidget->associateStepWithPage(testStep3, 1, "name 3");
-
- workflow->addTransition(testStep1, testStep2);
- workflow->addTransition(testStep2, testStep3);
-
-
- ctkExampleWorkflowWidgetStepUsingSignalsAndSlots* qObject1 =
- new ctkExampleWorkflowWidgetStepUsingSignalsAndSlots(testStep1);
- ctkExampleWorkflowWidgetStepUsingSignalsAndSlots* qObject2 =
- new ctkExampleWorkflowWidgetStepUsingSignalsAndSlots(testStep2);
- ctkExampleWorkflowWidgetStepUsingSignalsAndSlots* qObject3 =
- new ctkExampleWorkflowWidgetStepUsingSignalsAndSlots(testStep3);
-
- qObject1->setWidget(testStep1->stepArea());
- qObject2->setWidget(testStep2->stepArea());
- qObject3->setWidget(testStep3->stepArea());
-
- QObject::connect(testStep1->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(QString)), qObject1, SLOT(validate(QString)));
- QObject::connect(testStep2->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(QString)), qObject2, SLOT(validate(QString)));
- QObject::connect(testStep3->ctkWorkflowStepQObject(), SIGNAL(invokeValidateCommand(QString)), qObject3, SLOT(validate(QString)));
-
- QObject::connect(testStep1->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)), qObject1, SLOT(onEntry(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
- QObject::connect(testStep2->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)), qObject2, SLOT(onEntry(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
- QObject::connect(testStep3->ctkWorkflowStepQObject(), SIGNAL(invokeOnEntryCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)), qObject3, SLOT(onEntry(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
-
- QObject::connect(testStep1->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)), qObject1, SLOT(onExit(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
- QObject::connect(testStep2->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)), qObject2, SLOT(onExit(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
- QObject::connect(testStep3->ctkWorkflowStepQObject(), SIGNAL(invokeOnExitCommand(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)), qObject3, SLOT(onExit(const ctkWorkflowStep*,ctkWorkflowInterstepTransition::InterstepTransitionType)));
-
- QObject::connect(testStep1->ctkWorkflowStepQObject(), SIGNAL(invokeCreateUserInterfaceCommand()), qObject1, SLOT(createUserInterface()));
- QObject::connect(qObject1, SIGNAL(createUserInterfaceComplete()), testStep1->ctkWorkflowStepQObject(), SIGNAL(showUserInterfaceComplete()));
- QObject::connect(testStep2->ctkWorkflowStepQObject(), SIGNAL(invokeCreateUserInterfaceCommand()), qObject2, SLOT(createUserInterface()));
- QObject::connect(qObject2, SIGNAL(createUserInterfaceComplete()), testStep2->ctkWorkflowStepQObject(), SIGNAL(showUserInterfaceComplete()));
- QObject::connect(testStep3->ctkWorkflowStepQObject(), SIGNAL(invokeCreateUserInterfaceCommand()), qObject3, SLOT(createUserInterface()));
- QObject::connect(qObject3, SIGNAL(createUserInterfaceComplete()), testStep3->ctkWorkflowStepQObject(), SIGNAL(showUserInterfaceComplete()));
- testStep1->setHasValidateCommand(1);
- testStep1->setHasOnEntryCommand(1);
- testStep1->setHasOnExitCommand(1);
- testStep1->setHasCreateUserInterfaceCommand(1);
- testStep2->setHasValidateCommand(1);
- testStep2->setHasOnEntryCommand(1);
- testStep2->setHasOnExitCommand(1);
- testStep2->setHasCreateUserInterfaceCommand(1);
- testStep3->setHasValidateCommand(1);
- testStep3->setHasOnEntryCommand(1);
- testStep3->setHasOnExitCommand(1);
- testStep3->setHasCreateUserInterfaceCommand(1);
-
- workflow->setInitialStep(testStep1);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- workflow->start();
- workflowWidget->show();
-
-
- QTimer::singleShot(500, &app, SLOT(quit()));
- app.exec();
-
- workflow->stop();
- QTimer::singleShot(100, &app, SLOT(quit()));
- app.exec();
-
-
- delete workflowWidget;
- return EXIT_SUCCESS;
- }
|