]> git.lyx.org Git - features.git/commitdiff
levels are not exclusive
authorPeter Kümmel <syntheticpp@gmx.net>
Wed, 30 Dec 2009 14:48:47 +0000 (14:48 +0000)
committerPeter Kümmel <syntheticpp@gmx.net>
Wed, 30 Dec 2009 14:48:47 +0000 (14:48 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@32674 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiProgressView.cpp
src/frontends/qt4/GuiProgressView.h

index d1d1de3391f39fdd073c27e351796a25d9b32d97..1094bf9ef1cc1338e9bc1aab5c5cb2bb5abf05fa 100644 (file)
 
 #include <QSettings>
 #include <QTime>
-#include <QGroupBox>
-#include <QRadioButton>
-#include <QButtonGroup>
+
+#include <QCheckBox>
+
 
 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<Debug::Type> 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<GuiProgress*>(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<LevelButton*>(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<Debug::Type>(level));
 }
 
 
index 944eb0624993ebc6a90aa9ad5e374437283d2f4f..645ef6a1918884f9b4b2423f13a2b1a3fd2afd91 100644 (file)
@@ -20,8 +20,9 @@
 #include "GuiProgress.h"
 
 #include <string>
+#include <QList>
+
 
-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<LevelButton*> level_buttons;
 };