diff --git a/doc/doc.pri b/doc/doc.pri index 4ed0de99375..3c23ab8a951 100644 --- a/doc/doc.pri +++ b/doc/doc.pri @@ -27,7 +27,8 @@ linux-* { } macx { - cp_docs.commands = $${QMAKE_COPY_DIR} $${OUT_PWD}/doc $${OUT_PWD}/bin/QtCreator.app/Contents/Resources + DOC_DIR = $${OUT_PWD}/bin/QtCreator.app/Contents/Resources/doc + cp_docs.commands = mkdir -p $${DOC_DIR} ; $${QMAKE_COPY} $${QCH_FILE} $${DOC_DIR} cp_docs.depends += qch_docs docs.depends = cp_docs QMAKE_EXTRA_TARGETS += html_docs qch_docs cp_docs docs diff --git a/qtcreator.pro b/qtcreator.pro index e1e65631d12..7eadc16290f 100644 --- a/qtcreator.pro +++ b/qtcreator.pro @@ -6,7 +6,6 @@ count(TOO_OLD_LIST, 1) { } include(doc/doc.pri) -include(share/share.pri) TEMPLATE = subdirs CONFIG += ordered diff --git a/src/app/Info.plist b/share/qtcreator/Info.plist similarity index 100% rename from src/app/Info.plist rename to share/qtcreator/Info.plist diff --git a/share/share.pri b/share/share.pri index 50fa37a71a0..ece603de416 100644 --- a/share/share.pri +++ b/share/share.pri @@ -14,7 +14,7 @@ macx { RUNINTERMINAL.path = Contents/Resources RUNINTERMINAL.files = $$PWD/qtcreator/runInTerminal.command QMAKE_BUNDLE_DATA += SNIPPETS TEMPLATES DESIGNER SCHEMES GDBDEBUGGER LICENSE RUNINTERMINAL - QMAKE_INFO_PLIST = $$PWD/qtcreator/info.plist + QMAKE_INFO_PLIST = $$PWD/qtcreator/Info.plist } win32 { diff --git a/src/app/app.pro b/src/app/app.pro index cc8ccbe1af1..14a3cdf35c0 100644 --- a/src/app/app.pro +++ b/src/app/app.pro @@ -38,3 +38,5 @@ macx { ICON = qtcreator.icns } +include(../../share/share.pri) + diff --git a/src/plugins/coreplugin/fileiconprovider.cpp b/src/plugins/coreplugin/fileiconprovider.cpp index bf48ba37013..63947e8ed6c 100644 --- a/src/plugins/coreplugin/fileiconprovider.cpp +++ b/src/plugins/coreplugin/fileiconprovider.cpp @@ -32,6 +32,9 @@ ***************************************************************************/ #include "fileiconprovider.h" +#include +#include +#include using namespace Core; @@ -48,7 +51,7 @@ using namespace Core; FileIconProvider *FileIconProvider::m_instance = 0; FileIconProvider::FileIconProvider() - : m_unknownFileIcon(QLatin1String(":/core/images/unknownfile.png")) + : m_unknownFileIcon(qApp->style()->standardIcon(QStyle::SP_FileIcon)) { } @@ -76,7 +79,7 @@ QIcon FileIconProvider::icon(const QFileInfo &fileInfo) // same suffix (Mac OS X), but should speed up the retrieval a lot ... icon = m_systemIconProvider.icon(fileInfo); if (!suffix.isEmpty()) - registerIconForSuffix(icon, suffix); + registerIconOverlayForSuffix(icon, suffix); #else if (fileInfo.isDir()) { icon = m_systemIconProvider.icon(fileInfo); @@ -89,11 +92,22 @@ QIcon FileIconProvider::icon(const QFileInfo &fileInfo) return icon; } -/*! - Registers an icon for a given suffix, overriding any existing icon. - */ -void FileIconProvider::registerIconForSuffix(const QIcon &icon, const QString &suffix) +// Creates a pixmap with baseicon at size and overlayous overlayIcon over it. +QPixmap FileIconProvider::overlayIcon(QStyle::StandardPixmap baseIcon, const QIcon &overlayIcon, const QSize &size) const { + QPixmap iconPixmap = qApp->style()->standardIcon(baseIcon).pixmap(size); + QPainter painter(&iconPixmap); + painter.drawPixmap(0, 0, overlayIcon.pixmap(size)); + painter.end(); + return iconPixmap; +} + +/*! + Registers an icon for a given suffix, overlaying the system file icon + */ +void FileIconProvider::registerIconOverlayForSuffix(const QIcon &icon, const QString &suffix) +{ + QPixmap fileIconPixmap = overlayIcon(QStyle::SP_FileIcon, icon, QSize(16, 16)); // delete old icon, if it exists QList >::iterator iter = m_cache.begin(); for (; iter != m_cache.end(); ++iter) { @@ -103,7 +117,7 @@ void FileIconProvider::registerIconForSuffix(const QIcon &icon, const QString &s } } - QPair newEntry(suffix, icon); + QPair newEntry(suffix, fileIconPixmap); m_cache.append(newEntry); } diff --git a/src/plugins/coreplugin/fileiconprovider.h b/src/plugins/coreplugin/fileiconprovider.h index 8a92666ba4e..5e56228304f 100644 --- a/src/plugins/coreplugin/fileiconprovider.h +++ b/src/plugins/coreplugin/fileiconprovider.h @@ -40,6 +40,7 @@ #include #include #include +#include namespace Core { @@ -48,7 +49,8 @@ public: ~FileIconProvider(); // used to clear the cache QIcon icon(const QFileInfo &fileInfo); - void registerIconForSuffix(const QIcon &icon, const QString &suffix); + QPixmap overlayIcon(QStyle::StandardPixmap baseIcon, const QIcon &overlayIcon, const QSize &size) const; + void registerIconOverlayForSuffix(const QIcon &icon, const QString &suffix); static FileIconProvider *instance(); diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp index e600de92c58..efa689995c4 100644 --- a/src/plugins/cppeditor/cppplugin.cpp +++ b/src/plugins/cppeditor/cppplugin.cpp @@ -75,9 +75,9 @@ CppPluginEditorFactory::CppPluginEditorFactory(CppPlugin *owner) : << QLatin1String(CppEditor::Constants::CPP_SOURCE_MIMETYPE) << QLatin1String(CppEditor::Constants::CPP_HEADER_MIMETYPE); Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); - iconProvider->registerIconForSuffix(QIcon(":/cppeditor/images/qt_cpp.png"), + iconProvider->registerIconOverlayForSuffix(QIcon(":/cppeditor/images/qt_cpp.png"), QLatin1String("cpp")); - iconProvider->registerIconForSuffix(QIcon(":/cppeditor/images/qt_h.png"), + iconProvider->registerIconOverlayForSuffix(QIcon(":/cppeditor/images/qt_h.png"), QLatin1String("h")); } diff --git a/src/plugins/cppeditor/images/qt_cpp.png b/src/plugins/cppeditor/images/qt_cpp.png index 73fd1642b3c..c938e2d65cf 100644 Binary files a/src/plugins/cppeditor/images/qt_cpp.png and b/src/plugins/cppeditor/images/qt_cpp.png differ diff --git a/src/plugins/cppeditor/images/qt_h.png b/src/plugins/cppeditor/images/qt_h.png index dec0475219f..3c279d4b4e5 100644 Binary files a/src/plugins/cppeditor/images/qt_h.png and b/src/plugins/cppeditor/images/qt_h.png differ diff --git a/src/plugins/designer/formeditorfactory.cpp b/src/plugins/designer/formeditorfactory.cpp index df3c59adfa3..545a6cca27c 100644 --- a/src/plugins/designer/formeditorfactory.cpp +++ b/src/plugins/designer/formeditorfactory.cpp @@ -52,7 +52,7 @@ FormEditorFactory::FormEditorFactory() m_mimeTypes(QLatin1String(FORM_MIMETYPE)) { Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); - iconProvider->registerIconForSuffix(QIcon(":/formeditor/images/qt_ui.png"), + iconProvider->registerIconOverlayForSuffix(QIcon(":/formeditor/images/qt_ui.png"), QLatin1String("ui")); } diff --git a/src/plugins/designer/images/qt_ui.png b/src/plugins/designer/images/qt_ui.png index 8fb61ee27ff..982b19d6043 100644 Binary files a/src/plugins/designer/images/qt_ui.png and b/src/plugins/designer/images/qt_ui.png differ diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp index f08885ab6b9..1da33786a2f 100644 --- a/src/plugins/projectexplorer/projecttreewidget.cpp +++ b/src/plugins/projectexplorer/projecttreewidget.cpp @@ -48,6 +48,7 @@ #include #include #include +#include using namespace ProjectExplorer; using namespace ProjectExplorer::Internal; @@ -74,6 +75,11 @@ public: setUniformRowHeights(true); setTextElideMode(Qt::ElideNone); setAlternatingRowColors(true); + QPalette pal = palette(); + if (pal.base().color() == Qt::white) { // Leave dark themes as they are + pal.setBrush(QPalette::AlternateBase, QColor(239, 239, 239)); + setPalette(pal); + } setProperty("AlternateEmpty", true); // Let Manhattan to override style default // setExpandsOnDoubleClick(false); } diff --git a/src/plugins/qt4projectmanager/images/qt_project.png b/src/plugins/qt4projectmanager/images/qt_project.png index 25133f5f476..fc05f588abb 100644 Binary files a/src/plugins/qt4projectmanager/images/qt_project.png and b/src/plugins/qt4projectmanager/images/qt_project.png differ diff --git a/src/plugins/qt4projectmanager/profileeditorfactory.cpp b/src/plugins/qt4projectmanager/profileeditorfactory.cpp index 21299bb2fea..f3d6b631ab9 100644 --- a/src/plugins/qt4projectmanager/profileeditorfactory.cpp +++ b/src/plugins/qt4projectmanager/profileeditorfactory.cpp @@ -56,9 +56,9 @@ ProFileEditorFactory::ProFileEditorFactory(Qt4Manager *manager, TextEditor::Text m_actionHandler(handler) { Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); - iconProvider->registerIconForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"), + iconProvider->registerIconOverlayForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"), QLatin1String("pro")); - iconProvider->registerIconForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"), + iconProvider->registerIconOverlayForSuffix(QIcon(":/qt4projectmanager/images/qt_project.png"), QLatin1String("pri")); } diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index d7a1783feb5..f9990c522fb 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -43,6 +43,7 @@ #include #include +#include #include #include #include @@ -60,6 +61,7 @@ #include #include +#include #include #include #include @@ -94,7 +96,17 @@ Qt4PriFileNode::Qt4PriFileNode(Qt4Project *project, Qt4ProFileNode* qt4ProFileNo { Q_ASSERT(project); setFolderName(QFileInfo(filePath).baseName()); - setIcon(QIcon(":/qt4projectmanager/images/qt_project.png")); + + static QIcon dirIcon; + if (dirIcon.isNull()) { + // Create a custom Qt dir icon based on the system icon + Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); + QPixmap dirIconPixmap = iconProvider->overlayIcon(QStyle::SP_DirIcon, + QIcon(":/qt4projectmanager/images/qt_project.png"), + QSize(16, 16)); + dirIcon.addPixmap(dirIconPixmap); + } + setIcon(dirIcon); m_fileWatcher->addFile(filePath); connect(m_fileWatcher, SIGNAL(fileChanged(QString)), this, SLOT(scheduleUpdate())); diff --git a/src/plugins/resourceeditor/images/qt_qrc.png b/src/plugins/resourceeditor/images/qt_qrc.png index d22ca676103..3643f37e1a3 100644 Binary files a/src/plugins/resourceeditor/images/qt_qrc.png and b/src/plugins/resourceeditor/images/qt_qrc.png differ diff --git a/src/plugins/resourceeditor/resourceeditorfactory.cpp b/src/plugins/resourceeditor/resourceeditorfactory.cpp index dcdd691c9fc..aefd65f4147 100644 --- a/src/plugins/resourceeditor/resourceeditorfactory.cpp +++ b/src/plugins/resourceeditor/resourceeditorfactory.cpp @@ -55,8 +55,8 @@ ResourceEditorFactory::ResourceEditorFactory(ResourceEditorPlugin *plugin) : m_context += Core::UniqueIDManager::instance() ->uniqueIdentifier(QLatin1String(ResourceEditor::Constants::C_RESOURCEEDITOR)); Core::FileIconProvider *iconProvider = Core::FileIconProvider::instance(); - iconProvider->registerIconForSuffix(QIcon(":/resourceeditor/images/qt_qrc.png"), - QLatin1String("qrc")); + iconProvider->registerIconOverlayForSuffix(QIcon(":/resourceeditor/images/qt_qrc.png"), + QLatin1String("qrc")); } QString ResourceEditorFactory::kind() const