void TrackParameterBox::slotDocColoursChanged() { // The color combobox is handled differently from the others. Since // there are 420 strings of up to 25 chars in here, it would be // expensive to detect changes by comparing vectors of strings. // For now, we'll handle the document colors changed notification // and reload the combobox then. // See the comments on RosegardenDocument::docColoursChanged() // in RosegardenDocument.h. // Note that as of this writing (August 2016) there is no way // to modify the document colors. See ColourConfigurationPage // which was probably meant to be used by DocumentConfigureDialog. m_color->clear(); // Populate it from Composition::m_segmentColourMap ColourMap temp = m_doc->getComposition().getSegmentColourMap(); // For each color in the segment color map for (RCMap::const_iterator colourIter = temp.begin(); colourIter != temp.end(); ++colourIter) { QString colourName(QObject::tr(colourIter->second.second.c_str())); QPixmap colourIcon(15, 15); colourIcon.fill(GUIPalette::convertColour(colourIter->second.first)); if (colourName == "") { m_color->addItem(colourIcon, tr("Default")); } else { // truncate name to 25 characters to avoid the combo forcing the // whole kit and kaboodle too wide (This expands from 15 because the // translators wrote books instead of copying the style of // TheShortEnglishNames, and because we have that much room to // spare.) if (colourName.length() > 25) colourName = colourName.left(22) + "..."; m_color->addItem(colourIcon, colourName); } } #if 0 // Removing this since it has never been in there. m_color->addItem(tr("Add New Color")); m_addColourPos = m_color->count() - 1; #endif const Track *track = getTrack(); if (track) m_color->setCurrentIndex(track->getColor()); }
void ColourTable::populate_table(ColourMap &input, ColourList &list) { m_colours.reserve(input.size()); setRowCount(input.size()); QString name; unsigned int i = 0; QStringList vHeaderLabels; for (RCMap::const_iterator it = input.begin(); it != input.end(); ++it) { if (it->second.second == std::string("")) name = tr("Default Color"); else name = strtoqstr(it->second.second); // QTableWidgetItem *text = new QTableWidgetItem( // dynamic_cast<QTableWidget *>(this), // QTableWidgetItem::Never, name); QTableWidgetItem *text = new QTableWidgetItem( ); setItem(i, 0, text); list[i] = it->first; m_colours[i] = GUIPalette::convertColour(it->second.first); ColourTableItem *temp = new ColourTableItem(this, m_colours[i]); setItem(i, 1, temp); // verticalHeader()->setLabel(i, QString::number(it->first)); vHeaderLabels << QString::number(it->first); ++i; } setVerticalHeaderLabels( vHeaderLabels ); }