mirror of
https://github.com/YACReader/yacreader
synced 2025-07-27 09:24:57 -04:00
QsLog
YACReader
YACReaderLibrary
YACReaderLibraryServer
common
compressed_archive
custom_widgets
custom_widgets_yacreader.pri
custom_widgets_yacreaderlibrary.pri
help_about_dialog.cpp
help_about_dialog.h
yacreader_busy_widget.cpp
yacreader_busy_widget.h
yacreader_dark_menu.cpp
yacreader_dark_menu.h
yacreader_deleting_progress.cpp
yacreader_deleting_progress.h
yacreader_field_edit.cpp
yacreader_field_edit.h
yacreader_field_plain_text_edit.cpp
yacreader_field_plain_text_edit.h
yacreader_flow.cpp
yacreader_flow.h
yacreader_flow_config_widget.cpp
yacreader_flow_config_widget.h
yacreader_gl_flow_config_widget.cpp
yacreader_gl_flow_config_widget.h
yacreader_library_item_widget.cpp
yacreader_library_item_widget.h
yacreader_library_list_widget.cpp
yacreader_library_list_widget.h
yacreader_macosx_toolbar.h
yacreader_macosx_toolbar.mm
yacreader_options_dialog.cpp
yacreader_options_dialog.h
yacreader_search_line_edit.cpp
yacreader_search_line_edit.h
yacreader_sidebar.cpp
yacreader_sidebar.h
yacreader_social_dialog.cpp
yacreader_social_dialog.h
yacreader_spin_slider_widget.cpp
yacreader_spin_slider_widget.h
yacreader_table_view.cpp
yacreader_table_view.h
yacreader_titled_toolbar.cpp
yacreader_titled_toolbar.h
yacreader_tool_bar_stretch.cpp
yacreader_tool_bar_stretch.h
yacreader_treeview.cpp
yacreader_treeview.h
dependencies
files
images
release
shortcuts_management
tests
CHANGELOG.txt
COPYING.txt
INSTALL.txt
README.txt
YACReader.1
YACReader.desktop
YACReader.pro
YACReaderLibrary.1
YACReaderLibrary.desktop
background.png
cleanOSX.sh
compileOSX.sh
config.pri
generateVS2010Projects.bat
icon.icns
mktarball.sh
releaseOSX.sh
94 lines
2.4 KiB
C++
94 lines
2.4 KiB
C++
#include "yacreader_spin_slider_widget.h"
|
|
|
|
#include <QHBoxLayout>
|
|
#include <QLabel>
|
|
#include <QSpinBox>
|
|
#include <QSlider>
|
|
|
|
YACReaderSpinSliderWidget::YACReaderSpinSliderWidget(QWidget * parent,bool strechableSlider)
|
|
:QWidget(parent),tracking(true)
|
|
{
|
|
QHBoxLayout * layout = new QHBoxLayout;
|
|
layout->addWidget(label = new QLabel(this),1);
|
|
if(!strechableSlider)
|
|
layout->addStretch();
|
|
spinBox = new QSpinBox(this);
|
|
layout->addWidget(spinBox);
|
|
slider = new QSlider(Qt::Horizontal,this);
|
|
layout->addWidget(slider);
|
|
if(strechableSlider)
|
|
{
|
|
layout->setStretchFactor(slider,0.85);
|
|
layout->setStretchFactor(spinBox,0);
|
|
layout->setStretchFactor(label,0.15);
|
|
}
|
|
|
|
connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
|
|
connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
|
|
|
|
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(valueWillChange(int)));
|
|
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(valueWillChangeFromSpinBox(int)));
|
|
|
|
connect(slider, SIGNAL(sliderReleased()), this, SLOT(sliderRelease()));
|
|
|
|
setLayout(layout);
|
|
}
|
|
void YACReaderSpinSliderWidget::valueWillChange(int v)
|
|
{
|
|
Q_UNUSED(v)
|
|
if(tracking)
|
|
emit valueChanged(spinBox->value());
|
|
}
|
|
|
|
void YACReaderSpinSliderWidget::valueWillChangeFromSpinBox(int v)
|
|
{
|
|
Q_UNUSED(v)
|
|
if(!tracking && !slider->isSliderDown())
|
|
emit valueChanged(spinBox->value());
|
|
}
|
|
|
|
void YACReaderSpinSliderWidget::sliderRelease()
|
|
{
|
|
if(!tracking)
|
|
emit valueChanged(spinBox->value());
|
|
}
|
|
|
|
void YACReaderSpinSliderWidget::setRange(int lowValue, int topValue, int step)
|
|
{
|
|
spinBox->setMinimum(lowValue);
|
|
spinBox->setMaximum(topValue);
|
|
spinBox->setSingleStep(step);
|
|
|
|
slider->setMinimum(lowValue);
|
|
slider->setMaximum(topValue);
|
|
slider->setSingleStep(step);
|
|
}
|
|
|
|
void YACReaderSpinSliderWidget::setValue(int value)
|
|
{
|
|
disconnect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(valueWillChange(int)));
|
|
spinBox->setValue(value);
|
|
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(valueWillChange(int)));
|
|
}
|
|
|
|
void YACReaderSpinSliderWidget::setText(const QString & text)
|
|
{
|
|
label->setText(text);
|
|
}
|
|
|
|
int YACReaderSpinSliderWidget::getValue()
|
|
{
|
|
return spinBox->value();
|
|
}
|
|
|
|
QSize YACReaderSpinSliderWidget::minimumSizeHint() const
|
|
{
|
|
return QSize(270, 25);
|
|
}
|
|
|
|
void YACReaderSpinSliderWidget::setTracking(bool b)
|
|
{
|
|
tracking = b;
|
|
//slider->setTracking(b);
|
|
}
|