Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package haruna for openSUSE:Factory checked 
in at 2022-08-25 15:08:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/haruna (Old)
 and      /work/SRC/openSUSE:Factory/.haruna.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "haruna"

Thu Aug 25 15:08:59 2022 rev:14 rq:999104 version:0.9.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/haruna/haruna.changes    2022-08-23 
14:29:54.275644938 +0200
+++ /work/SRC/openSUSE:Factory/.haruna.new.2083/haruna.changes  2022-08-25 
15:09:06.121216102 +0200
@@ -1,0 +2,8 @@
+Wed Aug 24 16:53:39 UTC 2022 - Luigi Baldoni <[email protected]>
+
+- Update to version 0.9.1
+  Bugfixes:
+  * Fixed two broken actions in the global menu
+  * Fixed translations
+
+-------------------------------------------------------------------
@@ -5,122 +13,32 @@
-  * SubtitlesSettings: set default properties
-  * improve documentation
-  * mpvitem: initialize `ytdl-format` property
-  * PlaybackSettings: refactor `ytdl-format` setting
-  * SettingsWindow: remove `visible` property
-  * Settings: make text casing more consistent
-  * SubtitlesSettings: add settings for subtitle family and size
-  * use qFatal instead of throw
-  * build: fix build on bsd
-  * build: only use QtX11Extras on linux
-  * mpvcore: remove unused include
-  * mpvitem: remove unused include and variable
-  * mpvitem: refactor, code style changes
-  * AudioMenu: disable tracks menu when there are no tracks
-  * AudioMenu,SubtitlesMenu: set mpv models directly to the
-    instantiator
-  * Settings: remove footer from sidebar
-  * remove kxmlgui dependency
-  * mpv: don't set `ytdl-format` before loading a file
-  * ContextMenu: fix actions name
-  * Settings: make screenshot template field fill width
-  * Settings: move volume step option to audio page
-  * Settings: move seek options to playback page
-  * add option to restore window size and position
-  * SVN_SILENT made messages (.desktop file) - always resolve
-    ours
-  * GIT_SILENT made messages (after extraction)
-  * rename remaining actions instances to appActions
-  * MouseSettings: display action text
-  * actions: change actions context property name to appActions
-  * MouseSettings: use proxyActionsModel for the actions list
-  * SettingsWindow: change page when opening a settings page
-    through an action
-  * actions: map proxy row to source model row when saving a
-    shortcut
-  * Settings: set General as default window
-  * remove haction class and qaction includes
-  * CustomCommandsSettings: small refactoring
-  * remove ProxyCustomCommandsModel
-  * actionsmodel: add proxy model name filtering
-  * actionsmodel: handle shortcut clearing
-  * customcommandsmodel: update model on shortcut changes
-  * actionsmodel: add functions to edit and append custom actions
-  * refactor custom commands actions to use the ActionsModes
-  * remove ActionsManager class
-  * refactor actions to not use the KShortcutsDialog from KXmlGui
-  * main.qml: replace appActions with an alias to the actions
-    component
-  * add ListItem component
-  * PlaylistSettings: remove non-existent property
-  * ColorPickerButton: add border
-  * GeneralSettings: fix button bottom border being cut off
-  * SVN_SILENT made messages (.desktop file) - always resolve
-    ours
-  * GIT_SILENT made messages (after extraction)
-  * mpvrenderer: add display parameters to
-    mpv_render_context_create
-  * CustomCommands: show shortcut as buttons text, put shortcut
-    button in a loader
-  * add error message component to display errors coming from cpp
-  * mpvitem: return early with an error message if youtube
-    playlist is empty
-  * add option to pass error messages from cpp to qml
-  * customcommands: rename LoadOnStartup to SetOnStartup
-  * mpvcore: switch back to using ErrorReturn struct
-  * mpvcore: print errors instead of returning them
-  * MpvVideo: don't run timer when no file is loaded
-  * customcommands: add option to disable the loading of
-    commands at startup
-  * mpvitem: don't connect loadTracks to fileLoaded signal
-  * mpvcore: remove ErrorReturn struct and get_error method
-  * SVN_SILENT made messages (.desktop file) - always resolve
-    ours
-  * GIT_SILENT made messages (after extraction)
-  * SVN_SILENT made messages (.desktop file) - always resolve
-    ours
-  * GIT_SILENT made messages (after extraction)
-  * refactor(mpv): rename mpvobject to mpvitem
-  * refactor(mpv): some toUtf8().data() usage improvements
-  * refactor(mpv): use QMetaObject::invokeMethod with a pointer
-    to member function
-  * refactor(mpv): move mpv_set_wakeup_callback to mpvcore
-  * refactor(mpv): remove dup_qstring method
-  * chore: remove WTFPL license
-  * refactor(mpv) remove unnecessary includes
-  * refactor(mpv): move code from mpvqthelper into mpvcore
-  * chore: add license to mpvcore.cpp/h
-  * refactor(mpv): split core functionality from MpvObject into
-    MpvCore
-  * fix(mpv): call initProperties()
-  * refactor(mpv): move property initialization from qml to cpp
-  * chore: add license
-  * refactor: move MpvRederer class to own file
-  * refactor: move mpv files to own folder
-  * fix: close color picker window when closing the application
-  * feat: add tooltips to subtitle color picker and reset buttons
-  * chore: add license header to ColorPickerButton.qml
-  * feat: add settings to customize the subtitle
-  * feat(recentfiles): show correct youtube playlist title
-  * feat: add seek to start, seek to last position, load last
-    played file to menubar
-  * feat(recentfiles): add setting to set maximum number of
-    recent files
-  * feat(recentfiles): add option to clear recent files list
-  * fix: apply PlaybackSettings.playOnResume only to videos that
-    have been played before
-  * GIT_SILENT made messages (after extraction)
-  * GIT_SILENT made messages (after extraction)
-  * Fix minor typo
-  * fix: restore time position for youtube videos
-  * feat: add setting to start playback when resuming a file and
-    some other things
-  * feat: add mpv context menu
-  * GIT_SILENT made messages (after extraction)
-  * Improve hamburger menu
-  * GIT_SILENT made messages (after extraction)
-  * fix: more HamburgerMenu changes
-  * fix: some fixes for the menus
-  * fix: use KCONFIG_VERSION instead of
-    KFILEMETADATA_ENABLE_DEPRECATED_SINCE
-  * fix: save settings after toggling menubar/header
-  * Add hamburger menu in header
+  Features:
+  * Refactored the shortcuts configuration, now it's available
+    in the settings window with the other settings, instead of
+    opening another window
+  * Hamburger menu now only show a few actions, the rest are
+    available in a submenu
+  * When menubar is hidden the hamburger menu will be shown in
+    the header/toolbar and when the header is hidden it's shown
+    in the footer
+  * Added a proper context menu for the video
+  * Added setting to start playback when resuming playback of a
+    file
+  * Added setting to set maximum number of recent files
+  * Added option to clear recent files
+  * Added setting to restore window size and position
+  * Added settings to customize the subtitle font family, size,
+    style (bold, italic), color, shadow color, shadow offset,
+    border color, border width
+  * Moved seek settings to playback settings page
+  * Moved volume step setting to audio settings page
+  * Custom commands that run on startup can be turned off so
+    they are not set on next run
+  * In mouse settings the action text, which is translatable, is
+    shown instead of it's internal name
+  Bugfixes:
+  * Toggling menubar and header/toolbar through actions
+    remembers the state on next run
+  * Restore time position for youtube videos
+  * Improve mpv initialization to allow better hardware decoding
+    support
+  * Ytdl-format property can be overwritten by a custom command
+    action

