aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/generichighlighter/highlightersettings.cpp
diff options
context:
space:
mode:
authorLeandro Melo <leandro.melo@nokia.com>2010-05-28 14:37:25 +0200
committerLeandro Melo <leandro.melo@nokia.com>2010-05-28 15:04:44 +0200
commit2dc7a6a1eb27db82cb6ce67754013e85ecd6472a (patch)
tree07407d328a746194ed14cbdf30136fe5bf5aeaf7 /src/plugins/texteditor/generichighlighter/highlightersettings.cpp
parent68cec6a7c7e8415e8430887a8a30c40b7d2255d4 (diff)
More functionality for the generic highlighter options. Other small changes.
Diffstat (limited to 'src/plugins/texteditor/generichighlighter/highlightersettings.cpp')
-rw-r--r--src/plugins/texteditor/generichighlighter/highlightersettings.cpp51
1 files changed, 33 insertions, 18 deletions
diff --git a/src/plugins/texteditor/generichighlighter/highlightersettings.cpp b/src/plugins/texteditor/generichighlighter/highlightersettings.cpp
index c453ebc18e..e932a2ba5a 100644
--- a/src/plugins/texteditor/generichighlighter/highlightersettings.cpp
+++ b/src/plugins/texteditor/generichighlighter/highlightersettings.cpp
@@ -33,9 +33,10 @@
#include <QtCore/QSettings>
#include <QtCore/QString>
+#include <QtCore/QStringList>
#include <QtCore/QLatin1String>
-#ifdef Q_OS_LINUX
+#ifdef Q_OS_UNIX
#include <QtCore/QDir>
#include <QtCore/QProcess>
#endif
@@ -43,18 +44,28 @@
namespace TextEditor {
namespace Internal {
-void applyDefaults(HighlighterSettings *settings)
+QString findDefinitionsLocation()
{
- settings->m_definitionFilesPath.clear();
+ QString definitionsLocation;
-#ifdef Q_OS_LINUX
+#ifdef Q_OS_UNIX
static const QLatin1String kateSyntax("/share/apps/katepart/syntax");
- // Wild guess.
- QDir dir(QLatin1String("/usr") + kateSyntax);
- if (dir.exists()) {
- settings->m_definitionFilesPath = dir.path();
- } else {
+ // Some wild guesses.
+ QDir dir;
+ QStringList paths;
+ paths << QLatin1String("/usr") + kateSyntax
+ << QLatin1String("/usr/local") + kateSyntax
+ << QLatin1String("/opt") + kateSyntax;
+ foreach (const QString &path, paths) {
+ dir.setPath(path);
+ if (dir.exists()) {
+ definitionsLocation = path;
+ break;
+ }
+ }
+
+ if (definitionsLocation.isEmpty()) {
// Try kde-config.
QProcess process;
process.start(QLatin1String("kde-config"), QStringList(QLatin1String("--prefix")));
@@ -64,14 +75,16 @@ void applyDefaults(HighlighterSettings *settings)
output.remove(QLatin1Char('\n'));
dir.setPath(output + kateSyntax);
if (dir.exists())
- settings->m_definitionFilesPath = dir.path();
+ definitionsLocation = dir.path();
}
}
#endif
- if (settings->m_definitionFilesPath.isEmpty())
- settings->m_definitionFilesPath = Core::ICore::instance()->resourcePath() +
- QLatin1String("/generic-highlighter");
+ if (definitionsLocation.isEmpty())
+ definitionsLocation = Core::ICore::instance()->resourcePath() +
+ QLatin1String("/generic-highlighter");
+
+ return definitionsLocation;
}
} // namespace Internal
@@ -80,6 +93,7 @@ void applyDefaults(HighlighterSettings *settings)
namespace {
static const QLatin1String kDefinitionFilesPath("DefinitionFilesPath");
+static const QLatin1String kAlertWhenDefinitionIsNotFound("AlertWhenDefinitionsIsNotFound");
static const QLatin1String kGroupPostfix("HighlighterSettings");
QString groupSpecifier(const QString &postFix, const QString &category)
@@ -94,7 +108,7 @@ QString groupSpecifier(const QString &postFix, const QString &category)
using namespace TextEditor;
using namespace Internal;
-HighlighterSettings::HighlighterSettings()
+HighlighterSettings::HighlighterSettings() : m_alertWhenNoDefinition(true)
{}
void HighlighterSettings::toSettings(const QString &category, QSettings *s) const
@@ -102,6 +116,7 @@ void HighlighterSettings::toSettings(const QString &category, QSettings *s) cons
const QString &group = groupSpecifier(kGroupPostfix, category);
s->beginGroup(group);
s->setValue(kDefinitionFilesPath, m_definitionFilesPath);
+ s->setValue(kAlertWhenDefinitionIsNotFound, m_alertWhenNoDefinition);
s->endGroup();
}
@@ -109,16 +124,16 @@ void HighlighterSettings::fromSettings(const QString &category, QSettings *s)
{
const QString &group = groupSpecifier(kGroupPostfix, category);
s->beginGroup(group);
-
if (!s->contains(kDefinitionFilesPath))
- applyDefaults(this);
+ m_definitionFilesPath = findDefinitionsLocation();
else
m_definitionFilesPath = s->value(kDefinitionFilesPath, QString()).toString();
-
+ m_alertWhenNoDefinition = s->value(kAlertWhenDefinitionIsNotFound, true).toBool();
s->endGroup();
}
bool HighlighterSettings::equals(const HighlighterSettings &highlighterSettings) const
{
- return m_definitionFilesPath == highlighterSettings.m_definitionFilesPath;
+ return m_definitionFilesPath == highlighterSettings.m_definitionFilesPath &&
+ m_alertWhenNoDefinition == highlighterSettings.m_alertWhenNoDefinition;
}