File indexing completed on 2024-06-09 04:58:55

0001 /*
0002    SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "logssettingswidget.h"
0008 #include "rocketchataccount.h"
0009 
0010 #include <KLocalizedString>
0011 #include <QCheckBox>
0012 #include <QComboBox>
0013 #include <QFormLayout>
0014 #include <QLineEdit>
0015 #include <QSpinBox>
0016 
0017 LogsSettingsWidget::LogsSettingsWidget(RocketChatAccount *account, QWidget *parent)
0018     : SettingsWidgetBase(account, parent)
0019     , mLogExceptionsChannel(new QLineEdit(this))
0020     , mLogViewLimit(new QSpinBox(this))
0021     , mLogLevel(new QComboBox(this))
0022     , mTraceMethodCalls(new QCheckBox(i18n("Trace method calls"), this))
0023     , mTraceMethodFilter(new QLineEdit(this))
0024     , mTraceSubscriptionCalls(new QCheckBox(i18n("Trace subscription calls"), this))
0025     , mTraceSubscriptionFilter(new QLineEdit(this))
0026 {
0027     mLogExceptionsChannel->setObjectName(QStringLiteral("mLogExceptionsChannel"));
0028     mLogExceptionsChannel->setToolTip(i18n("A channel that will receive all captured exceptions. Leave empty to ignore exceptions."));
0029     addLineEdit(i18n("Log Exceptions to Channel"), mLogExceptionsChannel, QStringLiteral("Log_Exceptions_to_Channel"));
0030 
0031     mLogLevel->setObjectName(QStringLiteral("mLogLevel"));
0032     const QMap<QString, QString> maps = {
0033         {QStringLiteral("0"), i18n("Errors Only")},
0034         {QStringLiteral("1"), i18n("Errors and Information")},
0035         {QStringLiteral("2"), i18n("Errors, Information and Debug")},
0036     };
0037     addComboBox(i18n("Log Level"), maps, mLogLevel, QStringLiteral("Log_Level"));
0038 
0039     mLogViewLimit->setObjectName(QStringLiteral("mLogViewLimit"));
0040     mLogViewLimit->setMaximum(999999);
0041     addSpinbox(i18n("Log View Limit"), mLogViewLimit, QStringLiteral("Log_View_Limit"));
0042 
0043     mTraceMethodCalls->setObjectName(QStringLiteral("mTraceMethodCalls"));
0044     mMainLayout->addWidget(mTraceMethodCalls);
0045     connectCheckBox(mTraceMethodCalls, QStringLiteral("Log_Trace_Methods"));
0046 
0047     mTraceMethodFilter->setObjectName(QStringLiteral("mTraceMethodFilter"));
0048     mTraceMethodFilter->setToolTip(i18n("The text here will be evaluated as RegExp (new RegExp('text')). Keep it empty to show trace of every call."));
0049     addLineEdit(i18n("Trace method filter"), mTraceMethodFilter, QStringLiteral("Log_Trace_Methods_Filter"));
0050 
0051     mTraceSubscriptionCalls->setObjectName(QStringLiteral("mTraceSubscriptionCalls"));
0052     mMainLayout->addWidget(mTraceSubscriptionCalls);
0053     connectCheckBox(mTraceSubscriptionCalls, QStringLiteral("Log_Trace_Subscriptions"));
0054 
0055     mTraceSubscriptionFilter->setObjectName(QStringLiteral("mTraceSubscriptionFilter"));
0056     mTraceSubscriptionFilter->setToolTip(i18n("The text here will be evaluated as RegExp (new RegExp('text')). Keep it empty to show trace of every call."));
0057     addLineEdit(i18n("Trace method filter"), mTraceSubscriptionFilter, QStringLiteral("Log_Trace_Subscriptions_Filter"));
0058 }
0059 
0060 LogsSettingsWidget::~LogsSettingsWidget() = default;
0061 
0062 void LogsSettingsWidget::initialize(const QMap<QString, QVariant> &mapSettings)
0063 {
0064     initializeWidget(mLogExceptionsChannel, mapSettings, {});
0065     initializeWidget(mLogViewLimit, mapSettings, 1000);
0066     initializeWidget(mLogLevel, mapSettings, QStringLiteral("0"));
0067     initializeWidget(mTraceMethodCalls, mapSettings, false);
0068     initializeWidget(mTraceSubscriptionCalls, mapSettings, false);
0069     initializeWidget(mTraceMethodFilter, mapSettings, {});
0070     initializeWidget(mTraceSubscriptionFilter, mapSettings, {});
0071 }
0072 
0073 #include "moc_logssettingswidget.cpp"