Old:
----
  haruna-v0.9.0.tar.gz

New:
----
  haruna-v0.9.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ haruna.spec ++++++
--- /var/tmp/diff_new_pack.ip8cse/_old  2022-08-25 15:09:06.741217411 +0200
+++ /var/tmp/diff_new_pack.ip8cse/_new  2022-08-25 15:09:06.745217420 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           haruna
-Version:        0.9.0
+Version:        0.9.1
 Release:        0
 Summary:        Video player built with Qt/QML on top of libmpv
 License:        CC-BY-4.0 AND GPL-3.0-or-later AND WTFPL

++++++ haruna-v0.9.0.tar.gz -> haruna-v0.9.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/CMakeLists.txt 
new/haruna-v0.9.1/CMakeLists.txt
--- old/haruna-v0.9.0/CMakeLists.txt    2022-08-17 14:15:34.000000000 +0200
+++ new/haruna-v0.9.1/CMakeLists.txt    2022-08-24 18:15:54.000000000 +0200
@@ -7,7 +7,7 @@
 cmake_minimum_required(VERSION 3.15)
 
 cmake_policy(SET CMP0048 NEW)
-project(haruna VERSION 0.9.0 LANGUAGES CXX)
+project(haruna VERSION 0.9.1 LANGUAGES CXX)
 
 set(CMAKE_INCLUDE_CURRENT_DIR ON)
 set(CMAKE_AUTOMOC ON)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/data/org.kde.haruna.metainfo.xml 
