Blame addon/doxywizard/inputint.cpp

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#include "inputint.h"
Packit 1c1d7e
#include "helplabel.h"
Packit 1c1d7e
Packit 1c1d7e
#include <QSpinBox>
Packit 1c1d7e
#include <QGridLayout>
Packit 1c1d7e
#include <QWheelEvent>
Packit 1c1d7e
#include <QTextStream>
Packit 1c1d7e
Packit 1c1d7e
class NoWheelSpinBox : public QSpinBox
Packit 1c1d7e
{
Packit 1c1d7e
  protected:
Packit 1c1d7e
    void wheelEvent(QWheelEvent *e)
Packit 1c1d7e
    {
Packit 1c1d7e
      e->ignore();
Packit 1c1d7e
    }
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
InputInt::InputInt( QGridLayout *layout,int &row,
Packit 1c1d7e
                    const QString & id, 
Packit 1c1d7e
                    int defVal, int minVal,int maxVal,
Packit 1c1d7e
                    const QString & docs )
Packit 1c1d7e
  : m_default(defVal), m_minVal(minVal), m_maxVal(maxVal), m_docs(docs), m_id(id)
Packit 1c1d7e
{
Packit 1c1d7e
  m_lab = new HelpLabel(id);
Packit 1c1d7e
  m_sp  = new NoWheelSpinBox;
Packit 1c1d7e
  m_sp->setMinimum(minVal);
Packit 1c1d7e
  m_sp->setMaximum(maxVal);
Packit 1c1d7e
  m_sp->setSingleStep(1);
Packit 1c1d7e
  m_val=defVal-1; // force update
Packit 1c1d7e
  setValue(defVal);
Packit 1c1d7e
Packit 1c1d7e
  layout->addWidget( m_lab, row, 0 );
Packit 1c1d7e
  layout->addWidget( m_sp, row, 1 );
Packit 1c1d7e
Packit 1c1d7e
  connect(m_sp, SIGNAL(valueChanged(int)), 
Packit 1c1d7e
          this, SLOT(setValue(int)) );
Packit 1c1d7e
  connect( m_lab, SIGNAL(enter()), SLOT(help()) );
Packit 1c1d7e
  connect( m_lab, SIGNAL(reset()), SLOT(reset()) );
Packit 1c1d7e
  row++;
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
void InputInt::help()
Packit 1c1d7e
{
Packit 1c1d7e
  showHelp(this);
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
Packit 1c1d7e
void InputInt::setValue(int val)
Packit 1c1d7e
{
Packit 1c1d7e
  val = qMax(m_minVal,val);
Packit 1c1d7e
  val = qMin(m_maxVal,val);
Packit 1c1d7e
  if (val!=m_val) 
Packit 1c1d7e
  {
Packit 1c1d7e
    m_val = val;
Packit 1c1d7e
    m_sp->setValue(val);
Packit 1c1d7e
    m_value = m_val;
Packit 1c1d7e
    updateDefault();
Packit 1c1d7e
  }
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
void InputInt::updateDefault()
Packit 1c1d7e
{
Packit 1c1d7e
  {
Packit 1c1d7e
    if (m_val==m_default || !m_lab->isEnabled())
Packit 1c1d7e
    {
Packit 1c1d7e
      m_lab->setText(QString::fromLatin1("<qt>")+m_id+QString::fromLatin1("
Packit 1c1d7e
    }
Packit 1c1d7e
    else
Packit 1c1d7e
    {
Packit 1c1d7e
      m_lab->setText(QString::fromLatin1("<qt><font color='red'>")+m_id+QString::fromLatin1("</font></qt>"));
Packit 1c1d7e
    }
Packit 1c1d7e
    emit changed(); 
Packit 1c1d7e
  }
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
void InputInt::setEnabled(bool state)
Packit 1c1d7e
{
Packit 1c1d7e
  m_lab->setEnabled(state);
Packit 1c1d7e
  m_sp->setEnabled(state);
Packit 1c1d7e
  updateDefault();
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
QVariant &InputInt::value() 
Packit 1c1d7e
{
Packit 1c1d7e
  return m_value;
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
void InputInt::update()
Packit 1c1d7e
{
Packit 1c1d7e
  setValue(m_value.toInt());
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
void InputInt::reset()
Packit 1c1d7e
{
Packit 1c1d7e
  setValue(m_default);
Packit 1c1d7e
}
Packit 1c1d7e
Packit 1c1d7e
void InputInt::writeValue(QTextStream &t,QTextCodec *)
Packit 1c1d7e
{
Packit 1c1d7e
  t << m_val;
Packit 1c1d7e
}
Packit 1c1d7e