#include "doubleparameterwidget.h"
-#include <QHBoxLayout>
+#include <QGridLayout>
#include <QLabel>
#include <QSlider>
#include <QSpinBox>
#include <KLocalizedString>
-DoubleParameterWidget::DoubleParameterWidget(const QString &name, int value, int min, int max, int defaultValue, const QString suffix, QWidget *parent) :
+DoubleParameterWidget::DoubleParameterWidget(const QString &name, int value, int min, int max, int defaultValue, const QString &comment, const QString suffix, QWidget *parent) :
QWidget(parent),
m_default(defaultValue)
{
- QHBoxLayout *layout = new QHBoxLayout(this);
+ QGridLayout *layout = new QGridLayout(this);
layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0);
m_name = new QLabel(name, this);
- layout->addWidget(m_name);
+ layout->addWidget(m_name, 0, 0);
m_slider = new QSlider(Qt::Horizontal, this);
m_slider->setRange(min, max);
//m_slider->setPageStep((max - min) / 10);
- layout->addWidget(m_slider);
+ layout->addWidget(m_slider, 0, 1);
m_spinBox = new QSpinBox(this);
m_spinBox->setRange(min, max);
m_spinBox->setKeyboardTracking(false);
if (!suffix.isEmpty())
m_spinBox->setSuffix(suffix);
- layout->addWidget(m_spinBox);
+ layout->addWidget(m_spinBox, 0, 2);
QToolButton *reset = new QToolButton(this);
reset->setAutoRaise(true);
reset->setIcon(KIcon("edit-undo"));
reset->setToolTip(i18n("Reset to default value"));
- layout->addWidget(reset);
+ layout->addWidget(reset, 0, 3);
+
+ m_commentLabel = new QLabel(comment, this);
+ m_commentLabel->setWordWrap(true);
+ m_commentLabel->setTextFormat(Qt::RichText);
+ m_commentLabel->setAlignment(Qt::AlignLeft | Qt::AlignTop);
+ m_commentLabel->setFrameShape(QFrame::StyledPanel);
+ m_commentLabel->setFrameShadow(QFrame::Raised);
+ m_commentLabel->setBackgroundRole(QPalette::AlternateBase);
+ m_commentLabel->setHidden(true);
+ layout->addWidget(m_commentLabel, 1, 0, 1, -1);
connect(m_slider, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));
connect(m_spinBox, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));
setValue(m_default);
}
+void DoubleParameterWidget::slotShowComment()
+{
+ if (m_commentLabel->text() != QString()) {
+ if (m_commentLabel->isHidden()) {
+ m_commentLabel->setHidden(false);
+ layout()->setContentsMargins(0, 0, 0, 15);
+ } else {
+ m_commentLabel->setHidden(true);
+ layout()->setContentsMargins(0, 0, 0, 0);
+ }
+ }
+}
+
#include "doubleparameterwidget.moc"