From 75f6ced64b80956a16e6e1b0557ac1263a28441d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Peter=20K=C3=BCmmel?= Date: Wed, 30 Dec 2009 15:09:49 +0000 Subject: [PATCH] no stl includes in debug.h change Debug API git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32675 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/LyX.cpp | 2 +- src/LyXFunc.cpp | 2 +- src/frontends/qt4/GuiProgressView.cpp | 21 ++++++++++++++------- src/support/debug.cpp | 17 +++++++++++------ src/support/debug.h | 12 +++++++++--- 5 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/LyX.cpp b/src/LyX.cpp index 0c8234d961..7b5c07636f 100644 --- a/src/LyX.cpp +++ b/src/LyX.cpp @@ -957,7 +957,7 @@ int parse_dbg(string const & arg, string const &, string &) } lyxerr << to_utf8(bformat(_("Setting debug level to %1$s"), from_utf8(arg))) << endl; - lyxerr.level(Debug::value(arg)); + lyxerr.setLevel(Debug::value(arg)); Debug::showLevel(lyxerr, lyxerr.level()); return 1; } diff --git a/src/LyXFunc.cpp b/src/LyXFunc.cpp index 4b5355ad0e..2c4c93e042 100644 --- a/src/LyXFunc.cpp +++ b/src/LyXFunc.cpp @@ -489,7 +489,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd) break; case LFUN_DEBUG_LEVEL_SET: - lyxerr.level(Debug::value(to_utf8(cmd.argument()))); + lyxerr.setLevel(Debug::value(to_utf8(cmd.argument()))); break; default: diff --git a/src/frontends/qt4/GuiProgressView.cpp b/src/frontends/qt4/GuiProgressView.cpp index 1094bf9ef1..d31627897e 100644 --- a/src/frontends/qt4/GuiProgressView.cpp +++ b/src/frontends/qt4/GuiProgressView.cpp @@ -62,15 +62,16 @@ GuiProgressView::GuiProgressView(GuiView & parent, Qt::DockWidgetArea area, widget_->outTE->setFont(font); - const std::vector levels = Debug::levels(); - for (unsigned int i = 1; i < levels.size(); i++) { - LevelButton * box = new LevelButton(toqstr(Debug::description(levels[i]))); - box->level = levels[i]; + const int levelCount = Debug::levelCount(); + for (int i = 0; i < levelCount; i++) { + const Debug::Type level = Debug::value(i); + LevelButton * box = new LevelButton(toqstr(Debug::description(level))); + box->level = level; widget_->settingsLayout->addWidget(box); // TODO settings box->setChecked(false); level_buttons << box; - connect(box, SIGNAL(stateChanged(int)), this, SLOT(levelChange())); + connect(box, SIGNAL(stateChanged(int)), this, SLOT(levelChanged())); } @@ -92,9 +93,15 @@ void GuiProgressView::levelChanged() int level = Debug::NONE; Q_FOREACH(const LevelButton* button, level_buttons) { if (button->isChecked()) - level |= button->level; + // Debug::NONE overwrites other levels + if (button->level == Debug::NONE) { + lyxerr.setLevel(Debug::NONE); + return; + } else { + level |= button->level; + } } - lyxerr.level(static_cast(level)); + lyxerr.setLevel(static_cast(level)); } diff --git a/src/support/debug.cpp b/src/support/debug.cpp index 6f3ce34e09..03464284af 100644 --- a/src/support/debug.cpp +++ b/src/support/debug.cpp @@ -79,15 +79,20 @@ int const numErrorTags = sizeof(errorTags)/sizeof(errorTags[0]); } // namespace anon -const std::vector Debug::levels() +int Debug::levelCount() { - std::vector vec; - for (int i = 0 ; i < numErrorTags ; ++i) { - vec.push_back(errorTags[i].level); - } - return vec; + return numErrorTags; } + +Debug::Type Debug::value(int idx) +{ + if (idx > 0 && idx < numErrorTags) + return errorTags[idx].level; + return Debug::NONE; +} + + string const Debug::description(Debug::Type val) { for (int i = 0 ; i < numErrorTags ; ++i) { diff --git a/src/support/debug.h b/src/support/debug.h index ecabb506c1..26bfd25ab8 100644 --- a/src/support/debug.h +++ b/src/support/debug.h @@ -20,7 +20,6 @@ #define LYXDEBUG_H #include "support/strfwd.h" -#include namespace std { @@ -108,13 +107,20 @@ namespace Debug { ANY = 0xffffffff }; - const std::vector levels(); + + // Return number of levels + int levelCount(); + /** A function to convert symbolic string names on debug levels to their numerical value. */ Type value(std::string const & val); + /** A function to convert index of level to their numerical value. + */ + Type value(int val); + /// Return description of level std::string const description(Type val); @@ -158,7 +164,7 @@ public: /// Sets stream std::ostream & stream() { return *stream_; } /// Sets the debug level to t. - void level(Debug::Type t) { dt = t; } + void setLevel(Debug::Type t) { dt = t; } /// Returns the current debug level. Debug::Type level() const { return dt; } /// Returns stream -- 2.39.2