diff --git a/dist/changes-1.1.0 b/dist/changes-1.1.0
index 207a086fb0635627fad115aea7f3051fa70bb7cc..28e9f0c9b612e0c27ce1f29f4ca580822e9dddac 100644
--- a/dist/changes-1.1.0
+++ b/dist/changes-1.1.0
@@ -77,5 +77,3 @@ Lots of improvements to
 Additional credits go to:
    * Martin Aumueller <aumuell@reserv.at> (FakeVim improvements)
    * Kris Wong (different patches)
-
-//TODO: this refers to commit c6419ff008bbf1afd2dfa4ed18a09de039cccef6
diff --git a/src/app/app.pro b/src/app/app.pro
index ee298d521d664f6808bd82e0e04af420f5a647ae..69f677dacb7d94501b94c7a7806a5320ce2e094c 100644
--- a/src/app/app.pro
+++ b/src/app/app.pro
@@ -44,6 +44,7 @@ unix:!macx {
     }
 
     target.files += $$OUT_PWD/$$DESTDIR/$$IDE_APP_WRAPPER
+    target.files += $$OUT_PWD/$$DESTDIR/$$IDE_APP_TARGET
     target.path  = /bin
     INSTALLS    += target
 
diff --git a/src/libs/cplusplus/ExpressionUnderCursor.cpp b/src/libs/cplusplus/ExpressionUnderCursor.cpp
index 9cbaeb97539dbc61a1df3d2ad014db5e4a60e99d..53dc9b4f2d114efa47d7c8b9e868939eb97121bd 100644
--- a/src/libs/cplusplus/ExpressionUnderCursor.cpp
+++ b/src/libs/cplusplus/ExpressionUnderCursor.cpp
@@ -265,9 +265,14 @@ int ExpressionUnderCursor::startOfFunctionCall(const QTextCursor &cursor)
             break;
         else if (tk.is(T_LPAREN))
             return startPosition + tk.position();
-        else if (tk.is(T_RPAREN))
-            index = startOfMatchingBrace(tokens, index);
-        else
+        else if (tk.is(T_RPAREN)) {
+            int matchingBrace = startOfMatchingBrace(tokens, index);
+
+            if (matchingBrace == index) // If no matching brace found
+                return -1;
+
+            index = matchingBrace;
+        } else
             --index;
     }
 
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index 959bc243097b811a41fa59fa04836d83424e92c2..4629aa3d5fc4c7b2cada0d66392b04bc7f601621 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -171,9 +171,16 @@ QString CMakeManager::findQtDir(const ProjectExplorer::Environment &env)
             QFileInfo qmake(path + "/" + possibleCommand);
             if (qmake.exists()) {
                 if (!qtVersionForQMake(qmake.absoluteFilePath()).isNull()) {
-                    QDir dir(qmake.absoluteDir());
-                    dir.cdUp();
-                    return dir.absolutePath();
+                    QProcess proc;
+                    proc.start(qmake.absoluteFilePath(), QStringList() << "-query" << "QT_INSTALL_DATA");
+                    if (proc.waitForFinished()) {
+                        return proc.readAll().trimmed();
+                    } else {
+                        proc.kill();
+                        QDir dir(qmake.absoluteDir());
+                        dir.cdUp();
+                        return dir.absolutePath();
+                    }
                 }
             }
         }
diff --git a/src/plugins/coreplugin/editormanager/editorview.cpp b/src/plugins/coreplugin/editormanager/editorview.cpp
index 930a20c2dfd4291cd85b6b969a9c1b129dc3091d..48edfc1a009c2bfbde20070664988b8e6bfe137d 100644
--- a/src/plugins/coreplugin/editormanager/editorview.cpp
+++ b/src/plugins/coreplugin/editormanager/editorview.cpp
@@ -835,6 +835,24 @@ QSize SplitterOrView::minimumSizeHint() const
     return QSize(64, 64);
 }
 
+QSplitter *SplitterOrView::takeSplitter()
+{
+    QSplitter *oldSplitter = m_splitter;
+    if (m_splitter)
+        m_layout->removeWidget(m_splitter);
+    m_splitter = 0;
+    return oldSplitter;
+}
+
+EditorView *SplitterOrView::takeView()
+{
+    EditorView *oldView = m_view;
+    if (m_view)
+        m_layout->removeWidget(m_view);
+    m_view = 0;
+    return oldView;
+}
+
 void SplitterOrView::split(Qt::Orientation orientation)
 {
     Q_ASSERT(m_view && m_splitter == 0);
@@ -903,13 +921,12 @@ void SplitterOrView::unsplit()
     Q_ASSERT(m_splitter->count() == 1);
     EditorManager *em = CoreImpl::instance()->editorManager();
     SplitterOrView *childSplitterOrView = qobject_cast<SplitterOrView*>(m_splitter->widget(0));
-
     QSplitter *oldSplitter = m_splitter;
     m_splitter = 0;
 
     if (childSplitterOrView->isSplitter()) {
         Q_ASSERT(childSplitterOrView->view() == 0);
-        m_splitter = childSplitterOrView->splitter();
+        m_splitter = childSplitterOrView->takeSplitter();
         m_layout->addWidget(m_splitter);
         m_layout->setCurrentWidget(m_splitter);
     } else {
@@ -923,8 +940,7 @@ void SplitterOrView::unsplit()
             }
             em->emptyView(childView);
         } else {
-            m_view = childView;
-            childSplitterOrView->m_layout->removeWidget(m_view);
+            m_view = childSplitterOrView->takeView();
             m_layout->addWidget(m_view);
         }
         m_layout->setCurrentWidget(m_view);
diff --git a/src/plugins/coreplugin/editormanager/editorview.h b/src/plugins/coreplugin/editormanager/editorview.h
index d198155ca3d95921fe3dfb67c3168df904a3321f..13eb957b299a1655e6eb14bfa1e8e720b6a91c0b 100644
--- a/src/plugins/coreplugin/editormanager/editorview.h
+++ b/src/plugins/coreplugin/editormanager/editorview.h
@@ -197,6 +197,8 @@ public:
     inline bool hasEditors() const { return m_view && m_view->editorCount() != 0; }
     inline EditorView *view() const { return m_view; }
     inline QSplitter *splitter() const { return m_splitter; }
+    QSplitter *takeSplitter();
+    EditorView *takeView();
 
 
     SplitterOrView *findView(Core::IEditor *editor);
diff --git a/src/plugins/coreplugin/ioutputpane.h b/src/plugins/coreplugin/ioutputpane.h
index 5977ce14d24c20ecbc6d17a9c22c494ed2fe7161..e38e9fbe8b36269d1757d8d7041f5f14bea718e0 100644
--- a/src/plugins/coreplugin/ioutputpane.h
+++ b/src/plugins/coreplugin/ioutputpane.h
@@ -47,7 +47,7 @@ public:
     virtual ~IOutputPane() {}
 
     virtual QWidget *outputWidget(QWidget *parent) = 0;
-    virtual QList<QWidget*> toolBarWidgets(void) const = 0;
+    virtual QList<QWidget*> toolBarWidgets() const = 0;
     virtual QString name() const = 0;
 
     // -1 don't show in statusBar
diff --git a/src/plugins/coreplugin/messageoutputwindow.h b/src/plugins/coreplugin/messageoutputwindow.h
index a537366f3fc7c422cd0b06556d534c38c33bf908..70e1308e0dd577003f60dc6b08e768c690cfe6bf 100644
--- a/src/plugins/coreplugin/messageoutputwindow.h
+++ b/src/plugins/coreplugin/messageoutputwindow.h
@@ -48,7 +48,7 @@ public:
     ~MessageOutputWindow();
 
     QWidget *outputWidget(QWidget *parent);
-    QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); }
+    QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); }
 
     QString name() const;
     int priorityInStatusBar() const;
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index c616a7b8a9395e371e61930dda2641005e2f5e31..8ca868ad75d03907eff91a5399ac5d0a4516c27b 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -1073,20 +1073,6 @@ void CPPEditor::unCommentSelection()
     cursor.endEditBlock();
 }
 
-int CPPEditor::endOfNameAtPosition(int pos)
-{
-    if (pos == -1)
-        pos = position();
-
-    QChar chr = characterAt(pos);
-
-    // Skip to the start of a name
-    while (chr.isLetterOrNumber() || chr == QLatin1Char('_'))
-        chr = characterAt(++pos);
-
-    return pos;
-}
-
 CPPEditor::Link CPPEditor::linkToSymbol(CPlusPlus::Symbol *symbol)
 {
     const QString fileName = QString::fromUtf8(symbol->fileName(),
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index bd30f3031f9dd72a1fd172e7ff0202d44e43894a..ae352b8d6d503e9b7afa6b47ffb4d24ef4be6f84 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -127,8 +127,6 @@ private:
 
     void createToolBar(CPPEditorEditable *editable);
 
-    int endOfNameAtPosition(int pos);
-
     struct Link
     {
         Link(const QString &fileName = QString(),
diff --git a/src/plugins/debugger/breakwindow.cpp b/src/plugins/debugger/breakwindow.cpp
index 308d565a3e9d89c421e2f4fde8cbfd9879f40055..a571fafae506cdd1d1f34c16786e99fb1ca493fd 100644
--- a/src/plugins/debugger/breakwindow.cpp
+++ b/src/plugins/debugger/breakwindow.cpp
@@ -85,15 +85,15 @@ void BreakWindow::contextMenuEvent(QContextMenuEvent *ev)
 {
     QMenu menu;
     QModelIndex index = indexAt(ev->pos());
-    QAction *act0 = new QAction("Delete breakpoint", &menu);
+    QAction *act0 = new QAction(tr("Delete breakpoint"), &menu);
     act0->setEnabled(index.isValid());
-    QAction *act1 = new QAction("Adjust column widths to contents", &menu);
-    QAction *act2 = new QAction("Always adjust column widths to contents", &menu);
+    QAction *act1 = new QAction(tr("Adjust column widths to contents"), &menu);
+    QAction *act2 = new QAction(tr("Always adjust column widths to contents"), &menu);
     act2->setCheckable(true);
     act2->setChecked(m_alwaysResizeColumnsToContents);
-    QAction *act3 = new QAction("Edit condition...", &menu);
+    QAction *act3 = new QAction(tr("Edit condition..."), &menu);
     act0->setEnabled(index.isValid());
-    QAction *act4 = new QAction("Syncronize breakpoints", &menu);
+    QAction *act4 = new QAction(tr("Syncronize breakpoints"), &menu);
 
     menu.addAction(act0);
     menu.addAction(act3);
diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index ce5bc8e52779f8317dd174a52f74c557a56fc6cd..a2e2b6f06146be8cc98db6c69d9aedcaa640b89c 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -96,16 +96,7 @@ QString DebuggerSettings::dump()
     return out;
 }
 
-
-
-//////////////////////////////////////////////////////////////////////////
-//
-// Debugger specific actions and settings
-//
-//////////////////////////////////////////////////////////////////////////
-
-
-DebuggerSettings *theDebuggerSettings()
+DebuggerSettings *DebuggerSettings::instance()
 {
     static DebuggerSettings *instance = 0;
     if (instance)
@@ -117,18 +108,18 @@ DebuggerSettings *theDebuggerSettings()
 
     item = new SavedAction(instance);
     instance->insertItem(SettingsDialog, item);
-    item->setText(QObject::tr("Debugger properties..."));
+    item->setText(tr("Debugger properties..."));
 
     //
     // View
     //
     item = new SavedAction(instance);
     instance->insertItem(AdjustColumnWidths, item);
-    item->setText(QObject::tr("Adjust column widths to contents"));
+    item->setText(tr("Adjust column widths to contents"));
 
     item = new SavedAction(instance);
     instance->insertItem(AlwaysAdjustColumnWidths, item);
-    item->setText(QObject::tr("Always adjust column widths to contents"));
+    item->setText(tr("Always adjust column widths to contents"));
     item->setCheckable(true);
 
     //
@@ -136,15 +127,15 @@ DebuggerSettings *theDebuggerSettings()
     //
     item = new SavedAction(instance);
     instance->insertItem(WatchExpression, item);
-    item->setTextPattern(QObject::tr("Watch expression \"%1\""));
+    item->setTextPattern(tr("Watch expression \"%1\""));
 
     item = new SavedAction(instance);
     instance->insertItem(RemoveWatchExpression, item);
-    item->setTextPattern(QObject::tr("Remove watch expression \"%1\""));
+    item->setTextPattern(tr("Remove watch expression \"%1\""));
 
     item = new SavedAction(instance);
     instance->insertItem(WatchExpressionInWindow, item);
-    item->setTextPattern(QObject::tr("Watch expression \"%1\" in separate window"));
+    item->setTextPattern(tr("Watch expression \"%1\" in separate window"));
 
     item = new SavedAction(instance);
     instance->insertItem(AssignValue, item);
@@ -154,11 +145,11 @@ DebuggerSettings *theDebuggerSettings()
 
     item = new SavedAction(instance);
     instance->insertItem(ExpandItem, item);
-    item->setText(QObject::tr("Expand item"));
+    item->setText(tr("Expand item"));
 
     item = new SavedAction(instance);
     instance->insertItem(CollapseItem, item);
-    item->setText(QObject::tr("Collapse item"));
+    item->setText(tr("Collapse item"));
 
     //
     // DebuggingHelper
@@ -167,7 +158,7 @@ DebuggerSettings *theDebuggerSettings()
     instance->insertItem(UseDebuggingHelpers, item);
     item->setDefaultValue(true);
     item->setSettingsKey("DebugMode", "UseDebuggingHelper");
-    item->setText(QObject::tr("Use Debugging Helper"));
+    item->setText(tr("Use Debugging Helper"));
     item->setCheckable(true);
     item->setDefaultValue(true);
 
@@ -183,19 +174,19 @@ DebuggerSettings *theDebuggerSettings()
     item = new SavedAction(instance);
     instance->insertItem(DebugDebuggingHelpers, item);
     item->setSettingsKey("DebugMode", "DebugDebuggingHelpers");
-    item->setText(QObject::tr("Debug debugging helper"));
+    item->setText(tr("Debug debugging helper"));
     item->setCheckable(true);
 
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Recheck debugging helper availability"));
+    item->setText(tr("Recheck debugging helper availability"));
     instance->insertItem(RecheckDebuggingHelpers, item);
 
     //
     // Breakpoints
     //
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Syncronize breakpoints"));
+    item->setText(tr("Syncronize breakpoints"));
     instance->insertItem(SynchronizeBreakpoints, item);
 
     //
@@ -206,7 +197,7 @@ DebuggerSettings *theDebuggerSettings()
     registerFormatGroup->setExclusive(true);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Hexadecimal"));
+    item->setText(tr("Hexadecimal"));
     item->setCheckable(true);
     item->setSettingsKey("DebugMode", "FormatHexadecimal");
     item->setChecked(true);
@@ -214,35 +205,35 @@ DebuggerSettings *theDebuggerSettings()
     registerFormatGroup->addAction(item);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Decimal"));
+    item->setText(tr("Decimal"));
     item->setCheckable(true);
     item->setSettingsKey("DebugMode", "FormatDecimal");
     instance->insertItem(FormatDecimal, item);
     registerFormatGroup->addAction(item);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Octal"));
+    item->setText(tr("Octal"));
     item->setCheckable(true);
     item->setSettingsKey("DebugMode", "FormatOctal");
     instance->insertItem(FormatOctal, item);
     registerFormatGroup->addAction(item);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Binary"));
+    item->setText(tr("Binary"));
     item->setCheckable(true);
     item->setSettingsKey("DebugMode", "FormatBinary");
     instance->insertItem(FormatBinary, item);
     registerFormatGroup->addAction(item);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Raw"));
+    item->setText(tr("Raw"));
     item->setCheckable(true);
     item->setSettingsKey("DebugMode", "FormatRaw");
     instance->insertItem(FormatRaw, item);
     registerFormatGroup->addAction(item);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Natural"));
+    item->setText(tr("Natural"));
     item->setCheckable(true);
     item->setSettingsKey("DebugMode", "FormatNatural");
     instance->insertItem(FormatNatural, item);
@@ -266,13 +257,13 @@ DebuggerSettings *theDebuggerSettings()
 
     item = new SavedAction(instance);
     item->setSettingsKey("DebugMode", "AutoQuit");
-    item->setText(QObject::tr("Automatically quit debugger"));
+    item->setText(tr("Automatically quit debugger"));
     item->setCheckable(true);
     instance->insertItem(AutoQuit, item);
 
     item = new SavedAction(instance);
     item->setSettingsKey("DebugMode", "UseToolTips");
-    item->setText(QObject::tr("Use tooltips when debugging"));
+    item->setText(tr("Use tooltips when debugging"));
     item->setCheckable(true);
     instance->insertItem(UseToolTips, item);
 
@@ -283,13 +274,13 @@ DebuggerSettings *theDebuggerSettings()
 
     item = new SavedAction(instance);
     item->setSettingsKey("DebugMode", "ListSourceFiles");
-    item->setText(QObject::tr("List source files"));
+    item->setText(tr("List source files"));
     item->setCheckable(true);
     instance->insertItem(ListSourceFiles, item);
 
     item = new SavedAction(instance);
     item->setSettingsKey("DebugMode", "SkipKnownFrames");
-    item->setText(QObject::tr("Skip known frames"));
+    item->setText(tr("Skip known frames"));
     item->setCheckable(true);
     instance->insertItem(SkipKnownFrames, item);
 
@@ -315,29 +306,35 @@ DebuggerSettings *theDebuggerSettings()
     instance->insertItem(MaximalStackDepth, item);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Reload full stack"));
+    item->setText(tr("Reload full stack"));
     instance->insertItem(ExpandStack, item);
 
     item = new SavedAction(instance);
-    item->setText(QObject::tr("Execute line"));
+    item->setText(tr("Execute line"));
     instance->insertItem(ExecuteCommand, item);
 
     return instance;
 }
 
+//////////////////////////////////////////////////////////////////////////
+//
+// DebuggerActions
+//
+//////////////////////////////////////////////////////////////////////////
+
 SavedAction *theDebuggerAction(int code)
 {
-    return theDebuggerSettings()->item(code);
+    return DebuggerSettings::instance()->item(code);
 }
 
 bool theDebuggerBoolSetting(int code)
 {
-    return theDebuggerSettings()->item(code)->value().toBool();
+    return DebuggerSettings::instance()->item(code)->value().toBool();
 }
 
 QString theDebuggerStringSetting(int code)
 {
-    return theDebuggerSettings()->item(code)->value().toString();
+    return DebuggerSettings::instance()->item(code)->value().toString();
 }
 
 } // namespace Internal
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index 44b9343c1748c0a9ffb9bf8f0bebd2015002d5d0..4b0ebd66c86f71b5331b6c720921c3421a482118 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -50,6 +50,8 @@ public:
 
     QString dump();
 
+    static DebuggerSettings *instance();
+
 public slots:
     void readSettings(QSettings *settings);
     void writeSettings(QSettings *settings);
@@ -121,7 +123,6 @@ enum DebuggerActionCode
 };
 
 // singleton access
-DebuggerSettings *theDebuggerSettings();
 Core::Utils::SavedAction *theDebuggerAction(int code);
 
 // convienience
diff --git a/src/plugins/debugger/debuggeroutputwindow.h b/src/plugins/debugger/debuggeroutputwindow.h
index 904e04561996f72491356eef68ace8dc250a7fd7..a912b7e2a47b1a215431369e6c33e312111d87b9 100644
--- a/src/plugins/debugger/debuggeroutputwindow.h
+++ b/src/plugins/debugger/debuggeroutputwindow.h
@@ -46,7 +46,7 @@ public:
     DebuggerOutputWindow(QWidget *parent = 0);
 
     QWidget *outputWidget(QWidget *) { return this; }
-    QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); }
+    QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); }
 
     QString name() const { return windowTitle(); }
     void visibilityChanged(bool /*visible*/) {}
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 7cff0f557ede015385f2daf91046f89c1dc63723..ea41b9854eae2b38c0c852d0a49e5b2a199363d9 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -498,8 +498,9 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess
 
     m_gdbRunningContext = uidm->uniqueIdentifier(Constants::GDBRUNNING);
 