new/haruna-v0.9.1/data/org.kde.haruna.metainfo.xml
--- old/haruna-v0.9.0/data/org.kde.haruna.metainfo.xml  2022-08-17 
14:15:34.000000000 +0200
+++ new/haruna-v0.9.1/data/org.kde.haruna.metainfo.xml  2022-08-24 
18:15:54.000000000 +0200
@@ -279,6 +279,15 @@
     </ul>
   </description>
   <releases>
+    <release version="0.9.1" date="2022-08-24">
+      <description>
+        <p>Bugfixes:</p>
+        <ul>
+          <li>Fixed two broken actions in the global menu</li>
+          <li>Fixed translations</li>
+        </ul>
+      </description>
+    </release>
     <release version="0.9.0" date="2022-08-17">
       <description>
         <p>Features:</p>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/src/application.cpp 
new/haruna-v0.9.1/src/application.cpp
--- old/haruna-v0.9.0/src/application.cpp       2022-08-17 14:15:34.000000000 
+0200
+++ new/haruna-v0.9.1/src/application.cpp       2022-08-24 18:15:54.000000000 
+0200
@@ -27,8 +27,6 @@
 #include "videosettings.h"
 #include "worker.h"
 
-#include <clocale>
-
 #include <QApplication>
 #include <QCommandLineParser>
 #include <QCoreApplication>
@@ -112,10 +110,6 @@
         QApplication::setStyle(GeneralSettings::guiStyle());
     }
 
-    // Qt sets the locale in the QGuiApplication constructor, but libmpv
-    // requires the LC_NUMERIC category to be set to "C", so change it back.
-    std::setlocale(LC_NUMERIC, "C");
-
     setupWorkerThread();
     setupAboutData();
     setupCommandLineParser();
@@ -202,6 +196,13 @@
     qRegisterMetaType<PlayListItem*>();
     qRegisterMetaType<TracksModel*>();
     
qRegisterMetaType<KFileMetaData::PropertyMap>("KFileMetaData::PropertyMap");
+    // models
+    qmlRegisterType<SubtitlesFoldersModel>("org.kde.haruna.models", 1, 0, 
"SubtitlesFoldersModel");
+    qmlRegisterType<ActionsModel>("org.kde.haruna.models",          1, 0, 
"ActionsModel");
+    qmlRegisterType<ProxyActionsModel>("org.kde.haruna.models",     1, 0, 
"ProxyActionsModel");
+    qmlRegisterType<CustomCommandsModel>("org.kde.haruna.models",   1, 0, 
"CustomCommandsModel");
+    qmlRegisterType<RecentFilesModel>("org.kde.haruna.models",      1, 0, 
"RecentFilesModel");
+
 }
 
 void Application::setupQmlSettingsTypes()
