diff options
Diffstat (limited to 'sinksh/syntax_modules/sink_trace.cpp')
-rw-r--r-- | sinksh/syntax_modules/sink_trace.cpp | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/sinksh/syntax_modules/sink_trace.cpp b/sinksh/syntax_modules/sink_trace.cpp index e7b92de..d480254 100644 --- a/sinksh/syntax_modules/sink_trace.cpp +++ b/sinksh/syntax_modules/sink_trace.cpp | |||
@@ -35,34 +35,46 @@ | |||
35 | namespace SinkTrace | 35 | namespace SinkTrace |
36 | { | 36 | { |
37 | 37 | ||
38 | bool trace(const QStringList &args, State &state) | 38 | bool traceOff(const QStringList &args, State &state) |
39 | { | 39 | { |
40 | // if (args.isEmpty()) { | 40 | Sink::Log::setDebugOutputLevel(Sink::Log::Log); |
41 | // state.printError(QObject::tr("Specifiy a debug area to trace.")); | 41 | qDebug() << "Turned trace off: " << args; |
42 | // return false; | ||
43 | // } | ||
44 | // | ||
45 | // | ||
46 | qDebug() << "Trace arguments: " << args; | ||
47 | Sink::Log::setDebugOutputLevel(Sink::Log::Trace); | ||
48 | // Sink::Log::setDebugOutputFilter(Sink::Log::FilterType::Area, "filter"); | ||
49 | |||
50 | return true; | 42 | return true; |
51 | } | 43 | } |
52 | 44 | ||
53 | bool traceOff(const QStringList &args, State &state) | 45 | bool traceOn(const QStringList &args, State &state) |
54 | { | 46 | { |
55 | Sink::Log::setDebugOutputLevel(Sink::Log::Log); | 47 | if (args.isEmpty()) { |
56 | qDebug() << "Turned trace off: " << args; | 48 | state.printError(QObject::tr("Specifiy a debug area to trace: ") + Sink::Log::debugAreas().toList().join(", ")); |
49 | return false; | ||
50 | } | ||
51 | Sink::Log::setDebugOutputLevel(Sink::Log::Trace); | ||
52 | QByteArrayList filter; | ||
53 | for (const auto &arg : args) { | ||
54 | filter << arg.toLatin1(); | ||
55 | } | ||
56 | Sink::Log::setDebugOutputFilter(Sink::Log::Area, filter); | ||
57 | return true; | 57 | return true; |
58 | } | 58 | } |
59 | 59 | ||
60 | bool trace(const QStringList &args, State &state) | ||
61 | { | ||
62 | return traceOn(args, state); | ||
63 | } | ||
64 | |||
65 | |||
60 | Syntax::List syntax() | 66 | Syntax::List syntax() |
61 | { | 67 | { |
62 | Syntax trace("trace", QObject::tr("Control trace debug output."), &SinkTrace::trace, Syntax::NotInteractive); | 68 | Syntax trace("trace", QObject::tr("Control trace debug output."), &SinkTrace::trace, Syntax::NotInteractive); |
63 | trace.completer = &SinkshUtils::debugareaCompleter; | 69 | trace.completer = &SinkshUtils::debugareaCompleter; |
70 | |||
71 | Syntax traceOff("off", QObject::tr("Turns off trace output."), &SinkTrace::traceOff, Syntax::NotInteractive); | ||
72 | traceOff.completer = &SinkshUtils::debugareaCompleter; | ||
73 | trace.children << traceOff; | ||
64 | 74 | ||
65 | trace.children << Syntax("off", QObject::tr("Turns off trace output."), &SinkTrace::traceOff, Syntax::NotInteractive); | 75 | Syntax traceOn("on", QObject::tr("Turns on trace output."), &SinkTrace::traceOn, Syntax::NotInteractive); |
76 | traceOn.completer = &SinkshUtils::debugareaCompleter; | ||
77 | trace.children << traceOn; | ||
66 | 78 | ||
67 | return Syntax::List() << trace; | 79 | return Syntax::List() << trace; |
68 | } | 80 | } |