+    // FIXME: make this a global action
     m_breakpointMarginAction = new QAction(this);
-    m_breakpointMarginAction->setText("Toggle Breakpoint");
+    m_breakpointMarginAction->setText(tr("Toggle Breakpoint"));
     //m_breakpointMarginAction->setIcon(QIcon(":/gdbdebugger/images/breakpoint.svg"));
     connect(m_breakpointMarginAction, SIGNAL(triggered()),
         this, SLOT(breakpointMarginActionTriggered()));
@@ -976,7 +977,7 @@ void DebuggerPlugin::writeSettings() const
     QTC_ASSERT(m_manager->mainWindow(), return);
 
     QSettings *s = settings();
-    theDebuggerSettings()->writeSettings(s);
+    DebuggerSettings::instance()->writeSettings(s);
     s->beginGroup(QLatin1String("DebugMode"));
     s->setValue("State", m_manager->mainWindow()->saveState());
     s->setValue("Locked", m_toggleLockedAction->isChecked());
@@ -986,7 +987,7 @@ void DebuggerPlugin::writeSettings() const
 void DebuggerPlugin::readSettings()
 {
     QSettings *s = settings();
-    theDebuggerSettings()->readSettings(s);
+    DebuggerSettings::instance()->readSettings(s);
 
     QString defaultCommand("gdb");
 #if defined(Q_OS_WIN32)
diff --git a/src/plugins/debugger/disassemblerhandler.cpp b/src/plugins/debugger/disassemblerhandler.cpp
index 36306eaa9e0ef417faef05c523df49f791b25236..9ef9efec9c636bba22cc46ecc407537b7f204e5d 100644
--- a/src/plugins/debugger/disassemblerhandler.cpp
+++ b/src/plugins/debugger/disassemblerhandler.cpp
@@ -121,13 +121,11 @@ QVariant DisassemblerModel::headerData(int section, Qt::Orientation orientation,
     int role) const
 {
     if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
-        static const char * const headers[] = {
-            QT_TR_NOOP("Address"),
-            QT_TR_NOOP("Symbol"),
-            QT_TR_NOOP("Mnemonic"),
+        switch (section) {
+            case 1: return DisassemblerHandler::tr("Address");
+            case 2: return DisassemblerHandler::tr("Symbol");
+            case 3: return DisassemblerHandler::tr("Mnemonic");
         };
-        if (section < 3)
-            return tr(headers[section]);
     }
     return QVariant();
 }
diff --git a/src/plugins/debugger/disassemblerwindow.cpp b/src/plugins/debugger/disassemblerwindow.cpp
index ef01b179d7d14a477a65665de52edf69c4c68f84..b65613c4df88403e3f3a7ee3620117e8c92de3c5 100644
--- a/src/plugins/debugger/disassemblerwindow.cpp
+++ b/src/plugins/debugger/disassemblerwindow.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "disassemblerwindow.h"
+#include "debuggeractions.h"
 
 #include <QAction>
 #include <QDebug>
@@ -68,24 +69,23 @@ void DisassemblerWindow::resizeEvent(QResizeEvent *ev)
 void DisassemblerWindow::contextMenuEvent(QContextMenuEvent *ev)
 {
     QMenu menu;
-    //QTreeWidgetItem *item = itemAt(ev->pos());
-    QAction *act1 = new QAction("Adjust column widths to contents", &menu);
-    QAction *act2 = new QAction("Always adjust column widths to contents", &menu);
+
+    QAction *act1 = new QAction(tr("Adjust column widths to contents"), &menu);
+    QAction *act2 = new QAction(tr("Always adjust column widths to contents"), &menu);
     act2->setCheckable(true);
+    // FIXME: make this a SavedAction
     act2->setChecked(m_alwaysResizeColumnsToContents);
-    QAction *act3 = new QAction("Reload disassembler listing", &menu);
-    QAction *act4 = new QAction("Always reload disassembler listing", &menu);
+    QAction *act3 = new QAction(tr("Reload disassembler listing"), &menu);
+    QAction *act4 = new QAction(tr("Always reload disassembler listing"), &menu);
     act4->setCheckable(true);
     act4->setChecked(m_alwaysReloadContents);
-    //if (item) {
-    //    menu.addAction(act0);
-    //    menu.addSeparator();
-    //}
     menu.addAction(act3);
     //menu.addAction(act4);
     menu.addSeparator();
     menu.addAction(act1);
     menu.addAction(act2);
+    menu.addSeparator();
+    menu.addAction(theDebuggerAction(SettingsDialog));
 
     QAction *act = menu.exec(ev->globalPos());
 
diff --git a/src/plugins/debugger/gdbengine.cpp b/src/plugins/debugger/gdbengine.cpp
index ecab614f453d91a4de4c177da405bc262660ef71..906b38a72b1fb8398b381b3ab16e486b5fd794c8 100644
--- a/src/plugins/debugger/gdbengine.cpp
+++ b/src/plugins/debugger/gdbengine.cpp
@@ -47,6 +47,7 @@
 #include "debuggerdialogs.h"
 
 #include <utils/qtcassert.h>
+#include <coreplugin/icore.h>
 
 #include <QtCore/QDebug>
 #include <QtCore/QDir>
@@ -60,6 +61,8 @@
 #include <QtGui/QMainWindow>
 #include <QtGui/QMessageBox>
 #include <QtGui/QToolTip>
+#include <QtGui/QDialogButtonBox>
+#include <QtGui/QPushButton>
 
 #if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
 #include <unistd.h>
@@ -233,6 +236,8 @@ void GdbEngine::initializeConnections()
 
     connect(theDebuggerAction(ExpandStack), SIGNAL(triggered()),
         this, SLOT(reloadFullStack()));
+    connect(theDebuggerAction(MaximalStackDepth), SIGNAL(triggered()),
+        this, SLOT(reloadFullStack()));
 }
 
 void GdbEngine::initializeVariables()
@@ -1534,7 +1539,7 @@ int GdbEngine::currentFrame() const
 
 bool GdbEngine::startDebugger()
 {
-    debugMessage(theDebuggerSettings()->dump());
+    debugMessage(DebuggerSettings::instance()->dump());
     QStringList gdbArgs;
 
     if (m_gdbProc.state() != QProcess::NotRunning) {
@@ -2727,7 +2732,7 @@ void GdbEngine::setToolTipExpression(const QPoint &pos, const QString &exp0)
 
     if (!hasLetterOrNumber(exp)) {
         QToolTip::showText(m_toolTipPos,
-            "'" + exp + "' contains no identifier");
+            tr("'%1' contains no identifier").arg(exp));
         return;
     }
 
@@ -2750,8 +2755,8 @@ void GdbEngine::setToolTipExpression(const QPoint &pos, const QString &exp0)
 
     if (hasSideEffects(exp)) {
         QToolTip::showText(m_toolTipPos,
-            "Cowardly refusing to evaluate expression '" + exp
-                + "' with potential side effects");
+            tr("Cowardly refusing to evaluate expression '%1' "
+               "with potential side effects").arg(exp));
         return;
     }
 
@@ -2763,7 +2768,7 @@ void GdbEngine::setToolTipExpression(const QPoint &pos, const QString &exp0)
             qDebug() << "THIS IN ROW " << i;
             if (m_currentLocals.childAt(i).type.startsWith(exp)) {
                 QToolTip::showText(m_toolTipPos,
-                    exp + ": type of current 'this'");
+                    tr("%1: type of current 'this'").arg(exp));
                 qDebug() << " TOOLTIP CRASH SUPPRESSED";
                 return;
             }
@@ -3001,12 +3006,10 @@ void GdbEngine::runDebuggingHelper(const WatchData &data0, bool dumpChildren)
     } else if (outertype == m_namespace + "QObjectSlot"
             || outertype == m_namespace + "QObjectSignal") {
         // we need the number out of something like
-        // iname="local.ob.slots.[2]deleteLater()"
-        int lastOpened = data.iname.lastIndexOf('[');
-        int lastClosed = data.iname.lastIndexOf(']');
-        QString slotNumber = "-1";
-        if (lastOpened != -1 && lastClosed != -1)
-            slotNumber = data.iname.mid(lastOpened + 1, lastClosed - lastOpened - 1);
+        // iname="local.ob.slots.2" // ".deleteLater()"?
+        int pos = data.iname.lastIndexOf('.');
+        QString slotNumber = data.iname.mid(pos + 1);
+        QTC_ASSERT(slotNumber.toInt() != -1, /**/);
         extraArgs[0] = slotNumber;
     } else if (outertype == m_namespace + "QMap" || outertype == m_namespace + "QMultiMap") {
         QString nodetype;
@@ -3329,7 +3332,7 @@ void GdbEngine::updateWatchModel2()
                     "(" + data->type + ") " + data->exp + " = " + data->value);
         } else {
             QToolTip::showText(m_toolTipPos,
-                "Cannot evaluate expression: " + m_toolTipExpression);
+                tr("Cannot evaluate expression: %1").arg(m_toolTipExpression));
         }
     }
 }
@@ -3952,9 +3955,23 @@ void GdbEngine::handleVarListChildren(const GdbResultRecord &record,
         foreach (const GdbMi &child, children.children())
             handleVarListChildrenHelper(child, data);
 
-        if (!isAccessSpecifier(data.variable.split('.').takeLast())) {
+        if (children.children().isEmpty()) {
+            // happens e.g. if no debug information is present or
+            // if the class really has no children
+            WatchData data1;
+            data1.iname = data.iname + ".child";
+            data1.value = tr("<no information>");
+            data1.childCount = 0;
+            data1.setAllUnneeded();
+            insertData(data1);
+            data.setAllUnneeded();
+            insertData(data);
+        } else if (!isAccessSpecifier(data.variable.split('.').takeLast())) {
             data.setChildrenUnneeded();
             insertData(data);
+        } else {
+            // this skips the spurious "public", "private" etc levels
+            // gdb produces
         }
     } else if (record.resultClass == GdbResultError) {
         data.setError(record.data.findChild("msg").data());
@@ -4040,6 +4057,29 @@ QString GdbEngine::dumperLibraryName() const
     return q->m_dumperLib;
 }
 
+void GdbEngine::showDebuggingHelperWarning()
+{
+    QMessageBox dialog(q->mainWindow());
+    QPushButton *qtPref = dialog.addButton(tr("Open Qt preferences"), QMessageBox::ActionRole);
+    QPushButton *helperOff = dialog.addButton(tr("Turn helper usage off"), QMessageBox::ActionRole);
+    QPushButton *justContinue = dialog.addButton(tr("Continue anyway"), QMessageBox::AcceptRole);
+    dialog.setDefaultButton(justContinue);
+    dialog.setWindowTitle(tr("Debugging helper missing"));
+    dialog.setText(tr("The debugger did not find the debugging helper library."));
+    dialog.setInformativeText(tr("The debugging helper is used to nicely format the values of Qt "
+                                 "data types and some STL data types. "
+                                 "It must be compiled for each Qt version, "
+                                 "you can do this in the Qt preferences page by selecting "
+                                 "a Qt installation and clicking on 'Rebuild' for the debugging "
+                                 "helper."));
+    dialog.exec();
+    if (dialog.clickedButton() == qtPref) {
+        Core::ICore::instance()->showOptionsDialog("Qt4", "Qt Versions");
+    } else if (dialog.clickedButton() == helperOff) {
+        theDebuggerAction(UseDebuggingHelpers)->setValue(qVariantFromValue(false), false);
+    }
+}
+
 void GdbEngine::tryLoadDebuggingHelpers()
 {
     if (m_debuggingHelperState != DebuggingHelperUninitialized)
@@ -4055,6 +4095,8 @@ void GdbEngine::tryLoadDebuggingHelpers()
             " %1  EXISTS: %2, EXECUTABLE: %3").arg(lib)
             .arg(QFileInfo(lib).exists())
             .arg(QFileInfo(lib).isExecutable()));
