Add ringtone selection dropdown and various bugfixes

- Add ComboBox for ringtone selection in Call Settings
- Convert MKV ringtones to WAV format (Linphone only supports WAV)
- Fix ComboSetting to support dialPlan type for international prefix
- Disable account devices feature to prevent API errors
- Disable automatic update check on startup
- Add ringtone fallback to default when custom file not found
- Fix ringtone dropdown to not override setting on initialization

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Eduard Wisch 2026-02-08 08:31:15 +01:00
parent 6a0ab85191
commit 3b3bb966d4
4259 changed files with 197 additions and 192 deletions

0
.clang-format Normal file → Executable file
View file

0
.gitignore vendored Normal file → Executable file
View file

0
.gitlab-ci-files/linux-desktop-ubuntu-2204.yml Normal file → Executable file
View file

0
.gitlab-ci-files/linux-desktop.yml Normal file → Executable file
View file

0
.gitlab-ci-files/linux-prepare.yml Normal file → Executable file
View file

0
.gitlab-ci-files/macosx-desktop.yml Normal file → Executable file
View file

0
.gitlab-ci-files/rules.yml Normal file → Executable file
View file

0
.gitlab-ci-files/windows-desktop.yml Normal file → Executable file
View file

0
.gitlab-ci.yml Normal file → Executable file
View file

0
.gitmodules vendored Normal file → Executable file
View file

0
BUGFIX_DOUBLE_BUTTONS.md Normal file → Executable file
View file

0
CHANGELOG.md Normal file → Executable file
View file

0
CMakeLists.txt Normal file → Executable file
View file

0
LICENSE.txt Normal file → Executable file
View file

0
Linphone/CMakeLists.txt Normal file → Executable file
View file

0
Linphone/application_info.cmake Normal file → Executable file
View file

0
Linphone/config.h.cmake Normal file → Executable file
View file

View file

