/** Remove a color from the menu of a group and update all related data * structures. * @param grp is a group number * @param c is a color to be added to grp's menu * @return the deficit of grp after c has been added */ int egcolor_menu::shrinkMenu(int grp, int c) { removeColor(c,grp); vertex u = gp->input(gp->firstEdgeInGroup(grp)); free(c, u); int cnt = 0; for (edge e = gp->firstEdgeInGroup(grp); e != 0; e = gp->nextEdgeInGroup(grp,e)) { // iterate through each mgraf in grp's mset vertex v = gp->output(e); int dv = gp->degree(v); Graph &mg = *mgraf[v]; dmatch& dm = *dymatch[v]; // find edge (gx,c+dv) in mg and remove from mg and // possibly from dm for (edge ee = mg.firstAt(gx[e]); ee != 0; ee = mg.nextAt(gx[e],ee)) { if (mg.right(ee) == c+dv) { if (dm.matchEdge(c+dv) == ee) { dm.unmatch(ee); free(c, v); } mg.remove(ee); break; } } dm.maxMatch(); if (dm.matchEdge(gx[e]) == 0) cnt++; } return cnt; }
void CustomColorsWidget::CreateButtons() { int titleRow = 1 ? includeTitleRow : 0; for (int row=0; row<buttonsHigh; ++row) { for (int col=0; col<buttonsWide; ++col) { ColorButton *newButton = new ColorButton(); newButton->setEnabled(false); newButton->SetRow(row); newButton->SetColumn(col); newButton->setCheckable(true); connect(newButton, SIGNAL(clicked(QColor)), this, SIGNAL(colorClicked(QColor))); connect(newButton, SIGNAL(clicked(QColor,int,int)), this, SLOT(setCurrentColor(QColor,int,int))); newButton->SetBackgroundColor(QColor::fromRgb(255, 255, 255)); gridLayout->addWidget(newButton, row+titleRow, col); buttons.push_back(newButton); buttonGroup->addButton(newButton); } } if (includeTitleRow) { QLabel *titleLabel = new QLabel("Custom Colors:"); titleLabel->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); gridLayout->addWidget(titleLabel, 0, 0, 1, gridLayout->columnCount()); } QPushButton *removeColorButton = new QPushButton(); removeColorButton->setText("Remove From Custom Colors"); removeColorButton->setFixedHeight(27); connect(removeColorButton, SIGNAL(clicked()), this, SLOT(removeColor())); gridLayout->addWidget(removeColorButton, gridLayout->rowCount(), 0, 1, gridLayout->columnCount()); }
void ColorDropDown::updateColor(const MapColor* color) { if (!spot_colors_only || color->getSpotColorMethod() == MapColor::SpotColor) { int pos = 0; for (; pos < count(); ++pos) { if (itemData(pos).value<const MapColor*>() == color) break; } if (pos < count()) { int icon_size = style()->pixelMetric(QStyle::PM_SmallIconSize); QPixmap pixmap(icon_size, icon_size); pixmap.fill(*color); setItemText(pos, color->getName()); setItemData(pos, pixmap, Qt::DecorationRole); } else { addColor(color); } } else { removeColor(color); } }
dockListUpdate mutableSquareImageContainer::replaceRareColors() { QHash<QRgb, int> countHash; ::colorCounts(image_, originalDimension_, &countHash); rareColorsDialog countDialog(countHash); const int dialogReturnCode = countDialog.exec(); QList<QRgbPair> pairs = countDialog.colorsToChange(); if (dialogReturnCode == QDialog::Accepted && pairs.size() > 0) { QList<colorChange> changeHistories; QSet<flossColor> oldFloss; QVector<triC> oldColors; for (int i = 0, size = pairs.size(); i < size; ++i) { const QRgb oldColor = pairs[i].first; const triC oldTriColor(oldColor); oldColors.push_back(oldTriColor); oldFloss.insert(getFlossColorFromColor(oldTriColor)); const QRgb newColor = pairs[i].second; const QVector<pairOfInts> changedSquares = ::changeColor(&image_, oldColor, newColor, originalDimension_); if (!changedSquares.empty()) { removeColor(oldColor); changeHistories.push_back(colorChange(oldColor, newColor, changedSquares)); } } addToHistory(historyItemPtr(new rareColorsHistoryItem(changeHistories, oldFloss))); return dockListUpdate(oldColors, true); } else { return dockListUpdate(); } }
/** Clear all menus. */ void egcolor_menu::clearMenus() { for (vertex u = 1; u <= gp->n(); u++) { for (int grp = gp->firstGroup(u); grp != 0; grp = gp->nextGroup(u,grp)) { while (fc[grp] != 0) removeColor(fc[grp],grp); } } }
/** Remove all colors from the menu of a group and update related * data structures. * @param grp is a group number */ void egcolor_menu::resetMenu(int grp) { vertex u = gp->input(gp->firstEdgeInGroup(grp)); int c = firstColor(grp); while (c != 0) { removeColor(c,grp); free(c, u); c = firstColor(grp); } for (edge e = gp->firstEdgeInGroup(grp); e != 0; e = gp->nextEdgeInGroup(grp,e)) { vertex v = gp->output(e); int dv = gp->degree(v); Graph &mg = *mgraf[v]; dmatch& dm = *dymatch[v]; edge ee = dm.matchEdge(gx[e]); if (ee != 0) { int c = mg.right(ee) - dv; dm.unmatch(ee); free(c, v); } for (edge ee = mg.firstAt(gx[e]); ee != 0; ee = mg.firstAt(gx[e])) mg.remove(ee); } }
dockListUpdate mutableSquareImageContainer::changeColor(QRgb oldColor, flossColor newFlossColor) { const QRgb newColor = newFlossColor.color().qrgb(); if (oldColor == newColor) { return dockListUpdate(); } const QVector<pairOfInts> changedSquares = ::changeColor(&image_, oldColor, newColor, originalDimension_); if (!changedSquares.empty()) { const bool colorAdded = addColor(newFlossColor); const flossColor oldFlossColor = removeColor(oldColor); addToHistory(historyItemPtr(new changeAllHistoryItem(oldFlossColor, newFlossColor, colorAdded, changedSquares))); return dockListUpdate(newColor, colorAdded, oldColor); } else { return dockListUpdate(); } }
void ColorTableCreator::removeHandColor(ColorClasses::Color color) { removeColor(handMadeClassification, color); }
void chaosDeMove(action2 a){ currentState->board[a.x][a.y]=-1; removeColor(a.color); currentState->depth--; }
void ColorDropDown::onColorDeleted(int, const MapColor* color) { removeColor(color); }
void mutableSquareImageContainer::removeColors(const QVector<triC>& colors) { for (int i = 0, size = colors.size(); i < size; ++i) { removeColor(colors[i]); } }