+        if (theDebuggerBoolSetting(UseDebuggingHelpers))
+            showDebuggingHelperWarning();
         return;
     }
 
diff --git a/src/plugins/debugger/gdbengine.h b/src/plugins/debugger/gdbengine.h
index 3b4b84fa59be049b4d4892f56b766bcbd2813350..aebb5da6373ad95f508c4a944fe4adf162330988 100644
--- a/src/plugins/debugger/gdbengine.h
+++ b/src/plugins/debugger/gdbengine.h
@@ -136,6 +136,7 @@ private:
     //
     // Own stuff
     //
+    void showDebuggingHelperWarning();
     int currentFrame() const;
     QString currentWorkingDirectory() const { return m_pwd; }
 
diff --git a/src/plugins/debugger/registerhandler.cpp b/src/plugins/debugger/registerhandler.cpp
index 12dd1d213162b36a8d5ecd0d32866ca594fe7912..2bb3ab289a7277ceca5a563d1537e947add38c76 100644
--- a/src/plugins/debugger/registerhandler.cpp
+++ b/src/plugins/debugger/registerhandler.cpp
@@ -75,10 +75,8 @@ QVariant RegisterHandler::data(const QModelIndex &index, int role) const
 
     if (role == Qt::DisplayRole) {
         switch (index.column()) {
-        case 0:
-            return reg.name;
-        case 1:
-            return reg.value;
+            case 0: return reg.name;
+            case 1: return reg.value;
         }
     }
     if (role == Qt::TextColorRole && reg.changed && index.column() == 1)
@@ -90,12 +88,10 @@ QVariant RegisterHandler::headerData(int section, Qt::Orientation orientation,
     int role) const
 {
     if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
-        static const char * const headers[] = {
-            QT_TR_NOOP("Name"),
-            QT_TR_NOOP("Value"),
+        switch (section) {
+            case 0: return tr("Name");
+            case 1: return tr("Value");
         };
-        if (section < 2)
-            return tr(headers[section]);
     }
     return QVariant();
 }
diff --git a/src/plugins/debugger/registerwindow.cpp b/src/plugins/debugger/registerwindow.cpp
index 03239d8875ab176e9e968505a81fcf8676fa8390..9af893b9e164508a1e8709b2182c8132d796234a 100644
--- a/src/plugins/debugger/registerwindow.cpp
+++ b/src/plugins/debugger/registerwindow.cpp
@@ -81,15 +81,15 @@ void RegisterWindow::contextMenuEvent(QContextMenuEvent *ev)
     //QString format = model()->property(PROPERTY_REGISTER_FORMAT).toString();
     //qDebug() << "FORMAT: " << format;
 
-    actions[Adjust] = menu.addAction("Adjust column widths to contents");
+    actions[Adjust] = menu.addAction(tr("Adjust column widths to contents"));
 
-    actions[AlwaysAdjust] = menu.addAction("Always adjust column widths to contents");
+    actions[AlwaysAdjust] = menu.addAction(tr("Always adjust column widths to contents"));
     actions[AlwaysAdjust]->setCheckable(true);
     actions[AlwaysAdjust]->setChecked(m_alwaysResizeColumnsToContents);
 
-    actions[Reload] = menu.addAction("Reload register listing");
+    actions[Reload] = menu.addAction(tr("Reload register listing"));
 
-    actions[AlwaysReload] = menu.addAction("Always reload register listing");
+    actions[AlwaysReload] = menu.addAction(tr("Always reload register listing"));
     actions[AlwaysReload]->setCheckable(true);
     actions[AlwaysReload]->setChecked(m_alwaysReloadContents);
 
diff --git a/src/plugins/debugger/scriptengine.cpp b/src/plugins/debugger/scriptengine.cpp
index 55b21cc7cc706d0ee6995249103d59933d1bbb9b..3ee8b7f8697b7a7a5e47e45d90340baef5637c2e 100644
--- a/src/plugins/debugger/scriptengine.cpp
+++ b/src/plugins/debugger/scriptengine.cpp
@@ -489,8 +489,8 @@ void ScriptEngine::setToolTipExpression(const QPoint &pos, const QString &exp0)
 
     if (hasSideEffects(exp)) {
         QToolTip::showText(m_toolTipPos,
-            "Cowardly refusing to evaluate expression '" + exp
-                + "' with potential side effects");
+            tr("Cowardly refusing to evaluate expression '%1' "
+               "with potential side effects").arg(exp));
         return;
     }
 
diff --git a/src/plugins/debugger/stackhandler.cpp b/src/plugins/debugger/stackhandler.cpp
index a02a80a3523dfff4a6cc69911706b67537c93c88..052d97b5151890180a3e03d3b55a1663946c44fc 100644
--- a/src/plugins/debugger/stackhandler.cpp
+++ b/src/plugins/debugger/stackhandler.cpp
@@ -53,10 +53,11 @@ bool StackFrame::isUsable() const
 ////////////////////////////////////////////////////////////////////////
 
 StackHandler::StackHandler(QObject *parent)
-  : QAbstractTableModel(parent), m_currentIndex(0)
+  : QAbstractTableModel(parent),
+    m_positionIcon(QIcon(":/gdbdebugger/images/location.svg")),
+    m_emptyIcon(QIcon(":/gdbdebugger/images/empty.svg"))
 {
-    m_emptyIcon = QIcon(":/gdbdebugger/images/empty.svg");
-    m_positionIcon = QIcon(":/gdbdebugger/images/location.svg");
+    m_currentIndex = 0;
     m_canExpand = false;
 }
 
@@ -78,7 +79,11 @@ QVariant StackHandler::data(const QModelIndex &index, int role) const
 
     if (index.row() == m_stackFrames.size()) {
         if (role == Qt::DisplayRole && index.column() == 0) 
-            return "<...>";
+            return tr("...");
+        if (role == Qt::DisplayRole && index.column() == 1) 
+            return tr("<More>");
+        if (role == Qt::DecorationRole && index.column() == 0)
+            return m_emptyIcon;
         return QVariant();
     }
 
@@ -115,15 +120,13 @@ QVariant StackHandler::data(const QModelIndex &index, int role) const
 QVariant StackHandler::headerData(int section, Qt::Orientation orientation, int role) const
 {
     if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
-        static const char * const headers[] = {
-            QT_TR_NOOP("Level"),
-            QT_TR_NOOP("Function"),
-            QT_TR_NOOP("File"),
-            QT_TR_NOOP("Line"),
-            QT_TR_NOOP("Address")
+        switch (section) {
+            case 0: return tr("Level");
+            case 1: return tr("Function");
+            case 2: return tr("File");
+            case 3: return tr("Line");
+            case 4: return tr("Address");
         };
-        if (section < 5)
-            return tr(headers[section]);
     }
     return QVariant();
 }
@@ -229,7 +232,7 @@ QVariant ThreadsHandler::data(const QModelIndex &index, int role) const
             return "???";
         }
     } else if (role == Qt::ToolTipRole) {
-        return "Thread: " + QString::number(m_threads.at(index.row()).id);
+        return tr("Thread: %1").arg(m_threads.at(index.row()).id);
     } else if (role == Qt::DecorationRole && index.column() == 0) {
         // Return icon that indicates whether this is the active stack frame
         return (index.row() == m_currentIndex) ? m_positionIcon : m_emptyIcon;
@@ -241,11 +244,8 @@ QVariant ThreadsHandler::data(const QModelIndex &index, int role) const
 QVariant ThreadsHandler::headerData(int section, Qt::Orientation orientation, int role) const
 {
     if (orientation == Qt::Horizontal && role == Qt::DisplayRole) {
-        static const char * const headers[] = {
-            QT_TR_NOOP("Thread ID"),
-        };
         if (section < 1)
-            return tr(headers[section]);
+            return tr("Thread ID");
     }
     return QVariant();
 }
diff --git a/src/plugins/debugger/stackhandler.h b/src/plugins/debugger/stackhandler.h
index 920436deef22079ba4618fb90becc413544f1af6..ba88b15b44771feff8b5389d4cfe202650b574b1 100644
--- a/src/plugins/debugger/stackhandler.h
+++ b/src/plugins/debugger/stackhandler.h
@@ -86,8 +86,8 @@ private:
 
     QList<StackFrame> m_stackFrames;
     int m_currentIndex;
-    QIcon m_positionIcon;
-    QIcon m_emptyIcon;
+    const QVariant m_positionIcon;
+    const QVariant m_emptyIcon;
     bool m_canExpand;
 };
 
diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp
index b618b98c55df4d6437addae36b7fb9433c30d7ae..9ccfb791d624198cae8e2de1a2506afb9d9f15d2 100644
--- a/src/plugins/debugger/watchhandler.cpp
+++ b/src/plugins/debugger/watchhandler.cpp
@@ -293,7 +293,7 @@ static QList<WatchData> initialSet()
     root.state = 0;
     root.level = 0;
     root.row = 0;
-    root.name = QLatin1String("Root");
+    root.name = WatchHandler::tr("Root");
     root.parentIndex = -1;
     root.childIndex.append(1);
     root.childIndex.append(2);
@@ -302,7 +302,7 @@ static QList<WatchData> initialSet()
 
     WatchData local;
     local.iname = QLatin1String("local");
-    local.name = QLatin1String("Locals");
+    local.name = WatchHandler::tr("Locals");
     local.state = 0;
     local.level = 1;
     local.row = 0;
@@ -311,7 +311,7 @@ static QList<WatchData> initialSet()
 
     WatchData tooltip;
     tooltip.iname = QLatin1String("tooltip");
-    tooltip.name = QLatin1String("Tooltip");
+    tooltip.name = WatchHandler::tr("Tooltip");
     tooltip.state = 0;
     tooltip.level = 1;
     tooltip.row = 1;
@@ -320,7 +320,7 @@ static QList<WatchData> initialSet()
 
     WatchData watch;
     watch.iname = QLatin1String("watch");
-    watch.name = QLatin1String("Watchers");
+    watch.name = WatchHandler::tr("Watchers");
     watch.state = 0;
     watch.level = 1;
     watch.row = 2;
@@ -711,13 +711,13 @@ void WatchHandler::rebuildModel()
                 dummy.row = 0;
                 if (i == 1) {
                     dummy.iname = QLatin1String("local.dummy");
-                    dummy.name  = QLatin1String("<No Locals>");
+                    dummy.name  = tr("<No Locals>");
                 } else if (i == 2) {
                     dummy.iname = QLatin1String("tooltip.dummy");
-                    dummy.name  = QLatin1String("<No Tooltip>");
+                    dummy.name  = tr("<No Tooltip>");
                 } else {
                     dummy.iname = QLatin1String("watch.dummy");
-                    dummy.name  = QLatin1String("<No Watchers>");
+                    dummy.name  = tr("<No Watchers>");
                 }
                 dummy.level = 2;
                 dummy.parentIndex = i;
diff --git a/src/plugins/debugger/watchwindow.cpp b/src/plugins/debugger/watchwindow.cpp
index 75c9c8c1336105e26c422ae459d96b9eeac67085..f6e2fd01cb831ffe6efd1398af0ca399fddfc5ec 100644
--- a/src/plugins/debugger/watchwindow.cpp
+++ b/src/plugins/debugger/watchwindow.cpp
@@ -164,8 +164,8 @@ void WatchWindow::keyPressEvent(QKeyEvent *ev)
 void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
 {
     QMenu menu;
-    QAction *act1 = new QAction("Adjust column widths to contents", &menu);
-    QAction *act2 = new QAction("Always adjust column widths to contents", &menu);
+    QAction *act1 = new QAction(tr("Adjust column widths to contents"), &menu);
+    QAction *act2 = new QAction(tr("Always adjust column widths to contents"), &menu);
     act2->setCheckable(true);
     act2->setChecked(m_alwaysResizeColumnsToContents);
 
@@ -201,7 +201,7 @@ void WatchWindow::contextMenuEvent(QContextMenuEvent *ev)
     else if (act == act2)
         setAlwaysResizeColumnsToContents(!m_alwaysResizeColumnsToContents);
     else if (act == act3)
-        theDebuggerAction(WatchExpression)->trigger("<Edit>");
+        theDebuggerAction(WatchExpression)->trigger(tr("<Edit>"));
 }
 
 void WatchWindow::resizeColumnsToContents()
diff --git a/src/plugins/fakevim/fakevimhandler.cpp b/src/plugins/fakevim/fakevimhandler.cpp
index 44bb76028f1edc2c4d6bcf931f895e15c21139bd..f26d0ffcff491b143885be871cd3b1d25f338703 100644
--- a/src/plugins/fakevim/fakevimhandler.cpp
+++ b/src/plugins/fakevim/fakevimhandler.cpp
@@ -278,9 +278,9 @@ public:
     typedef QTextCursor::MoveMode MoveMode;
     void moveToEndOfDocument() { m_tc.movePosition(EndOfDocument, MoveAnchor); }
     void moveToStartOfLine() { m_tc.movePosition(StartOfLine, MoveAnchor); }
-    void moveToEndOfLine() { m_tc.movePosition(EndOfLine, MoveAnchor); }
-    void moveUp(int n = 1) { m_tc.movePosition(Up, MoveAnchor, n); }
-    void moveDown(int n = 1) { m_tc.movePosition(Down, MoveAnchor, n); }
+    void moveToEndOfLine();
+    void moveUp(int n = 1) { moveDown(-n); }
+    void moveDown(int n = 1); // { m_tc.movePosition(Down, MoveAnchor, n); }
     void moveRight(int n = 1) { m_tc.movePosition(Right, MoveAnchor, n); }
     void moveLeft(int n = 1) { m_tc.movePosition(Left, MoveAnchor, n); }
     void setAnchor() { m_anchor = m_tc.position(); }
@@ -289,7 +289,7 @@ public:
 
     void handleFfTt(int key);
 
-    // helper function for handleCommand. return 1 based line index.
+    // helper function for handleExCommand. return 1 based line index.
     int readLineCode(QString &cmd);
     void selectRange(int beginLine, int endLine);
 
@@ -351,7 +351,7 @@ public:
     bool m_needMoreUndo;
 
     // extra data for '.'
