aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/tabsettings.h
diff options
context:
space:
mode:
authorcon <qtc-commiter@nokia.com>2008-12-02 12:01:29 +0100
committercon <qtc-commiter@nokia.com>2008-12-02 12:01:29 +0100
commit05c35356abc31549c5db6eba31fb608c0365c2a0 (patch)
treebe044530104267afaff13f8943889cb97f8c8bad /src/plugins/texteditor/tabsettings.h
Initial import
Diffstat (limited to 'src/plugins/texteditor/tabsettings.h')
-rw-r--r--src/plugins/texteditor/tabsettings.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/src/plugins/texteditor/tabsettings.h b/src/plugins/texteditor/tabsettings.h
new file mode 100644
index 00000000000..8b326fadc47
--- /dev/null
+++ b/src/plugins/texteditor/tabsettings.h
@@ -0,0 +1,83 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Qt Software Information (qt-info@nokia.com)
+**
+**
+** Non-Open Source Usage
+**
+** Licensees may use this file in accordance with the Qt Beta Version
+** License Agreement, Agreement version 2.2 provided with the Software or,
+** alternatively, in accordance with the terms contained in a written
+** agreement between you and Nokia.
+**
+** GNU General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License versions 2.0 or 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the packaging
+** of this file. Please review the following information to ensure GNU
+** General Public Licensing requirements will be met:
+**
+** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
+** http://www.gnu.org/copyleft/gpl.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt GPL Exception version
+** 1.2, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+#ifndef TABSETTINGS_H
+#define TABSETTINGS_H
+
+#include "texteditor_global.h"
+
+#include <QtGui/QTextBlock>
+
+QT_BEGIN_NAMESPACE
+class QSettings;
+QT_END_NAMESPACE
+
+namespace TextEditor {
+
+// Tab settings: Data type the GeneralSettingsPage acts on
+// with some convenience functions for formatting.
+struct TEXTEDITOR_EXPORT TabSettings
+{
+ TabSettings();
+
+ void toSettings(const QString &category, QSettings *s) const;
+ void fromSettings(const QString &category, const QSettings *s);
+
+
+ int lineIndentPosition(const QString &text) const;
+ int firstNonSpace(const QString &text) const;
+ int columnAt(const QString &text, int position) const;
+ int spacesLeftFromPosition(const QString &text, int position) const;
+ int indentedColumn(int column, bool doIndent = true) const;
+ QString indentationString(int startColumn, int targetColumn) const;
+
+ void indentLine(QTextBlock block, int newIndent) const;
+
+ int trailingWhitespaces(const QString &text) const;
+ bool isIndentationClean(const QString &text) const;
+
+
+ bool m_spacesForTabs;
+ bool m_autoIndent;
+ bool m_smartBackspace;
+ int m_tabSize;
+ int m_indentSize;
+
+ bool equals(const TabSettings &ts) const;
+};
+
+inline bool operator==(const TabSettings &t1, const TabSettings &t2) { return t1.equals(t2); }
+inline bool operator!=(const TabSettings &t1, const TabSettings &t2) { return !t1.equals(t2); }
+
+} // namespace TextEditor
+
+#endif // TABSETTINGS_H