diff options
author | Eike Ziller <eike.ziller@digia.com> | 2013-04-04 11:17:13 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@digia.com> | 2013-04-04 15:36:35 +0200 |
commit | 52575f1c62e97efd934c394d29c636cf80250674 (patch) | |
tree | d8667bb6a945d826161a58104a59764cb27140ba | |
parent | 43969c4e56bcf3d73ea33eaf01d80a4008bdda4b (diff) | |
download | qt-creator-52575f1c62e97efd934c394d29c636cf80250674.tar.gz |
Add hint to text editor settings pointing to coding style
The tab and indentation settings in Text Editor > Behavior are only used
for non-code files. Add a hint with links to the respective coding style
settings.
Change-Id: I1d7c1154269c4914d511ef6ef3308a2b1f933d52
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: David Schulz <david.schulz@digia.com>
-rw-r--r-- | src/plugins/texteditor/behaviorsettingspage.cpp | 25 | ||||
-rw-r--r-- | src/plugins/texteditor/behaviorsettingspage.h | 4 | ||||
-rw-r--r-- | src/plugins/texteditor/behaviorsettingswidget.cpp | 7 | ||||
-rw-r--r-- | src/plugins/texteditor/behaviorsettingswidget.h | 3 | ||||
-rw-r--r-- | src/plugins/texteditor/simplecodestylepreferenceswidget.cpp | 7 | ||||
-rw-r--r-- | src/plugins/texteditor/simplecodestylepreferenceswidget.h | 1 | ||||
-rw-r--r-- | src/plugins/texteditor/tabsettingswidget.cpp | 16 | ||||
-rw-r--r-- | src/plugins/texteditor/tabsettingswidget.h | 8 | ||||
-rw-r--r-- | src/plugins/texteditor/tabsettingswidget.ui | 53 |
9 files changed, 103 insertions, 21 deletions
diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp index 8222991fba..eac693c00b 100644 --- a/src/plugins/texteditor/behaviorsettingspage.cpp +++ b/src/plugins/texteditor/behaviorsettingspage.cpp @@ -44,6 +44,11 @@ #include <coreplugin/editormanager/editormanager.h> #include <utils/hostosinfo.h> +// for opening the respective coding style preferences +#include <cpptools/cpptoolsconstants.h> +#include <qmljseditor/qmljseditorconstants.h> +#include <qmljstools/qmljstoolsconstants.h> + #include <QSettings> #include <QTextCodec> @@ -122,6 +127,11 @@ QWidget *BehaviorSettingsPage::createPage(QWidget *parent) d->m_pageCodeStyle->setCurrentDelegate(d->m_codeStyle->currentDelegate()); d->m_page->behaviorWidget->setCodeStyle(d->m_pageCodeStyle); + TabSettingsWidget *tabSettingsWidget = d->m_page->behaviorWidget->tabSettingsWidget(); + tabSettingsWidget->setCodingStyleWarningVisible(true); + connect(tabSettingsWidget, SIGNAL(codingStyleLinkClicked(TextEditor::TabSettingsWidget::CodingStyleLink)), + this, SLOT(openCodingStylePreferences(TextEditor::TabSettingsWidget::CodingStyleLink))); + settingsToUI(); if (d->m_searchKeywords.isEmpty()) @@ -258,3 +268,18 @@ bool BehaviorSettingsPage::matches(const QString &s) const { return d->m_searchKeywords.contains(s, Qt::CaseInsensitive); } + + +void BehaviorSettingsPage::openCodingStylePreferences(TabSettingsWidget::CodingStyleLink link) +{ + switch (link) { + case TextEditor::TabSettingsWidget::CppLink: + Core::ICore::showOptionsDialog(CppTools::Constants::CPP_SETTINGS_CATEGORY, + CppTools::Constants::CPP_CODE_STYLE_SETTINGS_ID); + break; + case TextEditor::TabSettingsWidget::QtQuickLink: + Core::ICore::showOptionsDialog(QmlJSEditor::Constants::SETTINGS_CATEGORY_QML, + QmlJSTools::Constants::QML_JS_CODE_STYLE_SETTINGS_ID); + break; + } +} diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h index 18aff4ab99..ccaaaa34ef 100644 --- a/src/plugins/texteditor/behaviorsettingspage.h +++ b/src/plugins/texteditor/behaviorsettingspage.h @@ -33,6 +33,7 @@ #include "texteditor_global.h" #include "texteditoroptionspage.h" +#include "tabsettingswidget.h" namespace TextEditor { @@ -79,6 +80,9 @@ signals: void behaviorSettingsChanged(const TextEditor::BehaviorSettings &); void extraEncodingSettingsChanged(const TextEditor::ExtraEncodingSettings &); +private slots: + void openCodingStylePreferences(TextEditor::TabSettingsWidget::CodingStyleLink link); + private: void settingsFromUI(TypingSettings *typingSettings, StorageSettings *storageSettings, diff --git a/src/plugins/texteditor/behaviorsettingswidget.cpp b/src/plugins/texteditor/behaviorsettingswidget.cpp index 048eeace21..b21c709c21 100644 --- a/src/plugins/texteditor/behaviorsettingswidget.cpp +++ b/src/plugins/texteditor/behaviorsettingswidget.cpp @@ -30,6 +30,8 @@ #include "behaviorsettingswidget.h" #include "ui_behaviorsettingswidget.h" +#include "tabsettingswidget.h" + #include <texteditor/typingsettings.h> #include <texteditor/storagesettings.h> #include <texteditor/behaviorsettings.h> @@ -243,6 +245,11 @@ QString BehaviorSettingsWidget::collectUiKeywords() const return keywords; } +TabSettingsWidget *BehaviorSettingsWidget::tabSettingsWidget() const +{ + return d->m_ui.tabPreferencesWidget->tabSettingsWidget(); +} + void BehaviorSettingsWidget::slotTypingSettingsChanged() { TypingSettings settings; diff --git a/src/plugins/texteditor/behaviorsettingswidget.h b/src/plugins/texteditor/behaviorsettingswidget.h index cc11832a56..7fe303da22 100644 --- a/src/plugins/texteditor/behaviorsettingswidget.h +++ b/src/plugins/texteditor/behaviorsettingswidget.h @@ -41,6 +41,7 @@ QT_END_NAMESPACE namespace TextEditor { class ICodeStylePreferences; +class TabSettingsWidget; class TypingSettings; class StorageSettings; class BehaviorSettings; @@ -77,6 +78,8 @@ public: QString collectUiKeywords() const; + TabSettingsWidget *tabSettingsWidget() const; + signals: void typingSettingsChanged(const TextEditor::TypingSettings &settings); void storageSettingsChanged(const TextEditor::StorageSettings &settings); diff --git a/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp b/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp index ba840c09df..072a8a25f4 100644 --- a/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp +++ b/src/plugins/texteditor/simplecodestylepreferenceswidget.cpp @@ -101,7 +101,12 @@ QString SimpleCodeStylePreferencesWidget::searchKeywords() const void SimpleCodeStylePreferencesWidget::setFlat(bool on) { - m_tabSettingsWidget->setFlat(on); + m_tabSettingsWidget->setFlat(on); +} + +TabSettingsWidget *SimpleCodeStylePreferencesWidget::tabSettingsWidget() const +{ + return m_tabSettingsWidget; } } // namespace TextEditor diff --git a/src/plugins/texteditor/simplecodestylepreferenceswidget.h b/src/plugins/texteditor/simplecodestylepreferenceswidget.h index 7974de6260..2ba5a38d36 100644 --- a/src/plugins/texteditor/simplecodestylepreferenceswidget.h +++ b/src/plugins/texteditor/simplecodestylepreferenceswidget.h @@ -55,6 +55,7 @@ public: QString searchKeywords() const; void setFlat(bool on); + TabSettingsWidget *tabSettingsWidget() const; private slots: void slotCurrentPreferencesChanged(TextEditor::ICodeStylePreferences *preferences); diff --git a/src/plugins/texteditor/tabsettingswidget.cpp b/src/plugins/texteditor/tabsettingswidget.cpp index e30e46a9f0..428f76250c 100644 --- a/src/plugins/texteditor/tabsettingswidget.cpp +++ b/src/plugins/texteditor/tabsettingswidget.cpp @@ -40,7 +40,10 @@ TabSettingsWidget::TabSettingsWidget(QWidget *parent) : ui(new Internal::Ui::TabSettingsWidget) { ui->setupUi(this); + ui->codingStyleWarning->setVisible(false); + connect(ui->codingStyleWarning, SIGNAL(linkActivated(QString)), + this, SLOT(codingStyleLinkActivated(QString))); connect(ui->tabPolicy, SIGNAL(currentIndexChanged(int)), this, SLOT(slotSettingsChanged())); connect(ui->tabSize, SIGNAL(valueChanged(int)), @@ -83,6 +86,14 @@ void TabSettingsWidget::slotSettingsChanged() emit settingsChanged(tabSettings()); } +void TabSettingsWidget::codingStyleLinkActivated(const QString &linkString) +{ + if (linkString == QLatin1String("C++")) + emit codingStyleLinkClicked(CppLink); + else if (linkString == QLatin1String("QtQuick")) + emit codingStyleLinkClicked(QtQuickLink); +} + void TabSettingsWidget::setFlat(bool on) { ui->tabsAndIndentationGroupBox->setFlat(on); @@ -105,6 +116,11 @@ QString TabSettingsWidget::searchKeywords() const return rc; } +void TabSettingsWidget::setCodingStyleWarningVisible(bool visible) +{ + ui->codingStyleWarning->setVisible(visible); +} + void TabSettingsWidget::changeEvent(QEvent *e) { QWidget::changeEvent(e); diff --git a/src/plugins/texteditor/tabsettingswidget.h b/src/plugins/texteditor/tabsettingswidget.h index 001bacfdaf..d4074ba589 100644 --- a/src/plugins/texteditor/tabsettingswidget.h +++ b/src/plugins/texteditor/tabsettingswidget.h @@ -45,6 +45,11 @@ class TEXTEDITOR_EXPORT TabSettingsWidget : public QWidget Q_OBJECT public: + enum CodingStyleLink { + CppLink, + QtQuickLink + }; + explicit TabSettingsWidget(QWidget *parent = 0); ~TabSettingsWidget(); @@ -52,18 +57,21 @@ public: void setFlat(bool on); QString searchKeywords() const; + void setCodingStyleWarningVisible(bool visible); public slots: void setTabSettings(const TextEditor::TabSettings& s); signals: void settingsChanged(const TextEditor::TabSettings &); + void codingStyleLinkClicked(TextEditor::TabSettingsWidget::CodingStyleLink link); protected: void changeEvent(QEvent *e); private slots: void slotSettingsChanged(); + void codingStyleLinkActivated(const QString &linkString); private: Internal::Ui::TabSettingsWidget *ui; diff --git a/src/plugins/texteditor/tabsettingswidget.ui b/src/plugins/texteditor/tabsettingswidget.ui index ef3e32d9f7..15581d6909 100644 --- a/src/plugins/texteditor/tabsettingswidget.ui +++ b/src/plugins/texteditor/tabsettingswidget.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>314</width> - <height>219</height> + <width>335</width> + <height>224</height> </rect> </property> <property name="windowTitle"> @@ -23,14 +23,7 @@ <string>Tabs And Indentation</string> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="0" column="0" colspan="2"> - <widget class="QLabel" name="tabPolicyLabel"> - <property name="text"> - <string>Tab policy:</string> - </property> - </widget> - </item> - <item row="1" column="0"> + <item row="2" column="0"> <spacer name="horizontalSpacer"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -46,7 +39,7 @@ </property> </spacer> </item> - <item row="1" column="1"> + <item row="2" column="1"> <widget class="QComboBox" name="tabPolicy"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -71,7 +64,7 @@ </item> </widget> </item> - <item row="2" column="0" colspan="2"> + <item row="3" column="0" colspan="2"> <layout class="QHBoxLayout" name="horizontalLayout"> <item> <widget class="QLabel" name="tabSizeLabel"> @@ -152,14 +145,7 @@ </item> </layout> </item> - <item row="3" column="0" colspan="2"> - <widget class="QLabel" name="continuationAlignBehaviorLabel"> - <property name="text"> - <string>Align continuation lines:</string> - </property> - </widget> - </item> - <item row="4" column="1"> + <item row="5" column="1"> <widget class="QComboBox" name="continuationAlignBehavior"> <property name="sizePolicy"> <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed"> @@ -211,6 +197,33 @@ Influences the indentation of continuation lines. </item> </widget> </item> + <item row="1" column="0" colspan="2"> + <widget class="QLabel" name="tabPolicyLabel"> + <property name="text"> + <string>Tab policy:</string> + </property> + </widget> + </item> + <item row="4" column="0" colspan="2"> + <widget class="QLabel" name="continuationAlignBehaviorLabel"> + <property name="text"> + <string>Align continuation lines:</string> + </property> + </widget> + </item> + <item row="0" column="0" colspan="2"> + <widget class="QLabel" name="codingStyleWarning"> + <property name="toolTip"> + <string>The text editor indentation setting is used for non-code files only. See the C++ and Qt Quick coding style settings to configure indentation for code files.</string> + </property> + <property name="text"> + <string><i>Code indentation is configured in <a href="C++">C++</a> and <a href="QtQuick">Qt Quick</a> settings.</i></string> + </property> + <property name="wordWrap"> + <bool>true</bool> + </property> + </widget> + </item> </layout> </widget> </item> |