ItemTagsLoader::Tags ItemTagsLoader::toTags(const QStringList &tagList) { Tags tags; for (const auto &tagText : tagList) { QString tagName = tagText.trimmed(); Tag tag = findMatchingTag(tagName, m_tags); if (isTagValid(tag)) { if (tag.match.isEmpty()) { tag.name = tagName; } else { const QRegExp re(tag.match); tag.name = QString(tagName).replace(re, tag.name); } } else { tag.name = tagName; // Get default tag style from theme. const QSettings settings; tag.color = settings.value("Theme/num_fg").toString(); } tags.append(tag); } return tags; }
void ItemTagsLoader::loadSettings(const QVariantMap &settings) { m_settings = settings; m_tags.clear(); for (const auto &tagField : m_settings.value(configTags).toStringList()) { Tag tag = deserializeTag(tagField); if (isTagValid(tag)) m_tags.append(tag); } }
void setTag(const ItemTags::Tag &tag) { if ( isTagValid(tag) ) { QWidget tagWidget; initTagWidget(&tagWidget, tag, smallerFont(QFont())); m_pixmap = QPixmap(tagWidget.sizeHint()); m_pixmap.fill(Qt::transparent); QPainter painter(&m_pixmap); tagWidget.render(&painter); } else { m_pixmap = QPixmap(); } }
QVariantMap ItemTagsLoader::applySettings() { m_tags.clear(); QStringList tags; for (int row = 0; row < ui->tableWidget->rowCount(); ++row) { const Tag tag = tagFromTable(row); if (isTagValid(tag)) { tags.append(serializeTag(tag)); m_tags.append(tag); } } m_settings.insert(configTags, tags); return m_settings; }