diff --git a/basket.qrc b/basket.qrc index 5ea4508..7c4ca67 100644 --- a/basket.qrc +++ b/basket.qrc @@ -1,32 +1,32 @@ images/tag_export_help.png images/tag_export_on_every_lines_help.png images/insertion_help.png images/16-actions-likeback_bug.png images/16-actions-likeback_dislike.png images/16-actions-likeback_like.png images/16-actions-likeback_feature.png images/16-apps-basket.png images/22-apps-basket.png images/32-apps-basket.png images/48-apps-basket.png images/64-apps-basket.png images/128-apps-basket.png tags/16-actions-tag_checkbox.png tags/16-actions-tag_checkbox_checked.png - tags/16-actions-tag_for_later.png - tags/16-actions-tag_fun.png - tags/16-actions-tag_important.png - tags/16-actions-tag_preference_bad.png - tags/16-actions-tag_preference_excellent.png - tags/16-actions-tag_preference_good.png - tags/16-actions-tag_priority_high.png - tags/16-actions-tag_priority_low.png - tags/16-actions-tag_priority_medium.png - tags/16-actions-tag_progress_000.png - tags/16-actions-tag_progress_025.png - tags/16-actions-tag_progress_075.png - tags/16-actions-tag_progress_100.png + tags/sc-actions-tag_for_later.svgz + tags/sc-actions-tag_fun.svgz + tags/sc-actions-tag_important.svgz + tags/sc-actions-tag_preference_bad.svgz + tags/sc-actions-tag_preference_excellent.svgz + tags/sc-actions-tag_preference_good.svgz + tags/sc-actions-tag_priority_high.svgz + tags/sc-actions-tag_priority_low.svgz + tags/sc-actions-tag_priority_medium.svgz + tags/sc-actions-tag_progress_000.svgz + tags/sc-actions-tag_progress_025.svgz + tags/sc-actions-tag_progress_075.svgz + tags/sc-actions-tag_progress_100.svgz diff --git a/src/tag.cpp b/src/tag.cpp index 6a744a3..5401c72 100644 --- a/src/tag.cpp +++ b/src/tag.cpp @@ -1,763 +1,757 @@ /** * SPDX-FileCopyrightText: (C) 2005 Sébastien Laoût * * SPDX-License-Identifier: GPL-2.0-or-later */ #include "tag.h" #include -#include #include #include +#include #include #include #include #include #include #include "basketscene.h" #include "bnpview.h" #include "debugwindow.h" #include "gitwrapper.h" #include "global.h" #include "tools.h" #include "xmlwork.h" /** class State: */ State::State(const QString &id, Tag *tag) : m_id(id) , m_name() , m_emblem() , m_bold(false) , m_italic(false) , m_underline(false) , m_strikeOut(false) , m_textColor() , m_fontName() , m_fontSize(-1) , m_backgroundColor() , m_textEquivalent() , m_onAllTextLines(false) , m_allowCrossReferences(true) , m_parentTag(tag) { } State::~State() { } State *State::nextState(bool cycle /*= true*/) { if (!parentTag()) return 0; List states = parentTag()->states(); // The tag contains only one state: if (states.count() == 1) return 0; // Find the next state: for (List::iterator it = states.begin(); it != states.end(); ++it) // Found the current state in the list: if (*it == this) { // Find the next state: State *next = *(++it); if (it == states.end()) return (cycle ? states.first() : 0); return next; } // Should not happens: Q_ASSERT(false); return 0; } QString State::fullName() { if (!parentTag() || parentTag()->states().count() == 1) return (name().isEmpty() && parentTag() ? parentTag()->name() : name()); return QString(i18n("%1: %2", parentTag()->name(), name())); } QFont State::font(QFont base) { if (bold()) base.setBold(true); if (italic()) base.setItalic(true); if (underline()) base.setUnderline(true); if (strikeOut()) base.setStrikeOut(true); if (!fontName().isEmpty()) base.setFamily(fontName()); if (fontSize() > 0) base.setPointSize(fontSize()); return base; } QString State::toCSS(const QString &gradientFolderPath, const QString &gradientFolderName, const QFont &baseFont) { QString css; if (bold()) css += " font-weight: bold;"; if (italic()) css += " font-style: italic;"; if (underline() && strikeOut()) css += " text-decoration: underline line-through;"; else if (underline()) css += " text-decoration: underline;"; else if (strikeOut()) css += " text-decoration: line-through;"; if (textColor().isValid()) css += " color: " + textColor().name() + ';'; if (!fontName().isEmpty()) { QString fontFamily = Tools::cssFontDefinition(fontName(), /*onlyFontFamily=*/true); css += " font-family: " + fontFamily + ';'; } if (fontSize() > 0) css += " font-size: " + QString::number(fontSize()) + "px;"; if (backgroundColor().isValid()) { css += " background-color: " + backgroundColor().name() + ";"; } if (css.isEmpty()) return ""; else return " .tag_" + id() + " {" + css + " }\n"; } void State::merge(const List &states, State *result, int *emblemsCount, bool *haveInvisibleTags, const QColor &backgroundColor) { *result = State(); // Reset to default values. *emblemsCount = 0; *haveInvisibleTags = false; for (List::const_iterator it = states.begin(); it != states.end(); ++it) { State *state = *it; bool isVisible = false; // For each property, if that properties have a value (is not default) is the current state of the list, // and if it haven't been set to the result state by a previous state, then it's visible and we assign the property to the result state. if (!state->emblem().isEmpty()) { ++*emblemsCount; isVisible = true; } if (state->bold() && !result->bold()) { result->setBold(true); isVisible = true; } if (state->italic() && !result->italic()) { result->setItalic(true); isVisible = true; } if (state->underline() && !result->underline()) { result->setUnderline(true); isVisible = true; } if (state->strikeOut() && !result->strikeOut()) { result->setStrikeOut(true); isVisible = true; } if (state->textColor().isValid() && !result->textColor().isValid()) { result->setTextColor(state->textColor()); isVisible = true; } if (!state->fontName().isEmpty() && result->fontName().isEmpty()) { result->setFontName(state->fontName()); isVisible = true; } if (state->fontSize() > 0 && result->fontSize() <= 0) { result->setFontSize(state->fontSize()); isVisible = true; } if (state->backgroundColor().isValid() && !result->backgroundColor().isValid() && state->backgroundColor() != backgroundColor) { // vv result->setBackgroundColor(state->backgroundColor()); // This is particular: if the note background color is the same as the basket one, don't use that. isVisible = true; } // If it's not visible, well, at least one tag is not visible: the note will display "..." at the tags arrow place to show that: if (!isVisible) *haveInvisibleTags = true; } } void State::copyTo(State *other) { other->m_id = m_id; other->m_name = m_name; other->m_emblem = m_emblem; other->m_bold = m_bold; other->m_italic = m_italic; other->m_underline = m_underline; other->m_strikeOut = m_strikeOut; other->m_textColor = m_textColor; other->m_fontName = m_fontName; other->m_fontSize = m_fontSize; other->m_backgroundColor = m_backgroundColor; other->m_textEquivalent = m_textEquivalent; other->m_onAllTextLines = m_onAllTextLines; // TODO other->m_allowCrossReferences = m_allowCrossReferences; // TODO: other->m_parentTag; } /** class Tag: */ Tag::List Tag::all = Tag::List(); long Tag::nextStateUid = 1; long Tag::getNextStateUid() { return nextStateUid++; // Return the next Uid and THEN increment the Uid } Tag::Tag() { static int tagNumber = 0; ++tagNumber; QString sAction = "tag_shortcut_number_" + QString::number(tagNumber); KActionCollection *ac = Global::bnpView->actionCollection(); m_action = ac->addAction(sAction, Global::bnpView, SLOT(activatedTagShortcut())); m_action->setText("FAKE TEXT"); m_action->setIcon(QIcon::fromTheme("FAKE ICON")); ac->setShortcutsConfigurable(m_action, false); // We do it in the tag properties dialog m_inheritedBySiblings = false; } Tag::~Tag() { delete m_action; } void Tag::setName(const QString &name) { m_name = name; m_action->setText("TAG SHORTCUT: " + name); // TODO: i18n (for debug purpose only by now). } State *Tag::stateForId(const QString &id) { for (List::iterator it = all.begin(); it != all.end(); ++it) for (State::List::iterator it2 = (*it)->states().begin(); it2 != (*it)->states().end(); ++it2) if ((*it2)->id() == id) return *it2; return 0; } Tag *Tag::tagForKAction(QAction *action) { for (List::iterator it = all.begin(); it != all.end(); ++it) if ((*it)->m_action == action) return *it; return 0; } QMap Tag::loadTags(const QString &path /* = QString()*/ /*, bool merge = false*/) { QMap mergedStates; bool merge = !path.isEmpty(); QString fullPath = (merge ? path : Global::savesFolder() + "tags.xml"); QString doctype = "basketTags"; QDir dir; if (!dir.exists(fullPath)) { if (merge) return mergedStates; DEBUG_WIN << "Tags file does not exist: Creating it..."; createDefaultTagsSet(fullPath); } QScopedPointer document(XMLWork::openFile(doctype, fullPath)); if (!document) { DEBUG_WIN << "FAILED to read the tags file"; return mergedStates; } QDomElement docElem = document->documentElement(); if (!merge) nextStateUid = docElem.attribute("nextStateUid", QString::number(nextStateUid)).toLong(); QDomNode node = docElem.firstChild(); while (!node.isNull()) { QDomElement element = node.toElement(); if ((!element.isNull()) && element.tagName() == "tag") { Tag *tag = new Tag(); // Load properties: QString name = XMLWork::getElementText(element, "name"); QString shortcut = XMLWork::getElementText(element, "shortcut"); QString inherited = XMLWork::getElementText(element, "inherited", "false"); tag->setName(name); tag->setShortcut(QKeySequence(shortcut)); tag->setInheritedBySiblings(XMLWork::trueOrFalse(inherited)); // Load states: QDomNode subNode = element.firstChild(); while (!subNode.isNull()) { QDomElement subElement = subNode.toElement(); if ((!subElement.isNull()) && subElement.tagName() == "state") { State *state = new State(subElement.attribute("id"), tag); state->setName(XMLWork::getElementText(subElement, "name")); state->setEmblem(XMLWork::getElementText(subElement, "emblem")); QDomElement textElement = XMLWork::getElement(subElement, "text"); state->setBold(XMLWork::trueOrFalse(textElement.attribute("bold", "false"))); state->setItalic(XMLWork::trueOrFalse(textElement.attribute("italic", "false"))); state->setUnderline(XMLWork::trueOrFalse(textElement.attribute("underline", "false"))); state->setStrikeOut(XMLWork::trueOrFalse(textElement.attribute("strikeOut", "false"))); QString textColor = textElement.attribute("color", ""); state->setTextColor(textColor.isEmpty() ? QColor() : QColor(textColor)); QDomElement fontElement = XMLWork::getElement(subElement, "font"); state->setFontName(fontElement.attribute("name", "")); QString fontSize = fontElement.attribute("size", ""); state->setFontSize(fontSize.isEmpty() ? -1 : fontSize.toInt()); QString backgroundColor = XMLWork::getElementText(subElement, "backgroundColor", ""); state->setBackgroundColor(backgroundColor.isEmpty() ? QColor() : QColor(backgroundColor)); QDomElement textEquivalentElement = XMLWork::getElement(subElement, "textEquivalent"); state->setTextEquivalent(textEquivalentElement.attribute("string", "")); state->setOnAllTextLines(XMLWork::trueOrFalse(textEquivalentElement.attribute("onAllTextLines", "false"))); QString allowXRef = XMLWork::getElementText(subElement, "allowCrossReferences", "true"); state->setAllowCrossReferences(XMLWork::trueOrFalse(allowXRef)); tag->appendState(state); } subNode = subNode.nextSibling(); } // If the Tag is Valid: if (tag->countStates() > 0) { // Rename Things if Needed: State *firstState = tag->states().first(); if (tag->countStates() == 1 && firstState->name().isEmpty()) firstState->setName(tag->name()); if (tag->name().isEmpty()) tag->setName(firstState->name()); // Add or Merge the Tag: if (!merge) { all.append(tag); } else { Tag *similarTag = tagSimilarTo(tag); // Tag does not exists, add it: if (similarTag == 0) { // We are merging the new states, so we should choose new and unique (on that computer) ids for those states: for (State::List::iterator it = tag->states().begin(); it != tag->states().end(); ++it) { State *state = *it; QString uid = state->id(); QString newUid = "tag_state_" + QString::number(getNextStateUid()); state->setId(newUid); mergedStates[uid] = newUid; } // TODO: if shortcut is already assigned to a previous note, do not import it, keep the user settings! all.append(tag); // Tag already exists, rename to their ids: } else { State::List::iterator it2 = similarTag->states().begin(); for (State::List::iterator it = tag->states().begin(); it != tag->states().end(); ++it, ++it2) { State *state = *it; State *similarState = *it2; QString uid = state->id(); QString newUid = similarState->id(); if (uid != newUid) mergedStates[uid] = newUid; } delete tag; // Already exists, not to be merged. Delete the shortcut and all. } } } } node = node.nextSibling(); } return mergedStates; } Tag *Tag::tagSimilarTo(Tag *tagToTest) { // Tags are considered similar if they have the same name, the same number of states, in the same order, and the same look. // Keyboard shortcut, text equivalent and onEveryLines are user settings, and thus not considered during the comparison. // Default tags (To Do, Important, Idea...) do not take into account the name of the tag and states during the comparison. // Default tags are equal only if they have the same number of states, in the same order, and the same look. // This is because default tag names are translated differently in every countries, but they are essentially the same! // User tags begins with "tag_state_" followed by a number. Default tags are the other ones. // Browse all tags: for (List::iterator it = all.begin(); it != all.end(); ++it) { Tag *tag = *it; bool same = true; bool sameName; bool defaultTag = true; // We test only name and look. Shortcut and whenever it is inherited by sibling new notes are user settings only! sameName = tag->name() == tagToTest->name(); if (tag->countStates() != tagToTest->countStates()) continue; // Tag is different! // We found a tag with same name, check if every states/look are same too: State::List::iterator itTest = tagToTest->states().begin(); for (State::List::iterator it2 = (*it)->states().begin(); it2 != (*it)->states().end(); ++it2, ++itTest) { State *state = *it2; State *stateToTest = *itTest; if (state->id().startsWith(QLatin1String("tag_state_")) || stateToTest->id().startsWith(QLatin1String("tag_state_"))) { defaultTag = false; } if (state->name() != stateToTest->name()) { sameName = false; } if (state->emblem() != stateToTest->emblem()) { same = false; break; } if (state->bold() != stateToTest->bold()) { same = false; break; } if (state->italic() != stateToTest->italic()) { same = false; break; } if (state->underline() != stateToTest->underline()) { same = false; break; } if (state->strikeOut() != stateToTest->strikeOut()) { same = false; break; } if (state->textColor() != stateToTest->textColor()) { same = false; break; } if (state->fontName() != stateToTest->fontName()) { same = false; break; } if (state->fontSize() != stateToTest->fontSize()) { same = false; break; } if (state->backgroundColor() != stateToTest->backgroundColor()) { same = false; break; } // Text equivalent (as well as onAllTextLines) is also a user setting! } // We found an existing tag that is "exactly" the same: if (same && (sameName || defaultTag)) return tag; } // Not found: return 0; } void Tag::saveTags() { DEBUG_WIN << "Saving tags..."; saveTagsTo(all, Global::savesFolder() + "tags.xml"); GitWrapper::commitTagsXml(); } void Tag::saveTagsTo(QList &list, const QString &fullPath) { // Create Document: QDomDocument document(/*doctype=*/"basketTags"); QDomElement root = document.createElement("basketTags"); root.setAttribute("nextStateUid", static_cast(nextStateUid)); document.appendChild(root); // Save all tags: for (List::iterator it = list.begin(); it != list.end(); ++it) { Tag *tag = *it; // Create tag node: QDomElement tagNode = document.createElement("tag"); root.appendChild(tagNode); // Save tag properties: XMLWork::addElement(document, tagNode, "name", tag->name()); XMLWork::addElement(document, tagNode, "shortcut", tag->shortcut().toString()); XMLWork::addElement(document, tagNode, "inherited", XMLWork::trueOrFalse(tag->inheritedBySiblings())); // Save all states: for (State::List::iterator it2 = (*it)->states().begin(); it2 != (*it)->states().end(); ++it2) { State *state = *it2; // Create state node: QDomElement stateNode = document.createElement("state"); tagNode.appendChild(stateNode); // Save state properties: stateNode.setAttribute("id", state->id()); XMLWork::addElement(document, stateNode, "name", state->name()); XMLWork::addElement(document, stateNode, "emblem", state->emblem()); QDomElement textNode = document.createElement("text"); stateNode.appendChild(textNode); QString textColor = (state->textColor().isValid() ? state->textColor().name() : ""); textNode.setAttribute("bold", XMLWork::trueOrFalse(state->bold())); textNode.setAttribute("italic", XMLWork::trueOrFalse(state->italic())); textNode.setAttribute("underline", XMLWork::trueOrFalse(state->underline())); textNode.setAttribute("strikeOut", XMLWork::trueOrFalse(state->strikeOut())); textNode.setAttribute("color", textColor); QDomElement fontNode = document.createElement("font"); stateNode.appendChild(fontNode); fontNode.setAttribute("name", state->fontName()); fontNode.setAttribute("size", state->fontSize()); QString backgroundColor = (state->backgroundColor().isValid() ? state->backgroundColor().name() : ""); XMLWork::addElement(document, stateNode, "backgroundColor", backgroundColor); QDomElement textEquivalentNode = document.createElement("textEquivalent"); stateNode.appendChild(textEquivalentNode); textEquivalentNode.setAttribute("string", state->textEquivalent()); textEquivalentNode.setAttribute("onAllTextLines", XMLWork::trueOrFalse(state->onAllTextLines())); XMLWork::addElement(document, stateNode, "allowCrossReferences", XMLWork::trueOrFalse(state->allowCrossReferences())); } } // Write to Disk: if (!BasketScene::safelySaveToFile(fullPath, "\n" + document.toString())) DEBUG_WIN << "FAILED to save tags!"; } void Tag::copyTo(Tag *other) { other->m_name = m_name; other->m_action->setShortcut(m_action->shortcut()); other->m_inheritedBySiblings = m_inheritedBySiblings; } void Tag::createDefaultTagsSet(const QString &fullPath) { QString xml = QString( "\n" "\n" " \n" " %1\n" // "To Do" " Ctrl+1\n" " true\n" " \n" " %2\n" // "Unchecked" " tag_checkbox\n" " \n" " \n" " \n" " \n" " \n" " \n" " %3\n" // "Done" " tag_checkbox_checked\n" " \n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " %4\n" // "Progress" " Ctrl+2\n" " true\n" " \n" " %5\n" // "0 %" " tag_progress_000\n" " \n" " \n" " \n" " %6\n" // "25 %" " tag_progress_025\n" " \n" " \n" " \n" " %7\n" // "50 %" " tag_progress_050\n" " \n" " \n" " \n" " %8\n" // "75 %" " tag_progress_075\n" " \n" " \n" " \n" " %9\n" // "100 %" " tag_progress_100\n" " \n" " \n" " \n" "\n") .arg(i18n("To Do"), i18n("Unchecked"), i18n("Done")) // %1 %2 %3 .arg(i18n("Progress"), i18n("0 %"), i18n("25 %")) // %4 %5 %6 .arg(i18n("50 %"), i18n("75 %"), i18n("100 %")) // %7 %8 %9 + QString( " \n" " %1\n" // "Priority" " Ctrl+3\n" " true\n" " \n" " %2\n" // "Low" " tag_priority_low\n" " \n" " \n" " \n" " %3\n" // "Medium " tag_priority_medium\n" " \n" " \n" " \n" " %4\n" // "High" " tag_priority_high\n" " \n" " \n" " \n" "\n" " \n" " %5\n" // "Preference" " Ctrl+4\n" " true\n" " \n" " %6\n" // "Bad" " tag_preference_bad\n" " \n" " \n" " \n" " %7\n" // "Good" " tag_preference_good\n" " \n" " \n" " \n" " %8\n" // "Excellent" " tag_preference_excellent\n" " \n" " \n" " \n" "\n" " \n" " %9\n" // "Highlight" " Ctrl+5\n" " \n" " #ffffcc\n" " \" />\n" " \n" " \n" "\n") .arg(i18n("Priority"), i18n("Low"), i18n("Medium")) // %1 %2 %3 .arg(i18n("High"), i18n("Preference"), i18n("Bad")) // %4 %5 %6 .arg(i18n("Good"), i18n("Excellent"), i18n("Highlight")) // %7 %8 %9 + QString( " \n" " %1\n" // "Important" " Ctrl+6\n" " \n" " tag_important\n" " #ffcccc\n" " \n" " \n" " \n" "\n" " \n" " %2\n" // "Very Important" " Ctrl+7\n" " \n" " tag_important\n" " \n" " #ff0000\n" " \n" " \n" " \n" "\n" " \n" " %3\n" // "Information" " Ctrl+8\n" " \n" " dialog-information\n" " \n" " \n" " \n" "\n" " \n" " %4\n" // "Idea" " Ctrl+9\n" " \n" " ktip\n" " \n" // I. " \n" " " "\n" "\n" " \n" " %6\n" // "Title" " Ctrl+0\n" " \n" " \n" " \n" " \n" " \n" "\n" " \n" " %7\n" // "Code" " \n" " \n" " \n" " false\n" " \n" " \n" "\n" " \n" " \n" " %8\n" // "Work" " \n" " \n" // W. " \n" " " "\n" "\n") .arg(i18n("Important"), i18n("Very Important"), i18n("Information")) // %1 %2 %3 .arg(i18n("Idea"), i18nc("The initial of 'Idea'", "I."), i18n("Title")) // %4 %5 %6 .arg(i18n("Code"), i18n("Work"), i18nc("The initial of 'Work'", "W.")) // %7 %8 %9 + QString( " \n" " \n" " %1\n" // "Personal" " \n" " \n" // P. " \n" " \n" "\n" " \n" " \n" " %3\n" // "Funny" " tag_fun\n" " \n" " \n" "\n" "") .arg(i18n("Personal"), i18nc("The initial of 'Personal'", "P."), i18n("Funny")); // %1 %2 %3 // Write to Disk: QFile file(fullPath); if (file.open(QIODevice::WriteOnly)) { QTextStream stream(&file); stream.setCodec("UTF-8"); stream << "\n"; stream << xml; file.close(); } else DEBUG_WIN << "FAILED to create the tags file!"; } // StateAction StateAction::StateAction(State *state, const QKeySequence &shortcut, QWidget *parent, bool withTagName) : KToggleAction(parent) , m_state(state) { setText(m_state->name()); if (withTagName && m_state->parentTag()) setText(m_state->parentTag()->name()); - setIcon(KIconLoader::global()->loadIcon(m_state->emblem(), - KIconLoader::Small, - 16, - KIconLoader::DefaultState, - QStringList(), - /*path_store=*/0L, - /*canReturnNull=*/true)); + setIcon(QIcon(m_state->emblem())); setShortcut(shortcut); } StateAction::~StateAction() { // pass } diff --git a/tags/16-actions-tag_for_later.png b/tags/16-actions-tag_for_later.png deleted file mode 100644 index c9af55b..0000000 Binary files a/tags/16-actions-tag_for_later.png and /dev/null differ diff --git a/tags/16-actions-tag_fun.png b/tags/16-actions-tag_fun.png deleted file mode 100644 index 50f1c6c..0000000 Binary files a/tags/16-actions-tag_fun.png and /dev/null differ diff --git a/tags/16-actions-tag_important.png b/tags/16-actions-tag_important.png deleted file mode 100644 index 3095ef8..0000000 Binary files a/tags/16-actions-tag_important.png and /dev/null differ diff --git a/tags/16-actions-tag_preference_bad.png b/tags/16-actions-tag_preference_bad.png deleted file mode 100644 index 1bb8e48..0000000 Binary files a/tags/16-actions-tag_preference_bad.png and /dev/null differ diff --git a/tags/16-actions-tag_preference_excellent.png b/tags/16-actions-tag_preference_excellent.png deleted file mode 100644 index 466a999..0000000 Binary files a/tags/16-actions-tag_preference_excellent.png and /dev/null differ diff --git a/tags/16-actions-tag_preference_good.png b/tags/16-actions-tag_preference_good.png deleted file mode 100644 index 3354acb..0000000 Binary files a/tags/16-actions-tag_preference_good.png and /dev/null differ diff --git a/tags/16-actions-tag_priority_high.png b/tags/16-actions-tag_priority_high.png deleted file mode 100644 index e00e327..0000000 Binary files a/tags/16-actions-tag_priority_high.png and /dev/null differ diff --git a/tags/16-actions-tag_priority_low.png b/tags/16-actions-tag_priority_low.png deleted file mode 100644 index 9a769f1..0000000 Binary files a/tags/16-actions-tag_priority_low.png and /dev/null differ diff --git a/tags/16-actions-tag_priority_medium.png b/tags/16-actions-tag_priority_medium.png deleted file mode 100644 index 0fcdb1b..0000000 Binary files a/tags/16-actions-tag_priority_medium.png and /dev/null differ diff --git a/tags/16-actions-tag_progress_000.png b/tags/16-actions-tag_progress_000.png deleted file mode 100644 index dd3b750..0000000 Binary files a/tags/16-actions-tag_progress_000.png and /dev/null differ diff --git a/tags/16-actions-tag_progress_025.png b/tags/16-actions-tag_progress_025.png deleted file mode 100644 index 7b8de1b..0000000 Binary files a/tags/16-actions-tag_progress_025.png and /dev/null differ diff --git a/tags/16-actions-tag_progress_050.png b/tags/16-actions-tag_progress_050.png deleted file mode 100644 index cbbfea1..0000000 Binary files a/tags/16-actions-tag_progress_050.png and /dev/null differ diff --git a/tags/16-actions-tag_progress_075.png b/tags/16-actions-tag_progress_075.png deleted file mode 100644 index c648c44..0000000 Binary files a/tags/16-actions-tag_progress_075.png and /dev/null differ diff --git a/tags/16-actions-tag_progress_100.png b/tags/16-actions-tag_progress_100.png deleted file mode 100644 index 2483cce..0000000 Binary files a/tags/16-actions-tag_progress_100.png and /dev/null differ diff --git a/tags/CMakeLists.txt b/tags/CMakeLists.txt index bf0d3b1..2b76465 100644 --- a/tags/CMakeLists.txt +++ b/tags/CMakeLists.txt @@ -1,20 +1,20 @@ ecm_install_icons(ICONS 16-actions-tag_checkbox.png 16-actions-tag_checkbox_checked.png - 16-actions-tag_for_later.png - 16-actions-tag_fun.png - 16-actions-tag_important.png - 16-actions-tag_preference_bad.png - 16-actions-tag_preference_excellent.png - 16-actions-tag_preference_good.png - 16-actions-tag_priority_high.png - 16-actions-tag_priority_low.png - 16-actions-tag_priority_medium.png - 16-actions-tag_progress_000.png - 16-actions-tag_progress_025.png - 16-actions-tag_progress_050.png - 16-actions-tag_progress_075.png - 16-actions-tag_progress_100.png + sc-actions-tag_for_later.svgz + sc-actions-tag_fun.svgz + sc-actions-tag_important.svgz + sc-actions-tag_preference_bad.svgz + sc-actions-tag_preference_excellent.svgz + sc-actions-tag_preference_good.svgz + sc-actions-tag_priority_high.svgz + sc-actions-tag_priority_low.svgz + sc-actions-tag_priority_medium.svgz + sc-actions-tag_progress_000.svgz + sc-actions-tag_progress_025.svgz + sc-actions-tag_progress_050.svgz + sc-actions-tag_progress_075.svgz + sc-actions-tag_progress_100.svgz DESTINATION ${ICON_INSTALL_DIR} THEME hicolor ) diff --git a/tags/sc-actions-tag_for_later.svgz b/tags/sc-actions-tag_for_later.svgz new file mode 100644 index 0000000..934f7f3 Binary files /dev/null and b/tags/sc-actions-tag_for_later.svgz differ diff --git a/tags/sc-actions-tag_for_later.svgz.license b/tags/sc-actions-tag_for_later.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_for_later.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_fun.svgz b/tags/sc-actions-tag_fun.svgz new file mode 100644 index 0000000..fa78b88 Binary files /dev/null and b/tags/sc-actions-tag_fun.svgz differ diff --git a/tags/sc-actions-tag_fun.svgz.license b/tags/sc-actions-tag_fun.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_fun.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_important.svgz b/tags/sc-actions-tag_important.svgz new file mode 100644 index 0000000..3ee682c Binary files /dev/null and b/tags/sc-actions-tag_important.svgz differ diff --git a/tags/sc-actions-tag_important.svgz.license b/tags/sc-actions-tag_important.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_important.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_preference_bad.svgz b/tags/sc-actions-tag_preference_bad.svgz new file mode 100644 index 0000000..90bc93d Binary files /dev/null and b/tags/sc-actions-tag_preference_bad.svgz differ diff --git a/tags/sc-actions-tag_preference_bad.svgz.license b/tags/sc-actions-tag_preference_bad.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_preference_bad.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_preference_excellent.svgz b/tags/sc-actions-tag_preference_excellent.svgz new file mode 100644 index 0000000..b395f05 Binary files /dev/null and b/tags/sc-actions-tag_preference_excellent.svgz differ diff --git a/tags/sc-actions-tag_preference_excellent.svgz.license b/tags/sc-actions-tag_preference_excellent.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_preference_excellent.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_preference_good.svgz b/tags/sc-actions-tag_preference_good.svgz new file mode 100644 index 0000000..1160ce5 Binary files /dev/null and b/tags/sc-actions-tag_preference_good.svgz differ diff --git a/tags/sc-actions-tag_preference_good.svgz.license b/tags/sc-actions-tag_preference_good.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_preference_good.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_priority_high.svgz b/tags/sc-actions-tag_priority_high.svgz new file mode 100644 index 0000000..302e489 Binary files /dev/null and b/tags/sc-actions-tag_priority_high.svgz differ diff --git a/tags/sc-actions-tag_priority_high.svgz.license b/tags/sc-actions-tag_priority_high.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_priority_high.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_priority_low.svgz b/tags/sc-actions-tag_priority_low.svgz new file mode 100644 index 0000000..d4a273f Binary files /dev/null and b/tags/sc-actions-tag_priority_low.svgz differ diff --git a/tags/sc-actions-tag_priority_low.svgz.license b/tags/sc-actions-tag_priority_low.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_priority_low.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_priority_medium.svgz b/tags/sc-actions-tag_priority_medium.svgz new file mode 100644 index 0000000..60b5f47 Binary files /dev/null and b/tags/sc-actions-tag_priority_medium.svgz differ diff --git a/tags/sc-actions-tag_priority_medium.svgz.license b/tags/sc-actions-tag_priority_medium.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_priority_medium.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_progress_000.svgz b/tags/sc-actions-tag_progress_000.svgz new file mode 100644 index 0000000..a4ddc50 Binary files /dev/null and b/tags/sc-actions-tag_progress_000.svgz differ diff --git a/tags/sc-actions-tag_progress_000.svgz.license b/tags/sc-actions-tag_progress_000.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_progress_000.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_progress_025.svgz b/tags/sc-actions-tag_progress_025.svgz new file mode 100644 index 0000000..d36671e Binary files /dev/null and b/tags/sc-actions-tag_progress_025.svgz differ diff --git a/tags/sc-actions-tag_progress_025.svgz.license b/tags/sc-actions-tag_progress_025.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_progress_025.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_progress_050.svgz b/tags/sc-actions-tag_progress_050.svgz new file mode 100644 index 0000000..ef857c9 Binary files /dev/null and b/tags/sc-actions-tag_progress_050.svgz differ diff --git a/tags/sc-actions-tag_progress_050.svgz.license b/tags/sc-actions-tag_progress_050.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_progress_050.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_progress_075.svgz b/tags/sc-actions-tag_progress_075.svgz new file mode 100644 index 0000000..decc804 Binary files /dev/null and b/tags/sc-actions-tag_progress_075.svgz differ diff --git a/tags/sc-actions-tag_progress_075.svgz.license b/tags/sc-actions-tag_progress_075.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_progress_075.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file diff --git a/tags/sc-actions-tag_progress_100.svgz b/tags/sc-actions-tag_progress_100.svgz new file mode 100644 index 0000000..86dcc6d Binary files /dev/null and b/tags/sc-actions-tag_progress_100.svgz differ diff --git a/tags/sc-actions-tag_progress_100.svgz.license b/tags/sc-actions-tag_progress_100.svgz.license new file mode 100644 index 0000000..82e5a9b --- /dev/null +++ b/tags/sc-actions-tag_progress_100.svgz.license @@ -0,0 +1,3 @@ +SPDX-FileCopyrightText: 2020 (C) Manuel Jesús de la Fuente + +SPDX-License-Identifier: LGPL-2.1-or-later \ No newline at end of file