kwave  18.07.70
Kwave::BitrateWidget Class Reference

#include <BitrateWidget.h>

Inheritance diagram for Kwave::BitrateWidget:
Inheritance graph
Collaboration diagram for Kwave::BitrateWidget:
Collaboration graph

Signals

void valueChanged (int value)
 

Public Member Functions

 BitrateWidget (QWidget *parent)
 
virtual ~BitrateWidget ()
 
virtual void setValue (int bitrate)
 
virtual int value ()
 
virtual void setSpecialValueText (const QString &text)
 
virtual void allowRates (const QList< int > &list)
 

Protected Slots

void sliderChanged (int value)
 
void spinboxChanged (int value)
 
void snapInSlider ()
 

Protected Member Functions

int nearestIndex (int rate)
 

Private Attributes

QList< int > m_rates
 

Detailed Description

Definition at line 31 of file BitrateWidget.h.

Constructor & Destructor Documentation

◆ BitrateWidget()

Kwave::BitrateWidget::BitrateWidget ( QWidget *  parent)
explicit

Constructor

Definition at line 30 of file BitrateWidget.cpp.

References Kwave::connect(), m_rates, setValue(), sliderChanged(), snapInSlider(), spinboxChanged(), and valueChanged().

31  :QWidget(parent),
32  Ui::BitrateWidgetBase(), m_rates()
33 {
34  setupUi(this);
35  m_rates.append(0); // don't let it stay empty, that makes life easier
36 
37  connect(slider, SIGNAL(valueChanged(int)),
38  this, SLOT(sliderChanged(int)));
39  connect(spinbox, SIGNAL(valueChanged(int)),
40  this, SLOT(spinboxChanged(int)));
41  connect(slider, SIGNAL(sliderReleased()),
42  this, SLOT(snapInSlider()));
43  connect(spinbox, SIGNAL(snappedIn(int)),
44  slider, SLOT(setValue(int)));
45 }
void valueChanged(int value)
void spinboxChanged(int value)
QList< int > m_rates
Definition: BitrateWidget.h:78
bool connect(Kwave::StreamObject &source, const char *output, Kwave::StreamObject &sink, const char *input)
Definition: Connect.cpp:48
virtual void setValue(int bitrate)
void sliderChanged(int value)
Here is the call graph for this function:

◆ ~BitrateWidget()

Kwave::BitrateWidget::~BitrateWidget ( )
virtual

Destructor

Definition at line 48 of file BitrateWidget.cpp.

49 {
50 }

Member Function Documentation

◆ allowRates()

void Kwave::BitrateWidget::allowRates ( const QList< int > &  list)
virtual

sets a list of allowed bitrates

Definition at line 74 of file BitrateWidget.cpp.

References m_rates, setValue(), and value().

75 {
76  int old_value = value();
77 
78  m_rates = list;
79  if (m_rates.isEmpty()) m_rates.append(0);
80 
81  // set new ranges
82  spinbox->allowRates(m_rates);
83  slider->setMinimum(m_rates.first());
84  slider->setMaximum(m_rates.last());
85 
86  setValue(old_value);
87 }
QList< int > m_rates
Definition: BitrateWidget.h:78
virtual void setValue(int bitrate)
Here is the call graph for this function:

◆ nearestIndex()

int Kwave::BitrateWidget::nearestIndex ( int  rate)
protected

find the nearest bitrate index of a current position

Definition at line 90 of file BitrateWidget.cpp.

References m_rates, and Kwave::toInt().

Referenced by sliderChanged(), snapInSlider(), and value().

91 {
92  // find the nearest value
93  int nearest = 0;
94  foreach(int i, m_rates)
95  if (qAbs(i - rate) < qAbs(nearest - rate)) nearest = i;
96 
97  // find the index
98  int index = m_rates.contains(nearest) ? m_rates.indexOf(nearest) : 0;
99 
100  // limit the index into a reasonable range
101  if (index < 0)
102  index = 0;
103  if (index >= Kwave::toInt(m_rates.size()))
104  index = m_rates.size()-1;
105 
106  return index;
107 }
QList< int > m_rates
Definition: BitrateWidget.h:78
int toInt(T x)
Definition: Utils.h:127
Here is the call graph for this function:
Here is the caller graph for this function:

◆ setSpecialValueText()

void Kwave::BitrateWidget::setSpecialValueText ( const QString &  text)
virtual

set a new special value text

Definition at line 68 of file BitrateWidget.cpp.

69 {
70  spinbox->setSpecialValueText(text);
71 }

◆ setValue()

void Kwave::BitrateWidget::setValue ( int  bitrate)
virtual

sets a new current value

Definition at line 53 of file BitrateWidget.cpp.

Referenced by allowRates(), and BitrateWidget().

54 {
55  slider->setValue(bitrate);
56  spinbox->setValue(bitrate);
57 }
Here is the caller graph for this function:

◆ sliderChanged

void Kwave::BitrateWidget::sliderChanged ( int  value)
protectedslot

slider of ABR bitrate changed

Definition at line 110 of file BitrateWidget.cpp.

References m_rates, nearestIndex(), and valueChanged().

Referenced by BitrateWidget().

111 {
112  int index = nearestIndex(value);
113  spinbox->setValue(m_rates[index]);
114 
115  emit valueChanged(value);
116 }
void valueChanged(int value)
int nearestIndex(int rate)
QList< int > m_rates
Definition: BitrateWidget.h:78
Here is the call graph for this function:
Here is the caller graph for this function:

◆ snapInSlider

void Kwave::BitrateWidget::snapInSlider ( )
protectedslot

slider has been released -> snap to nearest available value

Definition at line 125 of file BitrateWidget.cpp.

References m_rates, nearestIndex(), and value().

Referenced by BitrateWidget().

126 {
127  int value = slider->value();
128  int index = nearestIndex(value);
129  slider->setValue(m_rates[index]); // snap in
130 }
int nearestIndex(int rate)
QList< int > m_rates
Definition: BitrateWidget.h:78
Here is the call graph for this function:
Here is the caller graph for this function:

◆ spinboxChanged

void Kwave::BitrateWidget::spinboxChanged ( int  value)
protectedslot

spinbox of ABR bitrate changed

Definition at line 119 of file BitrateWidget.cpp.

References valueChanged().

Referenced by BitrateWidget().

120 {
121  emit valueChanged(value);
122 }
void valueChanged(int value)
Here is the caller graph for this function:

◆ value()

int Kwave::BitrateWidget::value ( )
virtual

returns the currently selected value

Definition at line 60 of file BitrateWidget.cpp.

References m_rates, and nearestIndex().

Referenced by allowRates(), and snapInSlider().

61 {
62  int value = slider->value();
63  int index = nearestIndex(value);
64  return m_rates[index];
65 }
int nearestIndex(int rate)
QList< int > m_rates
Definition: BitrateWidget.h:78
Here is the call graph for this function:
Here is the caller graph for this function:

◆ valueChanged

void Kwave::BitrateWidget::valueChanged ( int  value)
signal

emitted whenever the bitrate setting has been modified

Referenced by BitrateWidget(), sliderChanged(), and spinboxChanged().

Here is the caller graph for this function:

Member Data Documentation

◆ m_rates

QList<int> Kwave::BitrateWidget::m_rates
private

list of allowed bitrates, sorted ascending

Definition at line 78 of file BitrateWidget.h.

Referenced by allowRates(), BitrateWidget(), nearestIndex(), sliderChanged(), snapInSlider(), and value().


The documentation for this class was generated from the following files: