File indexing completed on 2024-05-05 04:41:04
0001 /* 0002 SPDX-FileCopyrightText: 2010 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "welcomepageplugin.h" 0008 #include "welcomepageview.h" 0009 0010 #include <KPluginFactory> 0011 0012 #include <interfaces/icore.h> 0013 #include <interfaces/iuicontroller.h> 0014 #include <sublime/mainwindow.h> 0015 0016 #include <QDebug> 0017 0018 K_PLUGIN_FACTORY_WITH_JSON(KDevWelcomePagePluginFactory, "kdevwelcomepage.json", registerPlugin<KDevWelcomePagePlugin>();) 0019 0020 using namespace KDevelop; 0021 0022 namespace { 0023 WelcomePageWidget* createWelcomePageWidget() 0024 { 0025 // don't attempt to load any QML if CPU doesn't have SSE2 support (cf. bug 381999) 0026 // Note: Clang 4.0 moved the definition of __cpu_model (used by __builtin_cpu_supporst) into compiler-rt lib it seems -- let's just disable this feature on this compiler 0027 #if defined(Q_OS_LINUX) && defined(Q_PROCESSOR_X86_32) && (defined(Q_CC_GNU) || (defined(Q_CC_CLANG) && __clang_major__ >= 3 && __clang_minor__ >= 7 && __clang_major__ < 4)) 0028 if (!__builtin_cpu_supports("sse2")) { 0029 qWarning() << "Welcome Page won't load any QML -- lacking SSE2 support on this processor"; 0030 return nullptr; 0031 } 0032 #endif 0033 0034 return new WelcomePageWidget({}); 0035 } 0036 } 0037 0038 KDevWelcomePagePlugin::KDevWelcomePagePlugin( QObject* parent, const QVariantList& ) 0039 : IPlugin(QStringLiteral("kdevwelcomepage"), parent ) 0040 { 0041 m_welcomePageWidget = createWelcomePageWidget(); 0042 if (m_welcomePageWidget) { 0043 auto mainWindow = qobject_cast<Sublime::MainWindow*>(ICore::self()->uiController()->activeMainWindow()); 0044 mainWindow->setBackgroundCentralWidget(m_welcomePageWidget); 0045 } 0046 } 0047 0048 void KDevWelcomePagePlugin::unload() 0049 { 0050 auto mainWindow = qobject_cast<Sublime::MainWindow*>(ICore::self()->uiController()->activeMainWindow()); 0051 if (mainWindow && m_welcomePageWidget) { 0052 mainWindow->setBackgroundCentralWidget(nullptr); 0053 } 0054 } 0055 0056 #include "welcomepageplugin.moc" 0057 #include "moc_welcomepageplugin.cpp"