/
lmaxyz
/
telegraf
Обзор
Документация
Войти
/
lmaxyz
/
telegraf
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
src/telegraf.cpp
178 строк
7 KB
mbarashkov
Версия 0.99.37. Верное отображение сессий Авроры.
27 сен 2025, 20:08
27 сен 2025, 20:08
27524b5
Код
Авторство
О чём код?
#ifdef QT_QML_DEBUG #include <QtQuick> #endif #include <auroraapp.h> #include <QScopedPointer> #include <QQuickView> #include <QtQml> #include <QQmlContext> #include <QQmlEngine> #include <QGuiApplication> #include <QLoggingCategory> #include <QSysInfo> #include <QSettings> #include <QDir> #include <QDirIterator> #include <QFile> #include <QFileInfo> #include "data/appsettings.h" #include "debuglog.h" #include "debuglogjs.h" #include "tdlib/tdlibfile.h" #include "tdlib/tdlibresponsehandler.h" #include "tdlib/tdlibrequestsender.h" #include "data/chatpermissionfiltermodel.h" #include "data/chatlistmodel.h" #include "data/chatlistsortedmodel.h" #include "data/chatmodel.h" #include "data/emojiservice.h" #include "data/covermessagesmodel.h" #include "util/namedaction.h" #include "device/notificationmanager.h" #include "device/mceinterface.h" #include "device/dbusadaptor.h" #include "data/stickermanager.h" #include "data/customemojimanager.h" #include "data/textfiltermodel.h" #include "data/boolfiltermodel.h" #include "util/telegrafutils.h" #include "data/knownusersmodel.h" #include "data/contactsmodel.h" #include "data/tdlibfiledownloader.h" #include "util/filevalidator.h" #include "device/fileservice.h" #include "data/chatfoldersmodel.h" #include "network/networkservice.h" #include "device/dbusinterface.h" #include "tdlib/tdlibcontroller.h" #include "data/groupsmodel.h" #include "data/usersmodel.h" #include "data/chatfolderid.h" #include "data/rolefiltermodel.h" // Правила логирования выставляются в виде набора правил, разделённых \n #ifdef QT_DEBUG #define DEFAULT_LOG_FILTER_RULES "tdlib.json.debug=false\ntdlib.comm.debug=false\ntdlib.files.debug=false\ntelegraf.*=true" #else #define DEFAULT_LOG_FILTER_RULES "*=false" #endif int main(int argc, char *argv[]) { QLoggingCategory::setFilterRules(DEFAULT_LOG_FILTER_RULES); QScopedPointer<QGuiApplication> app(Aurora::Application::application(argc, argv)); QScopedPointer<QQuickView> view(Aurora::Application::createView()); app->setApplicationVersion("0.99.37"); QQmlContext *context = view.data()->rootContext(); const char *uri = "ru.telegrafaurora.telegraf"; qRegisterMetaType<TDLibConstants::NetworkType>(); qRegisterMetaType<TDLibConstants::AuthorizationState>(); qRegisterMetaType<TDLibConstants::ConnectionState>(); qRegisterMetaType<TDLibConstants::ChatType>(); qRegisterMetaType<TDLibConstants::ChatMemberStatus>(); qRegisterMetaType<TDLibConstants::SecretChatState>(); qRegisterMetaType<TDLibConstants::UserPrivacySetting>(); qRegisterMetaType<TDLibConstants::UserPrivacySettingRule>(); qmlRegisterType<TDLibFile>(uri, 1, 0, "TDLibFile"); qmlRegisterType<NamedAction>(uri, 1, 0, "NamedAction"); qmlRegisterType<TextFilterModel>(uri, 1, 0, "TextFilterModel"); qmlRegisterType<BoolFilterModel>(uri, 1, 0, "BoolFilterModel"); qmlRegisterType<RoleFilterModel>(uri, 1, 0, "RoleFilterModel"); qmlRegisterType<ChatListSortedModel>(uri, 1, 0, "ChatListSortedModel"); qmlRegisterType<ChatPermissionFilterModel>(uri, 1, 0, "ChatPermissionFilterModel"); qmlRegisterType<FileValidator>(uri, 1, 0, "FileValidator"); qmlRegisterType<ChatFolderModel>(uri, 1, 0, "ChatFolderModel"); qmlRegisterType<ChatData>(uri, 1, 0, "ChatData"); qmlRegisterSingletonType<DebugLogJS>(uri, 1, 0, "DebugLog", DebugLogJS::createSingleton); qmlRegisterType<ChatFolderId>(uri, 1, 0, "ChatFolderId"); qRegisterMetaType<ChatFolderId::Type>(); AppSettings appSettings; qmlRegisterSingletonType<AppSettings>(uri, 1, 0, "AppSettings", AppSettings::createSingleton); qmlRegisterSingletonType<EmojiService>(uri, 1, 0, "EmojiService", EmojiService::createSingleton); NetworkService networkService; qmlRegisterSingletonType<NetworkService>(uri, 1, 0, "NetworkService", NetworkService::getSingleton); TDLibDataRepository tdLibDataRepository; qmlRegisterSingletonType<TDLibDataRepository>(uri, 1, 0, "TDLibDataRepository", TDLibDataRepository::getSingleton); TDLibState tdLibState(&tdLibDataRepository); qmlRegisterSingletonType<TDLibState>(uri, 1, 0, "TDLibState", TDLibState::getSingleton); TDLibRequestFactory tdLibRequestFactory; TDLibRequestService tdLibRequestService; TDLibRequestSender tdLibRequestSender; qmlRegisterSingletonType<TDLibRequestSender>(uri, 1, 0, "TDLibRequestSender", TDLibRequestSender::getSingleton); GroupsModel groupsModel; qmlRegisterSingletonType<GroupsModel>(uri, 1, 0, "GroupsModel", GroupsModel::getSingleton); TDLibController tdLibController; UsersModel usersModel; qmlRegisterSingletonType<TDLibResponseHandler>(uri, 1, 0, "TDLibResponseHandler", TDLibResponseHandler::getSingleton); TDLibFileDownloader fileDownloader; qmlRegisterSingletonType<TDLibFileDownloader>(uri, 1, 0, "TDLibFileDownloader", TDLibFileDownloader::getSingleton); ChatListModel chatListModel; qmlRegisterSingletonType<ChatListModel>(uri, 1, 0, "ChatListModel", ChatListModel::getSingleton); qmlRegisterSingletonType<TDLibConstants>(uri, 1, 0, "TDLibConstants", TDLibConstants::createSingleton); qmlRegisterSingletonType<TelegrafUtils>(uri, 1, 0, "TelegrafUtils", TelegrafUtils::createSingleton); qmlRegisterSingletonType<FileService>(uri, 1, 0, "FileService", FileService::createSingleton); DBusInterface dbusInterface; qmlRegisterSingletonType<DBusAdaptor>(uri, 1, 0, "DBusAdaptor", DBusAdaptor::createSingleton); ChatFoldersModel chatFoldersModel; qmlRegisterSingletonType<ChatFoldersModel>(uri, 1, 0, "ChatFoldersModel", ChatFoldersModel::createSingleton); ChatModel chatModel; qmlRegisterSingletonType<ChatModel>(uri, 1, 0, "ChatModel", ChatModel::getSingleton); MceInterface *mceInterface = new MceInterface(view.data()); NotificationManager notificationManager(mceInterface, &chatModel); StickerManager stickerManager; qmlRegisterSingletonType<StickerManager>(uri, 1, 0, "StickerManager", StickerManager::getSingleton); CustomEmojiManager customEmojiManager; qmlRegisterSingletonType<CustomEmojiManager>(uri, 1, 0, "CustomEmojiManager", CustomEmojiManager::getSingleton); KnownUsersModel knownUsersModel(view.data()); QSortFilterProxyModel knownUsersProxyModel(view.data()); knownUsersProxyModel.setSourceModel(&knownUsersModel); knownUsersProxyModel.setFilterRole(KnownUsersModel::RoleFilter); knownUsersProxyModel.setFilterCaseSensitivity(Qt::CaseInsensitive); context->setContextProperty("knownUsersProxyModel", &knownUsersProxyModel); ContactsModel contactsModel(view.data()); context->setContextProperty("contactsModel", &contactsModel); QSortFilterProxyModel contactsProxyModel(view.data()); contactsProxyModel.setSourceModel(&contactsModel); contactsProxyModel.setFilterRole(ContactsModel::RoleFilter); contactsProxyModel.setFilterCaseSensitivity(Qt::CaseInsensitive); context->setContextProperty("contactsProxyModel", &contactsProxyModel); CoverMessagesModel coverMessagesModel; qmlRegisterSingletonType<CoverMessagesModel>(uri, 1, 0, "CoverMessagesModel", CoverMessagesModel::getSingleton); view->setSource(Aurora::Application::pathTo("qml/telegraf.qml")); view->show(); return app->exec(); }