-    void replay(const QString &text);
+    void replay(const QString &text, int count);
     QString m_dotCommand;
     bool m_inReplay; // true if we are executing a '.'
 
@@ -411,10 +411,13 @@ QStringList FakeVimHandler::Private::m_commandHistory;
 FakeVimHandler::Private::Private(FakeVimHandler *parent, QWidget *widget)
 {
     q = parent;
-
     m_textedit = qobject_cast<QTextEdit *>(widget);
     m_plaintextedit = qobject_cast<QPlainTextEdit *>(widget);
+    init();
+}
 
+void FakeVimHandler::Private::init()
+{
     m_mode = CommandMode;
     m_submode = NoSubMode;
     m_subsubmode = NoSubSubMode;
@@ -592,7 +595,6 @@ EventResult FakeVimHandler::Private::handleKey(int key, int unmodified,
     const QString &text)
 {
     //qDebug() << "KEY: " << key << text << "POS: " << m_tc.position();
-    //qDebug() << "\nUNDO: " << m_undoStack << "\nREDO: " << m_redoStack;
     if (m_mode == InsertMode)
         return handleInsertMode(key, unmodified, text);
     if (m_mode == CommandMode)
@@ -603,6 +605,26 @@ EventResult FakeVimHandler::Private::handleKey(int key, int unmodified,
     return EventUnhandled;
 }
 
+void FakeVimHandler::Private::moveDown(int n)
+{
+    // m_tc.movePosition(Down, MoveAnchor, n); does not work for "hidden"
+    // documents like in the autotests
+    const QTextBlock &block = m_tc.block();
+    const int col = m_tc.position() - block.position();
+    const int line = block.blockNumber();
+    const int pos = m_tc.document()->findBlockByNumber(line + n).position();
+    setPosition(pos + qMin(block.length(), col));
+    setPosition(pos);
+}
+
+void FakeVimHandler::Private::moveToEndOfLine()
+{
+    // m_tc.movePosition(EndOfLine, MoveAnchor) does not work for "hidden"
+    // documents like in the autotests
+    const QTextBlock &block = m_tc.block();
+    setPosition(block.position() + block.length() - 1);
+}
+
 void FakeVimHandler::Private::finishMovement(const QString &dotCommand)
 {
     //qDebug() << "ANCHOR: " << position() << anchor();
@@ -1012,7 +1034,7 @@ EventResult FakeVimHandler::Private::handleCommandMode(int key, int unmodified,
         qDebug() << "REPEATING" << m_dotCommand;
         QString savedCommand = m_dotCommand;
         m_dotCommand.clear();
-        replay(savedCommand);
+        replay(savedCommand, count());
         enterCommandMode();
         m_dotCommand = savedCommand;
     } else if (key == '<' && m_visualMode == NoVisualMode) {
@@ -1647,6 +1669,7 @@ void FakeVimHandler::Private::selectRange(int beginLine, int endLine)
 void FakeVimHandler::Private::handleCommand(const QString &cmd)
 {
     m_tc = EDITOR(textCursor());
+    init();
     handleExCommand(cmd);
     EDITOR(setTextCursor(m_tc));
 }
@@ -1780,7 +1803,8 @@ void FakeVimHandler::Private::handleExCommand(const QString &cmd0)
         updateMiniBuffer();
     } else if (reNormal.indexIn(cmd) != -1) { // :normal
         enterCommandMode();
-        replay(reNormal.cap(3));
+        //qDebug() << "REPLAY: " << reNormal.cap(3);
+        replay(reNormal.cap(3), 1);
     } else if (reSet.indexIn(cmd) != -1) { // :set
         showBlackMessage(QString());
         QString arg = reSet.cap(2);
@@ -2353,11 +2377,11 @@ void FakeVimHandler::Private::handleStartOfLine()
         moveToFirstNonBlankOnLine();
 }
 
-void FakeVimHandler::Private::replay(const QString &command)
+void FakeVimHandler::Private::replay(const QString &command, int n)
 {
     //qDebug() << "REPLAY: " << command;
     m_inReplay = true;
-    for (int i = count(); --i >= 0; )
+    for (int i = n; --i >= 0; )
         foreach (QChar c, command)
             handleKey(c.unicode(), c.unicode(), QString(c));
     m_inReplay = false;
diff --git a/src/plugins/find/searchresulttreeitemdelegate.cpp b/src/plugins/find/searchresulttreeitemdelegate.cpp
index 533b47e5c91694b8c1fe25992ba47a948e4d826f..d72ca5c2b0fa5842c9403e9c3f14dec0268044e5 100644
--- a/src/plugins/find/searchresulttreeitemdelegate.cpp
+++ b/src/plugins/find/searchresulttreeitemdelegate.cpp
@@ -72,7 +72,7 @@ void SearchResultTreeItemDelegate::paint(QPainter *painter, const QStyleOptionVi
 }
 
 int SearchResultTreeItemDelegate::drawLineNumber(QPainter *painter, const QStyleOptionViewItemV3 &option,
-    const QModelIndex &index) const
+                                                 const QModelIndex &index) const
 {
     static const int lineNumberAreaHorizontalPadding = 4;
     const bool isSelected = option.state & QStyle::State_Selected;
@@ -90,10 +90,10 @@ int SearchResultTreeItemDelegate::drawLineNumber(QPainter *painter, const QStyle
     else if (!(option.state & QStyle::State_Enabled))
         cg = QPalette::Disabled;
 
-    painter->fillRect(lineNumberAreaRect, QBrush(isSelected?
-        option.palette.brush(cg, QPalette::Highlight):QBrush(qRgb(230, 230, 230))));
-    painter->setPen(isSelected?
-        option.palette.color(cg, QPalette::HighlightedText):Qt::darkGray);
+    painter->fillRect(lineNumberAreaRect, QBrush(isSelected ?
+        option.palette.brush(cg, QPalette::Highlight) : QBrush(qRgb(230, 230, 230))));
+    painter->setPen(isSelected ?
+        option.palette.color(cg, QPalette::HighlightedText) : Qt::darkGray);
     painter->drawText(lineNumberAreaRect.adjusted(0, 0, -lineNumberAreaHorizontalPadding, 0),
         Qt::AlignRight, QString::number(lineNumber));
 
@@ -101,7 +101,7 @@ int SearchResultTreeItemDelegate::drawLineNumber(QPainter *painter, const QStyle
 }
 
 void SearchResultTreeItemDelegate::drawMarker(QPainter *painter, const QModelIndex &index, const QString text,
-    const QRect &rect) const
+                                              const QRect &rect) const
 {
     const int textMargin = QApplication::style()->pixelMetric(QStyle::PM_FocusFrameHMargin) + 1;
     int searchTermStart = index.model()->data(index, ItemDataRoles::SearchTermStartRole).toInt();
diff --git a/src/plugins/find/searchresulttreeitemroles.h b/src/plugins/find/searchresulttreeitemroles.h
index fd9450e6c0bd3475c60eab9031520ea96eb7d4a5..486e7907c6f45e89c96ae6db127fd062c81603e9 100644
--- a/src/plugins/find/searchresulttreeitemroles.h
+++ b/src/plugins/find/searchresulttreeitemroles.h
@@ -34,7 +34,7 @@ namespace Find {
 namespace Internal {
 namespace ItemDataRoles {
 
-enum roles
+enum Roles
 {
     TypeRole = Qt::UserRole,
     FileNameRole,
@@ -49,6 +49,6 @@ enum roles
 
 } // namespace Internal
 } // namespace Find
-} // namespace itemDataRoles
+} // namespace ItemDataRoles
 
 #endif // SEARCHRESULTTREEITEMROLES_H
diff --git a/src/plugins/find/searchresulttreeitems.cpp b/src/plugins/find/searchresulttreeitems.cpp
index dbdef04ee1ea780bff05abcd9562123019440575..986767666b32a94fba723d856da1040a8b4027fc 100644
--- a/src/plugins/find/searchresulttreeitems.cpp
+++ b/src/plugins/find/searchresulttreeitems.cpp
@@ -31,7 +31,7 @@
 
 using namespace Find::Internal;
 
-SearchResultTreeItem::SearchResultTreeItem(SearchResultTreeItem::itemType type, const SearchResultTreeItem *parent)
+SearchResultTreeItem::SearchResultTreeItem(SearchResultTreeItem::ItemType type, const SearchResultTreeItem *parent)
   : m_type(type), m_parent(parent)
 {
 }
@@ -41,33 +41,33 @@ SearchResultTreeItem::~SearchResultTreeItem()
     clearChildren();
 }
 
-void SearchResultTreeItem::clearChildren(void)
+void SearchResultTreeItem::clearChildren()
 {
     qDeleteAll(m_children);
     m_children.clear();
 }
 
-SearchResultTreeItem::itemType SearchResultTreeItem::getItemType(void) const
+SearchResultTreeItem::ItemType SearchResultTreeItem::itemType() const
 {
     return m_type;
 }
 
-int SearchResultTreeItem::getChildrenCount(void) const
+int SearchResultTreeItem::childrenCount() const
 {
     return m_children.count();
 }
 
-int SearchResultTreeItem::getRowOfItem(void) const
+int SearchResultTreeItem::rowOfItem() const
 {
-    return (m_parent?m_parent->m_children.indexOf(const_cast<SearchResultTreeItem*>(this)):0);
+    return (m_parent ? m_parent->m_children.indexOf(const_cast<SearchResultTreeItem*>(this)):0);
 }
 
-const SearchResultTreeItem* SearchResultTreeItem::getChild(int index) const
+const SearchResultTreeItem* SearchResultTreeItem::childAt(int index) const
 {
     return m_children.at(index);
 }
 
-const SearchResultTreeItem *SearchResultTreeItem::getParent(void) const
+const SearchResultTreeItem *SearchResultTreeItem::parent() const
 {
     return m_parent;
 }
@@ -78,8 +78,10 @@ void SearchResultTreeItem::appendChild(SearchResultTreeItem *child)
 }
 
 SearchResultTextRow::SearchResultTextRow(int index, int lineNumber,
-    const QString &rowText, int searchTermStart, int searchTermLength, const SearchResultTreeItem *parent)
-:   SearchResultTreeItem(resultRow, parent),
+                                         const QString &rowText,
+                                         int searchTermStart, int searchTermLength,
+                                         const SearchResultTreeItem *parent):
+    SearchResultTreeItem(ResultRow, parent),
     m_index(index),
     m_lineNumber(lineNumber),
     m_rowText(rowText),
@@ -113,12 +115,13 @@ int SearchResultTextRow::searchTermLength() const
     return m_searchTermLength;
 }
 
-SearchResultFile::SearchResultFile(const QString &fileName, const SearchResultTreeItem *parent)
-  : SearchResultTreeItem(resultFile, parent), m_fileName(fileName)
+SearchResultFile::SearchResultFile(const QString &fileName, const SearchResultTreeItem *parent):
+    SearchResultTreeItem(ResultFile, parent),
+    m_fileName(fileName)
 {
 }
 
-QString SearchResultFile::getFileName(void) const
+QString SearchResultFile::fileName() const
 {
     return m_fileName;
 }
@@ -126,6 +129,7 @@ QString SearchResultFile::getFileName(void) const
 void SearchResultFile::appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart,
         int searchTermLength)
 {
-    SearchResultTreeItem *child = new SearchResultTextRow(index, lineNumber, rowText, searchTermStart, searchTermLength, this);
+    SearchResultTreeItem *child = new SearchResultTextRow(index, lineNumber, rowText,
+                                                          searchTermStart, searchTermLength, this);
     appendChild(child);
 }
diff --git a/src/plugins/find/searchresulttreeitems.h b/src/plugins/find/searchresulttreeitems.h
index a33974fee8cadde8151cee3c17ecd7532d54e2ad..cf792d897abcd605544b3f613e425cb0ef03650b 100644
--- a/src/plugins/find/searchresulttreeitems.h
+++ b/src/plugins/find/searchresulttreeitems.h
@@ -42,35 +42,35 @@ class SearchResultTreeItem;
 class SearchResultTreeItem
 {
 public:
-    enum itemType
+    enum ItemType
     {
-        root,
-        resultRow,
-        resultFile
+        Root,
+        ResultRow,
+        ResultFile
     };
 
-    SearchResultTreeItem(itemType type = root, const SearchResultTreeItem *parent = NULL);
+    SearchResultTreeItem(ItemType type = Root, const SearchResultTreeItem *parent = NULL);
     virtual ~SearchResultTreeItem();
 
-    itemType getItemType() const;
-    const SearchResultTreeItem *getParent() const;
-    const SearchResultTreeItem *getChild(int index) const;
+    ItemType itemType() const;
+    const SearchResultTreeItem *parent() const;
+    const SearchResultTreeItem *childAt(int index) const;
     void appendChild(SearchResultTreeItem *child);
-    int getChildrenCount() const;
-    int getRowOfItem() const;
+    int childrenCount() const;
+    int rowOfItem() const;
     void clearChildren();
 
 private:
-    itemType m_type;
+    ItemType m_type;
     const SearchResultTreeItem *m_parent;
     QList<SearchResultTreeItem *> m_children;
 };
 
-class SearchResultTextRow: public SearchResultTreeItem
+class SearchResultTextRow : public SearchResultTreeItem
 {
 public:
     SearchResultTextRow(int index, int lineNumber, const QString &rowText, int searchTermStart,
-        int searchTermLength, const SearchResultTreeItem *parent);
+                        int searchTermLength, const SearchResultTreeItem *parent);
     int index() const;
     QString rowText() const;
     int lineNumber() const;
@@ -85,13 +85,13 @@ private:
     int m_searchTermLength;
 };
 
-class SearchResultFile: public SearchResultTreeItem
+class SearchResultFile : public SearchResultTreeItem
 {
 public:
     SearchResultFile(const QString &fileName, const SearchResultTreeItem *parent);
-    QString getFileName() const;
+    QString fileName() const;
     void appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart,
-        int searchTermLength);
+                          int searchTermLength);
 
 private:
     QString m_fileName;
diff --git a/src/plugins/find/searchresulttreemodel.cpp b/src/plugins/find/searchresulttreemodel.cpp
index 03fb1c5c0175095bb1031bf43878244cb0c323ab..68beb2afb8f3ace34b4a9fa0fbd5f25ae9d03962 100644
--- a/src/plugins/find/searchresulttreemodel.cpp
+++ b/src/plugins/find/searchresulttreemodel.cpp
@@ -37,9 +37,11 @@
 using namespace Find::Internal;
 
 SearchResultTreeModel::SearchResultTreeModel(QObject *parent)
-  : QAbstractItemModel(parent), m_lastAppendedResultFile(0)
+    : QAbstractItemModel(parent)
+    , m_lastAppendedResultFile(0)
 {
     m_rootItem = new SearchResultTreeItem();
+    m_textEditorFont = QFont("Courier");
 }
 
 SearchResultTreeModel::~SearchResultTreeModel()
@@ -47,8 +49,13 @@ SearchResultTreeModel::~SearchResultTreeModel()
     delete m_rootItem;
 }
 
