diff --git a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
index 8c792830a61a820d6df79239a423c29dc3f9818b..0baef34386bfcf2f35d66f3e7ee7cbcfc18f7996 100644
--- a/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
+++ b/src/plugins/coreplugin/actionmanager/actioncontainer.cpp
@@ -36,6 +36,7 @@
 #include "coreconstants.h"
 #include "id.h"
 
+#include <utils/hostosinfo.h>
 #include <utils/qtcassert.h>
 
 #include <QDebug>
@@ -424,7 +425,6 @@ void MenuActionContainer::removeMenu(QMenu *menu)
     m_menu->removeAction(menu->menuAction());
 }
 
-#ifdef Q_OS_MAC
 static bool menuInMenuBar(const QMenu *menu)
 {
     foreach (const QWidget *widget, menu->menuAction()->associatedWidgets()) {
@@ -433,19 +433,18 @@ static bool menuInMenuBar(const QMenu *menu)
     }
     return false;
 }
-#endif
 
 bool MenuActionContainer::updateInternal()
 {
     if (onAllDisabledBehavior() == Show)
         return true;
 
-#ifdef Q_OS_MAC
-    // work around QTBUG-25544 which makes menus in the menu bar stay at their enabled state at startup
-    // (so menus that are disabled at startup would stay disabled)
-    if (menuInMenuBar(m_menu))
-        return true;
-#endif
+    if (Utils::HostOsInfo::isMacHost()) {
+        // work around QTBUG-25544 which makes menus in the menu bar stay at their enabled state at startup
+        // (so menus that are disabled at startup would stay disabled)
+        if (menuInMenuBar(m_menu))
+            return true;
+    }
 
     bool hasitems = false;
     QList<QAction *> actions = m_menu->actions();
diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index 79b42fc326fdf867d357be7e3186e8cd4ac7f1ec..c2e3e134ddecfa29ef68f67974f67b559d18e13d 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -109,9 +109,7 @@ const char REMOVE_CURRENT_SPLIT[]  = "QtCreator.RemoveCurrentSplit";
 const char REMOVE_ALL_SPLITS[]     = "QtCreator.RemoveAllSplits";
 const char GOTO_OTHER_SPLIT[]      = "QtCreator.GotoOtherSplit";
 const char CLOSE[]                 = "QtCreator.Close";
-#ifdef Q_OS_WIN
 const char CLOSE_ALTERNATIVE[]     = "QtCreator.Close_Alternative"; // temporary, see QTCREATORBUG-72
-#endif
 const char CLOSEALL[]              = "QtCreator.CloseAll";
 const char CLOSEOTHERS[]           = "QtCreator.CloseOthers";
 const char GOTONEXT[]              = "QtCreator.GotoNext";
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 31281f078a4aa6f5aa4dea85c042855e5dc1d0fd..091a21a96542e711648408c20b4ebcb05e770d7a 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -320,14 +320,14 @@ EditorManager::EditorManager(QWidget *parent) :
     mfile->addAction(cmd, Constants::G_FILE_CLOSE);
     connect(d->m_closeCurrentEditorAction, SIGNAL(triggered()), this, SLOT(closeEditor()));
 
-#ifdef Q_OS_WIN
-    // workaround for QTCREATORBUG-72
-    QShortcut *sc = new QShortcut(parent);
-    cmd = ActionManager::registerShortcut(sc, Constants::CLOSE_ALTERNATIVE, editManagerContext);
-    cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+F4")));
-    cmd->setDescription(EditorManager::tr("Close"));
-    connect(sc, SIGNAL(activated()), this, SLOT(closeEditor()));
-#endif
+    if (Utils::HostOsInfo::isWindowsHost()) {
+        // workaround for QTCREATORBUG-72
+        QShortcut *sc = new QShortcut(parent);
+        cmd = ActionManager::registerShortcut(sc, Constants::CLOSE_ALTERNATIVE, editManagerContext);
+        cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+F4")));
+        cmd->setDescription(EditorManager::tr("Close"));
+        connect(sc, SIGNAL(activated()), this, SLOT(closeEditor()));
+    }
 
     // Close All Action
     cmd = ActionManager::registerAction(d->m_closeAllEditorsAction, Constants::CLOSEALL, editManagerContext, true);
diff --git a/src/plugins/coreplugin/fancyactionbar.cpp b/src/plugins/coreplugin/fancyactionbar.cpp
index 651683d4cb0abfb2571aa61f6990007c3a4d443c..3c8e384e951efa85bf7f97caa5bbbd076dc343db 100644
--- a/src/plugins/coreplugin/fancyactionbar.cpp
+++ b/src/plugins/coreplugin/fancyactionbar.cpp
@@ -30,6 +30,7 @@
 #include "fancyactionbar.h"
 #include "coreconstants.h"
 
+#include <utils/hostosinfo.h>
 #include <utils/stylehelper.h>
 #include <utils/stringutils.h>
 #include <utils/tooltip/tooltip.h>
@@ -152,8 +153,9 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
     // draw borders
     bool isTitledAction = defaultAction()->property("titledAction").toBool();
 
-#ifndef Q_OS_MAC // Mac UIs usually don't hover
-    if (m_fader > 0 && isEnabled() && !isDown() && !isChecked()) {
+
+    if (!Utils::HostOsInfo::isMacHost() // Mac UIs usually don't hover
+            && m_fader > 0 && isEnabled() && !isDown() && !isChecked()) {
         painter.save();
         int fader = int(40 * m_fader);
         QLinearGradient grad(rect().topLeft(), rect().topRight());
@@ -165,9 +167,7 @@ void FancyToolButton::paintEvent(QPaintEvent *event)
         painter.drawLine(rect().topLeft(), rect().topRight());
         painter.drawLine(rect().bottomLeft(), rect().bottomRight());
         painter.restore();
-    } else
-#endif
-    if (isDown() || isChecked()) {
+    } else if (isDown() || isChecked()) {
         painter.save();
         QLinearGradient grad(rect().topLeft(), rect().topRight());
         grad.setColorAt(0, Qt::transparent);
diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp
index e65f26978bc774fb0b23b12892862d63ddbf355a..556ec55eb07285f16522fad5a2c2e69620300884 100644
--- a/src/plugins/coreplugin/generalsettings.cpp
+++ b/src/plugins/coreplugin/generalsettings.cpp
@@ -33,6 +33,7 @@
 #include "infobar.h"
 #include "editormanager/editormanager.h"
 
+#include <utils/hostosinfo.h>
 #include <utils/stylehelper.h>
 #include <utils/qtcolorbutton.h>
 #include <utils/consoleprocess.h>
@@ -114,25 +115,25 @@ QWidget *GeneralSettings::createPage(QWidget *parent)
 
     m_page->colorButton->setColor(StyleHelper::requestedBaseColor());
     m_page->reloadBehavior->setCurrentIndex(EditorManager::instance()->reloadSetting());
-#ifdef Q_OS_UNIX
-    const QStringList availableTerminals = ConsoleProcess::availableTerminalEmulators();
-    const QString currentTerminal = ConsoleProcess::terminalEmulator(settings);
-    m_page->terminalComboBox->addItems(availableTerminals);
-    m_page->terminalComboBox->lineEdit()->setText(currentTerminal);
-#else
-    m_page->terminalLabel->hide();
-    m_page->terminalComboBox->hide();
-    m_page->resetTerminalButton->hide();
-#endif
-
-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
-    m_page->externalFileBrowserEdit->setText(UnixUtils::fileBrowser(settings));
-#else
-    m_page->externalFileBrowserLabel->hide();
-    m_page->externalFileBrowserEdit->hide();
-    m_page->resetFileBrowserButton->hide();
-    m_page->helpExternalFileBrowserButton->hide();
-#endif
+    if (HostOsInfo::isAnyUnixHost()) {
+        const QStringList availableTerminals = ConsoleProcess::availableTerminalEmulators();
+        const QString currentTerminal = ConsoleProcess::terminalEmulator(settings);
+        m_page->terminalComboBox->addItems(availableTerminals);
+        m_page->terminalComboBox->lineEdit()->setText(currentTerminal);
+    } else {
+        m_page->terminalLabel->hide();
+        m_page->terminalComboBox->hide();
+        m_page->resetTerminalButton->hide();
+    }
+
+    if (HostOsInfo::isAnyUnixHost() && !HostOsInfo::isMacHost()) {
+        m_page->externalFileBrowserEdit->setText(UnixUtils::fileBrowser(settings));
+    } else {
+        m_page->externalFileBrowserLabel->hide();
+        m_page->externalFileBrowserEdit->hide();
+        m_page->resetFileBrowserButton->hide();
+        m_page->helpExternalFileBrowserButton->hide();
+    }
 
     m_page->autoSaveCheckBox->setChecked(EditorManager::instance()->autoSaveEnabled());
     m_page->autoSaveInterval->setValue(EditorManager::instance()->autoSaveInterval());
@@ -142,16 +143,14 @@ QWidget *GeneralSettings::createPage(QWidget *parent)
             this, SLOT(resetInterfaceColor()));
     connect(m_page->resetWarningsButton, SIGNAL(clicked()),
             this, SLOT(resetWarnings()));
-#ifdef Q_OS_UNIX
-    connect(m_page->resetTerminalButton, SIGNAL(clicked()),
-            this, SLOT(resetTerminal()));
-#ifndef Q_OS_MAC
-    connect(m_page->resetFileBrowserButton, SIGNAL(clicked()),
-            this, SLOT(resetFileBrowser()));
-    connect(m_page->helpExternalFileBrowserButton, SIGNAL(clicked()),
-            this, SLOT(showHelpForFileBrowser()));
-#endif
-#endif
+    if (HostOsInfo::isAnyUnixHost()) {
+        connect(m_page->resetTerminalButton, SIGNAL(clicked()), this, SLOT(resetTerminal()));
+        if (!HostOsInfo::isMacHost()) {
+            connect(m_page->resetFileBrowserButton, SIGNAL(clicked()), this, SLOT(resetFileBrowser()));
+            connect(m_page->helpExternalFileBrowserButton, SIGNAL(clicked()),
+                    this, SLOT(showHelpForFileBrowser()));
+        }
+    }
 
     if (m_searchKeywords.isEmpty()) {
         QLatin1Char sep(' ');
@@ -181,13 +180,14 @@ void GeneralSettings::apply()
     // Apply the new base color if accepted
     StyleHelper::setBaseColor(m_page->colorButton->color());
     EditorManager::instance()->setReloadSetting(IDocument::ReloadSetting(m_page->reloadBehavior->currentIndex()));
-#ifdef Q_OS_UNIX
-    ConsoleProcess::setTerminalEmulator(Core::ICore::settings(),
-                                        m_page->terminalComboBox->lineEdit()->text());
-#ifndef Q_OS_MAC
-    Utils::UnixUtils::setFileBrowser(Core::ICore::settings(), m_page->externalFileBrowserEdit->text());
-#endif
-#endif
+    if (HostOsInfo::isAnyUnixHost()) {
+        ConsoleProcess::setTerminalEmulator(Core::ICore::settings(),
+                                            m_page->terminalComboBox->lineEdit()->text());
+        if (!HostOsInfo::isMacHost()) {
+            Utils::UnixUtils::setFileBrowser(Core::ICore::settings(),
+                                             m_page->externalFileBrowserEdit->text());
+        }
+    }
     EditorManager::instance()->setAutoSaveEnabled(m_page->autoSaveCheckBox->isChecked());
     EditorManager::instance()->setAutoSaveInterval(m_page->autoSaveInterval->value());
 }
@@ -213,16 +213,14 @@ void GeneralSettings::resetWarnings()
 
 void GeneralSettings::resetTerminal()
 {
-#if defined(Q_OS_UNIX)
-    m_page->terminalComboBox->lineEdit()->setText(ConsoleProcess::defaultTerminalEmulator());
-#endif
+    if (HostOsInfo::isAnyUnixHost())
+        m_page->terminalComboBox->lineEdit()->setText(ConsoleProcess::defaultTerminalEmulator());
 }
 
 void GeneralSettings::resetFileBrowser()
 {
-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
-    m_page->externalFileBrowserEdit->setText(UnixUtils::defaultFileBrowser());
-#endif
+    if (HostOsInfo::isAnyUnixHost() && !HostOsInfo::isMacHost())
+        m_page->externalFileBrowserEdit->setText(UnixUtils::defaultFileBrowser());
 }
 
 
@@ -250,9 +248,8 @@ void GeneralSettings::variableHelpDialogCreator(const QString &helpText)
 
 void GeneralSettings::showHelpForFileBrowser()
 {
-#if defined(Q_OS_UNIX) && !defined(Q_OS_MAC)
-    variableHelpDialogCreator(UnixUtils::fileBrowserHelpText());
-#endif
+    if (HostOsInfo::isAnyUnixHost() && !HostOsInfo::isMacHost())
+        variableHelpDialogCreator(UnixUtils::fileBrowserHelpText());
 }
 
 void GeneralSettings::resetLanguage()
diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp
index 4de34e5cee4bfe99517180a654fafaf606524543..6fd5d8a9b20a60599fe15c6d6489654f66dfe6c8 100644
--- a/src/plugins/coreplugin/icore.cpp
+++ b/src/plugins/coreplugin/icore.cpp
@@ -346,6 +346,8 @@
 #include "mainwindow.h"
 #include "documentmanager.h"
 
+#include <utils/hostosinfo.h>
+
 #include <QDir>
 #include <QCoreApplication>
 #include <QDebug>
@@ -483,15 +485,11 @@ QString ICore::userInterfaceLanguage()
     return qApp->property("qtc_locale").toString();
 }
 
-#ifdef Q_OS_MAC
-#  define SHARE_PATH "/../Resources"
-#else
-#  define SHARE_PATH "/../share/qtcreator"
-#endif
-
 QString ICore::resourcePath()
 {
-    return QDir::cleanPath(QCoreApplication::applicationDirPath() + QLatin1String(SHARE_PATH));
+    const QString sharePath = QLatin1String(Utils::HostOsInfo::isMacHost()
+                                            ? "/../Resources" : "/../share/qtcreator");
+    return QDir::cleanPath(QCoreApplication::applicationDirPath() + sharePath);
 }
 
 QString ICore::userResourcePath()
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 911975ca4574d5d737e54bf606d82d723d551cf2..e7e2abc6f904af34cd0a749cb9ee17f24c4f235a 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -113,7 +113,6 @@
 #include <QStyleFactory>
 
 /*
-#ifdef Q_OS_UNIX
 #include <signal.h>
 extern "C" void handleSigInt(int sig)
 {
@@ -121,7 +120,6 @@ extern "C" void handleSigInt(int sig)
     Core::ICore::exit();
     qDebug() << "SIGINT caught. Shutting down.";
 }
-#endif
 */
 
 using namespace Core;
@@ -168,10 +166,8 @@ MainWindow::MainWindow() :
     m_optionsAction(0),
     m_toggleSideBarAction(0),
     m_toggleFullScreenAction(0),
-#ifdef Q_OS_MAC
     m_minimizeAction(0),
     m_zoomAction(0),
-#endif
     m_toggleSideBarButton(new QToolButton)
 {
     (void) new DocumentManager(this);
@@ -230,9 +226,8 @@ MainWindow::MainWindow() :
     statusBar()->insertPermanentWidget(0, m_toggleSideBarButton);
 
 //    setUnifiedTitleAndToolBarOnMac(true);
-#ifdef Q_OS_UNIX
-     //signal(SIGINT, handleSigInt);
-#endif
+    //if (Utils::HostOsInfo::isAnyUnixHost())
+        //signal(SIGINT, handleSigInt);
 
     statusBar()->setProperty("p_styled", true);
     setAcceptDrops(true);
@@ -265,7 +260,6 @@ void MainWindow::setOverrideColor(const QColor &color)
     m_overrideColor = color;
 }
 
-#ifdef Q_OS_MAC
 void MainWindow::setIsFullScreen(bool fullScreen)
 {
     if (fullScreen)
@@ -273,7 +267,6 @@ void MainWindow::setIsFullScreen(bool fullScreen)
     else
         m_toggleFullScreenAction->setText(tr("Enter Full Screen"));
 }
-#endif
 
 MainWindow::~MainWindow()
 {
@@ -1095,16 +1088,16 @@ void MainWindow::changeEvent(QEvent *e)
             emit windowActivated();
         }
     } else if (e->type() == QEvent::WindowStateChange) {
-#ifdef Q_OS_MAC
-        bool minimized = isMinimized();
-        if (debugMainWindow)
-            qDebug() << "main window state changed to minimized=" << minimized;
-        m_minimizeAction->setEnabled(!minimized);
-        m_zoomAction->setEnabled(!minimized);
-#else
-        bool isFullScreen = (windowState() & Qt::WindowFullScreen) != 0;
-        m_toggleFullScreenAction->setChecked(isFullScreen);
-#endif
+        if (Utils::HostOsInfo::isMacHost()) {
+            bool minimized = isMinimized();
+            if (debugMainWindow)
+                qDebug() << "main window state changed to minimized=" << minimized;
+            m_minimizeAction->setEnabled(!minimized);
+            m_zoomAction->setEnabled(!minimized);
+        } else {
+            bool isFullScreen = (windowState() & Qt::WindowFullScreen) != 0;
+            m_toggleFullScreenAction->setChecked(isFullScreen);
+        }
     }
 }
 
