GenericHighlighte: Code cosmetics

The GenericHelper structure is not needed.

Change-Id: I21f394fb81c237958559a61fe4fdef26fe93dee0
Reviewed-by: David Schulz <david.schulz@digia.com>
This commit is contained in:
hjk
2013-04-26 00:12:51 +02:00
committed by David Schulz
parent 6f4f47c8d8
commit ef7b5bb224
2 changed files with 49 additions and 42 deletions

View File

@@ -39,6 +39,33 @@
using namespace TextEditor;
using namespace Internal;
namespace {
template <class Element, class Container>
QSharedPointer<Element> createHelper(const QString &name, Container &container)
{
if (name.isEmpty())
throw HighlighterException();
if (container.contains(name))
throw HighlighterException();
return container.insert(name, QSharedPointer<Element>(new Element)).value();
}
template <class Element, class Container>
QSharedPointer<Element>
findHelper(const QString &name, const Container &container)
{
typename Container::const_iterator it = container.find(name);
if (it == container.end())
throw HighlighterException();
return it.value();
}
} // anon namespace
HighlightDefinition::HighlightDefinition() :
m_keywordCaseSensitivity(Qt::CaseSensitive),
m_singleLineCommentAfterWhiteSpaces(false),
@@ -57,60 +84,50 @@ bool HighlightDefinition::isValid() const
return !m_initialContext.isEmpty();
}
template <class Element, class Container>
QSharedPointer<Element> HighlightDefinition::
GenericHelper::create(const QString &name, Container &container)
{
if (name.isEmpty())
throw HighlighterException();
if (container.contains(name))
throw HighlighterException();
return container.insert(name, QSharedPointer<Element>(new Element)).value();
}
template <class Element, class Container>
QSharedPointer<Element> HighlightDefinition::
GenericHelper::find(const QString &name, const Container &container) const
{
typename Container::const_iterator it = container.find(name);
if (it == container.end())
throw HighlighterException();
return it.value();
}
QSharedPointer<KeywordList> HighlightDefinition::createKeywordList(const QString &list)
{ return m_helper.create<KeywordList>(list, m_lists); }
{
return createHelper<KeywordList>(list, m_lists);
}
QSharedPointer<KeywordList> HighlightDefinition::keywordList(const QString &list)
{ return m_helper.find<KeywordList>(list, m_lists); }
{
return findHelper<KeywordList>(list, m_lists);
}
QSharedPointer<Context> HighlightDefinition::createContext(const QString &context, bool initial)
{
if (initial)
m_initialContext = context;
QSharedPointer<Context> newContext = m_helper.create<Context>(context, m_contexts);
QSharedPointer<Context> newContext = createHelper<Context>(context, m_contexts);
newContext->setName(context);
return newContext;
}
QSharedPointer<Context> HighlightDefinition::initialContext() const
{ return m_helper.find<Context>(m_initialContext, m_contexts); }
{
return findHelper<Context>(m_initialContext, m_contexts);
}
QSharedPointer<Context> HighlightDefinition::context(const QString &context) const
{ return m_helper.find<Context>(context, m_contexts); }
{
return findHelper<Context>(context, m_contexts);
}
const QHash<QString, QSharedPointer<Context> > &HighlightDefinition::contexts() const
{ return m_contexts; }
{
return m_contexts;
}
QSharedPointer<ItemData> HighlightDefinition::createItemData(const QString &itemData)
{ return m_helper.create<ItemData>(itemData, m_itemsData); }
{
return createHelper<ItemData>(itemData, m_itemsData);
}
QSharedPointer<ItemData> HighlightDefinition::itemData(const QString &itemData) const
{ return m_helper.find<ItemData>(itemData, m_itemsData); }
{
return findHelper<ItemData>(itemData, m_itemsData);
}
void HighlightDefinition::setSingleLineComment(const QString &start)
{ m_singleLineComment = start; }

View File

@@ -89,16 +89,6 @@ public:
private:
Q_DISABLE_COPY(HighlightDefinition)
struct GenericHelper
{
template <class Element, class Container>
QSharedPointer<Element> create(const QString &name, Container &container);
template <class Element, class Container>
QSharedPointer<Element> find(const QString &name, const Container &container) const;
};
GenericHelper m_helper;
QHash<QString, QSharedPointer<KeywordList> > m_lists;
QHash<QString, QSharedPointer<Context> > m_contexts;
QHash<QString, QSharedPointer<ItemData> > m_itemsData;