+void SearchResultTreeModel::setTextEditorFont(const QFont &font)
+{
+    m_textEditorFont = font;
+}
+
 QModelIndex SearchResultTreeModel::index(int row, int column,
-                          const QModelIndex &parent) const
+                                         const QModelIndex &parent) const
 {
     if (!hasIndex(row, column, parent))
         return QModelIndex();
@@ -60,7 +67,7 @@ QModelIndex SearchResultTreeModel::index(int row, int column,
     else
         parentItem = static_cast<const SearchResultTreeItem*>(parent.internalPointer());
 
-    const SearchResultTreeItem *childItem = parentItem->getChild(row);
+    const SearchResultTreeItem *childItem = parentItem->childAt(row);
     if (childItem)
         return createIndex(row, column, (void *)childItem);
     else
@@ -73,12 +80,12 @@ QModelIndex SearchResultTreeModel::parent(const QModelIndex &index) const
         return QModelIndex();
 
     const SearchResultTreeItem *childItem = static_cast<const SearchResultTreeItem*>(index.internalPointer());
-    const SearchResultTreeItem *parentItem = childItem->getParent();
+    const SearchResultTreeItem *parentItem = childItem->parent();
 
     if (parentItem == m_rootItem)
         return QModelIndex();
 
-    return createIndex(parentItem->getRowOfItem(), 0, (void *)parentItem);
+    return createIndex(parentItem->rowOfItem(), 0, (void *)parentItem);
 }
 
 int SearchResultTreeModel::rowCount(const QModelIndex &parent) const
@@ -93,7 +100,7 @@ int SearchResultTreeModel::rowCount(const QModelIndex &parent) const
     else
         parentItem = static_cast<const SearchResultTreeItem*>(parent.internalPointer());
 
-    return parentItem->getChildrenCount();
+    return parentItem->childrenCount();
 }
 
 int SearchResultTreeModel::columnCount(const QModelIndex &parent) const
@@ -111,12 +118,12 @@ QVariant SearchResultTreeModel::data(const QModelIndex &index, int role) const
 
     QVariant result;
 
-    if (item->getItemType() == SearchResultTreeItem::resultRow)
+    if (item->itemType() == SearchResultTreeItem::ResultRow)
     {
         const SearchResultTextRow *row = static_cast<const SearchResultTextRow *>(item);
         result = data(row, role);
     }
-    else if (item->getItemType() == SearchResultTreeItem::resultFile)
+    else if (item->itemType() == SearchResultTreeItem::ResultFile)
     {
         const SearchResultFile *file = static_cast<const SearchResultFile *>(item);
         result = data(file, role);
@@ -135,7 +142,7 @@ QVariant SearchResultTreeModel::data(const SearchResultTextRow *row, int role) c
         result = row->rowText().trimmed();
         break;
     case Qt::FontRole:
-        result = QFont("courier");
+        result = m_textEditorFont;
         break;
     case ItemDataRoles::ResultLineRole:
     case Qt::DisplayRole:
@@ -158,8 +165,8 @@ QVariant SearchResultTreeModel::data(const SearchResultTextRow *row, int role) c
         break;
     case ItemDataRoles::FileNameRole:
         {
-            const SearchResultFile *file = dynamic_cast<const SearchResultFile *>(row->getParent());
-            result = file->getFileName();
+            const SearchResultFile *file = dynamic_cast<const SearchResultFile *>(row->parent());
+            result = file->fileName();
             break;
         }
     default:
@@ -179,22 +186,15 @@ QVariant SearchResultTreeModel::data(const SearchResultFile *file, int role) con
     case Qt::BackgroundRole:
         result = QColor(qRgb(245, 245, 245));
         break;
-    case Qt::FontRole:
-        {
-            QFont font;
-            font.setPointSize(font.pointSize() + 1);
-            result = font;
-            break;
-        }
     case Qt::DisplayRole:
-        result = file->getFileName() + " (" + QString::number(file->getChildrenCount()) + ")";
+        result = file->fileName() + " (" + QString::number(file->childrenCount()) + ")";
         break;
     case ItemDataRoles::FileNameRole:
     case Qt::ToolTipRole:
-        result = file->getFileName();
+        result = file->fileName();
         break;
     case ItemDataRoles::ResultLinesCountRole:
-        result = file->getChildrenCount();
+        result = file->childrenCount();
         break;
     case ItemDataRoles::TypeRole:
         result = "file";
@@ -220,20 +220,20 @@ void SearchResultTreeModel::appendResultFile(const QString &fileName)
 {
     m_lastAppendedResultFile = new SearchResultFile(fileName, m_rootItem);
 
-    beginInsertRows(QModelIndex(), m_rootItem->getChildrenCount(), m_rootItem->getChildrenCount());
+    beginInsertRows(QModelIndex(), m_rootItem->childrenCount(), m_rootItem->childrenCount());
     m_rootItem->appendChild(m_lastAppendedResultFile);
     endInsertRows();
 }
 
-void SearchResultTreeModel::appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart,
-    int searchTermLength)
+void SearchResultTreeModel::appendResultLine(int index, int lineNumber, const QString &rowText,
+                                             int searchTermStart, int searchTermLength)
 {
     if (!m_lastAppendedResultFile)
         return;
 
-    QModelIndex lastFile(createIndex(m_lastAppendedResultFile->getRowOfItem(), 0, m_lastAppendedResultFile));
+    QModelIndex lastFile(createIndex(m_lastAppendedResultFile->rowOfItem(), 0, m_lastAppendedResultFile));
 
-    beginInsertRows(lastFile, m_lastAppendedResultFile->getChildrenCount(), m_lastAppendedResultFile->getChildrenCount());
+    beginInsertRows(lastFile, m_lastAppendedResultFile->childrenCount(), m_lastAppendedResultFile->childrenCount());
     m_lastAppendedResultFile->appendResultLine(index, lineNumber, rowText, searchTermStart, searchTermLength);
     endInsertRows();
 
@@ -241,15 +241,15 @@ void SearchResultTreeModel::appendResultLine(int index, int lineNumber, const QS
 }
 
 void SearchResultTreeModel::appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText,
-    int searchTermStart, int searchTermLength)
+                                             int searchTermStart, int searchTermLength)
 {
-    if (!m_lastAppendedResultFile || (m_lastAppendedResultFile->getFileName() != fileName))
+    if (!m_lastAppendedResultFile || (m_lastAppendedResultFile->fileName() != fileName))
         appendResultFile(fileName);
 
     appendResultLine(index, lineNumber, rowText, searchTermStart, searchTermLength);
 }
 
-void SearchResultTreeModel::clear(void)
+void SearchResultTreeModel::clear()
 {
     m_lastAppendedResultFile = NULL;
     m_rootItem->clearChildren();
diff --git a/src/plugins/find/searchresulttreemodel.h b/src/plugins/find/searchresulttreemodel.h
index cd32d55a7e3ef1c076ccf45815ad88b240ed9853..b4036c0e7b64b91525292d328399100af3ab3957 100644
--- a/src/plugins/find/searchresulttreemodel.h
+++ b/src/plugins/find/searchresulttreemodel.h
@@ -31,6 +31,7 @@
 #define SEARCHRESULTTREEMODEL_H
 
 #include <QtCore/QAbstractItemModel>
+#include <QtGui/QFont>
 
 namespace Find {
 namespace Internal {
@@ -47,8 +48,9 @@ public:
     SearchResultTreeModel(QObject *parent = 0);
     ~SearchResultTreeModel();
 
-    QModelIndex index(int row, int column,
-                              const QModelIndex &parent = QModelIndex()) const;
+    void setTextEditorFont(const QFont &font);
+
+    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
     QModelIndex parent(const QModelIndex &child) const;
     int rowCount(const QModelIndex &parent = QModelIndex()) const;
     int columnCount(const QModelIndex &parent = QModelIndex()) const;
@@ -57,25 +59,26 @@ public:
 
 signals:
     void jumpToSearchResult(const QString &fileName, int lineNumber,
-        int searchTermStart, int searchTermLength);
+                            int searchTermStart, int searchTermLength);
     void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight);
 
 public slots:
     void clear();
-    void appendResultLine(int index, int lineNumber, const QString &rowText, int searchTermStart,
-        int searchTermLength);
-    void appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText, int searchTermStart,
-        int searchTermLength);
+    void appendResultLine(int index, int lineNumber, const QString &rowText,
+                          int searchTermStart, int searchTermLength);
+    void appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText,
+                          int searchTermStart, int searchTermLength);
 
 private:
     void appendResultFile(const QString &fileName);
     QVariant data(const SearchResultTextRow *row, int role) const;
     QVariant data(const SearchResultFile *file, int role) const;
-    void initializeData(void);
-    void disposeData(void);
+    void initializeData();
+    void disposeData();
 
     SearchResultTreeItem *m_rootItem;
     SearchResultFile *m_lastAppendedResultFile;
+    QFont m_textEditorFont;
 };
 
 } // namespace Internal
diff --git a/src/plugins/find/searchresulttreeview.cpp b/src/plugins/find/searchresulttreeview.cpp
index e74458593ddf6965ceb60b2b673193bd173f755f..b12e3f15885a0f33c8f5833132eb9b2ed7dcaf4e 100644
--- a/src/plugins/find/searchresulttreeview.cpp
+++ b/src/plugins/find/searchresulttreeview.cpp
@@ -37,7 +37,8 @@
 using namespace Find::Internal;
 
 SearchResultTreeView::SearchResultTreeView(QWidget *parent)
-  : QTreeView(parent), m_autoExpandResults(false)
+    : QTreeView(parent)
+    , m_autoExpandResults(false)
 {
     m_model = new SearchResultTreeModel(this);
     setModel(m_model);
@@ -46,7 +47,7 @@ SearchResultTreeView::SearchResultTreeView(QWidget *parent)
     setIndentation(14);
     header()->hide();
 
-    connect (this, SIGNAL(activated(QModelIndex)), this, SLOT(emitJumpToSearchResult(QModelIndex)));
+    connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(emitJumpToSearchResult(QModelIndex)));
 }
 
 void SearchResultTreeView::setAutoExpandResults(bool expand)
@@ -54,13 +55,18 @@ void SearchResultTreeView::setAutoExpandResults(bool expand)
     m_autoExpandResults = expand;
 }
 
-void SearchResultTreeView::clear(void)
+void SearchResultTreeView::setTextEditorFont(const QFont &font)
+{
+    m_model->setTextEditorFont(font);
+}
+
+void SearchResultTreeView::clear()
 {
     m_model->clear();
 }
 
 void SearchResultTreeView::appendResultLine(int index, const QString &fileName, int lineNumber, const QString &rowText,
-    int searchTermStart, int searchTermLength)
+                                            int searchTermStart, int searchTermLength)
 {
     int rowsBefore = m_model->rowCount();
     m_model->appendResultLine(index, fileName, lineNumber, rowText, searchTermStart, searchTermLength);
diff --git a/src/plugins/find/searchresulttreeview.h b/src/plugins/find/searchresulttreeview.h
index a7ff9b4b11c4cb31648c436d9360c220cb24acca..1fcf03599f4d148b2ebe414da3f02d5e45afc1e9 100644
--- a/src/plugins/find/searchresulttreeview.h
+++ b/src/plugins/find/searchresulttreeview.h
@@ -44,16 +44,18 @@ class SearchResultTreeView : public QTreeView
 
 public:
     SearchResultTreeView(QWidget *parent = 0);
+
     void setAutoExpandResults(bool expand);
+    void setTextEditorFont(const QFont &font);
 
 signals:
     void jumpToSearchResult(int index, const QString &fileName, int lineNumber,
-        int searchTermStart, int searchTermLength);
+                            int searchTermStart, int searchTermLength);
 
 public slots:
     void clear();
     void appendResultLine(int index, const QString &fileName, int lineNumber, const QString &lineText,
-        int searchTermStart, int searchTermLength);
+                          int searchTermStart, int searchTermLength);
 
 private slots:
     void emitJumpToSearchResult(const QModelIndex &index);
diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp
index 908bf7031584e709e0f9d146e8902f82362a1446..19c252a417792f8054bd6c7eda754a37f6ea32fe 100644
--- a/src/plugins/find/searchresultwindow.cpp
+++ b/src/plugins/find/searchresultwindow.cpp
@@ -82,22 +82,6 @@ SearchResultWindow::~SearchResultWindow()
     m_items.clear();
 }
 
-bool SearchResultWindow::hasFocus()
-{
-    return m_searchResultTreeView->hasFocus();
-}
-
-bool SearchResultWindow::canFocus()
-{
-    return !m_items.isEmpty();
-}
-
-void SearchResultWindow::setFocus()
-{
-    if (!m_items.isEmpty())
-        m_searchResultTreeView->setFocus();
-}
-
 void SearchResultWindow::visibilityChanged(bool /*visible*/)
 {
 }
@@ -107,7 +91,7 @@ QWidget *SearchResultWindow::outputWidget(QWidget *)
     return m_widget;
 }
 
-QList<QWidget*> SearchResultWindow::toolBarWidgets(void) const
+QList<QWidget*> SearchResultWindow::toolBarWidgets() const
 {
     return QList<QWidget*>() << m_expandCollapseToolButton;
 }
@@ -120,7 +104,7 @@ void SearchResultWindow::clearContents()
     m_items.clear();
 }
 
-void SearchResultWindow::showNoMatchesFound(void)
+void SearchResultWindow::showNoMatchesFound()
 {
     m_widget->setCurrentWidget(m_noMatchesFoundDisplay);
 }
@@ -135,6 +119,27 @@ int SearchResultWindow::numberOfResults() const
     return m_searchResultTreeView->model()->rowCount();
 }
 
+bool SearchResultWindow::hasFocus()
+{
+    return m_searchResultTreeView->hasFocus();
+}
+
+bool SearchResultWindow::canFocus()
+{
+    return !m_items.isEmpty();
+}
+
+void SearchResultWindow::setFocus()
+{
+    if (!m_items.isEmpty())
+        m_searchResultTreeView->setFocus();
+}
+
+void SearchResultWindow::setTextEditorFont(const QFont &font)
+{
+    m_searchResultTreeView->setTextEditorFont(font);
+}
+
 void SearchResultWindow::handleJumpToSearchResult(int index, const QString &fileName, int lineNumber,
     int searchTermStart, int searchTermLength)
 {
@@ -169,7 +174,7 @@ void SearchResultWindow::handleExpandCollapseToolButton(bool checked)
         m_searchResultTreeView->collapseAll();
 }
 
-void SearchResultWindow::readSettings(void)
+void SearchResultWindow::readSettings()
 {
     QSettings *s = Core::ICore::instance()->settings();
     if (s) {
@@ -179,7 +184,7 @@ void SearchResultWindow::readSettings(void)
     }
 }
 
