diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 036bada..df139d7 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -1,86 +1,86 @@ /* * Copyright 2013-2015 Andreas Cord-Landwehr * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #include "mainwindow.h" #include "application.h" #include "artikulate_debug.h" #include "core/editorsession.h" #include "core/resourcerepository.h" #include "core/resources/courseresource.h" #include "core/trainingsession.h" #include "liblearnerprofile/src/learner.h" #include "liblearnerprofile/src/profilemanager.h" #include "libsound/src/outputdevicecontroller.h" #include "models/languagemodel.h" #include "settings.h" #include #include #include #include #include #include #include #include #include #include #include using namespace LearnerProfile; MainWindow::MainWindow() - : m_profileManager(new LearnerProfile::ProfileManager(this)) - , m_trainingSession(new TrainingSession(m_profileManager, this)) + : m_profileManager(this) + , m_trainingSession(&m_profileManager, this) { rootContext()->setContextObject(new KLocalizedContext(this)); // load saved sound settings OutputDeviceController::self().setVolume(Settings::audioOutputVolume()); // set view - rootContext()->setContextProperty(QStringLiteral("g_trainingSession"), m_trainingSession); - rootContext()->setContextProperty(QStringLiteral("g_profileManager"), m_profileManager); + rootContext()->setContextProperty(QStringLiteral("g_trainingSession"), &m_trainingSession); + rootContext()->setContextProperty(QStringLiteral("g_profileManager"), &m_profileManager); rootContext()->setContextProperty(QStringLiteral("g_artikulateAboutData"), QVariant::fromValue(KAboutData::applicationData())); // set starting screen load(QUrl(QStringLiteral("qrc:/artikulate/qml/Main.qml"))); // create training profile if none exists: - if (!m_profileManager->activeProfile()) { - m_profileManager->addProfile(i18n("Unnamed Identity")); + if (!m_profileManager.activeProfile()) { + m_profileManager.addProfile(i18n("Unnamed Identity")); } // connect to QML signals; connect(rootObjects().constFirst(), SIGNAL(ghnsCourseDataStatusChanged()), this, SLOT(updateCourseResources())); } MainWindow::~MainWindow() { // save current settings for case of closing Settings::self()->save(); - m_profileManager->sync(); + m_profileManager.sync(); } void MainWindow::updateCourseResources() { artikulateApp->resourceRepository()->reloadCourses(); } void MainWindow::updateKcfgUseContributorResources() { rootContext()->setContextProperty(QStringLiteral("kcfg_UseContributorResources"), Settings::useCourseRepository()); } void MainWindow::configLearnerProfile() { qCritical() << "Not implemented"; // FIXME } bool MainWindow::queryClose() { Settings::self()->save(); // FIXME make sure all learner data is written to database return true; } diff --git a/src/mainwindow.h b/src/mainwindow.h index 9b4816b..2cd5228 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -1,52 +1,45 @@ /* * Copyright 2013-2015 Andreas Cord-Landwehr * * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL */ #ifndef MAINWINDOW_H #define MAINWINDOW_H #include "core/resourcerepository.h" -#include +#include "core/trainingsession.h" +#include "liblearnerprofile/src/profilemanager.h" #include -class TrainingSession; -class KHelpMenu; - -namespace LearnerProfile -{ -class ProfileManager; -} - class MainWindow : public QQmlApplicationEngine { Q_OBJECT public: /** * Default Constructor */ MainWindow(); /** * Default Destructor */ ~MainWindow() override; const IResourceRepository *resourceRepository() const; void setupActions(); bool queryClose(); public Q_SLOTS: void updateCourseResources(); void updateKcfgUseContributorResources(); void configLearnerProfile(); private: - LearnerProfile::ProfileManager *m_profileManager; - TrainingSession *m_trainingSession; + LearnerProfile::ProfileManager m_profileManager; + TrainingSession m_trainingSession; }; #endif