Import upstream version 0.99.2
[fmit.git] / src / modules / GLSample.cpp
index 2079591..54f31f2 100644 (file)
@@ -161,47 +161,62 @@ using namespace std;
 #include <qtimer.h>
 #include <qtooltip.h>
 #include <qimage.h>
+#include <qboxlayout.h>
+#include <qwidgetaction.h>
 
 GLSample::GLSample(QWidget* parent)
-: QGLWidget(parent, "GLSample")
-, View("Wave form", this)
+: QGLWidget(parent)
+, View(tr("Wave form"), this)
 , m_max_value(1.0)
 {
        // settings
-       QImage img;
+       QPixmap img;
        img.loadFromData(g_icon_sample, sizeof(g_icon_sample), "PNG");
-       setting_show->setIconSet(QIconSet(QImage(img)));
-       setting_show->setOn(false);
+       setting_show->setIcon(QIcon(img));
+       setting_show->setChecked(false);
        hide();
 
-       setting_hasFading = new QAction(this);
-       setting_hasFading->setMenuText(tr("Show fading"));
-       setting_hasFading->setToggleAction(true);
+       setting_hasFading = new QAction(tr("Show fading"), this);
+       setting_hasFading->setCheckable(true);
        connect(setting_hasFading, SIGNAL(toggled(bool)), this, SLOT(updateGL()));
-       setting_hasFading->addTo(&m_popup_menu);
+       m_popup_menu.addAction(setting_hasFading);
 
-       m_popup_menu.insertItem(new Title(tr("Number of fading"), &m_popup_menu));
-       setting_spinNumFading = new QSpinBox(1, 10000, 1, &m_popup_menu);
+       QHBoxLayout* numFadingActionLayout = new QHBoxLayout(&m_popup_menu);
+
+       QLabel* numFadingActionTitle = new QLabel(tr("Number of fading"), &m_popup_menu);
+       numFadingActionLayout->addWidget(numFadingActionTitle);
+
+       setting_spinNumFading = new QSpinBox(&m_popup_menu);
+       setting_spinNumFading->setMinimum(1);
+       setting_spinNumFading->setMaximum(10000);
+       setting_spinNumFading->setSingleStep(1);
        setting_spinNumFading->setValue(20);
-       QToolTip::add(setting_spinNumFading, tr("Number of fading"));
+       setting_spinNumFading->setToolTip(tr("Number of fading"));
        connect(setting_spinNumFading, SIGNAL(valueChanged(int)), this, SLOT(updateGL()));
-       m_popup_menu.insertItem(setting_spinNumFading);
+       numFadingActionLayout->addWidget(setting_spinNumFading);
+
+       QWidget* numFadingActionWidget = new QWidget(&m_popup_menu);
+       numFadingActionWidget->setLayout(numFadingActionLayout);
+
+       QWidgetAction* numFadingAction = new QWidgetAction(&m_popup_menu);
+       numFadingAction->setDefaultWidget(numFadingActionWidget);
+       m_popup_menu.addAction(numFadingAction);
 }
 
 void GLSample::save()
 {
-       s_settings->writeEntry("hasFading", setting_hasFading->isOn());
-       s_settings->writeEntry("spinNumFading", setting_spinNumFading->value());
+       s_settings->setValue("hasFading", setting_hasFading->isChecked());
+       s_settings->setValue("spinNumFading", setting_spinNumFading->value());
 }
 void GLSample::load()
 {
-       setting_hasFading->setOn(s_settings->readBoolEntry("hasFading", setting_hasFading->isOn()));
-       setting_spinNumFading->setValue(s_settings->readNumEntry("spinNumFading", setting_spinNumFading->value()));
+       setting_hasFading->setChecked(s_settings->value("hasFading", setting_hasFading->isChecked()).toBool());
+       setting_spinNumFading->setValue(s_settings->value("spinNumFading", setting_spinNumFading->value()).toInt());
 }
 void GLSample::clearSettings()
 {
-       s_settings->removeEntry("hasFading");
-       s_settings->removeEntry("spinNumFading");
+       s_settings->remove("hasFading");
+       s_settings->remove("spinNumFading");
 }
 
 GLSample::Sample::Sample(double t, const deque<double>& d)
@@ -217,7 +232,7 @@ void GLSample::add(double time, const deque<double>& data)
 {
        m_samples.push_front(Sample(time, data));
 
-       if(setting_hasFading->isOn())
+       if(setting_hasFading->isChecked())
                while(!m_samples.empty() && int(m_samples.size())>setting_spinNumFading->value())
                        m_samples.pop_back();
        else
@@ -241,11 +256,11 @@ void GLSample::paintGL()
        glClear(GL_COLOR_BUFFER_BIT);
 
        // name
-       string str = tr("Wave form");
+       string str = tr("Wave form").toStdString();
        glColor3f(0.75,0.75,0.75);
        glRasterPos2i(2, height()-20);
        for(size_t i = 0; i < str.size(); i++)
-               glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, str[i]);
+               glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18, (unsigned char)str[i]);
 
        // horiz lines
        glBegin(GL_LINES);
@@ -264,7 +279,7 @@ void GLSample::paintGL()
                for(int j=m_samples.size()-1; j>=0; j--)
                {
                        m_max_value = max(m_max_value, abs(m_samples[j].max_value));
-                       if(!setting_hasFading->isOn())  j=-1;
+                       if(!setting_hasFading->isChecked())     j=-1;
                }
 
                for(int j=m_samples.size()-1; j>=0; j--)
@@ -282,7 +297,7 @@ void GLSample::paintGL()
                                glEnd();
                        }
 
-                       if(!setting_hasFading->isOn())  j=-1;
+                       if(!setting_hasFading->isChecked())     j=-1;
                }
        }