diff --git a/src/plugins/coreplugin/mainwindow.h b/src/plugins/coreplugin/mainwindow.h
index 48b17eed021edc777d1a3c435d0daa39d30d9c39..97a4447d9d55f01f43fcb69362d7c57c795642b2 100644
--- a/src/plugins/coreplugin/mainwindow.h
+++ b/src/plugins/coreplugin/mainwindow.h
@@ -120,9 +120,7 @@ public:
 
     void setOverrideColor(const QColor &color);
 
-#ifdef Q_OS_MAC
     void setIsFullScreen(bool fullScreen);
-#endif
 signals:
     void windowActivated();
 
diff --git a/src/plugins/coreplugin/manhattanstyle.cpp b/src/plugins/coreplugin/manhattanstyle.cpp
index 69e6ce4888b837102b3b3219faba01fc2fe3a4e2..13449d2cd9a838730d8bd3d430891fb690713dbe 100644
--- a/src/plugins/coreplugin/manhattanstyle.cpp
+++ b/src/plugins/coreplugin/manhattanstyle.cpp
@@ -35,6 +35,7 @@
 
 #include <coreplugin/coreconstants.h>
 
+#include <utils/hostosinfo.h>
 #include <utils/qtcassert.h>
 #include <utils/stylehelper.h>
 