-void SearchResultWindow::writeSettings(void)
+void SearchResultWindow::writeSettings()
 {
     QSettings *s = Core::ICore::instance()->settings();
     if (s) {
diff --git a/src/plugins/find/searchresultwindow.h b/src/plugins/find/searchresultwindow.h
index c6022f951e9eb0c2da4d6bbcbae790bff047b117..da371971cf795910ca7880f139381461512ed3bc 100644
--- a/src/plugins/find/searchresultwindow.h
+++ b/src/plugins/find/searchresultwindow.h
@@ -64,7 +64,7 @@ public:
     ~SearchResultWindow();
 
     QWidget *outputWidget(QWidget *);
-    QList<QWidget*> toolBarWidgets(void) const;
+    QList<QWidget*> toolBarWidgets() const;
 
     QString name() const { return tr("Search Results"); }
     int priorityInStatusBar() const;
@@ -75,11 +75,13 @@ public:
     bool canFocus();
     void setFocus();
 
+    void setTextEditorFont(const QFont &font);
+
 public slots:
     void clearContents();
     void showNoMatchesFound();
     ResultWindowItem *addResult(const QString &fileName, int lineNumber, const QString &lineText,
-        int searchTermStart, int searchTermLength);
+                                int searchTermStart, int searchTermLength);
 
 private slots:
     void handleExpandCollapseToolButton(bool checked);
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.cpp b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
index 780ce46858668ad296294e4dc3d3c862f69676fb..1c13ec7fbf75644c2b9d3596c9bd4033d68e9117 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.cpp
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.cpp
@@ -50,7 +50,7 @@ using namespace Core::Utils;
 
 namespace {
 
-class DirModel: public QDirModel
+class DirModel : public QDirModel
 {
 public:
     DirModel(QObject *parent)
@@ -121,11 +121,11 @@ private:
 GenericProjectWizardDialog::GenericProjectWizardDialog(QWidget *parent)
     : QWizard(parent)
 {
-    setWindowTitle(tr("Import Existing Project"));
+    setWindowTitle(tr("Import of Makefile-based Project"));
 
     // first page
     m_firstPage = new FileWizardPage;
-    m_firstPage->setTitle(tr("Import Project"));
+    m_firstPage->setTitle(tr("Generic Project"));
     m_firstPage->setNameLabel(tr("Project name:"));
     m_firstPage->setPathLabel(tr("Location:"));
 
@@ -178,6 +178,11 @@ QString GenericProjectWizardDialog::path() const
     return m_firstPage->path();
 }
 
+void GenericProjectWizardDialog::setPath(const QString &path)
+{
+    m_firstPage->setPath(path);
+}
+
 QString GenericProjectWizardDialog::projectName() const
 {
     return m_firstPage->name();
@@ -201,6 +206,7 @@ void GenericProjectWizardDialog::updateFilesView(const QModelIndex &current,
 
 void GenericProjectWizardDialog::initializePage(int id)
 {
+    Q_UNUSED(id)
 #if 0
     if (id == m_secondPageId) {
         using namespace Core::Utils;
@@ -237,8 +243,8 @@ Core::BaseFileWizardParameters GenericProjectWizard::parameters()
 {
     static Core::BaseFileWizardParameters parameters(ProjectWizard);
     parameters.setIcon(QIcon(":/wizards/images/console.png"));
-    parameters.setName(tr("Existing Project"));
-    parameters.setDescription(tr("Import Existing Project"));
+    parameters.setName(tr("Import of Makefile-based Project"));
+    parameters.setDescription(tr("Creates a generic project, supporting any build system."));
     parameters.setCategory(QLatin1String("Projects"));
     parameters.setTrCategory(tr("Projects"));
     return parameters;
@@ -251,6 +257,8 @@ QWizard *GenericProjectWizard::createWizardDialog(QWidget *parent,
     GenericProjectWizardDialog *wizard = new GenericProjectWizardDialog(parent);
     setupWizard(wizard);
 
+    wizard->setPath(defaultPath);
+
     foreach (QWizardPage *p, extensionPages)
         wizard->addPage(p);
 
@@ -302,6 +310,8 @@ bool GenericProjectWizard::isValidDir(const QFileInfo &fileInfo) const
 Core::GeneratedFiles GenericProjectWizard::generateFiles(const QWizard *w,
                                                          QString *errorMessage) const
 {
+    Q_UNUSED(errorMessage)
+
     const GenericProjectWizardDialog *wizard = qobject_cast<const GenericProjectWizardDialog *>(w);
     const QString projectPath = wizard->path();
     const QDir dir(projectPath);
diff --git a/src/plugins/genericprojectmanager/genericprojectwizard.h b/src/plugins/genericprojectmanager/genericprojectwizard.h
index ffbb74d5420c66a87f50652bc6f559c4014f0ef0..f15790bcf85ea7eed198d9c0bbf48847a144de17 100644
--- a/src/plugins/genericprojectmanager/genericprojectwizard.h
+++ b/src/plugins/genericprojectmanager/genericprojectwizard.h
@@ -64,6 +64,8 @@ public:
     virtual ~GenericProjectWizardDialog();
 
     QString path() const;
+    void setPath(const QString &path);
+
     QString projectName() const;
 
 private Q_SLOTS:
diff --git a/src/plugins/perforce/perforceoutputwindow.h b/src/plugins/perforce/perforceoutputwindow.h
index d738dabec71d3315e3642ee28df3b8de52f60d13..d88d5b57789648a532cadf3b2c463938c66c5566 100644
--- a/src/plugins/perforce/perforceoutputwindow.h
+++ b/src/plugins/perforce/perforceoutputwindow.h
@@ -50,7 +50,7 @@ public:
     ~PerforceOutputWindow();
 
     QWidget *outputWidget(QWidget *parent);
-    QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); }
+    QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); }
 
     QString name() const;
     int priorityInStatusBar() const;
diff --git a/src/plugins/projectexplorer/compileoutputwindow.h b/src/plugins/projectexplorer/compileoutputwindow.h
index 4687bf3816b67ace2a98ca3854e7ad15615e7eb2..55a4b988b004c0a35151f8eadafbe3470e4d41dd 100644
--- a/src/plugins/projectexplorer/compileoutputwindow.h
+++ b/src/plugins/projectexplorer/compileoutputwindow.h
@@ -47,7 +47,7 @@ class CompileOutputWindow : public Core::IOutputPane
 public:
     CompileOutputWindow(BuildManager *bm);
     QWidget *outputWidget(QWidget *);
-    QList<QWidget*> toolBarWidgets(void) const { return QList<QWidget *>(); }
+    QList<QWidget*> toolBarWidgets() const { return QList<QWidget *>(); }
     QString name() const { return tr("Compile Output"); }
     int priorityInStatusBar() const;
     void clearContents();
diff --git a/src/plugins/projectexplorer/outputwindow.h b/src/plugins/projectexplorer/outputwindow.h
index 67f71e7c68540c1368a6d13209b4dfa585a77b50..7542269bfc54559ef1b597b891c0128c1aceeb2c 100644
--- a/src/plugins/projectexplorer/outputwindow.h
+++ b/src/plugins/projectexplorer/outputwindow.h
@@ -61,7 +61,7 @@ public:
     ~OutputPane();
 
     QWidget *outputWidget(QWidget *);
-    QList<QWidget*> toolBarWidgets(void) const;
+    QList<QWidget*> toolBarWidgets() const;
     QString name() const;
     int priorityInStatusBar() const;
     void clearContents();
diff --git a/src/plugins/projectexplorer/removefiledialog.ui b/src/plugins/projectexplorer/removefiledialog.ui
index 6f5ecee1d42e52360c849d3d409129fc638e1d74..2e0c072d86862759c6f0742b3311e7ba9ba4fdd4 100644
--- a/src/plugins/projectexplorer/removefiledialog.ui
+++ b/src/plugins/projectexplorer/removefiledialog.ui
@@ -2,13 +2,11 @@
 <ui version="4.0">
  <class>ProjectExplorer::Internal::RemoveFileDialog</class>
  <widget class="QDialog" name="ProjectExplorer::Internal::RemoveFileDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>237</width>
-    <height>171</height>
-   </rect>
+  <property name="sizePolicy">
+   <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+    <horstretch>0</horstretch>
+    <verstretch>0</verstretch>
+   </sizepolicy>
   </property>
   <property name="windowTitle">
    <string>Remove File</string>
@@ -16,13 +14,25 @@
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QLabel" name="fileToDeleteLabel">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="text">
-      <string>File to delete:</string>
+      <string>File to remove:</string>
      </property>
     </widget>
    </item>
    <item>
     <widget class="QLabel" name="fileNameLabel">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="font">
       <font>
        <family>Courier New</family>
@@ -65,6 +75,12 @@
    </item>
    <item>
     <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
@@ -75,27 +91,7 @@
    </item>
   </layout>
  </widget>
- <resources>
-  <include location="../../libs/cplusplus/cplusplus.qrc"/>
-  <include location="../../libs/extensionsystem/pluginview.qrc"/>
-  <include location="../bookmarks/bookmarks.qrc"/>
-  <include location="../coreplugin/core.qrc"/>
-  <include location="../coreplugin/fancyactionbar.qrc"/>
-  <include location="../cppeditor/cppeditor.qrc"/>
-  <include location="../cpptools/cpptools.qrc"/>
-  <include location="../designer/designer.qrc"/>
-  <include location="../find/find.qrc"/>
-  <include location="../gdbdebugger/gdbdebugger.qrc"/>
-  <include location="../help/help.qrc"/>
-  <include location="../perforce/perforce.qrc"/>
-  <include location="projectexplorer.qrc"/>
-  <include location="../../../shared/proparser/proparser.qrc"/>
-  <include location="../qt4projectmanager/qt4projectmanager.qrc"/>
-  <include location="../qt4projectmanager/wizards/wizards.qrc"/>
-  <include location="../quickopen/quickopen.qrc"/>
-  <include location="../resourceeditor/resourceeditor.qrc"/>
-  <include location="../texteditor/texteditor.qrc"/>
- </resources>
+ <resources/>
  <connections>
   <connection>
    <sender>buttonBox</sender>
diff --git a/src/plugins/projectexplorer/taskwindow.h b/src/plugins/projectexplorer/taskwindow.h
index b76c158f1f45df41ca17c483d26617f70d9ac5cf..fffd6904e77cebc86de0ec6ed4f24b4d17d6c01b 100644
--- a/src/plugins/projectexplorer/taskwindow.h
+++ b/src/plugins/projectexplorer/taskwindow.h
@@ -56,7 +56,7 @@ public:
     ~TaskWindow();
 
     QWidget *outputWidget(QWidget *);
-    QList<QWidget*> toolBarWidgets(void) const;
+    QList<QWidget*> toolBarWidgets() const;
 
     QString name() const { return tr("Build Issues"); }
     int priorityInStatusBar() const;
diff --git a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
index f3cfed8002550f0edef83a514537cb94b12a440a..451b1b4a6c348a9688945f5a45f824c7ced38086 100644
--- a/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4runconfiguration.cpp
@@ -226,7 +226,7 @@ QWidget *Qt4RunConfiguration::configurationWidget()
 
 void Qt4RunConfiguration::save(PersistentSettingsWriter &writer) const
 {
-    QDir projectDir(QFileInfo(project()->file()->fileName()).absoluteDir());
+    const QDir projectDir = QFileInfo(project()->file()->fileName()).absoluteDir();
     writer.saveValue("CommandLineArguments", m_commandLineArguments);
     writer.saveValue("ProFile", projectDir.relativeFilePath(m_proFilePath));
     writer.saveValue("UserSetName", m_userSetName);
@@ -238,7 +238,7 @@ void Qt4RunConfiguration::save(PersistentSettingsWriter &writer) const
 void Qt4RunConfiguration::restore(const PersistentSettingsReader &reader)
 {    
     ApplicationRunConfiguration::restore(reader);
-    QDir projectDir(QFileInfo(project()->file()->fileName()).absoluteDir());
+    const QDir projectDir = QFileInfo(project()->file()->fileName()).absoluteDir();
     m_commandLineArguments = reader.restoreValue("CommandLineArguments").toStringList();
     m_proFilePath = projectDir.filePath(reader.restoreValue("ProFile").toString());
     m_userSetName = reader.restoreValue("UserSetName").toBool();
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp
index a716fed9e2b1b18b7dc7ee18ec61bb1f10b9a8a5..fe4e3d4877051c09ae48ce6dc603f6093f909334 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.cpp
+++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp
@@ -870,9 +870,12 @@ void QtVersion::setPath(const QString &path)
 QString QtVersion::dumperLibrary() const
 {
     uint hash = qHash(path());
+    QString qtInstallData = versionInfo().value("QT_INSTALL_DATA");
+    if (qtInstallData.isEmpty())
+        qtInstallData = path();
     QStringList directories;
     directories
-            << (path() + "/qtc-debugging-helper/")
+            << (qtInstallData + "/qtc-debugging-helper/")
             << (QApplication::applicationDirPath() + "/../qtc-debugging-helper/" + QString::number(hash)) + "/"
             << (QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash)) + "/";
     foreach(const QString &directory, directories) {
@@ -1375,6 +1378,12 @@ bool QtVersion::hasDebuggingHelper() const
     return m_hasDebuggingHelper;
 }
 
+
+// TODO buildDebuggingHelperLibrary needs to be accessible outside of the
+// qt4versionmanager
+// That probably means moving qt4version management into either the projectexplorer
+// (The Projectexplorer plugin probably needs some splitting up, most of the stuff
+// could be in a plugin shared by qt4projectmanager, cmakemanager and debugger.)
 QString QtVersion::buildDebuggingHelperLibrary()
 {
 // Locations to try:
@@ -1384,9 +1393,12 @@ QString QtVersion::buildDebuggingHelperLibrary()
 
     QString output;
     uint hash = qHash(path());
+    QString qtInstallData = versionInfo().value("QT_INSTALL_DATA");
+    if (qtInstallData.isEmpty())
+        qtInstallData = path();
     QStringList directories;
     directories
-            << path() + "/qtc-debugging-helper/"
+            << qtInstallData + "/qtc-debugging-helper/"
             << QApplication::applicationDirPath() + "/../qtc-debugging-helper/" + QString::number(hash) +"/"
             << QDesktopServices::storageLocation (QDesktopServices::DataLocation) + "/qtc-debugging-helper/" + QString::number(hash) +"/";
 
@@ -1420,6 +1432,21 @@ QString QtVersion::buildDebuggingHelperLibrary()
         ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment();
         addToEnvironment(env);
 
+        // TODO this is a hack to get, to be removed and rewritten for 1.2
+        //
+        // For MSVC and MINGW, we need a toolchain to get the right environment        
+        ProjectExplorer::ToolChain *toolChain = 0;
+        ProjectExplorer::ToolChain::ToolChainType t = toolchainType();
+        if (t == ProjectExplorer::ToolChain::MinGW)
+            toolChain = ProjectExplorer::ToolChain::createMinGWToolChain("g++", mingwDirectory());
+        else if(t == ProjectExplorer::ToolChain::MSVC)
+            toolChain = ProjectExplorer::ToolChain::createMSVCToolChain(msvcVersion());
+        if (toolChain) {
+            toolChain->addToEnvironment(env);
+            delete toolChain;
+            toolChain = 0;
+        }
+
         qmake.setEnvironment(env.toStringList());
         qmake.setWorkingDirectory(directory);
         qmake.setProcessChannelMode(QProcess::MergedChannels);
@@ -1437,7 +1464,6 @@ QString QtVersion::buildDebuggingHelperLibrary()
         // and think about how to fix that later
 
         QString make;
-        ProjectExplorer::ToolChain::ToolChainType t = toolchainType();
         if (t == ProjectExplorer::ToolChain::MinGW)
             make = "mingw32-make.exe";
         else if(t == ProjectExplorer::ToolChain::MSVC || t == ProjectExplorer::ToolChain::WINCE)
diff --git a/src/plugins/qt4projectmanager/speinfo.cpp b/src/plugins/qt4projectmanager/speinfo.cpp
index 8ab9d128373156059b6e1361d285fe435a4758f0..3367eea3137b3e2bd0fc7e3d81f44b00b83673ef 100644
--- a/src/plugins/qt4projectmanager/speinfo.cpp
+++ b/src/plugins/qt4projectmanager/speinfo.cpp
@@ -56,21 +56,21 @@ class InfoItemConfigurationCross : public SPEInfoItem
 {
 public:
     InfoItemConfigurationCross(): SPEInfoItem("", Configuration) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Debug and Release"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Debug and Release"); }
 };
 
 class InfoItemConfigurationDebug : public SPEInfoItem
 {
 public:
     InfoItemConfigurationDebug(): SPEInfoItem("debug", Configuration) {}
-    QString name(void) const {return QCoreApplication::translate("SimpleProEditor", "Debug specific");}
+    QString name() const {return QCoreApplication::translate("SimpleProEditor", "Debug specific");}
 };
 
 class InfoItemConfigurationRelease : public SPEInfoItem
 {
 public:
     InfoItemConfigurationRelease(): SPEInfoItem("release", Configuration) {}
-    QString name(void) const {return QCoreApplication::translate("SimpleProEditor", "Release specific");}
+    QString name() const {return QCoreApplication::translate("SimpleProEditor", "Release specific");}
 };
 
 
@@ -79,28 +79,28 @@ class InfoItemPlatformCross : public SPEInfoItem
 {
 public:
     InfoItemPlatformCross(): SPEInfoItem("", Platform) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "All platforms"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "All platforms"); }
 };
 
 class InfoItemPlatformWindows : public SPEInfoItem
 {
 public:
     InfoItemPlatformWindows(): SPEInfoItem("win32", Platform) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "MS Windows specific"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "MS Windows specific"); }
 };
 
 class InfoItemPlatformUnix : public SPEInfoItem
 {
 public:
     InfoItemPlatformUnix(): SPEInfoItem("unix", Platform) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Linux/Unix specific"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Linux/Unix specific"); }
 };
 
 class InfoItemPlatformOSX : public SPEInfoItem
 {
 public:
     InfoItemPlatformOSX(): SPEInfoItem("macx", Platform) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Mac OSX specific"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Mac OSX specific"); }
 };
 
 