@ -539,7 +539,7 @@ void App::setSelf(QSharedPointer<App>(me)) {
});
mCoreModelConnection->makeConnectToCore(&App::lForceOidcTimeout, [this] {
qDebug() << "App: force oidc timeout";
mCoreModelConnection->invokeToModel([this] { emit CoreModel::getInstance()->forceOidcTimeout(); });
mCoreModelConnection->invokeToModel([this] { emit CoreModel::getInstance() -> forceOidcTimeout(); });
});
mCoreModelConnection->makeConnectToModel(&CoreModel::timeoutTimerStarted, [this]() {
qDebug() << "App: oidc timer started";

0
Linphone/core/App.hpp Normal file → Executable file
View file

0
Linphone/core/CMakeLists.txt Normal file → Executable file
View file

0
Linphone/core/account/AccountCore.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountCore.hpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceCore.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceCore.hpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceGui.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceGui.hpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceList.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceList.hpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceProxy.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountDeviceProxy.hpp Normal file → Executable file
View file

0
Linphone/core/account/AccountGui.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountGui.hpp Normal file → Executable file
View file

0
Linphone/core/account/AccountList.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountList.hpp Normal file → Executable file
View file

0
Linphone/core/account/AccountProxy.cpp Normal file → Executable file
View file

0
Linphone/core/account/AccountProxy.hpp Normal file → Executable file
View file

View file

@ -77,7 +77,7 @@ void CarddavCore::setSelf(QSharedPointer<CarddavCore> me) {
mCarddavModelConnection = SafeConnection<CarddavCore, CarddavModel>::create(me, mCarddavModel);
mCarddavModelConnection->makeConnectToModel(&CarddavModel::saved, [this](bool success, QString message) {
mCarddavModelConnection->invokeToCore([this, success, message]() {
if (success) emit App::getInstance()->getSettings()->cardDAVAddressBookSynchronized();
if (success) emit App::getInstance() -> getSettings()->cardDAVAddressBookSynchronized();
emit saved(success, message);
});
});

0
Linphone/core/address-books/carddav/CarddavCore.hpp Normal file → Executable file
View file

0
Linphone/core/address-books/carddav/CarddavGui.cpp Normal file → Executable file
View file

0
Linphone/core/address-books/carddav/CarddavGui.hpp Normal file → Executable file
View file

0
Linphone/core/address-books/carddav/CarddavList.cpp Normal file → Executable file
View file

0
Linphone/core/address-books/carddav/CarddavList.hpp Normal file → Executable file
View file

0
Linphone/core/address-books/carddav/CarddavProxy.cpp Normal file → Executable file
View file

0
Linphone/core/address-books/carddav/CarddavProxy.hpp Normal file → Executable file
View file

View file

@ -95,10 +95,10 @@ void LdapCore::setSelf(QSharedPointer<LdapCore> me) {
DEFINE_CORE_GETSET_CONNECT(mLdapModelConnection, LdapCore, LdapModel, mLdapModel, bool, debug, Debug)
mLdapModelConnection->makeConnectToModel(&LdapModel::saved, [this]() {
mLdapModelConnection->invokeToCore([this]() { emit App::getInstance()->getSettings()->ldapConfigChanged(); });
mLdapModelConnection->invokeToCore([this]() { emit App::getInstance() -> getSettings()->ldapConfigChanged(); });
});
mLdapModelConnection->makeConnectToModel(&LdapModel::removed, [this]() {
mLdapModelConnection->invokeToCore([this]() { emit App::getInstance()->getSettings()->ldapConfigChanged(); });
mLdapModelConnection->invokeToCore([this]() { emit App::getInstance() -> getSettings()->ldapConfigChanged(); });
});
}

0
Linphone/core/address-books/ldap/LdapCore.hpp Normal file → Executable file
View file

0
Linphone/core/address-books/ldap/LdapGui.cpp Normal file → Executable file
View file

0
Linphone/core/address-books/ldap/LdapGui.hpp Normal file → Executable file
View file

0
Linphone/core/address-books/ldap/LdapList.cpp Normal file → Executable file
View file

0
Linphone/core/address-books/ldap/LdapList.hpp Normal file → Executable file
View file

0
Linphone/core/address-books/ldap/LdapProxy.cpp Normal file → Executable file
View file

0
Linphone/core/address-books/ldap/LdapProxy.hpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryCore.cpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryCore.hpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryGui.cpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryGui.hpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryList.cpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryList.hpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryProxy.cpp Normal file → Executable file
View file

0
Linphone/core/call-history/CallHistoryProxy.hpp Normal file → Executable file
View file

0
Linphone/core/call/CallCore.cpp Normal file → Executable file
View file

0
Linphone/core/call/CallCore.hpp Normal file → Executable file
View file

0
Linphone/core/call/CallGui.cpp Normal file → Executable file
View file

0
Linphone/core/call/CallGui.hpp Normal file → Executable file
View file

0
Linphone/core/call/CallList.cpp Normal file → Executable file
View file

0
Linphone/core/call/CallList.hpp Normal file → Executable file
View file

0
Linphone/core/call/CallProxy.cpp Normal file → Executable file
View file

0
Linphone/core/call/CallProxy.hpp Normal file → Executable file
View file

0
Linphone/core/camera/CameraDummy.cpp Normal file → Executable file
View file

0
Linphone/core/camera/CameraDummy.hpp Normal file → Executable file
View file

0
Linphone/core/camera/CameraGui.cpp Normal file → Executable file
View file

0
Linphone/core/camera/CameraGui.hpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatCore.cpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatCore.hpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatGui.cpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatGui.hpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatList.cpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatList.hpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatProxy.cpp Normal file → Executable file
View file

0
Linphone/core/chat/ChatProxy.hpp Normal file → Executable file
View file

0
Linphone/core/chat/files/ChatMessageFileList.cpp Normal file → Executable file
View file

0
Linphone/core/chat/files/ChatMessageFileList.hpp Normal file → Executable file
View file

0
Linphone/core/chat/files/ChatMessageFileProxy.cpp Normal file → Executable file
View file

0
Linphone/core/chat/files/ChatMessageFileProxy.hpp Normal file → Executable file
View file

0
Linphone/core/chat/message/ChatMessageCore.cpp Normal file → Executable file
View file

0
Linphone/core/chat/message/ChatMessageCore.hpp Normal file → Executable file
View file

0
Linphone/core/chat/message/ChatMessageGui.cpp Normal file → Executable file
View file

0
Linphone/core/chat/message/ChatMessageGui.hpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogCore.cpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogCore.hpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogGui.cpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogGui.hpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogList.cpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogList.hpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogProxy.cpp Normal file → Executable file
View file

0
Linphone/core/chat/message/EventLogProxy.hpp Normal file → Executable file
View file

View file

View file

View file

View file

Some files were not shown because too many files have changed in this diff Show more