diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2009-03-18 16:43:01 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2009-03-18 16:43:01 +0100 |
commit | bccf4a1fc31980083dcf572ec4f6d5f65c2f0931 (patch) | |
tree | d53d123064db5fe1b297104c58c66e9e4bea8166 /src/plugins | |
parent | 3b0305727b5885281fe308cabcf4af41814a5270 (diff) |
Fixes: Introduce a cpp settingspage containing file naming conventions (lower case and suffixes). Reorder VCS settings pages.
Task: 241959, 248085
RevBy: Optics/Naming checked by con
Details: Give IOptionPage an id() to differentiate from trName(). Make showOptionsDialog return a bool (applied) and give it an optional parent. Change Cpp and form class wizards, give them a Configure... button to change those settings.
Diffstat (limited to 'src/plugins')
59 files changed, 745 insertions, 128 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp index 61de34e01e..def15f0bba 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp @@ -234,15 +234,19 @@ QString CMakeSettingsPage::findCmakeExecutable() const return env.searchInPath("cmake"); } +QString CMakeSettingsPage::id() const +{ + return QLatin1String("CMake"); +} -QString CMakeSettingsPage::name() const +QString CMakeSettingsPage::trName() const { - return "CMake"; + return tr("CMake"); } QString CMakeSettingsPage::category() const { - return "CMake"; + return QLatin1String("CMake"); } QString CMakeSettingsPage::trCategory() const diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h index f4c18f906a..2188edb6e9 100644 --- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h +++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h @@ -92,7 +92,8 @@ class CMakeSettingsPage : public Core::IOptionsPage public: CMakeSettingsPage(); virtual ~CMakeSettingsPage(); - virtual QString name() const; + virtual QString id() const; + virtual QString trName() const; virtual QString category() const; virtual QString trCategory() const; diff --git a/src/plugins/coreplugin/coreimpl.cpp b/src/plugins/coreplugin/coreimpl.cpp index ba0ef7b59a..102cb5c21f 100644 --- a/src/plugins/coreplugin/coreimpl.cpp +++ b/src/plugins/coreplugin/coreimpl.cpp @@ -64,9 +64,9 @@ QStringList CoreImpl::showNewItemDialog(const QString &title, return m_mainwindow->showNewItemDialog(title, wizards, defaultLocation); } -void CoreImpl::showOptionsDialog(const QString &group, const QString &page) +bool CoreImpl::showOptionsDialog(const QString &group, const QString &page, QWidget *parent) { - m_mainwindow->showOptionsDialog(group, page); + return m_mainwindow->showOptionsDialog(group, page, parent); } ActionManager *CoreImpl::actionManager() const diff --git a/src/plugins/coreplugin/coreimpl.h b/src/plugins/coreplugin/coreimpl.h index e0db9a9466..f821a5af53 100644 --- a/src/plugins/coreplugin/coreimpl.h +++ b/src/plugins/coreplugin/coreimpl.h @@ -47,8 +47,9 @@ public: QStringList showNewItemDialog(const QString &title, const QList<IWizard *> &wizards, const QString &defaultLocation = QString()); - void showOptionsDialog(const QString &group = QString(), - const QString &page = QString()); + bool showOptionsDialog(const QString &group = QString(), + const QString &page = QString(), + QWidget *parent = 0); ActionManager *actionManager() const; FileManager *fileManager() const ; diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h index 7b0e651488..35c4b6b4f4 100644 --- a/src/plugins/coreplugin/dialogs/ioptionspage.h +++ b/src/plugins/coreplugin/dialogs/ioptionspage.h @@ -38,6 +38,21 @@ namespace Core { +/*! + \class Core::IOptionsPage + \brief The IOptionsPage is an interface for providing options pages. + + Guidelines for implementing: + \list + \o id() is an id used for filtering when calling ICore:: showOptionsDialog() + \o trName() is the (translated) name for display. + \o category() is the category used for filtering when calling ICore:: showOptionsDialog() + \o trCategory() is the translated category + \o apply() is called to store the settings. It should detect if any changes have been + made and store those. + \endlist +*/ + class CORE_EXPORT IOptionsPage : public QObject { Q_OBJECT @@ -45,7 +60,8 @@ public: IOptionsPage(QObject *parent = 0) : QObject(parent) {} virtual ~IOptionsPage() {} - virtual QString name() const = 0; + virtual QString id() const = 0; + virtual QString trName() const = 0; virtual QString category() const = 0; virtual QString trCategory() const = 0; diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp index a04afbaf69..5e0cac944e 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp +++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp @@ -39,7 +39,7 @@ using namespace Core::Internal; SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory, const QString &initialPage) - : QDialog(parent) + : QDialog(parent), m_applied(false) { setupUi(this); buttonBox->button(QDialogButtonBox::Ok)->setDefault(true); @@ -60,7 +60,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory, int index = 0; foreach (IOptionsPage *page, pages) { QTreeWidgetItem *item = new QTreeWidgetItem; - item->setText(0, page->name()); + item->setText(0, page->trName()); item->setData(0, Qt::UserRole, index); QStringList categoriesId = page->category().split(QLatin1Char('|')); @@ -94,7 +94,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory, m_pages.append(page); stackedPages->addWidget(page->createPage(stackedPages)); - if (page->name() == initialPage && currentCategory == initialCategory) { + if (page->id() == initialPage && currentCategory == initialCategory) { stackedPages->setCurrentIndex(stackedPages->count()); pageTree->setCurrentItem(item); } @@ -123,6 +123,7 @@ void SettingsDialog::pageSelected(QTreeWidgetItem *) void SettingsDialog::accept() { + m_applied = true; foreach (IOptionsPage *page, m_pages) { page->apply(); page->finish(); @@ -141,4 +142,12 @@ void SettingsDialog::apply() { foreach (IOptionsPage *page, m_pages) page->apply(); + m_applied = true; +} + +bool SettingsDialog::execDialog() +{ + m_applied = false; + exec(); + return m_applied; } diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h index 3cd42863cc..36c7d8a1a6 100644 --- a/src/plugins/coreplugin/dialogs/settingsdialog.h +++ b/src/plugins/coreplugin/dialogs/settingsdialog.h @@ -49,6 +49,10 @@ public: const QString &initialPage = QString()); ~SettingsDialog(); + // Run the dialog and return true if 'Ok' was choosen or 'Apply' was invoked + // at least once + bool execDialog(); + private slots: void pageSelected(QTreeWidgetItem *cat); void accept(); @@ -57,6 +61,7 @@ private slots: private: QList<Core::IOptionsPage*> m_pages; + bool m_applied; }; } // namespace Internal diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp index 4a0f36cd2b..561b8b182d 100644 --- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp +++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp @@ -59,7 +59,13 @@ ShortcutSettings::~ShortcutSettings() } // IOptionsPage -QString ShortcutSettings::name() const + +QString ShortcutSettings::id() const +{ + return QLatin1String("Keyboard"); +} + +QString ShortcutSettings::trName() const { return tr("Keyboard"); } diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.h b/src/plugins/coreplugin/dialogs/shortcutsettings.h index 7935f58612..cb0a19c65f 100644 --- a/src/plugins/coreplugin/dialogs/shortcutsettings.h +++ b/src/plugins/coreplugin/dialogs/shortcutsettings.h @@ -67,7 +67,8 @@ public: ~ShortcutSettings(); // IOptionsPage - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp index 864ed529fb..969599b2d8 100644 --- a/src/plugins/coreplugin/generalsettings.cpp +++ b/src/plugins/coreplugin/generalsettings.cpp @@ -43,7 +43,12 @@ GeneralSettings::GeneralSettings(): { } -QString GeneralSettings::name() const +QString GeneralSettings::id() const +{ + return QLatin1String("General"); +} + +QString GeneralSettings::trName() const { return tr("General"); } diff --git a/src/plugins/coreplugin/generalsettings.h b/src/plugins/coreplugin/generalsettings.h index 6aa8c24c23..9135df7f4a 100644 --- a/src/plugins/coreplugin/generalsettings.h +++ b/src/plugins/coreplugin/generalsettings.h @@ -47,7 +47,8 @@ class GeneralSettings : public IOptionsPage public: GeneralSettings(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; QWidget* createPage(QWidget *parent); diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h index fd75686c67..950222a15b 100644 --- a/src/plugins/coreplugin/icore.h +++ b/src/plugins/coreplugin/icore.h @@ -70,8 +70,9 @@ public: const QList<IWizard *> &wizards, const QString &defaultLocation = QString()) = 0; - virtual void showOptionsDialog(const QString &group = QString(), - const QString &page = QString()) = 0; + virtual bool showOptionsDialog(const QString &group = QString(), + const QString &page = QString(), + QWidget *parent = 0) = 0; virtual ActionManager *actionManager() const = 0; virtual FileManager *fileManager() const = 0; diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 822636d535..9c489e7b96 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -865,11 +865,15 @@ QStringList MainWindow::showNewItemDialog(const QString &title, return wizard->runWizard(defaultDir, this); } -void MainWindow::showOptionsDialog(const QString &category, const QString &page) +bool MainWindow::showOptionsDialog(const QString &category, + const QString &page, + QWidget *parent) { emit m_coreImpl->optionsDialogRequested(); - SettingsDialog dlg(this, category, page); - dlg.exec(); + if (!parent) + parent = this; + SettingsDialog dlg(parent, category, page); + return dlg.execDialog(); } void MainWindow::saveAll() diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h index 0c1e413715..ea237f53ba 100644 --- a/src/plugins/coreplugin/mainwindow.h +++ b/src/plugins/coreplugin/mainwindow.h @@ -132,7 +132,9 @@ public slots: const QList<IWizard *> &wizards, const QString &defaultLocation = QString()); - void showOptionsDialog(const QString &category = QString(), const QString &page = QString()); + bool showOptionsDialog(const QString &category = QString(), + const QString &page = QString(), + QWidget *parent = 0); protected: virtual void changeEvent(QEvent *e); diff --git a/src/plugins/cpaster/settingspage.cpp b/src/plugins/cpaster/settingspage.cpp index fb6a7a92d9..b4ad118d78 100644 --- a/src/plugins/cpaster/settingspage.cpp +++ b/src/plugins/cpaster/settingspage.cpp @@ -52,14 +52,19 @@ SettingsPage::SettingsPage() } } -QString SettingsPage::name() const +QString SettingsPage::id() const { - return "General"; + return QLatin1String("General"); +} + +QString SettingsPage::trName() const +{ + return tr("General"); } QString SettingsPage::category() const { - return "CodePaster"; + return QLatin1String("CodePaster"); } QString SettingsPage::trCategory() const diff --git a/src/plugins/cpaster/settingspage.h b/src/plugins/cpaster/settingspage.h index 3eef0dcbc4..88ad5c2590 100644 --- a/src/plugins/cpaster/settingspage.h +++ b/src/plugins/cpaster/settingspage.h @@ -50,7 +50,8 @@ class SettingsPage : public Core::IOptionsPage public: SettingsPage(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/cppeditor/cppclasswizard.cpp b/src/plugins/cppeditor/cppclasswizard.cpp index a5f21f859b..134bbeb822 100644 --- a/src/plugins/cppeditor/cppclasswizard.cpp +++ b/src/plugins/cppeditor/cppclasswizard.cpp @@ -30,6 +30,10 @@ #include "cppclasswizard.h" #include "cppeditorconstants.h" +#include <cpptools/cpptoolsconstants.h> +#include <coreplugin/icore.h> +#include <coreplugin/mimedatabase.h> + #include <utils/codegeneration.h> #include <utils/newclasswidget.h> #include <utils/qtcassert.h> @@ -37,19 +41,21 @@ #include <QtCore/QDebug> #include <QtCore/QDir> #include <QtCore/QTextStream> +#include <QtCore/QSettings> #include <QtGui/QVBoxLayout> +#include <QtGui/QHBoxLayout> +#include <QtGui/QPushButton> +#include <QtGui/QToolButton> +#include <QtGui/QSpacerItem> #include <QtGui/QWizard> using namespace CppEditor; using namespace CppEditor::Internal; - // ========= ClassNamePage ========= -ClassNamePage::ClassNamePage(const QString &sourceSuffix, - const QString &headerSuffix, - QWidget *parent) : +ClassNamePage::ClassNamePage(QWidget *parent) : QWizardPage(parent), m_isValid(false) { @@ -58,8 +64,6 @@ ClassNamePage::ClassNamePage(const QString &sourceSuffix, m_newClassWidget = new Core::Utils::NewClassWidget; // Order, set extensions first before suggested name is derived - m_newClassWidget->setHeaderExtension(headerSuffix); - m_newClassWidget->setSourceExtension(sourceSuffix); m_newClassWidget->setBaseClassInputVisible(true); m_newClassWidget->setBaseClassChoices(QStringList() << QString() << QLatin1String("QObject") @@ -70,11 +74,50 @@ ClassNamePage::ClassNamePage(const QString &sourceSuffix, m_newClassWidget->setNamespacesEnabled(true); m_newClassWidget->setAllowDirectories(true); - connect(m_newClassWidget, SIGNAL(validChanged()), - this, SLOT(slotValidChanged())); + connect(m_newClassWidget, SIGNAL(validChanged()), this, SLOT(slotValidChanged())); - QVBoxLayout *pageLayout = new QVBoxLayout(this); + QVBoxLayout *pageLayout = new QVBoxLayout(this); pageLayout->addWidget(m_newClassWidget); + QSpacerItem *vSpacer = new QSpacerItem(0, 0, QSizePolicy::Ignored, QSizePolicy::Expanding); + pageLayout->addItem(vSpacer); + QHBoxLayout *buttonLayout = new QHBoxLayout; + pageLayout->addLayout(buttonLayout); + QSpacerItem *hSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored); + buttonLayout->addItem(hSpacer); + QToolButton *settingsButton = new QToolButton; + settingsButton->setText(tr("Configure...")); + connect(settingsButton, SIGNAL(clicked()), this, SLOT(slotSettings())); + buttonLayout->addWidget(settingsButton); + initParameters(); +} + +// Retrieve settings of CppTools plugin. +static inline bool lowerCaseFiles(const Core::ICore *core) +{ + QString camelCaseSettingsKey = QLatin1String(CppTools::Constants::CPPTOOLS_SETTINGSGROUP); + camelCaseSettingsKey += QLatin1Char('/'); + camelCaseSettingsKey += QLatin1String(CppTools::Constants::LOWERCASE_CPPFILES_KEY); + return core->settings()->value(camelCaseSettingsKey, QVariant(false)).toBool(); +} + +// Set up new class widget from settings +void ClassNamePage::initParameters() +{ + Core::ICore *core = Core::ICore::instance(); + const Core::MimeDatabase *mdb = core->mimeDatabase(); + m_newClassWidget->setHeaderExtension(mdb->preferredSuffixByType(QLatin1String(Constants::CPP_HEADER_MIMETYPE))); + m_newClassWidget->setSourceExtension(mdb->preferredSuffixByType(QLatin1String(Constants::CPP_SOURCE_MIMETYPE))); + m_newClassWidget->setLowerCaseFiles(lowerCaseFiles(core)); +} + +void ClassNamePage::slotSettings() +{ + const QString id = QLatin1String(CppTools::Constants::CPP_SETTINGS_ID); + const QString cat = QLatin1String(CppTools::Constants::CPP_SETTINGS_CATEGORY); + if (Core::ICore::instance()->showOptionsDialog(cat, id, this)) { + initParameters(); + m_newClassWidget->triggerUpdateFileNames(); + } } void ClassNamePage::slotValidChanged() @@ -86,11 +129,9 @@ void ClassNamePage::slotValidChanged() } } -CppClassWizardDialog::CppClassWizardDialog(const QString &sourceSuffix, - const QString &headerSuffix, - QWidget *parent) : +CppClassWizardDialog::CppClassWizardDialog(QWidget *parent) : QWizard(parent), - m_classNamePage(new ClassNamePage(sourceSuffix, headerSuffix, this)) + m_classNamePage(new ClassNamePage(this)) { Core::BaseFileWizard::setupWizard(this); setWindowTitle(tr("C++ Class Wizard")); @@ -136,7 +177,7 @@ QWizard *CppClassWizard::createWizardDialog(QWidget *parent, const QString &defaultPath, const WizardPageList &extensionPages) const { - CppClassWizardDialog *wizard = new CppClassWizardDialog(sourceSuffix(), headerSuffix(), parent); + CppClassWizardDialog *wizard = new CppClassWizardDialog(parent); foreach (QWizardPage *p, extensionPages) wizard->addPage(p); wizard->setPath(defaultPath); diff --git a/src/plugins/cppeditor/cppclasswizard.h b/src/plugins/cppeditor/cppclasswizard.h index 0c36de7e78..0ad4d7fcd4 100644 --- a/src/plugins/cppeditor/cppclasswizard.h +++ b/src/plugins/cppeditor/cppclasswizard.h @@ -52,17 +52,18 @@ class ClassNamePage : public QWizardPage Q_OBJECT public: - ClassNamePage(const QString &sourceSuffix, - const QString &headerSuffix, - QWidget *parent = 0); + explicit ClassNamePage(QWidget *parent = 0); bool isComplete() const { return m_isValid; } Core::Utils::NewClassWidget *newClassWidget() const { return m_newClassWidget; } private slots: void slotValidChanged(); + void slotSettings(); private: + void initParameters(); + Core::Utils::NewClassWidget *m_newClassWidget; bool m_isValid; }; @@ -82,9 +83,7 @@ class CppClassWizardDialog : public QWizard Q_OBJECT Q_DISABLE_COPY(CppClassWizardDialog) public: - explicit CppClassWizardDialog(const QString &sourceSuffix, - const QString &headerSuffix, - QWidget *parent = 0); + explicit CppClassWizardDialog(QWidget *parent = 0); void setPath(const QString &path); CppClassWizardParameters parameters() const; diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp index cb6ef53f63..29ad673145 100644 --- a/src/plugins/cppeditor/cppplugin.cpp +++ b/src/plugins/cppeditor/cppplugin.cpp @@ -56,9 +56,6 @@ #include <QtGui/QMenu> #include <QtGui/QAction> -static const char *headerSuffixKeyC = "CppEditor/HeaderSuffix"; -static const char *sourceSuffixKeyC = "CppEditor/SourceSuffix"; - using namespace CppEditor::Internal; //////////////////////////// CppEditorFactory ///////////////////////////// @@ -197,18 +194,6 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess | TextEditor::TextEditorActionHandler::UnCommentSelection | TextEditor::TextEditorActionHandler::UnCollapseAll); - // Check Suffixes - if (const QSettings *settings = core->settings()) { - const QString headerSuffixKey = QLatin1String(headerSuffixKeyC); - if (settings->contains(headerSuffixKey)) { - const QString headerSuffix = settings->value(headerSuffixKey, QString()).toString(); - if (!headerSuffix.isEmpty()) - core->mimeDatabase()->setPreferredSuffix(QLatin1String(Constants::CPP_HEADER_MIMETYPE), headerSuffix); - const QString sourceSuffix = settings->value(QLatin1String(sourceSuffixKeyC), QString()).toString(); - if (!sourceSuffix.isEmpty()) - core->mimeDatabase()->setPreferredSuffix(QLatin1String(Constants::CPP_SOURCE_MIMETYPE), sourceSuffix); - } - } return true; } diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp index 43945ca67d..02638875ba 100644 --- a/src/plugins/cpptools/completionsettingspage.cpp +++ b/src/plugins/cpptools/completionsettingspage.cpp @@ -47,7 +47,12 @@ CompletionSettingsPage::~CompletionSettingsPage() delete m_page; } -QString CompletionSettingsPage::name() const +QString CompletionSettingsPage::id() const +{ + return QLatin1String("Completion"); +} + +QString CompletionSettingsPage::trName() const { return tr("Completion"); } diff --git a/src/plugins/cpptools/completionsettingspage.h b/src/plugins/cpptools/completionsettingspage.h index 39385e3023..48c16a729d 100644 --- a/src/plugins/cpptools/completionsettingspage.h +++ b/src/plugins/cpptools/completionsettingspage.h @@ -47,7 +47,8 @@ public: CompletionSettingsPage(CppCodeCompletion *completion); ~CompletionSettingsPage(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp new file mode 100644 index 0000000000..a5bd11ac5d --- /dev/null +++ b/src/plugins/cpptools/cppfilesettingspage.cpp @@ -0,0 +1,184 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** Commercial Usage +** +** 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. +** +** GNU Lesser General Public License Usage +** +** 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** +**************************************************************************/ + +#include "cppfilesettingspage.h" +#include "cpptoolsconstants.h" +#include "ui_cppfilesettingspage.h" + +#include <coreplugin/icore.h> +#include <coreplugin/mimedatabase.h> +#include <extensionsystem/pluginmanager.h> + +#include <QtCore/QSettings> +#include <QtCore/QDebug> +#include <QtCore/QCoreApplication> + +static const char *headerSuffixKeyC = "HeaderSuffix"; +static const char *sourceSuffixKeyC = "SourceSuffix"; + +namespace CppTools { +namespace Internal { + +CppFileSettings::CppFileSettings() : + lowerCaseFiles(false) +{ +} + +void CppFileSettings::toSettings(QSettings *s) const +{ + s->beginGroup(QLatin1String(Constants::CPPTOOLS_SETTINGSGROUP)); + s->setValue(QLatin1String(headerSuffixKeyC), headerSuffix); + s->setValue(QLatin1String(sourceSuffixKeyC), sourceSuffix); + s->setValue(QLatin1String(Constants::LOWERCASE_CPPFILES_KEY), lowerCaseFiles); + s->endGroup(); +} + +void CppFileSettings::fromSettings(QSettings *s) +{ + s->beginGroup(QLatin1String(Constants::CPPTOOLS_SETTINGSGROUP)); + headerSuffix= s->value(QLatin1String(headerSuffixKeyC), QLatin1String("h")).toString(); + sourceSuffix = s->value(QLatin1String(sourceSuffixKeyC), QLatin1String("cpp")).toString(); + lowerCaseFiles = s->value(QLatin1String(Constants::LOWERCASE_CPPFILES_KEY), QVariant(true)).toBool(); + s->endGroup(); +} + +void CppFileSettings::applySuffixesToMimeDB() +{ + Core::MimeDatabase *mdb = Core::ICore::instance()->mimeDatabase(); + mdb->setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE), sourceSuffix); + mdb->setPreferredSuffix(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE), headerSuffix); +} + +bool CppFileSettings::equals(const CppFileSettings &rhs) const +{ + return lowerCaseFiles == rhs.lowerCaseFiles + && headerSuffix == rhs.headerSuffix + && sourceSuffix == rhs.sourceSuffix; +} + +// ------------------ CppFileSettingsWidget + +CppFileSettingsWidget::CppFileSettingsWidget(QWidget *parent) : + QWidget(parent), + m_ui(new Ui::CppFileSettingsPage) +{ + m_ui->setupUi(this); + const Core::MimeDatabase *mdb = Core::ICore::instance()->mimeDatabase(); + // populate suffix combos + if (const Core::MimeType sourceMt = mdb->findByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE))) + foreach (const QString &suffix, sourceMt.suffixes()) + m_ui->sourceSuffixComboBox->addItem(suffix); + + if (const Core::MimeType headerMt = mdb->findByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE))) + foreach (const QString &suffix, headerMt.suffixes()) + m_ui->headerSuffixComboBox->addItem(suffix); +} + +CppFileSettingsWidget::~CppFileSettingsWidget() +{ + delete m_ui; +} + +CppFileSettings CppFileSettingsWidget::settings() const +{ + CppFileSettings rc; + rc.lowerCaseFiles = m_ui->lowerCaseFileNamesCheckBox->isChecked(); + rc.headerSuffix = m_ui->headerSuffixComboBox->currentText(); + rc.sourceSuffix = m_ui->sourceSuffixComboBox->currentText(); + return rc; +} + +static inline void setComboText(QComboBox *cb, const QString &text, int defaultIndex = 0) +{ + const int index = cb->findText(text); + cb->setCurrentIndex(index == -1 ? defaultIndex: index); +} + +void CppFileSettingsWidget::setSettings(const CppFileSettings &s) +{ + m_ui->lowerCaseFileNamesCheckBox->setChecked(s.lowerCaseFiles); + setComboText(m_ui->headerSuffixComboBox, s.headerSuffix); + setComboText(m_ui->sourceSuffixComboBox, s.sourceSuffix); +} + +// --------------- CppFileSettingsPage +CppFileSettingsPage::CppFileSettingsPage(QObject *parent) : + Core::IOptionsPage(parent) +{ + m_settings.fromSettings(Core::ICore::instance()->settings()); + m_settings.applySuffixesToMimeDB(); +} + +CppFileSettingsPage::~CppFileSettingsPage() +{ +} + +QString CppFileSettingsPage::id() const +{ + return QLatin1String(Constants::CPP_SETTINGS_ID); +} + +QString CppFileSettingsPage::trName() const +{ + return QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_ID); +} + +QString CppFileSettingsPage::category() const +{ + return QLatin1String(Constants::CPP_SETTINGS_CATEGORY); +} + +QString CppFileSettingsPage::trCategory() const +{ + return QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_CATEGORY); +} + +QWidget *CppFileSettingsPage::createPage(QWidget *parent) +{ + + m_widget = new CppFileSettingsWidget(parent); + m_widget->setSettings(m_settings); + return m_widget; +} + +void CppFileSettingsPage::apply() +{ + if (m_widget) { + const CppFileSettings newSettings = m_widget->settings(); + if (newSettings != m_settings) { + m_settings = newSettings; + m_settings.toSettings(Core::ICore::instance()->settings()); + m_settings.applySuffixesToMimeDB(); + } + } +} + +} +} + diff --git a/src/plugins/cpptools/cppfilesettingspage.h b/src/plugins/cpptools/cppfilesettingspage.h new file mode 100644 index 0000000000..53abb7788a --- /dev/null +++ b/src/plugins/cpptools/cppfilesettingspage.h @@ -0,0 +1,100 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** Commercial Usage +** +** 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. +** +** GNU Lesser General Public License Usage +** +** 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. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at qt-sales@nokia.com. +** +**************************************************************************/ + +#ifndef CPPSETTINGSPAGE_H +#define CPPSETTINGSPAGE_H + +#include <coreplugin/dialogs/ioptionspage.h> +#include <QtCore/QPointer> +#include <QtGui/QWidget> + +QT_BEGIN_NAMESPACE +namespace Ui { + class CppFileSettingsPage; +} +class QSettings; +QT_END_NAMESPACE + +namespace CppTools { +namespace Internal { + +struct CppFileSettings { + CppFileSettings(); + + QString headerSuffix; + QString sourceSuffix; + bool lowerCaseFiles; + + void toSettings(QSettings *) const; + void fromSettings(QSettings *); + void applySuffixesToMimeDB(); + + bool equals(const CppFileSettings &rhs) const; +}; + +inline bool operator==(const CppFileSettings &s1, const CppFileSettings &s2) { return s1.equals(s2); } +inline bool operator!=(const CppFileSettings &s1, const CppFileSettings &s2) { return !s1.equals(s2); } + +class CppFileSettingsWidget : public QWidget { + Q_OBJECT +public: + explicit CppFileSettingsWidget(QWidget *parent = 0); + virtual ~CppFileSettingsWidget(); + + CppFileSettings settings() const; + void setSettings(const CppFileSettings &s); + +private: + Ui::CppFileSettingsPage *m_ui; +}; + +class CppFileSettingsPage : public Core::IOptionsPage +{ +public: + explicit CppFileSettingsPage(QObject *parent = 0); + virtual ~CppFileSettingsPage(); + + virtual QString id() const; + virtual QString trName() const; + virtual QString category() const; + virtual QString trCategory() const; + + virtual QWidget *createPage(QWidget *parent); + virtual void apply(); + virtual void finish() { } + +private: + QPointer<CppFileSettingsWidget> m_widget; + CppFileSettings m_settings; +}; + +} // namespace Internal +} // namespace CppTools + +#endif // CPPSETTINGSPAGE_H diff --git a/src/plugins/cpptools/cppfilesettingspage.ui b/src/plugins/cpptools/cppfilesettingspage.ui new file mode 100644 index 0000000000..f5005ecacb --- /dev/null +++ b/src/plugins/cpptools/cppfilesettingspage.ui @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>CppFileSettingsPage</class> + <widget class="QWidget" name="CppFileSettingsPage"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>424</width> + <height>503</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <item> + <layout class="QFormLayout" name="formLayout"> + <property name="fieldGrowthPolicy"> + <enum>QFormLayout::ExpandingFieldsGrow</enum> + </property> + <item row="0" column="0"> + <widget class="QLabel" name="headerSuffixLabel"> + <property name="text"> + <string>Header suffix:</string> + </property> + </widget> + </item> + <item row="0" column="1"> + <widget class="QComboBox" name="headerSuffixComboBox"/> + </item> + <item row="2" column="0"> + <widget class="QLabel" name="lowerCaseFileNamesLabel"> + <property name="toolTip"> + <string>This determines how the file names of the class wizards are generated ("MyClass.h" versus "myclass.h").</string> + </property> + <property name="text"> + <string>Lower case file names:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QCheckBox" name="lowerCaseFileNamesCheckBox"/> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="sourceSuffixLabel"> + <property name="text"> + <string>Source suffix:</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QComboBox" name="sourceSuffixComboBox"/> + </item> + </layout> + </item> + <item> + <spacer name="horizontalSpacer"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>40</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>430</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/src/plugins/cpptools/cpptools.pro b/src/plugins/cpptools/cpptools.pro index 21298bef07..2094a0edf6 100644 --- a/src/plugins/cpptools/cpptools.pro +++ b/src/plugins/cpptools/cpptools.pro @@ -20,7 +20,8 @@ HEADERS += completionsettingspage.h \ cpptoolseditorsupport.h \ cpptoolsplugin.h \ searchsymbols.h \ - cppdoxygen.h + cppdoxygen.h \ + cppfilesettingspage.h SOURCES += completionsettingspage.cpp \ cppclassesfilter.cpp \ @@ -31,6 +32,8 @@ SOURCES += completionsettingspage.cpp \ cpptoolseditorsupport.cpp \ cpptoolsplugin.cpp \ searchsymbols.cpp \ - cppdoxygen.cpp + cppdoxygen.cpp \ + cppfilesettingspage.cpp -FORMS += completionsettingspage.ui +FORMS += completionsettingspage.ui \ + cppfilesettingspage.ui diff --git a/src/plugins/cpptools/cpptoolsconstants.h b/src/plugins/cpptools/cpptoolsconstants.h index 0696db4176..ef04db2c44 100644 --- a/src/plugins/cpptools/cpptoolsconstants.h +++ b/src/plugins/cpptools/cpptoolsconstants.h @@ -30,6 +30,8 @@ #ifndef CPPTOOLSCONSTANTS_H #define CPPTOOLSCONSTANTS_H +#include <QtCore/QtGlobal> + namespace CppTools { namespace Constants { @@ -41,6 +43,13 @@ const char * const C_HEADER_MIMETYPE = "text/x-chdr"; const char * const CPP_SOURCE_MIMETYPE = "text/x-c++src"; const char * const CPP_HEADER_MIMETYPE = "text/x-c++hdr"; +// QSettings keys for use by the "New Class" wizards. +const char * const CPPTOOLS_SETTINGSGROUP = "CppTools"; +const char * const LOWERCASE_CPPFILES_KEY = "LowerCaseFiles"; + +const char * const CPP_SETTINGS_ID = QT_TRANSLATE_NOOP("CppTools", "File naming conventions"); +const char * const CPP_SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("CppTools", "C++"); + } // namespace Constants } // namespace CppTools diff --git a/src/plugins/cpptools/cpptoolsplugin.cpp b/src/plugins/cpptools/cpptoolsplugin.cpp index 3ca1db8809..301935530d 100644 --- a/src/plugins/cpptools/cpptoolsplugin.cpp +++ b/src/plugins/cpptools/cpptoolsplugin.cpp @@ -30,6 +30,7 @@ #include "cpptoolsplugin.h" #include "completionsettingspage.h" +#include "cppfilesettingspage.h" #include "cppclassesfilter.h" #include "cppcodecompletion.h" #include "cppfunctionsfilter.h" @@ -90,6 +91,7 @@ bool CppToolsPlugin::initialize(const QStringList &arguments, QString *error) addAutoReleasedObject(new CppClassesFilter(m_modelManager, core->editorManager())); addAutoReleasedObject(new CppFunctionsFilter(m_modelManager, core->editorManager())); addAutoReleasedObject(new CompletionSettingsPage(m_completion)); + addAutoReleasedObject(new CppFileSettingsPage); // Menus Core::ActionContainer *mtools = am->actionContainer(Core::Constants::M_TOOLS); diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index a837993124..c0ca6eda1d 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -244,8 +244,9 @@ public: GdbOptionPage(DebuggerPlugin *plugin) : m_plugin(plugin) {} // IOptionsPage - QString name() const { return tr("Gdb"); } - QString category() const { return "Debugger"; } + QString id() const { return QLatin1String("Gdb"); } + QString trName() const { return tr("Gdb"); } + QString category() const { return QLatin1String("Debugger"); } QString trCategory() const { return tr("Debugger"); } QWidget *createPage(QWidget *parent); diff --git a/src/plugins/designer/cpp/formclasswizard.cpp b/src/plugins/designer/cpp/formclasswizard.cpp index 921ad03034..f6346b63d2 100644 --- a/src/plugins/designer/cpp/formclasswizard.cpp +++ b/src/plugins/designer/cpp/formclasswizard.cpp @@ -34,10 +34,12 @@ #include <coreplugin/icore.h> #include <cppeditor/cppeditorconstants.h> +#include <cpptools/cpptoolsconstants.h> #include <QtCore/QFile> #include <QtCore/QDir> #include <QtCore/QDebug> +#include <QtCore/QSettings> using namespace Designer; using namespace Designer::Internal; @@ -62,13 +64,21 @@ QString FormClassWizard::formSuffix() const return preferredSuffix(QLatin1String(Constants::FORM_MIMETYPE)); } +// Retrieve settings of CppTools plugin. +static inline bool lowerCaseFiles() +{ + QString camelCaseSettingsKey = QLatin1String(CppTools::Constants::CPPTOOLS_SETTINGSGROUP); + camelCaseSettingsKey += QLatin1Char('/'); + camelCaseSettingsKey += QLatin1String(CppTools::Constants::LOWERCASE_CPPFILES_KEY); + return Core::ICore::instance()->settings()->value(camelCaseSettingsKey, QVariant(false)).toBool(); +} + QWizard *FormClassWizard::createWizardDialog(QWidget *parent, const QString &defaultPath, const WizardPageList &extensionPages) const { FormClassWizardDialog *wizardDialog = new FormClassWizardDialog(extensionPages, parent); - wizardDialog->setSuffixes(headerSuffix(), sourceSuffix(), formSuffix()); wizardDialog->setPath(defaultPath); return wizardDialog; } diff --git a/src/plugins/designer/cpp/formclasswizarddialog.cpp b/src/plugins/designer/cpp/formclasswizarddialog.cpp index a4eb0769db..2bec6a7982 100644 --- a/src/plugins/designer/cpp/formclasswizarddialog.cpp +++ b/src/plugins/designer/cpp/formclasswizarddialog.cpp @@ -63,11 +63,6 @@ FormClassWizardDialog::FormClassWizardDialog(const WizardPageList &extensionPage connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(slotCurrentIdChanged(int))); } -void FormClassWizardDialog::setSuffixes(const QString &header, const QString &source, const QString &form) -{ - m_classPage->setSuffixes(header, source, form); -} - QString FormClassWizardDialog::path() const { return m_classPage->path(); diff --git a/src/plugins/designer/cpp/formclasswizarddialog.h b/src/plugins/designer/cpp/formclasswizarddialog.h index 4164e13a71..18d354ee15 100644 --- a/src/plugins/designer/cpp/formclasswizarddialog.h +++ b/src/plugins/designer/cpp/formclasswizarddialog.h @@ -54,8 +54,6 @@ public: explicit FormClassWizardDialog(const WizardPageList &extensionPages, QWidget *parent = 0); - void setSuffixes(const QString &header, const QString &source, const QString &form); - QString path() const; FormClassWizardParameters parameters() const; diff --git a/src/plugins/designer/cpp/formclasswizardpage.cpp b/src/plugins/designer/cpp/formclasswizardpage.cpp index bb32d2f1d5..0b7f4c2499 100644 --- a/src/plugins/designer/cpp/formclasswizardpage.cpp +++ b/src/plugins/designer/cpp/formclasswizardpage.cpp @@ -32,7 +32,9 @@ #include "formclasswizardparameters.h" #include <coreplugin/icore.h> +#include <coreplugin/mimedatabase.h> #include <cppeditor/cppeditorconstants.h> +#include <cpptools/cpptoolsconstants.h> #include <QtCore/QDebug> #include <QtCore/QDir> @@ -66,6 +68,8 @@ FormClassWizardPage::FormClassWizardPage(QWidget * parent) : m_ui->extensionWidget->setVisible(false); connect(m_ui->moreButton, SIGNAL(clicked(bool)), m_ui->extensionWidget, SLOT(setVisible(bool))); + connect(m_ui->settingsToolButton, SIGNAL(clicked()), this, SLOT(slotSettings())); + restoreSettings(); } @@ -74,11 +78,33 @@ FormClassWizardPage::~FormClassWizardPage() delete m_ui; } -void FormClassWizardPage::setSuffixes(const QString &header, const QString &source, const QString &form) +// Retrieve settings of CppTools plugin. +static inline bool lowerCaseFiles(const Core::ICore *core) { - m_ui->newClassWidget->setSourceExtension(source); - m_ui->newClassWidget->setHeaderExtension(header); - m_ui->newClassWidget->setFormExtension(form); + QString camelCaseSettingsKey = QLatin1String(CppTools::Constants::CPPTOOLS_SETTINGSGROUP); + camelCaseSettingsKey += QLatin1Char('/'); + camelCaseSettingsKey += QLatin1String(CppTools::Constants::LOWERCASE_CPPFILES_KEY); + return core->settings()->value(camelCaseSettingsKey, QVariant(false)).toBool(); +} + +// Set up new class widget from settings +void FormClassWizardPage::initParameters() +{ + Core::ICore *core = Core::ICore::instance(); + const Core::MimeDatabase *mdb = core->mimeDatabase(); + m_ui->newClassWidget->setHeaderExtension(mdb->preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE))); + m_ui->newClassWidget->setSourceExtension(mdb->preferredSuffixByType(QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE))); + m_ui->newClassWidget->setLowerCaseFiles(lowerCaseFiles(core)); +} + +void FormClassWizardPage::slotSettings() +{ + const QString id = QLatin1String(CppTools::Constants::CPP_SETTINGS_ID); + const QString cat = QLatin1String(CppTools::Constants::CPP_SETTINGS_CATEGORY); + if (Core::ICore::instance()->showOptionsDialog(cat, id, this)) { + initParameters(); + m_ui->newClassWidget->triggerUpdateFileNames(); + } } void FormClassWizardPage::setClassName(const QString &suggestedClassName) diff --git a/src/plugins/designer/cpp/formclasswizardpage.h b/src/plugins/designer/cpp/formclasswizardpage.h index 68c2cd45bf..b777c5e1cd 100644 --- a/src/plugins/designer/cpp/formclasswizardpage.h +++ b/src/plugins/designer/cpp/formclasswizardpage.h @@ -49,8 +49,6 @@ public: explicit FormClassWizardPage(QWidget * parent = 0); ~FormClassWizardPage(); - void setSuffixes(const QString &header, const QString &source, const QString &form); - virtual bool isComplete () const; virtual bool validatePage(); @@ -59,18 +57,20 @@ public: QString path() const; // Fill out applicable parameters - void getParameters(FormClassWizardParameters *) const; + void getParameters(FormClassWizardParameters *) const; public slots: void setClassName(const QString &suggestedClassName); void setPath(const QString &); void setRetranslationSupport(bool); void setUiClassEmbedding(int v); + void slotSettings(); private slots: void slotValidChanged(); private: + void initParameters(); void saveSettings(); void restoreSettings(); diff --git a/src/plugins/designer/cpp/formclasswizardpage.ui b/src/plugins/designer/cpp/formclasswizardpage.ui index 236e2059ca..5b739be4f8 100644 --- a/src/plugins/designer/cpp/formclasswizardpage.ui +++ b/src/plugins/designer/cpp/formclasswizardpage.ui @@ -42,6 +42,13 @@ </spacer> </item> <item> + <widget class="QToolButton" name="settingsToolButton"> + <property name="text"> + <string>Configure...</string> + </property> + </widget> + </item> + <item> <widget class="QToolButton" name="moreButton"> <property name="text"> <string>More</string> diff --git a/src/plugins/designer/settingspage.cpp b/src/plugins/designer/settingspage.cpp index 6328fca31f..16f9afa94e 100644 --- a/src/plugins/designer/settingspage.cpp +++ b/src/plugins/designer/settingspage.cpp @@ -43,7 +43,12 @@ SettingsPage::~SettingsPage() { } -QString SettingsPage::name() const +QString SettingsPage::id() const +{ + return m_designerPage->name(); +} + +QString SettingsPage::trName() const { return m_designerPage->name(); } diff --git a/src/plugins/designer/settingspage.h b/src/plugins/designer/settingspage.h index 04627adf6b..1761baadfd 100644 --- a/src/plugins/designer/settingspage.h +++ b/src/plugins/designer/settingspage.h @@ -49,7 +49,8 @@ public: explicit SettingsPage(QDesignerOptionsPageInterface *designerPage); virtual ~SettingsPage(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp index 8404cc55d5..cc6d06d9b5 100644 --- a/src/plugins/git/settingspage.cpp +++ b/src/plugins/git/settingspage.cpp @@ -31,6 +31,9 @@ #include "gitsettings.h" #include "gitplugin.h" +#include <vcsbase/vcsbaseconstants.h> + +#include <QtCore/QCoreApplication> #include <QtCore/QDebug> #include <QtGui/QMessageBox> @@ -72,19 +75,24 @@ SettingsPage::SettingsPage() { } -QString SettingsPage::name() const +QString SettingsPage::id() const +{ + return QLatin1String("Git"); +} + +QString SettingsPage::trName() const { - return tr("General"); + return tr("Git"); } QString SettingsPage::category() const { - return QLatin1String("Git"); + return QLatin1String(VCSBase::Constants::VCS_SETTINGS_CATEGORY); } QString SettingsPage::trCategory() const { - return tr("Git"); + return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY); } QWidget *SettingsPage::createPage(QWidget *parent) diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h index 69e6bfb534..ec247d8a89 100644 --- a/src/plugins/git/settingspage.h +++ b/src/plugins/git/settingspage.h @@ -68,7 +68,8 @@ class SettingsPage : public Core::IOptionsPage public: SettingsPage(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp index 46e0e0ab12..6f50fc9a76 100644 --- a/src/plugins/help/docsettingspage.cpp +++ b/src/plugins/help/docsettingspage.cpp @@ -41,14 +41,20 @@ DocSettingsPage::DocSettingsPage(QHelpEngine *helpEngine) { } -QString DocSettingsPage::name() const +QString DocSettingsPage::id() const { - return "Documentation"; + return QLatin1String("Documentation"); } +QString DocSettingsPage::trName() const +{ + return tr("Documentation"); +} + + QString DocSettingsPage::category() const { - return "Help"; + return QLatin1String("Help"); } QString DocSettingsPage::trCategory() const diff --git a/src/plugins/help/docsettingspage.h b/src/plugins/help/docsettingspage.h index 3071543a83..83d6fc38c6 100644 --- a/src/plugins/help/docsettingspage.h +++ b/src/plugins/help/docsettingspage.h @@ -48,7 +48,8 @@ class DocSettingsPage : public Core::IOptionsPage public: DocSettingsPage(QHelpEngine *helpEngine); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp index 1aaa8381d7..9c0252a852 100644 --- a/src/plugins/help/filtersettingspage.cpp +++ b/src/plugins/help/filtersettingspage.cpp @@ -36,19 +36,24 @@ using namespace Help::Internal; -FilterSettingsPage::FilterSettingsPage(QHelpEngine *helpEngine) +FilterSettingsPage::FilterSettingsPage(QHelpEngine *helpEngine) : + m_helpEngine(helpEngine) { - m_helpEngine = helpEngine; } -QString FilterSettingsPage::name() const +QString FilterSettingsPage::id() const { - return "Filters"; + return QLatin1String("Filters"); +} + +QString FilterSettingsPage::trName() const +{ + return tr("Filters"); } QString FilterSettingsPage::category() const { - return "Help"; + return QLatin1String("Help"); } QString FilterSettingsPage::trCategory() const diff --git a/src/plugins/help/filtersettingspage.h b/src/plugins/help/filtersettingspage.h index e00de74361..f07a81c0b2 100644 --- a/src/plugins/help/filtersettingspage.h +++ b/src/plugins/help/filtersettingspage.h @@ -47,7 +47,8 @@ class FilterSettingsPage : public Core::IOptionsPage public: FilterSettingsPage(QHelpEngine *helpEngine); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp index c6a7ddfb19..1672186e9b 100644 --- a/src/plugins/perforce/settingspage.cpp +++ b/src/plugins/perforce/settingspage.cpp @@ -31,6 +31,9 @@ #include "perforcesettings.h" #include "perforceplugin.h" +#include <vcsbase/vcsbaseconstants.h> + +#include <QtCore/QCoreApplication> #include <QtGui/QLineEdit> #include <QtGui/QFileDialog> @@ -83,19 +86,24 @@ SettingsPage::SettingsPage() { } -QString SettingsPage::name() const +QString SettingsPage::id() const +{ + return QLatin1String("Perforce"); +} + +QString SettingsPage::trName() const { - return tr("General"); + return tr("Perforce"); } QString SettingsPage::category() const { - return QLatin1String("Perforce"); + return QLatin1String(VCSBase::Constants::VCS_SETTINGS_CATEGORY); } QString SettingsPage::trCategory() const { - return tr("Perforce"); + return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY); } QWidget *SettingsPage::createPage(QWidget *parent) diff --git a/src/plugins/perforce/settingspage.h b/src/plugins/perforce/settingspage.h index 87b43784f0..0123b2d935 100644 --- a/src/plugins/perforce/settingspage.h +++ b/src/plugins/perforce/settingspage.h @@ -66,7 +66,8 @@ class SettingsPage : public Core::IOptionsPage public: SettingsPage(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index d974138ff4..013e7b1ca7 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -131,7 +131,12 @@ int QtVersionManager::getUniqueId() return m_idcount++; } -QString QtVersionManager::name() const +QString QtVersionManager::id() const +{ + return QLatin1String(Constants::QTVERSION_PAGE); +} + +QString QtVersionManager::trName() const { return tr(Constants::QTVERSION_PAGE); } diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index e56be598ef..63e2d30c42 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -161,7 +161,8 @@ public: QtVersionManager(); ~QtVersionManager(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/quickopen/quickopenconstants.h b/src/plugins/quickopen/quickopenconstants.h index c2172d0d7d..6b7bf6c8e6 100644 --- a/src/plugins/quickopen/quickopenconstants.h +++ b/src/plugins/quickopen/quickopenconstants.h @@ -30,11 +30,13 @@ #ifndef QUICKOPENCONSTANTS_H #define QUICKOPENCONSTANTS_H +#include <QtCore/QtGlobal> + namespace QuickOpen { namespace Constants { -const char * const FILTER_OPTIONS_PAGE = "Filters"; -const char * const QUICKOPEN_CATEGORY = "Locator"; +const char * const FILTER_OPTIONS_PAGE = QT_TRANSLATE_NOOP("Locator", "Filters"); +const char * const QUICKOPEN_CATEGORY = QT_TRANSLATE_NOOP("Locator", "Locator"); const char * const TASK_INDEX = "QuickOpen.Task.Index"; } // namespace Constants diff --git a/src/plugins/quickopen/quickopenplugin.cpp b/src/plugins/quickopen/quickopenplugin.cpp index 06cd9ca8d9..5ef84c3ea7 100644 --- a/src/plugins/quickopen/quickopenplugin.cpp +++ b/src/plugins/quickopen/quickopenplugin.cpp @@ -28,6 +28,7 @@ **************************************************************************/ #include "quickopenplugin.h" +#include "quickopenconstants.h" #include "quickopenfiltersfilter.h" #include "quickopenmanager.h" #include "quickopentoolwindow.h" @@ -243,7 +244,7 @@ void QuickOpenPlugin::refresh(QList<IQuickOpenFilter*> filters) filters = m_filters; QFuture<void> task = QtConcurrent::run(&IQuickOpenFilter::refresh, filters); Core::FutureProgress *progress = Core::ICore::instance() - ->progressManager()->addTask(task, tr("Indexing"), Constants::TASK_INDEX, Core::ProgressManager::CloseOnSuccess); + ->progressManager()->addTask(task, tr("Indexing"), QuickOpen::Constants::TASK_INDEX, Core::ProgressManager::CloseOnSuccess); connect(progress, SIGNAL(finished()), this, SLOT(saveSettings())); } diff --git a/src/plugins/quickopen/settingspage.cpp b/src/plugins/quickopen/settingspage.cpp index cac458390d..bd900e6bba 100644 --- a/src/plugins/quickopen/settingspage.cpp +++ b/src/plugins/quickopen/settingspage.cpp @@ -28,6 +28,7 @@ **************************************************************************/ #include "settingspage.h" +#include "quickopenconstants.h" #include "quickopenplugin.h" #include "iquickopenfilter.h" @@ -36,6 +37,8 @@ #include <qtconcurrent/QtConcurrentTools> #include <utils/qtcassert.h> +#include <QtCore/QCoreApplication> + Q_DECLARE_METATYPE(QuickOpen::IQuickOpenFilter*) using namespace QuickOpen; @@ -46,6 +49,26 @@ SettingsPage::SettingsPage(QuickOpenPlugin *plugin) { } +QString SettingsPage::id() const +{ + return QLatin1String(Constants::FILTER_OPTIONS_PAGE); +} + +QString SettingsPage::trName() const +{ + return QCoreApplication::translate("Locator", QuickOpen::Constants::FILTER_OPTIONS_PAGE); +} + +QString SettingsPage::category() const +{ + return Constants::QUICKOPEN_CATEGORY; +} + +QString SettingsPage::trCategory() const +{ + return QCoreApplication::translate("Locator", QuickOpen::Constants::QUICKOPEN_CATEGORY); +} + QWidget *SettingsPage::createPage(QWidget *parent) { if (!m_page) { diff --git a/src/plugins/quickopen/settingspage.h b/src/plugins/quickopen/settingspage.h index 4d7b840c59..6bb3a2984a 100644 --- a/src/plugins/quickopen/settingspage.h +++ b/src/plugins/quickopen/settingspage.h @@ -31,7 +31,6 @@ #define SETTINGSPAGE_H #include "ui_settingspage.h" -#include "quickopenconstants.h" #include <QtCore/QPointer> #include <QtCore/QHash> @@ -56,9 +55,10 @@ class SettingsPage : public Core::IOptionsPage public: explicit SettingsPage(QuickOpenPlugin *plugin); - QString name() const { return tr(Constants::FILTER_OPTIONS_PAGE); } - QString category() const { return Constants::QUICKOPEN_CATEGORY; } - QString trCategory() const { return tr(Constants::QUICKOPEN_CATEGORY); } + QString id() const; + QString trName() const; + QString category() const; + QString trCategory() const; QWidget *createPage(QWidget *parent); void apply(); diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp index d8a164736a..e06560fedd 100644 --- a/src/plugins/subversion/settingspage.cpp +++ b/src/plugins/subversion/settingspage.cpp @@ -33,14 +33,15 @@ #include <coreplugin/icore.h> #include <extensionsystem/pluginmanager.h> +#include <vcsbase/vcsbaseconstants.h> +#include <utils/pathchooser.h> +#include <QtCore/QCoreApplication> #include <QtGui/QFileDialog> -#include <utils/pathchooser.h> using namespace Subversion::Internal; using namespace Core::Utils; - SettingsPageWidget::SettingsPageWidget(QWidget *parent) : QWidget(parent) { @@ -73,19 +74,24 @@ SettingsPage::SettingsPage() { } -QString SettingsPage::name() const +QString SettingsPage::id() const +{ + return QLatin1String("Subversion"); +} + +QString SettingsPage::trName() const { - return tr("General"); + return tr("Subversion"); } QString SettingsPage::category() const { - return QLatin1String("Subversion"); + return QLatin1String(VCSBase::Constants::VCS_SETTINGS_CATEGORY); } QString SettingsPage::trCategory() const { - return tr("Subversion"); + return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY); } QWidget *SettingsPage::createPage(QWidget *parent) diff --git a/src/plugins/subversion/settingspage.h b/src/plugins/subversion/settingspage.h index 031bca49eb..7808920e04 100644 --- a/src/plugins/subversion/settingspage.h +++ b/src/plugins/subversion/settingspage.h @@ -67,7 +67,8 @@ class SettingsPage : public Core::IOptionsPage public: SettingsPage(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp index 156a065f49..8fa6434e81 100644 --- a/src/plugins/texteditor/behaviorsettingspage.cpp +++ b/src/plugins/texteditor/behaviorsettingspage.cpp @@ -73,7 +73,12 @@ BehaviorSettingsPage::~BehaviorSettingsPage() delete m_d; } -QString BehaviorSettingsPage::name() const +QString BehaviorSettingsPage::id() const +{ + return m_d->m_parameters.name; +} + +QString BehaviorSettingsPage::trName() const { return m_d->m_parameters.name; } diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h index 2437cddc81..821e519610 100644 --- a/src/plugins/texteditor/behaviorsettingspage.h +++ b/src/plugins/texteditor/behaviorsettingspage.h @@ -59,7 +59,8 @@ public: virtual ~BehaviorSettingsPage(); // IOptionsPage - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp index 7d8c670bdc..bae904b98f 100644 --- a/src/plugins/texteditor/displaysettingspage.cpp +++ b/src/plugins/texteditor/displaysettingspage.cpp @@ -67,7 +67,12 @@ DisplaySettingsPage::~DisplaySettingsPage() delete m_d; } -QString DisplaySettingsPage::name() const +QString DisplaySettingsPage::id() const +{ + return m_d->m_parameters.name; +} + +QString DisplaySettingsPage::trName() const { return m_d->m_parameters.name; } diff --git a/src/plugins/texteditor/displaysettingspage.h b/src/plugins/texteditor/displaysettingspage.h index ec2c96c0d7..1d8cd31b03 100644 --- a/src/plugins/texteditor/displaysettingspage.h +++ b/src/plugins/texteditor/displaysettingspage.h @@ -57,7 +57,8 @@ public: virtual ~DisplaySettingsPage(); // IOptionsPage - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp index 6ae8b748a2..8f776f04b0 100644 --- a/src/plugins/texteditor/fontsettingspage.cpp +++ b/src/plugins/texteditor/fontsettingspage.cpp @@ -204,7 +204,12 @@ FontSettingsPage::~FontSettingsPage() delete d_ptr; } -QString FontSettingsPage::name() const +QString FontSettingsPage::id() const +{ + return d_ptr->m_name; +} + +QString FontSettingsPage::trName() const { return d_ptr->m_name; } diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h index 0d9da298e6..b0e4b2efba 100644 --- a/src/plugins/texteditor/fontsettingspage.h +++ b/src/plugins/texteditor/fontsettingspage.h @@ -88,7 +88,8 @@ public: ~FontSettingsPage(); - QString name() const; + QString id() const; + QString trName() const; QString category() const; QString trCategory() const; diff --git a/src/plugins/vcsbase/vcsbaseconstants.h b/src/plugins/vcsbase/vcsbaseconstants.h index d6c0ca8a68..6ce3141cb6 100644 --- a/src/plugins/vcsbase/vcsbaseconstants.h +++ b/src/plugins/vcsbase/vcsbaseconstants.h @@ -30,11 +30,15 @@ #ifndef VCSBASE_CONSTANTS_H #define VCSBASE_CONSTANTS_H +#include <QtCore/QtGlobal> + namespace VCSBase { namespace Constants { +const char * const VCS_SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("VCSBase", "Version Control System"); + namespace Internal { -enum { debug = 0 }; + enum { debug = 0 }; } // namespace Internal } // namespace Constants |