OnlyAgentPrecedenceConstraint(const vd::DynamicsInit& mdl, const vd::InitEventList& evts) : vmd::Agent(mdl, evts), mStart(false) { vmd::Activity& a = addActivity("A", 0, devs::infinity); a.addOutputFunction( boost::bind(&OnlyAgentPrecedenceConstraint::aout, this, _1, _2, _3)); vmd::Activity& b = addActivity("B", devs::negativeInfinity, devs::infinity); b.addOutputFunction( boost::bind(&OnlyAgentPrecedenceConstraint::aout, this, _1, _2, _3)); vmd::Activity& c = addActivity("C", devs::negativeInfinity, devs::infinity); c.addOutputFunction( boost::bind(&OnlyAgentPrecedenceConstraint::aout, this, _1, _2, _3)); vmd::Activity& d = addActivity("D", devs::negativeInfinity, devs::infinity); d.addOutputFunction( boost::bind(&OnlyAgentPrecedenceConstraint::aout, this, _1, _2, _3)); addStartToStartConstraint("A", "B", 1.0, devs::infinity); addStartToStartConstraint("B", "C", 1.0, devs::infinity); addStartToStartConstraint("C", "D", 8.0, devs::infinity); }
StartsFailed() { addActivity("A", 1.0, 2.0); addActivity("B"); // A and B need to start at the same time. addStartToStartConstraint("A", "B", 0.0, 0.0); }
Finishes() { addActivity("A"); addActivity("B"); // A and B need to finish at the same time. addFinishToFinishConstraint("A", "B", 0.0); }
Before() { addActivity("A", 0.0, 2.0); addActivity("B", 3.0, 5.0); // B needs to start at time 3.0. addFinishToStartConstraint("A", "B", 0.0, 2.0); }
Meets() { addActivity("A"); addActivity("B"); // B needs to start when A finishes. addFinishToStartConstraint("A", "B", 0.0, 0.0); }
Overlaps() { addActivity("A"); addActivity("B"); // B needs to start at begin time of A + 1.0. addStartToStartConstraint("A", "B", 1.0, 2.0); }
Equal() { addActivity("A"); addActivity("B"); // A and B need to start and finish a the same time. addStartToStartConstraint("A", "B", 0.0, 0.0); addFinishToFinishConstraint("A", "B", 0.0, 0.0); }
During() { addActivity("A"); addActivity("B"); // B needs to start at begin time of A + 1.0. // A needs to finished at end time of B + 1.0. addStartToStartConstraint("A", "B", 1.0, 1.0); addFinishToFinishConstraint("B", "A", 1.0); }
KnowledgeBaseGraph() { addActivity("act1"); addActivity("act2"); addActivity("act3"); addActivity("act4"); addActivity("act5"); addFinishToStartConstraint("act1", "act2", 0.0, 1.0); addFinishToStartConstraint("act2", "act3", 0.0, 1.0); addFinishToStartConstraint("act2", "act4", 0.0, 1.0); }
void StateWidget::slotMenuSelection(int sel) { bool done = false; bool ok = false; QString name = getName(); switch( sel ) { case ListPopupMenu::mt_Rename: name = KInputDialog::getText( i18n("Enter State Name"), i18n("Enter the name of the new state:"), getName(), &ok ); if( ok && name.length() > 0 ) setName( name ); done = true; break; case ListPopupMenu::mt_Properties: showProperties(); done = true; break; case ListPopupMenu::mt_New_Activity: name = KInputDialog::getText( i18n("Enter Activity"), i18n("Enter the name of the new activity:"), i18n("new activity"), &ok ); if( ok && name.length() > 0 ) addActivity( name ); done = true; break; } if( !done ) UMLWidget::slotMenuSelection( sel ); }
KnowledgeBase() : vmd::KnowledgeBase(), today(0), yesterday(0) { addFact("today", boost::bind(&vmd::ex::KnowledgeBase::date, this, _1)); vmd::Rule& r1 = addRule("Rule 1"); r1.add(boost::bind(&vmd::ex::KnowledgeBase::haveGoodTemp, this)); r1.add(boost::bind(&vmd::ex::KnowledgeBase::isAlwaysTrue, this)); vmd::Rule& r2 = addRule("Rule 2"); r2.add(boost::bind(&vmd::ex::KnowledgeBase::haveGoodTemp, this)); vmd::Activity& act1 = addActivity("act1"); act1.addRule("Rule 1", r1); vmd::Activity& act2 = addActivity("act2"); act2.addRule("Rule 2", r2); }
KB5() : vmd::KnowledgeBase(), mNbUpdate(0), mNbAck(0), mNbOut(0) { std::cout << fmt("KB5 start\n"); vmd::Activity& a = addActivity("A", 0.0, vd::infinity); vmd::Activity& b = addActivity("B", 1.0, vd::infinity); vmd::Activity& c = addActivity("C", 1.0, vd::infinity); vmd::Activity& d = addActivity("D", 2.0, vd::infinity); vmd::Activity& e = addActivity("E", 3.0, vd::infinity); vmd::Activity& f = addActivity("F", 4.0, vd::infinity); addOutputFunctions(this) += O("out", &KB5::out); addUpdateFunctions(this) += U("update", &KB5::update); a.addOutputFunction(outputFunctions()["out"]); b.addOutputFunction(outputFunctions()["out"]); c.addOutputFunction(outputFunctions()["out"]); d.addOutputFunction(outputFunctions()["out"]); e.addOutputFunction(outputFunctions()["out"]); f.addOutputFunction(outputFunctions()["out"]); a.addUpdateFunction(updateFunctions()["update"]); b.addUpdateFunction(updateFunctions()["update"]); c.addUpdateFunction(updateFunctions()["update"]); d.addUpdateFunction(updateFunctions()["update"]); e.addUpdateFunction(updateFunctions()["update"]); f.addUpdateFunction(updateFunctions()["update"]); }
KB4() { addActivity("A", 0.0, vd::infinity); addActivity("B", 1.0, vd::infinity); addActivity("C", 1.0, vd::infinity); addActivity("D", 2.0, vd::infinity); addActivity("E", 3.0, vd::infinity); addActivity("F", 4.0, vd::infinity); }
SimpleAgent(const vle::devs::DynamicsInit& mdl, const vle::devs::InitEventList& evts) : vmd::Agent(mdl, evts), today(0), yesterday(0) { addFact("today", boost::bind(&SimpleAgent::date, this, _1)); vmd::Rule& r1 = addRule("Rule 1"); r1.add(boost::bind(&vmd::ex::SimpleAgent::haveGoodTemp, this)); r1.add(boost::bind(&vmd::ex::SimpleAgent::isAlwaysTrue, this)); vmd::Rule& r2 = addRule("Rule 2"); r2.add(boost::bind(&vmd::ex::SimpleAgent::haveGoodTemp, this)); vmd::Activity& act1 = addActivity("act1"); act1.addRule("Rule 1", r1); vmd::Activity& act2 = addActivity("act2"); act2.addRule("Rule 2", r2); act2.initStartTimeFinishTime(1.5, 2.5); vmd::Activity& act3 = addActivity("act3"); act3.addRule("Rule 2", r2); act3.initStartTimeFinishTime(3.5, 4.5); }
KnowledgeBase() : vmd::KnowledgeBase(), today(0), yesterday(0) { addFact("today", std::bind(&vmd::ex::KnowledgeBase::date, this, std::placeholders::_1)); vmd::Rule& r1 = addRule("Rule 1"); r1.add(std::bind(&vmd::ex::KnowledgeBase::haveGoodTemp, this)); r1.add(std::bind(&vmd::ex::KnowledgeBase::isAlwaysTrue, this)); vmd::Rule& r2 = addRule("Rule 2"); r2.add(std::bind(&vmd::ex::KnowledgeBase::haveGoodTemp, this)); vmd::Activity& act1 = addActivity("act1"); act1.addRule("Rule 1", r1); vmd::Activity& act2 = addActivity("act2"); act2.addRule("Rule 2", r2); act2.initStartTimeFinishTime(1.5, 2.5); vmd::Activity& act3 = addActivity("act3"); act3.addRule("Rule 2", r2); act3.initStartTimeFinishTime(3.5, 4.5); }
GUI::GUI() : core(0), pref_dlg(0) { //Marker markk("GUI::GUI()"); part_manager = new KParts::PartManager(this); connect(part_manager, &KParts::PartManager::activePartChanged, this, &GUI::activePartChanged); core = new Core(this); core->loadTorrents(); tray_icon = new TrayIcon(core, this); central = new CentralWidget(this); setCentralWidget(central); connect(central, &CentralWidget::changeActivity, this, &GUI::setCurrentActivity); torrent_activity = new TorrentActivity(core, this, 0); status_bar = new kt::StatusBar(this); setStatusBar(status_bar); setupActions(); setupGUI(Default, QStringLiteral("ktorrentui.rc")); addActivity(torrent_activity); //mark.update(); connect(&timer, &QTimer::timeout, this, &GUI::update); timer.start(Settings::guiUpdateInterval()); applySettings(); connect(core, &Core::settingsChanged, this, &GUI::applySettings); if (Settings::showSystemTrayIcon()) { tray_icon->updateMaxRateMenus(); tray_icon->show(); } else tray_icon->hide(); dbus_iface = new DBus(this, core, this); core->loadPlugins(); loadState(KSharedConfig::openConfig()); IPFilterWidget::registerFilterList(); //markk.update(); updateActions(); core->startUpdateTimer(); }
GUI::GUI() : core(0), pref_dlg(0) { //Marker markk("GUI::GUI()"); part_manager = new KParts::PartManager(this); connect(part_manager, SIGNAL(activePartChanged(KParts::Part*)), this, SLOT(activePartChanged(KParts::Part*))); core = new Core(this); core->loadTorrents(); tray_icon = new TrayIcon(core, this); central = new CentralWidget(this); setCentralWidget(central); connect(central, SIGNAL(changeActivity(Activity*)), this, SLOT(setCurrentActivity(Activity*))); torrent_activity = new TorrentActivity(core, this, 0); status_bar = new kt::StatusBar(this); setStatusBar(status_bar); setupActions(); setupGUI(Default, "ktorrentui.rc"); addActivity(torrent_activity); //mark.update(); connect(&timer, SIGNAL(timeout()), this, SLOT(update())); timer.start(Settings::guiUpdateInterval()); applySettings(); connect(core, SIGNAL(settingsChanged()), this, SLOT(applySettings())); if (Settings::showSystemTrayIcon()) { tray_icon->updateMaxRateMenus(); tray_icon->show(); } else tray_icon->hide(); dbus_iface = new DBus(this, core, this); core->loadPlugins(); loadState(KGlobal::config()); IPFilterWidget::registerFilterList(); //markk.update(); updateActions(); core->startUpdateTimer(); }
void ActivityManager::activityAdded(QString id) { // skip the Status source if (id == "Status") return; // create a new activity object ActivityWidget *activity = new ActivityWidget(extender()->item("Activities"), id); // add activity to the list m_activities.insert(id, activity); // connect activity update signal dataEngine("org.kde.activities")->connectSource(id, this); // connect activity start/stop signals connect(activity, SIGNAL(setCurrent(QString)), this, SLOT(setCurrent(QString))); connect(activity, SIGNAL(startActivity(QString)), this, SLOT(start(QString))); connect(activity, SIGNAL(stopActivity(QString)), this, SLOT(stop(QString))); connect(activity, SIGNAL(addActivity(QString)), this, SLOT(add(QString))); connect(activity, SIGNAL(removeActivity(QString)), this, SLOT(remove(QString))); connect(activity, SIGNAL(renameActivity(QString,QString)), this, SLOT(setName(QString,QString))); }
/** * Captures any popup menu signals for menus it created. */ void StateWidget::slotMenuSelection(QAction* action) { bool ok = false; QString nameNew = name(); ListPopupMenu::MenuType sel = ListPopupMenu::typeFromAction(action); switch(sel) { case ListPopupMenu::mt_Rename: nameNew = name(); ok = Dialog_Utils::askName(i18n("Enter State Name"), i18n("Enter the name of the new state:"), nameNew); if (ok && nameNew.length() > 0) { setName(nameNew); } break; case ListPopupMenu::mt_Properties: showPropertiesDialog(); break; case ListPopupMenu::mt_New_Activity: nameNew = i18n("new activity"); ok = Dialog_Utils::askName(i18n("Enter Activity"), i18n("Enter the name of the new activity:"), nameNew); if (ok && nameNew.length() > 0) { addActivity(nameNew); } break; case ListPopupMenu::mt_Flip: setDrawVertical(!m_drawVertical); break; default: UMLWidget::slotMenuSelection(action); break; } }
KnowledgeBaseGraph3() { addActivity("A"); addActivity("B"); addActivity("C"); addActivity("D"); addActivity("E"); addActivity("F"); addFinishToStartConstraint("A", "B", 0.0, 1.0); addFinishToStartConstraint("A", "C", 0.0, 1.0); addFinishToStartConstraint("A", "D", 0.0, 1.0); addFinishToStartConstraint("B", "F", 0.0, 1.0); addFinishToStartConstraint("C", "E", 0.0, 1.0); addFinishToStartConstraint("D", "E", 0.0, 1.0); addFinishToStartConstraint("E", "F", 0.0, 1.0); }
AddActivityForm::AddActivityForm(QWidget* parent, const QString& teacherName, const QString& studentsSetName, const QString& subjectName, const QString& activityTagName): QDialog(parent) { setupUi(this); allTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedTeachersListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedStudentsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); allActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); selectedActivityTagsListWidget->setSelectionMode(QAbstractItemView::SingleSelection); splitSpinBox->setMaximum(MAX_SPLIT_OF_AN_ACTIVITY); durList.clear(); durList.append(duration1SpinBox); durList.append(duration2SpinBox); durList.append(duration3SpinBox); durList.append(duration4SpinBox); durList.append(duration5SpinBox); durList.append(duration6SpinBox); durList.append(duration7SpinBox); durList.append(duration8SpinBox); durList.append(duration9SpinBox); durList.append(duration10SpinBox); durList.append(duration11SpinBox); durList.append(duration12SpinBox); durList.append(duration13SpinBox); durList.append(duration14SpinBox); durList.append(duration15SpinBox); durList.append(duration16SpinBox); durList.append(duration17SpinBox); durList.append(duration18SpinBox); durList.append(duration19SpinBox); durList.append(duration20SpinBox); durList.append(duration21SpinBox); durList.append(duration22SpinBox); durList.append(duration23SpinBox); durList.append(duration24SpinBox); durList.append(duration25SpinBox); durList.append(duration26SpinBox); durList.append(duration27SpinBox); durList.append(duration28SpinBox); durList.append(duration29SpinBox); durList.append(duration30SpinBox); durList.append(duration31SpinBox); durList.append(duration32SpinBox); durList.append(duration33SpinBox); durList.append(duration34SpinBox); durList.append(duration35SpinBox); for(int i=0; i<MAX_SPLIT_OF_AN_ACTIVITY; i++) dur(i)->setMaximum(gt.rules.nHoursPerDay); activList.clear(); activList.append(active1CheckBox); activList.append(active2CheckBox); activList.append(active3CheckBox); activList.append(active4CheckBox); activList.append(active5CheckBox); activList.append(active6CheckBox); activList.append(active7CheckBox); activList.append(active8CheckBox); activList.append(active9CheckBox); activList.append(active10CheckBox); activList.append(active11CheckBox); activList.append(active12CheckBox); activList.append(active13CheckBox); activList.append(active14CheckBox); activList.append(active15CheckBox); activList.append(active16CheckBox); activList.append(active17CheckBox); activList.append(active18CheckBox); activList.append(active19CheckBox); activList.append(active20CheckBox); activList.append(active21CheckBox); activList.append(active22CheckBox); activList.append(active23CheckBox); activList.append(active24CheckBox); activList.append(active25CheckBox); activList.append(active26CheckBox); activList.append(active27CheckBox); activList.append(active28CheckBox); activList.append(active29CheckBox); activList.append(active30CheckBox); activList.append(active31CheckBox); activList.append(active32CheckBox); activList.append(active33CheckBox); activList.append(active34CheckBox); activList.append(active35CheckBox); connect(subgroupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showSubgroupsChanged())); connect(groupsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showGroupsChanged())); connect(yearsCheckBox, SIGNAL(toggled(bool)), this, SLOT(showYearsChanged())); connect(splitSpinBox, SIGNAL(valueChanged(int)), this, SLOT(splitChanged())); connect(closePushButton, SIGNAL(clicked()), this, SLOT(close())); connect(addActivityPushButton, SIGNAL(clicked()), this, SLOT(addActivity())); connect(helpPushButton, SIGNAL(clicked()), this, SLOT(help())); connect(allTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addTeacher())); connect(selectedTeachersListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeTeacher())); connect(allStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addStudents())); connect(selectedStudentsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeStudents())); connect(allActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(addActivityTag())); connect(selectedActivityTagsListWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(removeActivityTag())); connect(clearActivityTagPushButton, SIGNAL(clicked()), this, SLOT(clearActivityTags())); connect(clearStudentsPushButton, SIGNAL(clicked()), this, SLOT(clearStudents())); connect(clearTeacherPushButton, SIGNAL(clicked()), this, SLOT(clearTeachers())); connect(minDayDistanceSpinBox, SIGNAL(valueChanged(int)), this, SLOT(minDaysChanged())); centerWidgetOnScreen(this); restoreFETDialogGeometry(this); QSize tmp3=subjectsComboBox->minimumSizeHint(); Q_UNUSED(tmp3); selectedStudentsListWidget->clear(); updateStudentsListWidget(); updateTeachersListWidget(); updateSubjectsComboBox(); updateActivityTagsListWidget(); minDayDistanceSpinBox->setMaximum(gt.rules.nDaysPerWeek); minDayDistanceSpinBox->setMinimum(0); minDayDistanceSpinBox->setValue(1); int nSplit=splitSpinBox->value(); for(int i=0; i<MAX_SPLIT_OF_AN_ACTIVITY; i++){ if(i<nSplit) subactivitiesTabWidget->setTabEnabled(i, true); else subactivitiesTabWidget->setTabEnabled(i, false); } minDayDistanceTextLabel->setEnabled(nSplit>=2); minDayDistanceSpinBox->setEnabled(nSplit>=2); percentageTextLabel->setEnabled(nSplit>=2 && minDayDistanceSpinBox->value()>0); percentageLineEdit->setEnabled(nSplit>=2 && minDayDistanceSpinBox->value()>0); forceConsecutiveCheckBox->setEnabled(nSplit>=2 && minDayDistanceSpinBox->value()>0); subactivitiesTabWidget->setCurrentIndex(0); nStudentsSpinBox->setMinimum(-1); nStudentsSpinBox->setMaximum(MAX_ROOM_CAPACITY); nStudentsSpinBox->setValue(-1); addActivityPushButton->setDefault(true); addActivityPushButton->setFocus(); if(teacherName!="") selectedTeachersListWidget->addItem(teacherName); if(studentsSetName!="") selectedStudentsListWidget->addItem(studentsSetName); if(subjectName!=""){ int pos=-1; for(int i=0; i<subjectsComboBox->count(); i++){ if(subjectsComboBox->itemText(i)==subjectName){ pos=i; break; } } assert(pos>=0); subjectsComboBox->setCurrentIndex(pos); } else{ //begin trick to pass a Qt 4.6.0 bug: the first entry is not highlighted with mouse until you move to second entry and then back up if(subjectsComboBox->view()){ subjectsComboBox->view()->setCurrentIndex(QModelIndex()); } //end trick subjectsComboBox->setCurrentIndex(-1); } if(activityTagName!="") selectedActivityTagsListWidget->addItem(activityTagName); }
void movePlayer(int whichPlayer, int direction) { /* Function: movePlayer Purpose: Move a Player to a certain direction */ int targetBlock, targetX, targetY, targetX2, targetY2; switch ( direction ) { case UP: targetX = player[whichPlayer].coord_x; targetY = player[whichPlayer].coord_y - 1; targetX2 = player[whichPlayer].coord_x; targetY2 = player[whichPlayer].coord_y - 2; break; case DOWN: targetX = player[whichPlayer].coord_x; targetY = player[whichPlayer].coord_y + 1; targetX2 = player[whichPlayer].coord_x; targetY2 = player[whichPlayer].coord_y + 2; break; case LEFT: targetX = player[whichPlayer].coord_x - 1; targetY = player[whichPlayer].coord_y; targetX2 = player[whichPlayer].coord_x - 2; targetY2 = player[whichPlayer].coord_y; break; case RIGHT: targetX = player[whichPlayer].coord_x + 1; targetY = player[whichPlayer].coord_y; targetX2 = player[whichPlayer].coord_x + 2; targetY2 = player[whichPlayer].coord_y; break; } targetBlock = level.data[targetX][targetY]; // item if ( hasBlockBit(targetX, targetY, ISFETCHABLE) ) { takeItem(targetX, targetY); } // movable block if ( hasBlockBit(targetX, targetY, ISMOVABLE) ) { // water or hole if ( hasBlockBit(targetX2, targetY2, ISBLOCKDESTROYER) ) { removeBlock(targetX2, targetY2); removeBlock(targetX, targetY); // other block container } else if ( hasBlockBit(targetX2, targetY2, ISBLOCKCONTAINER) ) { level.data[targetX2][targetY2] = level.data[targetX][targetY]; removeBlock(targetX, targetY); addActivity(targetX, targetY, BLOCKMOVE); } } // arrow fields if ( (level.data[targetX][targetY] == B_UPARROW) || (level.data[targetX][targetY] == B_DOWNARROW) || (level.data[targetX][targetY] == B_RIGHTARROW) || (level.data[targetX][targetY] == B_LEFTARROW)) { addActivity(targetX, targetY, PLAYERMOVE); } // doors if (targetBlock == B_REDDOOR) { inventory.redKeys--; removeBlock(targetX, targetY); } if (targetBlock == B_GREENDOOR) { inventory.greenKeys--; removeBlock(targetX, targetY); } if (targetBlock == B_BLUEDOOR) { inventory.blueKeys--; removeBlock(targetX, targetY); } if (targetBlock == B_YELLOWDOOR) { inventory.yellowKeys--; removeBlock(targetX, targetY); } // toggle button if (targetBlock == B_BUTTON) { toggleBlocks = !toggleBlocks; } // general player movement if ( hasBlockBit(targetX, targetY, ISWALKABLE) ) { player[whichPlayer].coord_x = targetX; player[whichPlayer].coord_y = targetY; } // TODO // broken floor // finish // fake wall (air) // water w/ flippers // fire w/ fireshoes return; }