@@ -231,36 +232,12 @@
 void Application::setupQmlContextProperties()
 {
     std::unique_ptr<LockManager> lockManager = std::make_unique<LockManager>();
-    std::unique_ptr<SubtitlesFoldersModel> subsFoldersModel = 
std::make_unique<SubtitlesFoldersModel>();
-
-    m_engine->rootContext()->setContextProperty(QStringLiteral("app"), this);
-    qmlRegisterUncreatableType<Application>("Application", 1, 0, "Application",
-                                            QStringLiteral("Application should 
not be created in QML"));
-
-    
m_engine->rootContext()->setContextProperty(QStringLiteral("mediaPlayer2Player"),
 new MediaPlayer2Player(this));
-
-    m_engine->rootContext()->setContextProperty(QStringLiteral("lockManager"), 
lockManager.release());
-    qmlRegisterUncreatableType<LockManager>("LockManager", 1, 0, "LockManager",
-                                            QStringLiteral("LockManager should 
not be created in QML"));
-
-    
m_engine->rootContext()->setContextProperty(QStringLiteral("subsFoldersModel"), 
subsFoldersModel.release());
-
-
-    auto actionsModel = new ActionsModel();
-    
m_engine->rootContext()->setContextProperty(QStringLiteral("actionsModel"), 
actionsModel);
-    m_engine->rootContext()->setContextProperty(QStringLiteral("appActions"), 
&actionsModel->propertyMap);
-    auto proxyActionsModel = new ProxyActionsModel();
-    proxyActionsModel->setSourceModel(actionsModel);
-    
m_engine->rootContext()->setContextProperty(QStringLiteral("proxyActionsModel"),
 proxyActionsModel);
-
-    auto customCommandsModel = new CustomCommandsModel(actionsModel);
-    
m_engine->rootContext()->setContextProperty(QStringLiteral("customCommandsModel"),
 customCommandsModel);
-
-    auto recentFilesModel = new RecentFilesModel();
-    
m_engine->rootContext()->setContextProperty(QStringLiteral("recentFilesModel"), 
recentFilesModel);
-
+    m_engine->rootContext()->setContextProperty("lockManager", 
lockManager.release());
+    m_engine->rootContext()->setContextProperty("app", this);
+    m_engine->rootContext()->setContextProperty("mediaPlayer2Player", new 
MediaPlayer2Player(this));
+    m_engine->rootContext()->setContextProperty("appActions", new 
QQmlPropertyMap);
     m_engine->rootContext()->setContextObject(new KLocalizedContext(this));
-    
m_engine->rootContext()->setContextProperty(QStringLiteral("harunaAboutData"),
+    m_engine->rootContext()->setContextProperty("harunaAboutData",
                                                 
QVariant::fromValue(KAboutData::applicationData()));
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/src/models/customcommandsmodel.cpp 
new/haruna-v0.9.1/src/models/customcommandsmodel.cpp
--- old/haruna-v0.9.0/src/models/customcommandsmodel.cpp        2022-08-17 
14:15:34.000000000 +0200
+++ new/haruna-v0.9.1/src/models/customcommandsmodel.cpp        2022-08-24 
18:15:54.000000000 +0200
@@ -13,40 +13,6 @@
 CustomCommandsModel::CustomCommandsModel(QObject *parent)
     : QAbstractListModel(parent)
 {
-    QString ccConfig = 
Global::instance()->appConfigFilePath(Global::ConfigFile::CustomCommands);
-    m_customCommandsConfig = KSharedConfig::openConfig(ccConfig, 
KConfig::SimpleConfig);
-    QStringList groups = m_customCommandsConfig->groupList();
-
-    auto *actionsModel = qobject_cast<ActionsModel*>(parent);
-    beginInsertRows(QModelIndex(), 0, groups.size());
-    for (const QString &groupName : qAsConst((groups))) {
-        auto configGroup = m_customCommandsConfig->group(groupName);
-        auto c = new Command();
-        c->commandId = groupName;
-        c->command = configGroup.readEntry("Command", QString());
-        c->osdMessage = configGroup.readEntry("OsdMessage", QString());
-        c->type = configGroup.readEntry("Type", QString());
-        c->shortcut = actionsModel->getShortcut(c->commandId, QString());
-        c->order = configGroup.readEntry("Order", 0);
-        c->setOnStartup = configGroup.readEntry("SetOnStartup", true);
-        m_customCommands << c;
-        if (c->type == QStringLiteral("shortcut")) {
-            Action action;
-            action.name = c->commandId;
-            action.text = c->command;
-            action.description = c->osdMessage;
-            action.shortcut = c->shortcut;
-            action.type = QStringLiteral("CustomAction");
-            actionsModel->actions().append(action);
-        }
-    }
-
-    std::sort(m_customCommands.begin(), m_customCommands.end(), [=](Command 
*c1, Command *c2) {
-        return c1->order < c2->order;
-    });
-
-    endInsertRows();
-
     connect(this, &QAbstractListModel::rowsMoved, this, [=]() {
         for (int i = 0; i < m_customCommands.size(); ++i) {
             auto configGroup = 
m_customCommandsConfig->group(m_customCommands[i]->commandId);
@@ -54,16 +20,6 @@
             configGroup.sync();
         }
     });
-
-    connect(actionsModel, &ActionsModel::shortcutChanged, this, [=](const 
QString &name, const QString &shortcut) {
-        for (int i {0}; i < m_customCommands.count(); ++i) {
-             if (m_customCommands[i]->commandId == name) {
-                 m_customCommands[i]->shortcut = shortcut;
-                 Q_EMIT dataChanged(index(i, 0), index(i, 0));
-                 return;
-             }
-         }
-    });
 }
 
 int CustomCommandsModel::rowCount(const QModelIndex &parent) const
@@ -111,6 +67,52 @@
     return roles;
 }
 
+void CustomCommandsModel::init()
+{
+    connect(appActionsModel(), &ActionsModel::shortcutChanged, this, [=](const 
QString &name, const QString &shortcut) {
+        for (int i {0}; i < m_customCommands.count(); ++i) {
+             if (m_customCommands[i]->commandId == name) {
+                 m_customCommands[i]->shortcut = shortcut;
+                 Q_EMIT dataChanged(index(i, 0), index(i, 0));
+                 return;
+             }
+         }
+    });
+
+    QString ccConfig = 
Global::instance()->appConfigFilePath(Global::ConfigFile::CustomCommands);
+    m_customCommandsConfig = KSharedConfig::openConfig(ccConfig, 
KConfig::SimpleConfig);
+    QStringList groups = m_customCommandsConfig->groupList();
+
+    beginInsertRows(QModelIndex(), 0, groups.size());
+    for (const QString &groupName : qAsConst((groups))) {
+        auto configGroup = m_customCommandsConfig->group(groupName);
+        auto c = new Command();
+        c->commandId = groupName;
+        c->command = configGroup.readEntry("Command", QString());
+        c->osdMessage = configGroup.readEntry("OsdMessage", QString());
+        c->type = configGroup.readEntry("Type", QString());
+        c->shortcut = appActionsModel()->getShortcut(c->commandId, QString());
+        c->order = configGroup.readEntry("Order", 0);
+        c->setOnStartup = configGroup.readEntry("SetOnStartup", true);
+        m_customCommands << c;
+        if (c->type == QStringLiteral("shortcut")) {
+            Action action;
+            action.name = c->commandId;
+            action.text = c->command;
+            action.description = c->osdMessage;
+            action.shortcut = c->shortcut;
+            action.type = QStringLiteral("CustomAction");
+            appActionsModel()->appendCustomAction(action);
+        }
+    }
+
+    std::sort(m_customCommands.begin(), m_customCommands.end(), [=](Command 
*c1, Command *c2) {
+        return c1->order < c2->order;
+    });
+
+    endInsertRows();
+}
+
 void CustomCommandsModel::moveRows(int oldIndex, int newIndex)
 {
     if (oldIndex < newIndex) {
@@ -150,14 +152,13 @@
     endInsertRows();
 
     if (c->type == QStringLiteral("shortcut")) {
-        auto *actionsModel = qobject_cast<ActionsModel*>(parent());
         Action action;
         action.name = c->commandId;
         action.text = c->command;
         action.description = c->osdMessage;
-        action.shortcut = actionsModel->getShortcut(action.name, QString());
+        action.shortcut = appActionsModel()->getShortcut(action.name, 
QString());
         action.type = QStringLiteral("CustomAction");
-        actionsModel->appendCustomAction(action);
+        appActionsModel()->appendCustomAction(action);
     }
 }
 
@@ -177,8 +178,7 @@
 
     Q_EMIT dataChanged(index(row, 0), index(row, 0));
     if (c->type == QStringLiteral("shortcut")) {
-        auto *actionsModel = qobject_cast<ActionsModel*>(parent());
-        actionsModel->editCustomAction(c->commandId, c->command, 
c->osdMessage);
+        appActionsModel()->editCustomAction(c->commandId, c->command, 
c->osdMessage);
     }
 }
 
@@ -209,3 +209,17 @@
     config->group("Shortcuts").deleteEntry(groupName);
     config->sync();
 }
+
+ActionsModel *CustomCommandsModel::appActionsModel()
+{
+    return m_appActionsModel;
+}
+
+void CustomCommandsModel::setAppActionsModel(ActionsModel *_appActionsModel)
+{
+    if (m_appActionsModel == _appActionsModel) {
+        return;
+    }
+    m_appActionsModel = _appActionsModel;
+    emit appActionsModelChanged();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/src/models/customcommandsmodel.h 
new/haruna-v0.9.1/src/models/customcommandsmodel.h
--- old/haruna-v0.9.0/src/models/customcommandsmodel.h  2022-08-17 
14:15:34.000000000 +0200
+++ new/haruna-v0.9.1/src/models/customcommandsmodel.h  2022-08-24 
18:15:54.000000000 +0200
@@ -17,6 +17,8 @@
 {
     Q_OBJECT
 
+    Q_PROPERTY(ActionsModel* appActionsModel READ appActionsModel WRITE 
setAppActionsModel NOTIFY appActionsModelChanged)
+
     struct Command {
         QString commandId;
         QString command;
@@ -45,6 +47,7 @@
     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const 
override;
     QHash<int, QByteArray> roleNames() const override;
 
+    Q_INVOKABLE void init();
     Q_INVOKABLE void moveRows(int oldIndex, int newIndex);
     Q_INVOKABLE void saveCustomCommand(const QString &command,
                                        const QString &osdMessage,
@@ -56,9 +59,16 @@
     Q_INVOKABLE void toggleCustomCommand(const QString &groupName, int row, 
bool setOnStartup);
     Q_INVOKABLE void deleteCustomCommand(const QString &groupName, int row);
 
+    ActionsModel *appActionsModel();
+    void setAppActionsModel(ActionsModel *_appActionsModel);
+
+signals:
+    void appActionsModelChanged();
+
 private:
     KSharedConfig::Ptr m_customCommandsConfig;
     QList<Command *> m_customCommands;
+    ActionsModel *m_appActionsModel = nullptr;
 };
 
 #endif // CUSTOMCOMMANDSMODEL_H
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/src/mpv/mpvcore.cpp 
new/haruna-v0.9.1/src/mpv/mpvcore.cpp
--- old/haruna-v0.9.0/src/mpv/mpvcore.cpp       2022-08-17 14:15:34.000000000 
+0200
+++ new/haruna-v0.9.1/src/mpv/mpvcore.cpp       2022-08-24 18:15:54.000000000 
+0200
@@ -7,9 +7,15 @@
 #include "mpvcore.h"
 #include "mpvrenderer.h"
 
+#include <clocale>
+
 MpvCore::MpvCore(QQuickItem *parent)
     : QQuickFramebufferObject(parent)
 {
+    // Qt sets the locale in the QGuiApplication constructor, but libmpv
+    // requires the LC_NUMERIC category to be set to "C", so change it back.
+    std::setlocale(LC_NUMERIC, "C");
+
     m_mpv = mpv_create();
     if (!m_mpv) {
         qFatal("could not create mpv context");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/src/qml/Actions.qml 
new/haruna-v0.9.1/src/qml/Actions.qml
--- old/haruna-v0.9.0/src/qml/Actions.qml       2022-08-17 14:15:34.000000000 
+0200
+++ new/haruna-v0.9.1/src/qml/Actions.qml       2022-08-24 18:15:54.000000000 
+0200
@@ -55,7 +55,7 @@
                 const currentTrackId = mpv.getProperty("aid")
 
                 if (currentTrackId === false) {
-                    audioCycleUpAction.trigger()
+                    actionsModel.signalEmitter("audioCycleUpAction")
                     return
                 }
                 const track = tracks.find(t => t.type === "audio" && t.id === 
currentTrackId)
@@ -73,7 +73,7 @@
                 const currentTrackId = mpv.getProperty("aid")
 
                 if (currentTrackId === false) {
-                    audioCycleDownAction.trigger()
+                    actionsModel.signalEmitter("audioCycleDownAction")
                     return
                 }
                 const track = tracks.find(t => t.type === "audio" && t.id === 
currentTrackId)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/haruna-v0.9.0/src/qml/Menus/Global/GlobalPlaybackMenu.qml 
new/haruna-v0.9.1/src/qml/Menus/Global/GlobalPlaybackMenu.qml
--- old/haruna-v0.9.0/src/qml/Menus/Global/GlobalPlaybackMenu.qml       
2022-08-17 14:15:34.000000000 +0200
+++ new/haruna-v0.9.1/src/qml/Menus/Global/GlobalPlaybackMenu.qml       
2022-08-24 18:15:54.000000000 +0200
@@ -115,9 +115,9 @@
         }
 
         Labs.MenuItem {
-            icon.name: appActions.seekPrevSubtitleAction.icon.name
-            text: appActions.seekPrevSubtitleAction.text
-            onTriggered: appActions.seekPrevSubtitleAction.trigger()
+            icon.name: appActions.seekPreviousSubtitleAction.icon.name
+            text: appActions.seekPreviousSubtitleAction.text
+            onTriggered: appActions.seekPreviousSubtitleAction.trigger()
         }
 
         Labs.MenuSeparator {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/haruna-v0.9.0/src/qml/main.qml 
new/haruna-v0.9.1/src/qml/main.qml
--- old/haruna-v0.9.0/src/qml/main.qml  2022-08-17 14:15:34.000000000 +0200
+++ new/haruna-v0.9.1/src/qml/main.qml  2022-08-24 18:15:54.000000000 +0200
@@ -14,6 +14,7 @@
 
 import org.kde.kirigami 2.11 as Kirigami
 import org.kde.haruna 1.0
+import org.kde.haruna.models 1.0
 
 import "Menus"
 import "Menus/Global"
@@ -132,6 +133,31 @@
 
     Actions {}
 
+    ActionsModel {
+        id: actionsModel
+    }
+
+    ProxyActionsModel {
+        id: proxyActionsModel
+
+        sourceModel: actionsModel
+    }
+
+    CustomCommandsModel {
+        id: customCommandsModel
+
+        appActionsModel: actionsModel
+        Component.onCompleted: init()
+    }
+
+    RecentFilesModel {
+        id: recentFilesModel
+    }
+
+    SubtitlesFoldersModel {
+        id: subtitlesFoldersModel
+    }
+
     RowLayout {
         width: window.width * 0.8 > Kirigami.Units.gridUnit * 50
                ? Kirigami.Units.gridUnit * 50

Reply via email to