Hello community, here is the log from the commit of package artikulate for openSUSE:Factory checked in at 2016-06-25 01:56:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/artikulate (Old) and /work/SRC/openSUSE:Factory/.artikulate.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "artikulate" Changes: -------- --- /work/SRC/openSUSE:Factory/artikulate/artikulate.changes 2016-06-02 09:35:58.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.artikulate.new/artikulate.changes 2016-06-25 01:57:00.000000000 +0200 @@ -1,0 +2,8 @@ +Fri Jun 10 17:45:55 UTC 2016 - [email protected] + +- Update to KDE Applications 16.04.2 + * KDE Applications 16.04.2 + * https://www.kde.org/announcements/announce-applications-16.04.2.php + + +------------------------------------------------------------------- Old: ---- artikulate-16.04.1.tar.xz New: ---- artikulate-16.04.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ artikulate.spec ++++++ --- /var/tmp/diff_new_pack.KvobPr/_old 2016-06-25 01:57:01.000000000 +0200 +++ /var/tmp/diff_new_pack.KvobPr/_new 2016-06-25 01:57:01.000000000 +0200 @@ -17,7 +17,7 @@ Name: artikulate -Version: 16.04.1 +Version: 16.04.2 Release: 0 Summary: Pronunciation Self-Teaching License: LGPL-3.0+ and GPL-2.0 and BSD-3-Clause ++++++ artikulate-16.04.1.tar.xz -> artikulate-16.04.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/liblearnerprofile/src/profilemanager.cpp new/artikulate-16.04.2/liblearnerprofile/src/profilemanager.cpp --- old/artikulate-16.04.1/liblearnerprofile/src/profilemanager.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/liblearnerprofile/src/profilemanager.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -232,20 +232,21 @@ return d->m_goals; } -void ProfileManager::registerGoal(LearningGoal::Category category, +LearningGoal * ProfileManager::registerGoal(LearningGoal::Category category, const QString &identifier, const QString &name) { // test whether goal is already registered foreach (LearningGoal *cmpGoal, d->m_goals) { if (cmpGoal->category() == category && cmpGoal->identifier() == identifier) { - return; + return cmpGoal; } } LearningGoal *goal = new LearningGoal(category, identifier, this); goal->setName(name); d->m_goals.append(goal); d->m_storage.storeGoal(goal); + return goal; } LearnerProfile::LearningGoal * LearnerProfile::ProfileManager::goal( @@ -253,15 +254,10 @@ const QString& identifier) const { foreach (LearningGoal *goal, d->m_goals) { - if (goal->category() != category) { - continue; + if (goal->category() == category && goal->identifier() == identifier) { + return goal; } - if (goal->identifier() != identifier) { - continue; - } - return goal; } - qCWarning(LIBLEARNER_LOG) << "no goal found for:" << category << identifier; return nullptr; } @@ -277,6 +273,9 @@ QHash<QString, int> ProfileManager::progressValues(Learner *learner, LearningGoal *goal, const QString &container) const { + if (!learner || !goal) { + return QHash<QString, int>(); + } return d->m_storage.readProgressValues(learner, goal, container); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/liblearnerprofile/src/profilemanager.h new/artikulate-16.04.2/liblearnerprofile/src/profilemanager.h --- old/artikulate-16.04.1/liblearnerprofile/src/profilemanager.h 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/liblearnerprofile/src/profilemanager.h 2016-05-26 21:13:05.000000000 +0200 @@ -60,7 +60,7 @@ * Register learning goal if not registered yet. The registered goals will be stored at the * internal database. */ - void registerGoal(LearningGoal::Category category, const QString &identifier, const QString &name); + LearningGoal * registerGoal(LearningGoal::Category category, const QString &identifier, const QString &name); LearningGoal * goal(LearningGoal::Category category, const QString &identifier) const; /** * updates current learning goal by activity, adds new learning goal if necessary, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediabackend.cpp new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediabackend.cpp --- old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediabackend.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediabackend.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -27,37 +27,23 @@ QtMultimediaBackend::QtMultimediaBackend(QObject *parent, const QList< QVariant >&) : BackendInterface("qtmultimedia", parent) - , m_captureBackend(nullptr) - , m_outputBackend(nullptr) + , m_captureBackend(new QtMultimediaCaptureBackend(this)) + , m_outputBackend(new QtMultimediaOutputBackend(this)) { } QtMultimediaBackend::~QtMultimediaBackend() { - if (m_captureBackend) { - m_captureBackend->deleteLater(); - m_captureBackend = nullptr; - } - if (m_outputBackend) { - m_outputBackend->deleteLater(); - m_outputBackend = nullptr; - } } CaptureBackendInterface * QtMultimediaBackend::captureBackend() const { - if (!m_captureBackend) { - m_captureBackend = new QtMultimediaCaptureBackend(); - } return m_captureBackend; } OutputBackendInterface * QtMultimediaBackend::outputBackend() const { - if (!m_outputBackend) { - m_outputBackend = new QtMultimediaOutputBackend(); - } return m_outputBackend; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediabackend.h new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediabackend.h --- old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediabackend.h 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediabackend.h 2016-05-26 21:13:05.000000000 +0200 @@ -38,8 +38,8 @@ OutputBackendInterface * outputBackend() const; private: - mutable QtMultimediaCaptureBackend *m_captureBackend; - mutable QtMultimediaOutputBackend *m_outputBackend; + QtMultimediaCaptureBackend *m_captureBackend; + QtMultimediaOutputBackend *m_outputBackend; }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.cpp new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.cpp --- old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -24,8 +24,9 @@ #include <KLocalizedString> -QtMultimediaCaptureBackend::QtMultimediaCaptureBackend() - : m_recorder(new QAudioRecorder) +QtMultimediaCaptureBackend::QtMultimediaCaptureBackend(QObject *parent) + : CaptureBackendInterface(parent) + , m_recorder(new QAudioRecorder) { QString selectedInput = m_recorder->defaultAudioInput(); QAudioEncoderSettings audioSettings; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.h new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.h --- old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.h 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediacapturebackend.h 2016-05-26 21:13:05.000000000 +0200 @@ -33,7 +33,7 @@ Q_OBJECT public: - QtMultimediaCaptureBackend(); + explicit QtMultimediaCaptureBackend(QObject *parent); virtual ~QtMultimediaCaptureBackend(); void startCapture(const QString &filePath); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.cpp new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.cpp --- old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -20,8 +20,9 @@ #include <QUrl> #include <QMediaPlayer> -QtMultimediaOutputBackend::QtMultimediaOutputBackend() - : m_player(new QMediaPlayer) +QtMultimediaOutputBackend::QtMultimediaOutputBackend(QObject *parent) + : OutputBackendInterface(parent) + , m_player(new QMediaPlayer) { connect(m_player, &QMediaPlayer::stateChanged, this, &QtMultimediaOutputBackend::stateChanged); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.h new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.h --- old/artikulate-16.04.1/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.h 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/libsound/src/qtmultimediabackend/qtmultimediaoutputbackend.h 2016-05-26 21:13:05.000000000 +0200 @@ -28,7 +28,7 @@ Q_OBJECT public: - QtMultimediaOutputBackend(); + explicit QtMultimediaOutputBackend(QObject *parent = nullptr); virtual ~QtMultimediaOutputBackend(); void setUri(const QString & uri); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/CMakeLists.txt new/artikulate-16.04.2/src/CMakeLists.txt --- old/artikulate-16.04.1/src/CMakeLists.txt 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/CMakeLists.txt 2016-05-26 21:13:05.000000000 +0200 @@ -23,7 +23,7 @@ # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### -ecm_setup_version(0.6.0 +ecm_setup_version(0.6.1 VARIABLE_PREFIX ARTIKULATE VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/ArtikulateConfigVersion.cmake" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/core/recorder.cpp new/artikulate-16.04.2/src/core/recorder.cpp --- old/artikulate-16.04.1/src/core/recorder.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/core/recorder.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -30,7 +30,7 @@ Recorder::Recorder(QObject *parent) : QObject(parent) , m_state(StoppedState) - , m_recordingBufferFile(QLatin1String("XXXXXX.ogg")) + , m_recordingBufferFile(QDir::tempPath() + QLatin1String("/XXXXXX.ogg")) { } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/core/resourcemanager.cpp new/artikulate-16.04.2/src/core/resourcemanager.cpp --- old/artikulate-16.04.1/src/core/resourcemanager.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/core/resourcemanager.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -180,17 +180,6 @@ return false; } -void ResourceManager::registerLearningGoals(LearnerProfile::ProfileManager *profileManger) -{ - foreach (LanguageResource *languageResource, languageResources()) { - profileManger->registerGoal( - LearnerProfile::LearningGoal::Language, - languageResource->language()->id(), - languageResource->language()->i18nTitle() - ); - } -} - void ResourceManager::addLanguage(const QUrl &languageFile) { if (m_loadedResources.contains(languageFile.toLocalFile())) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/core/resourcemanager.h new/artikulate-16.04.2/src/core/resourcemanager.h --- old/artikulate-16.04.1/src/core/resourcemanager.h 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/core/resourcemanager.h 2016-05-26 21:13:05.000000000 +0200 @@ -79,14 +79,6 @@ bool modified() const; /** - * Register loaded languages as learning goals in profile manager. - * - * TODO this should not be done by explicit call, but by putting data at shared data storage - * for profile manager - */ - void registerLearningGoals(LearnerProfile::ProfileManager *profileManger); - - /** * \return \c true if a repository is used, else \c false */ Q_INVOKABLE bool isRepositoryManager() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/core/trainingsession.cpp new/artikulate-16.04.2/src/core/trainingsession.cpp --- old/artikulate-16.04.1/src/core/trainingsession.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/core/trainingsession.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -57,8 +57,6 @@ if (m_language == language) { return; } - setCourse(nullptr); - setUnit(nullptr); m_language = language; emit languageChanged(); } @@ -70,6 +68,9 @@ void TrainingSession::setCourse(Course *course) { + if (!course) { + return; + } if (m_course == course) { return; } @@ -81,6 +82,13 @@ // lazy loading of training data LearnerProfile::LearningGoal * goal = m_profileManager->goal( LearnerProfile::LearningGoal::Language, m_course->id()); + if (!goal) { + goal = m_profileManager->registerGoal( + LearnerProfile::LearningGoal::Language, + course->language()->id(), + course->language()->i18nTitle() + ); + } auto data = m_profileManager->progressValues(m_profileManager->activeProfile(), goal, m_course->id() @@ -155,7 +163,7 @@ // store training activity LearnerProfile::LearningGoal * goal = m_profileManager->goal( - LearnerProfile::LearningGoal::Language, m_course->id()); + LearnerProfile::LearningGoal::Language, m_course->language()->id()); m_profileManager->recordProgress(m_profileManager->activeProfile(), goal, m_course->id(), @@ -175,7 +183,7 @@ // store training activity LearnerProfile::LearningGoal * goal = m_profileManager->goal( - LearnerProfile::LearningGoal::Language, m_course->id()); + LearnerProfile::LearningGoal::Language, m_course->language()->id()); m_profileManager->recordProgress(m_profileManager->activeProfile(), goal, m_course->id(), @@ -204,7 +212,7 @@ return; } LearnerProfile::LearningGoal * goal = m_profileManager->goal( - LearnerProfile::LearningGoal::Language, m_course->id()); + LearnerProfile::LearningGoal::Language, m_course->language()->id()); learner->addGoal(goal); learner->setActiveGoal(goal); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/mainwindow.cpp new/artikulate-16.04.2/src/mainwindow.cpp --- old/artikulate-16.04.1/src/mainwindow.cpp 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/mainwindow.cpp 2016-05-26 21:13:05.000000000 +0200 @@ -67,7 +67,6 @@ qFatal("No language resources found, cannot start application."); } m_resourceManager->loadCourseResources(); - m_resourceManager->registerLearningGoals(m_profileManager); m_trainingSession->setProfileManager(m_profileManager); // create menu diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/qml/Main.qml new/artikulate-16.04.2/src/qml/Main.qml --- old/artikulate-16.04.1/src/qml/Main.qml 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/qml/Main.qml 2016-05-26 21:13:05.000000000 +0200 @@ -78,7 +78,7 @@ TreeView { id: phraseTree - Layout.preferredWidth: Math.floor(main.width * 0.3) + implicitWidth: Math.floor(root.width * 0.3) Layout.fillHeight: true TableViewColumn { title: i18n("Categories") @@ -179,7 +179,7 @@ Loader { Layout.fillHeight: true sourceComponent: { - g_trainingSession.language == null && courseFilterModel.filteredCount == 0 + g_trainingSession.language == null ? welcomeScreen : trainingScreen } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/artikulate-16.04.1/src/qml/TrainerSessionScreen.qml new/artikulate-16.04.2/src/qml/TrainerSessionScreen.qml --- old/artikulate-16.04.1/src/qml/TrainerSessionScreen.qml 2016-04-26 00:14:59.000000000 +0200 +++ new/artikulate-16.04.2/src/qml/TrainerSessionScreen.qml 2016-05-26 21:13:05.000000000 +0200 @@ -22,6 +22,7 @@ import QtQuick 2.1 import QtQuick.Controls 1.2 import QtQuick.Layouts 1.2 +import QtQuick.Controls.Styles 1.4 import artikulate 1.0 Item { @@ -78,13 +79,16 @@ text: (g_trainingSession.phrase != null) ? g_trainingSession.phrase.text : "" wrapMode: Text.WordWrap readOnly: true - backgroundVisible: false + horizontalAlignment: Text.AlignHCenter + style: TextAreaStyle { + backgroundColor: trainingTextRect.color + } } SoundPlayer { id: buttonNativePlay anchors { bottom: trainingTextRect.bottom - leftMargin: theme.spacing + horizontalCenter: parent.horizontalCenter bottomMargin: theme.spacing } text: i18n("Listen")
