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
|
||||
|
||||
- Dev: Added command to set Qt's logging filter/rules at runtime (`/c2-set-logging-rules`). (#4637)
|
||||
|
||||
## 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)
|
||||
|
|
|
@ -60,6 +60,8 @@ set(SOURCE_FILES
|
|||
controllers/accounts/AccountModel.cpp
|
||||
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.hpp
|
||||
controllers/commands/builtin/twitch/ShieldMode.cpp
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include "common/QLogging.hpp"
|
||||
#include "common/SignalVector.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/ShieldMode.hpp"
|
||||
#include "controllers/commands/Command.hpp"
|
||||
|
@ -3211,6 +3212,8 @@ void CommandController::initialize(Settings &, Paths &paths)
|
|||
|
||||
this->registerCommand("/shield", &commands::shieldModeOn);
|
||||
this->registerCommand("/shieldoff", &commands::shieldModeOff);
|
||||
|
||||
this->registerCommand("/c2-set-logging-rules", &commands::setLoggingRules);
|
||||
}
|
||||
|
||||
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