File indexing completed on 2024-05-05 04:41:04
0001 /* 0002 SPDX-FileCopyrightText: 2011 Aleix Pol Gonzalez <aleixpol@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-only 0005 */ 0006 0007 #include "welcomepageview.h" 0008 0009 #include "uihelper.h" 0010 #include "sessionsmodel.h" 0011 0012 #include <KDeclarative/KDeclarative> 0013 #include <KLocalizedContext> 0014 0015 #include <QQmlContext> 0016 #include <QQmlComponent> 0017 #include <QQmlError> 0018 #include <QDebug> 0019 0020 #include <shell/core.h> 0021 #include <shell/uicontroller.h> 0022 0023 #include <sublime/area.h> 0024 #include <sublime/mainwindow.h> 0025 #include <interfaces/iprojectcontroller.h> 0026 0027 using namespace KDevelop; 0028 0029 WelcomePageWidget::WelcomePageWidget(const QList<IProject*> & /*projects*/, QWidget* parent) 0030 : QQuickWidget(parent) 0031 { 0032 qRegisterMetaType<QObject*>("KDevelop::IProjectController*"); 0033 qRegisterMetaType<QObject*>("KDevelop::IPluginController*"); 0034 qRegisterMetaType<QObject*>("PatchReviewPlugin*"); 0035 qRegisterMetaType<QAction*>(); 0036 qmlRegisterType<SessionsModel>("org.kdevelop.welcomepage", 4, 3, "SessionsModel"); 0037 0038 //setup kdeclarative library 0039 KDeclarative::KDeclarative::setupEngine(engine()); 0040 KLocalizedContext *localizedContextObject = new KLocalizedContext(engine()); 0041 localizedContextObject->setTranslationDomain(QStringLiteral("kdevwelcomepage")); 0042 engine()->rootContext()->setContextObject(localizedContextObject); 0043 0044 setResizeMode(QQuickWidget::SizeRootObjectToView); 0045 0046 auto* helper = new UiHelper(this); 0047 rootContext()->setContextProperty(QStringLiteral("kdev"), helper); 0048 rootContext()->setContextProperty(QStringLiteral("ICore"), KDevelop::ICore::self()); 0049 areaChanged(ICore::self()->uiController()->activeArea()); 0050 0051 setSource(QUrl(QStringLiteral("qrc:/qml/main.qml"))); 0052 if(!errors().isEmpty()) { 0053 qWarning() << "welcomepage errors:" << errors(); 0054 } 0055 connect(Core::self()->uiControllerInternal()->activeSublimeWindow(), &Sublime::MainWindow::areaChanged, 0056 this, &WelcomePageWidget::areaChanged); 0057 } 0058 0059 void WelcomePageWidget::areaChanged(Sublime::Area* area) 0060 { 0061 rootContext()->setContextProperty(QStringLiteral("area"), area->objectName()); 0062 } 0063 0064 #include "moc_welcomepageview.cpp"