/*
greedyColoring(): Color a given graph with greedy approach.
*/
void Graph::greedyColoring()
{
	map<string,Vertex*>::iterator itr;
	int size,color;
	noOfColors=0;
	for(itr=vertices.begin();itr!=vertices.end();itr++)
	{
		Vertex *v=itr->second;
		vector<string>adjList=v->getAdjList();
		size=v->adjListSize();
		vector<bool>colorList(size+1);
		for(int i=0;i<size;i++)
		{
			color=vertices[adjList[i]]->getColor();
			colorList[color]=true;
		}
		for(int i=1;i<size+1;i++)
		{
			if(!colorList[i])
			{
				v->setColor(i);
				break;
			}
		}
		if(v->getColor()==0)
			v->setColor(colorList.size());
		if(v->getColor()>noOfColors)
			noOfColors=v->getColor();
	}
}
Example #2
0
int ColorBox::colorIndex(const QColor& c)
{
  if (!isValidColor(c))
    return 0;

  return colorList().indexOf(c);
}
Example #3
0
QColor ColorBox::color(int colorIndex)
{
  QList<QColor> colorsList = colorList();
  if (colorIndex >= 0 && colorIndex < colorsList.size())
    return colorsList[colorIndex];

  return Qt::black; // default color is black.
}
Example #4
0
void ColorBox::init()
{
  QList<QColor> indexedColors = colorList();
  QStringList color_names = colorNames();

  QPixmap icon = QPixmap(28, 16);
  QRect r = QRect(0, 0, 27, 15);

  QPainter p;
  p.begin(&icon);

  for (int i = 0; i < indexedColors.size(); i++){
    p.setBrush(QBrush(indexedColors[i]));
    p.drawRect(r);
    this->addItem(icon, color_names[i]);
  }
  p.end();
}
Example #5
0
QIcon ConsoleChannel::colorIcon(const QString& name)
{
    /* Return immediately with a rainbow icon -- if appropriate */
    if (name.toLower().contains("rainbow") ||
            name.toLower().contains("cw") == true)
    {
        return QIcon(":/rainbow.png");
    }
    else if (name.toLower().contains("cto") == true)
    {
        QColor color(255, 201, 0);
        QPixmap pm(32, 32);
        pm.fill(color);
        return QIcon(pm);
    }
    else if (name.toLower().contains("ctb") == true)
    {
        QColor color(0, 128, 190);
        QPixmap pm(32, 32);
        pm.fill(color);
        return QIcon(pm);
    }
    else if (name.toLower().contains("uv") == true)
    {
        QColor color(37, 0, 136);
        QPixmap pm(32, 32);
        pm.fill(color);
        return QIcon(pm);
    }

#ifdef Q_WS_X11
    QColor::setAllowX11ColorNames(true);
#endif
    QStringList colorList(QColor::colorNames());
    QString colname;
    QColor color;
    int index;

    colname = name.toLower().remove(QRegExp("[0-9]")).remove(' ');
    index = colorList.indexOf(colname);
    if (index != -1)
    {
        color.setNamedColor(colname);
    }
    else
    {
        QString re("(");
        QListIterator <QString> it(name.toLower().split(" "));
        while (it.hasNext() == true)
        {
            re += it.next();
            if (it.hasNext() == true)
                re += "|";
        }
        re += ")";

        QRegExp regex(re, Qt::CaseInsensitive);
        index = colorList.indexOf(regex);
        if (index != -1)
            color.setNamedColor(colorList.at(index));
    }

    if (color.isValid() == true)
    {
        QPixmap pm(32, 32);
        pm.fill(color);
        return QIcon(pm);
    }
    else
    {
        return QIcon();
    }
}
Example #6
0
bool ColorBox::isValidColor(const QColor& color)
{
  return colorList().contains(color);
}