File indexing completed on 2025-03-23 13:45:10
0001 // SPDX-FileCopyrightText: 2021 Alexey Andreyev <aa13q@ya.ru> 0002 // 0003 // SPDX-License-Identifier: LicenseRef-KDE-Accepted-GPL 0004 0005 #include <KLocalizedString> 0006 #include <QCoreApplication> 0007 #include <QtDBus/QDBusConnection> 0008 0009 #include "version.h" 0010 0011 #include "contact-utils.h" 0012 #include "dialer-utils.h" 0013 0014 #include "callutilsinterface.h" 0015 #include "deviceutilsinterface.h" 0016 0017 #include "callhistorydatabaseadaptor.h" 0018 #include "contactutilsadaptor.h" 0019 #include "dialerutilsadaptor.h" 0020 0021 #include "call-history-manager.h" 0022 #include "dialer-manager.h" 0023 #include "notification-manager.h" 0024 0025 int main(int argc, char **argv) 0026 { 0027 QCoreApplication app(argc, argv); 0028 0029 app.setApplicationVersion(QStringLiteral(PLASMADIALER_VERSION_STRING)); 0030 app.setOrganizationDomain(QStringLiteral("kde.org")); 0031 0032 KLocalizedString::setApplicationDomain("kde-telephony-daemon"); 0033 0034 // Disable app quit lock during KIO jobs usage via NetworkManager 0035 // > The application will quit when there are no more QEventLoopLockers operating on it 0036 // https://doc.qt.io/qt-6/qeventlooplocker.html#QEventLoopLocker 0037 // see also: 0038 // https://invent.kde.org/plasma/kwin/-/merge_requests/1267/diffs#620b62637a901cceddbd29857f98b9a970caf8f0_149_164 0039 app.setQuitLockEnabled(false); // prevent a finishing KJob from closing the app 0040 0041 auto deviceUtils = new org::kde::telephony::DeviceUtils(QString::fromLatin1(org::kde::telephony::DeviceUtils::staticInterfaceName()), 0042 QStringLiteral("/org/kde/telephony/DeviceUtils/tel/mm"), 0043 QDBusConnection::sessionBus(), 0044 &app); 0045 0046 auto callUtils = new org::kde::telephony::CallUtils(QString::fromLatin1(org::kde::telephony::CallUtils::staticInterfaceName()), 0047 QStringLiteral("/org/kde/telephony/CallUtils/tel/mm"), 0048 QDBusConnection::sessionBus(), 0049 &app); 0050 0051 auto contactUtils = new ContactUtils(&app); 0052 auto dialerUtils = new DialerUtils(&app); 0053 auto callHistoryDatabase = new CallHistoryDatabase(&app); 0054 0055 DialerTypes::registerMetaTypes(); 0056 0057 QObject::connect(deviceUtils, &org::kde::telephony::DeviceUtils::countryCodeChanged, contactUtils, &ContactUtils::changeCountryCode); 0058 0059 QDBusConnection dbus = QDBusConnection::sessionBus(); 0060 0061 CallHistoryManager callHistoryManager(&app); 0062 callHistoryManager.setCallUtils(callUtils); 0063 callHistoryManager.setCallHistoryDatabase(callHistoryDatabase); 0064 0065 DialerManager dialerManager(&app); 0066 dialerManager.setDialerUtils(dialerUtils); 0067 dialerManager.setCallUtils(callUtils); 0068 0069 NotificationManager notificator(&app); 0070 notificator.setCallUtils(callUtils); 0071 notificator.setContactUtils(contactUtils); 0072 0073 new CallHistoryDatabaseAdaptor(callHistoryDatabase); 0074 dbus.registerObject(QStringLiteral("/org/kde/telephony/CallHistoryDatabase/tel/mm"), callHistoryDatabase); 0075 dbus.registerService(QStringLiteral("org.kde.telephony.CallHistoryDatabase")); 0076 0077 new ContactUtilsAdaptor(contactUtils); 0078 dbus.registerObject(QStringLiteral("/org/kde/telephony/ContactUtils/tel/mm"), contactUtils); 0079 dbus.registerService(QStringLiteral("org.kde.telephony.ContactUtils")); 0080 0081 new DialerUtilsAdaptor(dialerUtils); 0082 dbus.registerObject(QStringLiteral("/org/kde/telephony/DialerUtils/tel/mm"), dialerUtils); 0083 dbus.registerService(QStringLiteral("org.kde.telephony.DialerUtils")); 0084 0085 return app.exec(); 0086 }