@@ -113,8 +113,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/target.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Target Options");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Target Options");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Type and name of the target.");
@@ -129,8 +129,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/defines.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Preprocessor Definitions");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Preprocessor Definitions");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Setting of the preprocessor definitions.");
@@ -146,8 +146,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/includes.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Include path"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Include path"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Setting of the pathes where the header files are located.");
@@ -162,8 +162,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/libs.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Libraries");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Libraries");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Defining the libraries to link the target against and the pathes where these are located.");
@@ -179,8 +179,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/sources.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Source Files");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Source Files");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "");
@@ -196,8 +196,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/headers.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Header Files");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Header Files");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "");
@@ -213,8 +213,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/forms.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Forms");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Forms");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "");
@@ -229,8 +229,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/qtmodules.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Qt Modules");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Qt Modules");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Setting up which of the Qt modules will be used in the target application.");
@@ -246,8 +246,8 @@ public:
         m_data.insert(keyImageFileName, ":/variableimages/images/resources.png");
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Resource files");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Resource files");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "");
@@ -258,8 +258,8 @@ class InfoItemVariableTarget : public SPEInfoItem
 {
 public:
     InfoItemVariableTarget(): SPEInfoItem("TARGET", Variable) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Target name");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Target name");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "The name of the resulting target.");
@@ -270,8 +270,8 @@ class InfoItemVariableConfig : public SPEInfoItem
 {
 public:
     InfoItemVariableConfig(): SPEInfoItem("CONFIG", Variable) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Configuration");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Configuration");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Configuration.");
@@ -282,8 +282,8 @@ class InfoItemVariableDestdir : public SPEInfoItem
 {
 public:
     InfoItemVariableDestdir(): SPEInfoItem("DESTDIR", Variable) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Destination directory");}
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Destination directory");}
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Where the resulting target will be created.");
@@ -300,8 +300,8 @@ public:
         m_data.insert(keyIncludedByDefault, true);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtCore Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtCore Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Core non-GUI classes used by other modules");
@@ -316,8 +316,8 @@ public:
         m_data.insert(keyIncludedByDefault, true);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtGui Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtGui Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Graphical user interface components");
@@ -332,8 +332,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtNetwork Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtNetwork Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes for network programming");
@@ -348,8 +348,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtOpenGL Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtOpenGL Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "OpenGL support classes");
@@ -364,8 +364,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtSql Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtSql Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes for database integration using SQL");
@@ -380,8 +380,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtScript Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtScript Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes for evaluating Qt Scripts");
@@ -396,8 +396,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtSvg Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtSvg Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes for displaying the contents of SVG files");
@@ -412,8 +412,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtWebKit Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtWebKit Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes for displaying and editing Web content");
@@ -428,8 +428,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtXml Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtXml Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes for handling XML");
@@ -444,8 +444,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtXmlPatterns Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtXmlPatterns Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "An XQuery/XPath engine for XML and custom data models");
@@ -460,8 +460,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Phonon Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Phonon Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Multimedia framework classes");
@@ -476,8 +476,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Qt3Support Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Qt3Support Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes that ease porting from Qt 3 to Qt 4");
@@ -492,8 +492,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtTest Module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtTest Module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Tool classes for unit testing");
@@ -508,8 +508,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "QtDBus module"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "QtDBus module"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Classes for Inter-Process Communication using the D-Bus");
@@ -526,8 +526,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Application"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Application"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Create a standalone application");
@@ -542,8 +542,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Dynamic Library"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Dynamic Library"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Create a dynamic library for usage in other applications");
@@ -558,8 +558,8 @@ public:
         m_data.insert(keyIncludedByDefault, false);
     }
 
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Static Library"); }
-    QString description(void) const
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Static Library"); }
+    QString description() const
     {
         return QCoreApplication::translate("SimpleProEditor",
             "Create a static library for usage in other applications");
@@ -571,35 +571,35 @@ class InfoItemOperatorsAdd : public SPEInfoItem
 {
 public:
     InfoItemOperatorsAdd(): SPEInfoItem("+=", Operator) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Add Operator"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Add Operator"); }
 };
 
 class InfoItemOperatorsRemove : public SPEInfoItem
 {
 public:
     InfoItemOperatorsRemove(): SPEInfoItem("-=", Operator) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Remove Operator"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Remove Operator"); }
 };
 
 class InfoItemOperatorsReplace : public SPEInfoItem
 {
 public:
     InfoItemOperatorsReplace(): SPEInfoItem("~=", Operator) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Replace Operator"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Replace Operator"); }
 };
 
 class InfoItemOperatorsSet : public SPEInfoItem
 {
 public:
     InfoItemOperatorsSet(): SPEInfoItem("=", Operator) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Set Operator"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Set Operator"); }
 };
 
 class InfoItemOperatorsUniqueAdd : public SPEInfoItem
 {
 public:
     InfoItemOperatorsUniqueAdd(): SPEInfoItem("*=", Operator) {}
-    QString name(void) const { return QCoreApplication::translate("SimpleProEditor", "Unique Add Operator"); }
+    QString name() const { return QCoreApplication::translate("SimpleProEditor", "Unique Add Operator"); }
 };
 
 
@@ -625,7 +625,7 @@ QVariant SPEInfoItem::data(const QString &key) const
     return m_data.value(key);
 }
 
-const SPEInfoItem *SPEInfoItem::parentItem(void) const
+const SPEInfoItem *SPEInfoItem::parentItem() const
 {
     return m_parentItem;
 }
@@ -651,7 +651,7 @@ QString SPEInfoItem::id() const
     return m_id;
 }
 
-SPEInfoItem::InfoKind SPEInfoItem::infoKind(void) const
+SPEInfoItem::InfoKind SPEInfoItem::infoKind() const
 {
     return m_infoKind;
 }
@@ -686,7 +686,7 @@ void SPEInfo::addListToHash(const QList<SPEInfoItem*> &list)
         m_itemHash.insert(qMakePair(item->infoKind(), item->id()), item);
 }
 
-void SPEInfo::initializeLists(void)
+void SPEInfo::initializeLists()
 {
     InfoItemConfigurationCross *infoItemConfigurationCross = new InfoItemConfigurationCross;
     InfoItemConfigurationDebug *infoItemConfigurationDebug = new InfoItemConfigurationDebug;
@@ -762,7 +762,7 @@ void SPEInfo::initializeLists(void)
     m_listsInitialized = true;
 }
 
-void SPEInfo::deleteLists(void)
+void SPEInfo::deleteLists()
 {
     m_itemHash.clear();
 
diff --git a/src/plugins/qt4projectmanager/speinfo.h b/src/plugins/qt4projectmanager/speinfo.h
index 4a21ee9bc003ba2281fefc23348d23c81fd59472..a4395212916789b9b2ab6dec7d6e3e8708e9d76b 100644
--- a/src/plugins/qt4projectmanager/speinfo.h
+++ b/src/plugins/qt4projectmanager/speinfo.h
@@ -52,12 +52,12 @@ public:
     SPEInfoItem(const QString &id, InfoKind kind);
     virtual ~SPEInfoItem() {}
 
-    QString id(void) const;
-    InfoKind infoKind(void) const;
-    virtual QString name(void) const;
-    virtual QString description(void) const;
+    QString id() const;
+    InfoKind infoKind() const;
+    virtual QString name() const;
+    virtual QString description() const;
     QVariant data(const QString &key) const;
-    const SPEInfoItem *parentItem(void) const;
+    const SPEInfoItem *parentItem() const;
     void setParentItem(const SPEInfoItem *parentItem);
 
     bool isAncestorOf(const SPEInfoItem *ancestor) const;
@@ -92,8 +92,8 @@ public:
 
 private:
     static void addListToHash(const QList<SPEInfoItem*> &list);
-    static void initializeLists(void);
-    static void deleteLists(void);
+    static void initializeLists();
+    static void deleteLists();
 
     static QList<SPEInfoItem*> m_configurationList;
     static QList<SPEInfoItem*> m_platformList;
diff --git a/src/plugins/subversion/subversionoutputwindow.h b/src/plugins/subversion/subversionoutputwindow.h
index 85d59afcbbdbf6b451034217f3f005fbea94fece..fc5b76eec46310347f8de6b35ca662b458e2d104 100644
--- a/src/plugins/subversion/subversionoutputwindow.h
+++ b/src/plugins/subversion/subversionoutputwindow.h
@@ -50,7 +50,7 @@ public:
     ~SubversionOutputWindow();
 
     QWidget *outputWidget(QWidget *parent);
-    QList<QWidget*> toolBarWidgets(void) const {
+    QList<QWidget*> toolBarWidgets() const {
         return QList<QWidget *>();
     }
 
diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp
index 12e3ef9282520cf58b9af4c1625562085398df30..d1e4ce5c8fd4546a2294f63992b43e6ad5ffd55e 100644
--- a/src/plugins/texteditor/texteditorplugin.cpp
+++ b/src/plugins/texteditor/texteditorplugin.cpp
@@ -48,6 +48,7 @@
 #include <coreplugin/editormanager/editormanager.h>
 #include <extensionsystem/pluginmanager.h>
 #include <texteditor/texteditoractionhandler.h>
+#include <find/searchresultwindow.h>
 #include <utils/qtcassert.h>
 
 #include <QtCore/QtPlugin>
@@ -63,7 +64,8 @@ TextEditorPlugin::TextEditorPlugin()
   : m_settings(0),
     m_wizard(0),
     m_editorFactory(0),
-    m_lineNumberFilter(0)
+    m_lineNumberFilter(0),
+    m_searchResultWindow(0)
 {
     QTC_ASSERT(!m_instance, return);
     m_instance = this;
@@ -137,6 +139,13 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe
 void TextEditorPlugin::extensionsInitialized()
 {
     m_editorFactory->actionHandler()->initializeActions();
+
+    m_searchResultWindow = ExtensionSystem::PluginManager::instance()->getObject<Find::SearchResultWindow>();
+
+    connect(m_settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
+            this, SLOT(updateSearchResultsFont(TextEditor::FontSettings)));
+
+    updateSearchResultsFont(m_settings->fontSettings());
 }
 
 void TextEditorPlugin::initializeEditor(PlainTextEditor *editor)
@@ -155,5 +164,10 @@ void TextEditorPlugin::invokeCompletion()
         editor->triggerCompletions();
 }
 
+void TextEditorPlugin::updateSearchResultsFont(const FontSettings &settings)
+{
+    if (m_searchResultWindow)
+        m_searchResultWindow->setTextEditorFont(QFont(settings.family(), settings.fontSize()));
+}
 
 Q_EXPORT_PLUGIN(TextEditorPlugin)
diff --git a/src/plugins/texteditor/texteditorplugin.h b/src/plugins/texteditor/texteditorplugin.h
index 73fb4538bb0aef572adcf82c8aa8602eab789580..17f601dd24cf9651ae6ceec569331820769cb946 100644
--- a/src/plugins/texteditor/texteditorplugin.h
+++ b/src/plugins/texteditor/texteditorplugin.h
@@ -32,6 +32,10 @@
 
 #include <extensionsystem/iplugin.h>
 
+namespace Find {
+class SearchResultWindow;
+}
+
 namespace TextEditor {
 
 class FontSettings;
@@ -65,6 +69,7 @@ public:
 
 private slots:
     void invokeCompletion();
+    void updateSearchResultsFont(const TextEditor::FontSettings &);
 
 private:
     static TextEditorPlugin *m_instance;
@@ -72,6 +77,7 @@ private:
     TextFileWizard *m_wizard;
     PlainTextEditorFactory *m_editorFactory;
     LineNumberFilter *m_lineNumberFilter;
+    Find::SearchResultWindow *m_searchResultWindow;
 };
 
 } // namespace Internal
diff --git a/src/shared/qrceditor/qrceditor.cpp b/src/shared/qrceditor/qrceditor.cpp
index 9a09761a23233a6aafe801909a9e5d8ca42daaa9..d6a16e41aa3c0d6b6de9927099595e2a79f00f17 100644
--- a/src/shared/qrceditor/qrceditor.cpp
+++ b/src/shared/qrceditor/qrceditor.cpp
@@ -177,6 +177,7 @@ void QrcEditor::resolveLocationIssues(QStringList &files)
     const QString dotdotSlash = QLatin1String("../");
     int i = 0;
     int count = files.count();
+    int initialCount = files.count();
 
     // Find first troublesome file
     for (; i < count; i++) {
@@ -213,10 +214,14 @@ void QrcEditor::resolveLocationIssues(QStringList &files)
             message.setWindowTitle(tr("Invalid file"));
             message.setIcon(QMessageBox::Warning);
             QPushButton * const copyButton = message.addButton(tr("Copy"), QMessageBox::ActionRole);
-            QPushButton * const skipButton = message.addButton(tr("Don't add"), QMessageBox::DestructiveRole);
+            QPushButton * skipButton = NULL;
+            if (initialCount > 1)
+            {
+                skipButton = message.addButton(tr("Skip"), QMessageBox::DestructiveRole);
+                message.setEscapeButton(skipButton);
+            }
             QPushButton * const abortButton = message.addButton(tr("Abort"), QMessageBox::RejectRole);
             message.setDefaultButton(copyButton);
-            message.setEscapeButton(skipButton);
             message.setText(tr("The file %1 is not in a subdirectory of the resource file. Continuing will result in an invalid resource file.")
                             .arg(QDir::toNativeSeparators(file)));
             message.exec();
@@ -226,7 +231,12 @@ void QrcEditor::resolveLocationIssues(QStringList &files)
                 i--; // Compensate i++
             } else if (message.clickedButton() == copyButton) {
                 const QFileInfo fi(file);
-                const QFileInfo suggestion(dir, fi.fileName());
+                QFileInfo suggestion;
+                QDir tmpTarget(dir.path() + QString(QDir::separator()) + QString("Resources"));;
+                if (tmpTarget.exists())
+                    suggestion.setFile(tmpTarget, fi.fileName());
+                else
+                    suggestion.setFile(dir, fi.fileName());
                 const QString copyName = QFileDialog::getSaveFileName(this, tr("Choose copy location"),
                                                                 suggestion.absoluteFilePath());
                 if (!copyName.isEmpty()) {
diff --git a/src/shared/qrceditor/resourceview.cpp b/src/shared/qrceditor/resourceview.cpp
index 4ad1ad2900fbc3446c08ede0c7a46360860a92c7..c641082d9ff717b2a33fac55976f2309ceae6d60 100644
--- a/src/shared/qrceditor/resourceview.cpp
+++ b/src/shared/qrceditor/resourceview.cpp
@@ -199,9 +199,8 @@ ResourceView::ResourceView(QUndoStack *history, QWidget *parent) :
     enableContextMenu(true);
 }
 
-ResourceView::~ResourceView(void)
+ResourceView::~ResourceView()
 {
-
 }
 
 void ResourceView::currentChanged(const QModelIndex &current, const QModelIndex &previous)
@@ -477,7 +476,7 @@ void ResourceView::onEditAlias()
     changeAlias(index);
 }
 
-bool ResourceView::load(QString fileName)
+bool ResourceView::load(const QString &fileName)
 {
     const QFileInfo fi(fileName);
     m_qrcModel->setFileName(fi.absoluteFilePath());
@@ -488,7 +487,7 @@ bool ResourceView::load(QString fileName)
     return m_qrcModel->reload();
 }
 
-bool ResourceView::save(void)
+bool ResourceView::save()
 {
     return m_qrcModel->save();
 }
diff --git a/src/shared/qrceditor/resourceview.h b/src/shared/qrceditor/resourceview.h
index bd99cacc3400e0bf997bf04ff1b4ca2a1034477e..034aef16d7c0cd2db39a231e5351466b5d0880ac 100644
--- a/src/shared/qrceditor/resourceview.h
+++ b/src/shared/qrceditor/resourceview.h
@@ -84,10 +84,10 @@ public:
     };
 
     ResourceView(QUndoStack *history, QWidget *parent = 0);
