8#include "katehighlightmenu.h"
10#include "katedocument.h"
11#include "katesyntaxmanager.h"
13#include <KLocalizedString>
15#include <QActionGroup>
19void KateHighlightingMenu::init()
24 m_actionGroup =
new QActionGroup(
menu());
32void KateHighlightingMenu::slotAboutToShow()
34 const auto modeList = KateHlManager::self()->modeList();
35 for (
const auto &hl : modeList) {
36 QString hlName = hl.translatedName();
37 QString hlSection = hl.translatedSection();
38 if (hlName == QLatin1String(
"None")) {
39 hlName =
i18n(
"None");
42 if (!hl.isHidden() && !hlName.
isEmpty()) {
43 const bool namesHaveHlName = std::find(names.begin(), names.end(), hlName) != names.end();
45 if (!hlSection.
isEmpty() && !namesHaveHlName) {
46 auto it = std::find(subMenusName.begin(), subMenusName.end(), hlSection);
47 if (it == subMenusName.end()) {
48 subMenusName.push_back(hlSection);
50 subMenus.emplace_back(
new QMenu(QLatin1Char(
'&') + hlSection,
menu()));
54 it = --subMenusName.end();
57 const auto m = std::distance(subMenusName.begin(), it);
58 names.push_back(hlName);
59 QAction *a = subMenus.at(m)->addAction(QLatin1Char(
'&') + hlName,
this, SLOT(setHl()));
60 m_actionGroup->addAction(a);
63 subActions.push_back(a);
64 }
else if (!namesHaveHlName) {
65 names.push_back(hlName);
67 m_actionGroup->addAction(a);
70 subActions.push_back(a);
78 const QString mode = m_doc->highlightingMode();
79 for (
auto subAction : subActions) {
80 subAction->setChecked(subAction->data().toString() == mode);
84void KateHighlightingMenu::setHl()
94 m_doc->setHighlightingMode(mode);
97 m_doc->setDontChangeHlOnSave();
100#include "moc_katehighlightmenu.cpp"
Backend of KTextEditor::Document related public KTextEditor interfaces.
QString i18n(const char *text, const TYPE &arg...)
QVariant data() const const
void setData(const QVariant &data)
QMetaObject::Connection connect(const QObject *sender, PointerToMemberFunction signal, Functor functor)
T qobject_cast(QObject *object)
QObject * sender() const const
bool isEmpty() const const
QString toString() const const