From 850d62e11e275a401790c5dbe620fdb7bb150059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Fri, 8 Feb 2013 15:12:55 +0100 Subject: [PATCH] ficheros de c?digo fuente "width_slider" a?adidos al repositorio (se habian olvidado) --- YACReader/width_slider.cpp | 71 ++++++++++++++++++++++++++++++++++++++ YACReader/width_slider.h | 27 +++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 YACReader/width_slider.cpp create mode 100644 YACReader/width_slider.h diff --git a/YACReader/width_slider.cpp b/YACReader/width_slider.cpp new file mode 100644 index 00000000..1bdb8ad5 --- /dev/null +++ b/YACReader/width_slider.cpp @@ -0,0 +1,71 @@ +#include "width_slider.h" + +#include +#include +#include +#include +#include "configuration.h" + +YACReaderSliderAction::YACReaderSliderAction (QWidget * parent) + :QWidgetAction (0) { + + QWidget* pWidget = new QWidget (NULL); + QHBoxLayout* pLayout = new QHBoxLayout(); + + pLayout->addStretch(); + + percentageLabel = new QLabel ("100%"); + percentageLabel->setStyleSheet("QLabel { color : white; }"); + percentageLabel->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter); + pLayout->addWidget (percentageLabel); + slider = new QSlider(NULL); + slider->setOrientation(Qt::Horizontal); + pLayout->addWidget (slider); + + QString sliderCSS = + + "QSlider::sub-page:horizontal {background-image: url(:/images/sliderSubPage.png); border: 0px; margin-left: 18px;}" + "QSlider::add-page:horizontal {background-image: url(:/images/sliderAddPage.png); border: 0px; margin-right: 25px;}" + "QSlider::handle:horizontal {image: url(:/images/sliderHandle.png); width: 31px;height:45px; }" + "QSlider::groove:horizontal {border-image:url(:/images/sliderGround.png); border-left:-2px; border-right:0;}" + ; + slider->setStyleSheet(sliderCSS); + slider->setFixedSize(218,45); + + QLabel* imgLabel = new QLabel(pWidget); + QPixmap p(":/images/sliderBackground.png"); + imgLabel->resize(p.size()); + imgLabel->setPixmap(p); + + pLayout->setMargin(0); + pLayout->setSpacing(0); + + pLayout->setStretchFactor(percentageLabel,1); + pLayout->setStretchFactor(slider,0); + + + pWidget->setLayout (pLayout); + pWidget->setAutoFillBackground(false); + + pWidget->setMinimumSize(276,45); + + setDefaultWidget(pWidget); + + slider->setMinimum(50); + slider->setMaximum(100); + slider->setPageStep(5); + + int value = Configuration::getConfiguration().getFitToWidthRatio()*100; + slider->setValue(value); + percentageLabel->setText(QString("%1 %").arg(value)); + connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updateText(int))); + + +} + +void YACReaderSliderAction::updateText(int value) +{ + percentageLabel->setText(QString("%1 %").arg(value)); + Configuration::getConfiguration().setFitToWidthRatio(value/100.0); + emit(fitToWidthRatioChanged(value / 100.0f)); +} \ No newline at end of file diff --git a/YACReader/width_slider.h b/YACReader/width_slider.h new file mode 100644 index 00000000..fe0c656c --- /dev/null +++ b/YACReader/width_slider.h @@ -0,0 +1,27 @@ +#ifndef WIDTH_SLIDER_H +#define WIDTH_SLIDER_H + +#include + +class QLabel; +class QSlider; + +class YACReaderSliderAction : public QWidgetAction +{ + Q_OBJECT +private: + QLabel * percentageLabel; + QSlider * slider; +public: + + YACReaderSliderAction (QWidget * parent = 0); + +public slots: + void updateText(int value); + + +signals: + void fitToWidthRatioChanged(float value); +}; + +#endif