X-Git-Url: http://git.johnwright.org/?p=fmit.git;a=blobdiff_plain;f=src%2Fmodules%2FGLGraph.cpp;fp=src%2Fmodules%2FGLGraph.cpp;h=8f48367e29ea1673ac0d192e30901b8669f8215d;hp=e3e5086b25438b37cf8b9c46afd27c1d4fdb6bdf;hb=a8fb82288feb6b258f2c04312f0c36ba8d79b494;hpb=adfba0402927438a1869f1e716bcf0e25574ce1e diff --git a/src/modules/GLGraph.cpp b/src/modules/GLGraph.cpp index e3e5086..8f48367 100644 --- a/src/modules/GLGraph.cpp +++ b/src/modules/GLGraph.cpp @@ -195,81 +195,123 @@ static const unsigned char g_icon_graph[] = { using namespace std; #include #include +#include +#include #include #include using namespace Music; -GLGraph::GLGraph(const QString& name, QWidget* parent) -: QGLWidget(parent, "GLGraph") -, View(name, this) +GLGraph::GLGraph(QWidget* parent) +: QGLWidget(parent) +, View(tr("Captured Sound"), this) , m_skip(1) , m_new_values(false) { // settings - QImage img; + QPixmap img; img.loadFromData(g_icon_graph, sizeof(g_icon_graph), "PNG"); - setting_show->setIconSet(QIconSet(QImage(img))); - setting_show->setOn(true); + setting_show->setIcon(QIcon(img)); + setting_show->setChecked(true); - setting_showWaveForm = new QAction(this); - setting_showWaveForm->setMenuText(tr("Show Wave Form")); - setting_showWaveForm->setToggleAction(true); + setting_showWaveForm = new QAction(tr("Show Wave Form"), this); + setting_showWaveForm->setCheckable(true); connect(setting_showWaveForm, SIGNAL(toggled(bool)), this, SLOT(update())); - setting_showWaveForm->setOn(true); - setting_showWaveForm->addTo(&m_popup_menu); + setting_showWaveForm->setChecked(true); + m_popup_menu.addAction(setting_showWaveForm); - setting_autoScale = new QAction(this); - setting_autoScale->setMenuText(tr("Auto scale")); - setting_autoScale->setToggleAction(true); + setting_autoScale = new QAction(tr("Auto scale"), this); + setting_autoScale->setCheckable(true); connect(setting_autoScale, SIGNAL(toggled(bool)), this, SLOT(update())); - setting_autoScale->setOn(false); - setting_autoScale->addTo(&m_popup_menu); + setting_autoScale->setChecked(false); + m_popup_menu.addAction(setting_autoScale); - m_popup_menu.insertItem(new Title(tr("Scale factor"), &m_popup_menu)); - setting_spinScaleFactor = new QSpinBox(1, 1000, 10, &m_popup_menu); - QToolTip::add(setting_spinScaleFactor, tr("Scale factor")); + QHBoxLayout* scaleFactorActionLayout = new QHBoxLayout(&m_popup_menu); + + QLabel* scaleFactorActionTitle = new QLabel(tr("Scale factor"), &m_popup_menu); + scaleFactorActionLayout->addWidget(scaleFactorActionTitle); + + setting_spinScaleFactor = new QSpinBox(&m_popup_menu); + setting_spinScaleFactor->setMinimum(1); + setting_spinScaleFactor->setMaximum(1000); + setting_spinScaleFactor->setSingleStep(10); + setting_spinScaleFactor->setToolTip(tr("Scale factor")); setting_spinScaleFactor->setValue(1000); connect(setting_spinScaleFactor, SIGNAL(valueChanged(int)), this, SLOT(update())); - m_popup_menu.insertItem(setting_spinScaleFactor); + scaleFactorActionLayout->addWidget(setting_spinScaleFactor); + + QWidget* scaleFactorActionWidget = new QWidget(&m_popup_menu); + scaleFactorActionWidget->setLayout(scaleFactorActionLayout); + + QWidgetAction* scaleFactorAction = new QWidgetAction(&m_popup_menu); + scaleFactorAction->setDefaultWidget(scaleFactorActionWidget); + m_popup_menu.addAction(scaleFactorAction); + + QHBoxLayout* durationActionLayout = new QHBoxLayout(&m_popup_menu); + + QLabel* durationActionTitle = new QLabel(tr("Duration"), &m_popup_menu); + durationActionLayout->addWidget(durationActionTitle); - m_popup_menu.insertItem(new Title(tr("Duration"), &m_popup_menu)); - setting_spinDuration = new QSpinBox(20, 120000, 100, &m_popup_menu); - QToolTip::add(setting_spinDuration, tr("Duration")); + setting_spinDuration = new QSpinBox(&m_popup_menu); + setting_spinDuration->setMinimum(20); + setting_spinDuration->setMaximum(120000); + setting_spinDuration->setSingleStep(100); + setting_spinDuration->setToolTip(tr("Duration")); setting_spinDuration->setValue(10000); connect(setting_spinDuration, SIGNAL(valueChanged(int)), this, SLOT(update())); - m_popup_menu.insertItem(setting_spinDuration); + durationActionLayout->addWidget(setting_spinDuration); - m_popup_menu.insertItem(new Title(tr("Max height"), &m_popup_menu)); - setting_spinMaxHeight = new QSpinBox(10, 100000, 1, &m_popup_menu); - QToolTip::add(setting_spinMaxHeight, tr("Max height")); + QWidget* durationActionWidget = new QWidget(&m_popup_menu); + durationActionWidget->setLayout(durationActionLayout); + + QWidgetAction* durationAction = new QWidgetAction(&m_popup_menu); + durationAction->setDefaultWidget(durationActionWidget); + m_popup_menu.addAction(durationAction); + + QHBoxLayout* maxHeightActionLayout = new QHBoxLayout(&m_popup_menu); + + QLabel* maxHeightActionTitle = new QLabel(tr("Max height"), &m_popup_menu); + maxHeightActionLayout->addWidget(maxHeightActionTitle); + + setting_spinMaxHeight = new QSpinBox(&m_popup_menu); + setting_spinMaxHeight->setMinimum(10); + setting_spinMaxHeight->setMaximum(100000); + setting_spinMaxHeight->setSingleStep(1); + setting_spinMaxHeight->setToolTip(tr("Max height")); setting_spinMaxHeight->setValue(50); - m_popup_menu.insertItem(setting_spinMaxHeight); + maxHeightActionLayout->addWidget(setting_spinMaxHeight); + + QWidget* maxHeightActionWidget = new QWidget(&m_popup_menu); + maxHeightActionWidget->setLayout(maxHeightActionLayout); + + QWidgetAction* maxHeightAction = new QWidgetAction(&m_popup_menu); + maxHeightAction->setDefaultWidget(maxHeightActionWidget); + m_popup_menu.addAction(maxHeightAction); } void GLGraph::save() { - s_settings->writeEntry("showWaveForm", setting_showWaveForm->isOn()); - s_settings->writeEntry("autoScale", setting_autoScale->isOn()); - s_settings->writeEntry("setting_spinScaleFactor", setting_spinScaleFactor->value()); - s_settings->writeEntry("spinDuration", setting_spinDuration->value()); - s_settings->writeEntry("spinMaxHeight", setting_spinMaxHeight->value()); + s_settings->setValue("showWaveForm", setting_showWaveForm->isChecked()); + s_settings->setValue("autoScale", setting_autoScale->isChecked()); + s_settings->setValue("setting_spinScaleFactor", setting_spinScaleFactor->value()); + s_settings->setValue("spinDuration", setting_spinDuration->value()); + s_settings->setValue("spinMaxHeight", setting_spinMaxHeight->value()); } void GLGraph::load() { - setting_showWaveForm->setOn(s_settings->readBoolEntry("showWaveForm", setting_showWaveForm->isOn())); - setting_autoScale->setOn(s_settings->readBoolEntry("autoScale", setting_autoScale->isOn())); - setting_spinScaleFactor->setValue(s_settings->readNumEntry("setting_spinScaleFactor", setting_spinScaleFactor->value())); - setting_spinDuration->setValue(s_settings->readNumEntry("spinDuration", setting_spinDuration->value())); - setting_spinMaxHeight->setValue(s_settings->readNumEntry("spinMaxHeight", setting_spinMaxHeight->value())); + setting_showWaveForm->setChecked(s_settings->value("showWaveForm", setting_showWaveForm->isChecked()).toBool()); + setting_autoScale->setChecked(s_settings->value("autoScale", setting_autoScale->isChecked()).toBool()); + setting_spinScaleFactor->setValue(s_settings->value("setting_spinScaleFactor", setting_spinScaleFactor->value()).toInt()); + setting_spinDuration->setValue(s_settings->value("spinDuration", setting_spinDuration->value()).toInt()); + setting_spinMaxHeight->setValue(s_settings->value("spinMaxHeight", setting_spinMaxHeight->value()).toInt()); } void GLGraph::clearSettings() { // cerr << "GLGraph::clearSettings" << endl; - s_settings->removeEntry("showWaveForm"); - s_settings->removeEntry("autoScale"); - s_settings->removeEntry("setting_spinScaleFactor"); - s_settings->removeEntry("spinDuration"); - s_settings->removeEntry("spinMaxHeight"); + s_settings->remove("showWaveForm"); + s_settings->remove("autoScale"); + s_settings->remove("setting_spinScaleFactor"); + s_settings->remove("spinDuration"); + s_settings->remove("spinMaxHeight"); } void GLGraph::initializeGL() @@ -391,13 +433,13 @@ void GLGraph::base_paint(float graph_gray) int width = QGLWidget::width(); // name - string str = tr("Captured Sound"); + string str = tr("Captured Sound").toStdString(); glColor3f(0.75,0.75,0.75); glRasterPos2i(2, height()-14); for(size_t i = 0; i < str.size(); i++) - glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, str[i]); + glutBitmapCharacter(GLUT_BITMAP_HELVETICA_12, (unsigned char)str[i]); - if(setting_showWaveForm->isOn() && !m_queue.empty()) + if(setting_showWaveForm->isChecked() && !m_queue.empty()) { // horiz line glBegin(GL_LINES); @@ -409,7 +451,7 @@ void GLGraph::base_paint(float graph_gray) m_queue_amplitude = 0.0; double scale_factor; - if(setting_autoScale->isOn()) + if(setting_autoScale->isChecked()) { if(m_skip<2) for(size_t i=0; i