mirror of
https://github.com/Chatterino/chatterino2.git
synced 2024-11-13 19:49:51 +01:00
Add Command to Set Logging/Filter Rules at Runtime (#4637)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
This commit is contained in:
parent
ce47d27d41
commit
347f216abf
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
## Unversioned
|
## Unversioned
|
||||||
|
|
||||||
|
- Dev: Added command to set Qt's logging filter/rules at runtime (`/c2-set-logging-rules`). (#4637)
|
||||||
|
|
||||||
## 2.4.4
|
## 2.4.4
|
||||||
|
|
||||||
- Minor: Added a Send button in the input box so you can click to send a message. This is disabled by default and can be enabled with the "Show send message button" setting. (#4607)
|
- Minor: Added a Send button in the input box so you can click to send a message. This is disabled by default and can be enabled with the "Show send message button" setting. (#4607)
|
||||||
|
|
|
@ -60,6 +60,8 @@ set(SOURCE_FILES
|
||||||
controllers/accounts/AccountModel.cpp
|
controllers/accounts/AccountModel.cpp
|
||||||
controllers/accounts/AccountModel.hpp
|
controllers/accounts/AccountModel.hpp
|
||||||
|
|
||||||
|
controllers/commands/builtin/chatterino/Debugging.cpp
|
||||||
|
controllers/commands/builtin/chatterino/Debugging.hpp
|
||||||
controllers/commands/builtin/twitch/ChatSettings.cpp
|
controllers/commands/builtin/twitch/ChatSettings.cpp
|
||||||
controllers/commands/builtin/twitch/ChatSettings.hpp
|
controllers/commands/builtin/twitch/ChatSettings.hpp
|
||||||
controllers/commands/builtin/twitch/ShieldMode.cpp
|
controllers/commands/builtin/twitch/ShieldMode.cpp
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "common/QLogging.hpp"
|
#include "common/QLogging.hpp"
|
||||||
#include "common/SignalVector.hpp"
|
#include "common/SignalVector.hpp"
|
||||||
#include "controllers/accounts/AccountController.hpp"
|
#include "controllers/accounts/AccountController.hpp"
|
||||||
|
#include "controllers/commands/builtin/chatterino/Debugging.hpp"
|
||||||
#include "controllers/commands/builtin/twitch/ChatSettings.hpp"
|
#include "controllers/commands/builtin/twitch/ChatSettings.hpp"
|
||||||
#include "controllers/commands/builtin/twitch/ShieldMode.hpp"
|
#include "controllers/commands/builtin/twitch/ShieldMode.hpp"
|
||||||
#include "controllers/commands/Command.hpp"
|
#include "controllers/commands/Command.hpp"
|
||||||
|
@ -3211,6 +3212,8 @@ void CommandController::initialize(Settings &, Paths &paths)
|
||||||
|
|
||||||
this->registerCommand("/shield", &commands::shieldModeOn);
|
this->registerCommand("/shield", &commands::shieldModeOn);
|
||||||
this->registerCommand("/shieldoff", &commands::shieldModeOff);
|
this->registerCommand("/shieldoff", &commands::shieldModeOff);
|
||||||
|
|
||||||
|
this->registerCommand("/c2-set-logging-rules", &commands::setLoggingRules);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CommandController::save()
|
void CommandController::save()
|
||||||
|
|
45
src/controllers/commands/builtin/chatterino/Debugging.cpp
Normal file
45
src/controllers/commands/builtin/chatterino/Debugging.cpp
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#include "controllers/commands/builtin/chatterino/Debugging.hpp"
|
||||||
|
|
||||||
|
#include "common/Channel.hpp"
|
||||||
|
#include "controllers/commands/CommandContext.hpp"
|
||||||
|
#include "messages/MessageBuilder.hpp"
|
||||||
|
|
||||||
|
#include <QLoggingCategory>
|
||||||
|
#include <QString>
|
||||||
|
|
||||||
|
namespace chatterino::commands {
|
||||||
|
|
||||||
|
QString setLoggingRules(const CommandContext &ctx)
|
||||||
|
{
|
||||||
|
if (ctx.words.size() < 2)
|
||||||
|
{
|
||||||
|
ctx.channel->addMessage(makeSystemMessage(
|
||||||
|
"Usage: /c2-set-logging-rules <rules...>. To enable debug logging "
|
||||||
|
"for all categories from chatterino, use "
|
||||||
|
"'chatterino.*.debug=true'. For the format on the rules, see "
|
||||||
|
"https://doc.qt.io/qt-6/"
|
||||||
|
"qloggingcategory.html#configuring-categories"));
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
auto filterRules = ctx.words.mid(1).join('\n');
|
||||||
|
|
||||||
|
QLoggingCategory::setFilterRules(filterRules);
|
||||||
|
|
||||||
|
auto message =
|
||||||
|
QStringLiteral("Updated filter rules to '%1'.").arg(filterRules);
|
||||||
|
|
||||||
|
if (!qgetenv("QT_LOGGING_RULES").isEmpty())
|
||||||
|
{
|
||||||
|
message += QStringLiteral(
|
||||||
|
" Warning: Logging rules were previously set by the "
|
||||||
|
"QT_LOGGING_RULES environment variable. This might cause "
|
||||||
|
"interference - see: "
|
||||||
|
"https://doc.qt.io/qt-6/qloggingcategory.html#setFilterRules");
|
||||||
|
}
|
||||||
|
|
||||||
|
ctx.channel->addMessage(makeSystemMessage(message));
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace chatterino::commands
|
15
src/controllers/commands/builtin/chatterino/Debugging.hpp
Normal file
15
src/controllers/commands/builtin/chatterino/Debugging.hpp
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
class QString;
|
||||||
|
|
||||||
|
namespace chatterino {
|
||||||
|
|
||||||
|
struct CommandContext;
|
||||||
|
|
||||||
|
} // namespace chatterino
|
||||||
|
|
||||||
|
namespace chatterino::commands {
|
||||||
|
|
||||||
|
QString setLoggingRules(const CommandContext &ctx);
|
||||||
|
|
||||||
|
} // namespace chatterino::commands
|
Loading…
Reference in a new issue