aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/cpptools/completionsettingspage.ui61
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.cpp187
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.h (renamed from src/plugins/texteditor/generalsettingspage.h)27
-rw-r--r--src/plugins/texteditor/behaviorsettingspage.ui (renamed from src/plugins/texteditor/generalsettingspage.ui)89
-rw-r--r--src/plugins/texteditor/displaysettingspage.cpp153
-rw-r--r--src/plugins/texteditor/displaysettingspage.h87
-rw-r--r--src/plugins/texteditor/displaysettingspage.ui116
-rw-r--r--src/plugins/texteditor/generalsettingspage.cpp237
-rw-r--r--src/plugins/texteditor/texteditor.pro11
-rw-r--r--src/plugins/texteditor/texteditorsettings.cpp46
-rw-r--r--src/plugins/texteditor/texteditorsettings.h8
11 files changed, 637 insertions, 385 deletions
diff --git a/src/plugins/cpptools/completionsettingspage.ui b/src/plugins/cpptools/completionsettingspage.ui
index 372c225943..c71a2abc82 100644
--- a/src/plugins/cpptools/completionsettingspage.ui
+++ b/src/plugins/cpptools/completionsettingspage.ui
@@ -15,33 +15,42 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QCheckBox" name="caseSensitive">
- <property name="text">
- <string>&amp;Case-sensitive completion</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="autoInsertBraces">
- <property name="text">
- <string>&amp;Automatically insert braces</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="partiallyComplete">
- <property name="text">
- <string>Autocomplete common &amp;prefix</string>
- </property>
- <property name="checked">
- <bool>true</bool>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Completion Settings</string>
</property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QCheckBox" name="caseSensitive">
+ <property name="text">
+ <string>&amp;Case-sensitive completion</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="autoInsertBraces">
+ <property name="text">
+ <string>&amp;Automatically insert braces</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="partiallyComplete">
+ <property name="text">
+ <string>Autocomplete common &amp;prefix</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
<item>
diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp
new file mode 100644
index 0000000000..be3cf2ddf2
--- /dev/null
+++ b/src/plugins/texteditor/behaviorsettingspage.cpp
@@ -0,0 +1,187 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 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.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+#include "behaviorsettingspage.h"
+#include "interactionsettings.h"
+#include "storagesettings.h"
+#include "tabsettings.h"
+#include "ui_behaviorsettingspage.h"
+
+#include <coreplugin/icore.h>
+
+#include <QtCore/QSettings>
+
+using namespace TextEditor;
+
+struct BehaviorSettingsPage::BehaviorSettingsPagePrivate
+{
+ explicit BehaviorSettingsPagePrivate(const BehaviorSettingsPageParameters &p);
+
+ const BehaviorSettingsPageParameters m_parameters;
+ Ui::BehaviorSettingsPage m_page;
+ TabSettings m_tabSettings;
+ StorageSettings m_storageSettings;
+ InteractionSettings m_interactionSettings;
+};
+
+BehaviorSettingsPage::BehaviorSettingsPagePrivate::BehaviorSettingsPagePrivate
+ (const BehaviorSettingsPageParameters &p)
+ : m_parameters(p)
+{
+ if (const QSettings *s = Core::ICore::instance()->settings()) {
+ m_tabSettings.fromSettings(m_parameters.settingsPrefix, s);
+ m_storageSettings.fromSettings(m_parameters.settingsPrefix, s);
+ m_interactionSettings.fromSettings(m_parameters.settingsPrefix, s);
+ }
+}
+
+BehaviorSettingsPage::BehaviorSettingsPage(const BehaviorSettingsPageParameters &p,
+ QObject *parent)
+ : Core::IOptionsPage(parent),
+ m_d(new BehaviorSettingsPagePrivate(p))
+{
+}
+
+BehaviorSettingsPage::~BehaviorSettingsPage()
+{
+ delete m_d;
+}
+
+QString BehaviorSettingsPage::name() const
+{
+ return m_d->m_parameters.name;
+}
+
+QString BehaviorSettingsPage::category() const
+{
+ return m_d->m_parameters.category;
+}
+
+QString BehaviorSettingsPage::trCategory() const
+{
+ return m_d->m_parameters.trCategory;
+}
+
+QWidget *BehaviorSettingsPage::createPage(QWidget *parent)
+{
+ QWidget *w = new QWidget(parent);
+ m_d->m_page.setupUi(w);
+ settingsToUI();
+ return w;
+}
+
+void BehaviorSettingsPage::apply()
+{
+ TabSettings newTabSettings;
+ StorageSettings newStorageSettings;
+ InteractionSettings newInteractionSettings;
+
+ settingsFromUI(newTabSettings, newStorageSettings, newInteractionSettings);
+
+ Core::ICore *core = Core::ICore::instance();
+ QSettings *s = core->settings();
+
+ if (newTabSettings != m_d->m_tabSettings) {
+ m_d->m_tabSettings = newTabSettings;
+ if (s)
+ m_d->m_tabSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+
+ emit tabSettingsChanged(newTabSettings);
+ }
+
+ if (newStorageSettings != m_d->m_storageSettings) {
+ m_d->m_storageSettings = newStorageSettings;
+ if (s)
+ m_d->m_storageSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+
+ emit storageSettingsChanged(newStorageSettings);
+ }
+
+ if (newInteractionSettings != m_d->m_interactionSettings) {
+ m_d->m_interactionSettings = newInteractionSettings;
+ if (s)
+ m_d->m_interactionSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+ }
+}
+
+void BehaviorSettingsPage::settingsFromUI(TabSettings &tabSettings,
+ StorageSettings &storageSettings,
+ InteractionSettings &interactionSettings) const
+{
+ tabSettings.m_spacesForTabs = m_d->m_page.insertSpaces->isChecked();
+ tabSettings.m_autoIndent = m_d->m_page.autoIndent->isChecked();
+ tabSettings.m_smartBackspace = m_d->m_page.smartBackspace->isChecked();
+ tabSettings.m_tabSize = m_d->m_page.tabSize->value();
+ tabSettings.m_indentSize = m_d->m_page.indentSize->value();
+
+ storageSettings.m_cleanWhitespace = m_d->m_page.cleanWhitespace->isChecked();
+ storageSettings.m_inEntireDocument = m_d->m_page.inEntireDocument->isChecked();
+ storageSettings.m_cleanIndentation = m_d->m_page.cleanIndentation->isChecked();
+ storageSettings.m_addFinalNewLine = m_d->m_page.addFinalNewLine->isChecked();
+
+ interactionSettings.m_useVim = m_d->m_page.useVim->isChecked();
+}
+
+void BehaviorSettingsPage::settingsToUI()
+{
+ const TabSettings &tabSettings = m_d->m_tabSettings;
+ m_d->m_page.insertSpaces->setChecked(tabSettings.m_spacesForTabs);
+ m_d->m_page.autoIndent->setChecked(tabSettings.m_autoIndent);
+ m_d->m_page.smartBackspace->setChecked(tabSettings.m_smartBackspace);
+ m_d->m_page.tabSize->setValue(tabSettings.m_tabSize);
+ m_d->m_page.indentSize->setValue(tabSettings.m_indentSize);
+
+ const StorageSettings &storageSettings = m_d->m_storageSettings;
+ m_d->m_page.cleanWhitespace->setChecked(storageSettings.m_cleanWhitespace);
+ m_d->m_page.inEntireDocument->setChecked(storageSettings.m_inEntireDocument);
+ m_d->m_page.cleanIndentation->setChecked(storageSettings.m_cleanIndentation);
+ m_d->m_page.addFinalNewLine->setChecked(storageSettings.m_addFinalNewLine);
+
+ const InteractionSettings &interactionSettings = m_d->m_interactionSettings;
+ m_d->m_page.useVim->setChecked(interactionSettings.m_useVim);
+}
+
+TabSettings BehaviorSettingsPage::tabSettings() const
+{
+ return m_d->m_tabSettings;
+}
+
+StorageSettings BehaviorSettingsPage::storageSettings() const
+{
+ return m_d->m_storageSettings;
+}
+
+InteractionSettings BehaviorSettingsPage::interactionSettings() const
+{
+ return m_d->m_interactionSettings;
+}
diff --git a/src/plugins/texteditor/generalsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h
index 1f70fd6b0b..68f7b40829 100644
--- a/src/plugins/texteditor/generalsettingspage.h
+++ b/src/plugins/texteditor/behaviorsettingspage.h
@@ -31,8 +31,8 @@
**
***************************************************************************/
-#ifndef GENERALSETTINGSPAGE_H
-#define GENERALSETTINGSPAGE_H
+#ifndef BEHAVIORSETTINGSPAGE_H
+#define BEHAVIORSETTINGSPAGE_H
#include "texteditor_global.h"
@@ -44,10 +44,9 @@ namespace TextEditor {
struct TabSettings;
struct StorageSettings;
-struct DisplaySettings;
struct InteractionSettings;
-struct TEXTEDITOR_EXPORT GeneralSettingsPageParameters
+struct BehaviorSettingsPageParameters
{
QString name;
QString category;
@@ -55,13 +54,13 @@ struct TEXTEDITOR_EXPORT GeneralSettingsPageParameters
QString settingsPrefix;
};
-class TEXTEDITOR_EXPORT GeneralSettingsPage : public Core::IOptionsPage
+class BehaviorSettingsPage : public Core::IOptionsPage
{
Q_OBJECT
public:
- GeneralSettingsPage(const GeneralSettingsPageParameters &p, QObject *parent);
- virtual ~GeneralSettingsPage();
+ BehaviorSettingsPage(const BehaviorSettingsPageParameters &p, QObject *parent);
+ virtual ~BehaviorSettingsPage();
// IOptionsPage
QString name() const;
@@ -74,27 +73,21 @@ public:
TabSettings tabSettings() const;
StorageSettings storageSettings() const;
- DisplaySettings displaySettings() const;
InteractionSettings interactionSettings() const;
- void setDisplaySettings(const DisplaySettings &);
-
signals:
void tabSettingsChanged(const TextEditor::TabSettings &);
void storageSettingsChanged(const TextEditor::StorageSettings &);
- void displaySettingsChanged(const TextEditor::DisplaySettings &);
private:
void settingsFromUI(TabSettings &rc,
StorageSettings &storageSettings,
- DisplaySettings &displaySettings,
- InteractionSettings &interactionSettings
- ) const;
+ InteractionSettings &interactionSettings) const;
void settingsToUI();
- struct GeneralSettingsPagePrivate;
- GeneralSettingsPagePrivate *m_d;
+ struct BehaviorSettingsPagePrivate;
+ BehaviorSettingsPagePrivate *m_d;
};
} // namespace TextEditor
-#endif // GENERALSETTINGSPAGE_H
+#endif // BEHAVIORSETTINGSPAGE_H
diff --git a/src/plugins/texteditor/generalsettingspage.ui b/src/plugins/texteditor/behaviorsettingspage.ui
index 301ee8bdf5..a2fb68e5b2 100644
--- a/src/plugins/texteditor/generalsettingspage.ui
+++ b/src/plugins/texteditor/behaviorsettingspage.ui
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
- <class>TextEditor::generalSettingsPage</class>
- <widget class="QWidget" name="TextEditor::generalSettingsPage">
+ <class>TextEditor::BehaviorSettingsPage</class>
+ <widget class="QWidget" name="TextEditor::BehaviorSettingsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
- <width>514</width>
- <height>475</height>
+ <width>484</width>
+ <height>398</height>
</rect>
</property>
<property name="windowTitle">
@@ -255,71 +255,6 @@
</widget>
</item>
<item row="2" column="0">
- <widget class="QGroupBox" name="groupBoxDisplaySettings">
- <property name="title">
- <string>Display Settings</string>
- </property>
- <layout class="QGridLayout">
- <item row="0" column="1">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QCheckBox" name="showWrapColumn">
- <property name="text">
- <string>Display right &amp;margin at column</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="wrapColumn">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="maximum">
- <number>999</number>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="0" column="0">
- <widget class="QCheckBox" name="enableTextWrapping">
- <property name="text">
- <string>Enable text &amp;wrapping</string>
- </property>
- </widget>
- </item>
- <item row="3" column="0">
- <widget class="QCheckBox" name="displayLineNumbers">
- <property name="text">
- <string>Display line &amp;numbers</string>
- </property>
- </widget>
- </item>
- <item row="3" column="1">
- <widget class="QCheckBox" name="visualizeWhitespace">
- <property name="text">
- <string>&amp;Visualize whitespace</string>
- </property>
- </widget>
- </item>
- <item row="4" column="0">
- <widget class="QCheckBox" name="displayFoldingMarkers">
- <property name="text">
- <string>Display &amp;folding markers</string>
- </property>
- </widget>
- </item>
- <item row="4" column="1">
- <widget class="QCheckBox" name="highlightCurrentLine">
- <property name="text">
- <string>Highlight current &amp;line</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="3" column="0">
<widget class="QGroupBox" name="groupBoxInteractionSettings">
<property name="title">
<string>Interaction Settings</string>
@@ -335,7 +270,7 @@
</layout>
</widget>
</item>
- <item row="4" column="0">
+ <item row="3" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -373,20 +308,14 @@
<signal>toggled(bool)</signal>
<receiver>cleanIndentation</receiver>
<slot>setEnabled(bool)</slot>
- </connection>
- <connection>
- <sender>showWrapColumn</sender>
- <signal>toggled(bool)</signal>
- <receiver>wrapColumn</receiver>
- <slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
- <x>399</x>
- <y>308</y>
+ <x>20</x>
+ <y>20</y>
</hint>
<hint type="destinationlabel">
- <x>474</x>
- <y>308</y>
+ <x>20</x>
+ <y>20</y>
</hint>
</hints>
</connection>
diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp
new file mode 100644
index 0000000000..7f47290b3f
--- /dev/null
+++ b/src/plugins/texteditor/displaysettingspage.cpp
@@ -0,0 +1,153 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 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.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+#include "displaysettingspage.h"
+#include "displaysettings.h"
+#include "ui_displaysettingspage.h"
+
+#include <coreplugin/icore.h>
+
+#include <QtCore/QSettings>
+
+using namespace TextEditor;
+
+struct DisplaySettingsPage::DisplaySettingsPagePrivate
+{
+ explicit DisplaySettingsPagePrivate(const DisplaySettingsPageParameters &p);
+
+ const DisplaySettingsPageParameters m_parameters;
+ Ui::DisplaySettingsPage m_page;
+ DisplaySettings m_displaySettings;
+};
+
+DisplaySettingsPage::DisplaySettingsPagePrivate::DisplaySettingsPagePrivate
+ (const DisplaySettingsPageParameters &p)
+ : m_parameters(p)
+{
+ if (const QSettings *s = Core::ICore::instance()->settings()) {
+ m_displaySettings.fromSettings(m_parameters.settingsPrefix, s);
+ }
+}
+
+DisplaySettingsPage::DisplaySettingsPage(const DisplaySettingsPageParameters &p,
+ QObject *parent)
+ : Core::IOptionsPage(parent),
+ m_d(new DisplaySettingsPagePrivate(p))
+{
+}
+
+DisplaySettingsPage::~DisplaySettingsPage()
+{
+ delete m_d;
+}
+
+QString DisplaySettingsPage::name() const
+{
+ return m_d->m_parameters.name;
+}
+
+QString DisplaySettingsPage::category() const
+{
+ return m_d->m_parameters.category;
+}
+
+QString DisplaySettingsPage::trCategory() const
+{
+ return m_d->m_parameters.trCategory;
+}
+
+QWidget *DisplaySettingsPage::createPage(QWidget *parent)
+{
+ QWidget *w = new QWidget(parent);
+ m_d->m_page.setupUi(w);
+ settingsToUI();
+ return w;
+}
+
+void DisplaySettingsPage::apply()
+{
+ DisplaySettings newDisplaySettings;
+
+ settingsFromUI(newDisplaySettings);
+
+ Core::ICore *core = Core::ICore::instance();
+ QSettings *s = core->settings();
+
+ if (newDisplaySettings != m_d->m_displaySettings) {
+ m_d->m_displaySettings = newDisplaySettings;
+ if (s)
+ m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+
+ emit displaySettingsChanged(newDisplaySettings);
+ }
+}
+
+void DisplaySettingsPage::settingsFromUI(DisplaySettings &displaySettings) const
+{
+ displaySettings.m_displayLineNumbers = m_d->m_page.displayLineNumbers->isChecked();
+ displaySettings.m_textWrapping = m_d->m_page.enableTextWrapping->isChecked();
+ displaySettings.m_showWrapColumn = m_d->m_page.showWrapColumn->isChecked();
+ displaySettings.m_wrapColumn = m_d->m_page.wrapColumn->value();
+ displaySettings.m_visualizeWhitespace = m_d->m_page.visualizeWhitespace->isChecked();
+ displaySettings.m_displayFoldingMarkers = m_d->m_page.displayFoldingMarkers->isChecked();
+ displaySettings.m_highlightCurrentLine = m_d->m_page.highlightCurrentLine->isChecked();
+}
+
+void DisplaySettingsPage::settingsToUI()
+{
+ const DisplaySettings &displaySettings = m_d->m_displaySettings;
+ m_d->m_page.displayLineNumbers->setChecked(displaySettings.m_displayLineNumbers);
+ m_d->m_page.enableTextWrapping->setChecked(displaySettings.m_textWrapping);
+ m_d->m_page.showWrapColumn->setChecked(displaySettings.m_showWrapColumn);
+ m_d->m_page.wrapColumn->setValue(displaySettings.m_wrapColumn);
+ m_d->m_page.visualizeWhitespace->setChecked(displaySettings.m_visualizeWhitespace);
+ m_d->m_page.displayFoldingMarkers->setChecked(displaySettings.m_displayFoldingMarkers);
+ m_d->m_page.highlightCurrentLine->setChecked(displaySettings.m_highlightCurrentLine);
+}
+
+DisplaySettings DisplaySettingsPage::displaySettings() const
+{
+ return m_d->m_displaySettings;
+}
+
+void DisplaySettingsPage::setDisplaySettings(const DisplaySettings &newDisplaySettings)
+{
+ if (newDisplaySettings != m_d->m_displaySettings) {
+ m_d->m_displaySettings = newDisplaySettings;
+ Core::ICore *core = Core::ICore::instance();
+ if (QSettings *s = core->settings())
+ m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
+
+ emit displaySettingsChanged(newDisplaySettings);
+ }
+}
diff --git a/src/plugins/texteditor/displaysettingspage.h b/src/plugins/texteditor/displaysettingspage.h
new file mode 100644
index 0000000000..3337cafa92
--- /dev/null
+++ b/src/plugins/texteditor/displaysettingspage.h
@@ -0,0 +1,87 @@
+/***************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2008-2009 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.3, included in the file GPL_EXCEPTION.txt in this package.
+**
+***************************************************************************/
+
+#ifndef DISPLAYSETTINGSPAGE_H
+#define DISPLAYSETTINGSPAGE_H
+
+#include "texteditor_global.h"
+
+#include <coreplugin/dialogs/ioptionspage.h>
+
+#include <QtCore/QObject>
+
+namespace TextEditor {
+
+struct DisplaySettings;
+
+struct DisplaySettingsPageParameters
+{
+ QString name;
+ QString category;
+ QString trCategory;
+ QString settingsPrefix;
+};
+
+class DisplaySettingsPage : public Core::IOptionsPage
+{
+ Q_OBJECT
+
+public:
+ DisplaySettingsPage(const DisplaySettingsPageParameters &p, QObject *parent);
+ virtual ~DisplaySettingsPage();
+
+ // IOptionsPage
+ QString name() const;
+ QString category() const;
+ QString trCategory() const;
+
+ QWidget *createPage(QWidget *parent);
+ void apply();
+ void finish() { }
+
+ DisplaySettings displaySettings() const;
+ void setDisplaySettings(const DisplaySettings &);
+
+signals:
+ void displaySettingsChanged(const TextEditor::DisplaySettings &);
+
+private:
+ void settingsFromUI(DisplaySettings &displaySettings) const;
+ void settingsToUI();
+ struct DisplaySettingsPagePrivate;
+ DisplaySettingsPagePrivate *m_d;
+};
+
+} // namespace TextEditor
+
+#endif // DISPLAYSETTINGSPAGE_H
diff --git a/src/plugins/texteditor/displaysettingspage.ui b/src/plugins/texteditor/displaysettingspage.ui
new file mode 100644
index 0000000000..30fdf5cf93
--- /dev/null
+++ b/src/plugins/texteditor/displaysettingspage.ui
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>TextEditor::DisplaySettingsPage</class>
+ <widget class="QWidget" name="TextEditor::DisplaySettingsPage">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>514</width>
+ <height>194</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout_3">
+ <item row="0" column="0">
+ <widget class="QGroupBox" name="groupBoxDisplaySettings">
+ <property name="title">
+ <string>Display Settings</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="1">
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QCheckBox" name="showWrapColumn">
+ <property name="text">
+ <string>Display right &amp;margin at column</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QSpinBox" name="wrapColumn">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="maximum">
+ <number>999</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item row="0" column="0">
+ <widget class="QCheckBox" name="enableTextWrapping">
+ <property name="text">
+ <string>Enable text &amp;wrapping</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0">
+ <widget class="QCheckBox" name="displayLineNumbers">
+ <property name="text">
+ <string>Display line &amp;numbers</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1">
+ <widget class="QCheckBox" name="visualizeWhitespace">
+ <property name="text">
+ <string>&amp;Visualize whitespace</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0">
+ <widget class="QCheckBox" name="displayFoldingMarkers">
+ <property name="text">
+ <string>Display &amp;folding markers</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QCheckBox" name="highlightCurrentLine">
+ <property name="text">
+ <string>Highlight current &amp;line</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>8</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>showWrapColumn</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>wrapColumn</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>399</x>
+ <y>308</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>474</x>
+ <y>308</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/plugins/texteditor/generalsettingspage.cpp b/src/plugins/texteditor/generalsettingspage.cpp
deleted file mode 100644
index 28400d10eb..0000000000
--- a/src/plugins/texteditor/generalsettingspage.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/***************************************************************************
-**
-** This file is part of Qt Creator
-**
-** Copyright (c) 2008-2009 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.3, included in the file GPL_EXCEPTION.txt in this package.
-**
-***************************************************************************/
-
-#include "displaysettings.h"
-#include "generalsettingspage.h"
-#include "interactionsettings.h"
-#include "storagesettings.h"
-#include "tabsettings.h"
-#include "ui_generalsettingspage.h"
-
-#include <coreplugin/icore.h>
-
-#include <QtCore/QSettings>
-#include <QtCore/QDebug>
-
-using namespace TextEditor;
-
-struct GeneralSettingsPage::GeneralSettingsPagePrivate
-{
- explicit GeneralSettingsPagePrivate(const GeneralSettingsPageParameters &p);
-
- const GeneralSettingsPageParameters m_parameters;
- Ui::generalSettingsPage m_page;
- TabSettings m_tabSettings;
- StorageSettings m_storageSettings;
- DisplaySettings m_displaySettings;
- InteractionSettings m_interactionSettings;
-};
-
-GeneralSettingsPage::GeneralSettingsPagePrivate::GeneralSettingsPagePrivate
- (const GeneralSettingsPageParameters &p)
- : m_parameters(p)
-{
- if (const QSettings *s = Core::ICore::instance()->settings()) {
- m_tabSettings.fromSettings(m_parameters.settingsPrefix, s);
- m_storageSettings.fromSettings(m_parameters.settingsPrefix, s);
- m_displaySettings.fromSettings(m_parameters.settingsPrefix, s);
- m_interactionSettings.fromSettings(m_parameters.settingsPrefix, s);
- }
-}
-
-GeneralSettingsPage::GeneralSettingsPage(const GeneralSettingsPageParameters &p,
- QObject *parent)
- : Core::IOptionsPage(parent),
- m_d(new GeneralSettingsPagePrivate(p))
-{
-}
-
-GeneralSettingsPage::~GeneralSettingsPage()
-{
- delete m_d;
-}
-
-QString GeneralSettingsPage::name() const
-{
- return m_d->m_parameters.name;
-}
-
-QString GeneralSettingsPage::category() const
-{
- return m_d->m_parameters.category;
-}
-
-QString GeneralSettingsPage::trCategory() const
-{
- return m_d->m_parameters.trCategory;
-}
-
-QWidget *GeneralSettingsPage::createPage(QWidget *parent)
-{
- QWidget *w = new QWidget(parent);
- m_d->m_page.setupUi(w);
- settingsToUI();
- return w;
-}
-
-void GeneralSettingsPage::apply()
-{
- TabSettings newTabSettings;
- StorageSettings newStorageSettings;
- DisplaySettings newDisplaySettings;
- InteractionSettings newInteractionSettings;
-
- settingsFromUI(newTabSettings, newStorageSettings, newDisplaySettings,
- newInteractionSettings);
-
- Core::ICore *core = Core::ICore::instance();
- QSettings *s = core->settings();
-
- if (newTabSettings != m_d->m_tabSettings) {
- m_d->m_tabSettings = newTabSettings;
- if (s)
- m_d->m_tabSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
-
- emit tabSettingsChanged(newTabSettings);
- }
-
- if (newStorageSettings != m_d->m_storageSettings) {
- m_d->m_storageSettings = newStorageSettings;
- if (s)
- m_d->m_storageSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
-
- emit storageSettingsChanged(newStorageSettings);
- }
-
- if (newDisplaySettings != m_d->m_displaySettings) {
- m_d->m_displaySettings = newDisplaySettings;
- if (s)
- m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
-
- emit displaySettingsChanged(newDisplaySettings);
- }
-
- if (newInteractionSettings != m_d->m_interactionSettings) {
- m_d->m_interactionSettings = newInteractionSettings;
- if (s)
- m_d->m_interactionSettings.toSettings(m_d->m_parameters.settingsPrefix, s);
-
- }
-}
-
-void GeneralSettingsPage::settingsFromUI(TabSettings &rc,
- StorageSettings &storageSettings,
- DisplaySettings &displaySettings,
- InteractionSettings &interactionSettings) const
-{
- rc.m_spacesForTabs = m_d->m_page.insertSpaces->isChecked();
- rc.m_autoIndent = m_d->m_page.autoIndent->isChecked();
- rc.m_smartBackspace = m_d->m_page.smartBackspace->isChecked();
- rc.m_tabSize = m_d->m_page.tabSize->value();
- rc.m_indentSize = m_d->m_page.indentSize->value();
-
- storageSettings.m_cleanWhitespace = m_d->m_page.cleanWhitespace->isChecked();
- storageSettings.m_inEntireDocument = m_d->m_page.inEntireDocument->isChecked();
- storageSettings.m_cleanIndentation = m_d->m_page.cleanIndentation->isChecked();
- storageSettings.m_addFinalNewLine = m_d->m_page.addFinalNewLine->isChecked();
-
- displaySettings.m_displayLineNumbers = m_d->m_page.displayLineNumbers->isChecked();
- displaySettings.m_textWrapping = m_d->m_page.enableTextWrapping->isChecked();
- displaySettings.m_showWrapColumn = m_d->m_page.showWrapColumn->isChecked();
- displaySettings.m_wrapColumn = m_d->m_page.wrapColumn->value();
- displaySettings.m_visualizeWhitespace = m_d->m_page.visualizeWhitespace->isChecked();
- displaySettings.m_displayFoldingMarkers = m_d->m_page.displayFoldingMarkers->isChecked();
- displaySettings.m_highlightCurrentLine = m_d->m_page.highlightCurrentLine->isChecked();
-
- interactionSettings.m_useVim = m_d->m_page.useVim->isChecked();
-}
-
-void GeneralSettingsPage::settingsToUI()
-{
- TabSettings rc = m_d->m_tabSettings;
- m_d->m_page.insertSpaces->setChecked(rc.m_spacesForTabs);
- m_d->m_page.autoIndent->setChecked(rc.m_autoIndent);
- m_d->m_page.smartBackspace->setChecked(rc.m_smartBackspace);
- m_d->m_page.tabSize->setValue(rc.m_tabSize);
- m_d->m_page.indentSize->setValue(rc.m_indentSize);
-
- StorageSettings storageSettings = m_d->m_storageSettings;
- m_d->m_page.cleanWhitespace->setChecked(storageSettings.m_cleanWhitespace);
- m_d->m_page.inEntireDocument->setChecked(storageSettings.m_inEntireDocument);
- m_d->m_page.cleanIndentation->setChecked(storageSettings.m_cleanIndentation);
- m_d->m_page.addFinalNewLine->setChecked(storageSettings.m_addFinalNewLine);
-
- DisplaySettings displaySettings = m_d->m_displaySettings;
- m_d->m_page.displayLineNumbers->setChecked(displaySettings.m_displayLineNumbers);
- m_d->m_page.enableTextWrapping->setChecked(displaySettings.m_textWrapping);
- m_d->m_page.showWrapColumn->setChecked(displaySettings.m_showWrapColumn);
- m_d->m_page.wrapColumn->setValue(displaySettings.m_wrapColumn);
- m_d->m_page.visualizeWhitespace->setChecked(displaySettings.m_visualizeWhitespace);
- m_d->m_page.displayFoldingMarkers->setChecked(displaySettings.m_displayFoldingMarkers);
- m_d->m_page.highlightCurrentLine->setChecked(displaySettings.m_highlightCurrentLine);
-
- InteractionSettings interactionSettings = m_d->m_interactionSettings;
- m_d->m_page.useVim->setChecked(interactionSettings.m_useVim);
-}
-
-TabSettings GeneralSettingsPage::tabSettings() const
-{
- return m_d->m_tabSettings;
-}
-
-StorageSettings GeneralSettingsPage::storageSettings() const
-{
- return m_d->m_storageSettings;
-}
-
-DisplaySettings GeneralSettingsPage::displaySettings() const
-{
- return m_d->m_displaySettings;
-}
-
-InteractionSettings GeneralSettingsPage::interactionSettings() const
-{
- return m_d->m_interactionSettings;
-}
-
-void GeneralSettingsPage::setDisplaySettings(const DisplaySettings &newDisplaySettings)
-{
- if (newDisplaySettings != m_d->m_displaySettings) {
- m_d->m_displaySettings = newDisplaySettings;
- Core::ICore *core = Core::ICore::instance();
- if (QSettings *s = core->settings())
- m_d->m_displaySettings.toSettings(m_d->m_parameters.settingsPrefix, s);
-
- emit displaySettingsChanged(newDisplaySettings);
- }
-}
diff --git a/src/plugins/texteditor/texteditor.pro b/src/plugins/texteditor/texteditor.pro
index 56c39604fb..0ec180bc06 100644
--- a/src/plugins/texteditor/texteditor.pro
+++ b/src/plugins/texteditor/texteditor.pro
@@ -9,6 +9,7 @@ SOURCES += texteditorplugin.cpp \
plaintexteditorfactory.cpp \
basetextdocument.cpp \
basetexteditor.cpp \
+ behaviorsettingspage.cpp \
texteditoractionhandler.cpp \
completionsupport.cpp \
completionwidget.cpp \
@@ -17,10 +18,10 @@ SOURCES += texteditorplugin.cpp \
tabsettings.cpp \
storagesettings.cpp \
displaysettings.cpp \
+ displaysettingspage.cpp \
fontsettings.cpp \
textblockiterator.cpp \
linenumberfilter.cpp \
- generalsettingspage.cpp \
basetextmark.cpp \
findinfiles.cpp \
basefilefind.cpp \
@@ -32,6 +33,7 @@ HEADERS += texteditorplugin.h \
plaintexteditorfactory.h \
basetexteditor_p.h \
basetextdocument.h \
+ behaviorsettingspage.h \
completionsupport.h \
completionwidget.h \
basetexteditor.h \
@@ -43,18 +45,19 @@ HEADERS += texteditorplugin.h \
tabsettings.h \
storagesettings.h \
displaysettings.h \
+ displaysettingspage.h \
fontsettings.h \
textblockiterator.h \
itexteditable.h \
itexteditor.h \
linenumberfilter.h \
texteditor_global.h \
- generalsettingspage.h \
basetextmark.h \
findinfiles.h \
basefilefind.h \
texteditorsettings.h \
codecselector.h
-FORMS += fontsettingspage.ui \
- generalsettingspage.ui
+FORMS += behaviorsettingspage.ui \
+ displaysettingspage.ui \
+ fontsettingspage.ui
RESOURCES += texteditor.qrc
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index 999ad0d8ae..a8f6019597 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -33,8 +33,9 @@
#include "texteditorsettings.h"
+#include "behaviorsettingspage.h"
#include "displaysettings.h"
-#include "generalsettingspage.h"
+#include "displaysettingspage.h"
#include "fontsettingspage.h"
#include "storagesettings.h"
#include "tabsettings.h"
@@ -93,34 +94,43 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
m_fontSettingsPage = new FontSettingsPage(formatDescriptions,
QLatin1String("TextEditor"),
- tr("Text Editor"));
+ tr("Text Editor"),
+ this);
pm->addObject(m_fontSettingsPage);
- // Add the GUI used to configure the tab, storage and display settings
- TextEditor::GeneralSettingsPageParameters generalSettingsPageParameters;
- generalSettingsPageParameters.name = tr("General");
- generalSettingsPageParameters.category = QLatin1String("TextEditor");
- generalSettingsPageParameters.trCategory = tr("Text Editor");
- generalSettingsPageParameters.settingsPrefix = QLatin1String("text");
- m_generalSettingsPage = new GeneralSettingsPage(generalSettingsPageParameters, this);
- pm->addObject(m_generalSettingsPage);
+ // Add the GUI used to configure the tab, storage and interaction settings
+ TextEditor::BehaviorSettingsPageParameters behaviorSettingsPageParameters;
+ behaviorSettingsPageParameters.name = tr("Behavior");
+ behaviorSettingsPageParameters.category = QLatin1String("TextEditor");
+ behaviorSettingsPageParameters.trCategory = tr("Text Editor");
+ behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text");
+ m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
+ pm->addObject(m_behaviorSettingsPage);
+
+ TextEditor::DisplaySettingsPageParameters displaySettingsPageParameters;
+ displaySettingsPageParameters.name = tr("Display");
+ displaySettingsPageParameters.category = QLatin1String("TextEditor");
+ displaySettingsPageParameters.trCategory = tr("Text Editor");
+ displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
+ m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
+ pm->addObject(m_displaySettingsPage);
connect(m_fontSettingsPage, SIGNAL(changed(TextEditor::FontSettings)),
this, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)));
- connect(m_generalSettingsPage, SIGNAL(tabSettingsChanged(TextEditor::TabSettings)),
+ connect(m_behaviorSettingsPage, SIGNAL(tabSettingsChanged(TextEditor::TabSettings)),
this, SIGNAL(tabSettingsChanged(TextEditor::TabSettings)));
- connect(m_generalSettingsPage, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
+ connect(m_behaviorSettingsPage, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)),
this, SIGNAL(storageSettingsChanged(TextEditor::StorageSettings)));
- connect(m_generalSettingsPage, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
+ connect(m_displaySettingsPage, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)),
this, SIGNAL(displaySettingsChanged(TextEditor::DisplaySettings)));
}
TextEditorSettings::~TextEditorSettings()
{
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
- pm->removeObject(m_generalSettingsPage);
pm->removeObject(m_fontSettingsPage);
- delete m_fontSettingsPage;
+ pm->removeObject(m_behaviorSettingsPage);
+ pm->removeObject(m_displaySettingsPage);
m_instance = 0;
}
@@ -137,15 +147,15 @@ FontSettings TextEditorSettings::fontSettings() const
TabSettings TextEditorSettings::tabSettings() const
{
- return m_generalSettingsPage->tabSettings();
+ return m_behaviorSettingsPage->tabSettings();
}
StorageSettings TextEditorSettings::storageSettings() const
{
- return m_generalSettingsPage->storageSettings();
+ return m_behaviorSettingsPage->storageSettings();
}
DisplaySettings TextEditorSettings::displaySettings() const
{
- return m_generalSettingsPage->displaySettings();
+ return m_displaySettingsPage->displaySettings();
}
diff --git a/src/plugins/texteditor/texteditorsettings.h b/src/plugins/texteditor/texteditorsettings.h
index efaec3176b..f90fa676ee 100644
--- a/src/plugins/texteditor/texteditorsettings.h
+++ b/src/plugins/texteditor/texteditorsettings.h
@@ -40,7 +40,8 @@
namespace TextEditor {
-class GeneralSettingsPage;
+class BehaviorSettingsPage;
+class DisplaySettingsPage;
class FontSettingsPage;
class FontSettings;
struct TabSettings;
@@ -74,8 +75,9 @@ signals:
void displaySettingsChanged(const TextEditor::DisplaySettings &);
private:
- TextEditor::FontSettingsPage *m_fontSettingsPage;
- TextEditor::GeneralSettingsPage *m_generalSettingsPage;
+ FontSettingsPage *m_fontSettingsPage;
+ BehaviorSettingsPage *m_behaviorSettingsPage;
+ DisplaySettingsPage *m_displaySettingsPage;
static TextEditorSettings *m_instance;
};