-    ~ResourceView(void);
+    ~ResourceView();
 
-    bool load(QString fileName);
-    bool save(void);
+    bool load(const QString &fileName);
+    bool save();
     QString fileName() const;
     void setFileName(const QString &fileName);
 
@@ -114,9 +114,9 @@ public:
     bool defaultAddFileEnabled() const;
 
     void findSamePlacePostDeletionModelIndex(int &row, QModelIndex &parent) const;
-    EntryBackup * removeEntry(const QModelIndex &index);
+    EntryBackup *removeEntry(const QModelIndex &index);
     void addFiles(int prefixIndex, const QStringList &fileNames, int cursorFile,
-            int &firstFile, int &lastFile);
+                  int &firstFile, int &lastFile);
     void removeFiles(int prefixIndex, int firstFileIndex, int lastFileIndex);
     QStringList fileNamesToAdd();
     QModelIndex addPrefix();
@@ -158,8 +158,8 @@ public:
     void changeValue(const QModelIndex &nodeIndex, NodeProperty property, const QString &value);
 
 private:
-    void addUndoCommand(const QModelIndex &nodeIndex, NodeProperty property, const QString &before,
-            const QString &after);
+    void addUndoCommand(const QModelIndex &nodeIndex, NodeProperty property,
+                        const QString &before, const QString &after);
 
     QPoint m_releasePos;
 
diff --git a/tests/auto/fakevim/main.cpp b/tests/auto/fakevim/main.cpp
index 700b25d63db3ca76dc35a322466a5c8163a8e2ce..b82f1a13bcb22769b586e2848939fc846dfde9e6 100644
--- a/tests/auto/fakevim/main.cpp
+++ b/tests/auto/fakevim/main.cpp
@@ -45,31 +45,35 @@ class tst_FakeVim : public QObject
 public:
     tst_FakeVim();
 
-    void setup();    
-    void send(const QString &command); // send a normal command
-    void sendEx(const QString &command); // send an ex command
-
-    QString cleaned(QString wanted) { wanted.remove('$'); return wanted; }
-
 public slots:
     void changeStatusData(const QString &info) { m_statusData = info; }
     void changeStatusMessage(const QString &info) { m_statusMessage = info; }
     void changeExtraInformation(const QString &info) { m_infoMessage = info; }
     
-public:
-    QString m_statusMessage;
-    QString m_statusData;
-    QString m_infoMessage;
-
 private slots:
     void commandI();
     void commandDollar();
+    void commandDown();
+    void commandUp();
 
 private:
+    void setup();    
+    void send(const QString &command); // send a normal command
+    void sendEx(const QString &command); // send an ex command
+
+    bool checkContentsHelper(QString expected, const char* file, int line);
+    bool checkHelper(bool isExCommand, QString cmd, QString expected,
+        const char* file, int line);
+    QString insertCursor(const QString &needle0);
+
     QPlainTextEdit m_editor;
     FakeVimHandler m_handler;
     QList<QTextEdit::ExtraSelection> m_selection;
 
+    QString m_statusMessage;
+    QString m_statusData;
+    QString m_infoMessage;
+
     static const QString lines;
     static const QString escape;
 };
@@ -91,7 +95,6 @@ const QString tst_FakeVim::escape = QChar(27);
 tst_FakeVim::tst_FakeVim()
     : m_handler(&m_editor, this)
 {
-
     QObject::connect(&m_handler, SIGNAL(commandBufferChanged(QString)),
         this, SLOT(changeStatusMessage(QString)));
     QObject::connect(&m_handler, SIGNAL(extraInformationChanged(QString)),
@@ -106,6 +109,12 @@ void tst_FakeVim::setup()
     m_statusData.clear();
     m_infoMessage.clear();
     m_editor.setPlainText(lines);
+    QTextCursor tc = m_editor.textCursor();
+    tc.movePosition(QTextCursor::Start, QTextCursor::MoveAnchor);
+    m_editor.setTextCursor(tc);
+    m_editor.setPlainText(lines);
+    //m_editor.show();
+    //qApp->exec();
     QCOMPARE(m_editor.toPlainText(), lines);
 }
 
@@ -119,75 +128,118 @@ void tst_FakeVim::sendEx(const QString &command)
     m_handler.handleCommand(command);
 }
 
-#define checkContents(wanted) \
-    do { QString want = cleaned(wanted); \
-        QString got = m_editor.toPlainText(); \
-        QStringList wantlist = want.split('\n'); \
-        QStringList gotlist = got.split('\n'); \
-        QCOMPARE(gotlist.size(), wantlist.size()); \
-        for (int i = 0; i < wantlist.size() && i < gotlist.size(); ++i) { \
-           QString g = QString("line %1: %2").arg(i + 1).arg(gotlist.at(i)); \
-           QString w = QString("line %1: %2").arg(i + 1).arg(wantlist.at(i)); \
-           QCOMPARE(g, w); \
-        } \
-    } while (0)
-
-#define checkText(cmd, wanted) \
-    do { \
-        send(cmd); \
-        checkContents(wanted); \
-        int p = (wanted).indexOf('$'); \
-        QCOMPARE(m_editor.textCursor().position(), p); \
-    } while (0)
-
-#define checkTextEx(cmd, wanted) \
-    do { \
-        sendEx(cmd); \
-        checkContents(wanted); \
-        int p = (wanted).indexOf('$'); \
-        QCOMPARE(m_editor.textCursor().position(), p); \
-    } while (0)
-
-#define checkPosition(cmd, pos) \
-    do { \
-        send(cmd); \
-        QCOMPARE(m_editor.textCursor().position(), pos); \
-    } while (0)
+bool tst_FakeVim::checkContentsHelper(QString want, const char* file, int line)
+{
+    QString got = m_editor.toPlainText();
+    int pos = m_editor.textCursor().position();
+    got = got.left(pos) + "@" + got.mid(pos);
+    QStringList wantlist = want.split('\n');
+    QStringList gotlist = got.split('\n');
+    if (!QTest::qCompare(gotlist.size(), wantlist.size(), "", "", file, line)) {
+        qDebug() << "WANT: " << want;
+        qDebug() << "GOT: " << got;
+        return false;
+    }
+    for (int i = 0; i < wantlist.size() && i < gotlist.size(); ++i) {
+        QString g = QString("line %1: %2").arg(i + 1).arg(gotlist.at(i));
+        QString w = QString("line %1: %2").arg(i + 1).arg(wantlist.at(i));
+        if (!QTest::qCompare(g, w, "", "", file, line)) {
+            qDebug() << "WANT: " << want;
+            qDebug() << "GOT: " << got;
+            return false;
+        }
+    }
+    return true;
+}
+
+bool tst_FakeVim::checkHelper(bool ex, QString cmd, QString expected,
+    const char *file, int line)
+{
+    if (ex)
+        sendEx(cmd);
+    else
+        send(cmd);
+    return checkContentsHelper(expected, file, line);
+}
+
+
+#define checkContents(expected) \
+    do { if (!checkContentsHelper(expected, __FILE__, __LINE__)) return; } while (0)
+
+// Runs a "normal" command and checks the result.
+// Cursor position is marked by a '@' in the expected contents.
+#define check(cmd, expected) \
+    do { if (!checkHelper(false, cmd, expected, __FILE__, __LINE__)) \
+            return; } while (0)
+
+// Runs an ex command and checks the result.
+// Cursor position is marked by a '@' in the expected contents.
+#define checkEx(cmd, expected) \
+    do { if (!checkHelper(true, cmd, expected, __FILE__, __LINE__)) \
+            return; } while (0)
+
+QString tst_FakeVim::insertCursor(const QString &needle0)
+{
+    QString needle = needle0;
+    needle.remove('@');
+    QString lines0 = lines;
+    lines0.replace(needle, needle0);
+    //qDebug() << "LINES: " << lines0;
+    return lines0;
+}
 
 void tst_FakeVim::commandI()
 {
+    return;
     setup();
 
     // empty insertion at start of document
-    checkText("i" + escape, "$" + lines);
-    checkText("u", "$" + lines);
+    check("i" + escape, "@" + lines);
+    check("u", "@" + lines);
 
     // small insertion at start of document
-    checkText("ix" + escape, "$x" + lines);
-    checkText("u", "$" + lines);
+    check("ix" + escape, "@x" + lines);
+    check("u", "@" + lines);
 
     // small insertion at start of document
-    checkText("ixxx" + escape, "xx$x" + lines);
-    checkText("u", "$" + lines);
+    check("ixxx" + escape, "xx@x" + lines);
+    check("u", "@" + lines);
 
     // combine insertions
-    checkText("ia" + escape, "$a" + lines);
-    checkText("ibx" + escape, "b$xa" + lines);
-    checkText("icyy" + escape, "bcy$yxa" + lines);
-    checkText("u", "b$xa" + lines);
-    checkText("u", "$a" + lines);   // undo broken
-    checkTextEx("redo", "b$xa" + lines);
-    checkText("u", "$a" + lines);
-    checkText("u", "$" + lines);
+    check("ia" + escape, "@a" + lines);
+    check("ibx" + escape, "b@xa" + lines);
+    check("icyy" + escape, "bcy@yxa" + lines);
+    check("u", "b@xa" + lines);
+    check("u", "@a" + lines);   // undo broken
+    checkEx("redo", "b@xa" + lines);
+    check("u", "@a" + lines);
+    check("u", "@" + lines);
 }
 
 void tst_FakeVim::commandDollar()
 {
     setup();
-    checkPosition("$", 0);
-    checkPosition("j", 2);
+    check("j$", insertCursor("<QtCore>@"));
+    //check("j", insertCursor("<QtGui>@"));
+}
+
+void tst_FakeVim::commandDown()
+{
+    setup();
+    check("j", insertCursor("@#include <QtCore"));
+    check("3j", insertCursor("@int main"));
+    check("4j", insertCursor("@    return app.exec()"));
 }
 
+void tst_FakeVim::commandUp()
+{
+    setup();
+    check("j", insertCursor("@#include <QtCore"));
+    check("3j", insertCursor("@int main"));
+    check("4j", insertCursor("@    return app.exec()"));
+}
+
+
 
 QTEST_MAIN(tst_FakeVim)
 
diff --git a/tests/manual/gdbdebugger/helper/helper.pro b/tests/manual/gdbdebugger/helper/helper.pro
new file mode 100644
index 0000000000000000000000000000000000000000..57e1272b6554d893ea234b43daf6f75b05c5d696
--- /dev/null
+++ b/tests/manual/gdbdebugger/helper/helper.pro
@@ -0,0 +1,5 @@
+
+TEMPLATE = app
+
+SOURCES += ../../../../share/qtcreator/gdbmacros/gdbmacros.cpp
+SOURCES += main.cpp
diff --git a/tests/manual/gdbdebugger/helper/main.cpp b/tests/manual/gdbdebugger/helper/main.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..2c00c1278032ac64f67acaef3fe74297719ee043
--- /dev/null
+++ b/tests/manual/gdbdebugger/helper/main.cpp
@@ -0,0 +1,19 @@
+
+#include <QApplication>
+
+extern "C"
+void qDumpObjectData440(
+    int protocolVersion,
+    int token,
+    void *data,
+    bool dumpChildren,
+    int extraInt0,
+    int extraInt1,
+    int extraInt2,
+    int extraInt3);
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+    return 0;
+}
diff --git a/tests/manual/gdbdebugger/simple/app.cpp b/tests/manual/gdbdebugger/simple/app.cpp
index 3cdc0518db6c994bef9a3f29dfd268bc2ccc9e2a..427cbf452fee6153b115b781928db7b21a6d356d 100644
--- a/tests/manual/gdbdebugger/simple/app.cpp
+++ b/tests/manual/gdbdebugger/simple/app.cpp
@@ -419,7 +419,7 @@ void testQObject(int &argc, char *argv[])
     t += "y";
     t += "y";
 
-/*
+#if 1
     QObject ob(&app);
     ob.setObjectName("An Object");
     QObject ob1;
@@ -434,7 +434,7 @@ void testQObject(int &argc, char *argv[])
     obs.append(0);
     obs.append(&app);
     ob1.setObjectName("A Subobject");
-*/
+#endif
     QString str = QString::fromUtf8("XXXXXXXXXXXXXXyyXXX ö");
     QLabel l(str);
     l.show();
diff --git a/tests/manual/gdbdebugger/simple/app/app.pro b/tests/manual/gdbdebugger/simple/app/app.pro
index 2210857b6a2cf2a7adaafea0b08f739034cac8df..4de736cad4f9a702f020552f0b6bb8f338186047 100644
--- a/tests/manual/gdbdebugger/simple/app/app.pro
+++ b/tests/manual/gdbdebugger/simple/app/app.pro
@@ -6,6 +6,7 @@ DESTDIR = ..
 
 # Input
 SOURCES += ../app.cpp
+#SOURCES += ../../../../../share/qtcreator/gdbmacros/gdbmacros.cpp
 QT += network
 
 message("this says <foo & bar>")