From: Peter Kümmel Date: Wed, 30 Dec 2009 14:48:47 +0000 (+0000) Subject: levels are not exclusive X-Git-Tag: 2.0.0~4679 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=0a6118f0c7aeb79aeb329aa50ca1c1067aeed81a;p=features.git levels are not exclusive git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32674 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/qt4/GuiProgressView.cpp b/src/frontends/qt4/GuiProgressView.cpp index d1d1de3391..1094bf9ef1 100644 --- a/src/frontends/qt4/GuiProgressView.cpp +++ b/src/frontends/qt4/GuiProgressView.cpp @@ -21,17 +21,17 @@ #include #include -#include -#include -#include + +#include + namespace lyx { namespace frontend { -struct LevelButton : QRadioButton +struct LevelButton : QCheckBox { - LevelButton(const QString& name) : QRadioButton(name) {} + LevelButton(const QString& name) : QCheckBox(name) {} Debug::Type level; }; @@ -61,17 +61,18 @@ GuiProgressView::GuiProgressView(GuiView & parent, Qt::DockWidgetArea area, font.setStyleHint(QFont::TypeWriter); widget_->outTE->setFont(font); - QButtonGroup* button_group = new QButtonGroup(this); + const std::vector levels = Debug::levels(); - for (unsigned int i = 0; i < levels.size(); i++) { + for (unsigned int i = 1; i < levels.size(); i++) { LevelButton * box = new LevelButton(toqstr(Debug::description(levels[i]))); box->level = levels[i]; widget_->settingsLayout->addWidget(box); - button_group->addButton(box); + // TODO settings + box->setChecked(false); + level_buttons << box; + connect(box, SIGNAL(stateChanged(int)), this, SLOT(levelChange())); } - connect(button_group, SIGNAL(buttonClicked(QAbstractButton*)), this, SLOT(levelChanged(QAbstractButton*))); - // TODO settings - button_group->buttons().front()->setChecked(true); + GuiProgress* progress = dynamic_cast(support::ProgressInterface::instance()); @@ -86,11 +87,14 @@ GuiProgressView::GuiProgressView(GuiView & parent, Qt::DockWidgetArea area, } -void GuiProgressView::levelChanged(QAbstractButton* b) +void GuiProgressView::levelChanged() { - LevelButton* lb = dynamic_cast(b); - if (lb) - lyxerr.level(lb->level); + int level = Debug::NONE; + Q_FOREACH(const LevelButton* button, level_buttons) { + if (button->isChecked()) + level |= button->level; + } + lyxerr.level(static_cast(level)); } diff --git a/src/frontends/qt4/GuiProgressView.h b/src/frontends/qt4/GuiProgressView.h index 944eb06249..645ef6a191 100644 --- a/src/frontends/qt4/GuiProgressView.h +++ b/src/frontends/qt4/GuiProgressView.h @@ -20,8 +20,9 @@ #include "GuiProgress.h" #include +#include + -class QAbstractButton; class QHideEvent; class QShowEvent; @@ -29,6 +30,8 @@ class QShowEvent; namespace lyx { namespace frontend { +struct LevelButton; + class ProgressViewWidget : public QWidget, public Ui::ProgressViewUi { @@ -69,13 +72,15 @@ private Q_SLOTS: void appendText(QString const & text); void clearText(); - void levelChanged(QAbstractButton*); + void levelChanged(); private: ProgressViewWidget * widget_; void showEvent(QShowEvent*); void hideEvent(QHideEvent*); + + QList level_buttons; };