@@ -902,13 +903,10 @@ void ManhattanStyle::drawComplexControl(ComplexControl control, const QStyleOpti
                     if (mflags & (State_Sunken)) {
                         QColor shade(0, 0, 0, 50);
                         painter->fillRect(tool.rect.adjusted(0, -1, 1, 1), shade);
-                    }
-#ifndef Q_OS_MAC
-                    else if (mflags & (State_MouseOver)) {
+                    } else if (!Utils::HostOsInfo::isMacHost() && (mflags & State_MouseOver)) {
                         QColor shade(255, 255, 255, 50);
                         painter->fillRect(tool.rect.adjusted(0, -1, 1, 1), shade);
                     }
-#endif
                 }
                 tool.rect = tool.rect.adjusted(2, 2, -2, -2);
                 drawPrimitive(PE_IndicatorArrowDown, &tool, painter, widget);
diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp
index 84c77c121d2296ab55126fd08b189c7701d8c6bf..1fe2d7491ac90e0b84346d5ed30cc884ba78e8c9 100644
--- a/src/plugins/coreplugin/outputpanemanager.cpp
+++ b/src/plugins/coreplugin/outputpanemanager.cpp
@@ -591,16 +591,16 @@ int OutputPaneManager::currentIndex() const
 
 static QString buttonStyleSheet()
 {
-    return QLatin1String("QToolButton { border-image: url(:/core/images/panel_button.png) 2 2 2 19;"
-                         " border-width: 2px 2px 2px 19px; padding-left: -17; padding-right: 4 } "
+    QString styleSheet = QLatin1String("QToolButton { border-image: url(:/core/images/panel_button.png) 2 2 2 19;"
+            " border-width: 2px 2px 2px 19px; padding-left: -17; padding-right: 4 } "
             "QToolButton:checked { border-image: url(:/core/images/panel_button_checked.png) 2 2 2 19 } "
-            "QToolButton::menu-indicator { width:0; height:0 }"
-#ifndef Q_OS_MAC // Mac UIs usually don't hover
-            "QToolButton:checked:hover { border-image: url(:/core/images/panel_button_checked_hover.png) 2 2 2 19 } "
-            "QToolButton:pressed:hover { border-image: url(:/core/images/panel_button_pressed.png) 2 2 2 19 } "
-            "QToolButton:hover { border-image: url(:/core/images/panel_button_hover.png) 2 2 2 19 } "
-#endif
-            );
+            "QToolButton::menu-indicator { width:0; height:0 }");
+    if (!Utils::HostOsInfo::isMacHost()) { // Mac UIs usually don't hover
+        styleSheet += QLatin1String("QToolButton:checked:hover { border-image: url(:/core/images/panel_button_checked_hover.png) 2 2 2 19 } "
+                "QToolButton:pressed:hover { border-image: url(:/core/images/panel_button_pressed.png) 2 2 2 19 } "
+                "QToolButton:hover { border-image: url(:/core/images/panel_button_hover.png) 2 2 2 19 } ");
+    }
+    return styleSheet;
 }
 
 OutputPaneToggleButton::OutputPaneToggleButton(int number, const QString &text,