From 2892f13b8c5ed3417872d4160686cc6e589c070c Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Thu, 22 Dec 2011 14:44:14 +0100
Subject: [PATCH] CorePlugin: Compile with QT_NO_CAST_FROM_ASCII.

- Wrap literals in QLatin1String()/QLatin1Char().
- Extract some string constants avoiding repeated
  QString construction.
- Fix repeated invocation of Container.end() in loops.

Change-Id: If737735507aaf82e53063adda53f54c46418f42f
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
---
 .../actionmanager/actioncontainer.cpp         |  6 ++-
 .../actionmanager/actionmanager.cpp           |  2 +-
 .../actionmanager/commandmappings.cpp         |  2 +-
 src/plugins/coreplugin/coreimpl.cpp           |  2 +-
 src/plugins/coreplugin/designmode.cpp         |  6 +--
 .../coreplugin/dialogs/externaltoolconfig.cpp | 14 +++---
 .../coreplugin/dialogs/shortcutsettings.cpp   |  6 +--
 .../editormanager/editormanager.cpp           | 17 +++----
 .../editormanager/openeditorsview.cpp         |  2 +-
 src/plugins/coreplugin/externaltool.cpp       |  9 ++--
 src/plugins/coreplugin/filemanager.cpp        |  4 +-
 src/plugins/coreplugin/generalsettings.cpp    |  3 +-
 src/plugins/coreplugin/helpmanager.cpp        |  2 +-
 src/plugins/coreplugin/id.cpp                 |  2 +-
 src/plugins/coreplugin/mainwindow.cpp         | 32 ++++++-------
 src/plugins/coreplugin/mimedatabase.cpp       | 47 ++++++++++++-------
 src/plugins/coreplugin/modemanager.cpp        |  4 +-
 src/plugins/coreplugin/navigationwidget.cpp   |  4 +-
 src/plugins/coreplugin/outputpanemanager.cpp  | 20 ++++----
 .../progressmanager/futureprogress.cpp        |  2 +-
 src/plugins/coreplugin/rightpane.cpp          | 12 ++---
 src/plugins/coreplugin/settingsdatabase.cpp   |  2 +-
 src/plugins/coreplugin/sidebar.cpp            | 42 ++++++++++-------
 src/plugins/coreplugin/vcsmanager.cpp         | 30 +++++++-----
 24 files changed, 155 insertions(+), 117 deletions(-)

diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index 58e1425ef53..f7b1a656283 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -405,7 +405,11 @@ bool MenuActionContainer::updateInternal()
             if (ActionContainerPrivate *container = qobject_cast<ActionContainerPrivate*>(item)) {
                 actions.removeAll(container->menu()->menuAction());
                 if (container == this) {
-                    qWarning() << Q_FUNC_INFO << "container" << (this->menu() ? this->menu()->title() : "") <<  "contains itself as subcontainer";
+                    QByteArray warning = Q_FUNC_INFO + QByteArray(" container '");
+                    if (this->menu())
+                        warning += this->menu()->title().toLocal8Bit();
+                    warning += "' contains itself as subcontainer";
+                    qWarning("%s", warning.constData());
                     continue;
                 }
                 if (container->updateInternal()) {
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
index cc4de91a0da..14738630871 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp
+++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
@@ -311,7 +311,7 @@ ActionContainer *ActionManagerPrivate::createMenu(const Id &id)
         return it.value();
 
     QMenu *m = new QMenu(m_mainWnd);
-    m->setObjectName(id.name());
+    m->setObjectName(QLatin1String(id.name()));
 
     MenuActionContainer *mc = new MenuActionContainer(id);
     mc->setMenu(m);
diff --git a/src/plugins/coreplugin/actionmanager/commandmappings.cpp b/src/plugins/coreplugin/actionmanager/commandmappings.cpp
index 32f065c08f2..fe6ead9c8cf 100644
--- a/src/plugins/coreplugin/actionmanager/commandmappings.cpp
+++ b/src/plugins/coreplugin/actionmanager/commandmappings.cpp
@@ -151,7 +151,7 @@ void CommandMappings::finish()
 void CommandMappings::commandChanged(QTreeWidgetItem *current)
 {
     if (!current || !current->data(0, Qt::UserRole).isValid()) {
-        m_page->targetEdit->setText("");
+        m_page->targetEdit->setText(QString());
         m_page->targetEditGroup->setEnabled(false);
         return;
     }
diff --git a/src/plugins/coreplugin/coreimpl.cpp b/src/plugins/coreplugin/coreimpl.cpp
index 8080930f787..6118050d02e 100644
--- a/src/plugins/coreplugin/coreimpl.cpp
+++ b/src/plugins/coreplugin/coreimpl.cpp
@@ -182,7 +182,7 @@ QString CoreImpl::userResourcePath() const
 {
     // Create qtcreator dir if it doesn't yet exist
     const QString configDir = QFileInfo(settings(QSettings::UserScope)->fileName()).path();
-    const QString urp = configDir + "/qtcreator";
+    const QString urp = configDir + QLatin1String("/qtcreator");
 
     QFileInfo fi(urp + QLatin1Char('/'));
     if (!fi.exists()) {
diff --git a/src/plugins/coreplugin/designmode.cpp b/src/plugins/coreplugin/designmode.cpp
index 8e2a9e1cacd..d7d72398f5d 100644
--- a/src/plugins/coreplugin/designmode.cpp
+++ b/src/plugins/coreplugin/designmode.cpp
@@ -130,8 +130,8 @@ DesignMode::DesignMode()
     setDisplayName(tr("Design"));
     setIcon(QIcon(QLatin1String(":/fancyactionbar/images/mode_Design.png")));
     setPriority(Constants::P_MODE_DESIGN);
-    setId(Constants::MODE_DESIGN);
-    setType(Constants::MODE_DESIGN_TYPE);
+    setId(QLatin1String(Constants::MODE_DESIGN));
+    setType(QLatin1String(Constants::MODE_DESIGN_TYPE));
 
     ExtensionSystem::PluginManager::instance()->addObject(d->m_coreListener);
 
@@ -237,7 +237,7 @@ void DesignMode::currentEditorChanged(Core::IEditor *editor)
     if (!mimeEditorAvailable) {
         setActiveContext(Context());
         if (ModeManager::instance()->currentMode() == this)
-            ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT);
+            ModeManager::instance()->activateMode(QLatin1String(Core::Constants::MODE_EDIT));
         setEnabled(false);
         d->m_currentEditor = QWeakPointer<Core::IEditor>();
         emit actionsUpdated(d->m_currentEditor.data());
diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
index a0f9e2fd065..6599d4eb70c 100644
--- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
+++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp
@@ -339,12 +339,14 @@ QModelIndex ExternalToolModel::addTool(const QModelIndex &atIndex)
     tool->setDisplayCategory(category);
     tool->setDisplayName(tr("New Tool"));
     tool->setDescription(tr("This tool prints a line of useful text"));
+    //: Sample external tool text
+    const QString text = tr("Useful text");
 #ifdef Q_OS_WIN
-    tool->setExecutables(QStringList() << "cmd");
-    tool->setArguments(tr("/c echo Useful text"));
+    tool->setExecutables(QStringList(QLatin1String("cmd")));
+    tool->setArguments(QLatin1String("/c echo ") + text);
 #else
-    tool->setExecutables(QStringList() << "echo");
-    tool->setArguments(tr("Useful text"));
+    tool->setExecutables(QStringList(QLatin1String("echo")));
+    tool->setArguments(text);
 #endif
 
     int pos;
@@ -463,8 +465,8 @@ void ExternalToolConfig::setTools(const QMap<QString, QList<ExternalTool *> > &t
             itemCopy.append(new ExternalTool(tool));
         toolsCopy.insert(it.key(), itemCopy);
     }
-    if (!toolsCopy.contains(QString("")))
-        toolsCopy.insert(QString(""), QList<ExternalTool *>());
+    if (!toolsCopy.contains(QString()))
+        toolsCopy.insert(QString(), QList<ExternalTool *>());
     m_model->setTools(toolsCopy);
     ui->toolTree->expandAll();
 }
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index be517c66289..c5c0eb7d3bb 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -219,7 +219,7 @@ void ShortcutSettings::removeTargetIdentifier()
 void ShortcutSettings::importAction()
 {
     QString fileName = QFileDialog::getOpenFileName(0, tr("Import Keyboard Mapping Scheme"),
-        ICore::instance()->resourcePath() + "/schemes/",
+        ICore::instance()->resourcePath() + QLatin1String("/schemes/"),
         tr("Keyboard Mapping Scheme (*.kms)"));
     if (!fileName.isEmpty()) {
 
@@ -268,7 +268,7 @@ void ShortcutSettings::exportAction()
 {
     QString fileName = FileManager::instance()->getSaveFileNameWithExtension(
         tr("Export Keyboard Mapping Scheme"),
-        ICore::instance()->resourcePath() + "/schemes/",
+        ICore::instance()->resourcePath() + QLatin1String("/schemes/"),
         tr("Keyboard Mapping Scheme (*.kms)"));
     if (!fileName.isEmpty()) {
         CommandsFile cf(fileName);
@@ -325,7 +325,7 @@ void ShortcutSettings::initialize()
 
         if (c->action()) {
             QString text = c->hasAttribute(Command::CA_UpdateText) && !c->defaultText().isNull() ? c->defaultText() : c->action()->text();
-            text.remove(QRegExp("&(?!&)"));
+            text.remove(QRegExp(QLatin1String("&(?!&)")));
             s->m_key = c->action()->shortcut();
             item->setText(1, text);
         } else {
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index c9fedca9c34..7a6889125fd 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -1270,10 +1270,10 @@ int extractLineNumber(QString *fileName)
     }
     if (i == -1)
         return -1;
-    if (fileName->at(i) == ':' || fileName->at(i) == '+') {
-        int result = fileName->mid(i+1).toInt();
-        if (result) {
-            *fileName = fileName->left(i);
+    const QChar c = fileName->at(i);
+    if (c == QLatin1Char(':') || c == QLatin1Char('+')) {
+        if (const int result = fileName->mid(i + 1).toInt()) {
+            fileName->truncate(i);
             return result;
         }
     }
@@ -1386,7 +1386,7 @@ void EditorManager::switchToPreferedMode()
         preferedMode = d->m_currentEditor->preferredModeType();
 
     if (preferedMode.isEmpty())
-        preferedMode = Constants::MODE_EDIT_TYPE;
+        preferedMode = QLatin1String(Constants::MODE_EDIT_TYPE);
 
     ModeManager::instance()->activateModeType(preferedMode);
 }
@@ -1672,14 +1672,15 @@ void EditorManager::vcsOpenCurrentEditor()
 void EditorManager::updateWindowTitle()
 {
     QString windowTitle = tr("Qt Creator");
+    const QString dashSep = QLatin1String(" - ");
     if (!d->m_titleAddition.isEmpty()) {
-        windowTitle.prepend(d->m_titleAddition + " - ");
+        windowTitle.prepend(d->m_titleAddition + dashSep);
     }
     IEditor *curEditor = currentEditor();
     if (curEditor) {
         QString editorName = curEditor->displayName();
         if (!editorName.isEmpty())
-            windowTitle.prepend(editorName + " - ");
+            windowTitle.prepend(editorName + dashSep);
         QString filePath = QFileInfo(curEditor->file()->fileName()).absoluteFilePath();
         if (!filePath.isEmpty())
             d->m_core->mainWindow()->setWindowFilePath(filePath);
@@ -1771,7 +1772,7 @@ void EditorManager::updateActions()
 
     QString quotedName;
     if (!fName.isEmpty())
-        quotedName = '"' + fName + '"';
+        quotedName = QLatin1Char('"') + fName + QLatin1Char('"');
 
     d->m_saveAsAction->setText(tr("Save %1 &As...").arg(quotedName));
     d->m_saveAction->setText(tr("&Save %1").arg(quotedName));
diff --git a/src/plugins/coreplugin/editormanager/openeditorsview.cpp b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
index f9658f0441d..30f04b688c4 100644
--- a/src/plugins/coreplugin/editormanager/openeditorsview.cpp
+++ b/src/plugins/coreplugin/editormanager/openeditorsview.cpp
@@ -100,7 +100,7 @@ OpenEditorsWidget::OpenEditorsWidget()
 {
     m_ui.setupUi(this);
     setWindowTitle(tr("Open Documents"));
-    setWindowIcon(QIcon(Constants::ICON_DIR));
+    setWindowIcon(QIcon(QLatin1String(Constants::ICON_DIR)));
     setFocusProxy(m_ui.editorList);
     m_ui.editorList->viewport()->setAttribute(Qt::WA_Hover);
     m_ui.editorList->setItemDelegate((m_delegate = new OpenEditorsDelegate(this)));
diff --git a/src/plugins/coreplugin/externaltool.cpp b/src/plugins/coreplugin/externaltool.cpp
index 90c59bfe4f8..15ef7f1c54c 100644
--- a/src/plugins/coreplugin/externaltool.cpp
+++ b/src/plugins/coreplugin/externaltool.cpp
@@ -823,9 +823,10 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<Internal:
     }
     qDeleteAll(m_tools);
     QMapIterator<QString, QAction *> remainingActions(m_actions);
+    const QString externalToolsPrefix = QLatin1String("Tools.External.");
     while (remainingActions.hasNext()) {
         remainingActions.next();
-        am->unregisterAction(remainingActions.value(), Id("Tools.External." + remainingActions.key()));
+        am->unregisterAction(remainingActions.value(), Id(externalToolsPrefix + remainingActions.key()));
         delete remainingActions.value();
     }
     m_actions.clear();
@@ -847,7 +848,7 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<Internal:
             if (m_containers.contains(containerName)) {
                 container = m_containers.take(containerName); // remove to avoid deletion below
             } else {
-                container = am->createMenu(Id("Tools.External.Category." + containerName));
+                container = am->createMenu(Id(QLatin1String("Tools.External.Category.") + containerName));
             }
             newContainers.insert(containerName, container);
             mexternaltools->addMenu(container, Constants::G_DEFAULT_ONE);
@@ -860,13 +861,13 @@ void ExternalToolManager::setToolsByCategory(const QMap<QString, QList<Internal:
             Command *command = 0;
             if (m_actions.contains(toolId)) {
                 action = m_actions.value(toolId);
-                command = am->command(Id("Tools.External." + toolId));
+                command = am->command(Id(externalToolsPrefix + toolId));
             } else {
                 action = new QAction(tool->displayName(), this);
                 action->setData(toolId);
                 m_actions.insert(toolId, action);
                 connect(action, SIGNAL(triggered()), this, SLOT(menuActivated()));
-                command = am->registerAction(action, Id("Tools.External." + toolId), Context(Constants::C_GLOBAL));
+                command = am->registerAction(action, Id(externalToolsPrefix + toolId), Context(Constants::C_GLOBAL));
                 command->setAttribute(Command::CA_UpdateText);
             }
             action->setText(tool->displayName());
diff --git a/src/plugins/coreplugin/filemanager.cpp b/src/plugins/coreplugin/filemanager.cpp
index 2e4391260a9..daaee5da821 100644
--- a/src/plugins/coreplugin/filemanager.cpp
+++ b/src/plugins/coreplugin/filemanager.cpp
@@ -682,11 +682,11 @@ QString FileManager::getSaveFileName(const QString &title, const QString &pathIn
             if (selectedFilter && *selectedFilter != QCoreApplication::translate(
                     "Core", Constants::ALL_FILES_FILTER)) {
                 // Mime database creates filter strings like this: Anything here (*.foo *.bar)
-                QRegExp regExp(".*\\s+\\((.*)\\)$");
+                QRegExp regExp(QLatin1String(".*\\s+\\((.*)\\)$"));
                 const int index = regExp.lastIndexIn(*selectedFilter);
                 bool suffixOk = false;
                 if (index != -1) {
-                    const QStringList &suffixes = regExp.cap(1).remove('*').split(' ');
+                    const QStringList &suffixes = regExp.cap(1).remove(QLatin1Char('*')).split(QLatin1Char(' '));
                     foreach (const QString &suffix, suffixes)
                         if (fileName.endsWith(suffix)) {
                             suffixOk = true;
diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp
index 1a32b383cd2..5e13c0fa9a2 100644
--- a/src/plugins/coreplugin/generalsettings.cpp
+++ b/src/plugins/coreplugin/generalsettings.cpp
@@ -90,7 +90,8 @@ static bool hasQmFilesForLocale(const QString &locale, const QString &creatorTrP
     static const QString qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
 
     const QString trFile = QLatin1String("qt_") + locale + QLatin1String(".qm");
-    return QFile::exists(qtTrPath+'/'+trFile) || QFile::exists(creatorTrPath+'/'+trFile);
+    return QFile::exists(qtTrPath + QLatin1Char('/') + trFile)
+            || QFile::exists(creatorTrPath + QLatin1Char('/') + trFile);
 }
 
 void GeneralSettings::fillLanguageBox() const
diff --git a/src/plugins/coreplugin/helpmanager.cpp b/src/plugins/coreplugin/helpmanager.cpp
index 70fa4305758..d68c56a7180 100644
--- a/src/plugins/coreplugin/helpmanager.cpp
+++ b/src/plugins/coreplugin/helpmanager.cpp
@@ -447,7 +447,7 @@ QStringList HelpManagerPrivate::documentationFromInstaller()
             documentationFiles << pathInfo.absoluteFilePath();
         } else if (pathInfo.isDir()) {
             QDir dir(path);
-            foreach (const QFileInfo &fileInfo, dir.entryInfoList(QStringList() << "*.qch",
+            foreach (const QFileInfo &fileInfo, dir.entryInfoList(QStringList(QLatin1String("*.qch")),
                                                               QDir::Files | QDir::Readable)) {
                 documentationFiles << fileInfo.absoluteFilePath();
             }
diff --git a/src/plugins/coreplugin/id.cpp b/src/plugins/coreplugin/id.cpp
index 88ba0095ff8..9859276f287 100644
--- a/src/plugins/coreplugin/id.cpp
+++ b/src/plugins/coreplugin/id.cpp
@@ -87,7 +87,7 @@ QString Id::toString() const
 
 Context::Context(const char *id, int offset)
 {
-    d.append(Id(QString(id) + QString::number(offset)).uniqueIdentifier());
+    d.append(Id(QLatin1String(id) + QString::number(offset)).uniqueIdentifier());
 }
 
 void Context::add(const char *id)
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 2a23400adbe..9cb851d5a57 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -560,7 +560,7 @@ void MainWindow::registerDefaultActions()
     mfile->addAction(cmd, Constants::G_FILE_SAVE);
 
     cmd =  createSeparator(am, this, Id("QtCreator.File.Sep.Print"), globalContext);
-    QIcon icon = QIcon::fromTheme(QLatin1String("edit-cut"), QIcon(Constants::ICON_CUT));
+    QIcon icon = QIcon::fromTheme(QLatin1String("edit-cut"), QIcon(QLatin1String(Constants::ICON_CUT)));
     mfile->addAction(cmd, Constants::G_FILE_PRINT);
 
     cmd =  createSeparator(am, this, Id("QtCreator.File.Sep.Close"), globalContext);
@@ -590,7 +590,7 @@ void MainWindow::registerDefaultActions()
     connect(m_focusToEditor, SIGNAL(activated()), this, SLOT(setFocusToEditor()));
 
     // New File Action
-    icon = QIcon::fromTheme(QLatin1String("document-new"), QIcon(Constants::ICON_NEWFILE));
+    icon = QIcon::fromTheme(QLatin1String("document-new"), QIcon(QLatin1String(Constants::ICON_NEWFILE)));
     m_newAction = new QAction(icon, tr("&New File or Project..."), this);
     cmd = am->registerAction(m_newAction, Constants::NEW, globalContext);
     cmd->setDefaultKeySequence(QKeySequence::New);
@@ -598,7 +598,7 @@ void MainWindow::registerDefaultActions()
     connect(m_newAction, SIGNAL(triggered()), this, SLOT(newFile()));
 
     // Open Action
-    icon = QIcon::fromTheme(QLatin1String("document-open"), QIcon(Constants::ICON_OPENFILE));
+    icon = QIcon::fromTheme(QLatin1String("document-open"), QIcon(QLatin1String(Constants::ICON_OPENFILE)));
     m_openAction = new QAction(icon, tr("&Open File or Project..."), this);
     cmd = am->registerAction(m_openAction, Constants::OPEN, globalContext);
     cmd->setDefaultKeySequence(QKeySequence::Open);
@@ -618,7 +618,7 @@ void MainWindow::registerDefaultActions()
     ac->setOnAllDisabledBehavior(ActionContainer::Show);
 
     // Save Action
-    icon = QIcon::fromTheme(QLatin1String("document-save"), QIcon(Constants::ICON_SAVEFILE));
+    icon = QIcon::fromTheme(QLatin1String("document-save"), QIcon(QLatin1String(Constants::ICON_SAVEFILE)));
     QAction *tmpaction = new QAction(icon, tr("&Save"), this);
     tmpaction->setEnabled(false);
     cmd = am->registerAction(tmpaction, Constants::SAVE, globalContext);
@@ -665,7 +665,7 @@ void MainWindow::registerDefaultActions()
     connect(m_exitAction, SIGNAL(triggered()), this, SLOT(exit()));
 
     // Undo Action
-    icon = QIcon::fromTheme(QLatin1String("edit-undo"), QIcon(Constants::ICON_UNDO));
+    icon = QIcon::fromTheme(QLatin1String("edit-undo"), QIcon(QLatin1String(Constants::ICON_UNDO)));
     tmpaction = new QAction(icon, tr("&Undo"), this);
     cmd = am->registerAction(tmpaction, Constants::UNDO, globalContext);
     cmd->setDefaultKeySequence(QKeySequence::Undo);
@@ -675,7 +675,7 @@ void MainWindow::registerDefaultActions()
     tmpaction->setEnabled(false);
 
     // Redo Action
-    icon = QIcon::fromTheme(QLatin1String("edit-redo"), QIcon(Constants::ICON_REDO));
+    icon = QIcon::fromTheme(QLatin1String("edit-redo"), QIcon(QLatin1String(Constants::ICON_REDO)));
     tmpaction = new QAction(icon, tr("&Redo"), this);
     cmd = am->registerAction(tmpaction, Constants::REDO, globalContext);
     cmd->setDefaultKeySequence(QKeySequence::Redo);
@@ -685,7 +685,7 @@ void MainWindow::registerDefaultActions()
     tmpaction->setEnabled(false);
 
     // Cut Action
-    icon = QIcon::fromTheme(QLatin1String("edit-cut"), QIcon(Constants::ICON_CUT));
+    icon = QIcon::fromTheme(QLatin1String("edit-cut"), QIcon(QLatin1String(Constants::ICON_CUT)));
     tmpaction = new QAction(icon, tr("Cu&t"), this);
     cmd = am->registerAction(tmpaction, Constants::CUT, globalContext);
     cmd->setDefaultKeySequence(QKeySequence::Cut);
@@ -693,7 +693,7 @@ void MainWindow::registerDefaultActions()
     tmpaction->setEnabled(false);
 
     // Copy Action
-    icon = QIcon::fromTheme(QLatin1String("edit-copy"), QIcon(Constants::ICON_COPY));
+    icon = QIcon::fromTheme(QLatin1String("edit-copy"), QIcon(QLatin1String(Constants::ICON_COPY)));
     tmpaction = new QAction(icon, tr("&Copy"), this);
     cmd = am->registerAction(tmpaction, Constants::COPY, globalContext);
     cmd->setDefaultKeySequence(QKeySequence::Copy);
@@ -701,7 +701,7 @@ void MainWindow::registerDefaultActions()
     tmpaction->setEnabled(false);
 
     // Paste Action
-    icon = QIcon::fromTheme(QLatin1String("edit-paste"), QIcon(Constants::ICON_PASTE));
+    icon = QIcon::fromTheme(QLatin1String("edit-paste"), QIcon(QLatin1String(Constants::ICON_PASTE)));
     tmpaction = new QAction(icon, tr("&Paste"), this);
     cmd = am->registerAction(tmpaction, Constants::PASTE, globalContext);
     cmd->setDefaultKeySequence(QKeySequence::Paste);
@@ -731,7 +731,7 @@ void MainWindow::registerDefaultActions()
     m_optionsAction = new QAction(tr("&Options..."), this);
     cmd = am->registerAction(m_optionsAction, Constants::OPTIONS, globalContext);
 #ifdef Q_WS_MAC
-    cmd->setDefaultKeySequence(QKeySequence("Ctrl+,"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+,")));
     cmd->action()->setMenuRole(QAction::PreferencesRole);
 #endif
     mtools->addAction(cmd, Constants::G_TOOLS_OPTIONS);
@@ -741,7 +741,7 @@ void MainWindow::registerDefaultActions()
     // Minimize Action
     m_minimizeAction = new QAction(tr("Minimize"), this);
     cmd = am->registerAction(m_minimizeAction, Constants::MINIMIZE_WINDOW, globalContext);
-    cmd->setDefaultKeySequence(QKeySequence("Ctrl+M"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+M")));
     mwindow->addAction(cmd, Constants::G_WINDOW_SIZE);
     connect(m_minimizeAction, SIGNAL(triggered()), this, SLOT(showMinimized()));
 
@@ -757,15 +757,15 @@ void MainWindow::registerDefaultActions()
 #endif
 
     // Show Sidebar Action
-    m_toggleSideBarAction = new QAction(QIcon(Constants::ICON_TOGGLE_SIDEBAR),
+    m_toggleSideBarAction = new QAction(QIcon(QLatin1String(Constants::ICON_TOGGLE_SIDEBAR)),
                                         tr("Show Sidebar"), this);
     m_toggleSideBarAction->setCheckable(true);
     cmd = am->registerAction(m_toggleSideBarAction, Constants::TOGGLE_SIDEBAR, globalContext);
     cmd->setAttribute(Command::CA_UpdateText);
 #ifdef Q_WS_MAC
-    cmd->setDefaultKeySequence(QKeySequence("Ctrl+0"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+0")));
 #else
-    cmd->setDefaultKeySequence(QKeySequence("Alt+0"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Alt+0")));
 #endif
     connect(m_toggleSideBarAction, SIGNAL(triggered(bool)), this, SLOT(setSidebarVisible(bool)));
     m_toggleSideBarButton->setDefaultAction(cmd->action());
@@ -777,7 +777,7 @@ void MainWindow::registerDefaultActions()
     m_toggleFullScreenAction = new QAction(tr("Full Screen"), this);
     m_toggleFullScreenAction->setCheckable(true);
     cmd = am->registerAction(m_toggleFullScreenAction, Constants::TOGGLE_FULLSCREEN, globalContext);
-    cmd->setDefaultKeySequence(QKeySequence("Ctrl+Shift+F11"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+Shift+F11")));
     mwindow->addAction(cmd, Constants::G_WINDOW_SIZE);
     connect(m_toggleFullScreenAction, SIGNAL(triggered(bool)), this, SLOT(setFullScreen(bool)));
 #endif
@@ -875,7 +875,7 @@ void MainWindow::openFiles(const QStringList &fileNames, ICore::OpenFilesFlags f
             if (!file && (flags & ICore::StopOnLoadFail))
                 return;
             if (file && (flags & ICore::SwitchMode))
-                Core::ModeManager::instance()->activateMode(Core::Constants::MODE_EDIT);
+                Core::ModeManager::instance()->activateMode(QLatin1String(Core::Constants::MODE_EDIT));
         } else {
             QFlags<EditorManager::OpenEditorFlag> emFlags;
             if (flags & ICore::SwitchMode)
diff --git a/src/plugins/coreplugin/mimedatabase.cpp b/src/plugins/coreplugin/mimedatabase.cpp
index 144a862e0a8..2422ef6ca3f 100644
--- a/src/plugins/coreplugin/mimedatabase.cpp
+++ b/src/plugins/coreplugin/mimedatabase.cpp
@@ -293,7 +293,7 @@ QPair<int, int> MagicRule::fromOffset(const QString &offset)
     \sa Core::Internal::BaseMimeTypeParser, Core::Internal::MimeTypeParser
  */
 
-const QString MagicStringRule::kMatchType("string");
+const QString MagicStringRule::kMatchType(QLatin1String("string"));
 
 MagicStringRule::MagicStringRule(const QString &s, int startPos, int endPos) :
     MagicRule(startPos, endPos), m_pattern(s.toUtf8())
@@ -311,7 +311,7 @@ QString MagicStringRule::matchType() const
 
 QString MagicStringRule::matchValue() const
 {
-    return m_pattern;
+    return QLatin1String(m_pattern);
 }
 
 bool MagicStringRule::matches(const QByteArray &data) const
@@ -1664,20 +1664,26 @@ QList<MimeType> MimeDatabasePrivate::readUserModifiedMimeTypes()
         QHash<int, MagicRuleList> rules;
         QXmlStreamReader reader(&file);
         QXmlStreamAttributes atts;
+        const QString mimeTypeAttribute = QLatin1String(mimeTypeAttributeC);
+        const QString patternAttribute = QLatin1String(patternAttributeC);
+        const QString matchValueAttribute = QLatin1String(matchValueAttributeC);
+        const QString matchTypeAttribute = QLatin1String(matchTypeAttributeC);
+        const QString matchOffsetAttribute = QLatin1String(matchOffsetAttributeC);
+        const QString priorityAttribute = QLatin1String(priorityAttributeC);
         while (!reader.atEnd()) {
             switch (reader.readNext()) {
             case QXmlStreamReader::StartElement:
                 atts = reader.attributes();
                 if (reader.name() == mimeTypeTagC) {
-                    mimeType.setType(atts.value(mimeTypeAttributeC).toString());
-                    const QString &patterns = atts.value(patternAttributeC).toString();
+                    mimeType.setType(atts.value(mimeTypeAttribute).toString());
+                    const QString &patterns = atts.value(patternAttribute).toString();
                     mimeType.setGlobPatterns(toGlobPatterns(patterns.split(kSemiColon)));
                 } else if (reader.name() == matchTagC) {
-                    const QString &value = atts.value(matchValueAttributeC).toString();
-                    const QString &type = atts.value(matchTypeAttributeC).toString();
-                    const QString &offset = atts.value(matchOffsetAttributeC).toString();
+                    const QString &value = atts.value(matchValueAttribute).toString();
+                    const QString &type = atts.value(matchTypeAttribute).toString();
+                    const QString &offset = atts.value(matchOffsetAttribute).toString();
                     QPair<int, int> range = MagicRule::fromOffset(offset);
-                    const int priority = atts.value(priorityAttributeC).toString().toInt();
+                    const int priority = atts.value(priorityAttribute).toString().toInt();
 
                     MagicRule *magicRule;
                     if (type == MagicStringRule::kMatchType)
@@ -1729,10 +1735,19 @@ void MimeDatabasePrivate::writeUserModifiedMimeTypes(const QList<MimeType> &mime
             writer.setAutoFormatting(true);
             writer.writeStartDocument();
             writer.writeStartElement(QLatin1String(mimeInfoTagC));
+            const QString mimeTypeTag = QLatin1String(mimeTypeTagC);
+            const QString matchTag = QLatin1String(matchTagC);
+            const QString mimeTypeAttribute = QLatin1String(mimeTypeAttributeC);
+            const QString patternAttribute = QLatin1String(patternAttributeC);
+            const QString matchValueAttribute = QLatin1String(matchValueAttributeC);
+            const QString matchTypeAttribute = QLatin1String(matchTypeAttributeC);
+            const QString matchOffsetAttribute = QLatin1String(matchOffsetAttributeC);
+            const QString priorityAttribute = QLatin1String(priorityAttributeC);
+
             foreach (const MimeType &mimeType, allModifiedMimeTypes) {
-                writer.writeStartElement(mimeTypeTagC);
-                writer.writeAttribute(mimeTypeAttributeC, mimeType.type());
-                writer.writeAttribute(patternAttributeC,
+                writer.writeStartElement(mimeTypeTag);
+                writer.writeAttribute(mimeTypeAttribute, mimeType.type());
+                writer.writeAttribute(patternAttribute,
                                       fromGlobPatterns(mimeType.globPatterns()).join(kSemiColon));
                 const QList<QSharedPointer<IMagicMatcher> > &matchers = mimeType.magicMatchers();
                 foreach (const QSharedPointer<IMagicMatcher> &matcher, matchers) {
@@ -1741,13 +1756,13 @@ void MimeDatabasePrivate::writeUserModifiedMimeTypes(const QList<MimeType> &mime
                         dynamic_cast<MagicRuleMatcher *>(matcher.data())) {
                         const MagicRuleMatcher::MagicRuleList &rules = ruleMatcher->magicRules();
                         foreach (const MagicRuleMatcher::MagicRuleSharedPointer &rule, rules) {
-                            writer.writeStartElement(matchTagC);
-                            writer.writeAttribute(matchValueAttributeC, rule->matchValue());
-                            writer.writeAttribute(matchTypeAttributeC, rule->matchType());
-                            writer.writeAttribute(matchOffsetAttributeC,
+                            writer.writeStartElement(matchTag);
+                            writer.writeAttribute(matchValueAttribute, rule->matchValue());
+                            writer.writeAttribute(matchTypeAttribute, rule->matchType());
+                            writer.writeAttribute(matchOffsetAttribute,
                                                   MagicRule::toOffset(
                                                       qMakePair(rule->startPos(), rule->endPos())));
-                            writer.writeAttribute(priorityAttributeC,
+                            writer.writeAttribute(priorityAttribute,
                                                   QString::number(ruleMatcher->priority()));
                             writer.writeEndElement();
                         }
diff --git a/src/plugins/coreplugin/modemanager.cpp b/src/plugins/coreplugin/modemanager.cpp
index de8069c77b2..7d254250921 100644
--- a/src/plugins/coreplugin/modemanager.cpp
+++ b/src/plugins/coreplugin/modemanager.cpp
@@ -218,9 +218,9 @@ void ModeManager::objectAdded(QObject *obj)
         bool currentlyHasDefaultSequence = (currentCmd->keySequence()
                                             == currentCmd->defaultKeySequence());
 #ifdef Q_WS_MAC
-        currentCmd->setDefaultKeySequence(QKeySequence(QString("Meta+%1").arg(i+1)));
+        currentCmd->setDefaultKeySequence(QKeySequence(QString::fromLatin1("Meta+%1").arg(i+1)));
 #else
-        currentCmd->setDefaultKeySequence(QKeySequence(QString("Ctrl+%1").arg(i+1)));
+        currentCmd->setDefaultKeySequence(QKeySequence(QString::fromLatin1("Ctrl+%1").arg(i+1)));
 #endif
         if (currentlyHasDefaultSequence)
             currentCmd->setKeySequence(currentCmd->defaultKeySequence());
diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp
index 7d550bb7438..5a70b3c099c 100644
--- a/src/plugins/coreplugin/navigationwidget.cpp
+++ b/src/plugins/coreplugin/navigationwidget.cpp
@@ -200,7 +200,7 @@ void NavigationWidget::setFactories(const QList<INavigationWidgetFactory *> fact
         d->m_shortcutMap.insert(shortcut, id);
 
         Command *cmd = am->registerShortcut(shortcut,
-            Id(QLatin1String("QtCreator.Sidebar.") + id.name()), navicontext);
+            Id(QLatin1String("QtCreator.Sidebar.") + QLatin1String(id.name())), navicontext);
         cmd->setDefaultKeySequence(factory->activationSequence());
         d->m_commandMap.insert(id, cmd);
 
@@ -331,7 +331,7 @@ void NavigationWidget::restoreSettings(QSettings *settings)
 
     int version = settings->value(QLatin1String("Navigation/Version"), 1).toInt();
     QStringList viewIds = settings->value(QLatin1String("Navigation/Views"),
-                                          QStringList("Projects")).toStringList();
+                                          QStringList(QLatin1String("Projects"))).toStringList();
 
     bool restoreSplitterState = true;
     if (version == 1) {
diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp
index 29e15e718d9..94a283d3d66 100644
--- a/src/plugins/coreplugin/outputpanemanager.cpp
+++ b/src/plugins/coreplugin/outputpanemanager.cpp
@@ -114,8 +114,8 @@ OutputPaneManager::OutputPaneManager(QWidget *parent) :
     m_lastIndex(-1),
     m_outputWidgetPane(new QStackedWidget),
     m_opToolBarWidgets(new QStackedWidget),
-    m_minimizeIcon(":/core/images/arrowdown.png"),
-    m_maximizeIcon(":/core/images/arrowup.png"),
+    m_minimizeIcon(QLatin1String(":/core/images/arrowdown.png")),
+    m_maximizeIcon(QLatin1String(":/core/images/arrowup.png")),
     m_maximised(false)
 {
     setWindowTitle(tr("Output"));
@@ -212,20 +212,20 @@ void OutputPaneManager::init()
     mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup");
 
     cmd = am->registerAction(m_prevAction, "Coreplugin.OutputPane.previtem", globalcontext);
-    cmd->setDefaultKeySequence(QKeySequence("Shift+F6"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Shift+F6")));
     m_prevToolButton->setDefaultAction(cmd->action());
     mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup");
 
     cmd = am->registerAction(m_nextAction, "Coreplugin.OutputPane.nextitem", globalcontext);
     m_nextToolButton->setDefaultAction(cmd->action());
-    cmd->setDefaultKeySequence(QKeySequence("F6"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("F6")));
     mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup");
 
     cmd = am->registerAction(m_minMaxAction, "Coreplugin.OutputPane.minmax", globalcontext);
 #ifdef Q_WS_MAC
-    cmd->setDefaultKeySequence(QKeySequence("Ctrl+9"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+9")));
 #else
-    cmd->setDefaultKeySequence(QKeySequence("Alt+9"));
+    cmd->setDefaultKeySequence(QKeySequence(tr("Alt+9")));
 #endif
     cmd->setAttribute(Command::CA_UpdateText);
     cmd->setAttribute(Command::CA_UpdateIcon);
@@ -270,7 +270,7 @@ void OutputPaneManager::init()
 
         m_opToolBarWidgets->addWidget(toolButtonsContainer);
 
-        QString actionId = QString("QtCreator.Pane.%1").arg(outPane->displayName().simplified());
+        QString actionId = QLatin1String("QtCreator.Pane.") + outPane->displayName().simplified();
         actionId.remove(QLatin1Char(' '));
         QAction *action = new QAction(outPane->displayName(), this);
 
@@ -450,7 +450,7 @@ void OutputPaneManager::showPage(int idx, bool focus)
         if (!OutputPanePlaceHolder::getCurrent()) {
             // In this mode we don't have a placeholder
             // switch to the output mode and switch the page
-            ModeManager::instance()->activateMode(Constants::MODE_EDIT);
+            ModeManager::instance()->activateMode(QLatin1String(Constants::MODE_EDIT));
         }
         if (OutputPanePlaceHolder::getCurrent()) {
             // make the page visible
@@ -534,7 +534,7 @@ OutputPaneToggleButton::OutputPaneToggleButton(int number, const QString &text,
     QFont fnt = QApplication::font();
     setFont(fnt);
     setStyleSheet(
-            "QToolButton { border-image: url(:/core/images/panel_button.png) 2 2 2 19;"
+            QLatin1String("QToolButton { border-image: url(:/core/images/panel_button.png) 2 2 2 19;"
                          " border-width: 2px 2px 2px 19px; padding-left: -17; padding-right: 4 } "
             "QToolButton:checked { border-image: url(:/core/images/panel_button_checked.png) 2 2 2 19 } "
             "QToolButton::menu-indicator { width:0; height:0 }"
@@ -543,7 +543,7 @@ OutputPaneToggleButton::OutputPaneToggleButton(int number, const QString &text,
             "QToolButton:pressed:hover { border-image: url(:/core/images/panel_button_pressed.png) 2 2 2 19 } "
             "QToolButton:hover { border-image: url(:/core/images/panel_button_hover.png) 2 2 2 19 } "
 #endif
-            );
+            ));
     if (m_action)
         connect(m_action, SIGNAL(changed()), this, SLOT(updateToolTip()));
 }
diff --git a/src/plugins/coreplugin/progressmanager/futureprogress.cpp b/src/plugins/coreplugin/progressmanager/futureprogress.cpp
index 880e82825ff..f2a7cf121b7 100644
--- a/src/plugins/coreplugin/progressmanager/futureprogress.cpp
+++ b/src/plugins/coreplugin/progressmanager/futureprogress.cpp
@@ -216,7 +216,7 @@ void FutureProgress::cancel()
 
 void FutureProgress::updateToolTip(const QString &text)
 {
-    setToolTip("<b>" + title() + "</b><br>" + text);
+    setToolTip(QLatin1String("<b>") + title() + QLatin1String("</b><br>") + text);
 }
 
 void FutureProgress::setStarted()
diff --git a/src/plugins/coreplugin/rightpane.cpp b/src/plugins/coreplugin/rightpane.cpp
index 4cc6307c767..5c026e04650 100644
--- a/src/plugins/coreplugin/rightpane.cpp
+++ b/src/plugins/coreplugin/rightpane.cpp
@@ -173,20 +173,20 @@ void RightPaneWidget::resizeEvent(QResizeEvent *re)
 
 void RightPaneWidget::saveSettings(QSettings *settings)
 {
-    settings->setValue("RightPane/Visible", isShown());
-    settings->setValue("RightPane/Width", m_width);
+    settings->setValue(QLatin1String("RightPane/Visible"), isShown());
+    settings->setValue(QLatin1String("RightPane/Width"), m_width);
 }
 
 void RightPaneWidget::readSettings(QSettings *settings)
 {
-    if (settings->contains("RightPane/Visible")) {
-        setShown(settings->value("RightPane/Visible").toBool());
+    if (settings->contains(QLatin1String("RightPane/Visible"))) {
+        setShown(settings->value(QLatin1String("RightPane/Visible")).toBool());
     } else {
         setShown(false); //TODO set to false
     }
 
-    if (settings->contains("RightPane/Width")) {
-        m_width = settings->value("RightPane/Width").toInt();
+    if (settings->contains(QLatin1String("RightPane/Width"))) {
+        m_width = settings->value(QLatin1String("RightPane/Width")).toInt();
         if (!m_width)
             m_width = 500;
     } else {
diff --git a/src/plugins/coreplugin/settingsdatabase.cpp b/src/plugins/coreplugin/settingsdatabase.cpp
index 8d17e74403b..6c83e094a90 100644
--- a/src/plugins/coreplugin/settingsdatabase.cpp
+++ b/src/plugins/coreplugin/settingsdatabase.cpp
@@ -112,7 +112,7 @@ SettingsDatabase::SettingsDatabase(const QString &path,
     fileName += application;
     fileName += QLatin1String(".db");
 
-    d->m_db = QSqlDatabase::addDatabase("QSQLITE", QLatin1String("settings"));
+    d->m_db = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), QLatin1String("settings"));
     d->m_db.setDatabaseName(fileName);
     if (!d->m_db.open()) {
         qWarning().nospace() << "Warning: Failed to open settings database at " << fileName << " ("
diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp
index 91e3bf5338a..8218814e7e5 100644
--- a/src/plugins/coreplugin/sidebar.cpp
+++ b/src/plugins/coreplugin/sidebar.cpp
@@ -154,8 +154,10 @@ void SideBar::setCloseWhenEmpty(bool value)
 
 void SideBar::makeItemAvailable(SideBarItem *item)
 {
-    QMap<QString, QWeakPointer<SideBarItem> >::const_iterator it = d->m_itemMap.constBegin();
-    while (it != d->m_itemMap.constEnd()) {
+    typedef QMap<QString, QWeakPointer<SideBarItem> >::const_iterator Iterator;
+
+    const Iterator cend = d->m_itemMap.constEnd();
+    for (Iterator it = d->m_itemMap.constBegin(); it != cend ; ++it) {
         if (it.value().data() == item) {
             d->m_availableItemIds.append(it.key());
             d->m_availableItemTitles.append(it.value().data()->title());
@@ -165,7 +167,6 @@ void SideBar::makeItemAvailable(SideBarItem *item)
             //updateWidgets();
             break;
         }
-        ++it;
     }
 }
 
@@ -270,10 +271,10 @@ void SideBar::saveSettings(QSettings *settings, const QString &name)
         views.append(iter.key());
     }
 
-    settings->setValue(prefix + "Views", views);
-    settings->setValue(prefix + "Visible", true);
-    settings->setValue(prefix + "VerticalPosition", saveState());
-    settings->setValue(prefix + "Width", width());
+    settings->setValue(prefix + QLatin1String("Views"), views);
+    settings->setValue(prefix + QLatin1String("Visible"), true);
+    settings->setValue(prefix + QLatin1String("VerticalPosition"), saveState());
+    settings->setValue(prefix + QLatin1String("Width"), width());
 }
 
 void SideBar::closeAllWidgets()
@@ -288,8 +289,9 @@ void SideBar::readSettings(QSettings *settings, const QString &name)
 
     closeAllWidgets();
 
-    if (settings->contains(prefix + "Views")) {
-        QStringList views = settings->value(prefix + "Views").toStringList();
+    const QString viewsKey = prefix + QLatin1String("Views");
+    if (settings->contains(viewsKey)) {
+        QStringList views = settings->value(viewsKey).toStringList();
         if (views.count()) {
             foreach (const QString &id, views)
                 insertSideBarWidget(d->m_widgets.count(), id);
@@ -302,29 +304,33 @@ void SideBar::readSettings(QSettings *settings, const QString &name)
             insertSideBarWidget(d->m_widgets.count(), id);
     }
 
-    if (settings->contains(prefix + "Visible"))
-        setVisible(settings->value(prefix + "Visible").toBool());
+    const QString visibleKey = prefix + QLatin1String("Visible");
+    if (settings->contains(visibleKey))
+        setVisible(settings->value(visibleKey).toBool());
 
-    if (settings->contains(prefix + "VerticalPosition"))
-        restoreState(settings->value(prefix + "VerticalPosition").toByteArray());
+    const QString positionKey = prefix + QLatin1String("VerticalPosition");
+    if (settings->contains(positionKey))
+        restoreState(settings->value(positionKey).toByteArray());
 
-    if (settings->contains(prefix + "Width")) {
+    const QString widthKey = prefix + QLatin1String("Width");
+    if (settings->contains(widthKey)) {
         QSize s = size();
-        s.setWidth(settings->value(prefix + "Width").toInt());
+        s.setWidth(settings->value(widthKey).toInt());
         resize(s);
     }
 }
 
 void SideBar::activateItem(SideBarItem *item)
 {
-    QMap<QString, QWeakPointer<SideBarItem> >::const_iterator it = d->m_itemMap.constBegin();
+    typedef QMap<QString, QWeakPointer<SideBarItem> >::const_iterator Iterator;
+
     QString id;
-    while (it != d->m_itemMap.constEnd()) {
+    const Iterator cend = d->m_itemMap.constEnd();
+    for (Iterator it = d->m_itemMap.constBegin(); it != cend ; ++it) {
         if (it.value().data() == item) {
             id = it.key();
             break;
         }
-        ++it;
     }
 
     if (id.isEmpty())
diff --git a/src/plugins/coreplugin/vcsmanager.cpp b/src/plugins/coreplugin/vcsmanager.cpp
index 0c8ca6f40bf..cc68c0d259f 100644
--- a/src/plugins/coreplugin/vcsmanager.cpp
+++ b/src/plugins/coreplugin/vcsmanager.cpp
@@ -56,8 +56,6 @@ static inline VersionControlList allVersionControls()
     return ExtensionSystem::PluginManager::instance()->getObjects<IVersionControl>();
 }
 
-static const QChar SLASH('/');
-
 // ---- VCSManagerPrivate:
 // Maintains a cache of top-level directory->version control.
 
@@ -100,10 +98,10 @@ public:
     VcsInfo *findUpInCache(const QString &directory)
     {
         VcsInfo *result = 0;
-
+        const QChar slash = QLatin1Char('/');
         // Split the path, trying to find the matching repository. We start from the reverse
         // in order to detected nested repositories correctly (say, a git checkout under SVN).
-        for (int pos = directory.size() - 1; pos >= 0; pos = directory.lastIndexOf(SLASH, pos) - 1) {
+        for (int pos = directory.size() - 1; pos >= 0; pos = directory.lastIndexOf(slash, pos) - 1) {
             const QString directoryPart = directory.left(pos);
             result = findInCache(directoryPart);
             if (result != 0)
@@ -147,10 +145,15 @@ public:
             m_vcsInfoList.append(newInfo);
 
         QString tmpDir = dir;
+        const QChar slash = QLatin1Char('/');
         while (tmpDir.count() >= topLevel.count() && tmpDir.count() > 0) {
             m_cachedMatches.insert(tmpDir, newInfo);
-            int slashPos = tmpDir.lastIndexOf(SLASH);
-            tmpDir = slashPos >= 0 ? tmpDir.left(tmpDir.lastIndexOf(SLASH)) : QString();
+            const int slashPos = tmpDir.lastIndexOf(slash);
+            if (slashPos >= 0) {
+                tmpDir.truncate(slashPos);
+            } else {
+                tmpDir.clear();
+            }
         }
     }
 
@@ -202,6 +205,8 @@ void VcsManager::resetVersionControlForDirectory(const QString &inputDirectory)
 IVersionControl* VcsManager::findVersionControlForDirectory(const QString &inputDirectory,
                                                             QString *topLevelDirectory)
 {
+    typedef QPair<QString, IVersionControl *> StringVersionControlPair;
+    typedef QList<StringVersionControlPair> StringVersionControlPairs;
     if (inputDirectory.isEmpty())
         return 0;
 
@@ -217,12 +222,12 @@ IVersionControl* VcsManager::findVersionControlForDirectory(const QString &input
 
     // Nothing: ask the IVersionControls directly.
     const VersionControlList versionControls = allVersionControls();
-    QList<QPair<QString, IVersionControl *> > allThatCanManage;
+    StringVersionControlPairs allThatCanManage;
 
     foreach (IVersionControl * versionControl, versionControls) {
         QString topLevel;
         if (versionControl->managesDirectory(directory, &topLevel))
-            allThatCanManage.push_back(qMakePair(topLevel, versionControl));
+            allThatCanManage.push_back(StringVersionControlPair(topLevel, versionControl));
     }
 
     // To properly find a nested repository (say, git checkout inside SVN),
@@ -240,11 +245,14 @@ IVersionControl* VcsManager::findVersionControlForDirectory(const QString &input
 
     // Register Vcs(s) with the cache
     QString tmpDir = directory;
-    for (QList<QPair<QString, IVersionControl *> >::const_iterator i = allThatCanManage.constBegin();
-         i != allThatCanManage.constEnd(); ++i) {
+    const QChar slash = QLatin1Char('/');
+    const StringVersionControlPairs::const_iterator cend = allThatCanManage.constEnd();
+    for (StringVersionControlPairs::const_iterator i = allThatCanManage.constBegin(); i != cend; ++i) {
         d->cache(i->second, i->first, tmpDir);
         tmpDir = i->first;
-        tmpDir = tmpDir.left(tmpDir.lastIndexOf(SLASH));
+        const int slashPos = tmpDir.lastIndexOf(slash);
+        if (slashPos >= 0)
+            tmpDir.truncate(slashPos);
     }
 
     // return result
-- 
GitLab