2009-02-25 09:15:00 +01:00
|
|
|
/**************************************************************************
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
|
|
|
|
** This file is part of Qt Creator
|
|
|
|
|
**
|
2010-03-05 11:25:49 +01:00
|
|
|
** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
2009-06-17 00:01:27 +10:00
|
|
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
2009-02-25 09:15:00 +01:00
|
|
|
** Commercial Usage
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
2009-02-25 09:15:00 +01:00
|
|
|
** Licensees holding valid Qt Commercial licenses may use this file in
|
|
|
|
|
** accordance with the Qt Commercial License Agreement provided with the
|
|
|
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
|
|
|
** a written agreement between you and Nokia.
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
2009-02-25 09:15:00 +01:00
|
|
|
** GNU Lesser General Public License Usage
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
2009-02-25 09:15:00 +01:00
|
|
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
|
|
|
|
** General Public License version 2.1 as published by the Free Software
|
|
|
|
|
** Foundation and appearing in the file LICENSE.LGPL included in the
|
|
|
|
|
** packaging of this file. Please review the following information to
|
|
|
|
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
|
|
|
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
2009-02-25 09:15:00 +01:00
|
|
|
** If you are unsure which license is appropriate for your use, please
|
2009-08-14 09:30:56 +02:00
|
|
|
** contact the sales department at http://qt.nokia.com/contact.
|
2009-01-27 15:12:32 +01:00
|
|
|
**
|
2009-02-25 09:15:00 +01:00
|
|
|
**************************************************************************/
|
2009-01-27 15:12:32 +01:00
|
|
|
|
|
|
|
|
#include "displaysettingspage.h"
|
|
|
|
|
#include "displaysettings.h"
|
|
|
|
|
#include "ui_displaysettingspage.h"
|
|
|
|
|
|
|
|
|
|
#include <coreplugin/icore.h>
|
|
|
|
|
|
|
|
|
|
#include <QtCore/QSettings>
|
2009-11-24 15:05:02 +01:00
|
|
|
#include <QtCore/QTextStream>
|
2009-01-27 15:12:32 +01:00
|
|
|
|
|
|
|
|
using namespace TextEditor;
|
|
|
|
|
|
|
|
|
|
struct DisplaySettingsPage::DisplaySettingsPagePrivate
|
|
|
|
|
{
|
|
|
|
|
explicit DisplaySettingsPagePrivate(const DisplaySettingsPageParameters &p);
|
|
|
|
|
|
|
|
|
|
const DisplaySettingsPageParameters m_parameters;
|
|
|
|
|
Ui::DisplaySettingsPage m_page;
|
|
|
|
|
DisplaySettings m_displaySettings;
|
2009-11-24 15:05:02 +01:00
|
|
|
QString m_searchKeywords;
|
2009-01-27 15:12:32 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
|
2009-03-18 16:43:01 +01:00
|
|
|
QString DisplaySettingsPage::id() const
|
|
|
|
|
{
|
2009-11-27 16:12:12 +01:00
|
|
|
return m_d->m_parameters.id;
|
2009-03-18 16:43:01 +01:00
|
|
|
}
|
|
|
|
|
|
2010-01-07 18:17:24 +01:00
|
|
|
QString DisplaySettingsPage::displayName() const
|
2009-01-27 15:12:32 +01:00
|
|
|
{
|
2010-01-07 18:17:24 +01:00
|
|
|
return m_d->m_parameters.displayName;
|
2009-01-27 15:12:32 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QString DisplaySettingsPage::category() const
|
|
|
|
|
{
|
|
|
|
|
return m_d->m_parameters.category;
|
|
|
|
|
}
|
|
|
|
|
|
2010-01-07 18:17:24 +01:00
|
|
|
QString DisplaySettingsPage::displayCategory() const
|
2009-01-27 15:12:32 +01:00
|
|
|
{
|
2010-01-07 18:17:24 +01:00
|
|
|
return m_d->m_parameters.displayCategory;
|
2009-01-27 15:12:32 +01:00
|
|
|
}
|
|
|
|
|
|
2010-03-26 17:34:10 +01:00
|
|
|
QIcon DisplaySettingsPage::categoryIcon() const
|
|
|
|
|
{
|
|
|
|
|
return m_d->m_parameters.categoryIcon;
|
|
|
|
|
}
|
|
|
|
|
|
2009-01-27 15:12:32 +01:00
|
|
|
QWidget *DisplaySettingsPage::createPage(QWidget *parent)
|
|
|
|
|
{
|
|
|
|
|
QWidget *w = new QWidget(parent);
|
|
|
|
|
m_d->m_page.setupUi(w);
|
|
|
|
|
settingsToUI();
|
2009-11-24 15:05:02 +01:00
|
|
|
if (m_d->m_searchKeywords.isEmpty()) {
|
|
|
|
|
QTextStream(&m_d->m_searchKeywords) << m_d->m_page.displayLineNumbers->text()
|
|
|
|
|
<< ' ' << m_d->m_page.highlightCurrentLine->text()
|
|
|
|
|
<< ' ' << m_d->m_page.displayFoldingMarkers->text()
|
|
|
|
|
<< ' ' << m_d->m_page.highlightBlocks->text()
|
|
|
|
|
<< ' ' << m_d->m_page.visualizeWhitespace->text()
|
|
|
|
|
<< ' ' << m_d->m_page.animateMatchingParentheses->text()
|
|
|
|
|
<< ' ' << m_d->m_page.enableTextWrapping->text()
|
2009-12-01 18:08:02 +01:00
|
|
|
<< ' ' << m_d->m_page.autoFoldFirstComment->text();
|
2009-11-24 15:05:02 +01:00
|
|
|
m_d->m_searchKeywords.remove(QLatin1Char('&'));
|
|
|
|
|
}
|
2009-01-27 15:12:32 +01:00
|
|
|
return w;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void DisplaySettingsPage::apply()
|
|
|
|
|
{
|
|
|
|
|
DisplaySettings newDisplaySettings;
|
|
|
|
|
|
|
|
|
|
settingsFromUI(newDisplaySettings);
|
2010-01-20 11:27:08 +01:00
|
|
|
setDisplaySettings(newDisplaySettings);
|
2009-01-27 15:12:32 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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();
|
2009-04-22 20:04:38 +02:00
|
|
|
displaySettings.m_highlightBlocks = m_d->m_page.highlightBlocks->isChecked();
|
2009-05-13 16:05:11 +02:00
|
|
|
displaySettings.m_animateMatchingParentheses = m_d->m_page.animateMatchingParentheses->isChecked();
|
2009-07-16 11:27:02 +02:00
|
|
|
displaySettings.m_markTextChanges = m_d->m_page.markTextChanges->isChecked();
|
2009-12-01 18:08:02 +01:00
|
|
|
displaySettings.m_autoFoldFirstComment = m_d->m_page.autoFoldFirstComment->isChecked();
|
2009-01-27 15:12:32 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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);
|
2009-04-22 20:04:38 +02:00
|
|
|
m_d->m_page.highlightBlocks->setChecked(displaySettings.m_highlightBlocks);
|
2009-04-29 12:17:42 +02:00
|
|
|
m_d->m_page.animateMatchingParentheses->setChecked(displaySettings.m_animateMatchingParentheses);
|
2009-07-16 11:27:02 +02:00
|
|
|
m_d->m_page.markTextChanges->setChecked(displaySettings.m_markTextChanges);
|
2009-12-01 18:08:02 +01:00
|
|
|
m_d->m_page.autoFoldFirstComment->setChecked(displaySettings.m_autoFoldFirstComment);
|
2009-01-27 15:12:32 +01:00
|
|
|
}
|
|
|
|
|
|
2010-01-20 11:27:08 +01:00
|
|
|
const DisplaySettings &DisplaySettingsPage::displaySettings() const
|
2009-01-27 15:12:32 +01:00
|
|
|
{
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
}
|
2009-11-24 15:05:02 +01:00
|
|
|
|
|
|
|
|
bool DisplaySettingsPage::matches(const QString &s) const
|
|
|
|
|
{
|
|
|
|
|
return m_d->m_searchKeywords.contains(s, Qt::CaseInsensitive);
|
|
|
|
|
}
|