bool HandleCoincidence(SkTArray<SkOpContour*, true>* contourList, int total) { #if DEBUG_SHOW_WINDING SkOpContour::debugShowWindingValues(contourList); #endif CoincidenceCheck(contourList, total); #if DEBUG_SHOW_WINDING SkOpContour::debugShowWindingValues(contourList); #endif fixOtherTIndex(contourList); checkEnds(contourList); // check if connecting curve intersected at the same end bool hasM = checkMultiples(contourList); // check if intersections agree on t and point values SkTDArray<SkOpSegment::AlignedSpan> aligned; if (hasM) { alignMultiples(contourList, &aligned); // align pairs of identical points alignCoincidence(contourList, aligned); } checkDuplicates(contourList); // check if spans have the same number on the other end checkTiny(contourList); // if pair have the same end points, mark them as parallel checkSmall(contourList); // a pair of curves with a small span may turn into coincident lines joinCoincidence(contourList); // join curves that connect to a coincident pair sortSegments(contourList); if (!calcAngles(contourList)) { return false; } sortAngles(contourList); #if DEBUG_ACTIVE_SPANS || DEBUG_ACTIVE_SPANS_FIRST_ONLY DebugShowActiveSpans(*contourList); #endif return true; }
int findMinDifference(vector<string>& timePoints) { unordered_map<int, int> mp; if (checkDuplicates(timePoints, mp)) return 0; set<int> buckets; constructBuckets(timePoints, buckets); return calculateMinDiff(buckets); }
void RKVarEditModel::addObject (int index, RKVariable* object) { RK_TRACE (EDITOR); RK_ASSERT (object); if ((index < 0) || (index >= objects.size ())) index = objects.size (); beginInsertColumns (QModelIndex (), index, index); if (meta_model) meta_model->beginAddDataObject (index); if (object->isPending () && (!object->getLength ())) object->setLength (trueRows ()); // probably we just created it ourselves listenForObject (object); objects.insert (index, object); if (meta_model) meta_model->endAddDataObject (); endInsertColumns (); checkDuplicates (); }
void TeamMembersDlg::slotAddMember() { KDialogBase addDlg(this, "add_member", true, i18n("New Member"), KDialogBase::Ok | KDialogBase::Cancel); MemberEditDlg memberDlg(&addDlg); addDlg.setMainWidget(&memberDlg); bool result; do { result = addDlg.exec(); if (result) { QString name = memberDlg.nameCombo->currentText(); QString role = memberDlg.roleCombo->currentText(); QString task = memberDlg.taskEdit->text(); QString subProject = memberDlg.subprojectCombo->currentText(); QString nickName = memberDlg.nicknameEdit->text(); QString email = memberDlg.emailEdit->text(); if (name.isEmpty()) { KMessageBox::error(this, i18n("The member name cannot be empty.")); addDlg.show(); } else if (nickName.isEmpty()) { KMessageBox::error(this, i18n("The nickname cannot be empty as it is used as a unique identifier.")); addDlg.show(); } else if (!checkDuplicates(0L, name, nickName, email, role, task, subProject)) { addDlg.show(); } else { QListViewItem *item = new QListViewItem(membersListView, name, nickName, email, role, task); if (memberDlg.subprojectCombo->isEnabled()) item->setText(SUBPROJECT_COL, subProject); result = false; } } } while (result); }
void Menu::bindKey() { bindText.setString(bindMessage); bindText.setOrigin(bindText.getGlobalBounds().width / 2, bindText.getGlobalBounds().height / 2); for (int i = 0; i < sf::Keyboard::KeyCount; ++i) { if (sf::Keyboard::isKeyPressed((sf::Keyboard::Key)i)) { if (i == sf::Keyboard::Escape) { //exit isBinding = false; } else { sf::Keyboard::Key * tempKey; int saved; switch(currentKey) //was not planning ahead { case 7: tempKey = &settings.leftPlayer.up; break; case 8: tempKey = &settings.leftPlayer.down; break; case 9: tempKey = &settings.leftPlayer.left; break; case 10: tempKey = &settings.leftPlayer.right; break; case 11: tempKey = &settings.leftPlayer.select; break; case 12: tempKey = &settings.leftPlayer.back; break; case 13: tempKey = &settings.leftPlayer.speed; break; case 14: tempKey = &settings.leftPlayer.hotkey1; break; case 15: tempKey = &settings.leftPlayer.hotkey2; break; case 16: tempKey = &settings.leftPlayer.hotkey3; break; case 17: tempKey = &settings.leftPlayer.hotkey4; break; case 18: tempKey = &settings.rightPlayer.up; break; case 19: tempKey = &settings.rightPlayer.down; break; case 20: tempKey = &settings.rightPlayer.left; break; case 21: tempKey = &settings.rightPlayer.right; break; case 22: tempKey = &settings.rightPlayer.select; break; case 23: tempKey = &settings.rightPlayer.back; break; case 24: tempKey = &settings.rightPlayer.speed; break; case 25: tempKey = &settings.rightPlayer.hotkey1; break; case 26: tempKey = &settings.rightPlayer.hotkey2; break; case 27: tempKey = &settings.rightPlayer.hotkey3; break; case 28: tempKey = &settings.rightPlayer.hotkey4; break; } saved = *tempKey; *tempKey = (sf::Keyboard::Key)i; if (checkDuplicates() == false) //valid { isBinding = false; updateSettings(); } else { *tempKey = (sf::Keyboard::Key)saved; sprintf(bindMessage, "Press the escape key to exit.\n\nPress the new key for %s\n\nThe %s key is already being used!", hotkeyNames[currentKey - 7], keyNames[i]); } } } } }
void TeamMembersDlg::slotEditMember() { QListViewItem *item =membersListView->currentItem(); if (!item) return; KDialogBase editDlg(this, "edit_member", true, i18n("Edit Member"), KDialogBase::Ok | KDialogBase::Cancel); MemberEditDlg memberDlg(&editDlg); memberDlg.selectMember(item->text(NAME_COL)); memberDlg.nicknameEdit->setText(item->text(NICKNAME_COL)); memberDlg.emailEdit->setText(item->text(EMAIL_COL)); QString role = item->text(ROLE_COL); for (int i = 0; i < memberDlg.roleCombo->count(); i++) { if (memberDlg.roleCombo->text(i) == role) { memberDlg.roleCombo->setCurrentItem(i); memberDlg.slotRoleSelected(role); break; } } memberDlg.taskEdit->setText(item->text(TASK_COL)); int idx = 0; int subprojectIdx = 0; QValueList<SubProject> *subprojects = Project::ref()->subprojects(); for (QValueList<SubProject>::ConstIterator it = subprojects->constBegin(); it != subprojects->constEnd(); ++it) { if (item->text(SUBPROJECT_COL) == (*it).name) { subprojectIdx = idx; break; } idx++; } memberDlg.subprojectCombo->setCurrentItem(subprojectIdx); editDlg.setMainWidget(&memberDlg); bool result; do { result = editDlg.exec(); if (result) { QString name = memberDlg.nameCombo->currentText(); QString nickName = memberDlg.nicknameEdit->text(); QString email = memberDlg.emailEdit->text(); QString role = memberDlg.roleCombo->currentText(); QString task = memberDlg.taskEdit->text(); QString subProject = memberDlg.subprojectCombo->currentText(); if (name.isEmpty()) { KMessageBox::error(this, i18n("The member name cannot be empty.")); editDlg.show(); } else if (nickName.isEmpty()) { KMessageBox::error(this, i18n("The nickname cannot be empty as it is used as a unique identifier.")); editDlg.show(); } else if (!checkDuplicates(item, name, nickName, email, role, task, subProject)) { editDlg.show(); } else { item->setText(NAME_COL, name); item->setText(NICKNAME_COL, nickName); item->setText(EMAIL_COL, email); item->setText(ROLE_COL, role); item->setText(TASK_COL, task); if (memberDlg.subprojectCombo->isEnabled()) item->setText(SUBPROJECT_COL, subProject); result = false; } } } while (result); }